• Michael Albaugh's avatar
    IB/ipath: Lock and always use shadow copies of GPIO register · 17b2eb9f
    Michael Albaugh authored
    The new LED blinking interface adds more contention for the
    unprotected GPIO pins that were already shared, though not commonly at
    the same time.  We add locks to the accesses to these pins so that
    Read-Modify-Write is now safe.  Some of these locks are added at
    interrupt context, so we shadow the registers which drive and inspect
    these pins to avoid the mmio read/writes.  This mitigates the effects
    of the locks and hastens us through the interrupt.
    
    Add locking and always use shadows for registers controlling GPIO pins
    (ExtCtrl and GPIOout). The use of shadows implies doing less I/O,
    which can make I2C operation too fast on some platforms. An explicit
    udelay(1) in SCL manipulation fixes that.
    Signed-off-by: default avatarMichael Albaugh <michael.albaugh@qlogic.com>
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    17b2eb9f
ipath_init_chip.c 30.5 KB