libata atapi work #2
PATCH 1/1 libata atapi work #2
# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/05/13 21:15:42-04:00 [email protected]
# [libata] use new ->bmdma_{start,setup} method to properly support ATAPI
#
drivers/scsi/libata-core.c +9 -2
@@ -2445,7 +2445,7 @@case ATA_PROT_DMA : ap->ops->tf_load (ap, &qc->tf);/* load tf registers */ - ap->ops->bmdma_setup (qc);/* initiate bmdma */ + ap->ops->bmdma_setup (qc);/* set up bmdma */ ap->ops->bmdma_start (qc);/* initiate bmdma */ break ;
@@ -2457,6 +2457,13 @@queue_work (ata_wq, &ap->pio_task);break ; +case ATA_PROT_ATAPI : +case ATA_PROT_ATAPI_DMA : + ap->ops->tf_load (ap, &qc->tf);/* load tf registers */ + ap->ops->bmdma_setup (qc);/* set up bmdma */ +queue_work (ata_wq, &ap->packet_task); +break ; +default :WARN_ON (1 );return -1 ;
@@ -2843,7 +2850,7 @@/* if we are DMA'ing, irq handler takes over from here */ if (qc->tf.protocol ==ATA_PROT_ATAPI_DMA ) { -/* FIXME: start DMA here */ + ap->ops->bmdma_start (qc);/* initiate bmdma */ }else { ap->pio_task_state =PIO_ST ;queue_work (ata_wq, &ap->pio_task);
Jeff, is this intentional?
@@ -2457,6 +2457,13 @@
queue_work(ata_wq, &ap->pio_task); break;
+ case ATA_PROT_ATAPI:
+ case ATA_PROT_ATAPI_DMA:
+ ap->ops->tf_load(ap, &qc->tf); /* load tf registers */
+ ap->ops->bmdma_setup(qc); /* set up bmdma */
+ queue_work(ata_wq, &ap->packet_task);
+ break;
+
default:
WARN_ON(1);
return -1;
drivers/scsi/libata-core.c line 2465
Quoted 12 lines · Bartlomiej Zolnierkiewicz
Jeff, is this intentional?
drivers/scsi/libata-core.c +6
-0@@ -2457,6 +2457,13 @@queue_work (ata_wq, &ap->pio_task);break ; +case ATA_PROT_ATAPI : +case ATA_PROT_ATAPI_DMA : + ap->ops->tf_load (ap, &qc->tf);/* load tf registers */ + ap->ops->bmdma_setup (qc);/* set up bmdma */ +queue_work (ata_wq, &ap->packet_task); +break ;
yeah, caught and fixed that...
Jeff