disp: msm: dp: reset combo phy if peer_usb_comm is disabled

Some Type-C multi-port adapters which do not support usb connection
are advertising the multi-functionality in DP alt mode. If
multi-functionality is preferred, the DP driver assumes the adapter
supports usb connection and USB phy driver will program the PHY mode
to DP+USB.

In source mode, usb PD driver checks for the peer_usb_connection
of the adapter. If it does not support usb then it will stop usb stack
and update the PHY MODE to USB only mode from phy_suspend path.
The result is, usb may program the combo PHY to usb only mode when DP
is already connected. This is causing AUX read/write timeouts when DP
is trying to access the phy registers.

To fix this issue, a flag in SVID connect handler in usbpd driver to
notify peer_usb_comm support to the DP driver. DP driver will read this
flag and program the phy mode.

Change-Id: I0164b239bf2832d480795d90f5e9fc221bcc12ba
Signed-off-by: Sankeerth Billakanti <sbillaka@codeaurora.org>
此提交包含在:
Sankeerth Billakanti
2019-09-24 08:21:52 +05:30
提交者 Gerrit - the friendly Code Review server
父節點 1643b63bd7
當前提交 fb9ea90d58
共有 4 個檔案被更改,包括 8 行新增3 行删除

查看文件

@@ -781,7 +781,8 @@ static void dp_display_host_init(struct dp_display_private *dp)
if (dp->hpd->orientation == ORIENTATION_CC2)
flip = true;
reset = dp->debug->sim_mode ? false : !dp->hpd->multi_func;
reset = dp->debug->sim_mode ? false :
(!dp->hpd->multi_func || !dp->hpd->peer_usb_comm);
dp->power->init(dp->power, flip);
dp->hpd->host_init(dp->hpd, &dp->catalog->hpd);