Re: [PATCH v2] usb: dwc2: Fix build in periphal-only mode

From: Greg Kroah-Hartman
Date: Fri May 28 2021 - 05:23:27 EST


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