Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=79127c37aa5d959c9ace40a869386f712b55ac6d
Commit:     79127c37aa5d959c9ace40a869386f712b55ac6d
Parent:     6828fc9a919b06723599192300053ddf6f638c95
Author:     Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Sat Jan 26 20:13:08 2008 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Sat Jan 26 20:13:08 2008 +0100

    ide: use ide_init_port_hw() in setup-pci.c
    
    * Move setting hwif->gendev.parent from ide_pci_setup_ports()
      to ide_hwif_configure().
    
    * Always set hwif->io_ports in ide_hwif_configure().
    
    * Use ide_init_port_hw() in ide_hwif_configure().
    
    Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/setup-pci.c |   33 +++++++++++++++++----------------
 1 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c
index caa4a6a..be9ae5a 100644
--- a/drivers/ide/setup-pci.c
+++ b/drivers/ide/setup-pci.c
@@ -363,6 +363,8 @@ static ide_hwif_t *ide_hwif_configure(struct pci_dev *dev, 
const struct ide_port
        unsigned long ctl = 0, base = 0;
        ide_hwif_t *hwif;
        u8 bootable = (d->host_flags & IDE_HFLAG_BOOTABLE) ? 1 : 0;
+       u8 oldnoprobe = 0;
+       struct hw_regs_s hw;
 
        if ((d->host_flags & IDE_HFLAG_ISA_PORTS) == 0) {
                /*  Possibly we should fail if these checks report true */
@@ -385,22 +387,25 @@ static ide_hwif_t *ide_hwif_configure(struct pci_dev 
*dev, const struct ide_port
        }
        if ((hwif = ide_match_hwif(base, bootable, d->name)) == NULL)
                return NULL;    /* no room in ide_hwifs[] */
-       if (hwif->io_ports[IDE_DATA_OFFSET] != base ||
-           hwif->io_ports[IDE_CONTROL_OFFSET] != (ctl | 2)) {
-               hw_regs_t hw;
-
-               memset(&hw, 0, sizeof(hw));
-               ide_std_init_ports(&hw, base, ctl | 2);
-               memcpy(hwif->io_ports, hw.io_ports, sizeof(hwif->io_ports));
-               hwif->noprobe = 0;
-       }
-       hwif->chipset = d->chipset ? d->chipset : ide_pci;
+
+       memset(&hw, 0, sizeof(hw));
+       hw.irq = hwif->irq ? hwif->irq : irq;
+       hw.dev = &dev->dev;
+       hw.chipset = d->chipset ? d->chipset : ide_pci;
+       ide_std_init_ports(&hw, base, ctl | 2);
+
+       if (hwif->io_ports[IDE_DATA_OFFSET] == base &&
+           hwif->io_ports[IDE_CONTROL_OFFSET] == (ctl | 2))
+               oldnoprobe = hwif->noprobe;
+
+       ide_init_port_hw(hwif, &hw);
+
+       hwif->noprobe = oldnoprobe;
+
        hwif->pci_dev = dev;
        hwif->cds = d;
        hwif->channel = port;
 
-       if (!hwif->irq)
-               hwif->irq = irq;
        if (mate) {
                hwif->mate = mate;
                mate->mate = hwif;
@@ -535,12 +540,8 @@ void ide_pci_setup_ports(struct pci_dev *dev, const struct 
ide_port_info *d, int
                if ((hwif = ide_hwif_configure(dev, d, mate, port, pciirq)) == 
NULL)
                        continue;
 
-               /* setup proper ancestral information */
-               hwif->gendev.parent = &dev->dev;
-
                *(idx + port) = hwif->index;
 
-               
                if (d->init_iops)
                        d->init_iops(hwif);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to