disp: msm: dp: skip waits when processing usb disconnect in sim mode
With real DP over Type-C sinks, DP driver requests access to USB combo PHY from USB driver. But in DP SIM mode, there is no real sink and PD management, so the combo PHY is managed by USB driver and DP driver uses it without actually claiming it. If the USB cable is unplugged in this scenario, USB driver notifies the disconnection through an atomic notifier call. It does not expect the handler to go into sleep, but the disconnect handler inside DP driver has multiple wait for events and also sleeps to wait for HW state updates. This change passes a skip_wait flag to all the disable functions to complete disconnect processing by skipping all processor sleeps and event waits. Change-Id: Ia98de0e7fa6b0573e644615ee59015914a93f4cf Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
Este commit está contenido en:

cometido por
Gerrit - the friendly Code Review server

padre
001fa8da90
commit
5043291e1a
@@ -1,5 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
@@ -769,7 +770,7 @@ end:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int dp_audio_off(struct dp_audio *dp_audio)
|
||||
static int dp_audio_off(struct dp_audio *dp_audio, bool skip_wait)
|
||||
{
|
||||
int rc = 0;
|
||||
struct dp_audio_private *audio;
|
||||
@@ -794,9 +795,11 @@ static int dp_audio_off(struct dp_audio *dp_audio)
|
||||
if (work_pending)
|
||||
DP_DEBUG("pending notification work completed\n");
|
||||
|
||||
rc = dp_audio_notify(audio, EXT_DISPLAY_CABLE_DISCONNECT);
|
||||
if (rc)
|
||||
goto end;
|
||||
if (!skip_wait) {
|
||||
rc = dp_audio_notify(audio, EXT_DISPLAY_CABLE_DISCONNECT);
|
||||
if (rc)
|
||||
goto end;
|
||||
}
|
||||
|
||||
DP_DEBUG("success\n");
|
||||
end:
|
||||
|
Referencia en una nueva incidencia
Block a user