Commit e5e9fa9f authored by Damon Ding's avatar Damon Ding Committed by Dmitry Baryshkov
Browse files

drm/bridge: analogix_dp: Add support to get panel from the DP AUX bus



The main modification is moving the DP AUX initialization from function
analogix_dp_bind() to analogix_dp_probe(). In order to get the EDID of
eDP panel during probing, it is also needed to advance PM operations to
ensure that eDP controller and phy are prepared for AUX transmission.

Signed-off-by: default avatarDamon Ding <damon.ding@rock-chips.com>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: default avatarDouglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20250310104114.2608063-7-damon.ding@rock-chips.com


Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
parent fd073dff
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -1646,6 +1646,17 @@ analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data)
		goto err_disable_clk;
	}

	dp->aux.name = "DP-AUX";
	dp->aux.transfer = analogix_dpaux_transfer;
	dp->aux.dev = dp->dev;
	drm_dp_aux_init(&dp->aux);

	pm_runtime_use_autosuspend(dp->dev);
	pm_runtime_set_autosuspend_delay(dp->dev, 100);
	ret = devm_pm_runtime_enable(dp->dev);
	if (ret)
		goto err_disable_clk;

	return dp;

err_disable_clk:
@@ -1696,15 +1707,6 @@ int analogix_dp_bind(struct analogix_dp_device *dp, struct drm_device *drm_dev)
	dp->drm_dev = drm_dev;
	dp->encoder = dp->plat_data->encoder;

	pm_runtime_use_autosuspend(dp->dev);
	pm_runtime_set_autosuspend_delay(dp->dev, 100);
	ret = devm_pm_runtime_enable(dp->dev);
	if (ret)
		return ret;

	dp->aux.name = "DP-AUX";
	dp->aux.transfer = analogix_dpaux_transfer;
	dp->aux.dev = dp->dev;
	dp->aux.drm_dev = drm_dev;

	ret = drm_dp_aux_register(&dp->aux);