|
@@ -66,7 +66,6 @@ typedef struct pmac_ide_hwif {
|
|
|
struct macio_dev *mdev;
|
|
|
u32 timings[4];
|
|
|
volatile u32 __iomem * *kauai_fcr;
|
|
|
-#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
|
|
|
/* Those fields are duplicating what is in hwif. We currently
|
|
|
* can't use the hwif ones because of some assumptions that are
|
|
|
* beeing done by the generic code about the kind of dma controller
|
|
@@ -74,8 +73,6 @@ typedef struct pmac_ide_hwif {
|
|
|
*/
|
|
|
volatile struct dbdma_regs __iomem * dma_regs;
|
|
|
struct dbdma_cmd* dma_table_cpu;
|
|
|
-#endif
|
|
|
-
|
|
|
} pmac_ide_hwif_t;
|
|
|
|
|
|
enum {
|
|
@@ -222,8 +219,6 @@ static const char* model_name[] = {
|
|
|
#define KAUAI_FCR_UATA_RESET_N 0x00000002
|
|
|
#define KAUAI_FCR_UATA_ENABLE 0x00000001
|
|
|
|
|
|
-#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
|
|
|
-
|
|
|
/* Rounded Multiword DMA timings
|
|
|
*
|
|
|
* I gave up finding a generic formula for all controller
|
|
@@ -413,8 +408,6 @@ static int pmac_ide_build_dmatable(ide_drive_t *drive, struct request *rq);
|
|
|
static void pmac_ide_selectproc(ide_drive_t *drive);
|
|
|
static void pmac_ide_kauai_selectproc(ide_drive_t *drive);
|
|
|
|
|
|
-#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */
|
|
|
-
|
|
|
#define PMAC_IDE_REG(x) \
|
|
|
((void __iomem *)((drive)->hwif->io_ports.data_addr + (x)))
|
|
|
|
|
@@ -584,8 +577,6 @@ pmac_ide_set_pio_mode(ide_drive_t *drive, const u8 pio)
|
|
|
pmac_ide_do_update_timings(drive);
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
|
|
|
-
|
|
|
/*
|
|
|
* Calculate KeyLargo ATA/66 UDMA timings
|
|
|
*/
|
|
@@ -786,7 +777,6 @@ set_timings_mdma(ide_drive_t *drive, int intf_type, u32 *timings, u32 *timings2,
|
|
|
drive->name, speed & 0xf, *timings);
|
|
|
#endif
|
|
|
}
|
|
|
-#endif /* #ifdef CONFIG_BLK_DEV_IDEDMA_PMAC */
|
|
|
|
|
|
static void pmac_ide_set_dma_mode(ide_drive_t *drive, const u8 speed)
|
|
|
{
|
|
@@ -804,7 +794,6 @@ static void pmac_ide_set_dma_mode(ide_drive_t *drive, const u8 speed)
|
|
|
tl[0] = *timings;
|
|
|
tl[1] = *timings2;
|
|
|
|
|
|
-#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
|
|
|
if (speed >= XFER_UDMA_0) {
|
|
|
if (pmif->kind == controller_kl_ata4)
|
|
|
ret = set_timings_udma_ata4(&tl[0], speed);
|
|
@@ -817,7 +806,7 @@ static void pmac_ide_set_dma_mode(ide_drive_t *drive, const u8 speed)
|
|
|
ret = -1;
|
|
|
} else
|
|
|
set_timings_mdma(drive, pmif->kind, &tl[0], &tl[1], speed);
|
|
|
-#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */
|
|
|
+
|
|
|
if (ret)
|
|
|
return;
|
|
|
|
|
@@ -1008,9 +997,7 @@ static const struct ide_port_info pmac_port_info = {
|
|
|
.chipset = ide_pmac,
|
|
|
.tp_ops = &pmac_tp_ops,
|
|
|
.port_ops = &pmac_ide_port_ops,
|
|
|
-#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
|
|
|
.dma_ops = &pmac_dma_ops,
|
|
|
-#endif
|
|
|
.host_flags = IDE_HFLAG_SET_PIO_MODE_KEEP_DMA |
|
|
|
IDE_HFLAG_POST_SET_MODE |
|
|
|
IDE_HFLAG_MMIO |
|
|
@@ -1182,7 +1169,7 @@ pmac_ide_macio_attach(struct macio_dev *mdev, const struct of_device_id *match)
|
|
|
pmif->regbase = regbase;
|
|
|
pmif->irq = irq;
|
|
|
pmif->kauai_fcr = NULL;
|
|
|
-#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
|
|
|
+
|
|
|
if (macio_resource_count(mdev) >= 2) {
|
|
|
if (macio_request_resource(mdev, 1, "ide-pmac (dma)"))
|
|
|
printk(KERN_WARNING "ide-pmac: can't request DMA "
|
|
@@ -1192,7 +1179,7 @@ pmac_ide_macio_attach(struct macio_dev *mdev, const struct of_device_id *match)
|
|
|
pmif->dma_regs = ioremap(macio_resource_start(mdev, 1), 0x1000);
|
|
|
} else
|
|
|
pmif->dma_regs = NULL;
|
|
|
-#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */
|
|
|
+
|
|
|
dev_set_drvdata(&mdev->ofdev.dev, pmif);
|
|
|
|
|
|
memset(&hw, 0, sizeof(hw));
|
|
@@ -1300,9 +1287,7 @@ pmac_ide_pci_attach(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
|
|
|
|
base = ioremap(rbase, rlen);
|
|
|
pmif->regbase = (unsigned long) base + 0x2000;
|
|
|
-#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
|
|
|
pmif->dma_regs = base + 0x1000;
|
|
|
-#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */
|
|
|
pmif->kauai_fcr = base;
|
|
|
pmif->irq = pdev->irq;
|
|
|
|
|
@@ -1434,8 +1419,6 @@ out:
|
|
|
return error;
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
|
|
|
-
|
|
|
/*
|
|
|
* pmac_ide_build_dmatable builds the DBDMA command list
|
|
|
* for a transfer and sets the DBDMA channel to point to it.
|
|
@@ -1723,13 +1706,6 @@ static int __devinit pmac_ide_init_dma(ide_hwif_t *hwif,
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
-#else
|
|
|
-static int __devinit pmac_ide_init_dma(ide_hwif_t *hwif,
|
|
|
- const struct ide_port_info *d)
|
|
|
-{
|
|
|
- return -EOPNOTSUPP;
|
|
|
-}
|
|
|
-#endif /* CONFIG_BLK_DEV_IDEDMA_PMAC */
|
|
|
|
|
|
module_init(pmac_ide_probe);
|
|
|
|