Carl-Daniel Hailfinger wrote:
My current plan is:
- encapsulate all those code sequences into calls of one or two functions
- switch all calls from hide_vpci(some_value_calculated_by_hand) to
hide_vpci_dev(struct device *)
OK.
- replace the central array of hand-calculated values with a
per-PCI-device "hidden" property.
I think that this will add complications that you don't intend.
There are two reasons to hide a device. 1. Your platform doesn't use the device and so there is no reason for it to hang about. This option was addressed with the array of device location that you noted, but I don't think that anyone used it. (OLPC doesn't count)
2. There is shared hardware and only one device can be present at a time. An example of this is IDE or flash and 5536 USB configuration.
Adding a hidden property could handle the first case but then every device will have a dts to contain a property that isn't used.
In the second case, the logic to hide the device is based on other configurations and the hidden property would either be pointless or confuse the issue of if or when the device should be hidden.
Marc