linux_dsm_epyc7002/drivers
Sarah Sharp c21599a361 USB: xhci: Reduce reads and writes of interrupter registers.
The interrupter register set includes a register that says whether interrupts
are pending for each event ring (the IP bit).  Each MSI-X vector will get its
own interrupter set with separate IP bits.  The status register includes an
"Event Interrupt (EINT)" bit that is set when an IP bit is set in any of the
interrupters.

When PCI interrupts are used, the EINT bit exactly mirrors the IP bit in the
single interrupter set, and it is a waste of time to check both registers when
trying to figure out if the xHC interrupted or another device on the shared IRQ
line interrupted.  Only check the IP bit to reduce register reads.

The IP bit is automatically cleared by the xHC when MSI or MSI-X is enabled.  It
doesn't make sense to read that register to check for shared interrupts (since
MSI and MSI-X aren't shared).  It also doesn't make sense to write to that
register to clear the IP bit, since it is cleared by the hardware.

We can tell whether MSI or MSI-X is enabled by looking at the irq number in
hcd->irq.  If it's -1, we know MSI or MSI-X is enabled.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-08-10 14:35:45 -07:00
..
accessibility
acpi
amba
ata
atm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-08-09 21:05:52 -07:00
auxdisplay
base drivers/base/node.c: reduce stack usage of node_read_meminfo() 2010-08-09 20:45:02 -07:00
block
bluetooth
cdrom
char Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-08-09 21:05:52 -07:00
clocksource
connector
cpufreq
cpuidle cpuidle: extend cpuidle and menu governor to handle dynamic states 2010-08-09 20:45:04 -07:00
crypto
dca
dio
dma Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx 2010-08-09 21:00:07 -07:00
edac
eisa
firewire
firmware edd: fix possible memory leak in edd_init() error path 2010-08-09 20:45:09 -07:00
gpio
gpu drm: fix fallouts from slow-work -> wq conversion 2010-08-09 12:18:44 +02:00
hid
hwmon hwmon: f71882fg: add support for the Fintek F71808E 2010-08-09 20:45:10 -07:00
i2c
ide tx493xide: use min_t() macro instead of min() 2010-08-09 03:17:55 -07:00
idle
ieee1394
ieee802154
infiniband
input Revert "Input: appletouch - fix integer overflow issue" 2010-08-09 13:48:08 +10:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-08-09 21:05:52 -07:00
leds
lguest
macintosh
mca
md
media
memstick
message
mfd
misc hmc6352: add driver for the HMC6352 compass 2010-08-09 20:45:10 -07:00
mmc
mtd Merge git://git.infradead.org/mtd-2.6 2010-08-10 11:49:21 -07:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-08-09 21:05:52 -07:00
nubus
of
oprofile
parisc
parport
pci Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx 2010-08-09 21:00:07 -07:00
pcmcia
platform
pnp
power
pps
ps3
rapidio
regulator
rtc
s390 s390: remove WARN_ON for misc_deregister() failures 2010-08-09 20:45:06 -07:00
sbus
scsi
serial Merge branch 'rs485fix' of git://www.jni.nu/cris 2010-08-09 21:04:23 -07:00
sfi
sh
sn
spi
ssb
staging USB: convert usb_hcd bitfields into atomic flags 2010-08-10 14:35:37 -07:00
tc
telephony
thermal
uio
usb USB: xhci: Reduce reads and writes of interrupter registers. 2010-08-10 14:35:45 -07:00
uwb
vhost
video drivers/video/w100fb.c: ignore void return value / fix build failure 2010-08-09 20:44:53 -07:00
virtio
vlynq
w1
watchdog
xen
zorro
Kconfig
Makefile