Re: [PATCH v2] usb: isp1760: add peripheral/device controller chip id

From: Sudeep Holla
Date: Wed Mar 04 2015 - 10:56:17 EST




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@xxxxxx>
Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx>

Acked-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/