disp: msm: dp: fix for screen freeze on dp disconnect
The DP display driver issues an audio disconnect notification after the video disconnect notification. Sometimes audio driver is waiting for the video commit to complete before turning off the audio engine. In such cases, there is a brief screen freeze observed on the primary. In other cases, when the off call from audio driver gets delayed, a momentary screen freeze is seen. The audio notification happens as part of the display commit call. The order of notification is video and then audio while processing display connect and the same order is followed for disconnect also, which is causing this issue. These changes will modify the order of notification to send audio disconnect first and then video while processing DP cable disconnect. Change-Id: I8bece39c164620b319d971e5a2597d9dc187566e Signed-off-by: Sankeerth Billakanti <sbillaka@codeaurora.org> Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
このコミットが含まれているのは:
@@ -1,6 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/of_platform.h>
|
||||
@@ -766,6 +766,12 @@ static int dp_audio_off(struct dp_audio *dp_audio)
|
||||
}
|
||||
|
||||
audio = container_of(dp_audio, struct dp_audio_private, dp_audio);
|
||||
|
||||
if (!atomic_read(&audio->session_on)) {
|
||||
DP_DEBUG("audio already off\n");
|
||||
return rc;
|
||||
}
|
||||
|
||||
ext = &audio->ext_audio_data;
|
||||
|
||||
work_pending = cancel_delayed_work_sync(&audio->notify_delayed_work);
|
||||
|
新しいイシューから参照
ユーザーをブロックする