cs5535: PIO fixes
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Wed, 1 Aug 2007 21:46:45 +0000 (23:46 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Wed, 1 Aug 2007 21:46:45 +0000 (23:46 +0200)
commitbc0b0b5c4bab02790937c9070a7701ee70feaac9
tree3dc9de74ba1c70df025ab8824fe1fcc79101380b
parent070224339b52f0e4f8e6c991a5ad9630a7a9e6da
cs5535: PIO fixes

* Fix cs5535_tuneproc() to pass PIO transfer mode value instead of PIO mode
  number to cs5535_set_speed() (fixes random PIO timings being programmed
  and a possible OOPS).  Do a little cleanup while at it.

* Fix cs5535_set_speed() to check if the mate device is present (fixes PIO0
  taskfile timings being used if there is no other device on the cable).

* Use cs5535_tuneproc() in cs5535_dma_check().  The old code had the same
  issue as cs5535_tuneproc() and add additionally caused 0x00-0x04 transfer
  mode values (== default PIO, default PIO w/ IORDY + two invalid values)
  being set on the device instead of values 0x08-0x0c (XFER_PIO_[0,4]).

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/pci/cs5535.c