summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/irq/irq_service.h
diff options
context:
space:
mode:
authorQingqing Zhuo <qingqing.zhuo@amd.com>2021-08-17 16:29:07 -0400
committerAlex Deucher <alexander.deucher@amd.com>2021-09-14 15:57:10 -0400
commit2a50edbf10c8c56e930bfb53d8f9f00a33fd837e (patch)
tree99f27ae2ace3521ac8e31b8a55bd61d3ed1d50dc /drivers/gpu/drm/amd/display/dc/irq/irq_service.h
parentd020970959169627d59a711769f8c4b87bf5f90c (diff)
drm/amd/display: Apply w/a for hard hang on HPD
[Why] HPD disable and enable sequences are not mutually exclusive on Linux. For HPDs that spans under 1s (i.e. HPD low = 1s), part of the disable sequence (specifically, a request to SMU to lower refclk) could come right before the call to PHY enablement, causing DMUB to access an irresponsive PHY and thus a hard hang on the system. [How] Disable 48mhz refclk off when there is any HPD status in connected state. Reviewed-by: Hersen Wu <hersenwu@amd.com> Acked-by: Mikita Lipski <mikita.lipski@amd.com> Signed-off-by: Qingqing Zhuo <qingqing.zhuo@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/irq/irq_service.h')
-rw-r--r--drivers/gpu/drm/amd/display/dc/irq/irq_service.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/irq/irq_service.h b/drivers/gpu/drm/amd/display/dc/irq/irq_service.h
index dbfcb096eedd..e60b82480093 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/irq_service.h
+++ b/drivers/gpu/drm/amd/display/dc/irq/irq_service.h
@@ -69,6 +69,10 @@ struct irq_service {
const struct irq_service_funcs *funcs;
};
+const struct irq_source_info *find_irq_source_info(
+ struct irq_service *irq_service,
+ enum dc_irq_source source);
+
void dal_irq_service_construct(
struct irq_service *irq_service,
struct irq_service_init_data *init_data);