lkml.org 
[lkml]   [2010]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Date
Subject[PATCH 66/68] pata_via: factor out code for finding ISA bridge
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] pata_via: factor out code for finding ISA bridge

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/ata/pata_via.c | 35 +++++++++++++++++++++++------------
1 file changed, 23 insertions(+), 12 deletions(-)

Index: b/drivers/ata/pata_via.c
===================================================================
--- a/drivers/ata/pata_via.c
+++ b/drivers/ata/pata_via.c
@@ -431,6 +431,28 @@ static struct ata_port_operations via_po
.sff_data_xfer = ata_sff_data_xfer_noirq,
};

+static const struct via_isa_bridge *via_config_find(void)
+{
+ const struct via_isa_bridge *config;
+ struct pci_dev *isa;
+
+ for (config = via_isa_bridges; config->id != PCI_DEVICE_ID_VIA_ANON;
+ config++) {
+ isa = pci_get_device(PCI_VENDOR_ID_VIA +
+ !!(config->flags & VIA_BAD_ID), config->id, NULL);
+ if (isa) {
+ u8 rev = isa->revision;
+
+ pci_dev_put(isa);
+
+ if (rev >= config->rev_min && rev <= config->rev_max)
+ break;
+ }
+ }
+
+ return config;
+}
+
/**
* via_config_fifo - set up the FIFO
* @pdev: PCI device
@@ -544,7 +566,6 @@ static int via_init_one(struct pci_dev *
.port_ops = &via_port_ops
};
const struct ata_port_info *ppi[] = { NULL, NULL };
- struct pci_dev *isa;
const struct via_isa_bridge *config;
static int printed_version;
u8 enable;
@@ -563,17 +584,7 @@ static int via_init_one(struct pci_dev *

/* To find out how the IDE will behave and what features we
actually have to look at the bridge not the IDE controller */
- for (config = via_isa_bridges; config->id != PCI_DEVICE_ID_VIA_ANON;
- config++)
- if ((isa = pci_get_device(PCI_VENDOR_ID_VIA +
- !!(config->flags & VIA_BAD_ID),
- config->id, NULL))) {
- u8 rev = isa->revision;
- pci_dev_put(isa);
-
- if (rev >= config->rev_min && rev <= config->rev_max)
- break;
- }
+ config = via_config_find();

if (!(config->flags & VIA_NO_ENABLES)) {
/* 0x40 low bits indicate enabled channels */

\
 
 \ /
  Last update: 2010-01-29 17:15    [W:0.156 / U:1.792 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site