android_kernel_samsung_msm8976/drivers/infiniband/hw/ipath
Arthur Jones 8f140b407f IB/ipath: Shadow the gpio_mask register
Once upon a time, GPIO interrupts were rare.  But then a chip bug in
the waldo series forced the use of a GPIO interrupt to signal packet
reception.  This greatly increased the frequency of GPIO interrupts
which have the gpio_mask bits set on the waldo chips.  Other bits in
the gpio_status register are used for I2C clock and data lines, these
bits are usually on.  An "unlikely" annotation leftover from the old
days was improperly applied to these bits, and an unnecessary chip
mmio read was being accessed in the interrupt fast path on waldo.

Remove the stagnant unlikely annotation in the interrupt handler and
keep a shadow copy of the gpio_mask register to avoid the slow mmio
read when testing for interruptable GPIO bits.

Signed-off-by: Arthur Jones <arthur.jones@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2007-05-14 13:22:42 -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: Disable IB link earlier in shutdown sequence 2007-04-18 20:20:59 -07:00
ipath_eeprom.c IB/ipath: Improve handling and reporting of parity errors 2007-04-18 20:20:58 -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: On unrecoverable errors, force link down, LEDs off 2007-04-18 20:20:59 -07:00
ipath_iba6120.c IB/ipath: Shadow the gpio_mask register 2007-05-14 13:22:42 -07:00
ipath_init_chip.c IB/ipath: Fix driver crash (in interrupt or during unload) after chip reset 2007-04-18 20:20:58 -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: Shadow the gpio_mask register 2007-05-14 13:22:42 -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
ipath_mad.c
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 PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -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
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_verbs_mcast.c
ipath_wc_ppc64.c
ipath_wc_x86_64.c
Kconfig
Makefile