diff options
author | Albert Lee <albertcc@tw.ibm.com> | 2007-02-16 20:40:22 -0500 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-02-16 20:40:22 -0500 |
commit | 6e6cd4c4388f399dd5726b826f02732c53df3ba5 (patch) | |
tree | cef13ec3b8b5b03a2d4204079f674e2c4e9c0bc2 | |
parent | f0dd8712eb8cc5687b4582fbc41cfbcd55bba0d2 (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.c | 7 | ||||
-rw-r--r-- | drivers/ide/pci/piix.c | 4 | ||||
-rw-r--r-- | include/linux/ide.h | 1 |
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 | |||
687 | static int cdrom_decode_status(ide_drive_t *drive, int good_stat, int *stat_ret) | 687 | static 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() */ |