diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-12-03 14:32:10 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2009-12-03 16:00:56 -0500 |
commit | 088ccb53a341b5c0afab67e392b053ebb0bf7b2b (patch) | |
tree | 5b572452ecb84596f8db430a4c5f2ef7e668fcde /drivers/ata/pata_it8213.c | |
parent | e0ee792b75a5cf1b23acfeae7ce3c386f805b20b (diff) |
pata_it8213: fix wrong PIO timings being programmed
* do not clear PIO timings for master when programming slave
* program new PIO timings in the correct register nibble
Both changes should be safe as this is how we have been doing
things in IDE it8213 host driver for years.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/pata_it8213.c')
-rw-r--r-- | drivers/ata/pata_it8213.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/ata/pata_it8213.c b/drivers/ata/pata_it8213.c index 36d1f61491df..092af531aa09 100644 --- a/drivers/ata/pata_it8213.c +++ b/drivers/ata/pata_it8213.c | |||
@@ -112,13 +112,13 @@ static void it8213_set_piomode (struct ata_port *ap, struct ata_device *adev) | |||
112 | } else { | 112 | } else { |
113 | u8 slave_data; | 113 | u8 slave_data; |
114 | 114 | ||
115 | idetm_data &= 0xCC0F; | 115 | idetm_data &= 0xFF0F; |
116 | idetm_data |= (control << 4); | 116 | idetm_data |= (control << 4); |
117 | 117 | ||
118 | /* Slave timing in separate register */ | 118 | /* Slave timing in separate register */ |
119 | pci_read_config_byte(dev, 0x44, &slave_data); | 119 | pci_read_config_byte(dev, 0x44, &slave_data); |
120 | slave_data &= 0xF0; | 120 | slave_data &= 0xF0; |
121 | slave_data |= ((timings[pio][0] << 2) | timings[pio][1]) << 4; | 121 | slave_data |= (timings[pio][0] << 2) | timings[pio][1]; |
122 | pci_write_config_byte(dev, 0x44, slave_data); | 122 | pci_write_config_byte(dev, 0x44, slave_data); |
123 | } | 123 | } |
124 | 124 | ||