Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 82524
b: refs/heads/master
c: 1ebf749
h: refs/heads/master
v: v3
  • Loading branch information
Bartlomiej Zolnierkiewicz committed Feb 2, 2008
1 parent 5c4b24b commit 60e0fd6
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bf77c5317168eb73894bcc9a455429c4589a179d
refs/heads/master: 1ebf74936b1fccb5b65940f99ccddd74ec4d1fef
29 changes: 21 additions & 8 deletions trunk/drivers/ide/setup-pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,8 @@ static int ide_pci_check_iomem(struct pci_dev *dev, const struct ide_port_info *
* ide_hwif_configure - configure an IDE interface
* @dev: PCI device holding interface
* @d: IDE port info
* @mate: Paired interface if any
* @port: port number
* @irq: PCI IRQ
*
* Perform the initial set up for the hardware interface structure. This
* is done per interface port rather than per PCI device. There may be
Expand All @@ -348,7 +349,9 @@ static int ide_pci_check_iomem(struct pci_dev *dev, const struct ide_port_info *
* Returns the new hardware interface structure, or NULL on a failure
*/

static ide_hwif_t *ide_hwif_configure(struct pci_dev *dev, const struct ide_port_info *d, ide_hwif_t *mate, int port, int irq)
static ide_hwif_t *ide_hwif_configure(struct pci_dev *dev,
const struct ide_port_info *d,
unsigned int port, int irq)
{
unsigned long ctl = 0, base = 0;
ide_hwif_t *hwif;
Expand Down Expand Up @@ -394,12 +397,7 @@ static ide_hwif_t *ide_hwif_configure(struct pci_dev *dev, const struct ide_port

hwif->dev = &dev->dev;
hwif->cds = d;
hwif->channel = port;

if (mate) {
hwif->mate = mate;
mate->mate = hwif;
}
return hwif;
}

Expand Down Expand Up @@ -527,10 +525,25 @@ void ide_pci_setup_ports(struct pci_dev *dev, const struct ide_port_info *d, int
continue; /* port not enabled */
}

if ((hwif = ide_hwif_configure(dev, d, mate, port, pciirq)) == NULL)
hwif = ide_hwif_configure(dev, d, port, pciirq);
if (hwif == NULL)
continue;

*(idx + port) = hwif->index;
}

for (port = 0; port < channels; ++port) {
if (*(idx + port) == 0xff)
continue;

hwif = &ide_hwifs[*(idx + port)];

if (mate) {
hwif->mate = mate;
mate->mate = hwif;
}

hwif->channel = port;

if (d->init_iops)
d->init_iops(hwif);
Expand Down

0 comments on commit 60e0fd6

Please sign in to comment.