[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87blsgl88s.fsf@gmail.com>
Date: Tue, 10 Dec 2019 13:39:47 +0200
From: Felipe Balbi <balbi@...nel.org>
To: Martin Kepplinger <martin.kepplinger@...i.sm>,
linux-usb@...r.kernel.org, gregkh@...uxfoundation.org
Cc: kernel@...i.sm, linux-kernel@...r.kernel.org,
p.zabel@...gutronix.de
Subject: Re: suspend problem with dwc3 gadget / g_multi when usb disconnected
Hi,
Martin Kepplinger <martin.kepplinger@...i.sm> writes:
> I'm running today's linux-next with this defconfig on a librem 5 devkit:
>
> https://source.puri.sm/martin.kepplinger/linux-next/blob/next-20191205/librem5/arch/arm64/configs/librem5_defconfig
>
> So I want to have host and gadget mode (G_MULTI, most importantly a
> serial ACM console), and I'm having trouble with S3 suspend:
>
> * The most interesting case here: When I boot with USB disconnected
> (from the battery) I can't suspend or unload dwc3. After "echo mem >
> /sys/power/state" I get nothing in the my logs except
>
> [ 18.107380] PM: suspend entry (deep)
>
> and the system hangs. similarly, I can't work around this by rmmod -f
> dwc3. What can go wrong here? I don't know enough about usb hci and why
> this shouldn't work. What can I do to help you here?
>
> * When I boot with USB connected, then unplug USB, I get:
>
> [ 19.289602] dwc3 38100000.usb: request 000000006a19695c was not
> queued to ep3in
please capture ftrace logs from dwc3. We have documentation for this:
https://www.kernel.org/doc/html/latest/driver-api/usb/dwc3.html
(note to self: update email address :-)
> and then try to suspend:
>
> root@...eos:/home/purism# echo mem > /sys/power/state
> [ 37.863066] xhci-hcd xhci-hcd.0.auto: xHCI host controller not
> responding, assume dead
> [ 37.871345] xhci-hcd xhci-hcd.0.auto: HC died; cleaning up
> [ 37.877260] PM: dpm_run_callback(): platform_pm_suspend+0x0/0x78
> returns -22
> [ 37.884626] PM: Device xhci-hcd.0.auto failed to suspend async: error -22
> [ 37.891728] PM: Some devices failed to suspend, or early wake event
> detected
> bash: echo: write error: Invalid argument
>
>
> * When I keep USB connected, the behaviour is similar actually, but
> rmmod works (but that use-case is not that interesting to me).
>
>
> Since my experience with USB drivers is limited, I'm glad to hear about
> any of your experience with dwc3- or more general gadget-problems with
> suspend and that or a similar configuration.
>
> Without G_MULTI and dwc3 host-only, suspend works btw. And all the above
> is basically identical on previous stable kernels too.
Have you tried any other gadget drivers or just g-multi? Care to try
with something simple like g-zero?
cheers
--
balbi
Download attachment "signature.asc" of type "application/pgp-signature" (833 bytes)
Powered by blists - more mailing lists