• Geert Uytterhoeven's avatar
    fbdev: sh_mobile_hdmi: Re-init regs before irq re-enable on resume · a00d91ea
    Geert Uytterhoeven authored
    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: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    a00d91ea
sh_mobile_hdmi.c 52.3 KB