Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
smd_private.h File Reference
#include <linux/platform_device.h>
#include <linux/spinlock.h>
#include <linux/list.h>
#include <linux/io.h>
#include <mach/msm_iomap.h>

Go to the source code of this file.

Data Structures

struct  smem_heap_info
 
struct  smem_heap_entry
 
struct  smem_proc_comm
 
struct  smem_shared
 
struct  msm_dem_slave_data
 
struct  smd_alloc_elm
 
struct  smd_half_channel
 
struct  smd_shared_v1
 
struct  smd_shared_v2
 
struct  smd_channel
 

Macros

#define PC_APPS   0
 
#define PC_MODEM   1
 
#define VERSION_SMD   0
 
#define VERSION_QDSP6   4
 
#define VERSION_APPS_SBL   6
 
#define VERSION_MODEM_SBL   7
 
#define VERSION_APPS   8
 
#define VERSION_MODEM   9
 
#define SMSM_V1_SIZE   (sizeof(unsigned) * 8)
 
#define SMSM_V2_SIZE   (sizeof(unsigned) * 4)
 
#define DEM_MAX_PORT_NAME_LEN   (20)
 
#define SZ_DIAG_ERR_MSG   0xC8
 
#define ID_DIAG_ERR_MSG   SMEM_DIAG_ERR_MESSAGE
 
#define ID_SMD_CHANNELS   SMEM_SMD_BASE_ID
 
#define ID_SHARED_STATE   SMEM_SMSM_SHARED_STATE
 
#define ID_CH_ALLOC_TBL   SMEM_CHANNEL_ALLOC_TBL
 
#define SMSM_INIT   0x00000001
 
#define SMSM_SMDINIT   0x00000008
 
#define SMSM_RPCINIT   0x00000020
 
#define SMSM_RESET   0x00000040
 
#define SMSM_RSA   0x00000080
 
#define SMSM_RUN   0x00000100
 
#define SMSM_PWRC   0x00000200
 
#define SMSM_TIMEWAIT   0x00000400
 
#define SMSM_TIMEINIT   0x00000800
 
#define SMSM_PWRC_EARLY_EXIT   0x00001000
 
#define SMSM_WFPI   0x00002000
 
#define SMSM_SLEEP   0x00004000
 
#define SMSM_SLEEPEXIT   0x00008000
 
#define SMSM_APPS_REBOOT   0x00020000
 
#define SMSM_SYSTEM_POWER_DOWN   0x00040000
 
#define SMSM_SYSTEM_REBOOT   0x00080000
 
#define SMSM_SYSTEM_DOWNLOAD   0x00100000
 
#define SMSM_PWRC_SUSPEND   0x00200000
 
#define SMSM_APPS_SHUTDOWN   0x00400000
 
#define SMSM_SMD_LOOPBACK   0x00800000
 
#define SMSM_RUN_QUIET   0x01000000
 
#define SMSM_MODEM_WAIT   0x02000000
 
#define SMSM_MODEM_BREAK   0x04000000
 
#define SMSM_MODEM_CONTINUE   0x08000000
 
#define SMSM_UNKNOWN   0x80000000
 
#define SMSM_WKUP_REASON_RPC   0x00000001
 
#define SMSM_WKUP_REASON_INT   0x00000002
 
#define SMSM_WKUP_REASON_GPIO   0x00000004
 
#define SMSM_WKUP_REASON_TIMER   0x00000008
 
#define SMSM_WKUP_REASON_ALARM   0x00000010
 
#define SMSM_WKUP_REASON_RESET   0x00000020
 
#define SMEM_NUM_SMD_CHANNELS   64
 
#define SMD_SS_CLOSED   0x00000000
 
#define SMD_SS_OPENING   0x00000001
 
#define SMD_SS_OPENED   0x00000002
 
#define SMD_SS_FLUSHING   0x00000003
 
#define SMD_SS_CLOSING   0x00000004
 
#define SMD_SS_RESET   0x00000005
 
#define SMD_SS_RESET_OPENING   0x00000006
 
#define SMD_BUF_SIZE   8192
 
#define SMD_CHANNELS   64
 
#define SMD_HEADER_SIZE   20
 
#define SMD_TYPE_MASK   0x0FF
 
#define SMD_TYPE_APPS_MODEM   0x000
 
#define SMD_TYPE_APPS_DSP   0x001
 
#define SMD_TYPE_MODEM_DSP   0x002
 
#define SMD_KIND_MASK   0xF00
 
#define SMD_KIND_UNKNOWN   0x000
 
#define SMD_KIND_STREAM   0x100
 
#define SMD_KIND_PACKET   0x200
 

Enumerations

enum  smsm_state_item {
  SMSM_STATE_APPS, SMSM_STATE_MODEM, SMSM_STATE_HEXAGON, SMSM_STATE_APPS_DEM,
  SMSM_STATE_MODEM_DEM, SMSM_STATE_QDSP6_DEM, SMSM_STATE_POWER_MASTER_DEM, SMSM_STATE_TIME_MASTER_DEM,
  SMSM_STATE_COUNT
}
 
enum  smem_mem_type {
  SMEM_PROC_COMM = 0, SMEM_HEAP_INFO, SMEM_ALLOCATION_TABLE, SMEM_VERSION_INFO,
  SMEM_HW_RESET_DETECT, SMEM_AARM_WARM_BOOT, SMEM_DIAG_ERR_MESSAGE, SMEM_SPINLOCK_ARRAY,
  SMEM_MEMORY_BARRIER_LOCATION, SMEM_AARM_PARTITION_TABLE, SMEM_AARM_BAD_BLOCK_TABLE, SMEM_RESERVE_BAD_BLOCKS,
  SMEM_WM_UUID, SMEM_CHANNEL_ALLOC_TBL, SMEM_SMD_BASE_ID, SMEM_SMEM_LOG_IDX = SMEM_SMD_BASE_ID + SMEM_NUM_SMD_CHANNELS,
  SMEM_SMEM_LOG_EVENTS, SMEM_SMEM_STATIC_LOG_IDX, SMEM_SMEM_STATIC_LOG_EVENTS, SMEM_SMEM_SLOW_CLOCK_SYNC,
  SMEM_SMEM_SLOW_CLOCK_VALUE, SMEM_BIO_LED_BUF, SMEM_SMSM_SHARED_STATE, SMEM_SMSM_INT_INFO,
  SMEM_SMSM_SLEEP_DELAY, SMEM_SMSM_LIMIT_SLEEP, SMEM_SLEEP_POWER_COLLAPSE_DISABLED, SMEM_KEYPAD_KEYS_PRESSED,
  SMEM_KEYPAD_STATE_UPDATED, SMEM_KEYPAD_STATE_IDX, SMEM_GPIO_INT, SMEM_MDDI_LCD_IDX,
  SMEM_MDDI_HOST_DRIVER_STATE, SMEM_MDDI_LCD_DISP_STATE, SMEM_LCD_CUR_PANEL, SMEM_MARM_BOOT_SEGMENT_INFO,
  SMEM_AARM_BOOT_SEGMENT_INFO, SMEM_SLEEP_STATIC, SMEM_SCORPION_FREQUENCY, SMEM_SMD_PROFILES,
  SMEM_TSSC_BUSY, SMEM_HS_SUSPEND_FILTER_INFO, SMEM_BATT_INFO, SMEM_APPS_BOOT_MODE,
  SMEM_VERSION_FIRST, SMEM_VERSION_LAST = SMEM_VERSION_FIRST + 24, SMEM_OSS_RRCASN1_BUF1, SMEM_OSS_RRCASN1_BUF2,
  SMEM_ID_VENDOR0, SMEM_ID_VENDOR1, SMEM_ID_VENDOR2, SMEM_HW_SW_BUILD_ID,
  SMEM_SMD_BLOCK_PORT_BASE_ID, SMEM_SMD_BLOCK_PORT_PROC0_HEAP = SMEM_SMD_BLOCK_PORT_BASE_ID + SMEM_NUM_SMD_CHANNELS, SMEM_SMD_BLOCK_PORT_PROC1_HEAP = SMEM_SMD_BLOCK_PORT_PROC0_HEAP + SMEM_NUM_SMD_CHANNELS, SMEM_I2C_MUTEX = SMEM_SMD_BLOCK_PORT_PROC1_HEAP + SMEM_NUM_SMD_CHANNELS,
  SMEM_SCLK_CONVERSION, SMEM_SMD_SMSM_INTR_MUX, SMEM_SMSM_CPU_INTR_MASK, SMEM_APPS_DEM_SLAVE_DATA,
  SMEM_QDSP6_DEM_SLAVE_DATA, SMEM_CLKREGIM_BSP, SMEM_CLKREGIM_SOURCES, SMEM_SMD_FIFO_BASE_ID,
  SMEM_USABLE_RAM_PARTITION_TABLE = SMEM_SMD_FIFO_BASE_ID + SMEM_NUM_SMD_CHANNELS, SMEM_POWER_ON_STATUS_INFO, SMEM_DAL_AREA, SMEM_SMEM_LOG_POWER_IDX,
  SMEM_SMEM_LOG_POWER_WRAP, SMEM_SMEM_LOG_POWER_EVENTS, SMEM_ERR_CRASH_LOG, SMEM_ERR_F3_TRACE_LOG,
  SMEM_NUM_ITEMS
}
 

Functions

voidsmem_alloc (unsigned id, unsigned size)
 
int smsm_change_state (enum smsm_state_item item, uint32_t clear_mask, uint32_t set_mask)
 
uint32_t smsm_get_state (enum smsm_state_item item)
 
int smsm_set_sleep_duration (uint32_t delay)
 
void smsm_print_sleep_info (void)
 
struct smd_half_channel __attribute__ ((aligned(4), packed))
 
voidsmem_find (unsigned id, unsigned size)
 
voidsmem_item (unsigned id, unsigned *size)
 
uint32_t raw_smsm_get_state (enum smsm_state_item item)
 
void msm_init_last_radio_log (struct module *)
 

Variables

unsigned state
 
unsigned char fDSR
 
unsigned char fCTS
 
unsigned char fCD
 
unsigned char fRI
 
unsigned char fHEAD
 
unsigned char fTAIL
 
unsigned char fSTATE
 
unsigned char fUNUSED
 
unsigned tail
 
unsigned head
 
struct smd_shared_v1 __attribute__
 
struct list_head smd_ch_closed_list
 
struct list_head smd_ch_list_modem
 
struct list_head smd_ch_list_dsp
 
spinlock_t smd_lock
 
spinlock_t smem_lock
 

Macro Definition Documentation

#define DEM_MAX_PORT_NAME_LEN   (20)

Definition at line 74 of file smd_private.h.

#define ID_CH_ALLOC_TBL   SMEM_CHANNEL_ALLOC_TBL

Definition at line 94 of file smd_private.h.

#define ID_DIAG_ERR_MSG   SMEM_DIAG_ERR_MESSAGE

Definition at line 91 of file smd_private.h.

#define ID_SHARED_STATE   SMEM_SMSM_SHARED_STATE

Definition at line 93 of file smd_private.h.

#define ID_SMD_CHANNELS   SMEM_SMD_BASE_ID

Definition at line 92 of file smd_private.h.

#define PC_APPS   0

Definition at line 47 of file smd_private.h.

#define PC_MODEM   1

Definition at line 48 of file smd_private.h.

#define SMD_BUF_SIZE   8192

Definition at line 245 of file smd_private.h.

#define SMD_CHANNELS   64

Definition at line 246 of file smd_private.h.

#define SMD_HEADER_SIZE   20

Definition at line 248 of file smd_private.h.

#define SMD_KIND_MASK   0xF00

Definition at line 320 of file smd_private.h.

#define SMD_KIND_PACKET   0x200

Definition at line 323 of file smd_private.h.

#define SMD_KIND_STREAM   0x100

Definition at line 322 of file smd_private.h.

#define SMD_KIND_UNKNOWN   0x000

Definition at line 321 of file smd_private.h.

#define SMD_SS_CLOSED   0x00000000

Definition at line 237 of file smd_private.h.

#define SMD_SS_CLOSING   0x00000004

Definition at line 241 of file smd_private.h.

#define SMD_SS_FLUSHING   0x00000003

Definition at line 240 of file smd_private.h.

#define SMD_SS_OPENED   0x00000002

Definition at line 239 of file smd_private.h.

#define SMD_SS_OPENING   0x00000001

Definition at line 238 of file smd_private.h.

#define SMD_SS_RESET   0x00000005

Definition at line 242 of file smd_private.h.

#define SMD_SS_RESET_OPENING   0x00000006

Definition at line 243 of file smd_private.h.

#define SMD_TYPE_APPS_DSP   0x001

Definition at line 317 of file smd_private.h.

#define SMD_TYPE_APPS_MODEM   0x000

Definition at line 316 of file smd_private.h.

#define SMD_TYPE_MASK   0x0FF

Definition at line 315 of file smd_private.h.

#define SMD_TYPE_MODEM_DSP   0x002

Definition at line 318 of file smd_private.h.

#define SMEM_NUM_SMD_CHANNELS   64

Definition at line 155 of file smd_private.h.

#define SMSM_APPS_REBOOT   0x00020000

Definition at line 109 of file smd_private.h.

#define SMSM_APPS_SHUTDOWN   0x00400000

Definition at line 114 of file smd_private.h.

#define SMSM_INIT   0x00000001

Definition at line 96 of file smd_private.h.

#define SMSM_MODEM_BREAK   0x04000000

Definition at line 118 of file smd_private.h.

#define SMSM_MODEM_CONTINUE   0x08000000

Definition at line 119 of file smd_private.h.

#define SMSM_MODEM_WAIT   0x02000000

Definition at line 117 of file smd_private.h.

#define SMSM_PWRC   0x00000200

Definition at line 102 of file smd_private.h.

#define SMSM_PWRC_EARLY_EXIT   0x00001000

Definition at line 105 of file smd_private.h.

#define SMSM_PWRC_SUSPEND   0x00200000

Definition at line 113 of file smd_private.h.

#define SMSM_RESET   0x00000040

Definition at line 99 of file smd_private.h.

#define SMSM_RPCINIT   0x00000020

Definition at line 98 of file smd_private.h.

#define SMSM_RSA   0x00000080

Definition at line 100 of file smd_private.h.

#define SMSM_RUN   0x00000100

Definition at line 101 of file smd_private.h.

#define SMSM_RUN_QUIET   0x01000000

Definition at line 116 of file smd_private.h.

#define SMSM_SLEEP   0x00004000

Definition at line 107 of file smd_private.h.

#define SMSM_SLEEPEXIT   0x00008000

Definition at line 108 of file smd_private.h.

#define SMSM_SMD_LOOPBACK   0x00800000

Definition at line 115 of file smd_private.h.

#define SMSM_SMDINIT   0x00000008

Definition at line 97 of file smd_private.h.

#define SMSM_SYSTEM_DOWNLOAD   0x00100000

Definition at line 112 of file smd_private.h.

#define SMSM_SYSTEM_POWER_DOWN   0x00040000

Definition at line 110 of file smd_private.h.

#define SMSM_SYSTEM_REBOOT   0x00080000

Definition at line 111 of file smd_private.h.

#define SMSM_TIMEINIT   0x00000800

Definition at line 104 of file smd_private.h.

#define SMSM_TIMEWAIT   0x00000400

Definition at line 103 of file smd_private.h.

#define SMSM_UNKNOWN   0x80000000

Definition at line 120 of file smd_private.h.

#define SMSM_V1_SIZE   (sizeof(unsigned) * 8)

Definition at line 64 of file smd_private.h.

#define SMSM_V2_SIZE   (sizeof(unsigned) * 4)

Definition at line 65 of file smd_private.h.

#define SMSM_WFPI   0x00002000

Definition at line 106 of file smd_private.h.

#define SMSM_WKUP_REASON_ALARM   0x00000010

Definition at line 126 of file smd_private.h.

#define SMSM_WKUP_REASON_GPIO   0x00000004

Definition at line 124 of file smd_private.h.

#define SMSM_WKUP_REASON_INT   0x00000002

Definition at line 123 of file smd_private.h.

#define SMSM_WKUP_REASON_RESET   0x00000020

Definition at line 127 of file smd_private.h.

#define SMSM_WKUP_REASON_RPC   0x00000001

Definition at line 122 of file smd_private.h.

#define SMSM_WKUP_REASON_TIMER   0x00000008

Definition at line 125 of file smd_private.h.

#define SZ_DIAG_ERR_MSG   0xC8

Definition at line 90 of file smd_private.h.

#define VERSION_APPS   8

Definition at line 54 of file smd_private.h.

#define VERSION_APPS_SBL   6

Definition at line 52 of file smd_private.h.

#define VERSION_MODEM   9

Definition at line 55 of file smd_private.h.

#define VERSION_MODEM_SBL   7

Definition at line 53 of file smd_private.h.

#define VERSION_QDSP6   4

Definition at line 51 of file smd_private.h.

#define VERSION_SMD   0

Definition at line 50 of file smd_private.h.

Enumeration Type Documentation

Enumerator:
SMEM_PROC_COMM 
SMEM_HEAP_INFO 
SMEM_ALLOCATION_TABLE 
SMEM_VERSION_INFO 
SMEM_HW_RESET_DETECT 
SMEM_AARM_WARM_BOOT 
SMEM_DIAG_ERR_MESSAGE 
SMEM_SPINLOCK_ARRAY 
SMEM_MEMORY_BARRIER_LOCATION 
SMEM_AARM_PARTITION_TABLE 
SMEM_AARM_BAD_BLOCK_TABLE 
SMEM_RESERVE_BAD_BLOCKS 
SMEM_WM_UUID 
SMEM_CHANNEL_ALLOC_TBL 
SMEM_SMD_BASE_ID 
SMEM_SMEM_LOG_IDX 
SMEM_SMEM_LOG_EVENTS 
SMEM_SMEM_STATIC_LOG_IDX 
SMEM_SMEM_STATIC_LOG_EVENTS 
SMEM_SMEM_SLOW_CLOCK_SYNC 
SMEM_SMEM_SLOW_CLOCK_VALUE 
SMEM_BIO_LED_BUF 
SMEM_SMSM_SHARED_STATE 
SMEM_SMSM_INT_INFO 
SMEM_SMSM_SLEEP_DELAY 
SMEM_SMSM_LIMIT_SLEEP 
SMEM_SLEEP_POWER_COLLAPSE_DISABLED 
SMEM_KEYPAD_KEYS_PRESSED 
SMEM_KEYPAD_STATE_UPDATED 
SMEM_KEYPAD_STATE_IDX 
SMEM_GPIO_INT 
SMEM_MDDI_LCD_IDX 
SMEM_MDDI_HOST_DRIVER_STATE 
SMEM_MDDI_LCD_DISP_STATE 
SMEM_LCD_CUR_PANEL 
SMEM_MARM_BOOT_SEGMENT_INFO 
SMEM_AARM_BOOT_SEGMENT_INFO 
SMEM_SLEEP_STATIC 
SMEM_SCORPION_FREQUENCY 
SMEM_SMD_PROFILES 
SMEM_TSSC_BUSY 
SMEM_HS_SUSPEND_FILTER_INFO 
SMEM_BATT_INFO 
SMEM_APPS_BOOT_MODE 
SMEM_VERSION_FIRST 
SMEM_VERSION_LAST 
SMEM_OSS_RRCASN1_BUF1 
SMEM_OSS_RRCASN1_BUF2 
SMEM_ID_VENDOR0 
SMEM_ID_VENDOR1 
SMEM_ID_VENDOR2 
SMEM_HW_SW_BUILD_ID 
SMEM_SMD_BLOCK_PORT_BASE_ID 
SMEM_SMD_BLOCK_PORT_PROC0_HEAP 
SMEM_SMD_BLOCK_PORT_PROC1_HEAP 
SMEM_I2C_MUTEX 
SMEM_SCLK_CONVERSION 
SMEM_SMD_SMSM_INTR_MUX 
SMEM_SMSM_CPU_INTR_MASK 
SMEM_APPS_DEM_SLAVE_DATA 
SMEM_QDSP6_DEM_SLAVE_DATA 
SMEM_CLKREGIM_BSP 
SMEM_CLKREGIM_SOURCES 
SMEM_SMD_FIFO_BASE_ID 
SMEM_USABLE_RAM_PARTITION_TABLE 
SMEM_POWER_ON_STATUS_INFO 
SMEM_DAL_AREA 
SMEM_SMEM_LOG_POWER_IDX 
SMEM_SMEM_LOG_POWER_WRAP 
SMEM_SMEM_LOG_POWER_EVENTS 
SMEM_ERR_CRASH_LOG 
SMEM_ERR_F3_TRACE_LOG 
SMEM_NUM_ITEMS 

Definition at line 157 of file smd_private.h.

Enumerator:
SMSM_STATE_APPS 
SMSM_STATE_MODEM 
SMSM_STATE_HEXAGON 
SMSM_STATE_APPS_DEM 
SMSM_STATE_MODEM_DEM 
SMSM_STATE_QDSP6_DEM 
SMSM_STATE_POWER_MASTER_DEM 
SMSM_STATE_TIME_MASTER_DEM 
SMSM_STATE_COUNT 

Definition at line 136 of file smd_private.h.

Function Documentation

void msm_init_last_radio_log ( struct module )

Definition at line 55 of file last_radio_log.c.

uint32_t raw_smsm_get_state ( enum smsm_state_item  item)

Definition at line 107 of file smd.c.

void* smem_alloc ( unsigned  id,
unsigned  size 
)

Definition at line 788 of file smd.c.

void* smem_find ( unsigned  id,
unsigned  size 
)

Definition at line 811 of file smd.c.

void* smem_item ( unsigned  id,
unsigned *  size 
)

Definition at line 793 of file smd.c.

int smsm_change_state ( enum smsm_state_item  item,
uint32_t  clear_mask,
uint32_t  set_mask 
)

Definition at line 851 of file smd.c.

uint32_t smsm_get_state ( enum smsm_state_item  item)

Definition at line 878 of file smd.c.

void smsm_print_sleep_info ( void  )

Definition at line 262 of file smd_debug.c.

int smsm_set_sleep_duration ( uint32_t  delay)

Definition at line 915 of file smd.c.

Variable Documentation

unsigned char fCD

Definition at line 273 of file smd_private.h.

unsigned char fCTS

Definition at line 272 of file smd_private.h.

unsigned char fDSR

Definition at line 271 of file smd_private.h.

unsigned char fHEAD

Definition at line 275 of file smd_private.h.

unsigned char fRI

Definition at line 274 of file smd_private.h.

unsigned char fSTATE

Definition at line 277 of file smd_private.h.

unsigned char fTAIL

Definition at line 276 of file smd_private.h.

unsigned char fUNUSED

Definition at line 278 of file smd_private.h.

unsigned head

Definition at line 280 of file smd_private.h.

struct list_head smd_ch_closed_list
struct list_head smd_ch_list_dsp
struct list_head smd_ch_list_modem
spinlock_t smd_lock
spinlock_t smem_lock
static void state

Definition at line 270 of file smd_private.h.

unsigned tail

Definition at line 279 of file smd_private.h.