[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5082d743-54b1-7b4c-432c-dfdce1bb772a@kernel.org>
Date: Mon, 15 May 2023 14:01:08 +0300
From: Roger Quadros <rogerq@...nel.org>
To: Stephen Rothwell <sfr@...b.auug.org.au>, Greg KH <greg@...ah.com>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Krishna Kurapati <quic_kriskura@...cinc.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Linux Next Mailing List <linux-next@...r.kernel.org>
Subject: Re: linux-next: manual merge of the usb tree with the usb.current
tree
Hi Stephen,
On 15/05/2023 05:35, Stephen Rothwell wrote:
> Hi all,
>
> Today's linux-next merge of the usb tree got a conflict in:
>
> drivers/usb/dwc3/gadget.c
>
> between commit:
>
> c8540870af4c ("usb: dwc3: gadget: Improve dwc3_gadget_suspend() and dwc3_gadget_resume()")
>
> from the usb.current tree and commit:
>
> 813f44d57e19 ("usb: dwc3: gadget: Bail out in pullup if soft reset timeout happens")
>
> from the usb tree.
>
> I fixed it up (I think - see below) and can carry the fix as
> necessary. This is now fixed as far as linux-next is concerned, but any
> non trivial conflicts should be mentioned to your upstream maintainer
> when your tree is submitted for merging. You may also want to consider
> cooperating with the maintainer of the conflicting tree to minimise any
> particularly complex conflicts.
>
> diff --cc drivers/usb/dwc3/gadget.c
> index d831f5acf7b5,5965796bc5d5..000000000000
> --- a/drivers/usb/dwc3/gadget.c
> +++ b/drivers/usb/dwc3/gadget.c
> @@@ -2700,21 -2699,6 +2700,26 @@@ static int dwc3_gadget_soft_disconnect(
> return ret;
> }
>
> +static int dwc3_gadget_soft_connect(struct dwc3 *dwc)
> +{
> ++ int ret;
> ++
> + /*
> + * In the Synopsys DWC_usb31 1.90a programming guide section
> + * 4.1.9, it specifies that for a reconnect after a
> + * device-initiated disconnect requires a core soft reset
> + * (DCTL.CSftRst) before enabling the run/stop bit.
> + */
> + dwc3_core_soft_reset(dwc);
Please drop above call to dwc3_core_soft_reset().
> ++ ret = dwc3_core_soft_reset(dwc);
> ++ if (ret)
> ++ return ret;
> +
> + dwc3_event_buffers_setup(dwc);
> + __dwc3_gadget_start(dwc);
> + return dwc3_gadget_run_stop(dwc, true);
> +}
> +
> static int dwc3_gadget_pullup(struct usb_gadget *g, int is_on)
> {
> struct dwc3 *dwc = gadget_to_dwc(g);
--
cheers,
-roger
Powered by blists - more mailing lists