* [PATCH 4/7] icside: use ->init_dma method
@ 2008-03-09 15:30 Bartlomiej Zolnierkiewicz
0 siblings, 0 replies; only message in thread
From: Bartlomiej Zolnierkiewicz @ 2008-03-09 15:30 UTC (permalink / raw)
To: linux-ide; +Cc: linux-kernel, Russell King
* Add 'const struct ide_port_info *d' argument to icside_dma_init().
* Make icside_dma_init() return an error value and add icside_dma_off_init()
(->init_dma implementation for case when DMA cannot be enabled).
* Convert the driver to use ->init_dma method.
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/ide/arm/icside.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
Index: b/drivers/ide/arm/icside.c
===================================================================
--- a/drivers/ide/arm/icside.c
+++ b/drivers/ide/arm/icside.c
@@ -384,7 +384,7 @@ static void icside_dma_lost_irq(ide_driv
printk(KERN_ERR "%s: IRQ lost\n", drive->name);
}
-static void icside_dma_init(ide_hwif_t *hwif)
+static int icside_dma_init(ide_hwif_t *hwif, const struct ide_port_info *d)
{
hwif->dmatable_cpu = NULL;
hwif->dmatable_dma = 0;
@@ -397,11 +397,16 @@ static void icside_dma_init(ide_hwif_t *
hwif->ide_dma_test_irq = icside_dma_test_irq;
hwif->dma_timeout = icside_dma_timeout;
hwif->dma_lost_irq = icside_dma_lost_irq;
+
+ return 0;
}
-#else
-#define icside_dma_init(hwif) (0)
#endif
+static int icside_dma_off_init(ide_hwif_t *hwif, const struct ide_port_info *d)
+{
+ return -EOPNOTSUPP;
+}
+
static ide_hwif_t *
icside_setup(void __iomem *base, struct cardinfo *info, struct expansion_card *ec)
{
@@ -468,9 +473,9 @@ icside_register_v5(struct icside_state *
}
static const struct ide_port_info icside_v6_port_info __initdata = {
+ .init_dma = icside_dma_off_init,
.port_ops = &icside_v6_no_dma_port_ops,
.host_flags = IDE_HFLAG_SERIALIZE |
- IDE_HFLAG_NO_DMA | /* no SFF-style DMA */
IDE_HFLAG_NO_AUTOTUNE,
.mwdma_mask = ATA_MWDMA2,
.swdma_mask = ATA_SWDMA2,
@@ -543,11 +548,9 @@ icside_register_v6(struct icside_state *
mate->select_data = sel | 1;
if (ec->dma != NO_DMA && !request_dma(ec->dma, hwif->name)) {
- icside_dma_init(hwif);
- icside_dma_init(mate);
+ d.init_dma = icside_dma_init;
d.port_ops = &icside_v6_dma_port_ops;
- } else
- d.mwdma_mask = d.swdma_mask = 0;
+ }
idx[0] = hwif->index;
idx[1] = mate->index;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-03-09 15:24 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-09 15:30 [PATCH 4/7] icside: use ->init_dma method Bartlomiej Zolnierkiewicz
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.