Re: [PATCH 4/4] drm/bridge: ti-sn65dsi86: use helper to lookup panel-id

From: Laurent Pinchart
Date: Sun Jun 30 2019 - 17:18:01 EST


Hi Rob,

Thank you for the patch.

On Sun, Jun 30, 2019 at 01:36:08PM -0700, Rob Clark wrote:
> From: Rob Clark <robdclark@xxxxxxxxxxxx>
>
> Use the drm_of_find_panel_id() helper to decide which endpoint to use
> when looking up panel. This way we can support devices that have
> multiple possible panels, such as the aarch64 laptops.
>
> Signed-off-by: Rob Clark <robdclark@xxxxxxxxxxxx>
> ---
> drivers/gpu/drm/bridge/ti-sn65dsi86.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> index 2719d9c0864b..56c66a43f1a6 100644
> --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
> @@ -790,7 +790,7 @@ static int ti_sn_bridge_probe(struct i2c_client *client,
> const struct i2c_device_id *id)
> {
> struct ti_sn_bridge *pdata;
> - int ret;
> + int ret, panel_id;
>
> if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
> DRM_ERROR("device doesn't support I2C\n");
> @@ -811,7 +811,8 @@ static int ti_sn_bridge_probe(struct i2c_client *client,
>
> pdata->dev = &client->dev;
>
> - ret = drm_of_find_panel_or_bridge(pdata->dev->of_node, 1, 0,
> + panel_id = drm_of_find_panel_id();
> + ret = drm_of_find_panel_or_bridge(pdata->dev->of_node, 1, panel_id,
> &pdata->panel, NULL);
> if (ret) {
> DRM_ERROR("could not find any panel node\n");

No, I'm sorry, but that's a no-go. We can't patch every single bridge
driver to support this hack. We need a solution implemented at another
level that will not spread throughout the whole subsystem.

--
Regards,

Laurent Pinchart