[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <540DA1E5.1060701@compulab.co.il>
Date: Mon, 08 Sep 2014 15:32:37 +0300
From: Dmitry Lifshitz <lifshitz@...pulab.co.il>
To: Roger Quadros <rogerq@...com>
CC: Felipe Balbi <balbi@...com>,
George Cherian <george.cherian@...com>,
Kishon Vijay Abraham I <kishon@...com>,
bcousson@...libre.com, tony@...mide.com, rob.herring@...xeda.com,
pawel.moll@....com, mark.rutland@....com, swarren@...dotorg.org,
ijc+devicetree@...lion.org.uk, linux@....linux.org.uk,
linux-omap@...r.kernel.org, devicetree@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] ARM: dts: omap5: Add dr_mode for dwc3
Hi Roger,
Thank you for a quick reply. See, my reply below.
On 09/08/2014 02:39 PM, Roger Quadros wrote:
> On 09/08/2014 02:34 PM, Dmitry Lifshitz wrote:
>> Hi Felipe, Roger
>>
>> On 04/16/2014 07:16 PM, Felipe Balbi wrote:
>>> On Fri, Oct 11, 2013 at 05:46:12PM +0300, Roger Quadros wrote:
>>>> Hi,
>>>>
>>>> On 10/10/2013 01:49 PM, Kishon Vijay Abraham I wrote:
>>>>> From: George Cherian <george.cherian@...com>
>>>>>
>>>>> Added dr_mode property in dwc3 and set its default mode to device.
>>>>
>>>> If there is a specific reason why this is not set to "otg", we need
>>>> to explain it here.
>>>>
>>>> AFAIK the port is meant to be used as OTG port.
>>>
>>> we still don't have the workaround for dual role ports, I've been
>>> working on it but still need to retest and make sure it's working fine
>>> before merging upstream.
>>>
>>
>>
>> Does the OTG port suppose to work with OMAP5? I mean role switching mechanism?
>>
>> I'm testing kernel v3.16 with OMAP5 based board (CM-T54).
>>
>> If I set CONFIG_USB_DWC3_DUAL_ROLE, than nothing is going on when I plug some device/host cable into micro USB3.0 port (VBUS/ID detection with extcon events works fine).
>>
>> CONFIG_USB_DWC3_HOST/CONFIG_USB_DWC3_GADGET bring port to appropriate mode and it works.
>>
>> What is the purpose of setting dr_mode = "peripheral" in omap5.dtsi, since it is overridden by config options in dwc3_probe()?
>
> If dual role works it should be "otg" then. I'm not sure why it was set to peripheral. Maybe the role switching mechanism
> was not in place earlier.
This is what I have when setting dr_mode = "otg" (and compiling with
CONFIG_USB_DWC3_DUAL_ROLE):
when load gadget driver and plugging host PC cable:
root@...debian:~# modprobe g_ether
using random self ethernet address
using random host ethernet address
usb0: HOST MAC fa:db:52:7f:95:c5
usb0: MAC be:75:8d:71:6d:02
using random self ethernet address
using random host ethernet address
g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
g_ether gadget: g_ether ready
root@...debian:~# ------------[ cut here ]------------
WARNING: CPU: 0 PID: 65 at
/home/lifshitz/workroot/git-repo/OMAP5/omap5-kernel/drivers/bus/omap_l3_noc.c:147
l3_handle_target.isra.2+0x230/0x27c()
44000000.ocp:L3 Standard Error: MASTER UN IDENTIFIED TARGET OCMRAM
(Read): At Address: 0x00000000 : Data Access in User mode during
Functional access
Modules linked in: usb_f_eem g_ether usb_f_rndis libcomposite u_ether
configfs rfcomm ecb btmrvl_sdio btmrvl bluetooth mwifiex_sdio mwifiex
dwc3 ahci_platform libahci_platform libahci libata snd_soc_cm_t54
ads7846 dwc3_omap extcon_palmas rtc_palmas extcon_class at24
snd_soc_wm8731 snd_soc_omap_mcbsp
CPU: 0 PID: 65 Comm: irq/39-palmas Tainted: G W
3.16.0-cm-t54+ #99
[<c00156d0>] (unwind_backtrace) from [<c00124ac>] (show_stack+0x10/0x14)
[<c00124ac>] (show_stack) from [<c05e29dc>] (dump_stack+0x74/0x8c)
[<c05e29dc>] (dump_stack) from [<c0037dbc>] (warn_slowpath_common+0x70/0x88)
[<c0037dbc>] (warn_slowpath_common) from [<c0037e68>]
(warn_slowpath_fmt+0x30/0x40)
[<c0037e68>] (warn_slowpath_fmt) from [<c02d88b8>]
(l3_handle_target.isra.2+0x230/0x27c)
[<c02d88b8>] (l3_handle_target.isra.2) from [<c02d89b0>]
(l3_interrupt_handler+0xac/0x13c)
[<c02d89b0>] (l3_interrupt_handler) from [<c007ea00>]
(handle_irq_event_percpu+0x7c/0x230)
[<c007ea00>] (handle_irq_event_percpu) from [<c007ebf8>]
(handle_irq_event+0x44/0x64)
[<c007ebf8>] (handle_irq_event) from [<c0081b78>]
(handle_fasteoi_irq+0xa8/0x134)
[<c0081b78>] (handle_fasteoi_irq) from [<c007e398>]
(generic_handle_irq+0x20/0x30)
[<c007e398>] (generic_handle_irq) from [<c000f4ac>] (handle_IRQ+0x40/0x90)
[<c000f4ac>] (handle_IRQ) from [<c0008620>] (gic_handle_irq+0x2c/0x60)
[<c0008620>] (gic_handle_irq) from [<c05eacc0>] (__irq_svc+0x40/0x50)
Exception stack(0xec939d80 to 0xec939dc8)
9d80: ecb729b0 20000013 00000000 00000001 ecb72800 eca1e000 00000000
ec939e44
9da0: ec939ed0 20000013 ecb72818 ed005e14 ec939ec8 ec939dc8 bf015f54
c05ea548
9dc0: 80000013 ffffffff
[<c05eacc0>] (__irq_svc) from [<c05ea548>]
(_raw_spin_unlock_irqrestore+0x1c/0x20)
[<c05ea548>] (_raw_spin_unlock_irqrestore) from [<bf015f54>]
(extcon_update_state+0x144/0x1c4 [extcon_class])
[<bf015f54>] (extcon_update_state [extcon_class]) from [<bf023288>]
(palmas_vbus_irq_handler+0x64/0xa0 [extcon_palmas])
[<bf023288>] (palmas_vbus_irq_handler [extcon_palmas]) from [<c00815a8>]
(handle_nested_irq+0xa0/0x10c)
[<c00815a8>] (handle_nested_irq) from [<c03ab85c>]
(regmap_irq_thread+0x184/0x300)
[<c03ab85c>] (regmap_irq_thread) from [<c007f8b8>] (irq_thread_fn+0x1c/0x40)
[<c007f8b8>] (irq_thread_fn) from [<c007f6a4>] (irq_thread+0x120/0x15c)
[<c007f6a4>] (irq_thread) from [<c0056434>] (kthread+0xdc/0xf0)
[<c0056434>] (kthread) from [<c000eb98>] (ret_from_fork+0x14/0x3c)
---[ end trace 3b365a734f7f3202 ]---
palmas-usb 48070000.i2c:palmas@48:palmas_usb: USB cable is attached
when plugging storage device:
root@...debian:~# dmesg | tail -n20
...
omap-dwc3 4a020000.omap_dwc3: ID GND
palmas-usb 48070000.i2c:palmas@48:palmas_usb: USB-HOST cable is attached
palmas-usb 48070000.i2c:palmas@48:palmas_usb: USB cable is attached
and nothing is going on.
Once again, when compiling with predefined role
(CONFIG_USB_DWC3_HOST/CONFIG_USB_DWC3_GADGET) the port is functional in
both modes.
I'm wondering, if dwc3_probe() calls
dwc3_core_init_mode() -> dwc3_set_mode() than why it is not required in
dwc3_omap_set_mailbox()?
>
> George any objections for "otg"?
>
> cheers,
> -roger
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
Thanks,
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists