On Fri, May 28, 2021 at 10:13:50AM +0100, Phil Elwell wrote: > The bus_suspended member of struct dwc2_hsotg is only present in builds > that support host-mode. > > Fixes: 24d209dba5a3 ("usb: dwc2: Fix hibernation between host and device modes.") > Signed-off-by: Phil Elwell <phil@xxxxxxxxxxxxxxx> > --- > drivers/usb/dwc2/core_intr.c | 4 ++++ > 1 file changed, 4 insertions(+) > > v2: Correct commit hash used in the Fixes line. > > diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c > index a5ab03808da6..03d0c034cf57 100644 > --- a/drivers/usb/dwc2/core_intr.c > +++ b/drivers/usb/dwc2/core_intr.c > @@ -725,7 +725,11 @@ static inline void dwc_handle_gpwrdn_disc_det(struct dwc2_hsotg *hsotg, > dwc2_writel(hsotg, gpwrdn_tmp, GPWRDN); > > hsotg->hibernated = 0; > + > +#if IS_ENABLED(CONFIG_USB_DWC2_HOST) || \ > + IS_ENABLED(CONFIG_USB_DWC2_DUAL_ROLE) > hsotg->bus_suspended = 0; > +#endif > > if (gpwrdn & GPWRDN_IDSTS) { > hsotg->op_state = OTG_STATE_B_PERIPHERAL; > -- > 2.25.1 > I do not understand, the field in the structure is present for all, why is this crazy #if needed here? I see that the commit you reference here did add the new line to set bus_suspended, which seemed to be the point here. Why will the #if values matter here? thanks, greg k-h