aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_drv.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2022-09-06 22:38:52 +0200
committerPatrik Jakobsson <patrik.r.jakobsson@gmail.com>2022-09-09 14:04:30 +0200
commit235fdbc32d559db21e580f85035c59372704f09e (patch)
treecac1b4e444decfd5521b4b8ce8f1af9d62971765 /drivers/gpu/drm/drm_drv.c
parentdrm/gma500: Fix WARN_ON(lock->magic != lock) error (diff)
downloadlinux-dev-235fdbc32d559db21e580f85035c59372704f09e.tar.xz
linux-dev-235fdbc32d559db21e580f85035c59372704f09e.zip
drm/gma500: Fix (vblank) IRQs not working after suspend/resume
Fix gnome-shell (and other page-flip users) hanging after suspend/resume because of the gma500's IRQs not working. This fixes 2 problems with the IRQ handling: 1. gma_power_off() calls gma_irq_uninstall() which does a free_irq(), but gma_power_on() called gma_irq_preinstall() + gma_irq_postinstall() which do not call request_irq. Replace the pre- + post-install calls with gma_irq_install() which does prep + request + post. 2. After fixing 1. IRQs still do not work on a Packard Bell Dot SC (Intel Atom N2600, cedarview) netbook. Cederview uses MSI interrupts and it seems that the BIOS re-configures things back to normal APIC based interrupts during S3 suspend. There is some MSI PCI-config registers save/restore code which tries to deal with this, but on the Packard Bell Dot SC this is not sufficient to restore MSI IRQ functionality after a suspend/resume. Replace the PCI-config registers save/restore with pci_disable_msi() on suspend + pci_enable_msi() on resume. Fixing e.g. gnome-shell hanging. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220906203852.527663-4-hdegoede@redhat.com
Diffstat (limited to 'drivers/gpu/drm/drm_drv.c')
0 files changed, 0 insertions, 0 deletions