view src/cs/drivers/drv_app/pwr/pwr_messages_i.c @ 283:d9e3f3e293ac

etm_audio.c: fix off-by-one error in auw of FIR coefficients The implementation of auw operation for UL or DL FIR upload had this bug: the number of 16-bit shortwords copied into the RVF-allocated temporary buffer was one too many, causing memory corruption errors. The present change fixes this bug.
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 08 Nov 2021 02:54:04 +0000
parents 4e78acac3d88
children
line wrap: on
line source

/*******************************************************************************
 *
 *  pwr_messages_i.c
 *
 * Purpose: Contains functions used by PWR SWE to send events to the SPI task.
 *
 *
 * Author   Candice Bazanegue (c-brille@ti.com)
 *
 * (C) Texas Instruments 2001
 *
 ******************************************************************************/

#include "rv/rv_defined_swe.h"	   // for RVM_PWR_SWE

#ifdef RVM_PWR_SWE

#include "rvm/rvm_use_id_list.h"
#include "rvf/rvf_api.h"
#include "pwr/pwr_messages_i.h"
#include "pwr/pwr_env.h"
#include "spi/spi_env.h"


/********************************************************************************/
/*                                                                              */
/*    Function Name: pwr_spi_battery_info                                       */
/*                                                                              */
/*    Purpose:    This function is used to send a PWR_SPI_INFO_BATTERY_EVT      */
/*                message to the SPI task.                                      */
/*                                                                              */
/********************************************************************************/
T_RV_RET pwr_spi_battery_info(CALLBACK_FUNC CallBack)
{
   T_RV_HDR *msgPtr;

   /* check if the driver has been started */
   if (pwr_env_ctrl_blk == NULL)
      return (RVM_NOT_READY);
   
   if(SPI_GBL_INFO_PTR->SpiTaskReady == FALSE)
      return(RVM_NOT_READY);

   if (rvf_get_buf (pwr_env_ctrl_blk->prim_id, sizeof (T_RV_HDR),(void **) &msgPtr) == RVF_RED)
   {
      rvf_send_trace ("PWR ERROR: Not enough memory",
                      28,
                      NULL_PARAM,
                      RV_TRACE_LEVEL_ERROR,
                      PWR_USE_ID);

      return (RV_MEMORY_ERR);
   }

   msgPtr->msg_id          = PWR_SPI_INFO_BATTERY_EVT;
   msgPtr->dest_addr_id    = pwr_env_ctrl_blk->addr_id;
   msgPtr->callback_func   = (CALLBACK_FUNC) CallBack;

   rvf_send_msg (pwr_env_ctrl_blk->addr_id, msgPtr);

   return (RV_OK);
}

#endif /* #ifdef RVM_PWR_SWE */