Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/radeon: Sprinkle drm_modeset_lock_all to appease locking checks

In

commit 7a3f3d6667f5f9ffd1517f6b21d64bbf5312042c
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Thu Jul 9 23:44:28 2015 +0200

drm: Check locking in drm_for_each_connector

I added locking checks to drm_for_each_connector but failed that
through drm_helper_connector_dpms -> drm_helper_choose_encoder_dpms
it's used in a few more places in the radeon resume/suspend code.

Fix them up.

Note that we could use the connector iterator macros in there too, but
that's for the future.

Reported-and-tested-by: Borislav Petkov <bp@alien8.de>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Daniel Vetter and committed by
Alex Deucher
6adaed5b 5c3422b0

+4
+4
drivers/gpu/drm/radeon/radeon_device.c
··· 1573 1573 1574 1574 drm_kms_helper_poll_disable(dev); 1575 1575 1576 + drm_modeset_lock_all(dev); 1576 1577 /* turn off display hw */ 1577 1578 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { 1578 1579 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); 1579 1580 } 1581 + drm_modeset_unlock_all(dev); 1580 1582 1581 1583 /* unpin the front buffers and cursors */ 1582 1584 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { ··· 1736 1734 if (fbcon) { 1737 1735 drm_helper_resume_force_mode(dev); 1738 1736 /* turn on display hw */ 1737 + drm_modeset_lock_all(dev); 1739 1738 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { 1740 1739 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); 1741 1740 } 1741 + drm_modeset_unlock_all(dev); 1742 1742 } 1743 1743 1744 1744 drm_kms_helper_poll_enable(dev);