Messages in this thread | | | Date | Wed, 04 Mar 2015 15:56:12 +0000 | From | Sudeep Holla <> | Subject | Re: [PATCH v2] usb: isp1760: add peripheral/device controller chip id |
| |
On 26/02/15 18:53, Laurent Pinchart wrote: > Hi Sudeep, > > Thank you for the patch. > > On Thursday 26 February 2015 11:47:57 Sudeep Holla wrote: >> As per the SAF1761 data sheet[0], the DcChipID register represents >> the hardware version number (0001h) and the chip ID (1582h) for the >> Peripheral Controller. >> >> However as per the ISP1761 data sheet[1], the DcChipID register >> represents the hardware version number (0015h) and the chip ID (8210h) >> for the Peripheral Controller. >> >> This patch adds support for both the chip ID values. >> >> [0] http://www.nxp.com/documents/data_sheet/SAF1761.pdf >> [1] http://pdf.datasheetcatalog.com/datasheets2/74/742102_1.pdf >> >> Cc: Felipe Balbi <balbi@ti.com> >> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> >> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> > > Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> >
Thanks. I assume Felipe will pick this up.
Now about the testing in Gadget mode on Vexpress platform. I have set CONFIG_USB_OTG=y CONFIG_USB_MON=y CONFIG_USB_STORAGE=y CONFIG_USB_ISP1760=y CONFIG_USB_ISP1760_DUAL_ROLE=y CONFIG_USB_GADGET=y CONFIG_USB_MASS_STORAGE=m
When I execute: $ modprobe g_mass_storage file=/home/linaro/backing_file
I get the following inconsistent lock state dump
--->8 Number of LUNs=8 Mass Storage Function, version: 2009/09/11 LUN: removable file: (no medium) Number of LUNs=1 LUN: file: /home/linaro/backing_file Number of LUNs=1 g_mass_storage gadget: Mass Storage Gadget, version: 2009/09/11 g_mass_storage gadget: userspace failed to provide iSerialNumber g_mass_storage gadget: g_mass_storage ready
================================= [ INFO: inconsistent lock state ] 4.0.0-rc2-00004-gf7bb2ef60173 #51 Not tainted --------------------------------- inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. in:imklog/2118 [HC1[1]:SC0[0]:HE0:SE1] takes: (&(&udc->lock)->rlock){?.+...}, at: [<c0397a93>] isp1760_udc_irq+0x367/0x9dc {HARDIRQ-ON-W} state was registered at: [<c05135b3>] _raw_spin_lock+0x23/0x30 [<c0396b87>] isp1760_udc_start+0x23/0xf8 [<c039dc21>] udc_bind_to_driver+0x71/0xb0 [<c039de4f>] usb_gadget_probe_driver+0x53/0x9c [<bf80d0df>] usb_composite_probe+0x8a/0xa4 [libcomposite] [<bf8311a7>] 0xbf8311a7 [<c00088c5>] do_one_initcall+0x8d/0x17c [<c050b92d>] do_init_module+0x49/0x148 [<c0087323>] load_module+0xb7f/0xbc4 [<c0087471>] SyS_finit_module+0x51/0x74 [<c000d8c1>] ret_fast_syscall+0x1/0x68 irq event stamp: 4966 hardirqs last enabled at (4965): [<c05137df>] _raw_spin_unlock_irq+0x1f/0x24 hardirqs last disabled at (4966): [<c00110b3>] __irq_svc+0x33/0x64 softirqs last enabled at (4458): [<c0023475>] __do_softirq+0x23d/0x2d0 softirqs last disabled at (4389): [<c002380b>] irq_exit+0xef/0x15c
other info that might help us debug this: Possible unsafe locking scenario:
CPU0 ---- lock(&(&udc->lock)->rlock); <Interrupt> lock(&(&udc->lock)->rlock);
*** DEADLOCK ***
1 lock held by in:imklog/2118: #0: (&f->f_pos_lock){+.+.+.}, at: [<c010a101>] __fdget_pos+0x31/0x34
stack backtrace: CPU: 0 PID: 2118 Comm: in:imklog Not tainted 4.0.0-rc2-00004-gf7bb2ef60173 #51 Hardware name: ARM-Versatile Express [<c0013bc5>] (unwind_backtrace) from [<c001084d>] (show_stack+0x11/0x14) [<c001084d>] (show_stack) from [<c050ea85>] (dump_stack+0x6d/0x78) [<c050ea85>] (dump_stack) from [<c0054abd>] (print_usage_bug+0x1d9/0x260) [<c0054abd>] (print_usage_bug) from [<c0054cb7>] (mark_lock+0x173/0x5d0) [<c0054cb7>] (mark_lock) from [<c005600f>] (__lock_acquire+0xab7/0x19a4) [<c005600f>] (__lock_acquire) from [<c0057575>] (lock_acquire+0x79/0xe8) [<c0057575>] (lock_acquire) from [<c05135b3>] (_raw_spin_lock+0x23/0x30) [<c05135b3>] (_raw_spin_lock) from [<c0397a93>] (isp1760_udc_irq+0x367/0x9dc) [<c0397a93>] (isp1760_udc_irq) from [<c0065449>] (handle_irq_event_percpu+0x45/0x154) [<c0065449>] (handle_irq_event_percpu) from [<c0065587>] (handle_irq_event+0x2f/0x44) [<c0065587>] (handle_irq_event) from [<c006735b>] (handle_fasteoi_irq+0x6f/0xf0) [<c006735b>] (handle_fasteoi_irq) from [<c0064d2f>] (generic_handle_irq+0x23/0x2c) [<c0064d2f>] (generic_handle_irq) from [<c0064f75>] (__handle_domain_irq+0x45/0x84) [<c0064f75>] (__handle_domain_irq) from [<c000856b>] (gic_handle_irq+0x27/0x50) [<c000856b>] (gic_handle_irq) from [<c00110bf>] (__irq_svc+0x3f/0x64) Exception stack(0xecc27e08 to 0xecc27e50) 7e00: 00000001 ecd6cdd8 00000000 ecd6c7c0 ee78ff00 c003b44a 7e20: c103a78c ecc27e68 c080d8b8 00000001 00000000 ecd6c7c0 c0992738 ecc27e50 7e40: c0055161 c05137e0 400c0033 ffffffff [<c00110bf>] (__irq_svc) from [<c05137e0>] (_raw_spin_unlock_irq+0x20/0x24) [<c05137e0>] (_raw_spin_unlock_irq) from [<c003b48d>] (finish_task_switch+0x99/0x16c) [<c003b48d>] (finish_task_switch) from [<c050f90d>] (__schedule+0x2fd/0x6f0) [<c050f90d>] (__schedule) from [<c050fd2f>] (schedule+0x2f/0x64) [<c050fd2f>] (schedule) from [<c00639a1>] (do_syslog+0x40d/0x470) [<c00639a1>] (do_syslog) from [<c0139cd9>] (proc_reg_read+0x49/0x6c) [<c0139cd9>] (proc_reg_read) from [<c00f44bd>] (vfs_read+0x55/0xb8) [<c00f44bd>] (vfs_read) from [<c00f4555>] (SyS_read+0x35/0x74) [<c00f4555>] (SyS_read) from [<c000d8c1>] (ret_fast_syscall+0x1/0x68)
---
Also I don't see any message on the host side. Let me know if there's something wrong in my config or test commands.
-- Regards, Sudeep
| |