aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlbert Lee <albertcc@tw.ibm.com>2007-02-16 20:40:22 -0500
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-02-16 20:40:22 -0500
commit6e6cd4c4388f399dd5726b826f02732c53df3ba5 (patch)
treecef13ec3b8b5b03a2d4204079f674e2c4e9c0bc2
parentf0dd8712eb8cc5687b4582fbc41cfbcd55bba0d2 (diff)
ide: remove clearing bmdma status from cdrom_decode_status() (rev #4)
patch 2/2: Remove clearing bmdma status from cdrom_decode_status() since ATA devices might need it as well. (http://lkml.org/lkml/2006/12/4/201 and http://lkml.org/lkml/2006/11/15/94) Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: "Adam W. Hawks" <awhawks@us.ibm.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
-rw-r--r--drivers/ide/ide-cd.c7
-rw-r--r--drivers/ide/pci/piix.c4
-rw-r--r--include/linux/ide.h1
3 files changed, 0 insertions, 12 deletions
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index 21f4ae2b7176..a2bde80b5402 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -687,15 +687,8 @@ static void ide_dump_status_no_sense(ide_drive_t *drive, const char *msg, u8 sta
687static int cdrom_decode_status(ide_drive_t *drive, int good_stat, int *stat_ret) 687static int cdrom_decode_status(ide_drive_t *drive, int good_stat, int *stat_ret)
688{ 688{
689 struct request *rq = HWGROUP(drive)->rq; 689 struct request *rq = HWGROUP(drive)->rq;
690 ide_hwif_t *hwif = HWIF(drive);
691 int stat, err, sense_key; 690 int stat, err, sense_key;
692 691
693 /* We may have bogus DMA interrupts in PIO state here */
694 if (HWIF(drive)->dma_status && hwif->atapi_irq_bogon) {
695 stat = hwif->INB(hwif->dma_status);
696 /* Should we force the bit as well ? */
697 hwif->OUTB(stat, hwif->dma_status);
698 }
699 /* Check for errors. */ 692 /* Check for errors. */
700 stat = HWIF(drive)->INB(IDE_STATUS_REG); 693 stat = HWIF(drive)->INB(IDE_STATUS_REG);
701 if (stat_ret) 694 if (stat_ret)
diff --git a/drivers/ide/pci/piix.c b/drivers/ide/pci/piix.c
index af65b0888bbb..f530bf4bf0f0 100644
--- a/drivers/ide/pci/piix.c
+++ b/drivers/ide/pci/piix.c
@@ -501,10 +501,6 @@ static void __devinit init_hwif_piix(ide_hwif_t *hwif)
501 /* This is a painful system best to let it self tune for now */ 501 /* This is a painful system best to let it self tune for now */
502 return; 502 return;
503 } 503 }
504 /* ESB2 appears to generate spurious DMA interrupts in PIO mode
505 when in native mode */
506 if (hwif->pci_dev->device == PCI_DEVICE_ID_INTEL_ESB2_18)
507 hwif->atapi_irq_bogon = 1;
508 504
509 hwif->autodma = 0; 505 hwif->autodma = 0;
510 hwif->tuneproc = &piix_tune_drive; 506 hwif->tuneproc = &piix_tune_drive;
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 1c17dee839d4..7b3911034809 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -808,7 +808,6 @@ typedef struct hwif_s {
808 unsigned sg_mapped : 1; /* sg_table and sg_nents are ready */ 808 unsigned sg_mapped : 1; /* sg_table and sg_nents are ready */
809 unsigned no_io_32bit : 1; /* 1 = can not do 32-bit IO ops */ 809 unsigned no_io_32bit : 1; /* 1 = can not do 32-bit IO ops */
810 unsigned err_stops_fifo : 1; /* 1=data FIFO is cleared by an error */ 810 unsigned err_stops_fifo : 1; /* 1=data FIFO is cleared by an error */
811 unsigned atapi_irq_bogon : 1; /* Generates spurious DMA interrupts in PIO mode */
812 811
813 struct device gendev; 812 struct device gendev;
814 struct completion gendev_rel_comp; /* To deal with device release() */ 813 struct completion gendev_rel_comp; /* To deal with device release() */