Hello,
I have a USB printer connected to my board using MUSB and TWL4030.
When I power up the unit and load the USB modules, the printer is correctly enumerated and works:
insmod nop-usb-xceiv.ko sleep 2 insmod twl4030-usb.ko sleep 2 insmod musb_hdrc.ko
Mar 10 17:46:05 MYHOST kernel: twl4030_usb twl4030_usb: Initialized TWL4030 USB module Mar 10 17:46:08 MYHOST kernel: musb_hdrc: version 6.0, musb-dma, host, debug=0 Mar 10 17:46:08 MYHOST kernel: HS USB OTG: revision 0x33, sysconfig 0x2010, sysstatus 0x1, intrfsel 0x1, simenable 0x0 Mar 10 17:46:08 MYHOST kernel: musb_hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine (X), bulk split (X), HB-ISO Rx, HB-ISO Tx, SoftConn) Mar 10 17:46:08 MYHOST kernel: musb_hdrc: MHDRC RTL version 1.400 Mar 10 17:46:08 MYHOST kernel: musb_hdrc: setup fifo_mode 4 Mar 10 17:46:08 MYHOST kernel: musb_hdrc: 28/31 max ep, 16384/16384 memory Mar 10 17:46:08 MYHOST kernel: musb_hdrc: USB Host mode controller at fa0ab000 using DMA, IRQ 92 Mar 10 17:46:08 MYHOST kernel: musb_hdrc musb_hdrc: MUSB HDRC host driver Mar 10 17:46:08 MYHOST kernel: musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1 Mar 10 17:46:08 MYHOST kernel: usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 Mar 10 17:46:08 MYHOST kernel: usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 Mar 10 17:46:08 MYHOST kernel: usb usb1: Product: MUSB HDRC host driver Mar 10 17:46:08 MYHOST kernel: usb usb1: Manufacturer: Linux 2.6.32-MYHOST-svn2710 musb-hcd Mar 10 17:46:08 MYHOST kernel: usb usb1: SerialNumber: musb_hdrc Mar 10 17:46:08 MYHOST kernel: hub 1-0:1.0: USB hub found Mar 10 17:46:08 MYHOST kernel: hub 1-0:1.0: 1 port detected Mar 10 17:46:08 MYHOST kernel: Registered /proc/driver/musb_hdrc Mar 10 17:46:08 MYHOST kernel: usb 1-1: new full speed USB device using musb_hdrc and address 2 Mar 10 17:46:08 MYHOST kernel: usb 1-1: New USB device found, idVendor=13ea, idProduct=0001 Mar 10 17:46:08 MYHOST kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=4 Mar 10 17:46:08 MYHOST kernel: usb 1-1: Product: C-56 USB PRINTER (SPM56-001) Mar 10 17:46:08 MYHOST kernel: usb 1-1: Manufacturer: HENGSTLER GMBH Mar 10 17:46:08 MYHOST kernel: usb 1-1: SerialNumber: <UNUSED> Mar 10 17:46:08 MYHOST kernel: usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x13EA pid 0x0001
However sometimes the printer seems not working (I am not able to reproduce the issue) but I know for sure that the driver returns -EAGAIN. I thought to fix the issue removing the modules (rmmod) and inserting them again triggering the issue at application level, but the driver crashes:
Mar 10 17:47:36 MYHOST kernel: musb_hdrc musb_hdrc: remove, state 1 Mar 10 17:47:36 MYHOST kernel: usb usb1: USB disconnect, address 1 Mar 10 17:47:36 MYHOST kernel: usb 1-1: USB disconnect, address 2 Mar 10 17:47:36 MYHOST kernel: usblp0: removed Mar 10 17:47:36 MYHOST kernel: musb_hdrc musb_hdrc: USB bus 1 deregistered Mar 10 17:48:13 MYHOST kernel: twl4030_usb twl4030_usb: Initialized TWL4030 USB module Mar 10 17:48:15 MYHOST kernel: musb_hdrc: version 6.0, musb-dma, host, debug=0 Mar 10 17:48:15 MYHOST kernel: Unable to handle kernel paging request at virtual address fffffff0 Mar 10 17:48:15 MYHOST kernel: pgd = cd05c000 Mar 10 17:48:15 MYHOST kernel: [fffffff0] *pgd=8069c021, *pte=00000000, *ppte=00000000 Mar 10 17:48:15 MYHOST kernel: Internal error: Oops: 817 [#1] Mar 10 17:48:15 MYHOST kernel: last sysfs file: /sys/devices/platform/musb_hdrc/usb1/1-1/1-1:1.0/bInterfaceClass Mar 10 17:48:15 MYHOST kernel: Modules linked in: musb_hdrc(+) twl4030_usb nop_usb_xceiv sdmak lpm_omap3530 dsplinkk cmemk [last unloaded: nop_usb_xceiv] Mar 10 17:48:15 MYHOST kernel: CPU: 0 Not tainted (2.6.32-MYHOST-svn2710 #3) Mar 10 17:48:15 MYHOST kernel: PC is at 0xbf04ce80 Mar 10 17:48:15 MYHOST kernel: LR is at musb_platform_init+0x54/0x1b0 [musb_hdrc] Mar 10 17:48:15 MYHOST kernel: pc : [<bf04ce80>] lr : [<bf07ce38>] psr: a0000013 Mar 10 17:48:15 MYHOST kernel: sp : cd48ddb8 ip : cd48dd80 fp : cd48dde4 Mar 10 17:48:15 MYHOST kernel: r10: c046b1b8 r9 : 0000005c r8 : cd259000 Mar 10 17:48:15 MYHOST kernel: r7 : c046b1a0 r6 : c046b184 r5 : c046b1b0 r4 : cd2590e0 Mar 10 17:48:15 MYHOST kernel: r3 : bf04c57c r2 : c0467350 r1 : 00000000 r0 : cd044940 Mar 10 17:48:15 MYHOST kernel: Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user Mar 10 17:48:15 MYHOST kernel: Control: 10c5387d Table: 8d05c019 DAC: 00000015 Mar 10 17:48:15 MYHOST kernel: Process insmod (pid: 1999, stack limit = 0xcd48c2e8) Mar 10 17:48:15 MYHOST kernel: Stack: (0xcd48ddb8 to 0xcd48e000) Mar 10 17:48:15 MYHOST kernel: dda0: c046b1a0 cd259000 Mar 10 17:48:15 MYHOST kernel: ddc0: 0000005c cd2590e0 c046b1b0 c046b184 c046b1a0 cd259000 cd48de2c cd48dde8 Mar 10 17:48:15 MYHOST kernel: dde0: bf07ca54 bf07cdf0 cd48de24 c046b1b8 c046b1c0 00000000 00000000 fa0ab000 Mar 10 17:48:15 MYHOST kernel: de00: cd48de1c c046b1b8 c046b1ec bf0779fc bf0779fc c0030008 cd48c000 00000000 Mar 10 17:48:15 MYHOST kernel: de20: cd48de3c cd48de30 c01faa58 bf07c858 cd48de5c cd48de40 c01f9a90 c01faa44 Mar 10 17:48:15 MYHOST kernel: de40: c046b1b8 c046b1ec bf0779fc 00000000 cd48de7c cd48de60 c01f9ba4 c01f99f4 Mar 10 17:48:15 MYHOST kernel: de60: 00000000 bf0779fc 00000000 c01f9b3c cd48dea4 cd48de80 c01f92b8 c01f9b48 Mar 10 17:48:15 MYHOST kernel: de80: cdc03af8 cdc5a5f0 c01a61d4 bf0779fc cd0443c0 c0487ad0 cd48deb4 cd48dea8 Mar 10 17:48:15 MYHOST kernel: dea0: c01f98fc c01f9274 cd48dee4 cd48deb8 c01f8ba4 c01f98e8 bf075dbc 00000000 Mar 10 17:48:15 MYHOST kernel: dec0: bf0779fc 00000000 00000000 000a5ae6 c0030008 00000000 cd48df0c cd48dee8 Mar 10 17:48:15 MYHOST kernel: dee0: c01f9ebc c01f8b08 c01faa94 bf0779e8 00000000 00000000 000a5ae6 c0030008 Mar 10 17:48:15 MYHOST kernel: df00: cd48df1c cd48df10 c01fad04 c01f9e18 cd48df34 cd48df20 c01fad38 c01facc4 Mar 10 17:48:15 MYHOST kernel: df20: bf07c000 00000000 cd48df44 cd48df38 bf07c03c c01fad24 cd48df7c cd48df48 Mar 10 17:48:15 MYHOST kernel: df40: c002f364 bf07c00c 00000000 00013008 000a5ae6 c0030008 cd48df7c bf077a5c Mar 10 17:48:15 MYHOST kernel: df60: 00000000 00013008 c0030008 cd48c000 cd48dfa4 cd48df80 c007f6b0 c002f30c Mar 10 17:48:15 MYHOST kernel: df80: c00a96c0 c00a95d0 00009094 bebe9876 40109008 00000080 00000000 cd48dfa8 Mar 10 17:48:15 MYHOST kernel: dfa0: c002fe60 c007f600 00009094 bebe9876 40109008 000a5ae6 00013008 00000003 Mar 10 17:48:15 MYHOST kernel: dfc0: 00009094 bebe9876 40109008 00000080 00000000 00000000 4001e000 00000000 Mar 10 17:48:15 MYHOST kernel: dfe0: 000a5ae6 bebe95c4 00008cd5 400b4054 00000010 40109008 e88e000f 0a000034 Mar 10 17:48:15 MYHOST kernel: Backtrace: Mar 10 17:48:15 MYHOST kernel: [<bf07cde4>] (musb_platform_init+0x0/0x1b0 [musb_hdrc]) from [<bf07ca54>] (musb_probe+0x208/0x598 [musb_hdrc]) Mar 10 17:48:15 MYHOST kernel: r8:cd259000 r7:c046b1a0 r6:c046b184 r5:c046b1b0 r4:cd2590e0 Mar 10 17:48:15 MYHOST kernel: [<bf07c84c>] (musb_probe+0x0/0x598 [musb_hdrc]) from [<c01faa58>] (platform_drv_probe+0x20/0x24) Mar 10 17:48:15 MYHOST kernel: [<c01faa38>] (platform_drv_probe+0x0/0x24) from [<c01f9a90>] (driver_probe_device+0xa8/0x154) Mar 10 17:48:15 MYHOST kernel: [<c01f99e8>] (driver_probe_device+0x0/0x154) from [<c01f9ba4>] (__driver_attach+0x68/0x8c) Mar 10 17:48:15 MYHOST kernel: r7:00000000 r6:bf0779fc r5:c046b1ec r4:c046b1b8 Mar 10 17:48:15 MYHOST kernel: [<c01f9b3c>] (__driver_attach+0x0/0x8c) from [<c01f92b8>] (bus_for_each_dev+0x50/0x84) Mar 10 17:48:15 MYHOST kernel: r6:c01f9b3c r5:00000000 r4:bf0779fc r3:00000000 Mar 10 17:48:15 MYHOST kernel: [<c01f9268>] (bus_for_each_dev+0x0/0x84) from [<c01f98fc>] (driver_attach+0x20/0x28) Mar 10 17:48:15 MYHOST kernel: r6:c0487ad0 r5:cd0443c0 r4:bf0779fc Mar 10 17:48:15 MYHOST kernel: [<c01f98dc>] (driver_attach+0x0/0x28) from [<c01f8ba4>] (bus_add_driver+0xa8/0x228) Mar 10 17:48:15 MYHOST kernel: [<c01f8afc>] (bus_add_driver+0x0/0x228) from [<c01f9ebc>] (driver_register+0xb0/0x13c) Mar 10 17:48:15 MYHOST kernel: [<c01f9e0c>] (driver_register+0x0/0x13c) from [<c01fad04>] (platform_driver_register+0x4c/0x60) Mar 10 17:48:15 MYHOST kernel: r8:c0030008 r7:000a5ae6 r6:00000000 r5:00000000 r4:bf0779e8 Mar 10 17:48:15 MYHOST kernel: r3:c01faa94 Mar 10 17:48:15 MYHOST kernel: [<c01facb8>] (platform_driver_register+0x0/0x60) from [<c01fad38>] (platform_driver_probe+0x20/0x70) Mar 10 17:48:15 MYHOST kernel: [<c01fad18>] (platform_driver_probe+0x0/0x70) from [<bf07c03c>] (musb_init+0x3c/0x54 [musb_hdrc]) Mar 10 17:48:15 MYHOST kernel: r5:00000000 r4:bf07c000 Mar 10 17:48:15 MYHOST kernel: [<bf07c000>] (musb_init+0x0/0x54 [musb_hdrc]) from [<c002f364>] (do_one_initcall+0x64/0x1b4) Mar 10 17:48:15 MYHOST kernel: [<c002f300>] (do_one_initcall+0x0/0x1b4) from [<c007f6b0>] (sys_init_module+0xbc/0x1ec) Mar 10 17:48:15 MYHOST kernel: r9:cd48c000 r8:c0030008 r6:00013008 r5:00000000 r4:bf077a5c Mar 10 17:48:15 MYHOST kernel: [<c007f5f4>] (sys_init_module+0x0/0x1ec) from [<c002fe60>] (ret_fast_syscall+0x0/0x2c) Mar 10 17:48:15 MYHOST kernel: r7:00000080 r6:40109008 r5:bebe9876 r4:00009094 Mar 10 17:48:15 MYHOST kernel: Code: 00000000 00000000 00000000 00000000 (48011452) Mar 10 17:48:15 MYHOST kernel: ---[ end trace 228ecc153e21e746 ]---
Sometimes it does not crash but the printer is not recognized.
Do you have a patch for PSP 03.00.01.06 MUSB driver or do you have an idea on how to fix the load/unload/load of those USB modules and so resetting the USB without power-cycling the unit?
I also analyzed the USB stack of 2.6.37 kernel (PSP 04.02.00.07) but there are too many changes and I need to keep the old PSP.
Thanks,
Matteo