lkml.org 
[lkml]   [2020]   [Jul]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH 6/7] usb: dwc3: Add support for a role-switch notifier
On Wed, Mar 11, 2020 at 07:15:00PM +0000, Bryan O'Donoghue wrote:
> diff --git a/drivers/usb/dwc3/drd.c b/drivers/usb/dwc3/drd.c
> index 2705871ec95e..789e93dd93b4 100644
> --- a/drivers/usb/dwc3/drd.c
> +++ b/drivers/usb/dwc3/drd.c
> @@ -497,6 +497,8 @@ static int dwc3_usb_role_switch_set(struct usb_role_switch *sw, enum usb_role ro
> }
>
> dwc3_set_mode(dwc, mode);
> + raw_notifier_call_chain(&dwc->role_sw_nl, mode, NULL);
> +
> return 0;
> }

dwc3_set_mode() is called from a bunch of other places too, is it
sufficient to call the notifier only from here? Also, dwc3_set_mode()
performs the mode set asynchronously so the mode switch can race with
this notifier call, is that OK?

Mike Looijmans proposed the control of a vbus regulator from
__dwc3_set_mode(), and that would take care of both the points above.
Perhaps this notifier call can be moved to the same place or perhaps
Mike's patch could even work for you? The only problem is that your
switching code in dwc3-qcom.c would have to be modelled as a reulator:

https://lore.kernel.org/linux-usb/20200619142512.19824-1-mike.looijmans@topic.nl/

\
 
 \ /
  Last update: 2020-07-23 10:15    [W:0.090 / U:0.128 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site