kernel-ark/drivers/ide/pci
Bartlomiej Zolnierkiewicz 6b8cf7724b sis5513: PIO mode setup fixes
* limit max PIO mode to PIO4, this driver doesn't support PIO5 and attempt
  to program PIO5 by config_art_rwp_pio() could result in incorrect PIO
  timings being programmed and possibly the data corruption (for < ATA100
  family chipsets PIO0 timings were used, for ATA100 and ATA100a - the random
  content of test1 variable was used, for ATA133 - MWDMA0 timings were used)

* BUG() in sis5513_tune_chipset() if somebody tries to force unsupported PIO5,
  also cleanup this function a bit while at it

* add comment about PIO0 timings for < ATA100 family chipsets

* remove open-coded best PIO mode selection from config_art_rwp_pio(),
  it contained numerous bugs:

  - it didn't check for validity of id->eide_pio_modes and id->eide_pio_iordy
    before using them

  - it tried to found out maximum PIO mode basing on minimum IORDY cycle time
    (moreover wrong cycle times were used for PIO1/5)

  - it was overriding PIO blacklist and conservative PIO "downgrade" done
    by ide_get_best_pio_mode()

* use sis5513_tune_drive() instead of config_art_rwp_pio()
  in sis5513_config_xfer_rate() so the correct PIO mode is also set
  on drive even if the device is not IORDY/DMA capable

* config_art_rwp_pio() was always setting the best possible mode and not
  the wanted one - fix it and move ide_get_best_pio_mode() call to
  config_chipset_for_pio()

* don't use ide_find_best_mode() in config_chipset_for_pio(), it was being
  overriden by config_art_rwp_pio() for the host timings anyway + we need to
  set the same PIO mode on the device and the host

* pass correct "pio" argument (255 instead of 5) to sis5513_tune_drive() call
  in sis5513_config_xfer_rate() so the best PIO mode is set on the drive
  and not PIO4

* rename sis5513_tune_drive() to sis5513_tuneproc()
  and config_chipset_for_pio() to sis5513_tune_driver()

* bump driver version

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
2007-05-16 00:51:42 +02:00
..
aec62xx.c ide: add ide_tune_dma() helper 2007-05-10 00:01:09 +02:00
alim15x3.c ide: make /proc/ide/ optional 2007-05-10 00:01:09 +02:00
amd74xx.c ide: make /proc/ide/ optional 2007-05-10 00:01:09 +02:00
atiixp.c ide: add ide_tune_dma() helper 2007-05-10 00:01:09 +02:00
cmd64x.c ide: make /proc/ide/ optional 2007-05-10 00:01:09 +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: make ide_hwif_t.ide_dma_{host_off,off_quietly} void (v2) 2007-02-17 02:40:26 +01: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: rework the code for selecting the best DMA transfer mode (v3) 2007-05-10 00:01:08 +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 ide: cable detection fixes (take 2) 2007-05-10 00:01:10 +02:00
pdc202xx_old.c pdc202xx_old: rewrite mode programming code (v2) 2007-05-16 00:51:41 +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: make ide_hwif_t.ide_dma_{host_off,off_quietly} void (v2) 2007-02-17 02:40:26 +01:00
scc_pata.c ide: rework the code for selecting the best DMA transfer mode (v3) 2007-05-10 00:01:08 +02:00
serverworks.c serverworks: PIO mode setup fixes 2007-05-16 00:51:42 +02:00
sgiioc4.c ide: add ide_proc_register_port() 2007-05-10 00:01:11 +02:00
siimage.c Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6 2007-05-09 15:41:31 -07:00
sis5513.c sis5513: PIO mode setup fixes 2007-05-16 00:51:42 +02:00
sl82c105.c sl82c105: DMA support code cleanup (take 4) 2007-05-05 22:03:49 +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