Skip to content

Commit 7ba427e

Browse files
dlechdpgeorge
authored andcommitted
F7_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 00fa318 commit 7ba427e

File tree

4 files changed

+28
-28
lines changed

4 files changed

+28
-28
lines changed

STM32F7xx_HAL_Driver/Inc/stm32f7xx_ll_usb.h

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

406406
/* Exported functions --------------------------------------------------------*/
407-
HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef Init);
408-
HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef Init);
407+
HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, const USB_OTG_CfgTypeDef *Init);
408+
HAL_StatusTypeDef USB_DevInit(USB_OTG_GlobalTypeDef *USBx, const USB_OTG_CfgTypeDef *Init);
409409
HAL_StatusTypeDef USB_EnableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
410410
HAL_StatusTypeDef USB_DisableGlobalInt(USB_OTG_GlobalTypeDef *USBx);
411411
HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx , USB_OTG_ModeTypeDef mode);
@@ -437,7 +437,7 @@ uint32_t USB_ReadDevAllInEpInterrupt (USB_OTG_GlobalTypeDef *USBx);
437437
uint32_t USB_ReadDevInEPInterrupt (USB_OTG_GlobalTypeDef *USBx , uint8_t epnum);
438438
void USB_ClearInterrupts (USB_OTG_GlobalTypeDef *USBx, uint32_t interrupt);
439439

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

STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_hcd.c

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

146146
/*Init the Core (common init.) */
147-
USB_CoreInit(hhcd->Instance, hhcd->Init);
147+
USB_CoreInit(hhcd->Instance, &hhcd->Init);
148148

149149
/* Force Host Mode*/
150150
USB_SetCurrentMode(hhcd->Instance , USB_OTG_HOST_MODE);
151151

152152
/* Init Host */
153-
USB_HostInit(hhcd->Instance, hhcd->Init);
153+
USB_HostInit(hhcd->Instance, &hhcd->Init);
154154

155155
hhcd->State= HAL_HCD_STATE_READY;
156156

STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pcd.c

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

156156
/*Init the Core (common init.) */
157-
USB_CoreInit(hpcd->Instance, hpcd->Init);
157+
USB_CoreInit(hpcd->Instance, &hpcd->Init);
158158

159159
/* Force Device Mode*/
160160
USB_SetCurrentMode(hpcd->Instance , USB_OTG_DEVICE_MODE);
@@ -188,7 +188,7 @@ HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd)
188188
}
189189

190190
/* Init Device */
191-
USB_DevInit(hpcd->Instance, hpcd->Init);
191+
USB_DevInit(hpcd->Instance, &hpcd->Init);
192192

193193
hpcd->State= HAL_PCD_STATE_READY;
194194

STM32F7xx_HAL_Driver/Src/stm32f7xx_ll_usb.c

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,9 @@ static HAL_StatusTypeDef USB_HS_PHYCInit(USB_OTG_GlobalTypeDef *USBx);
108108
* the configuration information for the specified USBx peripheral.
109109
* @retval HAL status
110110
*/
111-
HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg)
111+
HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, const USB_OTG_CfgTypeDef *cfg)
112112
{
113-
if (cfg.phy_itface == USB_OTG_ULPI_PHY)
113+
if (cfg->phy_itface == USB_OTG_ULPI_PHY)
114114
{
115115

116116
USBx->GCCFG &= ~(USB_OTG_GCCFG_PWRDWN);
@@ -120,7 +120,7 @@ HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
120120

121121
/* Select vbus source */
122122
USBx->GUSBCFG &= ~(USB_OTG_GUSBCFG_ULPIEVBUSD | USB_OTG_GUSBCFG_ULPIEVBUSI);
123-
if(cfg.use_external_vbus == 1)
123+
if(cfg->use_external_vbus == 1)
124124
{
125125
USBx->GUSBCFG |= USB_OTG_GUSBCFG_ULPIEVBUSD;
126126
}
@@ -146,7 +146,7 @@ HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
146146
/* Enables control of a High Speed USB PHY */
147147
USB_HS_PHYCInit(USBx);
148148

149-
if(cfg.use_external_vbus == 1)
149+
if(cfg->use_external_vbus == 1)
150150
{
151151
USBx->GUSBCFG |= USB_OTG_GUSBCFG_ULPIEVBUSD;
152152
}
@@ -167,7 +167,7 @@ HAL_StatusTypeDef USB_CoreInit(USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
167167
USBx->GCCFG = USB_OTG_GCCFG_PWRDWN;
168168
}
169169

170-
if(cfg.dma_enable == ENABLE)
170+
if(cfg->dma_enable == ENABLE)
171171
{
172172
USBx->GAHBCFG |= USB_OTG_GAHBCFG_HBSTLEN_2;
173173
USBx->GAHBCFG |= USB_OTG_GAHBCFG_DMAEN;
@@ -236,14 +236,14 @@ HAL_StatusTypeDef USB_SetCurrentMode(USB_OTG_GlobalTypeDef *USBx , USB_OTG_ModeT
236236
* the configuration information for the specified USBx peripheral.
237237
* @retval HAL status
238238
*/
239-
HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg)
239+
HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, const USB_OTG_CfgTypeDef *cfg)
240240
{
241241
uint32_t i = 0;
242242

243243
/*Activate VBUS Sensing B */
244244
USBx->GCCFG |= USB_OTG_GCCFG_VBDEN;
245245

246-
if (cfg.vbus_sensing_enable == 0)
246+
if (cfg->vbus_sensing_enable == 0)
247247
{
248248
/* Deactivate VBUS Sensing B */
249249
USBx->GCCFG &= ~ USB_OTG_GCCFG_VBDEN;
@@ -259,9 +259,9 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
259259
/* Device mode configuration */
260260
USBx_DEVICE->DCFG |= DCFG_FRAME_INTERVAL_80;
261261

262-
if(cfg.phy_itface == USB_OTG_ULPI_PHY)
262+
if(cfg->phy_itface == USB_OTG_ULPI_PHY)
263263
{
264-
if(cfg.speed == USB_OTG_SPEED_HIGH)
264+
if(cfg->speed == USB_OTG_SPEED_HIGH)
265265
{
266266
/* Set High speed phy */
267267
USB_SetDevSpeed (USBx , USB_OTG_SPEED_HIGH);
@@ -273,9 +273,9 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
273273
}
274274
}
275275

276-
else if(cfg.phy_itface == USB_OTG_HS_EMBEDDED_PHY)
276+
else if(cfg->phy_itface == USB_OTG_HS_EMBEDDED_PHY)
277277
{
278-
if(cfg.speed == USB_OTG_SPEED_HIGH)
278+
if(cfg->speed == USB_OTG_SPEED_HIGH)
279279
{
280280
/* Set High speed phy */
281281
USB_SetDevSpeed (USBx , USB_OTG_SPEED_HIGH);
@@ -303,7 +303,7 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
303303
USBx_DEVICE->DAINT = 0xFFFFFFFF;
304304
USBx_DEVICE->DAINTMSK = 0;
305305

306-
for (i = 0; i < cfg.dev_endpoints; i++)
306+
for (i = 0; i < cfg->dev_endpoints; i++)
307307
{
308308
if ((USBx_INEP(i)->DIEPCTL & USB_OTG_DIEPCTL_EPENA) == USB_OTG_DIEPCTL_EPENA)
309309
{
@@ -318,7 +318,7 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
318318
USBx_INEP(i)->DIEPINT = 0xFF;
319319
}
320320

321-
for (i = 0; i < cfg.dev_endpoints; i++)
321+
for (i = 0; i < cfg->dev_endpoints; i++)
322322
{
323323
if ((USBx_OUTEP(i)->DOEPCTL & USB_OTG_DOEPCTL_EPENA) == USB_OTG_DOEPCTL_EPENA)
324324
{
@@ -335,7 +335,7 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
335335

336336
USBx_DEVICE->DIEPMSK &= ~(USB_OTG_DIEPMSK_TXFURM);
337337

338-
if (cfg.dma_enable == 1)
338+
if (cfg->dma_enable == 1)
339339
{
340340
/*Set threshold parameters */
341341
USBx_DEVICE->DTHRCTL = (USB_OTG_DTHRCTL_TXTHRLEN_6 | USB_OTG_DTHRCTL_RXTHRLEN_6);
@@ -351,7 +351,7 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
351351
USBx->GINTSTS = 0xBFFFFFFF;
352352

353353
/* Enable the common interrupts */
354-
if (cfg.dma_enable == DISABLE)
354+
if (cfg->dma_enable == DISABLE)
355355
{
356356
USBx->GINTMSK |= USB_OTG_GINTMSK_RXFLVLM;
357357
}
@@ -362,12 +362,12 @@ HAL_StatusTypeDef USB_DevInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef c
362362
USB_OTG_GINTMSK_OEPINT | USB_OTG_GINTMSK_IISOIXFRM|\
363363
USB_OTG_GINTMSK_PXFRM_IISOOXFRM | USB_OTG_GINTMSK_WUIM);
364364

365-
if(cfg.Sof_enable)
365+
if(cfg->Sof_enable)
366366
{
367367
USBx->GINTMSK |= USB_OTG_GINTMSK_SOFM;
368368
}
369369

370-
if (cfg.vbus_sensing_enable == ENABLE)
370+
if (cfg->vbus_sensing_enable == ENABLE)
371371
{
372372
USBx->GINTMSK |= (USB_OTG_GINTMSK_SRQIM | USB_OTG_GINTMSK_OTGINT);
373373
}
@@ -1233,7 +1233,7 @@ static HAL_StatusTypeDef USB_HS_PHYCInit(USB_OTG_GlobalTypeDef *USBx)
12331233
* the configuration information for the specified USBx peripheral.
12341234
* @retval HAL status
12351235
*/
1236-
HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef cfg)
1236+
HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, const USB_OTG_CfgTypeDef *cfg)
12371237
{
12381238
uint32_t i;
12391239

@@ -1244,7 +1244,7 @@ HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef
12441244
USBx->GCCFG |= USB_OTG_GCCFG_VBDEN;
12451245

12461246
/* Disable the FS/LS support mode only */
1247-
if((cfg.speed == USB_OTG_SPEED_FULL)&&
1247+
if((cfg->speed == USB_OTG_SPEED_FULL)&&
12481248
(USBx != USB_OTG_FS))
12491249
{
12501250
USBx_HOST->HCFG |= USB_OTG_HCFG_FSLSS;
@@ -1259,7 +1259,7 @@ HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef
12591259
USB_FlushRxFifo(USBx);
12601260

12611261
/* Clear all pending HC Interrupts */
1262-
for (i = 0; i < cfg.Host_channels; i++)
1262+
for (i = 0; i < cfg->Host_channels; i++)
12631263
{
12641264
USBx_HC(i)->HCINT = 0xFFFFFFFF;
12651265
USBx_HC(i)->HCINTMSK = 0;
@@ -1292,7 +1292,7 @@ HAL_StatusTypeDef USB_HostInit (USB_OTG_GlobalTypeDef *USBx, USB_OTG_CfgTypeDef
12921292
}
12931293

12941294
/* Enable the common interrupts */
1295-
if (cfg.dma_enable == DISABLE)
1295+
if (cfg->dma_enable == DISABLE)
12961296
{
12971297
USBx->GINTMSK |= USB_OTG_GINTMSK_RXFLVLM;
12981298
}

0 commit comments

Comments
 (0)