ide: add IDE_HFLAG_NO_ATAPI_DMA host flag

Add IDE_HFLAG_NO_ATAPI_DMA host flag and set it in host drivers which
don't support ATAPI DMA.  Then remove no longer needed hwif->atapi_dma.
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 1c3dd326
...@@ -415,7 +415,6 @@ static void icside_dma_lost_irq(ide_drive_t *drive) ...@@ -415,7 +415,6 @@ static void icside_dma_lost_irq(ide_drive_t *drive)
static void icside_dma_init(ide_hwif_t *hwif) static void icside_dma_init(ide_hwif_t *hwif)
{ {
hwif->atapi_dma = 1;
hwif->mwdma_mask = 7; /* MW0..2 */ hwif->mwdma_mask = 7; /* MW0..2 */
hwif->swdma_mask = 7; /* SW0..2 */ hwif->swdma_mask = 7; /* SW0..2 */
......
...@@ -805,6 +805,7 @@ init_e100_ide (void) ...@@ -805,6 +805,7 @@ init_e100_ide (void)
hwif->dma_host_on = &cris_dma_on; hwif->dma_host_on = &cris_dma_on;
hwif->dma_off_quietly = &cris_dma_off; hwif->dma_off_quietly = &cris_dma_off;
hwif->cbl = ATA_CBL_PATA40; hwif->cbl = ATA_CBL_PATA40;
hwif->host_flags |= IDE_HFLAG_NO_ATAPI_DMA;
hwif->pio_mask = ATA_PIO4, hwif->pio_mask = ATA_PIO4,
hwif->drives[0].autotune = 1; hwif->drives[0].autotune = 1;
hwif->drives[1].autotune = 1; hwif->drives[1].autotune = 1;
......
...@@ -338,8 +338,10 @@ static int config_drive_for_dma (ide_drive_t *drive) ...@@ -338,8 +338,10 @@ static int config_drive_for_dma (ide_drive_t *drive)
ide_hwif_t *hwif = drive->hwif; ide_hwif_t *hwif = drive->hwif;
struct hd_driveid *id = drive->id; struct hd_driveid *id = drive->id;
if (drive->media != ide_disk && hwif->atapi_dma == 0) if (drive->media != ide_disk) {
return 0; if (hwif->host_flags & IDE_HFLAG_NO_ATAPI_DMA)
return -1;
}
/* /*
* Enable DMA on any drive that has * Enable DMA on any drive that has
...@@ -726,8 +728,10 @@ u8 ide_find_dma_mode(ide_drive_t *drive, u8 req_mode) ...@@ -726,8 +728,10 @@ u8 ide_find_dma_mode(ide_drive_t *drive, u8 req_mode)
int x, i; int x, i;
u8 mode = 0; u8 mode = 0;
if (drive->media != ide_disk && hwif->atapi_dma == 0) if (drive->media != ide_disk) {
return 0; if (hwif->host_flags & IDE_HFLAG_NO_ATAPI_DMA)
return 0;
}
for (i = 0; i < ARRAY_SIZE(xfer_mode_bases); i++) { for (i = 0; i < ARRAY_SIZE(xfer_mode_bases); i++) {
if (req_mode < xfer_mode_bases[i]) if (req_mode < xfer_mode_bases[i])
......
...@@ -134,8 +134,6 @@ static void init_hwif_data(ide_hwif_t *hwif, unsigned int index) ...@@ -134,8 +134,6 @@ static void init_hwif_data(ide_hwif_t *hwif, unsigned int index)
hwif->bus_state = BUSSTATE_ON; hwif->bus_state = BUSSTATE_ON;
hwif->atapi_dma = 0; /* disable all atapi dma */
init_completion(&hwif->gendev_rel_comp); init_completion(&hwif->gendev_rel_comp);
default_hwif_iops(hwif); default_hwif_iops(hwif);
...@@ -379,7 +377,6 @@ static void ide_hwif_restore(ide_hwif_t *hwif, ide_hwif_t *tmp_hwif) ...@@ -379,7 +377,6 @@ static void ide_hwif_restore(ide_hwif_t *hwif, ide_hwif_t *tmp_hwif)
hwif->pio_mask = tmp_hwif->pio_mask; hwif->pio_mask = tmp_hwif->pio_mask;
hwif->atapi_dma = tmp_hwif->atapi_dma;
hwif->ultra_mask = tmp_hwif->ultra_mask; hwif->ultra_mask = tmp_hwif->ultra_mask;
hwif->mwdma_mask = tmp_hwif->mwdma_mask; hwif->mwdma_mask = tmp_hwif->mwdma_mask;
hwif->swdma_mask = tmp_hwif->swdma_mask; hwif->swdma_mask = tmp_hwif->swdma_mask;
......
...@@ -699,9 +699,6 @@ static int au_ide_probe(struct device *dev) ...@@ -699,9 +699,6 @@ static int au_ide_probe(struct device *dev)
hwif->dma_host_on = &auide_dma_host_on; hwif->dma_host_on = &auide_dma_host_on;
hwif->dma_lost_irq = &auide_dma_lost_irq; hwif->dma_lost_irq = &auide_dma_lost_irq;
hwif->ide_dma_on = &auide_dma_on; hwif->ide_dma_on = &auide_dma_on;
hwif->atapi_dma = 1;
#else /* !CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA */ #else /* !CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA */
hwif->channel = 0; hwif->channel = 0;
hwif->hold = 1; hwif->hold = 1;
......
...@@ -247,6 +247,7 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { ...@@ -247,6 +247,7 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = {
.autodma = AUTODMA, .autodma = AUTODMA,
.enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}},
.bootable = OFF_BOARD, .bootable = OFF_BOARD,
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
.pio_mask = ATA_PIO4, .pio_mask = ATA_PIO4,
.udma_mask = 0x07, /* udma0-2 */ .udma_mask = 0x07, /* udma0-2 */
},{ /* 1 */ },{ /* 1 */
...@@ -256,6 +257,7 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { ...@@ -256,6 +257,7 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = {
.init_hwif = init_hwif_aec62xx, .init_hwif = init_hwif_aec62xx,
.autodma = NOAUTODMA, .autodma = NOAUTODMA,
.bootable = OFF_BOARD, .bootable = OFF_BOARD,
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
.pio_mask = ATA_PIO4, .pio_mask = ATA_PIO4,
.udma_mask = 0x1f, /* udma0-4 */ .udma_mask = 0x1f, /* udma0-4 */
},{ /* 2 */ },{ /* 2 */
...@@ -266,6 +268,7 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { ...@@ -266,6 +268,7 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = {
.autodma = AUTODMA, .autodma = AUTODMA,
.enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}},
.bootable = NEVER_BOARD, .bootable = NEVER_BOARD,
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
.pio_mask = ATA_PIO4, .pio_mask = ATA_PIO4,
.udma_mask = 0x1f, /* udma0-4 */ .udma_mask = 0x1f, /* udma0-4 */
},{ /* 3 */ },{ /* 3 */
...@@ -275,6 +278,7 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { ...@@ -275,6 +278,7 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = {
.init_hwif = init_hwif_aec62xx, .init_hwif = init_hwif_aec62xx,
.autodma = AUTODMA, .autodma = AUTODMA,
.bootable = OFF_BOARD, .bootable = OFF_BOARD,
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
.pio_mask = ATA_PIO4, .pio_mask = ATA_PIO4,
.udma_mask = 0x3f, /* udma0-5 */ .udma_mask = 0x3f, /* udma0-5 */
},{ /* 4 */ },{ /* 4 */
...@@ -285,6 +289,7 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = { ...@@ -285,6 +289,7 @@ static ide_pci_device_t aec62xx_chipsets[] __devinitdata = {
.autodma = AUTODMA, .autodma = AUTODMA,
.enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, .enablebits = {{0x4a,0x02,0x02}, {0x4a,0x04,0x04}},
.bootable = OFF_BOARD, .bootable = OFF_BOARD,
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
.pio_mask = ATA_PIO4, .pio_mask = ATA_PIO4,
.udma_mask = 0x3f, /* udma0-5 */ .udma_mask = 0x3f, /* udma0-5 */
} }
......
...@@ -677,8 +677,8 @@ static void __devinit init_hwif_common_ali15x3 (ide_hwif_t *hwif) ...@@ -677,8 +677,8 @@ static void __devinit init_hwif_common_ali15x3 (ide_hwif_t *hwif)
* check in ->init_dma guarantees m5229_revision >= 0x20 here * check in ->init_dma guarantees m5229_revision >= 0x20 here
*/ */
if (m5229_revision > 0x20) if (m5229_revision == 0x20)
hwif->atapi_dma = 1; hwif->host_flags |= IDE_HFLAG_NO_ATAPI_DMA;
if (m5229_revision <= 0x20) if (m5229_revision <= 0x20)
hwif->ultra_mask = 0x00; /* no udma */ hwif->ultra_mask = 0x00; /* no udma */
......
...@@ -260,8 +260,6 @@ static void __devinit init_hwif_amd74xx(ide_hwif_t *hwif) ...@@ -260,8 +260,6 @@ static void __devinit init_hwif_amd74xx(ide_hwif_t *hwif)
if (!hwif->dma_base) if (!hwif->dma_base)
return; return;
hwif->atapi_dma = 1;
hwif->ultra_mask = amd_config->udma_mask; hwif->ultra_mask = amd_config->udma_mask;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
if ((amd_config->flags & AMD_BAD_SWDMA) == 0) if ((amd_config->flags & AMD_BAD_SWDMA) == 0)
......
...@@ -183,7 +183,6 @@ static void __devinit init_hwif_atiixp(ide_hwif_t *hwif) ...@@ -183,7 +183,6 @@ static void __devinit init_hwif_atiixp(ide_hwif_t *hwif)
if (!hwif->dma_base) if (!hwif->dma_base)
return; return;
hwif->atapi_dma = 1;
hwif->ultra_mask = 0x3f; hwif->ultra_mask = 0x3f;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
......
...@@ -517,7 +517,6 @@ static void __devinit init_hwif_cmd64x(ide_hwif_t *hwif) ...@@ -517,7 +517,6 @@ static void __devinit init_hwif_cmd64x(ide_hwif_t *hwif)
if (!hwif->dma_base) if (!hwif->dma_base)
return; return;
hwif->atapi_dma = 1;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
hwif->ultra_mask = hwif->cds->udma_mask; hwif->ultra_mask = hwif->cds->udma_mask;
......
...@@ -125,6 +125,7 @@ static void __devinit cs5520_init_setup_dma(struct pci_dev *dev, ide_pci_device_ ...@@ -125,6 +125,7 @@ static void __devinit cs5520_init_setup_dma(struct pci_dev *dev, ide_pci_device_
static int cs5520_dma_on(ide_drive_t *drive) static int cs5520_dma_on(ide_drive_t *drive)
{ {
/* ATAPI is harder so leave it for now */
drive->vdma = 1; drive->vdma = 1;
return 0; return 0;
} }
...@@ -141,8 +142,6 @@ static void __devinit init_hwif_cs5520(ide_hwif_t *hwif) ...@@ -141,8 +142,6 @@ static void __devinit init_hwif_cs5520(ide_hwif_t *hwif)
hwif->ide_dma_on = &cs5520_dma_on; hwif->ide_dma_on = &cs5520_dma_on;
/* ATAPI is harder so leave it for now */
hwif->atapi_dma = 0;
hwif->ultra_mask = 0; hwif->ultra_mask = 0;
hwif->swdma_mask = 0; hwif->swdma_mask = 0;
hwif->mwdma_mask = 0; hwif->mwdma_mask = 0;
...@@ -156,7 +155,8 @@ static void __devinit init_hwif_cs5520(ide_hwif_t *hwif) ...@@ -156,7 +155,8 @@ static void __devinit init_hwif_cs5520(ide_hwif_t *hwif)
.autodma = AUTODMA, \ .autodma = AUTODMA, \
.bootable = ON_BOARD, \ .bootable = ON_BOARD, \
.host_flags = IDE_HFLAG_ISA_PORTS | \ .host_flags = IDE_HFLAG_ISA_PORTS | \
IDE_HFLAG_VDMA, \ IDE_HFLAG_VDMA | \
IDE_HFLAG_NO_ATAPI_DMA, \
.pio_mask = ATA_PIO4, \ .pio_mask = ATA_PIO4, \
} }
......
...@@ -264,7 +264,6 @@ static void __devinit init_hwif_cs5530 (ide_hwif_t *hwif) ...@@ -264,7 +264,6 @@ static void __devinit init_hwif_cs5530 (ide_hwif_t *hwif)
if (hwif->dma_base == 0) if (hwif->dma_base == 0)
return; return;
hwif->atapi_dma = 1;
hwif->ultra_mask = 0x07; hwif->ultra_mask = 0x07;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
......
...@@ -185,7 +185,6 @@ static void __devinit init_hwif_cs5535(ide_hwif_t *hwif) ...@@ -185,7 +185,6 @@ static void __devinit init_hwif_cs5535(ide_hwif_t *hwif)
if (hwif->dma_base == 0) if (hwif->dma_base == 0)
return; return;
hwif->atapi_dma = 1;
hwif->ultra_mask = 0x1F; hwif->ultra_mask = 0x1F;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
......
...@@ -437,7 +437,6 @@ static void __devinit init_hwif_cy82c693(ide_hwif_t *hwif) ...@@ -437,7 +437,6 @@ static void __devinit init_hwif_cy82c693(ide_hwif_t *hwif)
return; return;
} }
hwif->atapi_dma = 1;
hwif->mwdma_mask = 0x04; hwif->mwdma_mask = 0x04;
hwif->swdma_mask = 0x04; hwif->swdma_mask = 0x04;
......
...@@ -69,7 +69,6 @@ static void __devinit init_hwif_generic (ide_hwif_t *hwif) ...@@ -69,7 +69,6 @@ static void __devinit init_hwif_generic (ide_hwif_t *hwif)
if (!(hwif->dma_base)) if (!(hwif->dma_base))
return; return;
hwif->atapi_dma = 1;
hwif->ultra_mask = 0x7f; hwif->ultra_mask = 0x7f;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
hwif->swdma_mask = 0x07; hwif->swdma_mask = 0x07;
......
...@@ -155,6 +155,7 @@ static ide_pci_device_t hpt34x_chipset __devinitdata = { ...@@ -155,6 +155,7 @@ static ide_pci_device_t hpt34x_chipset __devinitdata = {
.autodma = NOAUTODMA, .autodma = NOAUTODMA,
.bootable = NEVER_BOARD, .bootable = NEVER_BOARD,
.extra = 16, .extra = 16,
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
.pio_mask = ATA_PIO5, .pio_mask = ATA_PIO5,
}; };
......
...@@ -1555,6 +1555,7 @@ static ide_pci_device_t hpt366_chipsets[] __devinitdata = { ...@@ -1555,6 +1555,7 @@ static ide_pci_device_t hpt366_chipsets[] __devinitdata = {
.enablebits = {{0x50,0x04,0x04}, {0x54,0x04,0x04}}, .enablebits = {{0x50,0x04,0x04}, {0x54,0x04,0x04}},
.bootable = OFF_BOARD, .bootable = OFF_BOARD,
.extra = 240, .extra = 240,
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
.pio_mask = ATA_PIO4, .pio_mask = ATA_PIO4,
},{ /* 1 */ },{ /* 1 */
.name = "HPT372A", .name = "HPT372A",
...@@ -1567,6 +1568,7 @@ static ide_pci_device_t hpt366_chipsets[] __devinitdata = { ...@@ -1567,6 +1568,7 @@ static ide_pci_device_t hpt366_chipsets[] __devinitdata = {
.udma_mask = HPT372_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5, .udma_mask = HPT372_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5,
.bootable = OFF_BOARD, .bootable = OFF_BOARD,
.extra = 240, .extra = 240,
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
.pio_mask = ATA_PIO4, .pio_mask = ATA_PIO4,
},{ /* 2 */ },{ /* 2 */
.name = "HPT302", .name = "HPT302",
...@@ -1579,6 +1581,7 @@ static ide_pci_device_t hpt366_chipsets[] __devinitdata = { ...@@ -1579,6 +1581,7 @@ static ide_pci_device_t hpt366_chipsets[] __devinitdata = {
.udma_mask = HPT302_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5, .udma_mask = HPT302_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5,
.bootable = OFF_BOARD, .bootable = OFF_BOARD,
.extra = 240, .extra = 240,
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
.pio_mask = ATA_PIO4, .pio_mask = ATA_PIO4,
},{ /* 3 */ },{ /* 3 */
.name = "HPT371", .name = "HPT371",
...@@ -1591,6 +1594,7 @@ static ide_pci_device_t hpt366_chipsets[] __devinitdata = { ...@@ -1591,6 +1594,7 @@ static ide_pci_device_t hpt366_chipsets[] __devinitdata = {
.udma_mask = HPT371_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5, .udma_mask = HPT371_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5,
.bootable = OFF_BOARD, .bootable = OFF_BOARD,
.extra = 240, .extra = 240,
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
.pio_mask = ATA_PIO4, .pio_mask = ATA_PIO4,
},{ /* 4 */ },{ /* 4 */
.name = "HPT374", .name = "HPT374",
...@@ -1603,6 +1607,7 @@ static ide_pci_device_t hpt366_chipsets[] __devinitdata = { ...@@ -1603,6 +1607,7 @@ static ide_pci_device_t hpt366_chipsets[] __devinitdata = {
.udma_mask = ATA_UDMA5, .udma_mask = ATA_UDMA5,
.bootable = OFF_BOARD, .bootable = OFF_BOARD,
.extra = 240, .extra = 240,
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
.pio_mask = ATA_PIO4, .pio_mask = ATA_PIO4,
},{ /* 5 */ },{ /* 5 */
.name = "HPT372N", .name = "HPT372N",
...@@ -1615,6 +1620,7 @@ static ide_pci_device_t hpt366_chipsets[] __devinitdata = { ...@@ -1615,6 +1620,7 @@ static ide_pci_device_t hpt366_chipsets[] __devinitdata = {
.udma_mask = HPT372_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5, .udma_mask = HPT372_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5,
.bootable = OFF_BOARD, .bootable = OFF_BOARD,
.extra = 240, .extra = 240,
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
.pio_mask = ATA_PIO4, .pio_mask = ATA_PIO4,
} }
}; };
......
...@@ -176,7 +176,6 @@ static void __devinit init_hwif_it8213(ide_hwif_t *hwif) ...@@ -176,7 +176,6 @@ static void __devinit init_hwif_it8213(ide_hwif_t *hwif)
if (!hwif->dma_base) if (!hwif->dma_base)
return; return;
hwif->atapi_dma = 1;
hwif->ultra_mask = 0x7f; hwif->ultra_mask = 0x7f;
hwif->mwdma_mask = 0x06; hwif->mwdma_mask = 0x06;
hwif->swdma_mask = 0x04; hwif->swdma_mask = 0x04;
......
...@@ -544,12 +544,10 @@ static void __devinit init_hwif_it821x(ide_hwif_t *hwif) ...@@ -544,12 +544,10 @@ static void __devinit init_hwif_it821x(ide_hwif_t *hwif)
ide_set_hwifdata(hwif, idev); ide_set_hwifdata(hwif, idev);
hwif->atapi_dma = 1;
pci_read_config_byte(hwif->pci_dev, 0x50, &conf); pci_read_config_byte(hwif->pci_dev, 0x50, &conf);
if(conf & 1) { if (conf & 1) {
idev->smart = 1; idev->smart = 1;
hwif->atapi_dma = 0; hwif->host_flags |= IDE_HFLAG_NO_ATAPI_DMA;
/* Long I/O's although allowed in LBA48 space cause the /* Long I/O's although allowed in LBA48 space cause the
onboard firmware to enter the twighlight zone */ onboard firmware to enter the twighlight zone */
hwif->rqsize = 256; hwif->rqsize = 256;
...@@ -570,10 +568,10 @@ static void __devinit init_hwif_it821x(ide_hwif_t *hwif) ...@@ -570,10 +568,10 @@ static void __devinit init_hwif_it821x(ide_hwif_t *hwif)
*/ */
pci_read_config_byte(hwif->pci_dev, 0x08, &conf); pci_read_config_byte(hwif->pci_dev, 0x08, &conf);
if(conf == 0x10) { if (conf == 0x10) {
idev->timing10 = 1; idev->timing10 = 1;
hwif->atapi_dma = 0; hwif->host_flags |= IDE_HFLAG_NO_ATAPI_DMA;
if(!idev->smart) if (idev->smart == 0)
printk(KERN_WARNING "it821x: Revision 0x10, workarounds activated.\n"); printk(KERN_WARNING "it821x: Revision 0x10, workarounds activated.\n");
} }
......
...@@ -117,7 +117,6 @@ static void __devinit init_hwif_jmicron(ide_hwif_t *hwif) ...@@ -117,7 +117,6 @@ static void __devinit init_hwif_jmicron(ide_hwif_t *hwif)
if (hwif->dma_base == 0) if (hwif->dma_base == 0)
return; return;
hwif->atapi_dma = 1;
hwif->ultra_mask = 0x7f; hwif->ultra_mask = 0x7f;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
......
...@@ -268,7 +268,8 @@ static ide_pci_device_t ns87415_chipset __devinitdata = { ...@@ -268,7 +268,8 @@ static ide_pci_device_t ns87415_chipset __devinitdata = {
.init_hwif = init_hwif_ns87415, .init_hwif = init_hwif_ns87415,
.autodma = AUTODMA, .autodma = AUTODMA,
.bootable = ON_BOARD, .bootable = ON_BOARD,
.host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA, .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA |
IDE_HFLAG_NO_ATAPI_DMA,
}; };
static int __devinit ns87415_init_one(struct pci_dev *dev, const struct pci_device_id *id) static int __devinit ns87415_init_one(struct pci_dev *dev, const struct pci_device_id *id)
......
...@@ -336,7 +336,6 @@ static void __devinit init_hwif_opti621 (ide_hwif_t *hwif) ...@@ -336,7 +336,6 @@ static void __devinit init_hwif_opti621 (ide_hwif_t *hwif)
if (!(hwif->dma_base)) if (!(hwif->dma_base))
return; return;
hwif->atapi_dma = 1;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
hwif->swdma_mask = 0x07; hwif->swdma_mask = 0x07;
} }
......
...@@ -482,8 +482,6 @@ static void __devinit init_hwif_pdc202new(ide_hwif_t *hwif) ...@@ -482,8 +482,6 @@ static void __devinit init_hwif_pdc202new(ide_hwif_t *hwif)
if (hwif->dma_base == 0) if (hwif->dma_base == 0)
return; return;
hwif->atapi_dma = 1;
hwif->ultra_mask = hwif->cds->udma_mask; hwif->ultra_mask = hwif->cds->udma_mask;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
......
...@@ -330,7 +330,6 @@ static void __devinit init_hwif_pdc202xx(ide_hwif_t *hwif) ...@@ -330,7 +330,6 @@ static void __devinit init_hwif_pdc202xx(ide_hwif_t *hwif)
hwif->ultra_mask = hwif->cds->udma_mask; hwif->ultra_mask = hwif->cds->udma_mask;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
hwif->swdma_mask = 0x07; hwif->swdma_mask = 0x07;
hwif->atapi_dma = 1;
hwif->dma_lost_irq = &pdc202xx_dma_lost_irq; hwif->dma_lost_irq = &pdc202xx_dma_lost_irq;
hwif->dma_timeout = &pdc202xx_dma_timeout; hwif->dma_timeout = &pdc202xx_dma_timeout;
......
...@@ -397,8 +397,6 @@ static void __devinit init_hwif_piix(ide_hwif_t *hwif) ...@@ -397,8 +397,6 @@ static void __devinit init_hwif_piix(ide_hwif_t *hwif)
if (piix_is_ichx(hwif->pci_dev)) if (piix_is_ichx(hwif->pci_dev))
hwif->ide_dma_clear_irq = &piix_dma_clear_irq; hwif->ide_dma_clear_irq = &piix_dma_clear_irq;
hwif->atapi_dma = 1;
hwif->ultra_mask = hwif->cds->udma_mask; hwif->ultra_mask = hwif->cds->udma_mask;
hwif->mwdma_mask = 0x06; hwif->mwdma_mask = 0x06;
hwif->swdma_mask = 0x04; hwif->swdma_mask = 0x04;
......
...@@ -377,7 +377,6 @@ static void __devinit init_hwif_sc1200 (ide_hwif_t *hwif) ...@@ -377,7 +377,6 @@ static void __devinit init_hwif_sc1200 (ide_hwif_t *hwif)
hwif->udma_filter = sc1200_udma_filter; hwif->udma_filter = sc1200_udma_filter;
hwif->ide_dma_end = &sc1200_ide_dma_end; hwif->ide_dma_end = &sc1200_ide_dma_end;
hwif->atapi_dma = 1;
hwif->ultra_mask = 0x07; hwif->ultra_mask = 0x07;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
} }
......
...@@ -693,7 +693,6 @@ static void __devinit init_hwif_scc(ide_hwif_t *hwif) ...@@ -693,7 +693,6 @@ static void __devinit init_hwif_scc(ide_hwif_t *hwif)
} }
hwif->mwdma_mask = 0x00; hwif->mwdma_mask = 0x00;
hwif->swdma_mask = 0x00; hwif->swdma_mask = 0x00;
hwif->atapi_dma = 1;
/* we support 80c cable only. */ /* we support 80c cable only. */
hwif->cbl = ATA_CBL_PATA80; hwif->cbl = ATA_CBL_PATA80;
......
...@@ -367,8 +367,6 @@ static void __devinit init_hwif_svwks (ide_hwif_t *hwif) ...@@ -367,8 +367,6 @@ static void __devinit init_hwif_svwks (ide_hwif_t *hwif)
hwif->set_dma_mode = &svwks_set_dma_mode; hwif->set_dma_mode = &svwks_set_dma_mode;
hwif->udma_filter = &svwks_udma_filter; hwif->udma_filter = &svwks_udma_filter;
hwif->atapi_dma = 1;
if (hwif->pci_dev->device != PCI_DEVICE_ID_SERVERWORKS_OSB4IDE) if (hwif->pci_dev->device != PCI_DEVICE_ID_SERVERWORKS_OSB4IDE)
hwif->ultra_mask = 0x3f; hwif->ultra_mask = 0x3f;
......
...@@ -592,7 +592,6 @@ ide_init_sgiioc4(ide_hwif_t * hwif) ...@@ -592,7 +592,6 @@ ide_init_sgiioc4(ide_hwif_t * hwif)
if (hwif->dma_base == 0) if (hwif->dma_base == 0)
return; return;
hwif->atapi_dma = 1;
hwif->mwdma_mask = 0x04; hwif->mwdma_mask = 0x04;
hwif->dma_setup = &sgiioc4_ide_dma_setup; hwif->dma_setup = &sgiioc4_ide_dma_setup;
......
...@@ -899,8 +899,8 @@ static void __devinit init_hwif_siimage(ide_hwif_t *hwif) ...@@ -899,8 +899,8 @@ static void __devinit init_hwif_siimage(ide_hwif_t *hwif)
hwif->ultra_mask = 0x7f; hwif->ultra_mask = 0x7f;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
if (!is_sata(hwif)) if (is_sata(hwif))
hwif->atapi_dma = 1; hwif->host_flags |= IDE_HFLAG_NO_ATAPI_DMA;
if (hwif->cbl != ATA_CBL_PATA40_SHORT) if (hwif->cbl != ATA_CBL_PATA40_SHORT)
hwif->cbl = ata66_siimage(hwif); hwif->cbl = ata66_siimage(hwif);
......
...@@ -579,8 +579,6 @@ static void __devinit init_hwif_sis5513 (ide_hwif_t *hwif) ...@@ -579,8 +579,6 @@ static void __devinit init_hwif_sis5513 (ide_hwif_t *hwif)
if (hwif->dma_base == 0) if (hwif->dma_base == 0)
return; return;
hwif->atapi_dma = 1;
hwif->ultra_mask = udma_rates[chipset_family]; hwif->ultra_mask = udma_rates[chipset_family];
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
......
...@@ -388,7 +388,6 @@ static void __devinit init_hwif_sl82c105(ide_hwif_t *hwif) ...@@ -388,7 +388,6 @@ static void __devinit init_hwif_sl82c105(ide_hwif_t *hwif)
return; return;
} }
hwif->atapi_dma = 1;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
hwif->ide_dma_on = &sl82c105_ide_dma_on; hwif->ide_dma_on = &sl82c105_ide_dma_on;
......
...@@ -147,7 +147,6 @@ static void __devinit init_hwif_slc90e66 (ide_hwif_t *hwif) ...@@ -147,7 +147,6 @@ static void __devinit init_hwif_slc90e66 (ide_hwif_t *hwif)
if (hwif->dma_base == 0) if (hwif->dma_base == 0)
return; return;
hwif->atapi_dma = 1;
hwif->ultra_mask = 0x1f; hwif->ultra_mask = 0x1f;
hwif->mwdma_mask = 0x06; hwif->mwdma_mask = 0x06;
hwif->swdma_mask = 0x04; hwif->swdma_mask = 0x04;
......
...@@ -198,7 +198,6 @@ static void __devinit init_hwif_tc86c001(ide_hwif_t *hwif) ...@@ -198,7 +198,6 @@ static void __devinit init_hwif_tc86c001(ide_hwif_t *hwif)
/* Sector Count Register limit */ /* Sector Count Register limit */
hwif->rqsize = 0xffff; hwif->rqsize = 0xffff;
hwif->atapi_dma = 1;
hwif->ultra_mask = 0x1f; hwif->ultra_mask = 0x1f;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
......
...@@ -104,7 +104,6 @@ static void __devinit init_hwif_triflex(ide_hwif_t *hwif) ...@@ -104,7 +104,6 @@ static void __devinit init_hwif_triflex(ide_hwif_t *hwif)
if (hwif->dma_base == 0) if (hwif->dma_base == 0)
return; return;
hwif->atapi_dma = 1;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
hwif->swdma_mask = 0x07; hwif->swdma_mask = 0x07;
} }
......
...@@ -327,7 +327,9 @@ static ide_pci_device_t trm290_chipset __devinitdata = { ...@@ -327,7 +327,9 @@ static ide_pci_device_t trm290_chipset __devinitdata = {
.autodma = NOAUTODMA, .autodma = NOAUTODMA,
.bootable = ON_BOARD, .bootable = ON_BOARD,
#if 0 /* play it safe for now */ #if 0 /* play it safe for now */
.host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA, .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA | IDE_HFLAG_NO_ATAPI_DMA,
#else
.host_flags = IDE_HFLAG_NO_ATAPI_DMA,
#endif #endif
}; };
......
...@@ -443,8 +443,6 @@ static void __devinit init_hwif_via82cxxx(ide_hwif_t *hwif) ...@@ -443,8 +443,6 @@ static void __devinit init_hwif_via82cxxx(ide_hwif_t *hwif)
if (!hwif->dma_base) if (!hwif->dma_base)
return; return;
hwif->atapi_dma = 1;
hwif->ultra_mask = vdev->via_config->udma_mask; hwif->ultra_mask = vdev->via_config->udma_mask;
hwif->mwdma_mask = 0x07; hwif->mwdma_mask = 0x07;
hwif->swdma_mask = 0x07; hwif->swdma_mask = 0x07;
......
...@@ -1780,7 +1780,6 @@ pmac_ide_setup_dma(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif) ...@@ -1780,7 +1780,6 @@ pmac_ide_setup_dma(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif)
hwif->dma_timeout = &ide_dma_timeout; hwif->dma_timeout = &ide_dma_timeout;
hwif->dma_lost_irq = &pmac_ide_dma_lost_irq; hwif->dma_lost_irq = &pmac_ide_dma_lost_irq;
hwif->atapi_dma = 1;
switch(pmif->kind) { switch(pmif->kind) {
case controller_sh_ata6: case controller_sh_ata6:
hwif->ultra_mask = pmif->cable_80 ? 0x7f : 0x07; hwif->ultra_mask = pmif->cable_80 ? 0x7f : 0x07;
......
...@@ -685,7 +685,6 @@ typedef struct hwif_s { ...@@ -685,7 +685,6 @@ typedef struct hwif_s {
u8 pio_mask; u8 pio_mask;
u8 atapi_dma; /* host supports atapi_dma */
u8 ultra_mask; u8 ultra_mask;
u8 mwdma_mask; u8 mwdma_mask;
u8 swdma_mask; u8 swdma_mask;
...@@ -1258,6 +1257,8 @@ enum { ...@@ -1258,6 +1257,8 @@ enum {
IDE_HFLAG_TRUST_BIOS_FOR_DMA = (1 << 10), IDE_HFLAG_TRUST_BIOS_FOR_DMA = (1 << 10),
/* host uses VDMA */ /* host uses VDMA */
IDE_HFLAG_VDMA = (1 << 11), IDE_HFLAG_VDMA = (1 << 11),
/* ATAPI DMA is unsupported */
IDE_HFLAG_NO_ATAPI_DMA = (1 << 12),
}; };
typedef struct ide_pci_device_s { typedef struct ide_pci_device_s {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment