diff options
author | Sergei Shtylyov <sshtylyov@ru.mvista.com> | 2010-10-08 19:01:08 +0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2010-10-21 20:21:06 -0400 |
commit | 9b980e10fa7380b8315e8a414325045eab43826f (patch) | |
tree | f1edae1763c60b3d7b2f8f5034d2844c4f5f9b94 /drivers/ata/pata_sil680.c | |
parent | 606254e3c1faeb091203c58c2da8e3e4433aae6d (diff) | |
download | lwn-9b980e10fa7380b8315e8a414325045eab43826f.tar.gz lwn-9b980e10fa7380b8315e8a414325045eab43826f.zip |
pata_sil680: implement sff_irq_check() method
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/pata_sil680.c')
-rw-r--r-- | drivers/ata/pata_sil680.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/ata/pata_sil680.c b/drivers/ata/pata_sil680.c index 6cd52594a357..00eefbd84b33 100644 --- a/drivers/ata/pata_sil680.c +++ b/drivers/ata/pata_sil680.c @@ -210,6 +210,17 @@ static void sil680_sff_exec_command(struct ata_port *ap, ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_CMD); } +static bool sil680_sff_irq_check(struct ata_port *ap) +{ + struct pci_dev *pdev = to_pci_dev(ap->host->dev); + unsigned long addr = sil680_selreg(ap, 1); + u8 val; + + pci_read_config_byte(pdev, addr, &val); + + return val & 0x08; +} + static struct scsi_host_template sil680_sht = { ATA_BMDMA_SHT(DRV_NAME), }; @@ -218,6 +229,7 @@ static struct scsi_host_template sil680_sht = { static struct ata_port_operations sil680_port_ops = { .inherits = &ata_bmdma32_port_ops, .sff_exec_command = sil680_sff_exec_command, + .sff_irq_check = sil680_sff_irq_check, .cable_detect = sil680_cable_detect, .set_piomode = sil680_set_piomode, .set_dmamode = sil680_set_dmamode, |