RE: FW: Staging usb_gadget_register driver, 2.6.35

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

 



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


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

  Powered by Linux