diff options
| -rw-r--r-- | drivers/ata/pata_sl82c105.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/ata/pata_sl82c105.c b/drivers/ata/pata_sl82c105.c index 98548f640c8e..7f5d020ed56c 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 | ||
| 230 | static 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 | |||
| 230 | static struct scsi_host_template sl82c105_sht = { | 240 | static 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 | /** |
