On Mon, Aug 11, 2008 at 6:36 PM, Carl-Daniel Hailfinger
We have a generic subsystem ID infrastructure in v3. Look at pci_dev_enable_resources().
True. I left it there by mistake :-)
propagation of subsystem stuff can be done by the dtc, AFAICS. We do this:
- add subsystem info to dts and device struct
We only have per-mainboard subsystem info in the dts. We need to add per-device subsystem info to the dts.
it's easy. Add two properties, and if they are set, then put then in the device, and if they are not, leave them 0.
- allow users to specify subsystem to any node in the dts. All nodes
under that node will inherit that id unless they similarly set it.
Not yet done.
good point.
- at the root, we set subsystem to (I assume) mainboard VID and DID
We set a special variable mainboard_subsystem_vendor and ..._id as part of the mainboard struct.
yep, I'm counting on that. See, most fo the work is already done :-)
- at flatten tree time, we walk the tree and propagate subsystem VID
and DID to children. This ensures that all devices have it at compile time
Not yet.
but we could, right? Then we'd have it at compile time and when we visualize the tree. That would be cool!
We do that in pci_dev_enable_resources().
good point.
I would much rather do this in dtc, but I'm not that worried about it, but how about we drop the pci_ops and just put the setting of subsystem ops into the generic device. It's too much messing around to all this pci_ops stuff for one simple operation.
ron