Lines Matching refs:hfmac
323 static HAL_StatusTypeDef FMAC_Reset(FMAC_HandleTypeDef *hfmac);
324 static void FMAC_ResetDataPointers(FMAC_HandleTypeDef *hfmac);
325 static void FMAC_ResetOutputStateAndDataPointers(FMAC_HandleTypeDef *hfmac);
326 static void FMAC_ResetInputStateAndDataPointers(FMAC_HandleTypeDef *hfmac);
327 static HAL_StatusTypeDef FMAC_FilterConfig(FMAC_HandleTypeDef *hfmac, FMAC_FilterConfigTypeDef *pCo…
329 static HAL_StatusTypeDef FMAC_FilterPreload(FMAC_HandleTypeDef *hfmac, int16_t *pInput, uint8_t Inp…
331 static void FMAC_WritePreloadDataIncrementPtr(FMAC_HandleTypeDef *hfmac, int16_t **ppData, uint8_t …
332 static HAL_StatusTypeDef FMAC_WaitOnStartUntilTimeout(FMAC_HandleTypeDef *hfmac, uint32_t Tickstart…
333 static HAL_StatusTypeDef FMAC_AppendFilterDataUpdateState(FMAC_HandleTypeDef *hfmac, int16_t *pInpu…
335 static HAL_StatusTypeDef FMAC_ConfigFilterOutputBufferUpdateState(FMAC_HandleTypeDef *hfmac, int16_…
337 static void FMAC_WriteDataIncrementPtr(FMAC_HandleTypeDef *hfmac, uint16_t MaxSizeToWrite);
338 static void FMAC_ReadDataIncrementPtr(FMAC_HandleTypeDef *hfmac, uint16_t MaxSizeToRead);
378 HAL_StatusTypeDef HAL_FMAC_Init(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_Init() argument
383 if (hfmac == NULL) in HAL_FMAC_Init()
389 assert_param(IS_FMAC_ALL_INSTANCE(hfmac->Instance)); in HAL_FMAC_Init()
391 if (hfmac->State == HAL_FMAC_STATE_RESET) in HAL_FMAC_Init()
394 hfmac->Lock = HAL_UNLOCKED; in HAL_FMAC_Init()
398 hfmac->ErrorCallback = HAL_FMAC_ErrorCallback; in HAL_FMAC_Init()
399 hfmac->HalfGetDataCallback = HAL_FMAC_HalfGetDataCallback; in HAL_FMAC_Init()
400 hfmac->GetDataCallback = HAL_FMAC_GetDataCallback; in HAL_FMAC_Init()
401 hfmac->HalfOutputDataReadyCallback = HAL_FMAC_HalfOutputDataReadyCallback; in HAL_FMAC_Init()
402 hfmac->OutputDataReadyCallback = HAL_FMAC_OutputDataReadyCallback; in HAL_FMAC_Init()
403 hfmac->FilterConfigCallback = HAL_FMAC_FilterConfigCallback; in HAL_FMAC_Init()
404 hfmac->FilterPreloadCallback = HAL_FMAC_FilterPreloadCallback; in HAL_FMAC_Init()
406 if (hfmac->MspInitCallback == NULL) in HAL_FMAC_Init()
408 hfmac->MspInitCallback = HAL_FMAC_MspInit; in HAL_FMAC_Init()
412 hfmac->MspInitCallback(hfmac); in HAL_FMAC_Init()
415 HAL_FMAC_MspInit(hfmac); in HAL_FMAC_Init()
420 hfmac->FilterParam = 0U; in HAL_FMAC_Init()
421 FMAC_ResetDataPointers(hfmac); in HAL_FMAC_Init()
424 if (FMAC_Reset(hfmac) == HAL_ERROR) in HAL_FMAC_Init()
427 hfmac->ErrorCode |= HAL_FMAC_ERROR_RESET; in HAL_FMAC_Init()
428 hfmac->State = HAL_FMAC_STATE_TIMEOUT; in HAL_FMAC_Init()
435 hfmac->ErrorCode = HAL_FMAC_ERROR_NONE; in HAL_FMAC_Init()
436 hfmac->State = HAL_FMAC_STATE_READY; in HAL_FMAC_Init()
441 __HAL_UNLOCK(hfmac); in HAL_FMAC_Init()
451 HAL_StatusTypeDef HAL_FMAC_DeInit(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_DeInit() argument
454 if (hfmac == NULL) in HAL_FMAC_DeInit()
460 assert_param(IS_FMAC_ALL_INSTANCE(hfmac->Instance)); in HAL_FMAC_DeInit()
463 hfmac->State = HAL_FMAC_STATE_BUSY; in HAL_FMAC_DeInit()
466 hfmac->ErrorCode = HAL_FMAC_ERROR_NONE; in HAL_FMAC_DeInit()
469 hfmac->FilterParam = 0U; in HAL_FMAC_DeInit()
470 FMAC_ResetDataPointers(hfmac); in HAL_FMAC_DeInit()
473 if (hfmac->MspDeInitCallback == NULL) in HAL_FMAC_DeInit()
475 hfmac->MspDeInitCallback = HAL_FMAC_MspDeInit; in HAL_FMAC_DeInit()
478 hfmac->MspDeInitCallback(hfmac); in HAL_FMAC_DeInit()
481 HAL_FMAC_MspDeInit(hfmac); in HAL_FMAC_DeInit()
485 hfmac->State = HAL_FMAC_STATE_RESET; in HAL_FMAC_DeInit()
488 __HAL_UNLOCK(hfmac); in HAL_FMAC_DeInit()
498 __weak void HAL_FMAC_MspInit(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_MspInit() argument
501 UNUSED(hfmac); in HAL_FMAC_MspInit()
513 __weak void HAL_FMAC_MspDeInit(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_MspDeInit() argument
516 UNUSED(hfmac); in HAL_FMAC_MspDeInit()
545 HAL_StatusTypeDef HAL_FMAC_RegisterCallback(FMAC_HandleTypeDef *hfmac, HAL_FMAC_CallbackIDTypeDef C… in HAL_FMAC_RegisterCallback() argument
551 if (hfmac == NULL) in HAL_FMAC_RegisterCallback()
559 hfmac->ErrorCode |= HAL_FMAC_ERROR_INVALID_CALLBACK; in HAL_FMAC_RegisterCallback()
564 if (hfmac->State == HAL_FMAC_STATE_READY) in HAL_FMAC_RegisterCallback()
569 hfmac->ErrorCallback = pCallback; in HAL_FMAC_RegisterCallback()
573 hfmac->HalfGetDataCallback = pCallback; in HAL_FMAC_RegisterCallback()
577 hfmac->GetDataCallback = pCallback; in HAL_FMAC_RegisterCallback()
581 hfmac->HalfOutputDataReadyCallback = pCallback; in HAL_FMAC_RegisterCallback()
585 hfmac->OutputDataReadyCallback = pCallback; in HAL_FMAC_RegisterCallback()
589 hfmac->FilterConfigCallback = pCallback; in HAL_FMAC_RegisterCallback()
593 hfmac->FilterPreloadCallback = pCallback; in HAL_FMAC_RegisterCallback()
597 hfmac->MspInitCallback = pCallback; in HAL_FMAC_RegisterCallback()
601 hfmac->MspDeInitCallback = pCallback; in HAL_FMAC_RegisterCallback()
606 hfmac->ErrorCode |= HAL_FMAC_ERROR_INVALID_CALLBACK; in HAL_FMAC_RegisterCallback()
613 else if (hfmac->State == HAL_FMAC_STATE_RESET) in HAL_FMAC_RegisterCallback()
618 hfmac->MspInitCallback = pCallback; in HAL_FMAC_RegisterCallback()
622 hfmac->MspDeInitCallback = pCallback; in HAL_FMAC_RegisterCallback()
627 hfmac->ErrorCode |= HAL_FMAC_ERROR_INVALID_CALLBACK; in HAL_FMAC_RegisterCallback()
637 hfmac->ErrorCode |= HAL_FMAC_ERROR_INVALID_CALLBACK; in HAL_FMAC_RegisterCallback()
666 HAL_StatusTypeDef HAL_FMAC_UnRegisterCallback(FMAC_HandleTypeDef *hfmac, HAL_FMAC_CallbackIDTypeDef… in HAL_FMAC_UnRegisterCallback() argument
671 if (hfmac == NULL) in HAL_FMAC_UnRegisterCallback()
676 if (hfmac->State == HAL_FMAC_STATE_READY) in HAL_FMAC_UnRegisterCallback()
681 …hfmac->ErrorCallback = HAL_FMAC_ErrorCallback; /* Legacy weak ErrorCal… in HAL_FMAC_UnRegisterCallback()
685 …hfmac->HalfGetDataCallback = HAL_FMAC_HalfGetDataCallback; /* Legacy weak HalfGetD… in HAL_FMAC_UnRegisterCallback()
689 …hfmac->GetDataCallback = HAL_FMAC_GetDataCallback; /* Legacy weak GetDataC… in HAL_FMAC_UnRegisterCallback()
693 hfmac->HalfOutputDataReadyCallback = HAL_FMAC_HalfOutputDataReadyCallback; /* Legacy weak in HAL_FMAC_UnRegisterCallback()
698 hfmac->OutputDataReadyCallback = HAL_FMAC_OutputDataReadyCallback; /* Legacy weak in HAL_FMAC_UnRegisterCallback()
703 hfmac->FilterConfigCallback = HAL_FMAC_FilterConfigCallback; /* Legacy weak in HAL_FMAC_UnRegisterCallback()
708 …hfmac->FilterPreloadCallback = HAL_FMAC_FilterPreloadCallback; /* Legacy weak FilterPr… in HAL_FMAC_UnRegisterCallback()
712 …hfmac->MspInitCallback = HAL_FMAC_MspInit; /* Legacy weak MspInitC… in HAL_FMAC_UnRegisterCallback()
716 …hfmac->MspDeInitCallback = HAL_FMAC_MspDeInit; /* Legacy weak MspDeIni… in HAL_FMAC_UnRegisterCallback()
721 hfmac->ErrorCode |= HAL_FMAC_ERROR_INVALID_CALLBACK; in HAL_FMAC_UnRegisterCallback()
728 else if (hfmac->State == HAL_FMAC_STATE_RESET) in HAL_FMAC_UnRegisterCallback()
733 hfmac->MspInitCallback = HAL_FMAC_MspInit; in HAL_FMAC_UnRegisterCallback()
737 hfmac->MspDeInitCallback = HAL_FMAC_MspDeInit; in HAL_FMAC_UnRegisterCallback()
742 hfmac->ErrorCode |= HAL_FMAC_ERROR_INVALID_CALLBACK; in HAL_FMAC_UnRegisterCallback()
752 hfmac->ErrorCode |= HAL_FMAC_ERROR_INVALID_CALLBACK; in HAL_FMAC_UnRegisterCallback()
796 HAL_StatusTypeDef HAL_FMAC_FilterConfig(FMAC_HandleTypeDef *hfmac, FMAC_FilterConfigTypeDef *pConfi… in HAL_FMAC_FilterConfig() argument
798 return (FMAC_FilterConfig(hfmac, pConfig, PRELOAD_ACCESS_POLLING)); in HAL_FMAC_FilterConfig()
812 HAL_StatusTypeDef HAL_FMAC_FilterConfig_DMA(FMAC_HandleTypeDef *hfmac, FMAC_FilterConfigTypeDef *pC… in HAL_FMAC_FilterConfig_DMA() argument
814 return (FMAC_FilterConfig(hfmac, pConfig, PRELOAD_ACCESS_DMA)); in HAL_FMAC_FilterConfig_DMA()
836 HAL_StatusTypeDef HAL_FMAC_FilterPreload(FMAC_HandleTypeDef *hfmac, int16_t *pInput, uint8_t InputS… in HAL_FMAC_FilterPreload() argument
839 …return (FMAC_FilterPreload(hfmac, pInput, InputSize, pOutput, OutputSize, PRELOAD_ACCESS_POLLING)); in HAL_FMAC_FilterPreload()
861 HAL_StatusTypeDef HAL_FMAC_FilterPreload_DMA(FMAC_HandleTypeDef *hfmac, int16_t *pInput, uint8_t In… in HAL_FMAC_FilterPreload_DMA() argument
864 return (FMAC_FilterPreload(hfmac, pInput, InputSize, pOutput, OutputSize, PRELOAD_ACCESS_DMA)); in HAL_FMAC_FilterPreload_DMA()
879 HAL_StatusTypeDef HAL_FMAC_FilterStart(FMAC_HandleTypeDef *hfmac, int16_t *pOutput, uint16_t *pOutp… in HAL_FMAC_FilterStart() argument
885 if (FMAC_GET_START_BIT(hfmac) != 0U) in HAL_FMAC_FilterStart()
891 if (hfmac->FilterParam == 0U) in HAL_FMAC_FilterStart()
897 if (hfmac->State == HAL_FMAC_STATE_READY) in HAL_FMAC_FilterStart()
900 hfmac->State = HAL_FMAC_STATE_BUSY; in HAL_FMAC_FilterStart()
903 if (hfmac->InputAccess == FMAC_BUFFER_ACCESS_DMA) in HAL_FMAC_FilterStart()
907 else if (hfmac->InputAccess == FMAC_BUFFER_ACCESS_IT) in HAL_FMAC_FilterStart()
917 if (hfmac->OutputAccess == FMAC_BUFFER_ACCESS_DMA) in HAL_FMAC_FilterStart()
921 else if (hfmac->OutputAccess == FMAC_BUFFER_ACCESS_IT) in HAL_FMAC_FilterStart()
931 MODIFY_REG(hfmac->Instance->CR, \ in HAL_FMAC_FilterStart()
936 status = FMAC_ConfigFilterOutputBufferUpdateState(hfmac, pOutput, pOutputSize); in HAL_FMAC_FilterStart()
941 WRITE_REG(hfmac->Instance->PARAM, (uint32_t)(hfmac->FilterParam)); in HAL_FMAC_FilterStart()
945 hfmac->State = HAL_FMAC_STATE_READY; in HAL_FMAC_FilterStart()
964 HAL_StatusTypeDef HAL_FMAC_AppendFilterData(FMAC_HandleTypeDef *hfmac, int16_t *pInput, uint16_t *p… in HAL_FMAC_AppendFilterData() argument
979 if (FMAC_GET_START_BIT(hfmac) == 0U) in HAL_FMAC_AppendFilterData()
985 if (hfmac->InputAccess == FMAC_BUFFER_ACCESS_NONE) in HAL_FMAC_AppendFilterData()
991 if ((hfmac->pInputSize != NULL) && (hfmac->InputCurrentSize < * (hfmac->pInputSize))) in HAL_FMAC_AppendFilterData()
997 if (hfmac->WrState == HAL_FMAC_STATE_READY) in HAL_FMAC_AppendFilterData()
1000 status = FMAC_AppendFilterDataUpdateState(hfmac, pInput, pInputSize); in HAL_FMAC_AppendFilterData()
1020 HAL_StatusTypeDef HAL_FMAC_ConfigFilterOutputBuffer(FMAC_HandleTypeDef *hfmac, int16_t *pOutput, ui… in HAL_FMAC_ConfigFilterOutputBuffer() argument
1035 if (FMAC_GET_START_BIT(hfmac) == 0U) in HAL_FMAC_ConfigFilterOutputBuffer()
1041 if (hfmac->OutputAccess == FMAC_BUFFER_ACCESS_NONE) in HAL_FMAC_ConfigFilterOutputBuffer()
1047 if ((hfmac->pOutputSize != NULL) && (hfmac->OutputCurrentSize < * (hfmac->pOutputSize))) in HAL_FMAC_ConfigFilterOutputBuffer()
1053 if (hfmac->RdState == HAL_FMAC_STATE_READY) in HAL_FMAC_ConfigFilterOutputBuffer()
1056 status = FMAC_ConfigFilterOutputBufferUpdateState(hfmac, pOutput, pOutputSize); in HAL_FMAC_ConfigFilterOutputBuffer()
1081 HAL_StatusTypeDef HAL_FMAC_PollFilterData(FMAC_HandleTypeDef *hfmac, uint32_t Timeout) in HAL_FMAC_PollFilterData() argument
1091 if (FMAC_GET_START_BIT(hfmac) == 0U) in HAL_FMAC_PollFilterData()
1099 if ((hfmac->InputAccess == FMAC_BUFFER_ACCESS_POLLING) && (hfmac->pInput != NULL)) in HAL_FMAC_PollFilterData()
1107 if ((hfmac->OutputAccess == FMAC_BUFFER_ACCESS_POLLING) && (hfmac->pOutput != NULL)) in HAL_FMAC_PollFilterData()
1123 if (hfmac->State == HAL_FMAC_STATE_READY) in HAL_FMAC_PollFilterData()
1126 hfmac->State = HAL_FMAC_STATE_BUSY; in HAL_FMAC_PollFilterData()
1137 FMAC_WriteDataIncrementPtr(hfmac, MAX_FILTER_DATA_SIZE_TO_HANDLE); in HAL_FMAC_PollFilterData()
1138 if (hfmac->InputCurrentSize == *(hfmac->pInputSize)) in HAL_FMAC_PollFilterData()
1147 FMAC_ReadDataIncrementPtr(hfmac, MAX_FILTER_DATA_SIZE_TO_HANDLE); in HAL_FMAC_PollFilterData()
1148 if (hfmac->OutputCurrentSize == *(hfmac->pOutputSize)) in HAL_FMAC_PollFilterData()
1164 (*(hfmac->pInputSize)) = hfmac->InputCurrentSize; in HAL_FMAC_PollFilterData()
1165 FMAC_ResetInputStateAndDataPointers(hfmac); in HAL_FMAC_PollFilterData()
1169 (*(hfmac->pOutputSize)) = hfmac->OutputCurrentSize; in HAL_FMAC_PollFilterData()
1170 FMAC_ResetOutputStateAndDataPointers(hfmac); in HAL_FMAC_PollFilterData()
1174 hfmac->State = HAL_FMAC_STATE_READY; in HAL_FMAC_PollFilterData()
1178 hfmac->ErrorCode |= HAL_FMAC_ERROR_TIMEOUT; in HAL_FMAC_PollFilterData()
1200 HAL_StatusTypeDef HAL_FMAC_FilterStop(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_FilterStop() argument
1205 if (hfmac->State == HAL_FMAC_STATE_READY) in HAL_FMAC_FilterStop()
1208 hfmac->State = HAL_FMAC_STATE_BUSY; in HAL_FMAC_FilterStop()
1211 CLEAR_BIT(hfmac->Instance->PARAM, FMAC_PARAM_START); in HAL_FMAC_FilterStop()
1214 CLEAR_BIT(hfmac->Instance->CR, FMAC_DMA_REN | FMAC_DMA_WEN | FMAC_IT_RIEN | FMAC_IT_WIEN); in HAL_FMAC_FilterStop()
1217 if ((hfmac->InputAccess == FMAC_BUFFER_ACCESS_IT) && (hfmac->pInput != NULL)) in HAL_FMAC_FilterStop()
1219 (*(hfmac->pInputSize)) = hfmac->InputCurrentSize; in HAL_FMAC_FilterStop()
1222 if ((hfmac->OutputAccess == FMAC_BUFFER_ACCESS_IT) && (hfmac->pOutput != NULL)) in HAL_FMAC_FilterStop()
1224 (*(hfmac->pOutputSize)) = hfmac->OutputCurrentSize; in HAL_FMAC_FilterStop()
1227 if (hfmac->InputAccess == FMAC_BUFFER_ACCESS_DMA) in HAL_FMAC_FilterStop()
1230 status = HAL_DMA_Abort_IT(hfmac->hdmaIn); in HAL_FMAC_FilterStop()
1233 if ((hfmac->OutputAccess == FMAC_BUFFER_ACCESS_DMA) && (status == HAL_OK)) in HAL_FMAC_FilterStop()
1236 status = HAL_DMA_Abort_IT(hfmac->hdmaOut); in HAL_FMAC_FilterStop()
1240 if (FMAC_Reset(hfmac) == HAL_ERROR) in HAL_FMAC_FilterStop()
1243 hfmac->ErrorCode = HAL_FMAC_ERROR_RESET; in HAL_FMAC_FilterStop()
1244 hfmac->State = HAL_FMAC_STATE_TIMEOUT; in HAL_FMAC_FilterStop()
1250 FMAC_ResetDataPointers(hfmac); in HAL_FMAC_FilterStop()
1254 hfmac->State = HAL_FMAC_STATE_READY; in HAL_FMAC_FilterStop()
1292 __weak void HAL_FMAC_ErrorCallback(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_ErrorCallback() argument
1295 UNUSED(hfmac); in HAL_FMAC_ErrorCallback()
1308 __weak void HAL_FMAC_HalfGetDataCallback(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_HalfGetDataCallback() argument
1311 UNUSED(hfmac); in HAL_FMAC_HalfGetDataCallback()
1324 __weak void HAL_FMAC_GetDataCallback(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_GetDataCallback() argument
1327 UNUSED(hfmac); in HAL_FMAC_GetDataCallback()
1340 __weak void HAL_FMAC_HalfOutputDataReadyCallback(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_HalfOutputDataReadyCallback() argument
1343 UNUSED(hfmac); in HAL_FMAC_HalfOutputDataReadyCallback()
1356 __weak void HAL_FMAC_OutputDataReadyCallback(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_OutputDataReadyCallback() argument
1359 UNUSED(hfmac); in HAL_FMAC_OutputDataReadyCallback()
1372 __weak void HAL_FMAC_FilterConfigCallback(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_FilterConfigCallback() argument
1375 UNUSED(hfmac); in HAL_FMAC_FilterConfigCallback()
1388 __weak void HAL_FMAC_FilterPreloadCallback(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_FilterPreloadCallback() argument
1391 UNUSED(hfmac); in HAL_FMAC_FilterPreloadCallback()
1421 void HAL_FMAC_IRQHandler(FMAC_HandleTypeDef *hfmac) in HAL_FMAC_IRQHandler() argument
1426 itsource = __HAL_FMAC_GET_IT_SOURCE(hfmac, FMAC_IT_RIEN); in HAL_FMAC_IRQHandler()
1427 if ((__HAL_FMAC_GET_FLAG(hfmac, FMAC_FLAG_YEMPTY) == 0U) && (itsource != 0U)) in HAL_FMAC_IRQHandler()
1432 if (hfmac->pOutput != NULL) in HAL_FMAC_IRQHandler()
1434 FMAC_ReadDataIncrementPtr(hfmac, (uint16_t)FMAC_GET_Y_SIZE(hfmac)); in HAL_FMAC_IRQHandler()
1438 if ((hfmac->pOutput == NULL) || (hfmac->OutputCurrentSize == *(hfmac->pOutputSize))) in HAL_FMAC_IRQHandler()
1441 FMAC_ResetOutputStateAndDataPointers(hfmac); in HAL_FMAC_IRQHandler()
1445 hfmac->OutputDataReadyCallback(hfmac); in HAL_FMAC_IRQHandler()
1447 HAL_FMAC_OutputDataReadyCallback(hfmac); in HAL_FMAC_IRQHandler()
1453 itsource = __HAL_FMAC_GET_IT_SOURCE(hfmac, FMAC_IT_WIEN); in HAL_FMAC_IRQHandler()
1454 if ((__HAL_FMAC_GET_FLAG(hfmac, FMAC_FLAG_X1FULL) == 0U) && (itsource != 0U)) in HAL_FMAC_IRQHandler()
1459 if (hfmac->pInput != NULL) in HAL_FMAC_IRQHandler()
1461 FMAC_WriteDataIncrementPtr(hfmac, (uint16_t)FMAC_GET_X1_SIZE(hfmac)); in HAL_FMAC_IRQHandler()
1465 if ((hfmac->pInput == NULL) || (hfmac->InputCurrentSize == *(hfmac->pInputSize))) in HAL_FMAC_IRQHandler()
1468 FMAC_ResetInputStateAndDataPointers(hfmac); in HAL_FMAC_IRQHandler()
1472 hfmac->GetDataCallback(hfmac); in HAL_FMAC_IRQHandler()
1474 HAL_FMAC_GetDataCallback(hfmac); in HAL_FMAC_IRQHandler()
1480 itsource = __HAL_FMAC_GET_IT_SOURCE(hfmac, FMAC_IT_OVFLIEN); in HAL_FMAC_IRQHandler()
1481 if ((__HAL_FMAC_GET_FLAG(hfmac, FMAC_FLAG_OVFL) != 0U) && (itsource != 0U)) in HAL_FMAC_IRQHandler()
1483 hfmac->ErrorCode |= HAL_FMAC_ERROR_OVFL; in HAL_FMAC_IRQHandler()
1487 itsource = __HAL_FMAC_GET_IT_SOURCE(hfmac, FMAC_IT_UNFLIEN); in HAL_FMAC_IRQHandler()
1488 if ((__HAL_FMAC_GET_FLAG(hfmac, FMAC_FLAG_UNFL) != 0U) && (itsource != 0U)) in HAL_FMAC_IRQHandler()
1490 hfmac->ErrorCode |= HAL_FMAC_ERROR_UNFL; in HAL_FMAC_IRQHandler()
1494 itsource = __HAL_FMAC_GET_IT_SOURCE(hfmac, FMAC_IT_SATIEN); in HAL_FMAC_IRQHandler()
1495 if ((__HAL_FMAC_GET_FLAG(hfmac, FMAC_FLAG_SAT) != 0U) && (itsource != 0U)) in HAL_FMAC_IRQHandler()
1497 hfmac->ErrorCode |= HAL_FMAC_ERROR_SAT; in HAL_FMAC_IRQHandler()
1501 if (hfmac->ErrorCode != HAL_FMAC_ERROR_NONE) in HAL_FMAC_IRQHandler()
1505 hfmac->ErrorCallback(hfmac); in HAL_FMAC_IRQHandler()
1507 HAL_FMAC_ErrorCallback(hfmac); in HAL_FMAC_IRQHandler()
1537 HAL_FMAC_StateTypeDef HAL_FMAC_GetState(const FMAC_HandleTypeDef *hfmac) in HAL_FMAC_GetState() argument
1540 return hfmac->State; in HAL_FMAC_GetState()
1550 uint32_t HAL_FMAC_GetError(const FMAC_HandleTypeDef *hfmac) in HAL_FMAC_GetError() argument
1553 return hfmac->ErrorCode; in HAL_FMAC_GetError()
1578 static HAL_StatusTypeDef FMAC_Reset(FMAC_HandleTypeDef *hfmac) in FMAC_Reset() argument
1586 SET_BIT(hfmac->Instance->CR, FMAC_CR_RESET); in FMAC_Reset()
1589 while (READ_BIT(hfmac->Instance->CR, FMAC_CR_RESET) != 0U) in FMAC_Reset()
1593 hfmac->ErrorCode |= HAL_FMAC_ERROR_TIMEOUT; in FMAC_Reset()
1598 hfmac->ErrorCode = HAL_FMAC_ERROR_NONE; in FMAC_Reset()
1607 static void FMAC_ResetDataPointers(FMAC_HandleTypeDef *hfmac) in FMAC_ResetDataPointers() argument
1609 FMAC_ResetInputStateAndDataPointers(hfmac); in FMAC_ResetDataPointers()
1610 FMAC_ResetOutputStateAndDataPointers(hfmac); in FMAC_ResetDataPointers()
1618 static void FMAC_ResetInputStateAndDataPointers(FMAC_HandleTypeDef *hfmac) in FMAC_ResetInputStateAndDataPointers() argument
1620 hfmac->pInput = NULL; in FMAC_ResetInputStateAndDataPointers()
1621 hfmac->pInputSize = NULL; in FMAC_ResetInputStateAndDataPointers()
1622 hfmac->InputCurrentSize = 0U; in FMAC_ResetInputStateAndDataPointers()
1623 hfmac->WrState = HAL_FMAC_STATE_READY; in FMAC_ResetInputStateAndDataPointers()
1631 static void FMAC_ResetOutputStateAndDataPointers(FMAC_HandleTypeDef *hfmac) in FMAC_ResetOutputStateAndDataPointers() argument
1633 hfmac->pOutput = NULL; in FMAC_ResetOutputStateAndDataPointers()
1634 hfmac->pOutputSize = NULL; in FMAC_ResetOutputStateAndDataPointers()
1635 hfmac->OutputCurrentSize = 0U; in FMAC_ResetOutputStateAndDataPointers()
1636 hfmac->RdState = HAL_FMAC_STATE_READY; in FMAC_ResetOutputStateAndDataPointers()
1650 static HAL_StatusTypeDef FMAC_FilterConfig(FMAC_HandleTypeDef *hfmac, FMAC_FilterConfigTypeDef *pCo… in FMAC_FilterConfig() argument
1672 if (FMAC_GET_START_BIT(hfmac) != 0U) in FMAC_FilterConfig()
1678 if (hfmac->State != HAL_FMAC_STATE_READY) in FMAC_FilterConfig()
1684 hfmac->State = HAL_FMAC_STATE_BUSY; in FMAC_FilterConfig()
1690 hfmac->FilterParam = 0U; in FMAC_FilterConfig()
1695 …MODIFY_REG(hfmac->Instance->X1BUFCFG, … in FMAC_FilterConfig()
1706 …assert_param(IS_FMAC_THRESHOLD_APPLICABLE(FMAC_GET_X1_SIZE(hfmac), pConfig->InputThreshold, pConfi… in FMAC_FilterConfig()
1708 MODIFY_REG(hfmac->Instance->X1BUFCFG, \ in FMAC_FilterConfig()
1716 …MODIFY_REG(hfmac->Instance->X2BUFCFG, … in FMAC_FilterConfig()
1726 …MODIFY_REG(hfmac->Instance->YBUFCFG, … in FMAC_FilterConfig()
1736 …assert_param(IS_FMAC_THRESHOLD_APPLICABLE(FMAC_GET_Y_SIZE(hfmac), pConfig->OutputThreshold, pConfi… in FMAC_FilterConfig()
1738 MODIFY_REG(hfmac->Instance->YBUFCFG, \ in FMAC_FilterConfig()
1755 WRITE_REG(hfmac->Instance->CR, tmpcr); in FMAC_FilterConfig()
1758 hfmac->InputAccess = pConfig->InputAccess; in FMAC_FilterConfig()
1759 hfmac->OutputAccess = pConfig->OutputAccess; in FMAC_FilterConfig()
1763 x2size = FMAC_GET_X2_SIZE(hfmac); in FMAC_FilterConfig()
1770 hfmac->FilterParam = (FMAC_PARAM_START | pConfig->Filter | \ in FMAC_FilterConfig()
1792 WRITE_REG(hfmac->Instance->PARAM, \ in FMAC_FilterConfig()
1800 FMAC_WritePreloadDataIncrementPtr(hfmac, &(pConfig->pCoeffB), pConfig->CoeffBSize); in FMAC_FilterConfig()
1806 FMAC_WritePreloadDataIncrementPtr(hfmac, &(pConfig->pCoeffA), pConfig->CoeffASize); in FMAC_FilterConfig()
1810 if (FMAC_WaitOnStartUntilTimeout(hfmac, tickstart, HAL_FMAC_TIMEOUT_VALUE) != HAL_OK) in FMAC_FilterConfig()
1812 hfmac->ErrorCode |= HAL_FMAC_ERROR_TIMEOUT; in FMAC_FilterConfig()
1813 hfmac->State = HAL_FMAC_STATE_TIMEOUT; in FMAC_FilterConfig()
1818 hfmac->State = HAL_FMAC_STATE_READY; in FMAC_FilterConfig()
1822 hfmac->pInput = pConfig->pCoeffA; in FMAC_FilterConfig()
1823 hfmac->InputCurrentSize = pConfig->CoeffASize; in FMAC_FilterConfig()
1826 hfmac->hdmaPreload->XferHalfCpltCallback = NULL; in FMAC_FilterConfig()
1827 hfmac->hdmaPreload->XferCpltCallback = FMAC_DMAFilterConfig; in FMAC_FilterConfig()
1829 hfmac->hdmaPreload->XferErrorCallback = FMAC_DMAError; in FMAC_FilterConfig()
1832 if ((hfmac->hdmaPreload->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in FMAC_FilterConfig()
1834 …if ((hfmac->hdmaPreload->LinkedListQueue != NULL) && (hfmac->hdmaPreload->LinkedListQueue->Head !=… in FMAC_FilterConfig()
1837 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = in FMAC_FilterConfig()
1839 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in FMAC_FilterConfig()
1841 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in FMAC_FilterConfig()
1842 (uint32_t)&hfmac->Instance->WDATA; /* Set DMA destination address */ in FMAC_FilterConfig()
1844 status = HAL_DMAEx_List_Start_IT(hfmac->hdmaPreload); in FMAC_FilterConfig()
1854 status = HAL_DMA_Start_IT(hfmac->hdmaPreload, (uint32_t)pConfig->pCoeffB, \ in FMAC_FilterConfig()
1855 … (uint32_t)&hfmac->Instance->WDATA, (uint32_t)(2UL * pConfig->CoeffBSize)); in FMAC_FilterConfig()
1868 hfmac->State = HAL_FMAC_STATE_READY; in FMAC_FilterConfig()
1893 static HAL_StatusTypeDef FMAC_FilterPreload(FMAC_HandleTypeDef *hfmac, int16_t *pInput, uint8_t Inp… in FMAC_FilterPreload() argument
1900 if (FMAC_GET_START_BIT(hfmac) != 0U) in FMAC_FilterPreload()
1906 if (hfmac->FilterParam == 0U) in FMAC_FilterPreload()
1912 if ((InputSize > FMAC_GET_X1_SIZE(hfmac)) && (pInput != NULL)) in FMAC_FilterPreload()
1918 if ((OutputSize > FMAC_GET_Y_SIZE(hfmac)) && (pOutput != NULL)) in FMAC_FilterPreload()
1924 if (hfmac->State != HAL_FMAC_STATE_READY) in FMAC_FilterPreload()
1930 hfmac->State = HAL_FMAC_STATE_BUSY; in FMAC_FilterPreload()
1939 WRITE_REG(hfmac->Instance->PARAM, \ in FMAC_FilterPreload()
1945 FMAC_WritePreloadDataIncrementPtr(hfmac, &pInput, InputSize); in FMAC_FilterPreload()
1948 if (FMAC_WaitOnStartUntilTimeout(hfmac, tickstart, HAL_FMAC_TIMEOUT_VALUE) != HAL_OK) in FMAC_FilterPreload()
1950 hfmac->ErrorCode |= HAL_FMAC_ERROR_TIMEOUT; in FMAC_FilterPreload()
1951 hfmac->State = HAL_FMAC_STATE_TIMEOUT; in FMAC_FilterPreload()
1957 hfmac->pInput = pOutput; in FMAC_FilterPreload()
1958 hfmac->InputCurrentSize = OutputSize; in FMAC_FilterPreload()
1961 hfmac->hdmaPreload->XferHalfCpltCallback = NULL; in FMAC_FilterPreload()
1962 hfmac->hdmaPreload->XferCpltCallback = FMAC_DMAFilterPreload; in FMAC_FilterPreload()
1964 hfmac->hdmaPreload->XferErrorCallback = FMAC_DMAError; in FMAC_FilterPreload()
1967 if ((hfmac->hdmaPreload->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in FMAC_FilterPreload()
1969 …if ((hfmac->hdmaPreload->LinkedListQueue != NULL) && (hfmac->hdmaPreload->LinkedListQueue->Head !=… in FMAC_FilterPreload()
1972 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = in FMAC_FilterPreload()
1974 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in FMAC_FilterPreload()
1976 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in FMAC_FilterPreload()
1977 (uint32_t)&hfmac->Instance->WDATA; /* Set DMA destination address */ in FMAC_FilterPreload()
1979 return (HAL_DMAEx_List_Start_IT(hfmac->hdmaPreload)); in FMAC_FilterPreload()
1989 return (HAL_DMA_Start_IT(hfmac->hdmaPreload, (uint32_t)pInput, \ in FMAC_FilterPreload()
1990 (uint32_t)&hfmac->Instance->WDATA, (uint32_t)(2UL * InputSize))); in FMAC_FilterPreload()
1999 WRITE_REG(hfmac->Instance->PARAM, \ in FMAC_FilterPreload()
2005 FMAC_WritePreloadDataIncrementPtr(hfmac, &pOutput, OutputSize); in FMAC_FilterPreload()
2008 if (FMAC_WaitOnStartUntilTimeout(hfmac, tickstart, HAL_FMAC_TIMEOUT_VALUE) != HAL_OK) in FMAC_FilterPreload()
2010 hfmac->ErrorCode |= HAL_FMAC_ERROR_TIMEOUT; in FMAC_FilterPreload()
2011 hfmac->State = HAL_FMAC_STATE_TIMEOUT; in FMAC_FilterPreload()
2017 hfmac->pInput = NULL; in FMAC_FilterPreload()
2018 hfmac->InputCurrentSize = 0U; in FMAC_FilterPreload()
2021 hfmac->hdmaPreload->XferHalfCpltCallback = NULL; in FMAC_FilterPreload()
2022 hfmac->hdmaPreload->XferCpltCallback = FMAC_DMAFilterPreload; in FMAC_FilterPreload()
2024 hfmac->hdmaPreload->XferErrorCallback = FMAC_DMAError; in FMAC_FilterPreload()
2027 if ((hfmac->hdmaPreload->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in FMAC_FilterPreload()
2029 …if ((hfmac->hdmaPreload->LinkedListQueue != NULL) && (hfmac->hdmaPreload->LinkedListQueue->Head !=… in FMAC_FilterPreload()
2032 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = in FMAC_FilterPreload()
2034 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in FMAC_FilterPreload()
2036 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in FMAC_FilterPreload()
2037 (uint32_t)&hfmac->Instance->WDATA; /* Set DMA destination address */ in FMAC_FilterPreload()
2039 return (HAL_DMAEx_List_Start_IT(hfmac->hdmaPreload)); in FMAC_FilterPreload()
2049 return (HAL_DMA_Start_IT(hfmac->hdmaPreload, (uint32_t)pOutput, \ in FMAC_FilterPreload()
2050 (uint32_t)&hfmac->Instance->WDATA, (uint32_t)(2UL * OutputSize))); in FMAC_FilterPreload()
2056 if (__HAL_FMAC_GET_FLAG(hfmac, FMAC_FLAG_OVFL)) in FMAC_FilterPreload()
2058 hfmac->ErrorCode |= HAL_FMAC_ERROR_OVFL; in FMAC_FilterPreload()
2060 if (__HAL_FMAC_GET_FLAG(hfmac, FMAC_FLAG_UNFL)) in FMAC_FilterPreload()
2062 hfmac->ErrorCode |= HAL_FMAC_ERROR_UNFL; in FMAC_FilterPreload()
2064 if (__HAL_FMAC_GET_FLAG(hfmac, FMAC_FLAG_SAT)) in FMAC_FilterPreload()
2066 hfmac->ErrorCode |= HAL_FMAC_ERROR_SAT; in FMAC_FilterPreload()
2070 hfmac->State = HAL_FMAC_STATE_READY; in FMAC_FilterPreload()
2073 if (hfmac->ErrorCode == HAL_FMAC_ERROR_NONE) in FMAC_FilterPreload()
2093 static void FMAC_WritePreloadDataIncrementPtr(FMAC_HandleTypeDef *hfmac, int16_t **ppData, uint8_t … in FMAC_WritePreloadDataIncrementPtr() argument
2100 WRITE_REG(hfmac->Instance->WDATA, (((uint32_t)(*(*ppData))) & FMAC_WDATA_WDATA)); in FMAC_WritePreloadDataIncrementPtr()
2112 static HAL_StatusTypeDef FMAC_WaitOnStartUntilTimeout(FMAC_HandleTypeDef *hfmac, uint32_t Tickstart… in FMAC_WaitOnStartUntilTimeout() argument
2115 while (READ_BIT(hfmac->Instance->PARAM, FMAC_PARAM_START) != 0U) in FMAC_WaitOnStartUntilTimeout()
2119 hfmac->ErrorCode |= HAL_FMAC_ERROR_TIMEOUT; in FMAC_WaitOnStartUntilTimeout()
2136 static HAL_StatusTypeDef FMAC_AppendFilterDataUpdateState(FMAC_HandleTypeDef *hfmac, int16_t *pInpu… in FMAC_AppendFilterDataUpdateState() argument
2141 hfmac->WrState = HAL_FMAC_STATE_BUSY_WR; in FMAC_AppendFilterDataUpdateState()
2144 hfmac->InputCurrentSize = 0U; in FMAC_AppendFilterDataUpdateState()
2147 if (hfmac->InputAccess == FMAC_BUFFER_ACCESS_DMA) in FMAC_AppendFilterDataUpdateState()
2149 hfmac->pInput = NULL; in FMAC_AppendFilterDataUpdateState()
2150 hfmac->pInputSize = NULL; in FMAC_AppendFilterDataUpdateState()
2153 hfmac->hdmaIn->XferHalfCpltCallback = FMAC_DMAHalfGetData; in FMAC_AppendFilterDataUpdateState()
2154 hfmac->hdmaIn->XferCpltCallback = FMAC_DMAGetData; in FMAC_AppendFilterDataUpdateState()
2156 hfmac->hdmaIn->XferErrorCallback = FMAC_DMAError; in FMAC_AppendFilterDataUpdateState()
2159 if ((hfmac->hdmaIn->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in FMAC_AppendFilterDataUpdateState()
2161 … if ((hfmac->hdmaIn->LinkedListQueue != NULL) && (hfmac->hdmaIn->LinkedListQueue->Head != NULL)) in FMAC_AppendFilterDataUpdateState()
2164 hfmac->hdmaIn->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = in FMAC_AppendFilterDataUpdateState()
2166 hfmac->hdmaIn->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in FMAC_AppendFilterDataUpdateState()
2168 hfmac->hdmaIn->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in FMAC_AppendFilterDataUpdateState()
2169 (uint32_t)&hfmac->Instance->WDATA;/* Set DMA destination address */ in FMAC_AppendFilterDataUpdateState()
2171 status = HAL_DMAEx_List_Start_IT(hfmac->hdmaIn); in FMAC_AppendFilterDataUpdateState()
2181 status = HAL_DMA_Start_IT(hfmac->hdmaIn, (uint32_t)pInput, \ in FMAC_AppendFilterDataUpdateState()
2182 (uint32_t)&hfmac->Instance->WDATA, (uint32_t)(2UL * (*pInputSize))); in FMAC_AppendFilterDataUpdateState()
2194 hfmac->pInput = pInput; in FMAC_AppendFilterDataUpdateState()
2195 hfmac->pInputSize = pInputSize; in FMAC_AppendFilterDataUpdateState()
2211 static HAL_StatusTypeDef FMAC_ConfigFilterOutputBufferUpdateState(FMAC_HandleTypeDef *hfmac, int16_… in FMAC_ConfigFilterOutputBufferUpdateState() argument
2216 hfmac->OutputCurrentSize = 0U; in FMAC_ConfigFilterOutputBufferUpdateState()
2222 hfmac->pOutput = NULL; in FMAC_ConfigFilterOutputBufferUpdateState()
2223 hfmac->pOutputSize = NULL; in FMAC_ConfigFilterOutputBufferUpdateState()
2224 hfmac->RdState = HAL_FMAC_STATE_READY; in FMAC_ConfigFilterOutputBufferUpdateState()
2227 else if (hfmac->OutputAccess == FMAC_BUFFER_ACCESS_DMA) in FMAC_ConfigFilterOutputBufferUpdateState()
2229 hfmac->pOutput = NULL; in FMAC_ConfigFilterOutputBufferUpdateState()
2230 hfmac->pOutputSize = NULL; in FMAC_ConfigFilterOutputBufferUpdateState()
2231 hfmac->RdState = HAL_FMAC_STATE_BUSY_RD; in FMAC_ConfigFilterOutputBufferUpdateState()
2234 hfmac->hdmaOut->XferHalfCpltCallback = FMAC_DMAHalfOutputDataReady; in FMAC_ConfigFilterOutputBufferUpdateState()
2235 hfmac->hdmaOut->XferCpltCallback = FMAC_DMAOutputDataReady; in FMAC_ConfigFilterOutputBufferUpdateState()
2237 hfmac->hdmaOut->XferErrorCallback = FMAC_DMAError; in FMAC_ConfigFilterOutputBufferUpdateState()
2240 if ((hfmac->hdmaOut->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in FMAC_ConfigFilterOutputBufferUpdateState()
2242 … if ((hfmac->hdmaOut->LinkedListQueue != NULL) && (hfmac->hdmaOut->LinkedListQueue->Head != NULL)) in FMAC_ConfigFilterOutputBufferUpdateState()
2245 hfmac->hdmaOut->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = in FMAC_ConfigFilterOutputBufferUpdateState()
2247 hfmac->hdmaOut->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in FMAC_ConfigFilterOutputBufferUpdateState()
2248 (uint32_t)&hfmac->Instance->RDATA;/* Set DMA source address */ in FMAC_ConfigFilterOutputBufferUpdateState()
2249 hfmac->hdmaOut->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in FMAC_ConfigFilterOutputBufferUpdateState()
2252 status = HAL_DMAEx_List_Start_IT(hfmac->hdmaOut); in FMAC_ConfigFilterOutputBufferUpdateState()
2262 status = HAL_DMA_Start_IT(hfmac->hdmaOut, (uint32_t)&hfmac->Instance->RDATA, \ in FMAC_ConfigFilterOutputBufferUpdateState()
2272 else if (hfmac->OutputAccess == FMAC_BUFFER_ACCESS_NONE) in FMAC_ConfigFilterOutputBufferUpdateState()
2274 hfmac->pOutput = NULL; in FMAC_ConfigFilterOutputBufferUpdateState()
2275 hfmac->pOutputSize = NULL; in FMAC_ConfigFilterOutputBufferUpdateState()
2276 hfmac->RdState = HAL_FMAC_STATE_READY; in FMAC_ConfigFilterOutputBufferUpdateState()
2281 hfmac->pOutput = pOutput; in FMAC_ConfigFilterOutputBufferUpdateState()
2282 hfmac->pOutputSize = pOutputSize; in FMAC_ConfigFilterOutputBufferUpdateState()
2283 hfmac->RdState = HAL_FMAC_STATE_BUSY_RD; in FMAC_ConfigFilterOutputBufferUpdateState()
2296 static void FMAC_ReadDataIncrementPtr(FMAC_HandleTypeDef *hfmac, uint16_t MaxSizeToRead) in FMAC_ReadDataIncrementPtr() argument
2303 if (READ_BIT(hfmac->Instance->SR, FMAC_SR_YEMPTY) != 0U) in FMAC_ReadDataIncrementPtr()
2309 if ((hfmac->OutputCurrentSize + MaxSizeToRead) > *(hfmac->pOutputSize)) in FMAC_ReadDataIncrementPtr()
2311 maxsize = *(hfmac->pOutputSize); in FMAC_ReadDataIncrementPtr()
2315 maxsize = hfmac->OutputCurrentSize + MaxSizeToRead; in FMAC_ReadDataIncrementPtr()
2322 if (!(hfmac->OutputCurrentSize < maxsize)) in FMAC_ReadDataIncrementPtr()
2328 tmpvalue = ((READ_REG(hfmac->Instance->RDATA))& FMAC_RDATA_RDATA); in FMAC_ReadDataIncrementPtr()
2329 *(hfmac->pOutput) = (int16_t)tmpvalue; in FMAC_ReadDataIncrementPtr()
2330 hfmac->pOutput++; in FMAC_ReadDataIncrementPtr()
2331 hfmac->OutputCurrentSize++; in FMAC_ReadDataIncrementPtr()
2332 } while (READ_BIT(hfmac->Instance->SR, FMAC_SR_YEMPTY) == 0U); in FMAC_ReadDataIncrementPtr()
2335 threshold = (uint16_t)FMAC_GET_THRESHOLD_FROM_WM(FMAC_GET_Y_EMPTY_WM(hfmac)) - 1U; in FMAC_ReadDataIncrementPtr()
2338 if ((hfmac->OutputCurrentSize + threshold) < maxsize) in FMAC_ReadDataIncrementPtr()
2340 maxsize = hfmac->OutputCurrentSize + threshold; in FMAC_ReadDataIncrementPtr()
2344 while (hfmac->OutputCurrentSize < maxsize) in FMAC_ReadDataIncrementPtr()
2346 tmpvalue = ((READ_REG(hfmac->Instance->RDATA))& FMAC_RDATA_RDATA); in FMAC_ReadDataIncrementPtr()
2347 *(hfmac->pOutput) = (int16_t)tmpvalue; in FMAC_ReadDataIncrementPtr()
2348 hfmac->pOutput++; in FMAC_ReadDataIncrementPtr()
2349 hfmac->OutputCurrentSize++; in FMAC_ReadDataIncrementPtr()
2360 static void FMAC_WriteDataIncrementPtr(FMAC_HandleTypeDef *hfmac, uint16_t MaxSizeToWrite) in FMAC_WriteDataIncrementPtr() argument
2366 if (READ_BIT(hfmac->Instance->SR, FMAC_SR_X1FULL) != 0U) in FMAC_WriteDataIncrementPtr()
2372 if ((hfmac->InputCurrentSize + MaxSizeToWrite) > *(hfmac->pInputSize)) in FMAC_WriteDataIncrementPtr()
2374 maxsize = *(hfmac->pInputSize); in FMAC_WriteDataIncrementPtr()
2378 maxsize = hfmac->InputCurrentSize + MaxSizeToWrite; in FMAC_WriteDataIncrementPtr()
2385 if (!(hfmac->InputCurrentSize < maxsize)) in FMAC_WriteDataIncrementPtr()
2391 WRITE_REG(hfmac->Instance->WDATA, (((uint32_t)(*(hfmac->pInput))) & FMAC_WDATA_WDATA)); in FMAC_WriteDataIncrementPtr()
2392 hfmac->pInput++; in FMAC_WriteDataIncrementPtr()
2393 hfmac->InputCurrentSize++; in FMAC_WriteDataIncrementPtr()
2394 } while (READ_BIT(hfmac->Instance->SR, FMAC_SR_X1FULL) == 0U); in FMAC_WriteDataIncrementPtr()
2397 threshold = (uint16_t)FMAC_GET_THRESHOLD_FROM_WM(FMAC_GET_X1_FULL_WM(hfmac)) - 1U; in FMAC_WriteDataIncrementPtr()
2400 if ((hfmac->InputCurrentSize + threshold) < maxsize) in FMAC_WriteDataIncrementPtr()
2402 maxsize = hfmac->InputCurrentSize + threshold; in FMAC_WriteDataIncrementPtr()
2406 while (hfmac->InputCurrentSize < maxsize) in FMAC_WriteDataIncrementPtr()
2408 WRITE_REG(hfmac->Instance->WDATA, (((uint32_t)(*(hfmac->pInput))) & FMAC_WDATA_WDATA)); in FMAC_WriteDataIncrementPtr()
2409 hfmac->pInput++; in FMAC_WriteDataIncrementPtr()
2410 hfmac->InputCurrentSize++; in FMAC_WriteDataIncrementPtr()
2421 FMAC_HandleTypeDef *hfmac = (FMAC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in FMAC_DMAHalfGetData() local
2425 hfmac->HalfGetDataCallback(hfmac); in FMAC_DMAHalfGetData()
2427 HAL_FMAC_HalfGetDataCallback(hfmac); in FMAC_DMAHalfGetData()
2438 FMAC_HandleTypeDef *hfmac = (FMAC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in FMAC_DMAGetData() local
2441 FMAC_ResetInputStateAndDataPointers(hfmac); in FMAC_DMAGetData()
2445 hfmac->GetDataCallback(hfmac); in FMAC_DMAGetData()
2447 HAL_FMAC_GetDataCallback(hfmac); in FMAC_DMAGetData()
2458 FMAC_HandleTypeDef *hfmac = (FMAC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in FMAC_DMAHalfOutputDataReady() local
2462 hfmac->HalfOutputDataReadyCallback(hfmac); in FMAC_DMAHalfOutputDataReady()
2464 HAL_FMAC_HalfOutputDataReadyCallback(hfmac); in FMAC_DMAHalfOutputDataReady()
2475 FMAC_HandleTypeDef *hfmac = (FMAC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in FMAC_DMAOutputDataReady() local
2478 FMAC_ResetOutputStateAndDataPointers(hfmac); in FMAC_DMAOutputDataReady()
2482 hfmac->OutputDataReadyCallback(hfmac); in FMAC_DMAOutputDataReady()
2484 HAL_FMAC_OutputDataReadyCallback(hfmac); in FMAC_DMAOutputDataReady()
2498 FMAC_HandleTypeDef *hfmac = (FMAC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in FMAC_DMAFilterConfig() local
2501 if (hfmac->pInput != NULL) in FMAC_DMAFilterConfig()
2504 hfmac->hdmaPreload->XferHalfCpltCallback = NULL; in FMAC_DMAFilterConfig()
2505 hfmac->hdmaPreload->XferCpltCallback = FMAC_DMAFilterConfig; in FMAC_DMAFilterConfig()
2507 hfmac->hdmaPreload->XferErrorCallback = FMAC_DMAError; in FMAC_DMAFilterConfig()
2510 if ((hfmac->hdmaPreload->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in FMAC_DMAFilterConfig()
2512 …if ((hfmac->hdmaPreload->LinkedListQueue != NULL) && (hfmac->hdmaPreload->LinkedListQueue->Head !=… in FMAC_DMAFilterConfig()
2515 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = in FMAC_DMAFilterConfig()
2516 (uint32_t)(2UL * hfmac->InputCurrentSize);/* Set DMA data size */ in FMAC_DMAFilterConfig()
2517 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in FMAC_DMAFilterConfig()
2518 (uint32_t)hfmac->pInput; /* Set DMA source address */ in FMAC_DMAFilterConfig()
2519 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in FMAC_DMAFilterConfig()
2520 (uint32_t)&hfmac->Instance->WDATA; /* Set DMA destination address */ in FMAC_DMAFilterConfig()
2522 status = HAL_DMAEx_List_Start_IT(hfmac->hdmaPreload); in FMAC_DMAFilterConfig()
2532 status = HAL_DMA_Start_IT(hfmac->hdmaPreload, (uint32_t)hfmac->pInput, \ in FMAC_DMAFilterConfig()
2533 … (uint32_t)&hfmac->Instance->WDATA, (uint32_t)(2UL * hfmac->InputCurrentSize)); in FMAC_DMAFilterConfig()
2538 hfmac->pInput = NULL; in FMAC_DMAFilterConfig()
2539 hfmac->InputCurrentSize = 0U; in FMAC_DMAFilterConfig()
2544 hfmac->State = HAL_FMAC_STATE_ERROR; in FMAC_DMAFilterConfig()
2551 if (READ_BIT(hfmac->Instance->PARAM, FMAC_PARAM_START) == 0U) in FMAC_DMAFilterConfig()
2558 if (READ_BIT(hfmac->Instance->PARAM, FMAC_PARAM_START) != 0U) in FMAC_DMAFilterConfig()
2560 hfmac->State = HAL_FMAC_STATE_TIMEOUT; in FMAC_DMAFilterConfig()
2565 hfmac->State = HAL_FMAC_STATE_READY; in FMAC_DMAFilterConfig()
2569 hfmac->FilterConfigCallback(hfmac); in FMAC_DMAFilterConfig()
2571 HAL_FMAC_FilterConfigCallback(hfmac); in FMAC_DMAFilterConfig()
2578 hfmac->ErrorCode |= HAL_FMAC_ERROR_DMA; in FMAC_DMAFilterConfig()
2582 hfmac->ErrorCallback(hfmac); in FMAC_DMAFilterConfig()
2584 HAL_FMAC_ErrorCallback(hfmac); in FMAC_DMAFilterConfig()
2598 FMAC_HandleTypeDef *hfmac = (FMAC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in FMAC_DMAFilterPreload() local
2603 if (READ_BIT(hfmac->Instance->PARAM, FMAC_PARAM_START) == 0U) in FMAC_DMAFilterPreload()
2610 if (READ_BIT(hfmac->Instance->PARAM, FMAC_PARAM_START) != 0U) in FMAC_DMAFilterPreload()
2612 hfmac->State = HAL_FMAC_STATE_TIMEOUT; in FMAC_DMAFilterPreload()
2613 hfmac->ErrorCode |= HAL_FMAC_ERROR_TIMEOUT; in FMAC_DMAFilterPreload()
2616 else if ((hfmac->pInput != NULL) && (hfmac->InputCurrentSize != 0U)) in FMAC_DMAFilterPreload()
2619 WRITE_REG(hfmac->Instance->PARAM, \ in FMAC_DMAFilterPreload()
2620 …(((uint32_t)(hfmac->InputCurrentSize) << FMAC_PARAM_P_Pos) | FMAC_FUNC_LOAD_Y | FMAC_PARAM_START)); in FMAC_DMAFilterPreload()
2623 hfmac->hdmaPreload->XferHalfCpltCallback = NULL; in FMAC_DMAFilterPreload()
2624 hfmac->hdmaPreload->XferCpltCallback = FMAC_DMAFilterPreload; in FMAC_DMAFilterPreload()
2626 hfmac->hdmaPreload->XferErrorCallback = FMAC_DMAError; in FMAC_DMAFilterPreload()
2629 if ((hfmac->hdmaPreload->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in FMAC_DMAFilterPreload()
2631 …if ((hfmac->hdmaPreload->LinkedListQueue != NULL) && (hfmac->hdmaPreload->LinkedListQueue->Head !=… in FMAC_DMAFilterPreload()
2634 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = in FMAC_DMAFilterPreload()
2635 (uint32_t)(2UL * hfmac->InputCurrentSize);/* Set DMA data size */ in FMAC_DMAFilterPreload()
2636 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in FMAC_DMAFilterPreload()
2637 (uint32_t)hfmac->pInput; /* Set DMA source address */ in FMAC_DMAFilterPreload()
2638 hfmac->hdmaPreload->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in FMAC_DMAFilterPreload()
2639 (uint32_t)&hfmac->Instance->WDATA; /* Set DMA destination address */ in FMAC_DMAFilterPreload()
2641 status = HAL_DMAEx_List_Start_IT(hfmac->hdmaPreload); in FMAC_DMAFilterPreload()
2651 status = HAL_DMA_Start_IT(hfmac->hdmaPreload, (uint32_t)hfmac->pInput, \ in FMAC_DMAFilterPreload()
2652 … (uint32_t)&hfmac->Instance->WDATA, (uint32_t)(2UL * hfmac->InputCurrentSize)); in FMAC_DMAFilterPreload()
2657 hfmac->pInput = NULL; in FMAC_DMAFilterPreload()
2658 hfmac->InputCurrentSize = 0U; in FMAC_DMAFilterPreload()
2663 hfmac->ErrorCode = HAL_FMAC_ERROR_DMA; in FMAC_DMAFilterPreload()
2664 hfmac->State = HAL_FMAC_STATE_ERROR; in FMAC_DMAFilterPreload()
2671 if (hfmac->ErrorCode == HAL_FMAC_ERROR_NONE) in FMAC_DMAFilterPreload()
2674 hfmac->State = HAL_FMAC_STATE_READY; in FMAC_DMAFilterPreload()
2678 hfmac->FilterPreloadCallback(hfmac); in FMAC_DMAFilterPreload()
2680 HAL_FMAC_FilterPreloadCallback(hfmac); in FMAC_DMAFilterPreload()
2687 hfmac->ErrorCallback(hfmac); in FMAC_DMAFilterPreload()
2689 HAL_FMAC_ErrorCallback(hfmac); in FMAC_DMAFilterPreload()
2702 FMAC_HandleTypeDef *hfmac = (FMAC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in FMAC_DMAError() local
2705 hfmac->State = HAL_FMAC_STATE_ERROR; in FMAC_DMAError()
2708 hfmac->ErrorCode |= HAL_FMAC_ERROR_DMA; in FMAC_DMAError()
2712 hfmac->ErrorCallback(hfmac); in FMAC_DMAError()
2714 HAL_FMAC_ErrorCallback(hfmac); in FMAC_DMAError()