mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
drm/bridge: analogix_dp: Fix AUX CH not work properly when disabled the rockchip logo
Fixes: 44f714e435 (drm/analogix: dp: remove some function which cause loader logo flash)
Change-Id: Ia4d999ce4287e75fd23c4920e1b4e07e7004f4aa
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
This commit is contained in:
@@ -40,23 +40,22 @@ struct bridge_init {
|
||||
struct device_node *node;
|
||||
};
|
||||
|
||||
static void analogix_dp_init(struct analogix_dp_device *dp)
|
||||
{
|
||||
analogix_dp_init_analog_param(dp);
|
||||
analogix_dp_init_interrupt(dp);
|
||||
analogix_dp_enable_sw_function(dp);
|
||||
analogix_dp_config_interrupt(dp);
|
||||
analogix_dp_init_analog_func(dp);
|
||||
analogix_dp_init_hpd(dp);
|
||||
analogix_dp_init_aux(dp);
|
||||
}
|
||||
|
||||
static void analogix_dp_init_dp(struct analogix_dp_device *dp)
|
||||
{
|
||||
analogix_dp_reset(dp);
|
||||
|
||||
analogix_dp_swreset(dp);
|
||||
|
||||
analogix_dp_init_analog_param(dp);
|
||||
analogix_dp_init_interrupt(dp);
|
||||
|
||||
/* SW defined function Normal operation */
|
||||
analogix_dp_enable_sw_function(dp);
|
||||
|
||||
analogix_dp_config_interrupt(dp);
|
||||
analogix_dp_init_analog_func(dp);
|
||||
|
||||
analogix_dp_init_hpd(dp);
|
||||
analogix_dp_init_aux(dp);
|
||||
analogix_dp_init(dp);
|
||||
}
|
||||
|
||||
static int analogix_dp_detect_hpd(struct analogix_dp_device *dp)
|
||||
@@ -1292,6 +1291,8 @@ int analogix_dp_bind(struct device *dev, struct drm_device *drm_dev,
|
||||
return ret;
|
||||
|
||||
pm_runtime_enable(dev);
|
||||
pm_runtime_get_sync(dp->dev);
|
||||
analogix_dp_init(dp);
|
||||
|
||||
ret = analogix_dp_create_bridge(drm_dev, dp);
|
||||
if (ret) {
|
||||
@@ -1303,6 +1304,7 @@ int analogix_dp_bind(struct device *dev, struct drm_device *drm_dev,
|
||||
return 0;
|
||||
|
||||
err_disable_pm_runtime:
|
||||
pm_runtime_put(dp->dev);
|
||||
pm_runtime_disable(dev);
|
||||
|
||||
return ret;
|
||||
@@ -1326,6 +1328,7 @@ void analogix_dp_unbind(struct device *dev, struct device *master,
|
||||
}
|
||||
|
||||
drm_dp_aux_unregister(&dp->aux);
|
||||
pm_runtime_put(dp->dev);
|
||||
pm_runtime_disable(dev);
|
||||
clk_disable_unprepare(dp->clock);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user