Skip to content

Commit

Permalink
sl82c105: implement test_irq() method
Browse files Browse the repository at this point in the history
Implement test_irq() method.

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
  • Loading branch information
Sergei Shtylyov authored and Bartlomiej Zolnierkiewicz committed Jun 15, 2009
1 parent ec053e4 commit 3779f81
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions drivers/ide/sl82c105.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,16 @@ static void sl82c105_set_dma_mode(ide_drive_t *drive, const u8 speed)
drive->drive_data |= (unsigned long)drv_ctrl << 16;
}

static int sl82c105_test_irq(ide_hwif_t *hwif)
{
struct pci_dev *dev = to_pci_dev(hwif->dev);
u32 val, mask = hwif->channel ? CTRL_IDE_IRQB : CTRL_IDE_IRQA;

pci_read_config_dword(dev, 0x40, &val);

return (val & mask) ? 1 : 0;
}

/*
* The SL82C105 holds off all IDE interrupts while in DMA mode until
* all DMA activity is completed. Sometimes this causes problems (eg,
Expand Down Expand Up @@ -288,6 +298,7 @@ static const struct ide_port_ops sl82c105_port_ops = {
.set_pio_mode = sl82c105_set_pio_mode,
.set_dma_mode = sl82c105_set_dma_mode,
.resetproc = sl82c105_resetproc,
.test_irq = sl82c105_test_irq,
};

static const struct ide_dma_ops sl82c105_dma_ops = {
Expand Down

0 comments on commit 3779f81

Please sign in to comment.