diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-04 11:24:06 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-04 11:24:06 -0500 |
commit | 4c10c937cc2eb197db565392db91d429eec71176 (patch) | |
tree | 02d7f15b314441e832f48f0f882882042361396c /drivers/ide/ide-timings.c | |
parent | 9bb676966aa85e56af00b353387d3c274a26e480 (diff) | |
parent | 950f564b707ca1b1c5bb94cd1e7d2a0702bfcadc (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-next-2.6: (49 commits)
drivers/ide: Fix continuation line formats
ide: fixed section mismatch warning in cmd640.c
ide: ide_timing_compute() fixup
ide: make ide_get_best_pio_mode() static
via82cxxx: use ->pio_mode value to determine pair device speed
tx493xide: use ->pio_mode value to determine pair device speed
siimage: use ->pio_mode value to determine pair device speed
palm_bk3710: use ->pio_mode value to determine pair device speed
it821x: use ->pio_mode value to determine pair device speed
cs5536: use ->pio_mode value to determine pair device speed
cs5535: use ->pio_mode value to determine pair device speed
cmd64x: fix handling of address setup timings
amd74xx: use ->pio_mode value to determine pair device speed
alim15x3: fix handling of UDMA enable bit
alim15x3: fix handling of DMA timings
alim15x3: fix handling of command timings
alim15x3: fix handling of address setup timings
ide-timings: use ->pio_mode value to determine fastest PIO speed
ide: change ->set_dma_mode method parameters
ide: change ->set_pio_mode method parameters
...
Diffstat (limited to 'drivers/ide/ide-timings.c')
-rw-r--r-- | drivers/ide/ide-timings.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/ide/ide-timings.c b/drivers/ide/ide-timings.c index 001a56365be5..0e05f75934c9 100644 --- a/drivers/ide/ide-timings.c +++ b/drivers/ide/ide-timings.c | |||
@@ -166,12 +166,13 @@ int ide_timing_compute(ide_drive_t *drive, u8 speed, | |||
166 | if (id[ATA_ID_FIELD_VALID] & 2) { /* EIDE drive */ | 166 | if (id[ATA_ID_FIELD_VALID] & 2) { /* EIDE drive */ |
167 | memset(&p, 0, sizeof(p)); | 167 | memset(&p, 0, sizeof(p)); |
168 | 168 | ||
169 | if (speed <= XFER_PIO_2) | 169 | if (speed >= XFER_PIO_0 && speed < XFER_SW_DMA_0) { |
170 | p.cycle = p.cyc8b = id[ATA_ID_EIDE_PIO]; | 170 | if (speed <= XFER_PIO_2) |
171 | else if ((speed <= XFER_PIO_4) || | 171 | p.cycle = p.cyc8b = id[ATA_ID_EIDE_PIO]; |
172 | (speed == XFER_PIO_5 && !ata_id_is_cfa(id))) | 172 | else if ((speed <= XFER_PIO_4) || |
173 | p.cycle = p.cyc8b = id[ATA_ID_EIDE_PIO_IORDY]; | 173 | (speed == XFER_PIO_5 && !ata_id_is_cfa(id))) |
174 | else if (speed >= XFER_MW_DMA_0 && speed <= XFER_MW_DMA_2) | 174 | p.cycle = p.cyc8b = id[ATA_ID_EIDE_PIO_IORDY]; |
175 | } else if (speed >= XFER_MW_DMA_0 && speed <= XFER_MW_DMA_2) | ||
175 | p.cycle = id[ATA_ID_EIDE_DMA_MIN]; | 176 | p.cycle = id[ATA_ID_EIDE_DMA_MIN]; |
176 | 177 | ||
177 | ide_timing_merge(&p, t, t, IDE_TIMING_CYCLE | IDE_TIMING_CYC8B); | 178 | ide_timing_merge(&p, t, t, IDE_TIMING_CYCLE | IDE_TIMING_CYC8B); |
@@ -185,11 +186,10 @@ int ide_timing_compute(ide_drive_t *drive, u8 speed, | |||
185 | /* | 186 | /* |
186 | * Even in DMA/UDMA modes we still use PIO access for IDENTIFY, | 187 | * Even in DMA/UDMA modes we still use PIO access for IDENTIFY, |
187 | * S.M.A.R.T and some other commands. We have to ensure that the | 188 | * S.M.A.R.T and some other commands. We have to ensure that the |
188 | * DMA cycle timing is slower/equal than the fastest PIO timing. | 189 | * DMA cycle timing is slower/equal than the current PIO timing. |
189 | */ | 190 | */ |
190 | if (speed >= XFER_SW_DMA_0) { | 191 | if (speed >= XFER_SW_DMA_0) { |
191 | u8 pio = ide_get_best_pio_mode(drive, 255, 5); | 192 | ide_timing_compute(drive, drive->pio_mode, &p, T, UT); |
192 | ide_timing_compute(drive, XFER_PIO_0 + pio, &p, T, UT); | ||
193 | ide_timing_merge(&p, t, t, IDE_TIMING_ALL); | 193 | ide_timing_merge(&p, t, t, IDE_TIMING_ALL); |
194 | } | 194 | } |
195 | 195 | ||