ide: remove clearing bmdma status from cdrom_decode_status() (rev #4)
authorAlbert Lee <albertcc@tw.ibm.com>
Sat, 17 Feb 2007 01:40:22 +0000 (02:40 +0100)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sat, 17 Feb 2007 01:40:22 +0000 (02:40 +0100)
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>
drivers/ide/ide-cd.c
drivers/ide/pci/piix.c
include/linux/ide.h

index 21f4ae2b7176eb86af34ec1c1f0ee07ddbf4f963..a2bde80b54021f65427bba7e763aa290bdd32f41 100644 (file)
@@ -687,15 +687,8 @@ static void ide_dump_status_no_sense(ide_drive_t *drive, const char *msg, u8 sta
 static int cdrom_decode_status(ide_drive_t *drive, int good_stat, int *stat_ret)
 {
        struct request *rq = HWGROUP(drive)->rq;
-       ide_hwif_t *hwif = HWIF(drive);
        int stat, err, sense_key;
        
-       /* We may have bogus DMA interrupts in PIO state here */
-       if (HWIF(drive)->dma_status && hwif->atapi_irq_bogon) {
-               stat = hwif->INB(hwif->dma_status);
-               /* Should we force the bit as well ? */
-               hwif->OUTB(stat, hwif->dma_status);
-       }
        /* Check for errors. */
        stat = HWIF(drive)->INB(IDE_STATUS_REG);
        if (stat_ret)
index af65b0888bbbec3239ca480d509203e0bee88a60..f530bf4bf0f00073f883dedb328cd0775e626005 100644 (file)
@@ -501,10 +501,6 @@ static void __devinit init_hwif_piix(ide_hwif_t *hwif)
                /* This is a painful system best to let it self tune for now */
                return;
        }
-       /* ESB2 appears to generate spurious DMA interrupts in PIO mode
-          when in native mode */
-       if (hwif->pci_dev->device == PCI_DEVICE_ID_INTEL_ESB2_18)
-               hwif->atapi_irq_bogon = 1;
 
        hwif->autodma = 0;
        hwif->tuneproc = &piix_tune_drive;
index 1c17dee839d473e76b6cf67d44c19d043d75ddac..7b3911034809ffc7c452bae9771f76e7a0d93db8 100644 (file)
@@ -808,7 +808,6 @@ typedef struct hwif_s {
        unsigned        sg_mapped  : 1; /* sg_table and sg_nents are ready */
        unsigned        no_io_32bit : 1; /* 1 = can not do 32-bit IO ops */
        unsigned        err_stops_fifo : 1; /* 1=data FIFO is cleared by an error */
-       unsigned        atapi_irq_bogon : 1; /* Generates spurious DMA interrupts in PIO mode */
 
        struct device   gendev;
        struct completion gendev_rel_comp; /* To deal with device release() */