blob: 653321faef50e8d56b831bd1f2d05fabd023a490 [file] [log] [blame]
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2016
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
#ifndef _CL1TSKLL1ADEFS_H_
#define _CL1TSKLL1ADEFS_H_
#ifdef MTK_DEV_93M_PREIT
#include "kal_public_defs.h"
#include "systyp.h"
#include "valapi.h"
/*****************************************************************************
FILE NAME: cl1tskll1adefs.h
DESCRIPTION:
This file contains the data type definition of LL1A module in 93m
*****************************************************************************/
/*----------------------------------------------------------------------------
* Definitions
*----------------------------------------------------------------------------*/
#define PNULL (void*)(0)
#define TICK_BITMAP_LPS (0x01)
#define TICK_BITMAP_HPS (0x02)
#define TICK_BITMAP_RES (0x04)
#define TICK_BITMAP_MPSR (0x08)
#define LL1A_MEAS_PURPOSE_CELL_SEARCH (0x02)
#define LL1A_MEAS_PURPOSE_MEASURE (0x01)
#define C2K_SRLTE_LL1A_ON C2K_SRLTE_ON
#ifndef MTK_PLT_ON_PC
//#define MTK_DEV_93M_LL1A_BYPASS_ENABLE
//#define C2K_LL1_STUB_TARGET_SUPPORT
#endif
/*----------------------------------------------------------------------------
Macros Definition
----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------
* Enums
*----------------------------------------------------------------------------*/
/** The EVDO's Rat Status Enum. */
typedef enum
{
RAT_FLIGHT,
RAT_STANDBY,
RAT_ACTIVE,
RAT_PSEUDO_FLIGHT,
RAT_PSEUDO_ACTIVE,
RAT_NULL
}RmcRatStatusT;
/** The LL1A's Internal State Definition. */
typedef enum
{
LL1A_FLIGHT,
LL1A_STANDBY,
LL1A_ACTIVE,
LL1A_RAT_MODE_INIT,
LL1A_SUSPEND
}Ll1aStateTypeT;
/** The EVDO's mode status enmu. */
typedef enum
{
RMC_MODE_BEGIN,
RMC_NULL_MODE,
RMC_IDLE_MODE,
RMC_CONNECT_MODE
}RmcModeStatusT;
/** The 1xRTT's mode status enmu. */
typedef enum
{
L1D_NON_DATA_CONNECTED_MODE,
L1D_DATA_CONNECTED_MODE
}L1dModeStatusT;
/** LL1A gap offered status.*/
typedef enum
{
GAP_NOT_OFFERED,
GAP_OFFERED,
WAIT_FOR_GAP_STOP_CNF
}Ll1aGapOfferedStatusT;
/** LL1A autogap available status.*/
typedef enum
{
AUTO_GAP_STATUS_UNKNOWN,
AUTO_GAP_STATUS_AVAIL,
AUTO_GAP_STATUS_UNAVAIL
}Ll1aAutoGapAvailStatusT;
/** LL1A autogap request state.*/
typedef enum
{
AUTO_GAP_NULL,
AUTO_GAP_REQ_PENDING,
AUTO_GAP_WAIT_RESULT,
AUTO_GAP_ACTIVE
}Ll1aAutoGapReqStateT;
/** LL1A Active Gap Pattern type.*/
typedef enum
{
ACTIVE_NULL_GAP,
ACTIVE_IDLE_GAP,
ACTIVE_MMO_GAP
}Ll1aActiveGapPatternTypeT;
typedef struct
{
kal_uint32 RttGapLen; /* 1xRTT ps connect gap length for LTE MMO : unit ms */
kal_uint32 EvdoGapLen; /* EVDO connect gap length for LTE MMO : unit ms */
kal_bool RtbaMmoGapEnable; /* TRUE:LL1A have sent enable to RTBA; FALSE: LL1A have sent disable to RTBA */
}Ll1aC2kConnGapT;
/** L1d Mode Status Ind. */
typedef struct
{
L1dModeStatusT L1dModeStatus; /* Non_Data/Data. */
}Ll1aL1dModeStatusIndMsgT;
/** LL1A's internal parameters definiton.*/
typedef struct
{
Ll1aStateTypeT RatState; /** LL1A's internal RatState. */
RmcRatStatusT RmcRatStatus; /** LL1A record the rat status of EVDO.*/
RmcModeStatusT RmcModeStatus; /** RMC's Mode Status restored in LL1A. */
L1dModeStatusT L1dModeStatus; /** L1D's mode status recorded in LL1A */
Ll1aGapOfferedStatusT GapOfferedStatus; /** Indicate the gap offered status for evdo active. */
SysAirInterfaceT GapOfferedOwner; /** Indicate the gap offered owner for evdo or rtt active. */
Ll1aAutoGapAvailStatusT AutoGapAvailStatus; /** Indicate the auto-gap available information for evdo standby. */
Ll1aAutoGapReqStateT AutoGapReqState; /** Indicate the auto-gap request state for evdo standby. */
kal_uint8 GapIgnoreFlag; /** Indicate the whether needs to ignore the active gap pattern ind or standby gap notify ind.
Bit0 - Ignore the active gap pattern when set as 1; Bit1 - Ignore the standby gap notify when set as 1.*/
kal_bool GapServiceEnable; /** Indicate the gap service enable status. */
kal_uint8 GapStopSuspendEvent; /** To record the gap stop req and gap suspend req event.*/
kal_uint32 AutoGapStartTime; /** The GM need LL1A to return the auto time.*/
kal_uint16 DrxCycleLen; /** LL1A Needs to record the DrxCycle Length for evdo active idle mode.*/
kal_bool IsC2kOnSim2; /* to indicate EVDO in SIM1 or SIM2 */
}Ll1aScheInfoT;
//#ifdef C2K_LL1_STUB_TARGET_SUPPORT /* for NWSIM UT/IT build in elt_msg_struct.h */
/** The 1xRTT's mode status enmu. */
typedef enum
{
LTE_ACTIVE_NULL,
LTE_ACTIVE_IDLE,
LTE_ACTIVE_CONNECT
}Ll1aLteStubModeT;
/* Ll1a stub definitaion for target standby */
typedef struct
{
Ll1aLteStubModeT LteMode; /* LTE active mode. */
kal_bool StopGapInGapRange; /* whether need LL1A send stop gap to EVL1 during gap range */
}Ll1aLteActiveInfoT;
/* Ll1a stub definitaion for target standby */
typedef struct
{
kal_uint32 NullGapLen; /* LTE active Null gap length, Max is 5000000, Uint:us . */
kal_uint32 IdleGapLen; /* LTE active Idle gap length, Max is 10000000, Uint:us . */
kal_uint32 ConnGapLen; /* LTE active Connect gap length, Max is 6000, Uint:us . */
kal_uint32 AutoGapLen; /* LL1A send auto gap stop with this length when has offer auto gap to EVL1,Max is 600000 Uint:us . */
}Ll1aStandbyGapLenIndT;
/* Ll1a stub definitaion for target standby */
typedef struct
{
Ll1aLteActiveInfoT LteActiveInfo; /* LTE active info. */
kal_uint16 NormalGapCnt; /* to record how many gaps have sent to EVL1 */
kal_uint16 AutoGapCnt; /* to record how many gaps have sent to EVL1 */
Ll1aStandbyGapLenIndT GapLength; /* to record gap length from script indication */
}Ll1aStubInfoT;
//#endif
/*****************************************************************************
* End of File
*****************************************************************************/
#endif
#endif