Re: [PATCH] drm/mipi: set fwnode when a mipi_dsi_device registers itself

From: Saravana Kannan
Date: Fri Jul 16 2021 - 13:57:33 EST


Hi William,

Thanks for catching this.

On Fri, Jul 9, 2021 at 11:45 PM Will McVicker <willmcvicker@xxxxxxxxxx> wrote:
>
> This is needed for fw_devlink to work properly with MIPI DSI devices.
> Without setting the device's fwnode, the sync state framework isn't able
> to properly track device links between the MIPI DSI device and its
> suppliers which may result in its supplier probing before the mipi
> device.

I think it'd be more accurate if the commit text is something like:

drm/mipi: set fwnode when a mipi_dsi_device is registered

This allows the fw_devlink feature to work across mipi_dsi bus devices too. This
feature avoid unnecessary probe deferrals of mipi_dsi devices, defers
consumers of
mipi_dsi devices till the mipi_dsi devices probe, and allows mipi_dsi drivers to
implement sync_state() callbacks.

Reviewed-by: Saravana Kannan <saravanak@xxxxxxxxxx>

Thanks,
Saravana

>
> Suggested-by: Saravana Kannan <saravanak@xxxxxxxxxx>
> Signed-off-by: Will McVicker <willmcvicker@xxxxxxxxxx>
> ---
> drivers/gpu/drm/drm_mipi_dsi.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c
> index 5dd475e82995..469d56cf2a50 100644
> --- a/drivers/gpu/drm/drm_mipi_dsi.c
> +++ b/drivers/gpu/drm/drm_mipi_dsi.c
> @@ -222,6 +222,7 @@ mipi_dsi_device_register_full(struct mipi_dsi_host *host,
> }
>
> dsi->dev.of_node = info->node;
> + dsi->dev.fwnode = of_fwnode_handle(info->node);
> dsi->channel = info->channel;
> strlcpy(dsi->name, info->type, sizeof(dsi->name));
>
> --
> 2.32.0.93.g670b81a890-goog
>