Re: [PATCH v6] usb: common: usb-conn-gpio: Set last role to unknown before initial detection

From: Greg Kroah-Hartman
Date: Tue May 30 2023 - 12:43:35 EST


On Tue, May 30, 2023 at 08:56:26PM +0530, Prashanth K wrote:
>
>
> On 30-05-23 07:58 pm, Greg Kroah-Hartman wrote:
> > On Tue, May 30, 2023 at 10:14:31AM +0530, Prashanth K wrote:
> > > Currently if we bootup a device without cable connected, then
> > > usb-conn-gpio won't call set_role() since last_role is same as
> > > current role. This happens because during probe last_role gets
> > > initialised to zero.
> > >
> > > To avoid this, added a new constant in enum usb_role, last_role
> > > is set to USB_ROLE_UNKNOWN before performing initial detection.
> > >
> > > While at it, also handle default case for the usb_role switch
> > > in cdns3 to avoid build warnings.
> > >
> > > Fixes: 4602f3bff266 ("usb: common: add USB GPIO based connection detection driver")
> > > Signed-off-by: Prashanth K <quic_prashk@xxxxxxxxxxx>
> >
> > Breaks the build :(
> >
> > Please be more careful when submitting stuff, especially on v6 of a
> > patch :(
>
> Hi, sorry for the trouble, I didn't see any issue in while building locally
> nor any warning/errors from test robot. Can you please point me to the error
> report if available. If the build is breaking due to enum value
> USB_ROLE_UNKNOWN unhandled in switch cases of other drivers, then i will
> revert thing back to v1 where i used a macro for USB_ROLE_UNKNOWN in
> usb-conn-gpio driver. Something like this in usb-conn-gpio.c would can help
> us avoid adding default case in other drivers using usb_role.
>
> #define USB_ROLE_UNKNWON (USB_ROLE_NONE - 1)

Just fix up the drivers that need it at the same time:

CC [M] drivers/usb/roles/intel-xhci-usb-role-switch.o
drivers/usb/roles/intel-xhci-usb-role-switch.c: In function ‘intel_xhci_usb_set_role’:
drivers/usb/roles/intel-xhci-usb-role-switch.c:84:9: error: enumeration value ‘USB_ROLE_UNKNOWN’ not handled in switch [-Werror=switch]
84 | switch (role) {
| ^~~~~~
cc1: all warnings being treated as errors

thanks,

greg k-h