diff options
Diffstat (limited to 'drivers/ide/ide-probe.c')
-rw-r--r-- | drivers/ide/ide-probe.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index a4b65b321f51..4a33100a2314 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -1518,13 +1518,20 @@ int ide_device_add_all(u8 *idx, const struct ide_port_info *d) | |||
1518 | int i, rc = 0; | 1518 | int i, rc = 0; |
1519 | 1519 | ||
1520 | for (i = 0; i < MAX_HWIFS; i++) { | 1520 | for (i = 0; i < MAX_HWIFS; i++) { |
1521 | if (d == NULL || idx[i] == 0xff) { | 1521 | if (idx[i] == 0xff) { |
1522 | mate = NULL; | 1522 | mate = NULL; |
1523 | continue; | 1523 | continue; |
1524 | } | 1524 | } |
1525 | 1525 | ||
1526 | hwif = &ide_hwifs[idx[i]]; | 1526 | hwif = &ide_hwifs[idx[i]]; |
1527 | 1527 | ||
1528 | ide_port_apply_params(hwif); | ||
1529 | |||
1530 | if (d == NULL) { | ||
1531 | mate = NULL; | ||
1532 | continue; | ||
1533 | } | ||
1534 | |||
1528 | if (d->chipset != ide_etrax100 && (i & 1) && mate) { | 1535 | if (d->chipset != ide_etrax100 && (i & 1) && mate) { |
1529 | hwif->mate = mate; | 1536 | hwif->mate = mate; |
1530 | mate->mate = hwif; | 1537 | mate->mate = hwif; |
@@ -1621,6 +1628,7 @@ EXPORT_SYMBOL_GPL(ide_device_add); | |||
1621 | 1628 | ||
1622 | void ide_port_scan(ide_hwif_t *hwif) | 1629 | void ide_port_scan(ide_hwif_t *hwif) |
1623 | { | 1630 | { |
1631 | ide_port_apply_params(hwif); | ||
1624 | ide_port_cable_detect(hwif); | 1632 | ide_port_cable_detect(hwif); |
1625 | ide_port_init_devices(hwif); | 1633 | ide_port_init_devices(hwif); |
1626 | 1634 | ||