android_kernel_xiaomi_sm8350/drivers/ide/pci
Bartlomiej Zolnierkiewicz 1abb8a8b84 serverworks: fix CSB6 tuning logic
Problem noticed by Joe Zbiciak, see

	http://kerneltrap.org/node/8252

for details.

On CSB6 the driver is using BIOS settings and not programming DMA/PIO timings
itself.  However the logic was completely broken and resulted in wrong timings
being silently allowed (instead of being corrected by the driver).

This bug would explain some data corruption/timeout issues with Serverworks
MegaIDE in RAID mode that Alan Cox has fixed recently with:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2074a106f52b6371885afbd714e929d60d0e3f64

For 2.6.23 we may be better off with completely switching the driver to always
programming timings (libata pata_serverworks.c driver is doing things this way
and there were no problems reported so far) but for 2.6.22 lets fix the bug
in the simplest and the least intrusive way.

Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
2007-06-08 15:14:28 +02:00
..
aec62xx.c ide: add ide_tune_dma() helper 2007-05-10 00:01:09 +02:00
alim15x3.c alim15x3: use ide_tune_dma() 2007-05-16 00:51:43 +02:00
amd74xx.c ide: make /proc/ide/ optional 2007-05-10 00:01:09 +02:00
atiixp.c add the IDE device ID for ATI SB700 2007-05-24 02:42:37 +02:00
cmd64x.c ide: remove ide_dma_enable() 2007-05-16 00:51:46 +02:00
cmd640.c ide: remove a ton of pointless #undef REALLY_SLOW_IO 2007-03-03 17:48:54 +01:00
cs5520.c ide: add ide_proc_register_port() 2007-05-10 00:01:11 +02:00
cs5530.c ide: remove ide_dma_enable() 2007-05-16 00:51:46 +02:00
cs5535.c ide: add ide_tune_dma() helper 2007-05-10 00:01:09 +02:00
cy82c693.c ide: use PIO/MMIO operations directly where possible (v2) 2007-02-17 02:40:25 +01:00
delkin_cb.c ide: add "initializing" argument to ide_register_hw() 2007-05-10 00:01:10 +02:00
generic.c ide: remove a ton of pointless #undef REALLY_SLOW_IO 2007-03-03 17:48:54 +01:00
hpt34x.c ide: add ide_tune_dma() helper 2007-05-10 00:01:09 +02:00
hpt366.c ide: add ide_tune_dma() helper 2007-05-10 00:01:09 +02:00
it821x.c ide: use ide_tune_dma() part #2 2007-05-16 00:51:43 +02:00
it8213.c ide: add ide_tune_dma() helper 2007-05-10 00:01:09 +02:00
jmicron.c ide: add ide_tune_dma() helper 2007-05-10 00:01:09 +02:00
Makefile scc_pata: dependency fix 2007-03-17 21:57:25 +01:00
ns87415.c ide: add ide_set_dma() helper (v2) 2007-02-17 02:40:26 +01:00
opti621.c ide: remove some obsoleted kernel params (v2) 2007-03-03 17:48:55 +01:00
pdc202xx_new.c pdc202xx_new: use ide_tune_dma() 2007-05-16 00:51:43 +02:00
pdc202xx_old.c ide: use ide_tune_dma() part #2 2007-05-16 00:51:43 +02:00
piix.c ide: add ide_tune_dma() helper 2007-05-10 00:01:09 +02:00
rz1000.c ide: remove a ton of pointless #undef REALLY_SLOW_IO 2007-03-03 17:48:54 +01:00
sc1200.c ide: remove ide_dma_enable() 2007-05-16 00:51:46 +02:00
scc_pata.c ide: remove ide_dma_enable() 2007-05-16 00:51:46 +02:00
serverworks.c serverworks: fix CSB6 tuning logic 2007-06-08 15:14:28 +02:00
sgiioc4.c ide: add ide_proc_register_port() 2007-05-10 00:01:11 +02:00
siimage.c ide: remove ide_dma_enable() 2007-05-16 00:51:46 +02:00
sis5513.c sis5513: PIO mode setup fixes 2007-05-16 00:51:42 +02:00
sl82c105.c sl82c105: Switch to ref counting API 2007-05-16 00:51:46 +02:00
slc90e66.c ide: add ide_tune_dma() helper 2007-05-10 00:01:09 +02:00
tc86c001.c ide: add ide_tune_dma() helper 2007-05-10 00:01:09 +02:00
triflex.c ide: add ide_tune_dma() helper 2007-05-10 00:01:09 +02:00
trm290.c ide: use PIO/MMIO operations directly where possible (v2) 2007-02-17 02:40:25 +01:00
via82cxxx.c ide: add ide_set_dma() helper (v2) 2007-02-17 02:40:26 +01:00