On Tue, Aug 3, 2010 at 8:17 PM, Patrick Pannuto <ppannuto@xxxxxxxxxxx> wrote: >>>>> >>>>> struct platform_device sub_bus1 = { >>>>> .name = "sub_bus1", >>>>> .id = -1, >>>>> .dev.bus = &my_bus_type, >>>>> } >>>>> EXPORT_SYMBOL_GPL(sub_bus1); >>>> >>>> You really want a bus hanging off of a bus? Normally you need a device >>>> to do that, which is what I think you have here, but the naming is a bit >>>> odd to me. >>>> >>>> What would you do with this "sub bus"? It's just a device, but you are >>>> wanting it to be around for something. >>>> >>> >>> It's for power management stuff, basically, there are actual physical buses >>> involved that can be completely powered off IFF all of their devices are >>> not in use. Plus it actually matches bus topology this way. >> >> Then create a real bus hanging off of a device, not another device that >> "acts" like a bus here, right? Or am I missing the point? >> > > The motivation for doing it this was is that one driver could drive > devices on two different subbusses. In the example, "my-driver" could > drive a device on sub_bus1 AND sub_bus2 (if there were 2+ devices, one > or more on each bus). > > From my understanding, this is not possible if they are actually > different busses. This could be quite useful on the Qualcomm devices where there are many collections of "devices" that resemble a bus but cannot be directly enumerated but are initialized by platform code or possibly in future, a device tree. One such bus is made up of SMI devices that are identified to the applications core by the modem firmware and can be in the form of character devices (smd), network devices (rmnet) rpc router channel and others, we also have to deal with the MDDI video bus which represented a challenge when migrating the HTC Rhodium to 2.6.32 as each mdp device (and others in later kernels) are added to the platform bus dynamically, though they don't appear similararly group in sysfs due to not actaully being on a bus. While it would have been possible to implement an mddi bus, the work would have essentially recreated the platform bus with a new name. A simliar challenge exists for exposing rpc endpoints to userspace as the current codebase uses character devices rather than introducing a new network protocol to the kernel, if such as bus was exposed through sysfs a userspace daemon could easily bind a GPS library to the PDAPI endpoint or similar features requiring less configuration to adapt to new AMSS firmware or device name layout. Thank you, Timothy Meade tmzt #htc-linux facebook.com/HTCLinux -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html