On Tue, Nov 15, 2005 at 08:59:06PM +0300, Vitaly Bordug wrote: > Greg KH wrote: > >On Tue, Nov 15, 2005 at 07:51:20PM +0300, Vitaly Bordug wrote: > >>Hi, Greg! > >> > >>While doing "platformization" for one of the Freescale SoC's, I have > >>discovered a serious drawback of the model - it prevents registering > >>driver with the same name. > > > >That's not a "drawback" :) > > > >>For instance, cpm2 on either ppc82xx or ppc85xx is very flexible, and > >>its device fsl-cpm-scc could (and actually are) utilized in the > >>different drivers. > >> > >>Those devices will have different bus_id, but pdev->name fields are the > >>same for all the fsl-cpm-scc, only id is different there. Hence the > >>fsl-cpm-scc could be driver_register'ed only once, while it is required > >>several times. > > > >A driver is registered only once, but can be bound to multiple devices > >just fine, right? > Please let me know, how?
All PCI and USB and I2C drivers are able to bind to multiple devices :) > I have for instance struct device_driver with name="fsl-cpm-scc" in both > fs_enet and cpm_uart(one using SCC1, the other - SCC4, the same device with > different id's). > > Once it has been registered in fs_enet, I could not register it in > cpm_uart, due to kobject_register fo require unique names in kobject->name. > Am I missing something? You only register the driver once. The individual devices can be bound to the same driver, right? > Not registering it in CPM_UART, how the pdev could be obtained? > > Maybe this is clear, but platform stuff is cumbersome some times... Then make it cleaner :) If you have specific code that explains this better, that might help out. thanks, greg k-h