From: Felipe Balbi <balbi@kernel.org>
To: Roger Quadros <rogerq@ti.com>
Cc: vigneshr@ti.com, gregkh@linuxfoundation.org,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
"linux-stable # = v4 . 13" <stable@vger.kernel.org>
Subject: usb: dwc3: core: Don't try to get PHYs during suspend/resume
Date: Wed, 10 Jan 2018 16:04:15 +0200 [thread overview]
Message-ID: <87wp0pyfmo.fsf@linux.intel.com> (raw)
Hi,
Roger Quadros <rogerq@ti.com> writes:
>> Roger Quadros <rogerq@ti.com> writes:
>>> Felipe,
>>>
>>> On 10/01/18 15:11, Roger Quadros wrote:
>>>> The USB PHYs should be requested only once during the life cycle of
>>>> this driver.
>>>>
>>>> As dwc3_core_init() is called during system suspend/resume
>>>> it will result in multiple calls to dwc3_core_get_phy() which is wrong.
>>>>
>>>> To prevent that let's move dwc3_core_get_phy() call
>>>> outside dwc3_core_init().
>>>>
>>>> Fixes: 541768b08a4 ("usb: dwc3: core: Call dwc3_core_get_phy() before initializing phys")
>>>> Cc: linux-stable <stable@vger.kernel.org> # >= v4.13
>>>> Signed-off-by: Roger Quadros <rogerq@ti.com>
>>>
>>> FYI. this patch brings the code back to
>>> revert 541768b08a40 ("usb: dwc3: core: Call dwc3_core_get_phy() before initializing phys")
>>> revert f54edb539c11 ("usb: dwc3: core: initialize ULPI before trying to get the PHY")
>>>
>>> So looks like this will break ULPI PHY case?
>>>
>>> Where do we initialize ULPI PHY, in dwc3_phy_setup()?
>>>
>>> if so then 541768b08a40 breaks the ULPI PHY case as well, right?
>>
>> indeed, that commit regressed ULPI PHYs :-(
>>
>> Seems like it should be more like below:
>>
>> @@ -754,15 +754,15 @@ static int dwc3_core_init(struct dwc3 *dwc)
>> dwc->maximum_speed = USB_SPEED_HIGH;
>> }
>>
>> - ret = dwc3_core_get_phy(dwc);
>> + ret = dwc3_phy_setup(dwc);
>
> But can we do a dwc3_phy_setup() without doing the soft reset of the controller first?
as long as clocks are running, we can do that, yes.
>> - ret = dwc3_core_soft_reset(dwc);
>> + ret = dwc3_core_get_phy(dwc);
>
> we can get_phy in dwc3_core_init() as it will get called on resume().
> This was the $subject of this patch.
indeed. thanks :-)
WARNING: multiple messages have this Message-ID (diff)
From: Felipe Balbi <balbi@kernel.org>
To: Roger Quadros <rogerq@ti.com>
Cc: vigneshr@ti.com, gregkh@linuxfoundation.org,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
"linux-stable # \= v4 . 13" <stable@vger.kernel.org>
Subject: Re: [PATCH] usb: dwc3: core: Don't try to get PHYs during suspend/resume
Date: Wed, 10 Jan 2018 16:04:15 +0200 [thread overview]
Message-ID: <87wp0pyfmo.fsf@linux.intel.com> (raw)
In-Reply-To: <327eac7d-80e2-bbd6-4fb4-98d947335698@ti.com>
[-- Attachment #1: Type: text/plain, Size: 1817 bytes --]
Hi,
Roger Quadros <rogerq@ti.com> writes:
>> Roger Quadros <rogerq@ti.com> writes:
>>> Felipe,
>>>
>>> On 10/01/18 15:11, Roger Quadros wrote:
>>>> The USB PHYs should be requested only once during the life cycle of
>>>> this driver.
>>>>
>>>> As dwc3_core_init() is called during system suspend/resume
>>>> it will result in multiple calls to dwc3_core_get_phy() which is wrong.
>>>>
>>>> To prevent that let's move dwc3_core_get_phy() call
>>>> outside dwc3_core_init().
>>>>
>>>> Fixes: 541768b08a4 ("usb: dwc3: core: Call dwc3_core_get_phy() before initializing phys")
>>>> Cc: linux-stable <stable@vger.kernel.org> # >= v4.13
>>>> Signed-off-by: Roger Quadros <rogerq@ti.com>
>>>
>>> FYI. this patch brings the code back to
>>> revert 541768b08a40 ("usb: dwc3: core: Call dwc3_core_get_phy() before initializing phys")
>>> revert f54edb539c11 ("usb: dwc3: core: initialize ULPI before trying to get the PHY")
>>>
>>> So looks like this will break ULPI PHY case?
>>>
>>> Where do we initialize ULPI PHY, in dwc3_phy_setup()?
>>>
>>> if so then 541768b08a40 breaks the ULPI PHY case as well, right?
>>
>> indeed, that commit regressed ULPI PHYs :-(
>>
>> Seems like it should be more like below:
>>
>> @@ -754,15 +754,15 @@ static int dwc3_core_init(struct dwc3 *dwc)
>> dwc->maximum_speed = USB_SPEED_HIGH;
>> }
>>
>> - ret = dwc3_core_get_phy(dwc);
>> + ret = dwc3_phy_setup(dwc);
>
> But can we do a dwc3_phy_setup() without doing the soft reset of the controller first?
as long as clocks are running, we can do that, yes.
>> - ret = dwc3_core_soft_reset(dwc);
>> + ret = dwc3_core_get_phy(dwc);
>
> we can get_phy in dwc3_core_init() as it will get called on resume().
> This was the $subject of this patch.
indeed. thanks :-)
--
balbi
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
next reply other threads:[~2018-01-10 14:04 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-10 14:04 Felipe Balbi [this message]
2018-01-10 14:04 ` [PATCH] usb: dwc3: core: Don't try to get PHYs during suspend/resume Felipe Balbi
-- strict thread matches above, loose matches on Subject: below --
2018-01-11 9:46 Roger Quadros
2018-01-11 9:46 ` [PATCH] " Roger Quadros
2018-01-11 9:31 Felipe Balbi
2018-01-11 9:31 ` [PATCH] " Felipe Balbi
2018-01-11 9:23 Roger Quadros
2018-01-11 9:23 ` [PATCH] " Roger Quadros
2018-01-11 9:09 Roger Quadros
2018-01-11 9:09 ` [PATCH] " Roger Quadros
2018-01-11 8:25 Felipe Balbi
2018-01-11 8:25 ` [PATCH] " Felipe Balbi
2018-01-10 14:13 Roger Quadros
2018-01-10 14:13 ` [PATCH] " Roger Quadros
2018-01-10 13:56 Roger Quadros
2018-01-10 13:56 ` [PATCH] " Roger Quadros
2018-01-10 13:33 Felipe Balbi
2018-01-10 13:33 ` [PATCH] " Felipe Balbi
2018-01-10 13:24 Roger Quadros
2018-01-10 13:24 ` [PATCH] " Roger Quadros
2018-01-10 13:11 Roger Quadros
2018-01-10 13:11 ` [PATCH] " Roger Quadros
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=87wp0pyfmo.fsf@linux.intel.com \
--to=balbi@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=rogerq@ti.com \
--cc=stable@vger.kernel.org \
--cc=vigneshr@ti.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.