drm/bridge: anx7625: Fix NULL pointer crash when using edp-panel
[ Upstream commit dfb02eb6bdf84697dbadd69a7df12db612ce4ed0 ] Move devm_of_dp_aux_populate_ep_devices() after pm runtime and i2c setup to avoid NULL pointer crash. edp-panel probe (generic_edp_panel_probe) calls pm_runtime_get_sync() to read EDID. At this time, bridge should have pm runtime enabled and i2c clients ready. Fixes: adca62ec370c ("drm/bridge: anx7625: Support reading edid through aux channel") Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org> Reviewed-by: Xin Ji <xji@analogixsemi.com> Signed-off-by: Robert Foss <robert.foss@linaro.org> Link: https://patchwork.freedesktop.org/patch/msgid/20220706125254.2474095-4-hsinyi@chromium.org Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
3ba59bbe4f
commit
e2be585bc9
@ -2656,14 +2656,6 @@ static int anx7625_i2c_probe(struct i2c_client *client,
|
||||
platform->aux.dev = dev;
|
||||
platform->aux.transfer = anx7625_aux_transfer;
|
||||
drm_dp_aux_init(&platform->aux);
|
||||
devm_of_dp_aux_populate_ep_devices(&platform->aux);
|
||||
|
||||
ret = anx7625_parse_dt(dev, pdata);
|
||||
if (ret) {
|
||||
if (ret != -EPROBE_DEFER)
|
||||
DRM_DEV_ERROR(dev, "fail to parse DT : %d\n", ret);
|
||||
goto free_wq;
|
||||
}
|
||||
|
||||
if (anx7625_register_i2c_dummy_clients(platform, client) != 0) {
|
||||
ret = -ENOMEM;
|
||||
@ -2679,6 +2671,15 @@ static int anx7625_i2c_probe(struct i2c_client *client,
|
||||
if (ret)
|
||||
goto free_wq;
|
||||
|
||||
devm_of_dp_aux_populate_ep_devices(&platform->aux);
|
||||
|
||||
ret = anx7625_parse_dt(dev, pdata);
|
||||
if (ret) {
|
||||
if (ret != -EPROBE_DEFER)
|
||||
DRM_DEV_ERROR(dev, "fail to parse DT : %d\n", ret);
|
||||
goto free_wq;
|
||||
}
|
||||
|
||||
if (!platform->pdata.low_power_mode) {
|
||||
anx7625_disable_pd_protocol(platform);
|
||||
pm_runtime_get_sync(dev);
|
||||
|
Loading…
x
Reference in New Issue
Block a user