All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ferry Toth <fntoth@gmail.com>
To: Andrey Smirnov <andrew.smirnov@gmail.com>
Cc: Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Felipe Balbi <balbi@kernel.org>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>
Subject: Re: [PATCH v2 2/2] Revert "usb: dwc3: Don't switch OTG -> peripheral if extcon is present"
Date: Tue, 11 Oct 2022 20:38:04 +0200	[thread overview]
Message-ID: <644adb7b-0438-e37c-222c-71bf261369b0@gmail.com> (raw)
In-Reply-To: <CAHQ1cqE5=j9i8uYvBwdNUK8TrX3Wxy7iUML6K+gBQx-KRtkS7w@mail.gmail.com>

Hi,

Op 10-10-2022 om 23:35 schreef Andrey Smirnov:
> On Mon, Oct 10, 2022 at 1:52 PM Ferry Toth <fntoth@gmail.com> wrote:
>>
>> Hi
>>
>> Op 10-10-2022 om 13:04 schreef Ferry Toth:
>>> Hi
>>>
>>> On 10-10-2022 07:02, Andrey Smirnov wrote:
>>>> On Fri, Oct 7, 2022 at 6:07 AM Ferry Toth <fntoth@gmail.com> wrote:
>>>>>
>>>>> On 07-10-2022 04:11, Thinh Nguyen wrote:
>>>>>> On Thu, Oct 06, 2022, Ferry Toth wrote:
>>>>>>> Hi
>>>>>>>
>>>>>>> On 06-10-2022 04:12, Thinh Nguyen wrote:
>>>>>>>> On Wed, Oct 05, 2022, Ferry Toth wrote:
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>>         Thanks!
>>>>>>>>>
>>>>>>>>>         Does the failure only happen the first time host is
>>>>>>>>> initialized? Or can
>>>>>>>>>         it recover after switching to device then back to host mode?
>>>>>>>>>
>>>>>>>>> I can switch back and forth and device mode works each time,
>>>>>>>>> host mode remains
>>>>>>>>> dead.
>>>>>>>> Ok.
>>>>>>>>
>>>>>>>>>         Probably the failure happens if some step(s) in
>>>>>>>>> dwc3_core_init() hasn't
>>>>>>>>>         completed.
>>>>>>>>>
>>>>>>>>>         tusb1210 is a phy driver right? The issue is probably
>>>>>>>>> because we didn't
>>>>>>>>>         initialize the phy yet. So, I suspect placing
>>>>>>>>> dwc3_get_extcon() after
>>>>>>>>>         initializing the phy will probably solve the dependency
>>>>>>>>> problem.
>>>>>>>>>
>>>>>>>>>         You can try something for yourself or I can provide
>>>>>>>>> something to test
>>>>>>>>>         later if you don't mind (maybe next week if it's ok).
>>>>>>>>>
>>>>>>>>> Yes, the code move I mentioned above "moves dwc3_get_extcon()
>>>>>>>>> until after
>>>>>>>>> dwc3_core_init() but just before dwc3_core_init_mode(). AFAIU
>>>>>>>>> initially
>>>>>>>>> dwc3_get_extcon() was called from within dwc3_core_init_mode()
>>>>>>>>> but only for
>>>>>>>>> case USB_DR_MODE_OTG. So with this change order of events is
>>>>>>>>> more or less
>>>>>>>>> unchanged" solves the issue.
>>>>>>>>>
>>>>>>>> I saw the experiment you did from the link you provided. We want
>>>>>>>> to also
>>>>>>>> confirm exactly which step in dwc3_core_init() was needed.
>>>>>>> Ok. I first tried the code move suggested by Andrey (didn't work).
>>>>>>> Then
>>>>>>> after reading the actual code I moved a bit further.
>>>>>>>
>>>>>>> This move was on top of -rc6 without any reverts. I did not make
>>>>>>> additional
>>>>>>> changes to dwc3_core_init()
>>>>>>>
>>>>>>> So current v6.0 has: dwc3_get_extcon - dwc3_get_dr_mode - ... -
>>>>>>> dwc3_core_init - .. - dwc3_core_init_mode (not working)
>>>>>>>
>>>>>>> I changed to: dwc3_get_dr_mode - dwc3_get_extcon - .. -
>>>>>>> dwc3_core_init - ..
>>>>>>> - dwc3_core_init_mode (no change)
>>>>>>>
>>>>>>> Then to: dwc3_get_dr_mode - .. - dwc3_core_init - .. -
>>>>>>> dwc3_get_extcon -
>>>>>>> dwc3_core_init_mode (works)
>>>>>>>
>>>>>>> .. are what I believe for this issue irrelevant calls to
>>>>>>> dwc3_alloc_scratch_buffers, dwc3_check_params and dwc3_debugfs_init.
>>>>>>>
>>>>>> Right. Thanks for narrowing it down. There are still many steps in
>>>>>> dwc3_core_init(). We have some suspicion, but we still haven't
>>>>>> confirmed
>>>>>> the exact cause of the failure. We can write a proper patch once we
>>>>>> know
>>>>>> the reason.
>>>>> If you would like me to test your suspicion, just tell me what to do
>>>>> :-)
>>>>
>>>> OK, Ferry, I think I'm going to need clarification on specifics on
>>>> your test setup. Can you share your kernel config, maybe your
>>>> "/proc/config.gz", somewhere? When you say you are running vanilla
>>>> Linux, do you mean it or do you mean vanilla tree + some patch delta?
>>>
>>> For v6.0 I can get the exacts tonight. But earlier I had this for v5.17:
>>>
>>> https://github.com/htot/meta-intel-edison/blob/master/meta-intel-edison-bsp/recipes-kernel/linux/linux-yocto_5.17.bb
>>>
>>>
>>> There are 2 patches referred in #67 and #68. One is related to the
>>> infinite loop. The other is I believe also needed to get dwc3 to work.
>>>
>>> All the kernel config are applied as .cfg.
>>>
>>> Patches and cfs's here:
>>>
>>> https://github.com/htot/meta-intel-edison/tree/master/meta-intel-edison-bsp/recipes-kernel/linux/files
>>>
>>
>> Updated Yocto recipe for v6.0 here:
>>
>> https://github.com/htot/meta-intel-edison/blob/honister/meta-intel-edison-bsp/recipes-kernel/linux/linux-yocto_6.0.bb
>>
>> #75-#77 are the 2 reverts from Andy, + one SOF revert (not related to
>> this thread).
> 
> Please drop all of this
> https://github.com/htot/meta-intel-edison/blob/honister/meta-intel-edison-bsp/recipes-kernel/linux/linux-yocto_6.0.bb#L69-L77
> and re do the testing. Assuming things are still broken, that's how
> you want to do the bisecting.

I removed 4 patches:
0043b-TODO-driver-core-Break-infinite-loop-when-deferred-p.patch
0044-REVERTME-usb-dwc3-gadget-skip-endpoints-ep-18-in-out.patch
0001-Revert-USB-fixup-for-merge-issue-with-usb-dwc3-Don-t.patch
0001-Revert-usb-dwc3-Don-t-switch-OTG-peripheral-if-extco.patch

and indeed as you expect kernel boots (no infinite loop). However dwc3 
host mode is not working as in your case, device mode works fine (Yocto 
configures a set of gadgets for me).

Just to be sure if I could have bisected without 0043a I added back the 
2 0001-Revert* and indeed I run into the infinite loop with the console 
spitting out continuous:
debugfs: Directory 'dwc3.0.auto' with parent 'ulpi' already present!
tusb1210 dwc3.0.auto.ulpi: error -110 writing val 0x41 to reg 0x80

so yes it seems either 0043b or your patch "usb: dwc3: Don't switch OTG 
-> peripheral if extcon is present" is needed to boot (break the 
infinite loop). But your patch is in my case not sufficient to make host 
mode work.

As I understand it depends a bit on the timing, I might have a different 
initrd (built by Yocto vs. Buildroot). F.i. I see I have 
extcon-intel-mrfld in initrd and dwc3 / phy-tusb1210 built-in.


  reply	other threads:[~2022-10-11 18:39 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-27 15:53 [PATCH v2 0/2] usb: dwc3: revert OTG changes for Intel Merrifield Andy Shevchenko
2022-09-27 15:53 ` [PATCH v2 1/2] Revert "USB: fixup for merge issue with "usb: dwc3: Don't switch OTG -> peripheral if extcon is present"" Andy Shevchenko
2022-09-27 15:53 ` [PATCH v2 2/2] Revert "usb: dwc3: Don't switch OTG -> peripheral if extcon is present" Andy Shevchenko
2022-09-29  3:01   ` Andrey Smirnov
2022-09-29  8:47     ` Sven Peter
2022-10-03 21:57   ` Thinh Nguyen
2022-10-04  8:28     ` Andy Shevchenko
2022-10-04 19:14       ` Ferry Toth
2022-10-05  2:12         ` Thinh Nguyen
2022-10-05  2:39           ` Andrey Smirnov
     [not found]             ` <25bc7dbe-f530-298f-f826-087606cf9491@gmail.com>
2022-10-05  8:44               ` Andy Shevchenko
2022-10-05  8:45             ` Ferry Toth
2022-10-06  2:00             ` Thinh Nguyen
     [not found]           ` <2886b82d-a1f6-d288-e8d1-edae54046b4f@gmail.com>
2022-10-06  2:12             ` Thinh Nguyen
2022-10-06 12:28               ` Ferry Toth
2022-10-07  2:11                 ` Thinh Nguyen
2022-10-07 13:07                   ` Ferry Toth
2022-10-10  5:02                     ` Andrey Smirnov
2022-10-10  7:10                       ` Andy Shevchenko
2022-10-10 21:40                         ` Andrey Smirnov
2022-10-11  9:21                           ` Andy Shevchenko
2022-10-11  9:36                             ` Ferry Toth
2022-10-11 20:17                             ` Andrey Smirnov
2022-10-12 10:32                               ` Andy Shevchenko
2022-10-12 22:13                                 ` Andrey Smirnov
2022-10-10 11:04                       ` Ferry Toth
2022-10-10 20:52                         ` Ferry Toth
2022-10-10 21:35                           ` Andrey Smirnov
2022-10-11 18:38                             ` Ferry Toth [this message]
2022-10-11 20:50                               ` Andrey Smirnov
2022-10-12  9:30                                 ` Ferry Toth
2022-10-12 20:34                                   ` Ferry Toth
2022-10-12 21:43                                   ` Andrey Smirnov
2022-10-13 19:35                                     ` Ferry Toth
2022-10-15 19:54                                       ` Andrey Smirnov
2022-10-16 20:59                                         ` Ferry Toth
2022-10-17 19:44                                           ` Steev Klimaszewski
2022-10-17 21:20                                           ` Andrey Smirnov
2022-10-18 20:47                                             ` Ferry Toth
2022-10-20 19:55                                               ` Ferry Toth
2022-10-17 21:29 ` [PATCH v2 0/2] usb: dwc3: revert OTG changes for Intel Merrifield Andrey Smirnov
2022-10-17 22:20   ` [PATCH v2 2/2] Revert "usb: dwc3: Don't switch OTG -> peripheral if extcon is present" Steev Klimaszewski
2022-10-17 22:22   ` [PATCH v2 0/2] usb: dwc3: revert OTG changes for Intel Merrifield Thinh Nguyen
2022-10-17 23:12     ` Andy Shevchenko

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=644adb7b-0438-e37c-222c-71bf261369b0@gmail.com \
    --to=fntoth@gmail.com \
    --cc=Thinh.Nguyen@synopsys.com \
    --cc=andrew.smirnov@gmail.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=balbi@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /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.