On 10.03.2020 11:34, Marek Szyprowski wrote: > Analogix_dp driver acquires all its resources in the ->bind() callback, > what is a bit against the component driver based approach, where the > driver initialization is split into a probe(), where all resources are > gathered, and a bind(), where all objects are created and a compound > driver is initialized. > > Extract all the resource related operations to analogix_dp_probe() and > analogix_dp_remove(), then call them before/after registration of the > device components from the main Exynos DP and Rockchip DP drivers. Also > move the plat_data initialization to the probe() to make it available for > the analogix_dp_probe() function. > > This fixes the multiple calls to the bind() of the DRM compound driver > when the DP PHY driver is not yet loaded/probed: > > [drm] Exynos DRM: using 14400000.fimd device for DMA mapping operations > exynos-drm exynos-drm: bound 14400000.fimd (ops fimd_component_ops [exynosdrm]) > exynos-drm exynos-drm: bound 14450000.mixer (ops mixer_component_ops [exynosdrm]) > exynos-dp 145b0000.dp-controller: no DP phy configured > exynos-drm exynos-drm: failed to bind 145b0000.dp-controller (ops exynos_dp_ops [exynosdrm]): -517 > exynos-drm exynos-drm: master bind failed: -517 > ... > [drm] Exynos DRM: using 14400000.fimd device for DMA mapping operations > exynos-drm exynos-drm: bound 14400000.fimd (ops hdmi_enable [exynosdrm]) > exynos-drm exynos-drm: bound 14450000.mixer (ops hdmi_enable [exynosdrm]) > exynos-drm exynos-drm: bound 145b0000.dp-controller (ops hdmi_enable [exynosdrm]) > exynos-drm exynos-drm: bound 14530000.hdmi (ops hdmi_enable [exynosdrm]) > [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). > Console: switching to colour frame buffer device 170x48 > exynos-drm exynos-drm: fb0: exynosdrmfb frame buffer device > [drm] Initialized exynos 1.1.0 20180330 for exynos-drm on minor 1 > ... > > Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> Reviewed-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx> -- Regards Andrzej