• Lukas Wunner's avatar
    serial: pl011: Use cached copy of IMSC register · d3a96c94
    Lukas Wunner authored
    Commit 075167ed ("drivers: PL011: replace UART_MIS reading with
    _RIS & _IMSC") amended this driver's interrupt handler to read the
    Raw Interrupt Status (RIS) and Interrupt Mask Set/Clear (IMSC) registers
    instead of the Masked Interrupt Status (MIS) register.  The change was
    made to attain compatibility with SBSA UARTs which lack the MIS register.
    
    However the IMSC register is cached by the driver.  Using the cached
    copy saves one register read per interrupt.
    
    I've tested this change successfully on a BCM2837 (Raspberry Pi CM3).
    
    Cc: Mathias Duckeck <m.duckeck@kunbus.de>
    Cc: Phil Elwell <phil@raspberrypi.org>
    Cc: Stefan Wahren <stefan.wahren@i2se.com>
    Cc: Andre Przywara <andre.przywara@arm.com>
    Cc: Mark Langsdorf <mlangsdo@redhat.com>
    Cc: Naresh Bhat <nbhat@cavium.com>
    Cc: Russell King <linux@armlinux.org.uk>
    Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    d3a96c94
amba-pl011.c 70.6 KB