diff options
Diffstat (limited to 'drivers/ide/ide-probe.c')
-rw-r--r-- | drivers/ide/ide-probe.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index ebb1b7f863f4..0ccbb4459fb9 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -1229,6 +1229,8 @@ static void ide_init_port(ide_hwif_t *hwif, unsigned int port, | |||
1229 | if ((d->host_flags & IDE_HFLAG_NO_DMA) == 0) { | 1229 | if ((d->host_flags & IDE_HFLAG_NO_DMA) == 0) { |
1230 | int rc; | 1230 | int rc; |
1231 | 1231 | ||
1232 | hwif->dma_ops = d->dma_ops; | ||
1233 | |||
1232 | if (d->init_dma) | 1234 | if (d->init_dma) |
1233 | rc = d->init_dma(hwif, d); | 1235 | rc = d->init_dma(hwif, d); |
1234 | else | 1236 | else |
@@ -1236,12 +1238,13 @@ static void ide_init_port(ide_hwif_t *hwif, unsigned int port, | |||
1236 | 1238 | ||
1237 | if (rc < 0) { | 1239 | if (rc < 0) { |
1238 | printk(KERN_INFO "%s: DMA disabled\n", hwif->name); | 1240 | printk(KERN_INFO "%s: DMA disabled\n", hwif->name); |
1241 | |||
1242 | hwif->dma_ops = NULL; | ||
1239 | hwif->dma_base = 0; | 1243 | hwif->dma_base = 0; |
1240 | hwif->swdma_mask = 0; | 1244 | hwif->swdma_mask = 0; |
1241 | hwif->mwdma_mask = 0; | 1245 | hwif->mwdma_mask = 0; |
1242 | hwif->ultra_mask = 0; | 1246 | hwif->ultra_mask = 0; |
1243 | } else if (d->dma_ops) | 1247 | } |
1244 | hwif->dma_ops = d->dma_ops; | ||
1245 | } | 1248 | } |
1246 | 1249 | ||
1247 | if ((d->host_flags & IDE_HFLAG_SERIALIZE) || | 1250 | if ((d->host_flags & IDE_HFLAG_SERIALIZE) || |