Hi Mani,

Could you please test the patch ([PATCH] usb: dwc2: Fix host exit from 
hibernation flow.) which should fix issue seen on your setup and provide 
feedback.
Meantime we will debug issue reported by John Stultz, which is another 
case/scenario.

Regards,
Artur


On 5/22/2018 22:45, Manivannan Sadhasivam wrote:
> + John Stultz.
> 
> John submitted a patch recently to temporarily fix the issue by disabling the
> power down feature in Hikey.
> 
> https://urldefense.proofpoint.com/v2/url?u=https-3A__lkml.org_lkml_2018_5_21_730&d=DwIBAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=9hPBFKCJ_nBjJhGVrrlYOeOQjP_HlVzYqrC_D7niMJI&m=6LhexoM7WPYJCGKz9Ht2lFT0FTJGYReuH-DLADH3jTk&s=T5DKo2-Jt1vCbo1Tq0MsuktMrpJ-GnxKCigx58tKqrw&e=
> 
> John, I have listed some of my findings to this thread which will help
> debugging the issue.
> 
> Thanks,
> Mani
> 
> On Thu, May 17, 2018 at 04:04:01PM +0530, Manivannan Sadhasivam wrote:
>> Hi Artur,
>>
>> Thanks for the reply!
>>
>> On Thu, May 17, 2018 at 09:10:06AM +0000, Artur Petrosyan wrote:
>>> Hi Mani,
>>>
>>> We need some detailed information to perform debugging.
>>>
>>> 1. Could you please share the documentation of "96Boards HiKey" board, at 
>>> least dwc core configuration parameters. Or dump of GHWCFG1-4.
>>
>> You can find the HiKey documentation here:
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_96boards_documentation_tree_master_consumer_hikey_hardware-2Ddocs&d=DwIBAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=9hPBFKCJ_nBjJhGVrrlYOeOQjP_HlVzYqrC_D7niMJI&m=6LhexoM7WPYJCGKz9Ht2lFT0FTJGYReuH-DLADH3jTk&s=jpHs7p6qQrZZ70jXyaj4fon8SE7y6N4rds4ZmuXr-8s&e=
>>
>> GHWCFG register dump:
>>
>> GHWCFG1 = 0x00000000
>> GHWCFG2 = 0x23affc70
>> GHWCFG3 = 0x0780d4e8
>> GHWCFG4 = 0xfff00060
>>
>>> 2. Could you  please share with us full debug log of dwc2 loading and plug 
>>> the USB device.
>>
>> Here is the full kernel log from the boot till USB device gets plugged in:
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__pastebin.ubuntu.com_p_3bZwWtk8wD_&d=DwIBAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=9hPBFKCJ_nBjJhGVrrlYOeOQjP_HlVzYqrC_D7niMJI&m=6LhexoM7WPYJCGKz9Ht2lFT0FTJGYReuH-DLADH3jTk&s=e2qpTQMTCiMabfKTLZiHML--9dJd_iEbSpnbO8oVruE&e=
>>
>>> 3. From short debug log seen that Host exited from hibernation after USB 
>>> device plugged to the port. Do you mean that enumeration process didn't 
>>> start? If not, could you please dump registers after "dwc2 f72c0000.usb: 
>>> Host hibernation restore complete"
>>
>> Yeah, I guess the enumeration process didn't happen at all. Here is the
>> register dump after plugging the device:
>>
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__pastebin.ubuntu.com_p_3vxdkFGgp6_&d=DwIBAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=9hPBFKCJ_nBjJhGVrrlYOeOQjP_HlVzYqrC_D7niMJI&m=6LhexoM7WPYJCGKz9Ht2lFT0FTJGYReuH-DLADH3jTk&s=scjqjTPnWj7MbUktAI5S6zao5g7KXG4gDfg-wNC1zfc&e=
>>
>>> 4. In which mode had the dwc2 been built. In host only mode or DRD mode?
>>
>> DWC2 in HiKey is built in Dual Role Device (DRD) mode.
>>
>>> 5. And you mention that USB controller's DP/DM out is connected to a switch 
>>> which switches between a USB type C port and a HUB (USB2513B). Is the 
>>> device connected to USB type C port or to HUB (USB2513B) ? Switching 
>>> connection done before dwc2 load or after?
>>>
>>
>> The USB device is connected to one of the ports from HUB and there is one
>> gpio which is used for switching the USB ports between Type-C and HUB. By
>> default, this gpio is unused and it pulled low, which means HUB will get
>> selected before dwc2 gets loaded.
>>
>> Hope this information will help debugging the issue.
>>
>> Thanks,
>> Mani
>>
>>> Looking forward to your reply.
>>>
>>> Regards,
>>> Artur
>>>
>>>
>>> -----Original Message-----
>>> From: Manivannan Sadhasivam [mailto:manivannan.sadhasi...@linaro.org]
>>> Sent: Wednesday, May 16, 2018 17:23
>>> To: linux-usb@vger.kernel.org
>>> Cc: john.y...@synopsys.com; mvar...@synopsys.com; 
>>> arthur.petros...@synopsys.com; grigor.tovmas...@synopsys.com; 
>>> felipe.ba...@linux.intel.com
>>> Subject: usb: dwc2: Regression on 96Boards Hikey due to enabling power down
>>>
>>> Hello,
>>>
>>> Commit 03ea6d6e9e1ff1b0222eb723eee5990d3511cc4d introduced the powerdown 
>>> feature in USB DWC2 driver which stops USB from working on 96Boards HiKey 
>>> board.
>>>
>>> During bootup, USB host controller goes into hibernation state and when any 
>>> USB device is plugged onto the port, the host finishes executing the GPWRDN 
>>> interrupt handler but still it didn't wake up.
>>>
>>> Below is the dmesg log after plugging a device onto USB port:
>>>
>>> [   30.763414] dwc2 f72c0000.usb: dwc2_handle_gpwrdn_intr: 
>>> dwc2_handle_gpwrdwn_intr called gpwrdn= 081411bb
>>> [   30.763458] dwc2 f72c0000.usb: dwc2_handle_gpwrdn_intr: GPWRDN_LNSTSCHG
>>> [   30.763492] dwc2 f72c0000.usb: dwc2_host_exit_hibernation: called with 
>>> rem_wakeup = 1 reset = 0
>>> [   30.763623] dwc2 f72c0000.usb: dwc2_restore_essential_regs: restoring 
>>> essential regs
>>> [   30.763671] dwc2 f72c0000.usb: restore done  generated here
>>> [   30.976707] dwc2 f72c0000.usb: dwc2_restore_global_registers
>>> [   30.976723] dwc2 f72c0000.usb: dwc2_restore_host_registers
>>> [   30.976741] dwc2 f72c0000.usb: Host hibernation restore complete
>>>
>>> I tried to manually reset the HUB and PHY after plugging in the device but 
>>> that didn't help.
>>>
>>> This issue has been detected in kernel 4.17-rc1.
>>>
>>> Can anyone shed some light here? Any help would be greatly appreciated!
>>>
>>> Note: On this board, the USB controller's DP/DM out is connected to a 
>>> switch which switches between a USB type C port and a HUB (USB2513B).
>>>
>>> Thanks,
>>> Mani
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to