diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /drivers/ata/pata_sil680.c | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'drivers/ata/pata_sil680.c')
-rw-r--r-- | drivers/ata/pata_sil680.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/ata/pata_sil680.c b/drivers/ata/pata_sil680.c index d3190d7ec304..118787caa93f 100644 --- a/drivers/ata/pata_sil680.c +++ b/drivers/ata/pata_sil680.c | |||
@@ -11,7 +11,7 @@ | |||
11 | * | 11 | * |
12 | * May be copied or modified under the terms of the GNU General Public License | 12 | * May be copied or modified under the terms of the GNU General Public License |
13 | * | 13 | * |
14 | * Documentation publically available. | 14 | * Documentation publicly available. |
15 | * | 15 | * |
16 | * If you have strange problems with nVidia chipset systems please | 16 | * If you have strange problems with nVidia chipset systems please |
17 | * see the SI support documentation and update your system BIOS | 17 | * see the SI support documentation and update your system BIOS |
@@ -43,7 +43,7 @@ | |||
43 | * | 43 | * |
44 | * Turn a config register offset into the right address in either | 44 | * Turn a config register offset into the right address in either |
45 | * PCI space or MMIO space to access the control register in question | 45 | * PCI space or MMIO space to access the control register in question |
46 | * Thankfully this is a configuration operation so isnt performance | 46 | * Thankfully this is a configuration operation so isn't performance |
47 | * criticial. | 47 | * criticial. |
48 | */ | 48 | */ |
49 | 49 | ||
@@ -202,14 +202,25 @@ static void sil680_set_dmamode(struct ata_port *ap, struct ata_device *adev) | |||
202 | * LOCKING: | 202 | * LOCKING: |
203 | * spin_lock_irqsave(host lock) | 203 | * spin_lock_irqsave(host lock) |
204 | */ | 204 | */ |
205 | void sil680_sff_exec_command(struct ata_port *ap, | 205 | static void sil680_sff_exec_command(struct ata_port *ap, |
206 | const struct ata_taskfile *tf) | 206 | const struct ata_taskfile *tf) |
207 | { | 207 | { |
208 | DPRINTK("ata%u: cmd 0x%X\n", ap->print_id, tf->command); | 208 | DPRINTK("ata%u: cmd 0x%X\n", ap->print_id, tf->command); |
209 | iowrite8(tf->command, ap->ioaddr.command_addr); | 209 | iowrite8(tf->command, ap->ioaddr.command_addr); |
210 | ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_CMD); | 210 | ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_CMD); |
211 | } | 211 | } |
212 | 212 | ||
213 | static bool sil680_sff_irq_check(struct ata_port *ap) | ||
214 | { | ||
215 | struct pci_dev *pdev = to_pci_dev(ap->host->dev); | ||
216 | unsigned long addr = sil680_selreg(ap, 1); | ||
217 | u8 val; | ||
218 | |||
219 | pci_read_config_byte(pdev, addr, &val); | ||
220 | |||
221 | return val & 0x08; | ||
222 | } | ||
223 | |||
213 | static struct scsi_host_template sil680_sht = { | 224 | static struct scsi_host_template sil680_sht = { |
214 | ATA_BMDMA_SHT(DRV_NAME), | 225 | ATA_BMDMA_SHT(DRV_NAME), |
215 | }; | 226 | }; |
@@ -218,6 +229,7 @@ static struct scsi_host_template sil680_sht = { | |||
218 | static struct ata_port_operations sil680_port_ops = { | 229 | static struct ata_port_operations sil680_port_ops = { |
219 | .inherits = &ata_bmdma32_port_ops, | 230 | .inherits = &ata_bmdma32_port_ops, |
220 | .sff_exec_command = sil680_sff_exec_command, | 231 | .sff_exec_command = sil680_sff_exec_command, |
232 | .sff_irq_check = sil680_sff_irq_check, | ||
221 | .cable_detect = sil680_cable_detect, | 233 | .cable_detect = sil680_cable_detect, |
222 | .set_piomode = sil680_set_piomode, | 234 | .set_piomode = sil680_set_piomode, |
223 | .set_dmamode = sil680_set_dmamode, | 235 | .set_dmamode = sil680_set_dmamode, |