Skip to content

Commit 00fa318

Browse files
dlechdpgeorge
authored andcommitted
F4_HAL/usb: Pass USB_OTG_CfgTypeDef by reference.
USB_OTG_CfgTypeDef is a large struct, so passing by reference should be more efficient in terms of stack usage and code size. Signed-off-by: David Lechner <[email protected]>
1 parent 713b342 commit 00fa318

File tree

4 files changed

+26
-26
lines changed

4 files changed

+26
-26
lines changed

STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -405,8 +405,8 @@ typedef struct
405405
#define CLEAR_OUT_EP_INTR(__EPNUM__, __INTERRUPT__) (USBx_OUTEP(__EPNUM__)->DOEPINT = (__INTERRUPT__))
406406

407407
/* Exported functions --------------------------------------------------------*/
408-
HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef Init);
409-
HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef Init);
408+
HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, const USB_OTG_CfgTypeDef *Init);
409+
HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, const USB_OTG_CfgTypeDef *Init);
410410
HAL_StatusTypeDef USB_EnableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
411411
HAL_StatusTypeDef USB_DisableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
412412
HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx , USB_OTG_ModeTypeDef mode);
@@ -438,7 +438,7 @@ uint32_t USB_ReadDevAllInEpInterrupt (USB_OTG_GlobalTypeDef *USBx);
438438
uint32_t USB_ReadDevInEPInterrupt (USB_OTG_GlobalTypeDef *USBx , uint8_t epnum);
439439
void USB_ClearInterrupts (USB_OTG_GlobalTypeDef *USBx, uint32_t interrupt);
440440

441-
HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg);
441+
HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, const USB_OTG_CfgTypeDef *cfg);
442442
HAL_StatusTypeDef USB_InitFSLSPClkSel(USB_OTG_GlobalTypeDef *USBx , uint8_t freq);
443443
HAL_StatusTypeDef USB_ResetPort(USB_OTG_GlobalTypeDef *USBx);
444444
HAL_StatusTypeDef USB_DriveVbus (USB_OTG_GlobalTypeDef *USBx, uint8_t state);

STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,13 @@ HAL_StatusTypeDef HAL_HCD_Init(HCD_HandleTypeDef *hhcd)
148148
__HAL_HCD_DISABLE(hhcd);
149149

150150
/* Init the Core (common init.) */
151-
USB_CoreInit(hhcd->Instance, hhcd->Init);
151+
USB_CoreInit(hhcd->Instance, &hhcd->Init);
152152

153153
/* Force Host Mode*/
154154
USB_SetCurrentMode(hhcd->Instance , USB_OTG_HOST_MODE);
155155

156156
/* Init Host */
157-
USB_HostInit(hhcd->Instance, hhcd->Init);
157+
USB_HostInit(hhcd->Instance, &hhcd->Init);
158158

159159
hhcd->State= HAL_HCD_STATE_READY;
160160

STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd)
158158
__HAL_PCD_DISABLE(hpcd);
159159

160160
/*Init the Core (common init.) */
161-
USB_CoreInit(hpcd->Instance, hpcd->Init);
161+
USB_CoreInit(hpcd->Instance, &hpcd->Init);
162162

163163
/* Force Device Mode*/
164164
USB_SetCurrentMode(hpcd->Instance , USB_OTG_DEVICE_MODE);
@@ -192,7 +192,7 @@ HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd)
192192
}
193193

194194
/* Init Device */
195-
USB_DevInit(hpcd->Instance, hpcd->Init);
195+
USB_DevInit(hpcd->Instance, &hpcd->Init);
196196

197197
hpcd->State= HAL_PCD_STATE_READY;
198198

STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,9 @@ static HAL_StatusTypeDef USB_CoreReset(USB_OTG_GlobalTypeDef *USBx);
109109
* the configuration information for the specified USBx peripheral.
110110
* @retval HAL status
111111
*/
112-
HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg)
112+
HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, const USB_OTG_CfgTypeDef *cfg)
113113
{
114-
if (cfg.phy_itface == USB_OTG_ULPI_PHY)
114+
if (cfg->phy_itface == USB_OTG_ULPI_PHY)
115115
{
116116

117117
USBx->GCCFG &= ~(USB_OTG_GCCFG_PWRDWN);
@@ -121,7 +121,7 @@ HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
121121

122122
/* Select vbus source */
123123
USBx->GUSBCFG &= ~(USB_OTG_GUSBCFG_ULPIEVBUSD | USB_OTG_GUSBCFG_ULPIEVBUSI);
124-
if(cfg.use_external_vbus == 1U)
124+
if(cfg->use_external_vbus == 1U)
125125
{
126126
USBx->GUSBCFG |= USB_OTG_GUSBCFG_ULPIEVBUSD;
127127
}
@@ -140,7 +140,7 @@ HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
140140
USBx->GCCFG = USB_OTG_GCCFG_PWRDWN;
141141
}
142142

143-
if(cfg.dma_enable == ENABLE)
143+
if(cfg->dma_enable == ENABLE)
144144
{
145145
USBx->GAHBCFG |= USB_OTG_GAHBCFG_HBSTLEN_2;
146146
USBx->GAHBCFG |= USB_OTG_GAHBCFG_DMAEN;
@@ -209,7 +209,7 @@ HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx , USB_OTG_ModeT
209209
* the configuration information for the specified USBx peripheral.
210210
* @retval HAL status
211211
*/
212-
HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg)
212+
HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, const USB_OTG_CfgTypeDef *cfg)
213213
{
214214
uint32_t i = 0U;
215215

@@ -218,7 +218,7 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
218218
defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx)
219219
USBx->GCCFG |= USB_OTG_GCCFG_VBDEN;
220220

221-
if (cfg.vbus_sensing_enable == 0U)
221+
if (cfg->vbus_sensing_enable == 0U)
222222
{
223223
/* Deactivate VBUS Sensing B */
224224
USBx->GCCFG &= ~USB_OTG_GCCFG_VBDEN;
@@ -228,7 +228,7 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
228228
USBx->GOTGCTL |= USB_OTG_GOTGCTL_BVALOVAL;
229229
}
230230
#else
231-
if (cfg.vbus_sensing_enable == 0U)
231+
if (cfg->vbus_sensing_enable == 0U)
232232
{
233233
USBx->GCCFG |= USB_OTG_GCCFG_NOVBUSSENS;
234234
}
@@ -245,9 +245,9 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
245245
/* Device mode configuration */
246246
USBx_DEVICE->DCFG |= DCFG_FRAME_INTERVAL_80;
247247

248-
if(cfg.phy_itface == USB_OTG_ULPI_PHY)
248+
if(cfg->phy_itface == USB_OTG_ULPI_PHY)
249249
{
250-
if(cfg.speed == USB_OTG_SPEED_HIGH)
250+
if(cfg->speed == USB_OTG_SPEED_HIGH)
251251
{
252252
/* Set High speed phy */
253253
USB_SetDevSpeed (USBx , USB_OTG_SPEED_HIGH);
@@ -274,7 +274,7 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
274274
USBx_DEVICE->DAINT = 0xFFFFFFFFU;
275275
USBx_DEVICE->DAINTMSK = 0U;
276276

277-
for (i = 0U; i < cfg.dev_endpoints; i++)
277+
for (i = 0U; i < cfg->dev_endpoints; i++)
278278
{
279279
if ((USBx_INEP(i)->DIEPCTL & USB_OTG_DIEPCTL_EPENA) == USB_OTG_DIEPCTL_EPENA)
280280
{
@@ -289,7 +289,7 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
289289
USBx_INEP(i)->DIEPINT = 0xFFU;
290290
}
291291

292-
for (i = 0U; i < cfg.dev_endpoints; i++)
292+
for (i = 0U; i < cfg->dev_endpoints; i++)
293293
{
294294
if ((USBx_OUTEP(i)->DOEPCTL & USB_OTG_DOEPCTL_EPENA) == USB_OTG_DOEPCTL_EPENA)
295295
{
@@ -306,7 +306,7 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
306306

307307
USBx_DEVICE->DIEPMSK &= ~(USB_OTG_DIEPMSK_TXFURM);
308308

309-
if (cfg.dma_enable == 1U)
309+
if (cfg->dma_enable == 1U)
310310
{
311311
/*Set threshold parameters */
312312
USBx_DEVICE->DTHRCTL = (USB_OTG_DTHRCTL_TXTHRLEN_6 | USB_OTG_DTHRCTL_RXTHRLEN_6);
@@ -322,7 +322,7 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
322322
USBx->GINTSTS = 0xBFFFFFFFU;
323323

324324
/* Enable the common interrupts */
325-
if (cfg.dma_enable == DISABLE)
325+
if (cfg->dma_enable == DISABLE)
326326
{
327327
USBx->GINTMSK |= USB_OTG_GINTMSK_RXFLVLM;
328328
}
@@ -333,12 +333,12 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
333333
USB_OTG_GINTMSK_OEPINT | USB_OTG_GINTMSK_IISOIXFRM|\
334334
USB_OTG_GINTMSK_PXFRM_IISOOXFRM | USB_OTG_GINTMSK_WUIM);
335335

336-
if(cfg.Sof_enable)
336+
if(cfg->Sof_enable)
337337
{
338338
USBx->GINTMSK |= USB_OTG_GINTMSK_SOFM;
339339
}
340340

341-
if (cfg.vbus_sensing_enable == ENABLE)
341+
if (cfg->vbus_sensing_enable == ENABLE)
342342
{
343343
USBx->GINTMSK |= (USB_OTG_GINTMSK_SRQIM | USB_OTG_GINTMSK_OTGINT);
344344
}
@@ -1239,7 +1239,7 @@ static HAL_StatusTypeDef USB_CoreReset(USB_OTG_GlobalTypeDef *USBx)
12391239
* the configuration information for the specified USBx peripheral.
12401240
* @retval HAL status
12411241
*/
1242-
HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg)
1242+
HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, const USB_OTG_CfgTypeDef *cfg)
12431243
{
12441244
uint32_t i;
12451245

@@ -1257,7 +1257,7 @@ HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef
12571257
#endif /* STM32F446xx || STM32F469xx || STM32F479xx || STM32F412Zx || STM32F412Rx || STM32F412Vx || STM32F412Cx || STM32F413xx || STM32F423xx */
12581258

12591259
/* Disable the FS/LS support mode only */
1260-
if((cfg.speed == USB_OTG_SPEED_FULL)&&
1260+
if((cfg->speed == USB_OTG_SPEED_FULL)&&
12611261
(USBx != USB_OTG_FS))
12621262
{
12631263
USBx_HOST->HCFG |= USB_OTG_HCFG_FSLSS;
@@ -1272,7 +1272,7 @@ HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef
12721272
USB_FlushRxFifo(USBx);
12731273

12741274
/* Clear all pending HC Interrupts */
1275-
for (i = 0U; i < cfg.Host_channels; i++)
1275+
for (i = 0U; i < cfg->Host_channels; i++)
12761276
{
12771277
USBx_HC(i)->HCINT = 0xFFFFFFFFU;
12781278
USBx_HC(i)->HCINTMSK = 0U;
@@ -1305,7 +1305,7 @@ HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef
13051305
}
13061306

13071307
/* Enable the common interrupts */
1308-
if (cfg.dma_enable == DISABLE)
1308+
if (cfg->dma_enable == DISABLE)
13091309
{
13101310
USBx->GINTMSK |= USB_OTG_GINTMSK_RXFLVLM;
13111311
}

0 commit comments

Comments
 (0)