diff --git a/[refs] b/[refs] index d34d97a9e494..d24178d0caaf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 050232a73c0d054750a9da92e071e26d4c571f12 +refs/heads/master: 8284f93b3d8b21e30bd8fde97686433a52b49c58 diff --git a/trunk/drivers/staging/dwc2/core.h b/trunk/drivers/staging/dwc2/core.h index 320ed00b6ce7..fc075a7c1de5 100644 --- a/trunk/drivers/staging/dwc2/core.h +++ b/trunk/drivers/staging/dwc2/core.h @@ -162,6 +162,10 @@ enum dwc2_lx_state { * parameters define how the DWC_otg controller should be configured. */ struct dwc2_core_params { + /* + * Don't add any non-int members here, this will break + * dwc2_set_all_params! + */ int otg_cap; int otg_ver; int dma_enable; diff --git a/trunk/drivers/staging/dwc2/hcd.c b/trunk/drivers/staging/dwc2/hcd.c index 4d5f34e72edb..bc9c3c51be75 100644 --- a/trunk/drivers/staging/dwc2/hcd.c +++ b/trunk/drivers/staging/dwc2/hcd.c @@ -2679,8 +2679,15 @@ static void dwc2_hcd_release(struct dwc2_hsotg *hsotg) dwc2_hcd_free(hsotg); } -static void dwc2_set_uninitialized(int *p, int size) +/* + * Sets all parameters to the given value. + * + * Assumes that the dwc2_core_params struct contains only integers. + */ +void dwc2_set_all_params(struct dwc2_core_params *params, int value) { + int *p = (int *)params; + size_t size = sizeof(*params) / sizeof(*p); int i; for (i = 0; i < size; i++) @@ -2789,8 +2796,7 @@ int dwc2_hcd_init(struct dwc2_hsotg *hsotg, int irq, if (!hsotg->core_params) goto error1; - dwc2_set_uninitialized((int *)hsotg->core_params, - sizeof(*hsotg->core_params) / sizeof(int)); + dwc2_set_all_params(hsotg->core_params, -1); /* Validate parameter values */ dwc2_set_parameters(hsotg, params); diff --git a/trunk/drivers/staging/dwc2/hcd.h b/trunk/drivers/staging/dwc2/hcd.h index b9f8780a38de..d071f1a05df1 100644 --- a/trunk/drivers/staging/dwc2/hcd.h +++ b/trunk/drivers/staging/dwc2/hcd.h @@ -452,6 +452,7 @@ extern int dwc2_hcd_init(struct dwc2_hsotg *hsotg, int irq, extern void dwc2_hcd_remove(struct dwc2_hsotg *hsotg); extern int dwc2_set_parameters(struct dwc2_hsotg *hsotg, struct dwc2_core_params *params); +extern void dwc2_set_all_params(struct dwc2_core_params *params, int value); /* Transaction Execution Functions */ extern enum dwc2_transaction_type dwc2_hcd_select_transactions(