From cacb10242cfd0a6eebefb73fe914a84b1a5b4f52 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Thu, 11 Apr 2013 18:43:47 +0200 Subject: [PATCH] --- yaml --- r: 364127 b: refs/heads/master c: 8284f93b3d8b21e30bd8fde97686433a52b49c58 h: refs/heads/master i: 364125: f7f97e30121182d00d65b65d0448cc43ece6b3bc 364123: 62021189d9651bfc28e4cade57578a71ee2b4608 364119: 120a899dfbb348146913c5760f82f6600046fc4d 364111: 1cba4aa9b7ed46b1bad05baa0a7c214a685bb3a2 364095: 707dbb38bdd865f3b05b2aff02593b7f430e84b9 v: v3 --- [refs] | 2 +- trunk/drivers/staging/dwc2/core.h | 4 ++++ trunk/drivers/staging/dwc2/hcd.c | 12 +++++++++--- trunk/drivers/staging/dwc2/hcd.h | 1 + 4 files changed, 15 insertions(+), 4 deletions(-) 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(