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?
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? Not registering it in CPM_UART, how the pdev could be obtained? Maybe this is clear, but platform stuff is cumbersome some times... > >> Could you please suggest possible solutions for this situation? This is >> relatively common case among freescale chips, so I guess inventing a >> workaround is odd, and writing an additional shim to handle CPM device >> multiplexing is odd either. > > I don't see the problem here. Are you looking at the new stuff in > 2.6.15-rc1? > Yes, sort of. I am going to add 8xx IRDA and make cpm_uart platform device model compatible. > thanks, > > greg k-h > > -- Sincerely, Vitaly