Patch "drm/amdgpu/dce8: disable hpd on local panels" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
drm/amdgpu/dce8: disable hpd on local panels
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-amdgpu-dce8-disable-hpd-on-local-panels.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
324082586cc5918e3230f0b2f326656c653201ebMon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Wed, 28 Sep 2016 12:44:20 -0400
Subject: drm/amdgpu/dce8: disable hpd on local panels
From: Alex Deucher <[email protected]>
commit 324082586cc5918e3230f0b2f326656c653201eb upstream.
Otherwise we can get a hotplug interrupt storm when we turn the panel off if hpd interrupts were enabled by the bios.
bug:
https://bugs.freedesktop.org/show_bug.cgi?id=97471
--- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 48 +++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 9 deletions(-)
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c +39 -9
@@ -392,15 +392,6 @@ static void dce_v8_0_hpd_init(struct amdlist_for_each_entry (connector, &dev->mode_config.connector_list, head) {struct amdgpu_connector *amdgpu_connector =to_amdgpu_connector (connector); -if (connector->connector_type == DRM_MODE_CONNECTOR_eDP || - connector->connector_type ==DRM_MODE_CONNECTOR_LVDS ) { -/* don't try to enable hpd on eDP or LVDS avoid breaking the -* aux dp channel on imac and help (but not completely fix) -* https://bugzilla.redhat.com/show_bug.cgi?id=726143 -* also avoid interrupt storms during dpms. -*/ -continue ; - }switch (amdgpu_connector->hpd.hpd) {case AMDGPU_HPD_1 :WREG32 (mmDC_HPD1_CONTROL, tmp);
@@ -423,6 +414,45 @@ static void dce_v8_0_hpd_init(struct amddefault :break ; } + +if (connector->connector_type == DRM_MODE_CONNECTOR_eDP || + connector->connector_type ==DRM_MODE_CONNECTOR_LVDS ) { +/* don't try to enable hpd on eDP or LVDS avoid breaking the +* aux dp channel on imac and help (but not completely fix) +* https://bugzilla.redhat.com/show_bug.cgi?id=726143 +* also avoid interrupt storms during dpms. +*/ +u32 dc_hpd_int_cntl_reg, dc_hpd_int_cntl; + +switch (amdgpu_connector->hpd.hpd) { +case AMDGPU_HPD_1 : + dc_hpd_int_cntl_reg = mmDC_HPD1_INT_CONTROL; +break ; +case AMDGPU_HPD_2 : + dc_hpd_int_cntl_reg = mmDC_HPD2_INT_CONTROL; +break ; +case AMDGPU_HPD_3 : + dc_hpd_int_cntl_reg = mmDC_HPD3_INT_CONTROL; +break ; +case AMDGPU_HPD_4 : + dc_hpd_int_cntl_reg = mmDC_HPD4_INT_CONTROL; +break ; +case AMDGPU_HPD_5 : + dc_hpd_int_cntl_reg = mmDC_HPD5_INT_CONTROL; +break ; +case AMDGPU_HPD_6 : + dc_hpd_int_cntl_reg = mmDC_HPD6_INT_CONTROL; +break ; +default : +continue ; + } + + dc_hpd_int_cntl =RREG32 (dc_hpd_int_cntl_reg); + dc_hpd_int_cntl &= ~DC_HPD1_INT_CONTROL__DC_HPD1_INT_EN_MASK ; +WREG32 (dc_hpd_int_cntl_reg, dc_hpd_int_cntl); +continue ; + } +dce_v8_0_hpd_set_polarity (adev, amdgpu_connector->hpd.hpd);amdgpu_irq_get (adev, &adev->hpd_irq, amdgpu_connector->hpd.hpd); }
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/drm-amdgpu-dce11-add-missing-drm_mode_config_cleanup-call.patch queue-4.4/drm-radeon-si-dpm-fix-phase-shedding-setup.patch queue-4.4/drm-amdgpu-dce11-disable-hpd-on-local-panels.patch queue-4.4/drm-amdgpu-dce8-disable-hpd-on-local-panels.patch queue-4.4/drm-amdgpu-dce10-disable-hpd-on-local-panels.patch queue-4.4/drm-amdgpu-fix-ib-alignment-for-uvd.patch queue-4.4/drm-amdgpu-change-vblank_time-s-calculation-method-to-reduce-computational-error.patch queue-4.4/drm-radeon-narrow-asic_init-for-virtualization.patch queue-4.4/drm-radeon-change-vblank_time-s-calculation-method-to-reduce-computational-error.patch