mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
drm/bridge: analogix_dp: Fix aux not work before modeset
Change-Id: I8b00df83d5c3a17b0c73dba66d06a20c55575209 Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
This commit is contained in:
@@ -288,10 +288,12 @@ void analogix_dp_set_analog_power_down(struct analogix_dp_device *dp,
|
||||
mask = AUX_PD;
|
||||
|
||||
reg = analogix_dp_read(dp, phy_pd_addr);
|
||||
if (enable)
|
||||
if (enable) {
|
||||
reg &= ~(DP_INC_BG | DP_EXP_BG);
|
||||
reg |= mask;
|
||||
else
|
||||
} else {
|
||||
reg &= ~mask;
|
||||
}
|
||||
analogix_dp_write(dp, phy_pd_addr, reg);
|
||||
break;
|
||||
case CH0_BLOCK:
|
||||
@@ -516,6 +518,7 @@ void analogix_dp_init_aux(struct analogix_dp_device *dp)
|
||||
analogix_dp_write(dp, ANALOGIX_DP_AUX_CH_DEFER_CTL, reg);
|
||||
|
||||
/* Enable AUX channel module */
|
||||
analogix_dp_enable_sw_function(dp);
|
||||
reg = analogix_dp_read(dp, ANALOGIX_DP_FUNC_EN_2);
|
||||
reg &= ~AUX_FUNC_EN_N;
|
||||
analogix_dp_write(dp, ANALOGIX_DP_FUNC_EN_2, reg);
|
||||
@@ -1134,6 +1137,10 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
|
||||
if (WARN_ON(msg->size > 16))
|
||||
return -E2BIG;
|
||||
|
||||
reg = analogix_dp_read(dp, ANALOGIX_DP_FUNC_EN_2);
|
||||
if (reg & AUX_FUNC_EN_N)
|
||||
analogix_dp_init_aux(dp);
|
||||
|
||||
/* Clear AUX CH data buffer */
|
||||
reg = BUF_CLR;
|
||||
analogix_dp_write(dp, ANALOGIX_DP_BUFFER_DATA_CTL, reg);
|
||||
|
||||
Reference in New Issue
Block a user