This hack hardcodes pxa27x-udc to ether_gadget. This is just a temp workaround. Index: linux-2.6.23/drivers/usb/gadget/ether.c =================================================================== --- linux-2.6.23.orig/drivers/usb/gadget/ether.c 2007-10-23 12:58:40.000000000 +0200 +++ linux-2.6.23/drivers/usb/gadget/ether.c 2007-10-23 12:58:46.000000000 +0200 @@ -2709,10 +2709,16 @@ MODULE_LICENSE ("GPL"); -static int __init init (void) +// Alex add FIXME +int usb_ether_init (void) { return usb_gadget_register_driver (ð_driver); } + +static int __init init (void) +{ +// return usb_gadget_register_driver (ð_driver); +} module_init (init); static void __exit cleanup (void) Index: linux-2.6.23/drivers/usb/gadget/pxa27x_udc.c =================================================================== --- linux-2.6.23.orig/drivers/usb/gadget/pxa27x_udc.c 2007-10-23 12:58:40.000000000 +0200 +++ linux-2.6.23/drivers/usb/gadget/pxa27x_udc.c 2007-10-23 13:01:47.000000000 +0200 @@ -65,6 +65,8 @@ //#include #include +extern int usb_ether_init(void); + /* * This driver handles the USB Device Controller (UDC) in Intel's PXA 27x * series processors. @@ -2275,6 +2277,8 @@ udc_init_ep(udc); udc_reinit(udc); + usb_ether_init(); // Alex add FIXME + /* irq setup after old hardware state is cleaned up */ retval = request_irq(irq, pxa27x_udc_irq, 0, driver_name, udc); if (retval != 0) {