view src/cs/services/dar/dar_macro_i.h @ 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:   dar_macro_i.h                                                */
/*                                                                              */
/*    Purpose:     This header contains the generic structures and constants    */
/*                 that are used by the Diagnose And Recovery layer.            */
/*                                                                              */
/*    Note:                                                                     */
/*        None.                                                                 */
/*                                                                              */
/*    Revision History:                                                         */
/*       27 September 2001      Stephanie Gerthoux        Create                */
/*                                                                              */
/* (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved.   */
/*                                                                              */
/********************************************************************************/

#include "rv/rv_defined_swe.h"
#include "dar/dar_const_i.h"
#include "rvm/rvm_use_id_list.h"

#ifdef RVM_DAR_SWE
   #ifndef _DAR_MACRO_I_H
      #define _DAR_MACRO_I_H

      #ifdef __cplusplus
         extern "C"
         {
      #endif

      /* DAR trace macros */
      #define DAR_SEND_TRACE(string,type) rvf_send_trace (string,(sizeof(string)-1),NULL_PARAM,type,DAR_USE_ID)
      #define DAR_SEND_TRACE_PARAM(string,param,type) rvf_send_trace (string,(sizeof(string)-1),(UINT32)param,type,DAR_USE_ID)
      #define DAR_TRACE_WARNING(string) rvf_send_trace (string,(sizeof(string)-1),NULL_PARAM,RV_TRACE_LEVEL_WARNING,DAR_USE_ID)

      /* Macro used to calculate the value of the index of the circular buffer */
      /* When the end of the buffer is reached, the index = 0 */
      #define DAR_PLUS_PLUS(dar_current_index) \
         { \
            dar_current_index++;\
            if (dar_current_index == DAR_MAX_BUFFER_SIZE)\
            {\
               dar_current_index = 0;\
            }\
         } \


      #ifdef __cplusplus
         }
      #endif

   #endif

#endif /* #ifdef RVM_DAR_SWE */