aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorSergei Shtylyov <sshtylyov@ru.mvista.com>2010-10-08 11:02:13 -0400
committerJeff Garzik <jgarzik@redhat.com>2010-10-21 20:21:06 -0400
commitf7a437dda2b5c104a897405cbff678aa1eb37897 (patch)
treeac988c086820e2547db501761fca4f52857e23c7 /drivers/ata
parent9b980e10fa7380b8315e8a414325045eab43826f (diff)
pata_sl82c105: 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')
-rw-r--r--drivers/ata/pata_sl82c105.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/ata/pata_sl82c105.c b/drivers/ata/pata_sl82c105.c
index 98548f640c8..7f5d020ed56 100644
--- a/drivers/ata/pata_sl82c105.c
+++ b/drivers/ata/pata_sl82c105.c
@@ -227,6 +227,16 @@ static int sl82c105_qc_defer(struct ata_queued_cmd *qc)
227 return 0; 227 return 0;
228} 228}
229 229
230static bool sl82c105_sff_irq_check(struct ata_port *ap)
231{
232 struct pci_dev *pdev = to_pci_dev(ap->host->dev);
233 u32 val, mask = ap->port_no ? CTRL_IDE_IRQB : CTRL_IDE_IRQA;
234
235 pci_read_config_dword(pdev, 0x40, &val);
236
237 return val & mask;
238}
239
230static struct scsi_host_template sl82c105_sht = { 240static struct scsi_host_template sl82c105_sht = {
231 ATA_BMDMA_SHT(DRV_NAME), 241 ATA_BMDMA_SHT(DRV_NAME),
232}; 242};
@@ -239,6 +249,7 @@ static struct ata_port_operations sl82c105_port_ops = {
239 .cable_detect = ata_cable_40wire, 249 .cable_detect = ata_cable_40wire,
240 .set_piomode = sl82c105_set_piomode, 250 .set_piomode = sl82c105_set_piomode,
241 .prereset = sl82c105_pre_reset, 251 .prereset = sl82c105_pre_reset,
252 .sff_irq_check = sl82c105_sff_irq_check,
242}; 253};
243 254
244/** 255/**