All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vivek Gautam <vivek.gautam@codeaurora.org>
To: "Felipe Balbi" <balbi@kernel.org>,
	"Michael Niewöhner" <linux@mniewoehner.de>,
	"Kishon Vijay Abraham I" <kishon@ti.com>
Cc: Alim Akhtar <alim.akhtar@samsung.com>,
	Pankaj Dubey <pankaj.dubey@samsung.com>,
	Anand Moon <linux.amoon@gmail.com>,
	Mathias Nyman <mathias.nyman@linux.intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Kukjin Kim <kgene@kernel.org>,
	Krzysztof Kozlowski <k.kozlowski@samsung.com>,
	Linux USB Mailing List <linux-usb@vger.kernel.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	"linux-samsung-soc@vger.kernel.org" 
	<linux-samsung-soc@vger.kernel.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Vivek Gautam <gautam.vivek@samsung.com>
Subject: Re: PROBLEM: DWC3 USB 3.0 not working on Odroid-XU4 with Exynos 5422
Date: Mon, 17 Oct 2016 15:21:55 +0530	[thread overview]
Message-ID: <a4d744ae-d043-b652-3073-f29ebe76f865@codeaurora.org> (raw)
In-Reply-To: <874m4btn2m.fsf@linux.intel.com>



On 10/17/2016 01:38 PM, Felipe Balbi wrote:
> Hi,
>
> Michael Niewöhner <linux@mniewoehner.de> writes:
>> Hi Felipe,
>> On Fri, 2016-10-07 at 22:26 +0200, Michael Niewöhner wrote:
>>> Hi Felipe,
>>>
>>> On Fr, 2016-10-07 at 10:42 +0300, Felipe Balbi wrote:
>>>> Hi,
>>>>
>>>> Michael Niewöhner <linux@mniewoehner.de> writes:
>>>>>> The clocks are same across working/non-working.
>>>>>> Is it possible to bisect the commit that's causing hang for 4.8x ?
>>>>>
>>>>> [c499ff71ff2a281366c6ec7a904c547d806cbcd1] usb: dwc3: core: re-factor init and exit paths
>>>>> This patch causes both the hang on reboot and the lsusb hang.
>>>> How to reproduce? Why don't we see this on x86 and TI boards? I'm
>>>> guessing this is failed bisection, as I can't see anything in that
>>>> commit that would cause reboot hang. Also, that code path is *NOT*
>>>> executed when you run lsusb.
>>>>
>>> I've tested this procedure multiple times to be sure:
>>>
>>> - checkout c499ff71, compile, boot the odroid
>>> - run lsusb -v => lsusb hangs, can't terminate with ctrl-c
>>> - hard reset, after boot run poweroff or reboot => board does not completely power off / reboot (see log below)
>>> - revert c499ff71, mrproper, compile, boot the odroid
>>> - run lsusb -v => shows full output, not hanging
>>> - run reboot or poweroff => board powers off / reboots just fine
>>>
>>>
>>> dmesg poweroff not working:
>>> ...
>>> [  120.733519] systemd-journald[144]: systemd-journald stopped as pid 144
>>> [  120.742663] systemd-shutdown[1]: Sending SIGKILL to remaining processes...
>>> [  120.769212] systemd-shutdown[1]: Unmounting file systems.
>>> [  120.773713] systemd-shutdown[1]: Unmounting /sys/kernel/debug.
>>> [  120.827211] systemd-shutdown[1]: Unmounting /dev/mqueue.
>>> [  121.081672] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
>>> [  121.091687] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
>>> [  121.095608] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
>>> [  121.101014] systemd-shutdown[1]: All filesystems unmounted.
>>> [  121.106523] systemd-shutdown[1]: Deactivating swaps.
>>> [  121.111585] systemd-shutdown[1]: All swaps deactivated.
>>> [  121.116661] systemd-shutdown[1]: Detaching loop devices.
>>> [  121.126395] systemd-shutdown[1]: All loop devices detached.
>>> [  121.130525] systemd-shutdown[1]: Detaching DM devices.
>>> [  121.135824] systemd-shutdown[1]: All DM devices detached.
>>> [  121.166327] systemd-shutdown[1]: /lib/systemd/system-shutdown succeeded.
>>> [  121.171739] systemd-shutdown[1]: Powering off.
>>>
>>> => at this point removing the sd card would show a message
>>> "removed mmc0" (not sure what the real message was...) so the board is not completely off.
>>>
>>>
>>> dmesg poweroff working:
>>> ...
>>> [  120.733519] systemd-journald[144]: systemd-journald stopped as pid 144
>>> [  120.742663] systemd-shutdown[1]: Sending SIGKILL to remaining processes...
>>> [  120.769212] systemd-shutdown[1]: Unmounting file systems.
>>> [  120.773713] systemd-shutdown[1]: Unmounting /sys/kernel/debug.
>>> [  120.827211] systemd-shutdown[1]: Unmounting /dev/mqueue.
>>> [  121.081672] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
>>> [  121.091687] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
>>> [  121.095608] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
>>> [  121.101014] systemd-shutdown[1]: All filesystems unmounted.
>>> [  121.106523] systemd-shutdown[1]: Deactivating swaps.
>>> [  121.111585] systemd-shutdown[1]: All swaps deactivated.
>>> [  121.116661] systemd-shutdown[1]: Detaching loop devices.
>>> [  121.126395] systemd-shutdown[1]: All loop devices detached.
>>> [  121.130525] systemd-shutdown[1]: Detaching DM devices.
>>> [  121.135824] systemd-shutdown[1]: All DM devices detached.
>>> [  121.166327] systemd-shutdown[1]: /lib/systemd/system-shutdown succeeded.
>>> [  121.171739] systemd-shutdown[1]: Powering off.
>>> [  121.182331] rebo�
>>>
>>>
>>>
>>> Best regards
>>> Michael Niewöhner
>>
>> I did some more tests with next-20161016. Reverting / commenting out
>> one part of your patch "solves" the lsusb hang, the reboot problem
>> and also the "debounce failed" message. [1]
>> Another "solution" is to call phy_power_off before phy_power_on. [2]
>>
>> Disclaimer: I have no idea what I was doing ;-) These were just some
>> simple trial-and-error attempts that maybe help to find the real
>> cause of the problems.
>>
>> [1]
>> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
>> index 7287a76..5ef589d 100644
>> --- a/drivers/usb/dwc3/core.c
>> +++ b/drivers/usb/dwc3/core.c
>> @@ -724,6 +724,7 @@ static int dwc3_core_init(struct dwc3 *dwc)
>>   	/* Adjust Frame Length */
>>   	dwc3_frame_length_adjustment(dwc);
>>   
>> +/*
>>   	usb_phy_set_suspend(dwc->usb2_phy, 0);
>>   	usb_phy_set_suspend(dwc->usb3_phy, 0);
>>   	ret = phy_power_on(dwc->usb2_generic_phy);
>> @@ -733,6 +734,7 @@ static int dwc3_core_init(struct dwc3 *dwc)
>>   	ret = phy_power_on(dwc->usb3_generic_phy);
>>   	if (ret < 0)
>>   		goto err3;
>> +*/
>>   
>>   	ret = dwc3_event_buffers_setup(dwc);
>>   	if (ret) {
>>
>> [2]
>> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
>> index 7287a76..f6c8e13 100644
>> --- a/drivers/usb/dwc3/core.c
>> +++ b/drivers/usb/dwc3/core.c
>> @@ -726,6 +726,8 @@ static int dwc3_core_init(struct dwc3 *dwc)
>>   
>>          usb_phy_set_suspend(dwc->usb2_phy, 0);
>>          usb_phy_set_suspend(dwc->usb3_phy, 0);
>> +       phy_power_off(dwc->usb2_generic_phy);
>> +       phy_power_off(dwc->usb3_generic_phy);
> This looks like a PHY driver bug to me. Which PHY driver are you using?
>

The exynos5-usbdrd phy driver is used for exynos platforms.
Looks like something is not right with the phy driver even
after applying the phy_calibrate patches.

Michael, are you using the last set of patches for phy calibration [1]?
[1] https://lkml.org/lkml/2015/2/2/257.


Thanks
Vivek

-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

WARNING: multiple messages have this Message-ID (diff)
From: vivek.gautam@codeaurora.org (Vivek Gautam)
To: linux-arm-kernel@lists.infradead.org
Subject: PROBLEM: DWC3 USB 3.0 not working on Odroid-XU4 with Exynos 5422
Date: Mon, 17 Oct 2016 15:21:55 +0530	[thread overview]
Message-ID: <a4d744ae-d043-b652-3073-f29ebe76f865@codeaurora.org> (raw)
In-Reply-To: <874m4btn2m.fsf@linux.intel.com>



On 10/17/2016 01:38 PM, Felipe Balbi wrote:
> Hi,
>
> Michael Niew?hner <linux@mniewoehner.de> writes:
>> Hi Felipe,
>> On Fri, 2016-10-07 at 22:26 +0200, Michael Niew?hner wrote:
>>> Hi Felipe,
>>>
>>> On Fr, 2016-10-07 at 10:42 +0300, Felipe Balbi wrote:
>>>> Hi,
>>>>
>>>> Michael Niew?hner <linux@mniewoehner.de> writes:
>>>>>> The clocks are same across working/non-working.
>>>>>> Is it possible to bisect the commit that's causing hang for 4.8x ?
>>>>>
>>>>> [c499ff71ff2a281366c6ec7a904c547d806cbcd1] usb: dwc3: core: re-factor init and exit paths
>>>>> This patch causes both the hang on reboot and the lsusb hang.
>>>> How to reproduce? Why don't we see this on x86 and TI boards? I'm
>>>> guessing this is failed bisection, as I can't see anything in that
>>>> commit that would cause reboot hang. Also, that code path is *NOT*
>>>> executed when you run lsusb.
>>>>
>>> I've tested this procedure multiple times to be sure:
>>>
>>> - checkout c499ff71, compile, boot the odroid
>>> - run lsusb -v => lsusb hangs, can't terminate with ctrl-c
>>> - hard reset, after boot run poweroff or reboot => board does not completely power off / reboot (see log below)
>>> - revert c499ff71, mrproper, compile, boot the odroid
>>> - run lsusb -v => shows full output, not hanging
>>> - run reboot or poweroff => board powers off / reboots just fine
>>>
>>>
>>> dmesg poweroff not working:
>>> ...
>>> [  120.733519] systemd-journald[144]: systemd-journald stopped as pid 144
>>> [  120.742663] systemd-shutdown[1]: Sending SIGKILL to remaining processes...
>>> [  120.769212] systemd-shutdown[1]: Unmounting file systems.
>>> [  120.773713] systemd-shutdown[1]: Unmounting /sys/kernel/debug.
>>> [  120.827211] systemd-shutdown[1]: Unmounting /dev/mqueue.
>>> [  121.081672] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
>>> [  121.091687] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
>>> [  121.095608] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
>>> [  121.101014] systemd-shutdown[1]: All filesystems unmounted.
>>> [  121.106523] systemd-shutdown[1]: Deactivating swaps.
>>> [  121.111585] systemd-shutdown[1]: All swaps deactivated.
>>> [  121.116661] systemd-shutdown[1]: Detaching loop devices.
>>> [  121.126395] systemd-shutdown[1]: All loop devices detached.
>>> [  121.130525] systemd-shutdown[1]: Detaching DM devices.
>>> [  121.135824] systemd-shutdown[1]: All DM devices detached.
>>> [  121.166327] systemd-shutdown[1]: /lib/systemd/system-shutdown succeeded.
>>> [  121.171739] systemd-shutdown[1]: Powering off.
>>>
>>> => at this point removing the sd card would show a message
>>> "removed mmc0" (not sure what the real message was...) so the board is not completely off.
>>>
>>>
>>> dmesg poweroff working:
>>> ...
>>> [  120.733519] systemd-journald[144]: systemd-journald stopped as pid 144
>>> [  120.742663] systemd-shutdown[1]: Sending SIGKILL to remaining processes...
>>> [  120.769212] systemd-shutdown[1]: Unmounting file systems.
>>> [  120.773713] systemd-shutdown[1]: Unmounting /sys/kernel/debug.
>>> [  120.827211] systemd-shutdown[1]: Unmounting /dev/mqueue.
>>> [  121.081672] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
>>> [  121.091687] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
>>> [  121.095608] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
>>> [  121.101014] systemd-shutdown[1]: All filesystems unmounted.
>>> [  121.106523] systemd-shutdown[1]: Deactivating swaps.
>>> [  121.111585] systemd-shutdown[1]: All swaps deactivated.
>>> [  121.116661] systemd-shutdown[1]: Detaching loop devices.
>>> [  121.126395] systemd-shutdown[1]: All loop devices detached.
>>> [  121.130525] systemd-shutdown[1]: Detaching DM devices.
>>> [  121.135824] systemd-shutdown[1]: All DM devices detached.
>>> [  121.166327] systemd-shutdown[1]: /lib/systemd/system-shutdown succeeded.
>>> [  121.171739] systemd-shutdown[1]: Powering off.
>>> [  121.182331] rebo?
>>>
>>>
>>>
>>> Best regards
>>> Michael Niew?hner
>>
>> I did some more tests with next-20161016. Reverting / commenting out
>> one part of your patch "solves" the lsusb hang, the reboot problem
>> and also the "debounce failed" message. [1]
>> Another "solution" is to call phy_power_off before phy_power_on. [2]
>>
>> Disclaimer: I have no idea what I was doing ;-) These were just some
>> simple trial-and-error attempts that maybe help to find the real
>> cause of the problems.
>>
>> [1]
>> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
>> index 7287a76..5ef589d 100644
>> --- a/drivers/usb/dwc3/core.c
>> +++ b/drivers/usb/dwc3/core.c
>> @@ -724,6 +724,7 @@ static int dwc3_core_init(struct dwc3 *dwc)
>>   	/* Adjust Frame Length */
>>   	dwc3_frame_length_adjustment(dwc);
>>   
>> +/*
>>   	usb_phy_set_suspend(dwc->usb2_phy, 0);
>>   	usb_phy_set_suspend(dwc->usb3_phy, 0);
>>   	ret = phy_power_on(dwc->usb2_generic_phy);
>> @@ -733,6 +734,7 @@ static int dwc3_core_init(struct dwc3 *dwc)
>>   	ret = phy_power_on(dwc->usb3_generic_phy);
>>   	if (ret < 0)
>>   		goto err3;
>> +*/
>>   
>>   	ret = dwc3_event_buffers_setup(dwc);
>>   	if (ret) {
>>
>> [2]
>> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
>> index 7287a76..f6c8e13 100644
>> --- a/drivers/usb/dwc3/core.c
>> +++ b/drivers/usb/dwc3/core.c
>> @@ -726,6 +726,8 @@ static int dwc3_core_init(struct dwc3 *dwc)
>>   
>>          usb_phy_set_suspend(dwc->usb2_phy, 0);
>>          usb_phy_set_suspend(dwc->usb3_phy, 0);
>> +       phy_power_off(dwc->usb2_generic_phy);
>> +       phy_power_off(dwc->usb3_generic_phy);
> This looks like a PHY driver bug to me. Which PHY driver are you using?
>

The exynos5-usbdrd phy driver is used for exynos platforms.
Looks like something is not right with the phy driver even
after applying the phy_calibrate patches.

Michael, are you using the last set of patches for phy calibration [1]?
[1] https://lkml.org/lkml/2015/2/2/257.


Thanks
Vivek

-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

  reply	other threads:[~2016-10-17  9:52 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-28 20:04 PROBLEM: DWC3 USB 3.0 not working on Odroid-XU4 with Exynos 5422 Michael Niewöhner
2016-08-28 20:04 ` Michael Niewöhner
2016-08-29  7:28 ` Felipe Balbi
2016-08-29  7:28   ` Felipe Balbi
2016-08-29 10:59   ` Mathias Nyman
2016-08-29 10:59     ` Mathias Nyman
2016-08-29 11:05     ` Michael Niewöhner
2016-08-29 11:05       ` Michael Niewöhner
2016-08-30  5:02       ` Anand Moon
2016-08-30  5:02         ` Anand Moon
2016-08-30  5:02         ` Anand Moon
2016-09-20 21:19         ` Michael Niewöhner
2016-09-20 21:19           ` Michael Niewöhner
2016-09-20 21:19           ` Michael Niewöhner
2016-10-03 13:08         ` Michael Niewöhner
2016-10-03 13:08           ` Michael Niewöhner
2016-10-03 13:08           ` Michael Niewöhner
2016-10-04  6:02         ` Vivek Gautam
2016-10-04  6:02           ` Vivek Gautam
2016-10-04  6:02           ` Vivek Gautam
2016-10-04 10:58           ` Michael Niewöhner
2016-10-04 10:58             ` Michael Niewöhner
2016-10-04 12:02             ` Vivek Gautam
2016-10-04 12:02               ` Vivek Gautam
2016-10-04 12:02               ` Vivek Gautam
2016-10-04 15:09               ` Anand Moon
2016-10-04 15:09                 ` Anand Moon
2016-10-05  4:45                 ` Vivek Gautam
2016-10-05  4:45                   ` Vivek Gautam
2016-10-05  7:48                   ` Anand Moon
2016-10-05  7:48                     ` Anand Moon
2016-10-06 16:29               ` Michael Niewöhner
2016-10-06 16:29                 ` Michael Niewöhner
2016-10-06 16:29                 ` Michael Niewöhner
2016-10-07  7:42                 ` Felipe Balbi
2016-10-07  7:42                   ` Felipe Balbi
2016-10-07  7:42                   ` Felipe Balbi
2016-10-07 20:26                   ` Michael Niewöhner
2016-10-07 20:26                     ` Michael Niewöhner
2016-10-07 20:26                     ` Michael Niewöhner
2016-10-16 14:19                     ` Michael Niewöhner
2016-10-16 14:19                       ` Michael Niewöhner
2016-10-16 14:19                       ` Michael Niewöhner
2016-10-17  8:08                       ` Felipe Balbi
2016-10-17  8:08                         ` Felipe Balbi
2016-10-17  8:08                         ` Felipe Balbi
2016-10-17  9:51                         ` Vivek Gautam [this message]
2016-10-17  9:51                           ` Vivek Gautam
2016-10-17  9:51                           ` Vivek Gautam
2016-10-18 12:20                           ` Michael Niewöhner
2016-10-18 12:20                             ` Michael Niewöhner
2016-10-18 12:20                             ` Michael Niewöhner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a4d744ae-d043-b652-3073-f29ebe76f865@codeaurora.org \
    --to=vivek.gautam@codeaurora.org \
    --cc=alim.akhtar@samsung.com \
    --cc=balbi@kernel.org \
    --cc=gautam.vivek@samsung.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=k.kozlowski@samsung.com \
    --cc=kgene@kernel.org \
    --cc=kishon@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux.amoon@gmail.com \
    --cc=linux@mniewoehner.de \
    --cc=mathias.nyman@linux.intel.com \
    --cc=pankaj.dubey@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.