The patch titled Enable cdrom dma access with pdc20265_old has been added to the -mm tree. Its filename is enable-cdrom-dma-access-with-pdc20265_old.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: Enable cdrom dma access with pdc20265_old From: "Tobias Oed" <tobiasoed@xxxxxxxxxxx> This patch allows me to use dma with my cd/dvd attached to my on board pdc20265 ide controller Signed-off-by: Tobias Oed <tobiasoed@xxxxxxxxxxx> Cc: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@xxxxxxxxxxxxxx> Cc: Jens Axboe <axboe@xxxxxxx> Cc: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/ide/pci/pdc202xx_old.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff -puN drivers/ide/pci/pdc202xx_old.c~enable-cdrom-dma-access-with-pdc20265_old drivers/ide/pci/pdc202xx_old.c --- a/drivers/ide/pci/pdc202xx_old.c~enable-cdrom-dma-access-with-pdc20265_old +++ a/drivers/ide/pci/pdc202xx_old.c @@ -180,7 +180,8 @@ static int pdc202xx_tune_chipset (ide_dr u8 AP, BP, CP, DP; u8 TA = 0, TB = 0, TC = 0; - if ((drive->media != ide_disk) && (speed < XFER_SW_DMA_0)) + if (drive->media != ide_disk && + drive->media != ide_cdrom && speed < XFER_SW_DMA_0) return -1; pci_read_config_dword(dev, drive_pci, &drive_conf); @@ -356,14 +357,12 @@ static int config_chipset_for_dma (ide_d chipset_is_set: - if (drive->media == ide_disk) { - pci_read_config_byte(dev, (drive_pci), &AP); - if (id->capability & 4) /* IORDY_EN */ - pci_write_config_byte(dev, (drive_pci), AP|IORDY_EN); - pci_read_config_byte(dev, (drive_pci), &AP); - if (drive->media == ide_disk) /* PREFETCH_EN */ - pci_write_config_byte(dev, (drive_pci), AP|PREFETCH_EN); - } + pci_read_config_byte(dev, (drive_pci), &AP); + if (id->capability & 4) /* IORDY_EN */ + pci_write_config_byte(dev, (drive_pci), AP|IORDY_EN); + pci_read_config_byte(dev, (drive_pci), &AP); + if (drive->media == ide_disk) /* PREFETCH_EN */ + pci_write_config_byte(dev, (drive_pci), AP|PREFETCH_EN); speed = ide_dma_speed(drive, pdc202xx_ratemask(drive)); @@ -411,7 +410,7 @@ static void pdc202xx_old_ide_dma_start(i { if (drive->current_speed > XFER_UDMA_2) pdc_old_enable_66MHz_clock(drive->hwif); - if (drive->addressing == 1) { + if (drive->media != ide_disk || drive->addressing == 1) { struct request *rq = HWGROUP(drive)->rq; ide_hwif_t *hwif = HWIF(drive); unsigned long high_16 = hwif->dma_master; @@ -431,7 +430,7 @@ static void pdc202xx_old_ide_dma_start(i static int pdc202xx_old_ide_dma_end(ide_drive_t *drive) { - if (drive->addressing == 1) { + if (drive->media != ide_disk || drive->addressing == 1) { ide_hwif_t *hwif = HWIF(drive); unsigned long high_16 = hwif->dma_master; unsigned long atapi_reg = high_16 + (hwif->channel ? 0x24 : 0x20); @@ -598,6 +597,7 @@ static void __devinit init_hwif_pdc202xx hwif->ultra_mask = 0x3f; hwif->mwdma_mask = 0x07; hwif->swdma_mask = 0x07; + hwif->atapi_dma = 1; hwif->ide_dma_check = &pdc202xx_config_drive_xfer_rate; hwif->ide_dma_lostirq = &pdc202xx_ide_dma_lostirq; _ Patches currently in -mm which might be from tobiasoed@xxxxxxxxxxx are ide-pdc202xx_oldc-remove-unneeded-tuneproc-call.patch pdc202xx_old-depends-on-config_blk_dev_idedma.patch remove-code-that-has-long-been-commented-out-from-pdc20265_old.patch enable-cdrom-dma-access-with-pdc20265_old.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html