android_kernel_xiaomi_sdm845/drivers
Tejun Heo 459ad68893 libata: kill spurious NCQ completion detection
Spurious NCQ completion detection implemented in ahci was incorrect.
On AHCI receving and processing FISes and raising interrupts are not
interlocked and spurious interrupts are expected.

For example, if an interrupt occurs while interrupt handler is running
and the running interrupt handler handles the event the new IRQ
indicated, after IRQ handler finishes, it will be executed again
because IRQ pending bit is set by the new interrupt but there won't be
anything to process.

Please read the following message for more information.

  http://article.gmane.org/gmane.linux.ide/26012

This patch...

* Removes all spurious IRQ whining from ahci.  Spurious NCQ completion
  detection was completely wrong.  Spurious D2H Register FIS taught us
  that some early drives send spurious D2H Register FIS with I bit set
  while NCQ commands are in progress but none of recent drives does
  that and even the ones which show such behavior can do NCQ fine.

* Kills all NCQ blacklist entries which were added because of spurious
  NCQ completions.  I tracked down each commit and verified all
  removed ones are actually added because of spurious completions.

  WD740ADFD-00NLR1 wasn't deleted but moved upward because the drive
  not only had spurious NCQ completions but also is slow on sequential
  data transfers if NCQ is enabled.

  Maxtor 7V300F0 was added by 0e3dbc01d5
  from Alan Cox.  I can only find evidences that the drive only had
  troubles with spuruious completions by searching the mailing list.
  This entry needs to be verified and removed if it doesn't have other
  NCQ related problems.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-12-07 15:27:54 -05:00
..
acorn/char unicode diacritics support 2007-10-17 08:42:52 -07:00
acpi ACPI: move timer broadcast before busmaster disable 2007-12-07 19:16:17 +01:00
amba
ata libata: kill spurious NCQ completion detection 2007-12-07 15:27:54 -05:00
atm [ATM]: [he] initialize lock and tasklet earlier 2007-11-27 11:03:16 +08:00
auxdisplay
base create /sys/.../power when CONFIG_PM is set 2007-11-28 13:53:53 -08:00
block virtio: fix module/device unloading 2007-11-19 11:20:42 +11:00
bluetooth [Bluetooth] Add generic driver for Bluetooth USB devices 2007-10-22 02:59:46 -07:00
cdrom SG: audit of drivers that use blk_rq_map_sg() 2007-10-24 13:21:21 +02:00
char Pull apm-freeze-fix into release branch 2007-12-06 16:51:29 -05:00
clocksource
connector [CONNECTOR]: Fix a spurious kfree_skb() call 2007-10-30 21:29:47 -07:00
cpufreq [CPUFREQ] Fix up whitespace in conservative governor. 2007-10-22 16:49:09 -04:00
cpuidle cpuidle: remove unused exports 2007-10-29 17:27:50 -04:00
crypto uml: add !UML dependencies 2007-12-03 08:13:17 -08:00
dca
dio
dma dmaengine: correct invalid assumptions in the Kconfig text 2007-11-29 09:24:53 -08:00
edac i5000_edac: no need to __stringify() KBUILD_BASENAME 2007-11-14 18:45:41 -08:00
eisa
firewire firewire: fw-sbp2: fix refcounting 2007-11-07 01:59:28 +01:00
firmware define global BIT macro 2007-10-19 11:53:42 -07:00
hid HID: Don't access input_dev->private directly 2007-10-31 13:30:35 +01:00
hwmon HWMON: coretemp, suspend fix 2007-12-04 01:35:32 -05:00
i2c i2c/eeprom: Recognize VGN as a valid Sony Vaio name prefix 2007-11-15 19:24:03 +01:00
ide ide: More TSST drives with broken cable detection 2007-11-27 21:35:57 +01:00
ieee1394 ieee1394: iso and async streams: s/g list fix 2007-11-04 14:31:16 +01:00
infiniband IB/ehca: Fix static rate if path faster than link 2007-11-30 16:19:41 -08:00
input spi: use simplified spi_sync() calling convention 2007-12-05 09:21:19 -08:00
isdn I4L: fix isdn_ioctl memory overrun vulnerability 2007-12-03 08:13:17 -08:00
kvm KVM: SVM: Fix FPU leak while emulating clts 2007-11-27 15:38:18 +02:00
leds leds: Fix led trigger locking bugs 2007-12-07 09:06:53 +00:00
lguest virtio: fix module/device unloading 2007-11-19 11:20:42 +11:00
macintosh [POWERPC] windfarm: Fix windfarm thread freezer interaction 2007-11-08 14:15:34 +11:00
mca
md raid5: fix unending write sequence 2007-11-14 18:45:39 -08:00
media V4L/DVB (6548): pvrusb2: Fix oops on module removal 2007-11-04 21:41:30 -02:00
message i2o: debug messages corrected 2007-11-05 15:12:31 -08:00
mfd MFD: SM501 debug typo fix 2007-11-29 09:24:53 -08:00
misc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2007-11-27 14:20:35 -08:00
mmc spi: use simplified spi_sync() calling convention 2007-12-05 09:21:19 -08:00
mtd Eliminate pointless casts from void* in a few driver irq handlers. 2007-10-23 19:53:16 -04:00
net [NIU]: Fix link LED handling. 2007-12-07 01:05:47 -08:00
nubus
of [SPARC/64]: Consolidate of_register_driver 2007-10-17 21:17:42 -07:00
oprofile oProfile: oops when profile_pc() returns ~0LU 2007-11-14 18:45:37 -08:00
parisc [PARISC] lba_pci: pci_claim_resources disabled expansion roms 2007-12-06 09:38:26 -08:00
parport [PARPORT] Remove unused 'irq' argument from parport irq functions 2007-10-23 19:53:16 -04:00
pci pci hotplug: kernel-doc fixes 2007-11-28 14:35:26 -08:00
pcmcia remove asm/bitops.h includes 2007-10-19 11:53:41 -07:00
pnp drivers/pnp/resource.c: Add missing pci_dev_put 2007-11-29 09:24:52 -08:00
power Merge git://git.infradead.org/battery-2.6 2007-10-22 19:20:52 -07:00
ps3 ps3: prefix all ps3-specific kernel modules with `ps3-' 2007-11-29 09:24:51 -08:00
rapidio
rtc spi: use simplified spi_sync() calling convention 2007-12-05 09:21:19 -08:00
s390 Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2007-12-04 09:37:39 -08:00
sbus vfc_dev conversion to mutex: fallout 2007-10-20 15:04:06 -07:00
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2007-12-03 08:20:11 -08:00
serial Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-11-30 08:11:18 -08:00
sh superhyway: Handle device_register() retval properly. 2007-11-07 11:13:55 +09:00
sn
spi Blackfin SPI driver: reconfigure speed_hz and bits_per_word in each spi transfer 2007-12-05 09:21:20 -08:00
ssb ssb: Fix PCMCIA-host lowlevel bus access 2007-11-10 22:01:53 -08:00
tc lk201: remove obsolete driver 2007-10-17 08:42:57 -07:00
telephony telephony: phonedev panics if unregistering device not registered [Bug 9266] 2007-11-05 15:12:33 -08:00
uio
usb revert "keyspan: init termios properly" 2007-11-29 09:24:54 -08:00
video x86_64 EFI boot support: EFI frame buffer driver 2007-11-29 09:24:54 -08:00
virtio virtio: fix module/device unloading 2007-11-19 11:20:42 +11:00
w1 W1: fix memset size error 2007-11-14 18:45:36 -08:00
watchdog Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog 2007-11-02 19:36:26 -07:00
xen Add missing newlines to some uses of dev_<level> messages 2007-10-18 14:37:28 -07:00
zorro Amiga zorro bus: Add missing zorro_device_remove() 2007-11-26 19:15:31 -08:00
Kconfig Virtio interface 2007-10-23 15:49:54 +10:00
Makefile Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-10-23 16:37:29 -07:00