mirror of
https://github.com/opnsense/src.git
synced 2026-04-24 15:48:48 -04:00
Change the way how "not implemented" AHCI channels handled. Instead of
completely skipping them, create ahcich devices for them to allocate unit numbers, but mark them as disabled to prevent driver probe and attach. Last time some BIOSes tend to report unused channels as "not implemented". This change makes ahcichX devices numbering consistent, independently of connected disks. It makes per-channel driver hints usable and CAM devices wiring possible on such systems.
This commit is contained in:
parent
d21f98cb64
commit
72a61203fc
1 changed files with 6 additions and 5 deletions
|
|
@ -498,13 +498,14 @@ ahci_attach(device_t dev)
|
|||
}
|
||||
/* Attach all channels on this controller */
|
||||
for (unit = 0; unit < ctlr->channels; unit++) {
|
||||
if ((ctlr->ichannels & (1 << unit)) == 0)
|
||||
continue;
|
||||
child = device_add_child(dev, "ahcich", -1);
|
||||
if (child == NULL)
|
||||
if (child == NULL) {
|
||||
device_printf(dev, "failed to add channel device\n");
|
||||
else
|
||||
device_set_ivars(child, (void *)(intptr_t)unit);
|
||||
continue;
|
||||
}
|
||||
device_set_ivars(child, (void *)(intptr_t)unit);
|
||||
if ((ctlr->ichannels & (1 << unit)) == 0)
|
||||
device_disable(child);
|
||||
}
|
||||
bus_generic_attach(dev);
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue