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 |
