Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 43993
b: refs/heads/master
c: ee2f344
h: refs/heads/master
i:
  43991: 291ca6c
v: v3
  • Loading branch information
Alan Cox authored and Linus Torvalds committed Dec 10, 2006
1 parent a78b8d9 commit a2fe404
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 33859f7f9788da2ac9aa23be4dc8e948112809ca
refs/heads/master: ee2f344b33b507af23610c8fdfdde38d7c10fb33
7 changes: 7 additions & 0 deletions trunk/drivers/ide/ide-cd.c
Original file line number Diff line number Diff line change
Expand Up @@ -687,8 +687,15 @@ 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)
Expand Down
4 changes: 4 additions & 0 deletions trunk/drivers/ide/pci/piix.c
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,10 @@ 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;
Expand Down
1 change: 1 addition & 0 deletions trunk/include/linux/ide.h
Original file line number Diff line number Diff line change
Expand Up @@ -796,6 +796,7 @@ 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() */
Expand Down

0 comments on commit a2fe404

Please sign in to comment.