diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-03-31 14:15:19 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-03-31 14:15:19 -0400 |
commit | 35c9b4daf4c94b30e5cede597d98016ebf31b5ad (patch) | |
tree | 3248b5b3602218537ce0bce420fbde27a07b526b | |
parent | e698ea83a8531a6740dc657329dcf0728392d6ac (diff) |
ide: add ->dma_clear method and remove ->dma_timeout one
All custom ->dma_timeout implementations call the generic one thus it is
possible to have only an optional method for resetting DMA engine instead:
* Add ->dma_clear method and convert hpt366, pdc202xx_old and sl82c105
host drivers to use it.
* Always use ide_dma_timeout() in ide_dma_timeout_retry() and remove
->dma_timeout method.
* Make ide_dma_timeout() static.
There should be no functional changes caused by this patch.
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
-rw-r--r-- | drivers/ide/alim15x3.c | 1 | ||||
-rw-r--r-- | drivers/ide/au1xxx-ide.c | 1 | ||||
-rw-r--r-- | drivers/ide/cmd64x.c | 3 | ||||
-rw-r--r-- | drivers/ide/cs5536.c | 1 | ||||
-rw-r--r-- | drivers/ide/hpt366.c | 10 | ||||
-rw-r--r-- | drivers/ide/icside.c | 1 | ||||
-rw-r--r-- | drivers/ide/ide-dma-sff.c | 3 | ||||
-rw-r--r-- | drivers/ide/ide-dma.c | 10 | ||||
-rw-r--r-- | drivers/ide/it821x.c | 3 | ||||
-rw-r--r-- | drivers/ide/ns87415.c | 1 | ||||
-rw-r--r-- | drivers/ide/pdc202xx_old.c | 10 | ||||
-rw-r--r-- | drivers/ide/pmac.c | 1 | ||||
-rw-r--r-- | drivers/ide/sc1200.c | 1 | ||||
-rw-r--r-- | drivers/ide/scc_pata.c | 1 | ||||
-rw-r--r-- | drivers/ide/sgiioc4.c | 1 | ||||
-rw-r--r-- | drivers/ide/siimage.c | 1 | ||||
-rw-r--r-- | drivers/ide/sl82c105.c | 7 | ||||
-rw-r--r-- | drivers/ide/tc86c001.c | 1 | ||||
-rw-r--r-- | drivers/ide/trm290.c | 1 | ||||
-rw-r--r-- | drivers/ide/tx4939ide.c | 1 | ||||
-rw-r--r-- | include/linux/ide.h | 4 |
21 files changed, 16 insertions, 47 deletions
diff --git a/drivers/ide/alim15x3.c b/drivers/ide/alim15x3.c index d516168464fc..d3faf0b97f42 100644 --- a/drivers/ide/alim15x3.c +++ b/drivers/ide/alim15x3.c | |||
@@ -509,7 +509,6 @@ static const struct ide_dma_ops ali_dma_ops = { | |||
509 | .dma_test_irq = ide_dma_test_irq, | 509 | .dma_test_irq = ide_dma_test_irq, |
510 | .dma_lost_irq = ide_dma_lost_irq, | 510 | .dma_lost_irq = ide_dma_lost_irq, |
511 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 511 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
512 | .dma_timeout = ide_dma_timeout, | ||
513 | .dma_sff_read_status = ide_dma_sff_read_status, | 512 | .dma_sff_read_status = ide_dma_sff_read_status, |
514 | }; | 513 | }; |
515 | 514 | ||
diff --git a/drivers/ide/au1xxx-ide.c b/drivers/ide/au1xxx-ide.c index d3a9d6c15328..0c08c5e01f2a 100644 --- a/drivers/ide/au1xxx-ide.c +++ b/drivers/ide/au1xxx-ide.c | |||
@@ -353,7 +353,6 @@ static const struct ide_dma_ops au1xxx_dma_ops = { | |||
353 | .dma_end = auide_dma_end, | 353 | .dma_end = auide_dma_end, |
354 | .dma_test_irq = auide_dma_test_irq, | 354 | .dma_test_irq = auide_dma_test_irq, |
355 | .dma_lost_irq = ide_dma_lost_irq, | 355 | .dma_lost_irq = ide_dma_lost_irq, |
356 | .dma_timeout = ide_dma_timeout, | ||
357 | }; | 356 | }; |
358 | 357 | ||
359 | static int auide_ddma_init(ide_hwif_t *hwif, const struct ide_port_info *d) | 358 | static int auide_ddma_init(ide_hwif_t *hwif, const struct ide_port_info *d) |
diff --git a/drivers/ide/cmd64x.c b/drivers/ide/cmd64x.c index bf0e3f470824..f0a49d2ff711 100644 --- a/drivers/ide/cmd64x.c +++ b/drivers/ide/cmd64x.c | |||
@@ -384,7 +384,6 @@ static const struct ide_dma_ops cmd64x_dma_ops = { | |||
384 | .dma_test_irq = cmd64x_dma_test_irq, | 384 | .dma_test_irq = cmd64x_dma_test_irq, |
385 | .dma_lost_irq = ide_dma_lost_irq, | 385 | .dma_lost_irq = ide_dma_lost_irq, |
386 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 386 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
387 | .dma_timeout = ide_dma_timeout, | ||
388 | .dma_sff_read_status = ide_dma_sff_read_status, | 387 | .dma_sff_read_status = ide_dma_sff_read_status, |
389 | }; | 388 | }; |
390 | 389 | ||
@@ -396,7 +395,6 @@ static const struct ide_dma_ops cmd646_rev1_dma_ops = { | |||
396 | .dma_test_irq = ide_dma_test_irq, | 395 | .dma_test_irq = ide_dma_test_irq, |
397 | .dma_lost_irq = ide_dma_lost_irq, | 396 | .dma_lost_irq = ide_dma_lost_irq, |
398 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 397 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
399 | .dma_timeout = ide_dma_timeout, | ||
400 | .dma_sff_read_status = ide_dma_sff_read_status, | 398 | .dma_sff_read_status = ide_dma_sff_read_status, |
401 | }; | 399 | }; |
402 | 400 | ||
@@ -408,7 +406,6 @@ static const struct ide_dma_ops cmd648_dma_ops = { | |||
408 | .dma_test_irq = cmd648_dma_test_irq, | 406 | .dma_test_irq = cmd648_dma_test_irq, |
409 | .dma_lost_irq = ide_dma_lost_irq, | 407 | .dma_lost_irq = ide_dma_lost_irq, |
410 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 408 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
411 | .dma_timeout = ide_dma_timeout, | ||
412 | .dma_sff_read_status = ide_dma_sff_read_status, | 409 | .dma_sff_read_status = ide_dma_sff_read_status, |
413 | }; | 410 | }; |
414 | 411 | ||
diff --git a/drivers/ide/cs5536.c b/drivers/ide/cs5536.c index d5dcf4899607..353a35bbba63 100644 --- a/drivers/ide/cs5536.c +++ b/drivers/ide/cs5536.c | |||
@@ -236,7 +236,6 @@ static const struct ide_dma_ops cs5536_dma_ops = { | |||
236 | .dma_test_irq = ide_dma_test_irq, | 236 | .dma_test_irq = ide_dma_test_irq, |
237 | .dma_lost_irq = ide_dma_lost_irq, | 237 | .dma_lost_irq = ide_dma_lost_irq, |
238 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 238 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
239 | .dma_timeout = ide_dma_timeout, | ||
240 | }; | 239 | }; |
241 | 240 | ||
242 | static const struct ide_port_info cs5536_info = { | 241 | static const struct ide_port_info cs5536_info = { |
diff --git a/drivers/ide/hpt366.c b/drivers/ide/hpt366.c index dbaf184ed9c5..a0eb87f59134 100644 --- a/drivers/ide/hpt366.c +++ b/drivers/ide/hpt366.c | |||
@@ -835,12 +835,6 @@ static int hpt370_dma_end(ide_drive_t *drive) | |||
835 | return ide_dma_end(drive); | 835 | return ide_dma_end(drive); |
836 | } | 836 | } |
837 | 837 | ||
838 | static void hpt370_dma_timeout(ide_drive_t *drive) | ||
839 | { | ||
840 | hpt370_irq_timeout(drive); | ||
841 | ide_dma_timeout(drive); | ||
842 | } | ||
843 | |||
844 | /* returns 1 if DMA IRQ issued, 0 otherwise */ | 838 | /* returns 1 if DMA IRQ issued, 0 otherwise */ |
845 | static int hpt374_dma_test_irq(ide_drive_t *drive) | 839 | static int hpt374_dma_test_irq(ide_drive_t *drive) |
846 | { | 840 | { |
@@ -1423,7 +1417,6 @@ static const struct ide_dma_ops hpt37x_dma_ops = { | |||
1423 | .dma_test_irq = hpt374_dma_test_irq, | 1417 | .dma_test_irq = hpt374_dma_test_irq, |
1424 | .dma_lost_irq = ide_dma_lost_irq, | 1418 | .dma_lost_irq = ide_dma_lost_irq, |
1425 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 1419 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
1426 | .dma_timeout = ide_dma_timeout, | ||
1427 | .dma_sff_read_status = ide_dma_sff_read_status, | 1420 | .dma_sff_read_status = ide_dma_sff_read_status, |
1428 | }; | 1421 | }; |
1429 | 1422 | ||
@@ -1435,7 +1428,7 @@ static const struct ide_dma_ops hpt370_dma_ops = { | |||
1435 | .dma_test_irq = ide_dma_test_irq, | 1428 | .dma_test_irq = ide_dma_test_irq, |
1436 | .dma_lost_irq = ide_dma_lost_irq, | 1429 | .dma_lost_irq = ide_dma_lost_irq, |
1437 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 1430 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
1438 | .dma_timeout = hpt370_dma_timeout, | 1431 | .dma_clear = hpt370_irq_timeout, |
1439 | .dma_sff_read_status = ide_dma_sff_read_status, | 1432 | .dma_sff_read_status = ide_dma_sff_read_status, |
1440 | }; | 1433 | }; |
1441 | 1434 | ||
@@ -1447,7 +1440,6 @@ static const struct ide_dma_ops hpt36x_dma_ops = { | |||
1447 | .dma_test_irq = ide_dma_test_irq, | 1440 | .dma_test_irq = ide_dma_test_irq, |
1448 | .dma_lost_irq = hpt366_dma_lost_irq, | 1441 | .dma_lost_irq = hpt366_dma_lost_irq, |
1449 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 1442 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
1450 | .dma_timeout = ide_dma_timeout, | ||
1451 | .dma_sff_read_status = ide_dma_sff_read_status, | 1443 | .dma_sff_read_status = ide_dma_sff_read_status, |
1452 | }; | 1444 | }; |
1453 | 1445 | ||
diff --git a/drivers/ide/icside.c b/drivers/ide/icside.c index 51ce404fe532..f069f122ee6e 100644 --- a/drivers/ide/icside.c +++ b/drivers/ide/icside.c | |||
@@ -377,7 +377,6 @@ static const struct ide_dma_ops icside_v6_dma_ops = { | |||
377 | .dma_start = icside_dma_start, | 377 | .dma_start = icside_dma_start, |
378 | .dma_end = icside_dma_end, | 378 | .dma_end = icside_dma_end, |
379 | .dma_test_irq = icside_dma_test_irq, | 379 | .dma_test_irq = icside_dma_test_irq, |
380 | .dma_timeout = ide_dma_timeout, | ||
381 | .dma_lost_irq = ide_dma_lost_irq, | 380 | .dma_lost_irq = ide_dma_lost_irq, |
382 | }; | 381 | }; |
383 | #else | 382 | #else |
diff --git a/drivers/ide/ide-dma-sff.c b/drivers/ide/ide-dma-sff.c index 75a9ea2e4c82..7836d7e03fff 100644 --- a/drivers/ide/ide-dma-sff.c +++ b/drivers/ide/ide-dma-sff.c | |||
@@ -338,9 +338,8 @@ const struct ide_dma_ops sff_dma_ops = { | |||
338 | .dma_start = ide_dma_start, | 338 | .dma_start = ide_dma_start, |
339 | .dma_end = ide_dma_end, | 339 | .dma_end = ide_dma_end, |
340 | .dma_test_irq = ide_dma_test_irq, | 340 | .dma_test_irq = ide_dma_test_irq, |
341 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | ||
342 | .dma_timeout = ide_dma_timeout, | ||
343 | .dma_lost_irq = ide_dma_lost_irq, | 341 | .dma_lost_irq = ide_dma_lost_irq, |
342 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | ||
344 | .dma_sff_read_status = ide_dma_sff_read_status, | 343 | .dma_sff_read_status = ide_dma_sff_read_status, |
345 | }; | 344 | }; |
346 | EXPORT_SYMBOL_GPL(sff_dma_ops); | 345 | EXPORT_SYMBOL_GPL(sff_dma_ops); |
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index 3dbf80c15491..dc5d9bc4ced0 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c | |||
@@ -460,7 +460,7 @@ void ide_dma_lost_irq(ide_drive_t *drive) | |||
460 | } | 460 | } |
461 | EXPORT_SYMBOL_GPL(ide_dma_lost_irq); | 461 | EXPORT_SYMBOL_GPL(ide_dma_lost_irq); |
462 | 462 | ||
463 | void ide_dma_timeout(ide_drive_t *drive) | 463 | static void ide_dma_timeout(ide_drive_t *drive) |
464 | { | 464 | { |
465 | ide_hwif_t *hwif = drive->hwif; | 465 | ide_hwif_t *hwif = drive->hwif; |
466 | 466 | ||
@@ -473,7 +473,6 @@ void ide_dma_timeout(ide_drive_t *drive) | |||
473 | 473 | ||
474 | hwif->dma_ops->dma_end(drive); | 474 | hwif->dma_ops->dma_end(drive); |
475 | } | 475 | } |
476 | EXPORT_SYMBOL_GPL(ide_dma_timeout); | ||
477 | 476 | ||
478 | /* | 477 | /* |
479 | * un-busy the port etc, and clear any pending DMA status. we want to | 478 | * un-busy the port etc, and clear any pending DMA status. we want to |
@@ -483,6 +482,7 @@ EXPORT_SYMBOL_GPL(ide_dma_timeout); | |||
483 | ide_startstop_t ide_dma_timeout_retry(ide_drive_t *drive, int error) | 482 | ide_startstop_t ide_dma_timeout_retry(ide_drive_t *drive, int error) |
484 | { | 483 | { |
485 | ide_hwif_t *hwif = drive->hwif; | 484 | ide_hwif_t *hwif = drive->hwif; |
485 | const struct ide_dma_ops *dma_ops = hwif->dma_ops; | ||
486 | struct request *rq; | 486 | struct request *rq; |
487 | ide_startstop_t ret = ide_stopped; | 487 | ide_startstop_t ret = ide_stopped; |
488 | 488 | ||
@@ -492,12 +492,14 @@ ide_startstop_t ide_dma_timeout_retry(ide_drive_t *drive, int error) | |||
492 | 492 | ||
493 | if (error < 0) { | 493 | if (error < 0) { |
494 | printk(KERN_WARNING "%s: DMA timeout error\n", drive->name); | 494 | printk(KERN_WARNING "%s: DMA timeout error\n", drive->name); |
495 | (void)hwif->dma_ops->dma_end(drive); | 495 | (void)dma_ops->dma_end(drive); |
496 | ret = ide_error(drive, "dma timeout error", | 496 | ret = ide_error(drive, "dma timeout error", |
497 | hwif->tp_ops->read_status(hwif)); | 497 | hwif->tp_ops->read_status(hwif)); |
498 | } else { | 498 | } else { |
499 | printk(KERN_WARNING "%s: DMA timeout retry\n", drive->name); | 499 | printk(KERN_WARNING "%s: DMA timeout retry\n", drive->name); |
500 | hwif->dma_ops->dma_timeout(drive); | 500 | if (dma_ops->dma_clear) |
501 | dma_ops->dma_clear(drive); | ||
502 | ide_dma_timeout(drive); | ||
501 | } | 503 | } |
502 | 504 | ||
503 | /* | 505 | /* |
diff --git a/drivers/ide/it821x.c b/drivers/ide/it821x.c index 0d4ac65cf949..51aa745246dc 100644 --- a/drivers/ide/it821x.c +++ b/drivers/ide/it821x.c | |||
@@ -511,9 +511,8 @@ static struct ide_dma_ops it821x_pass_through_dma_ops = { | |||
511 | .dma_start = it821x_dma_start, | 511 | .dma_start = it821x_dma_start, |
512 | .dma_end = it821x_dma_end, | 512 | .dma_end = it821x_dma_end, |
513 | .dma_test_irq = ide_dma_test_irq, | 513 | .dma_test_irq = ide_dma_test_irq, |
514 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | ||
515 | .dma_timeout = ide_dma_timeout, | ||
516 | .dma_lost_irq = ide_dma_lost_irq, | 514 | .dma_lost_irq = ide_dma_lost_irq, |
515 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | ||
517 | .dma_sff_read_status = ide_dma_sff_read_status, | 516 | .dma_sff_read_status = ide_dma_sff_read_status, |
518 | }; | 517 | }; |
519 | 518 | ||
diff --git a/drivers/ide/ns87415.c b/drivers/ide/ns87415.c index 7b65fe5bf449..9039a373020f 100644 --- a/drivers/ide/ns87415.c +++ b/drivers/ide/ns87415.c | |||
@@ -306,7 +306,6 @@ static const struct ide_dma_ops ns87415_dma_ops = { | |||
306 | .dma_test_irq = ide_dma_test_irq, | 306 | .dma_test_irq = ide_dma_test_irq, |
307 | .dma_lost_irq = ide_dma_lost_irq, | 307 | .dma_lost_irq = ide_dma_lost_irq, |
308 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 308 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
309 | .dma_timeout = ide_dma_timeout, | ||
310 | .dma_sff_read_status = superio_dma_sff_read_status, | 309 | .dma_sff_read_status = superio_dma_sff_read_status, |
311 | }; | 310 | }; |
312 | 311 | ||
diff --git a/drivers/ide/pdc202xx_old.c b/drivers/ide/pdc202xx_old.c index f7536d1943f7..248a54bd2386 100644 --- a/drivers/ide/pdc202xx_old.c +++ b/drivers/ide/pdc202xx_old.c | |||
@@ -258,12 +258,6 @@ static void pdc202xx_dma_lost_irq(ide_drive_t *drive) | |||
258 | ide_dma_lost_irq(drive); | 258 | ide_dma_lost_irq(drive); |
259 | } | 259 | } |
260 | 260 | ||
261 | static void pdc202xx_dma_timeout(ide_drive_t *drive) | ||
262 | { | ||
263 | pdc202xx_reset(drive); | ||
264 | ide_dma_timeout(drive); | ||
265 | } | ||
266 | |||
267 | static int init_chipset_pdc202xx(struct pci_dev *dev) | 261 | static int init_chipset_pdc202xx(struct pci_dev *dev) |
268 | { | 262 | { |
269 | unsigned long dmabase = pci_resource_start(dev, 4); | 263 | unsigned long dmabase = pci_resource_start(dev, 4); |
@@ -336,7 +330,7 @@ static const struct ide_dma_ops pdc20246_dma_ops = { | |||
336 | .dma_test_irq = pdc202xx_dma_test_irq, | 330 | .dma_test_irq = pdc202xx_dma_test_irq, |
337 | .dma_lost_irq = pdc202xx_dma_lost_irq, | 331 | .dma_lost_irq = pdc202xx_dma_lost_irq, |
338 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 332 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
339 | .dma_timeout = pdc202xx_dma_timeout, | 333 | .dma_clear = pdc202xx_reset, |
340 | .dma_sff_read_status = ide_dma_sff_read_status, | 334 | .dma_sff_read_status = ide_dma_sff_read_status, |
341 | }; | 335 | }; |
342 | 336 | ||
@@ -348,7 +342,7 @@ static const struct ide_dma_ops pdc2026x_dma_ops = { | |||
348 | .dma_test_irq = pdc202xx_dma_test_irq, | 342 | .dma_test_irq = pdc202xx_dma_test_irq, |
349 | .dma_lost_irq = pdc202xx_dma_lost_irq, | 343 | .dma_lost_irq = pdc202xx_dma_lost_irq, |
350 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 344 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
351 | .dma_timeout = pdc202xx_dma_timeout, | 345 | .dma_clear = pdc202xx_reset, |
352 | .dma_sff_read_status = ide_dma_sff_read_status, | 346 | .dma_sff_read_status = ide_dma_sff_read_status, |
353 | }; | 347 | }; |
354 | 348 | ||
diff --git a/drivers/ide/pmac.c b/drivers/ide/pmac.c index 2bfcfedaa076..d15cc46a66e3 100644 --- a/drivers/ide/pmac.c +++ b/drivers/ide/pmac.c | |||
@@ -1650,7 +1650,6 @@ static const struct ide_dma_ops pmac_dma_ops = { | |||
1650 | .dma_start = pmac_ide_dma_start, | 1650 | .dma_start = pmac_ide_dma_start, |
1651 | .dma_end = pmac_ide_dma_end, | 1651 | .dma_end = pmac_ide_dma_end, |
1652 | .dma_test_irq = pmac_ide_dma_test_irq, | 1652 | .dma_test_irq = pmac_ide_dma_test_irq, |
1653 | .dma_timeout = ide_dma_timeout, | ||
1654 | .dma_lost_irq = pmac_ide_dma_lost_irq, | 1653 | .dma_lost_irq = pmac_ide_dma_lost_irq, |
1655 | }; | 1654 | }; |
1656 | 1655 | ||
diff --git a/drivers/ide/sc1200.c b/drivers/ide/sc1200.c index 1c3a82914999..371549d18a01 100644 --- a/drivers/ide/sc1200.c +++ b/drivers/ide/sc1200.c | |||
@@ -291,7 +291,6 @@ static const struct ide_dma_ops sc1200_dma_ops = { | |||
291 | .dma_test_irq = ide_dma_test_irq, | 291 | .dma_test_irq = ide_dma_test_irq, |
292 | .dma_lost_irq = ide_dma_lost_irq, | 292 | .dma_lost_irq = ide_dma_lost_irq, |
293 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 293 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
294 | .dma_timeout = ide_dma_timeout, | ||
295 | .dma_sff_read_status = ide_dma_sff_read_status, | 294 | .dma_sff_read_status = ide_dma_sff_read_status, |
296 | }; | 295 | }; |
297 | 296 | ||
diff --git a/drivers/ide/scc_pata.c b/drivers/ide/scc_pata.c index 0cc137cfe76d..64534d150b0c 100644 --- a/drivers/ide/scc_pata.c +++ b/drivers/ide/scc_pata.c | |||
@@ -872,7 +872,6 @@ static const struct ide_dma_ops scc_dma_ops = { | |||
872 | .dma_end = scc_dma_end, | 872 | .dma_end = scc_dma_end, |
873 | .dma_test_irq = scc_dma_test_irq, | 873 | .dma_test_irq = scc_dma_test_irq, |
874 | .dma_lost_irq = ide_dma_lost_irq, | 874 | .dma_lost_irq = ide_dma_lost_irq, |
875 | .dma_timeout = ide_dma_timeout, | ||
876 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 875 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
877 | .dma_sff_read_status = scc_dma_sff_read_status, | 876 | .dma_sff_read_status = scc_dma_sff_read_status, |
878 | }; | 877 | }; |
diff --git a/drivers/ide/sgiioc4.c b/drivers/ide/sgiioc4.c index b12de8346c73..44df0c750bab 100644 --- a/drivers/ide/sgiioc4.c +++ b/drivers/ide/sgiioc4.c | |||
@@ -533,7 +533,6 @@ static const struct ide_dma_ops sgiioc4_dma_ops = { | |||
533 | .dma_end = sgiioc4_dma_end, | 533 | .dma_end = sgiioc4_dma_end, |
534 | .dma_test_irq = sgiioc4_dma_test_irq, | 534 | .dma_test_irq = sgiioc4_dma_test_irq, |
535 | .dma_lost_irq = sgiioc4_dma_lost_irq, | 535 | .dma_lost_irq = sgiioc4_dma_lost_irq, |
536 | .dma_timeout = ide_dma_timeout, | ||
537 | }; | 536 | }; |
538 | 537 | ||
539 | static const struct ide_port_info sgiioc4_port_info __devinitconst = { | 538 | static const struct ide_port_info sgiioc4_port_info __devinitconst = { |
diff --git a/drivers/ide/siimage.c b/drivers/ide/siimage.c index 075cb1243b2a..e4973cd1fba9 100644 --- a/drivers/ide/siimage.c +++ b/drivers/ide/siimage.c | |||
@@ -715,7 +715,6 @@ static const struct ide_dma_ops sil_dma_ops = { | |||
715 | .dma_end = ide_dma_end, | 715 | .dma_end = ide_dma_end, |
716 | .dma_test_irq = siimage_dma_test_irq, | 716 | .dma_test_irq = siimage_dma_test_irq, |
717 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 717 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
718 | .dma_timeout = ide_dma_timeout, | ||
719 | .dma_lost_irq = ide_dma_lost_irq, | 718 | .dma_lost_irq = ide_dma_lost_irq, |
720 | .dma_sff_read_status = ide_dma_sff_read_status, | 719 | .dma_sff_read_status = ide_dma_sff_read_status, |
721 | }; | 720 | }; |
diff --git a/drivers/ide/sl82c105.c b/drivers/ide/sl82c105.c index d25137b04e7a..d6f8977191c8 100644 --- a/drivers/ide/sl82c105.c +++ b/drivers/ide/sl82c105.c | |||
@@ -189,14 +189,13 @@ static void sl82c105_dma_start(ide_drive_t *drive) | |||
189 | ide_dma_start(drive); | 189 | ide_dma_start(drive); |
190 | } | 190 | } |
191 | 191 | ||
192 | static void sl82c105_dma_timeout(ide_drive_t *drive) | 192 | static void sl82c105_dma_clear(ide_drive_t *drive) |
193 | { | 193 | { |
194 | struct pci_dev *dev = to_pci_dev(drive->hwif->dev); | 194 | struct pci_dev *dev = to_pci_dev(drive->hwif->dev); |
195 | 195 | ||
196 | DBG(("sl82c105_dma_timeout(drive:%s)\n", drive->name)); | 196 | DBG(("sl82c105_dma_clear(drive:%s)\n", drive->name)); |
197 | 197 | ||
198 | sl82c105_reset_host(dev); | 198 | sl82c105_reset_host(dev); |
199 | ide_dma_timeout(drive); | ||
200 | } | 199 | } |
201 | 200 | ||
202 | static int sl82c105_dma_end(ide_drive_t *drive) | 201 | static int sl82c105_dma_end(ide_drive_t *drive) |
@@ -298,7 +297,7 @@ static const struct ide_dma_ops sl82c105_dma_ops = { | |||
298 | .dma_test_irq = ide_dma_test_irq, | 297 | .dma_test_irq = ide_dma_test_irq, |
299 | .dma_lost_irq = sl82c105_dma_lost_irq, | 298 | .dma_lost_irq = sl82c105_dma_lost_irq, |
300 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 299 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
301 | .dma_timeout = sl82c105_dma_timeout, | 300 | .dma_clear = sl82c105_dma_clear, |
302 | .dma_sff_read_status = ide_dma_sff_read_status, | 301 | .dma_sff_read_status = ide_dma_sff_read_status, |
303 | }; | 302 | }; |
304 | 303 | ||
diff --git a/drivers/ide/tc86c001.c b/drivers/ide/tc86c001.c index 427d4b3c2c63..b4cf42dc8a6f 100644 --- a/drivers/ide/tc86c001.c +++ b/drivers/ide/tc86c001.c | |||
@@ -187,7 +187,6 @@ static const struct ide_dma_ops tc86c001_dma_ops = { | |||
187 | .dma_test_irq = ide_dma_test_irq, | 187 | .dma_test_irq = ide_dma_test_irq, |
188 | .dma_lost_irq = ide_dma_lost_irq, | 188 | .dma_lost_irq = ide_dma_lost_irq, |
189 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 189 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
190 | .dma_timeout = ide_dma_timeout, | ||
191 | .dma_sff_read_status = ide_dma_sff_read_status, | 190 | .dma_sff_read_status = ide_dma_sff_read_status, |
192 | }; | 191 | }; |
193 | 192 | ||
diff --git a/drivers/ide/trm290.c b/drivers/ide/trm290.c index ed1496845a93..d6a950828e9f 100644 --- a/drivers/ide/trm290.c +++ b/drivers/ide/trm290.c | |||
@@ -314,7 +314,6 @@ static struct ide_dma_ops trm290_dma_ops = { | |||
314 | .dma_end = trm290_dma_end, | 314 | .dma_end = trm290_dma_end, |
315 | .dma_test_irq = trm290_dma_test_irq, | 315 | .dma_test_irq = trm290_dma_test_irq, |
316 | .dma_lost_irq = ide_dma_lost_irq, | 316 | .dma_lost_irq = ide_dma_lost_irq, |
317 | .dma_timeout = ide_dma_timeout, | ||
318 | }; | 317 | }; |
319 | 318 | ||
320 | static const struct ide_port_info trm290_chipset __devinitdata = { | 319 | static const struct ide_port_info trm290_chipset __devinitdata = { |
diff --git a/drivers/ide/tx4939ide.c b/drivers/ide/tx4939ide.c index e0e0a803dde3..53f99853b065 100644 --- a/drivers/ide/tx4939ide.c +++ b/drivers/ide/tx4939ide.c | |||
@@ -632,7 +632,6 @@ static const struct ide_dma_ops tx4939ide_dma_ops = { | |||
632 | .dma_test_irq = tx4939ide_dma_test_irq, | 632 | .dma_test_irq = tx4939ide_dma_test_irq, |
633 | .dma_lost_irq = ide_dma_lost_irq, | 633 | .dma_lost_irq = ide_dma_lost_irq, |
634 | .dma_timer_expiry = ide_dma_sff_timer_expiry, | 634 | .dma_timer_expiry = ide_dma_sff_timer_expiry, |
635 | .dma_timeout = ide_dma_timeout, | ||
636 | .dma_sff_read_status = tx4939ide_dma_sff_read_status, | 635 | .dma_sff_read_status = tx4939ide_dma_sff_read_status, |
637 | }; | 636 | }; |
638 | 637 | ||
diff --git a/include/linux/ide.h b/include/linux/ide.h index cb501bf78f7d..d3035f2f1250 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -716,8 +716,9 @@ struct ide_dma_ops { | |||
716 | int (*dma_end)(struct ide_drive_s *); | 716 | int (*dma_end)(struct ide_drive_s *); |
717 | int (*dma_test_irq)(struct ide_drive_s *); | 717 | int (*dma_test_irq)(struct ide_drive_s *); |
718 | void (*dma_lost_irq)(struct ide_drive_s *); | 718 | void (*dma_lost_irq)(struct ide_drive_s *); |
719 | /* below ones are optional */ | ||
719 | int (*dma_timer_expiry)(struct ide_drive_s *); | 720 | int (*dma_timer_expiry)(struct ide_drive_s *); |
720 | void (*dma_timeout)(struct ide_drive_s *); | 721 | void (*dma_clear)(struct ide_drive_s *); |
721 | /* | 722 | /* |
722 | * The following method is optional and only required to be | 723 | * The following method is optional and only required to be |
723 | * implemented for the SFF-8038i compatible controllers. | 724 | * implemented for the SFF-8038i compatible controllers. |
@@ -1461,7 +1462,6 @@ static inline int config_drive_for_dma(ide_drive_t *drive) { return 0; } | |||
1461 | #endif /* CONFIG_BLK_DEV_IDEDMA_SFF */ | 1462 | #endif /* CONFIG_BLK_DEV_IDEDMA_SFF */ |
1462 | 1463 | ||
1463 | void ide_dma_lost_irq(ide_drive_t *); | 1464 | void ide_dma_lost_irq(ide_drive_t *); |
1464 | void ide_dma_timeout(ide_drive_t *); | ||
1465 | ide_startstop_t ide_dma_timeout_retry(ide_drive_t *, int); | 1465 | ide_startstop_t ide_dma_timeout_retry(ide_drive_t *, int); |
1466 | 1466 | ||
1467 | #else | 1467 | #else |