• Sudeep Holla's avatar
    irqchip/gicv3: Remove disabling redistributor and group1 non-secure interrupts · ccd9432a
    Sudeep Holla authored
    As per the GICv3 specification, to power down a processor using GICv3
    and allow automatic power-on if an interrupt must be sent to a processor,
    software must set Enable to zero for all interrupt groups(by writing
    to GICC_CTLR or ICC_IGRPEN{0,1}_EL1/3 as appropriate.
    
    When commit 3708d52f ("irqchip: gic-v3: Implement CPU PM notifier")
    was introduced there were no firmware implementations(in particular PSCI)
    handling this.
    
    Linux kernel may not be aware of the CPU power state details and might
    fail to identify the power states that require quiescing the CPU
    interface. Even if it can be aware of those details, it can't determine
    which CPU power state have been triggered at the platform level and how
    the power control is implemented.
    
    This patch make disabling redistributor and group1 non-secure interrupts
    in the power down path and re-enabling of redistributor in the power-up
    path conditional. It will be handled in the kernel if and only if the
    non-secure accesses are permitted to access and modify control registers.
    It is left to the platform implementation otherwise.
    
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Jason Cooper <jason@lakedaemon.net>
    Tested-by: default avatarChristopher Covington <cov@codeaurora.org>
    Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    ccd9432a
irq-gic-v3.c 35.2 KB