pata_hpt366: reimplement mode programming
authorTejun Heo <tj@kernel.org>
Thu, 8 Jan 2009 21:29:20 +0000 (16:29 -0500)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 8 Jan 2009 21:29:20 +0000 (16:29 -0500)
commit6ecb6f25d3a52c0d032aa73bde1ff9bc454aa66c
tree3c4804660bbced95918b6d2e9dab06b3994846a9
parentb63d3953251f144b75993374d752e0d57034c8bb
pata_hpt366: reimplement mode programming

Reimplement mode programming logic of pata_hpt366 such that it's
identical to that of IDE hpt366 driver.  The differences were...

* pata_hpt366 used 0xCFFF8FFFF to mask pio modes and 0x3FFFFFFF dma
  modes.  IDE hpt366 uses 0xC1F8FFFF for PIO, 0x303800FF for MWDMA and
  0x30070000 for UDMA.

* pata_hpt366 doesn't set 0x08000000 for PIO unless it's already set
  and always turns it on for MWDMA/UDMA.  IDE hpt366 doesn't bother
  with the bit.  It always uses what was there.

* IDE hpt366 always clears 0xC0000000.  pata_hpt366 doesn't.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/pata_hpt366.c