Hi, On Mon, Mar 10, 2025 at 3:42 AM Damon Ding <damon.ding@xxxxxxxxxxxxxx> wrote: > > Move drm_of_find_panel_or_bridge() a little later and combine it with > component_add() into a new function rockchip_dp_link_panel(). The function > will serve as done_probing() callback of devm_of_dp_aux_populate_bus(), > aiding to support for obtaining the eDP panel via the DP AUX bus. > > If failed to get the panel from the DP AUX bus, it will then try the other > way to get panel information through the platform bus. > > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > Signed-off-by: Damon Ding <damon.ding@xxxxxxxxxxxxxx> > > --- > > Changes in v4: > - Use done_probing() to call drm_of_find_panel_or_bridge() and > component_add() when getting panel from the DP AUX bus > > Changes in v5: > - Use the functions exported by the Analogix side to get the pointers of > struct analogix_dp_plat_data and struct drm_dp_aux. > - Use dev_err() instead of drm_err() in rockchip_dp_poweron(). > > Changes in v6: > - Keep drm_err() in rockchip_dp_poweron() > - Pass 'dp' in drm_...() rather than 'dp->drm_dev' > > Changes in v7: > - Include the drm_dp_aux_bus.h for devm_of_dp_aux_populate_bus() > - Use dev_err_probe() for the return value check of > devm_of_dp_aux_populate_bus() > - Select DRM_DISPLAY_DP_AUX_BUS if ROCKCHIP_ANALOGIX_DP > - Restore the error check for drm_of_find_panel_or_bridge() which was > removed by mistake > > Changes in v8: > - Add comments when drm_of_find_panel_or_bridge() returns -ENODEV > - Remove some redundant return cases > - Add comments when devm_of_dp_aux_populate_bus() returns -ENODEV > --- > drivers/gpu/drm/rockchip/Kconfig | 1 + > .../gpu/drm/rockchip/analogix_dp-rockchip.c | 42 +++++++++++++++---- > 2 files changed, 34 insertions(+), 9 deletions(-) Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>