diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-05-15 18:51:43 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-05-15 18:51:43 -0400 |
commit | 7f86723a60d287be19aee620277184f9f5455283 (patch) | |
tree | d2f38cf03a6b6310ec662add2bbca9d8fdd42bb6 /drivers/ide | |
parent | 38ff8a74e8f015f94289b84cd6572a68c3431cdd (diff) |
pdc202xx_new: use ide_tune_dma()
* remove code enabling IORDY and prefetch from config_chipset_for_dma(),
as the comment states it has no real effect because these settings are
overriden when the PIO mode is set (and for this driver ->autotune == 1
so PIO mode is always programmed)
* use ide_tune_dma() in pdcnew_config_drive_xfer_rate() and remove no longer
needed config_chipset_for_dma()
There should be no functionality changes caused by this patch.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide')
-rw-r--r-- | drivers/ide/pci/pdc202xx_new.c | 29 |
1 files changed, 1 insertions, 28 deletions
diff --git a/drivers/ide/pci/pdc202xx_new.c b/drivers/ide/pci/pdc202xx_new.c index 65b1e124edf7..cc0bfdcf1f19 100644 --- a/drivers/ide/pci/pdc202xx_new.c +++ b/drivers/ide/pci/pdc202xx_new.c | |||
@@ -228,38 +228,11 @@ static u8 pdcnew_cable_detect(ide_hwif_t *hwif) | |||
228 | return get_indexed_reg(hwif, 0x0b) & 0x04; | 228 | return get_indexed_reg(hwif, 0x0b) & 0x04; |
229 | } | 229 | } |
230 | 230 | ||
231 | static int config_chipset_for_dma(ide_drive_t *drive) | ||
232 | { | ||
233 | struct hd_driveid *id = drive->id; | ||
234 | ide_hwif_t *hwif = HWIF(drive); | ||
235 | u8 speed; | ||
236 | |||
237 | if (id->capability & 4) { | ||
238 | /* | ||
239 | * Set IORDY_EN & PREFETCH_EN (this seems to have | ||
240 | * NO real effect since this register is reloaded | ||
241 | * by hardware when the transfer mode is selected) | ||
242 | */ | ||
243 | u8 tmp, adj = (drive->dn & 1) ? 0x08 : 0x00; | ||
244 | |||
245 | tmp = get_indexed_reg(hwif, 0x13 + adj); | ||
246 | set_indexed_reg(hwif, 0x13 + adj, tmp | 0x03); | ||
247 | } | ||
248 | |||
249 | speed = ide_max_dma_mode(drive); | ||
250 | |||
251 | if (!speed) | ||
252 | return 0; | ||
253 | |||
254 | (void) hwif->speedproc(drive, speed); | ||
255 | return ide_dma_enable(drive); | ||
256 | } | ||
257 | |||
258 | static int pdcnew_config_drive_xfer_rate(ide_drive_t *drive) | 231 | static int pdcnew_config_drive_xfer_rate(ide_drive_t *drive) |
259 | { | 232 | { |
260 | drive->init_speed = 0; | 233 | drive->init_speed = 0; |
261 | 234 | ||
262 | if (ide_use_dma(drive) && config_chipset_for_dma(drive)) | 235 | if (ide_tune_dma(drive)) |
263 | return 0; | 236 | return 0; |
264 | 237 | ||
265 | if (ide_use_fast_pio(drive)) | 238 | if (ide_use_fast_pio(drive)) |