aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorBrett M Russ <russb@emc.com>2005-08-15 15:23:41 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2005-09-08 18:07:08 -0400
commita04ce0ffcaf561994ecf382cd3caad75556dc499 (patch)
treee891a767810333fe2bf29ddb35f57b0a3ec6e18e /drivers/scsi
parent3fe9d19f9e86a55679f5f2b38ec0a43a1a510cee (diff)
[PATCH] PCI/libata INTx cleanup
Simple cleanup to eliminate X copies of the pci_enable_intx() function in libata. Moved ahci.c's pci_intx() to pci.c and use it throughout libata and msi.c. Signed-off-by: Brett Russ <russb@emc.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/ahci.c16
-rw-r--r--drivers/scsi/ata_piix.c14
-rw-r--r--drivers/scsi/sata_sis.c14
-rw-r--r--drivers/scsi/sata_uli.c14
4 files changed, 3 insertions, 55 deletions
diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c
index 320df6cd3def..c2c8fa828e24 100644
--- a/drivers/scsi/ahci.c
+++ b/drivers/scsi/ahci.c
@@ -865,22 +865,6 @@ static int ahci_host_init(struct ata_probe_ent *probe_ent)
865 return 0; 865 return 0;
866} 866}
867 867
868/* move to PCI layer, integrate w/ MSI stuff */
869static void pci_intx(struct pci_dev *pdev, int enable)
870{
871 u16 pci_command, new;
872
873 pci_read_config_word(pdev, PCI_COMMAND, &pci_command);
874
875 if (enable)
876 new = pci_command & ~PCI_COMMAND_INTX_DISABLE;
877 else
878 new = pci_command | PCI_COMMAND_INTX_DISABLE;
879
880 if (new != pci_command)
881 pci_write_config_word(pdev, PCI_COMMAND, pci_command);
882}
883
884static void ahci_print_info(struct ata_probe_ent *probe_ent) 868static void ahci_print_info(struct ata_probe_ent *probe_ent)
885{ 869{
886 struct ahci_host_priv *hpriv = probe_ent->private_data; 870 struct ahci_host_priv *hpriv = probe_ent->private_data;
diff --git a/drivers/scsi/ata_piix.c b/drivers/scsi/ata_piix.c
index 5f8688529041..87e0c36f1554 100644
--- a/drivers/scsi/ata_piix.c
+++ b/drivers/scsi/ata_piix.c
@@ -568,18 +568,6 @@ static void piix_set_dmamode (struct ata_port *ap, struct ata_device *adev)
568 } 568 }
569} 569}
570 570
571/* move to PCI layer, integrate w/ MSI stuff */
572static void pci_enable_intx(struct pci_dev *pdev)
573{
574 u16 pci_command;
575
576 pci_read_config_word(pdev, PCI_COMMAND, &pci_command);
577 if (pci_command & PCI_COMMAND_INTX_DISABLE) {
578 pci_command &= ~PCI_COMMAND_INTX_DISABLE;
579 pci_write_config_word(pdev, PCI_COMMAND, pci_command);
580 }
581}
582
583#define AHCI_PCI_BAR 5 571#define AHCI_PCI_BAR 5
584#define AHCI_GLOBAL_CTL 0x04 572#define AHCI_GLOBAL_CTL 0x04
585#define AHCI_ENABLE (1 << 31) 573#define AHCI_ENABLE (1 << 31)
@@ -677,7 +665,7 @@ static int piix_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
677 * message-signalled interrupts currently). 665 * message-signalled interrupts currently).
678 */ 666 */
679 if (port_info[0]->host_flags & PIIX_FLAG_CHECKINTR) 667 if (port_info[0]->host_flags & PIIX_FLAG_CHECKINTR)
680 pci_enable_intx(pdev); 668 pci_intx(pdev, 1);
681 669
682 if (combined) { 670 if (combined) {
683 port_info[sata_chan] = &piix_port_info[ent->driver_data]; 671 port_info[sata_chan] = &piix_port_info[ent->driver_data];
diff --git a/drivers/scsi/sata_sis.c b/drivers/scsi/sata_sis.c
index 7d1aaa99aaae..2bd3f11ac010 100644
--- a/drivers/scsi/sata_sis.c
+++ b/drivers/scsi/sata_sis.c
@@ -233,18 +233,6 @@ static void sis_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val)
233 } 233 }
234} 234}
235 235
236/* move to PCI layer, integrate w/ MSI stuff */
237static void pci_enable_intx(struct pci_dev *pdev)
238{
239 u16 pci_command;
240
241 pci_read_config_word(pdev, PCI_COMMAND, &pci_command);
242 if (pci_command & PCI_COMMAND_INTX_DISABLE) {
243 pci_command &= ~PCI_COMMAND_INTX_DISABLE;
244 pci_write_config_word(pdev, PCI_COMMAND, pci_command);
245 }
246}
247
248static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) 236static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
249{ 237{
250 struct ata_probe_ent *probe_ent = NULL; 238 struct ata_probe_ent *probe_ent = NULL;
@@ -319,7 +307,7 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
319 } 307 }
320 308
321 pci_set_master(pdev); 309 pci_set_master(pdev);
322 pci_enable_intx(pdev); 310 pci_intx(pdev, 1);
323 311
324 /* FIXME: check ata_device_add return value */ 312 /* FIXME: check ata_device_add return value */
325 ata_device_add(probe_ent); 313 ata_device_add(probe_ent);
diff --git a/drivers/scsi/sata_uli.c b/drivers/scsi/sata_uli.c
index 42e13ed8eb5b..4c9fb8b71be1 100644
--- a/drivers/scsi/sata_uli.c
+++ b/drivers/scsi/sata_uli.c
@@ -176,18 +176,6 @@ static void uli_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val)
176 uli_scr_cfg_write(ap, sc_reg, val); 176 uli_scr_cfg_write(ap, sc_reg, val);
177} 177}
178 178
179/* move to PCI layer, integrate w/ MSI stuff */
180static void pci_enable_intx(struct pci_dev *pdev)
181{
182 u16 pci_command;
183
184 pci_read_config_word(pdev, PCI_COMMAND, &pci_command);
185 if (pci_command & PCI_COMMAND_INTX_DISABLE) {
186 pci_command &= ~PCI_COMMAND_INTX_DISABLE;
187 pci_write_config_word(pdev, PCI_COMMAND, pci_command);
188 }
189}
190
191static int uli_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) 179static int uli_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
192{ 180{
193 struct ata_probe_ent *probe_ent; 181 struct ata_probe_ent *probe_ent;
@@ -260,7 +248,7 @@ static int uli_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
260 } 248 }
261 249
262 pci_set_master(pdev); 250 pci_set_master(pdev);
263 pci_enable_intx(pdev); 251 pci_intx(pdev, 1);
264 252
265 /* FIXME: check ata_device_add return value */ 253 /* FIXME: check ata_device_add return value */
266 ata_device_add(probe_ent); 254 ata_device_add(probe_ent);