The source project of this merge request has been removed.
drm/msm: use correct lifetime devices for devm_drm_bridge_add
While reworking the drm/msm driver to use devm_drm_bridge_add() I didn't notice that the drm_bridge instances are allocated with the drm_device used as a lifetime parameter instead of corresponding platform_device. This mostly works fine, in rare cases of device reprobing resulting in the oops such as the following:
Call trace:
of_drm_find_bridge+0x54/0xa4
drm_of_find_panel_or_bridge+0xb8/0xdc
devm_drm_of_get_bridge+0x3c/0x8c
msm_dsi_manager_ext_bridge_init+0x4c/0x19c
msm_dsi_modeset_init+0x70/0x118
_dpu_kms_drm_obj_init+0xec/0x6f0
dpu_kms_hw_init+0x310/0x458
msm_drm_kms_init+0x84/0x328
msm_drm_bind+0x230/0x43c
try_to_bring_up_aggregate_device+0x164/0x1d0
__component_add+0xa8/0x170
component_add+0x14/0x20
dsi_dev_attach+0x20/0x2c
dsi_host_attach+0x9c/0x144
devm_mipi_dsi_attach+0x34/0xb4
lt9611uxc_attach_dsi.isra.0+0x84/0xfc
lt9611uxc_probe+0x5ac/0x66c
i2c_device_probe+0x148/0x290
really_probe+0x148/0x2ac
__driver_probe_device+0x78/0x12c
driver_probe_device+0x3c/0x160
__device_attach_driver+0xb8/0x138
bus_for_each_drv+0x80/0xdc
__device_attach+0x9c/0x188
device_initial_probe+0x14/0x20
bus_probe_device+0xac/0xb0
deferred_probe_work_func+0x8c/0xc8
process_one_work+0x1ec/0x51c
worker_thread+0x1ec/0x3e4
kthread+0x120/0x124
ret_from_fork+0x10/0x20
Edited by Rob Clark