aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ppc/pmac.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/ppc/pmac.c')
-rw-r--r--drivers/ide/ppc/pmac.c39
1 files changed, 5 insertions, 34 deletions
diff --git a/drivers/ide/ppc/pmac.c b/drivers/ide/ppc/pmac.c
index 5b083700d882..7f2ce6195d1e 100644
--- a/drivers/ide/ppc/pmac.c
+++ b/drivers/ide/ppc/pmac.c
@@ -430,9 +430,6 @@ pmac_ide_selectproc(ide_drive_t *drive)
430 pmac_ide_hwif_t *pmif = 430 pmac_ide_hwif_t *pmif =
431 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent); 431 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent);
432 432
433 if (pmif == NULL)
434 return;
435
436 if (drive->dn & 1) 433 if (drive->dn & 1)
437 writel(pmif->timings[1], PMAC_IDE_REG(IDE_TIMING_CONFIG)); 434 writel(pmif->timings[1], PMAC_IDE_REG(IDE_TIMING_CONFIG));
438 else 435 else
@@ -452,9 +449,6 @@ pmac_ide_kauai_selectproc(ide_drive_t *drive)
452 pmac_ide_hwif_t *pmif = 449 pmac_ide_hwif_t *pmif =
453 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent); 450 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent);
454 451
455 if (pmif == NULL)
456 return;
457
458 if (drive->dn & 1) { 452 if (drive->dn & 1) {
459 writel(pmif->timings[1], PMAC_IDE_REG(IDE_KAUAI_PIO_CONFIG)); 453 writel(pmif->timings[1], PMAC_IDE_REG(IDE_KAUAI_PIO_CONFIG));
460 writel(pmif->timings[3], PMAC_IDE_REG(IDE_KAUAI_ULTRA_CONFIG)); 454 writel(pmif->timings[3], PMAC_IDE_REG(IDE_KAUAI_ULTRA_CONFIG));
@@ -475,9 +469,6 @@ pmac_ide_do_update_timings(ide_drive_t *drive)
475 pmac_ide_hwif_t *pmif = 469 pmac_ide_hwif_t *pmif =
476 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent); 470 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent);
477 471
478 if (pmif == NULL)
479 return;
480
481 if (pmif->kind == controller_sh_ata6 || 472 if (pmif->kind == controller_sh_ata6 ||
482 pmif->kind == controller_un_ata6 || 473 pmif->kind == controller_un_ata6 ||
483 pmif->kind == controller_k2_ata6) 474 pmif->kind == controller_k2_ata6)
@@ -524,9 +515,6 @@ pmac_ide_set_pio_mode(ide_drive_t *drive, const u8 pio)
524 unsigned accessTime, recTime; 515 unsigned accessTime, recTime;
525 unsigned int cycle_time; 516 unsigned int cycle_time;
526 517
527 if (pmif == NULL)
528 return;
529
530 /* which drive is it ? */ 518 /* which drive is it ? */
531 timings = &pmif->timings[drive->dn & 1]; 519 timings = &pmif->timings[drive->dn & 1];
532 t = *timings; 520 t = *timings;
@@ -1558,11 +1546,7 @@ pmac_ide_dma_setup(ide_drive_t *drive)
1558 pmac_ide_hwif_t *pmif = 1546 pmac_ide_hwif_t *pmif =
1559 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent); 1547 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent);
1560 struct request *rq = HWGROUP(drive)->rq; 1548 struct request *rq = HWGROUP(drive)->rq;
1561 u8 unit = drive->dn & 1, ata4; 1549 u8 unit = drive->dn & 1, ata4 = (pmif->kind == controller_kl_ata4);
1562
1563 if (pmif == NULL)
1564 return 1;
1565 ata4 = (pmif->kind == controller_kl_ata4);
1566 1550
1567 if (!pmac_ide_build_dmatable(drive, rq)) { 1551 if (!pmac_ide_build_dmatable(drive, rq)) {
1568 ide_map_sg(drive, rq); 1552 ide_map_sg(drive, rq);
@@ -1616,12 +1600,8 @@ pmac_ide_dma_end (ide_drive_t *drive)
1616 ide_hwif_t *hwif = drive->hwif; 1600 ide_hwif_t *hwif = drive->hwif;
1617 pmac_ide_hwif_t *pmif = 1601 pmac_ide_hwif_t *pmif =
1618 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent); 1602 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent);
1619 volatile struct dbdma_regs __iomem *dma; 1603 volatile struct dbdma_regs __iomem *dma = pmif->dma_regs;
1620 u32 dstat; 1604 u32 dstat;
1621
1622 if (pmif == NULL)
1623 return 0;
1624 dma = pmif->dma_regs;
1625 1605
1626 drive->waiting_for_dma = 0; 1606 drive->waiting_for_dma = 0;
1627 dstat = readl(&dma->status); 1607 dstat = readl(&dma->status);
@@ -1646,13 +1626,9 @@ pmac_ide_dma_test_irq (ide_drive_t *drive)
1646 ide_hwif_t *hwif = drive->hwif; 1626 ide_hwif_t *hwif = drive->hwif;
1647 pmac_ide_hwif_t *pmif = 1627 pmac_ide_hwif_t *pmif =
1648 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent); 1628 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent);
1649 volatile struct dbdma_regs __iomem *dma; 1629 volatile struct dbdma_regs __iomem *dma = pmif->dma_regs;
1650 unsigned long status, timeout; 1630 unsigned long status, timeout;
1651 1631
1652 if (pmif == NULL)
1653 return 0;
1654 dma = pmif->dma_regs;
1655
1656 /* We have to things to deal with here: 1632 /* We have to things to deal with here:
1657 * 1633 *
1658 * - The dbdma won't stop if the command was started 1634 * - The dbdma won't stop if the command was started
@@ -1705,14 +1681,9 @@ pmac_ide_dma_lost_irq (ide_drive_t *drive)
1705 ide_hwif_t *hwif = drive->hwif; 1681 ide_hwif_t *hwif = drive->hwif;
1706 pmac_ide_hwif_t *pmif = 1682 pmac_ide_hwif_t *pmif =
1707 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent); 1683 (pmac_ide_hwif_t *)dev_get_drvdata(hwif->gendev.parent);
1708 volatile struct dbdma_regs __iomem *dma; 1684 volatile struct dbdma_regs __iomem *dma = pmif->dma_regs;
1709 unsigned long status; 1685 unsigned long status = readl(&dma->status);
1710
1711 if (pmif == NULL)
1712 return;
1713 dma = pmif->dma_regs;
1714 1686
1715 status = readl(&dma->status);
1716 printk(KERN_ERR "ide-pmac lost interrupt, dma status: %lx\n", status); 1687 printk(KERN_ERR "ide-pmac lost interrupt, dma status: %lx\n", status);
1717} 1688}
1718 1689