RE: FW: Staging usb_gadget_register driver, 2.6.35

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> > > 
> > > I can't seem to register gadgetfs with the west bridge gadget peripheral
> > > controller driver, being posted in the staging tree now. When the controller
> > > is built in the staging tree with the latest kernel, I get the error
> > > messages:
> > > 
> > > gadgetfs: disagrees about version of symbol usb_gadget_unregister_driver
> > > gadgetfs: Unknown symbol usb_gadget_unregister_driver (err -22)
> > > 
> > > Is this the expected behavior for a staging driver? Any known workaround? I
> > > was not able to find much information about this from the mailing lists
> > > other than "build against the right kernel", which of course I am doing.
> > > 
> > > This did not occur when the driver was built in the 2.6.29 tree, outside of
> > > the staging are. Any feedback on this would be appreciated.
> > 
> > Are you sure you're trying to load modules compiled against the same
> > kernel that you're running?
> Yes, sure. I checked this many times before sending the initial posting.
> I also did a clean build of the kernel before my last attempt.
> 
> > What happens if you build-in the gadget driver into the kernel?
> I can't build the gadget driver into the kernel at this point given that
> I am loading firmware through a script in a module that the gadget
> driver is dependent on. This change was made for compliance to linux-firmware.
> 
> > Care to post your .config file? Or alternatively, what do you have
> > under Device Drivers -> USB Support -> USB Gadget Support ->
> > USB Peripheral Controller?
> 
> My .config follows. I can also send the updated patch that builds
> against the latest kernel if you would like as not all of the following
> config information makes sense outside of this context and there are
> also some fixes in my current version.
> The current version sets the USB Peripheral to Inventra, but USB gadget
> support is a loadable module. I think this is required based on the
> constraint that our drivers be contained in the staging area. I did try
> to change this to Dummy HCD based on your feedback, but this stops me
> from building the modules ( #error bogus Kconfig output ... select
> CONFIG_USB_GADGET_MUSB_HDRC).

David,

> CONFIG_USB_MUSB_HDRC=m
> CONFIG_USB_MUSB_SOC=y
> 
> #
> # OMAP 343x high speed USB support
> #
> # CONFIG_USB_MUSB_HOST is not set
> # CONFIG_USB_MUSB_PERIPHERAL is not set
> CONFIG_USB_MUSB_OTG=y
> CONFIG_USB_GADGET_MUSB_HDRC=y
> CONFIG_USB_MUSB_HDRC_HCD=y
> # CONFIG_MUSB_PIO_ONLY is not set
> CONFIG_USB_INVENTRA_DMA=y
> # CONFIG_USB_TI_CPPI_DMA is not set
> CONFIG_USB_MUSB_DEBUG=y
> 

...

> CONFIG_WESTBRIDGE=y
> CONFIG_WESTBRIDGE_ASTORIA=y
> CONFIG_WESTBRIDGE_DEVICE_DRIVER=m
> CONFIG_WESTBRIDGE_BLOCK_DRIVER=m
> CONFIG_WESTBRIDGE_GADGET_DRIVER=m
> CONFIG_MACH_OMAP3_WESTBRIDGE_AST_PNAND_HAL=y
> # CONFIG_WESTBRIDGE_DEBUG is not set

Your .config shows that you have two gadget controllers compiled
(as modules) - the MUSB and the Westbridge.

So there could be two signatures for usb_gadget_unregister_driver 
(and the other apis the gadget controller drivers implement).

I'm guessing gadgetfs expects the signature of the MUSB
implementation In the 2.6.35 kernel, while in your earlier test
with the .29 kernel, it worked because the gadget driver expected
the signature of the Westbridge version.

(Quite possibly the behavior changed due to Westbridge moving into
drivers/staging from the previous location - I guess drivers/usb/*)

Maybe it's worth disabling MUSB from your build, to see if it works.

- Anand
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux