OSDN Git Service

fbdev: sh_mobile_hdmi: Re-init regs before irq re-enable on resume
authorGeert Uytterhoeven <geert+renesas@glider.be>
Tue, 23 Sep 2014 12:21:58 +0000 (14:21 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 30 Sep 2014 10:42:13 +0000 (13:42 +0300)
commita00d91ea264f974b3d57babce143ba157921629a
tree6a379687526afecf02b932d0064896f34ca6e453
parent5b789da8a7fc357661fc61faaf853e9161cc9700
fbdev: sh_mobile_hdmi: Re-init regs before irq re-enable on resume

When the PM domain containing the HDMI hardware block is powered down,
the HDMI register values (incl. interrupt polarity settings) are lost.
During resume, after powering up the PM domain, interrupts are
re-enabled, and an interrupt storm happens due to incorrect interrupt
polarity settings:

    irq 163: nobody cared (try booting with the "irqpoll" option)
    ...
    Disabling IRQ #163

To fix this, re-initialize the interrupt polarity settings, and the
htop1 register block (if present), during resume.

As the .suspend_noirq() and .resume_noirq() callbacks are not called
when using the generic PM domain, the normal .resume() callback is used,
and the device interrupt needs to be disabled/enabled manually.

This fixes resume from s2ram with power down of the A4MP PM domain on
r8a7740/Armadillo.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/fbdev/sh_mobile_hdmi.c