view src/cs/services/mks/tests/mks_test.c @ 244:96784b8974eb

Switch_ON(): detect charging mode by CHGPRES bit Consider the following scenario: the phone is on, the user plugs in the charger, and then executes the power-off operation. In the Iota VRPC this sequence translates to a switch-off immediately followed by another switch-on - but the CHGSTS bit doesn't get set on the second switch-on cycle! Disassembly of Pirelli's fw shows that they check the CHGPRES bit, and furthermore, if both CHGPRES and ONBSTS are set, the code they pass to their modified Power_ON_Button() function is the one for charging - so let's adopt the same CHGPRES check and the same priority order for switch-on causes.
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 03 May 2021 06:51:29 +0000
parents 4e78acac3d88
children
line wrap: on
line source

/********************************************************************************/
/*                                                                              */
/*      File Name:   mks_test.c                                                 */
/*                                                                              */
/*      Purpose:   This file contains MKS test generic functions.               */
/*                                                                              */
/*      Note:      None.                                                        */
/*                                                                              */
/*      Revision History:                                                       */
/*      11/21/2001      Laurent Sollier      Create.                            */
/*                                                                              */
/*   (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved  */
/*                                                                              */
/********************************************************************************/

#include "tests/rv/rv_test_filter_redirect.h"
#include "tests/rv/rv_test.h"

#if (MKS_TEST == SW_COMPILED)


/********************************************************************************/
/*   Global variables for tests                                                 */
/********************************************************************************/

T_RVF_MB_ID mb_mks_test;
T_RV_RETURN mks_test_path;

/********************************************************************************/
/*                                                                              */
/*      Function Name:   mks_test_set_mb_id                                     */
/*                                                                              */
/*      Purpose:      This function is called to set MKS test MB IDs.           */
/*                                                                              */
/*      Note:         None.                                                     */
/*                                                                              */
/*      Revision History:                                                       */
/*      11/21/01      Laurent Sollier         Create.                           */
/*                                                                              */
/********************************************************************************/
void mks_test_set_mb_id (T_RVF_MB_ID mb_id[])
{
   mb_mks_test         = mb_id[0];
   mks_test_path.callback_func = NULL;
   mks_test_path.addr_id   = rvf_get_taskid();
}
/********************* End of mks_test_set_mb_id function *********************/



/********************************************************************************/
/*                                                                              */
/*      Function Name:   fix_mks_test_verdict                                   */
/*                                                                              */
/*      Purpose:      The purpose of this function is to fix test_verdict       */
/*                  param value depending on error_type param value.            */
/*                                                                              */
/*      Note:         None.                                                     */
/*                                                                              */
/*      Revision History:                                                       */
/*      11/21/01      Laurent Sollier         Create.                           */
/*                                                                              */
/********************************************************************************/
   
T_RV_TEST_RET fix_mks_test_verdict (T_RV_TEST_ERR_TYPE *error_type)
{
   T_RV_TEST_RET test_verdict;
   
/******************** fix_mks_test_verdict function begins ********************/

   switch (*error_type)
   {
   case NO_ERR:
      {
         test_verdict = TEST_PASSED;
         break;
      }
   case NO_EVENT_RECV:
      {
         test_verdict = TEST_IRRECOVERABLY_FAILED;
         break;
      }
   case BAD_EVENT_RECV:
      {
         test_verdict = TEST_IRRECOVERABLY_FAILED;
         break;
      }
   case EVENT_PARAM_ERROR:
      {
         test_verdict = TEST_IRRECOVERABLY_FAILED;
         break;
      }
   case DATA_ERROR:
      {
         test_verdict = TEST_IRRECOVERABLY_FAILED;
         break;
      }
   case MEMORY_ERROR:
      {
         test_verdict = TEST_IRRECOVERABLY_FAILED;
         break;
      }
   default:
      {
         rvf_send_trace ("!!! ERROR !!! Wrong error_type value", 
                     36, 
                     NULL_PARAM, 
                     RV_TRACE_LEVEL_ERROR, 
                     TRACE_RVTEST);
         test_verdict = TEST_IRRECOVERABLY_FAILED;
         break;
      }
   } /* End of "switch (*error_type)" */

   return (test_verdict);
}

/******************** End of fix_mks_test_verdict function ********************/
#else

/*  Add a dummy function in order to allow compilation of the MKS test lib on
 ARM V1.22 compiler */
void mks_test_dummy(void)
{
}
#endif /* #if (MKS_TEST == SW_COMPILED) */