From: Alan Stern <stern@rowland.harvard.edu>
To: Matthias Kaehlcke <mka@chromium.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Rob Herring <robh+dt@kernel.org>,
Frank Rowand <frowand.list@gmail.com>,
linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
Bastien Nocera <hadess@hadess.net>,
Stephen Boyd <swboyd@chromium.org>,
Douglas Anderson <dianders@chromium.org>,
Ravi Chandra Sadineni <ravisadineni@chromium.org>,
Krzysztof Kozlowski <krzk@kernel.org>,
devicetree@vger.kernel.org, Peter Chen <peter.chen@nxp.com>,
"Alexander A. Klimov" <grandmaster@al2klimov.de>,
"David S. Miller" <davem@davemloft.net>,
Johan Hovold <johan@kernel.org>,
Masahiro Yamada <yamada.masahiro@socionext.com>,
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,
Rob Herring <robh@kernel.org>
Subject: Re: [PATCH v4 2/2] USB: misc: Add onboard_usb_hub driver
Date: Tue, 29 Sep 2020 12:00:36 -0400 [thread overview]
Message-ID: <20200929160036.GC173077@rowland.harvard.edu> (raw)
In-Reply-To: <20200929014355.GA1099144@google.com>
On Mon, Sep 28, 2020 at 06:43:55PM -0700, Matthias Kaehlcke wrote:
> > Have you tried manually unbinding and rebinding the two drivers a few
> > times to make sure they will still work?
>
> I went through a few dozen bund/unbind cycles for both drivers and things
> looked good overall, but then last minute I found that determining whether
> wakeup capable devices are connected doesn't always work as (I) expected.
> I didn't see this earlier, it seems to be reproduce more easily after
> unbinding and rebinding the platform driver.
>
> During development I already noticed that usb_wakeup_enabled_descendants()
> returns a cached value, which was a problem for an earlier version of the
> driver. The values are updated by hub_suspend(), my (flawed) assumption
> was that the USB driver would always suspend before the platform driver.
> This generally seems to be the case on my development platform after boot,
> but not necessarily after unbinding and rebinding the driver. Using the
> _suspend_late hook instead of _suspend seems to be a reliable workaround.
Yes, for unrelated (i.e., not in a parent-child relation) devices, the
PM subsystem doesn't guarantee ordering of suspend and resume callbacks.
You can enforce the ordering by using device_pm_wait_for_dev(). But the
suspend_late approach seems like a better solution in this case.
> > I'm a little concerned about all the devm_* stuff in here; does that
> > get released when the driver is unbound from the device or when the device
> > is unregistered? And if the latter, what happens if you have multiple
> > sysfs attribute groups going at the same time?
>
> The memory gets released when the device is unbound:
>
> device_release_driver
> device_release_driver_internal
> __device_release_driver
> devres_release_all
>
> Anyway, if you prefer I can change the driver to use kmalloc/kfree.
No, that's fine. I just wasn't sure about this and wanted to check.
Alan Stern
next prev parent reply other threads:[~2020-09-29 16:00 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-28 17:13 [PATCH v4 1/2] dt-bindings: usb: Add binding for discrete onboard USB hubs Matthias Kaehlcke
2020-09-28 17:13 ` [PATCH v4 2/2] USB: misc: Add onboard_usb_hub driver Matthias Kaehlcke
2020-09-28 18:47 ` Alan Stern
2020-09-29 1:43 ` Matthias Kaehlcke
2020-09-29 16:00 ` Alan Stern [this message]
2020-09-29 16:50 ` Matthias Kaehlcke
2020-09-28 22:03 ` Doug Anderson
2020-09-29 1:59 ` Matthias Kaehlcke
2020-09-28 22:13 ` [PATCH v4 1/2] dt-bindings: usb: Add binding for discrete onboard USB hubs Doug Anderson
2020-09-29 2:14 ` Matthias Kaehlcke
2020-09-29 20:17 ` Rob Herring
2020-09-29 22:09 ` Matthias Kaehlcke
2020-09-30 1:32 ` Alan Stern
2020-09-30 12:49 ` Matthias Kaehlcke
2020-09-30 14:44 ` Rob Herring
2020-09-30 15:28 ` Doug Anderson
2020-09-30 18:00 ` Doug Anderson
2020-09-30 19:19 ` Rob Herring
2020-10-01 21:39 ` Matthias Kaehlcke
2020-09-30 19:19 ` Alan Stern
2020-09-30 20:20 ` Rob Herring
2020-10-01 1:24 ` Alan Stern
2020-10-01 21:54 ` Matthias Kaehlcke
2020-10-02 1:21 ` Alan Stern
2020-10-02 16:08 ` Matthias Kaehlcke
2020-10-02 18:48 ` Alan Stern
2020-10-02 17:08 ` Doug Anderson
2020-10-02 18:36 ` Alan Stern
2020-10-02 22:58 ` Rob Herring
2020-10-03 12:41 ` Alan Stern
2020-10-05 16:06 ` Matthias Kaehlcke
2020-10-05 16:15 ` Alan Stern
2020-10-05 19:18 ` Matthias Kaehlcke
2020-10-05 19:36 ` Alan Stern
2020-10-05 19:59 ` Rob Herring
2020-10-05 23:29 ` Matthias Kaehlcke
2020-10-05 19:36 ` Rob Herring
2020-10-05 19:20 ` Rob Herring
2020-10-02 22:28 ` Rob Herring
2020-10-02 23:09 ` Doug Anderson
2020-10-06 0:45 ` Matthias Kaehlcke
2020-10-06 14:18 ` Alan Stern
2020-10-06 16:59 ` Matthias Kaehlcke
2020-10-06 17:15 ` Alan Stern
2020-10-06 19:25 ` Matthias Kaehlcke
2020-10-07 1:00 ` Alan Stern
2020-10-07 16:03 ` Matthias Kaehlcke
2020-10-07 16:38 ` Alan Stern
2020-10-07 17:28 ` Matthias Kaehlcke
2020-10-07 19:25 ` Alan Stern
2020-10-07 19:42 ` Matthias Kaehlcke
2020-10-07 20:17 ` Alan Stern
2020-10-07 21:42 ` Matthias Kaehlcke
2020-10-08 14:09 ` Alan Stern
2020-10-09 23:13 ` Matthias Kaehlcke
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=20200929160036.GC173077@rowland.harvard.edu \
--to=stern@rowland.harvard.edu \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=frowand.list@gmail.com \
--cc=grandmaster@al2klimov.de \
--cc=gregkh@linuxfoundation.org \
--cc=hadess@hadess.net \
--cc=johan@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mchehab+huawei@kernel.org \
--cc=mka@chromium.org \
--cc=peter.chen@nxp.com \
--cc=ravisadineni@chromium.org \
--cc=robh+dt@kernel.org \
--cc=robh@kernel.org \
--cc=swboyd@chromium.org \
--cc=yamada.masahiro@socionext.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).