linux/drivers/infiniband/hw/ipath
Michael Albaugh 17b2eb9fe6 IB/ipath: Lock and always use shadow copies of GPIO register
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: Michael Albaugh <michael.albaugh@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2007-07-09 20:12:25 -07:00
..
ipath_common.h IB/ipath: Force PIOAvail update entry point 2007-04-18 20:20:58 -07:00
ipath_cq.c IB: Return "maybe missed event" hint from ib_req_notify_cq() 2007-05-06 21:18:11 -07:00
ipath_debug.h IB/ipath: Change packet problems vs chip errors handling and reporting 2007-04-18 20:20:55 -07:00
ipath_diag.c IB/ipath: Prevent random program use of diags interface 2007-04-18 20:20:59 -07:00
ipath_dma.c [PATCH] fix ipath_dma_free_coherent() prototype 2007-03-14 15:27:49 -07:00
ipath_driver.c IB/ipath: Support blinking LEDs with an led_override file 2007-07-09 20:12:25 -07:00
ipath_eeprom.c IB/ipath: Lock and always use shadow copies of GPIO register 2007-07-09 20:12:25 -07:00
ipath_file_ops.c IB/ipath: Fix unit selection when all CPU affinity bits set 2007-04-18 20:20:59 -07:00
ipath_fs.c inode numbering: change libfs sb creation routines to avoid collisions with their root inodes 2007-05-08 11:15:16 -07:00
ipath_iba6110.c IB/ipath: Lock and always use shadow copies of GPIO register 2007-07-09 20:12:25 -07:00
ipath_iba6120.c IB/ipath: Lock and always use shadow copies of GPIO register 2007-07-09 20:12:25 -07:00
ipath_init_chip.c IB/ipath: Lock and always use shadow copies of GPIO register 2007-07-09 20:12:25 -07:00
ipath_intr.c IB/ipath: Shadow the gpio_mask register 2007-05-14 13:22:42 -07:00
ipath_kernel.h IB/ipath: Lock and always use shadow copies of GPIO register 2007-07-09 20:12:25 -07:00
ipath_keys.c IB/ipath: Check reserved memory keys 2007-04-18 20:21:00 -07:00
ipath_layer.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
ipath_layer.h IB/ipath: remove stale references to userspace SMA 2006-09-22 15:22:32 -07:00
ipath_mad.c IB/ipath: Clean up handling of GUID 0 2006-09-28 11:16:32 -07:00
ipath_mmap.c IB/ipath: Don't corrupt pending mmap list when unmapped objects are freed 2007-04-30 17:30:28 -07:00
ipath_mr.c IB/uverbs: Export ib_umem_get()/ib_umem_release() to modules 2007-05-08 18:00:37 -07:00
ipath_qp.c IB/ipath: Don't corrupt pending mmap list when unmapped objects are freed 2007-04-30 17:30:28 -07:00
ipath_rc.c IB/ipath: Fix a race condition when generating ACKs 2007-05-06 21:18:11 -07:00
ipath_registers.h IB/ipath: Improve handling and reporting of parity errors 2007-04-18 20:20:58 -07:00
ipath_ruc.c IB/ipath: Support larger IB_QP_MAX_DEST_RD_ATOMIC and IB_QP_MAX_QP_RD_ATOMIC 2007-04-18 20:20:55 -07:00
ipath_srq.c IB/ipath: Don't corrupt pending mmap list when unmapped objects are freed 2007-04-30 17:30:28 -07:00
ipath_stats.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
ipath_sysfs.c IB/ipath: Support blinking LEDs with an led_override file 2007-07-09 20:12:25 -07:00
ipath_uc.c IB/ipath: Support larger IB_QP_MAX_DEST_RD_ATOMIC and IB_QP_MAX_QP_RD_ATOMIC 2007-04-18 20:20:55 -07:00
ipath_ud.c IB/ipath: Check that a UD work request's address handle is valid 2007-04-18 20:21:00 -07:00
ipath_user_pages.c WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
ipath_verbs_mcast.c IB/ipath: Fix potential deadlock with multicast spinlocks 2007-05-19 08:51:53 -07:00
ipath_verbs.c IB/ipath: Shadow the gpio_mask register 2007-05-14 13:22:42 -07:00
ipath_verbs.h IB/uverbs: Export ib_umem_get()/ib_umem_release() to modules 2007-05-08 18:00:37 -07:00
ipath_wc_ppc64.c IB/ipath: Improved support for PowerPC 2006-09-28 11:16:53 -07:00
ipath_wc_x86_64.c IB/ipath: Call mtrr_del with correct arguments 2006-09-28 11:16:57 -07:00
Kconfig IB/ipath: Depend on CONFIG_NET 2006-11-20 13:06:19 -08:00
Makefile IB/ipath: Implement new verbs DMA mapping functions 2006-12-12 14:28:28 -08:00