Anand, Thanks for the input, removing MUSB completely worked. There are a couple of minor issues that seem to result from this however: 1) cannot have two gadget peripheral controllers as modules in a given kernel 2) I can't keep the current driver completely contained in the staging directory. I needed to modify the Kconfig files for gadget peripheral controller to make this work. Otherwise, I am forced to select a non-staging gadget controller. Thanks, David -----Original Message----- From: Gadiyar, Anand [mailto:gadiyar@xxxxxx] Sent: Wednesday, August 18, 2010 1:01 PM To: david.cross@xxxxxxxxxxx Cc: linux-usb@xxxxxxxxxxxxxxx Subject: RE: FW: Staging usb_gadget_register driver, 2.6.35 > > > > > > 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 --------------------------------------------------------------- This message and any attachments may contain Cypress (or its subsidiaries) confidential information. If it has been received in error, please advise the sender and immediately delete this message. --------------------------------------------------------------- -- 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