1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
/////////////////////////////////////////////////////////////////////////////////////////////
//// ASUS Debugging mechanism
/////////////////////////////////////////////////////////////////////////////////////////////
#ifndef __ASUSDEBUG_H__
#define __ASUSDEBUG_H__
// #include <linux/asus_ver.h>
/////////////////////////////////////////////////////////////////////////////////////////////
//// Debug mask mechanism
/////////////////////////////////////////////////////////////////////////////////////////////
extern phys_addr_t PRINTK_BUFFER_PA;
extern void *PRINTK_BUFFER_VA;
extern phys_addr_t RTB_BUFFER_PA;
#define PRINTK_BUFFER_SIZE (0x00200000)
#define PRINTK_BUFFER_MAGIC (0xFEEDBEEF)
#define PRINTK_BUFFER_SLOT_SIZE (0x00040000)
#define PRINTK_BUFFER_SLOT1 (PRINTK_BUFFER_VA)
#define PRINTK_BUFFER_SLOT2 ((void *)((ulong)PRINTK_BUFFER_VA + (ulong)PRINTK_BUFFER_SLOT_SIZE))
#define PHONE_HANG_LOG_BUFFER ((void *)((ulong)PRINTK_BUFFER_VA + (ulong)2*PRINTK_BUFFER_SLOT_SIZE) - (ulong)0x3F000)
#define PHONE_HANG_LOG_SIZE (0x00080000 + 0x3F000)
#define ASUS_DBG_FILTER_PATH "/data/log/asus_debug_filter"
#define ASUS_MSK_GROUP (64)
#define ASUS_MSK_MAGIC (0xFC)
#define DEFAULT_MASK {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,\
0x00,0x00,0x00,0x00}
//ASUS_BSP +++ SamChen 20101001 add for audio debug mask
#define DBGMSK_SND_G0 "\xFC\x01\x01" // normal
#define DBGMSK_SND_G1 "\xFC\x01\x02" // tpa2018
#define DBGMSK_SND_G2 "\xFC\x01\x04" // FM33 and I2C extend GPIO
#define DBGMSK_SND_G3 "\xFC\x01\x08" // Headset and HOOK Key
#define DBGMSK_SND_G4 "\xFC\x01\x10"
#define DBGMSK_SND_G5 "\xFC\x01\x20"
#define DBGMSK_SND_G6 "\xFC\x01\x40"
#define DBGMSK_SND_G7 "\xFC\x01\x80"
//ASUS_BSP --- SamChen 20101001 add for audio debug mask
//ASUS_BSP +++ Mickey 20101001 add for LCD debug mask
#define DBGMSK_LCD_G0 "\xFC\x02\x01"
#define DBGMSK_LCD_G1 "\xFC\x02\x02"
#define DBGMSK_LCD_G2 "\xFC\x02\x04"
#define DBGMSK_LCD_G3 "\xFC\x02\x08"
#define DBGMSK_LCD_G4 "\xFC\x02\x10"
#define DBGMSK_LCD_G5 "\xFC\x02\x20"
#define DBGMSK_LCD_G6 "\xFC\x02\x40"
#define DBGMSK_LCD_G7 "\xFC\x02\x80"
//ASUS_BSP --- Mickey 20101001 add for LCD debug mask
// Add for Battery debug mask Bruno 20101001
#define DBGMSK_BAT_G0 "\xFC\x03\x01"
#define DBGMSK_BAT_G1 "\xFC\x03\x02"
#define DBGMSK_BAT_G2 "\xFC\x03\x04"
#define DBGMSK_BAT_G3 "\xFC\x03\x08"
#define DBGMSK_BAT_G4 "\xFC\x03\x10"
#define DBGMSK_BAT_G5 "\xFC\x03\x20"
#define DBGMSK_BAT_G6 "\xFC\x03\x40"
#define DBGMSK_BAT_G7 "\xFC\x03\x80"
// Add for Battery debug mask Bruno 20101001
// Add for KeyPad debug mask Bruno 20101001
#define DBGMSK_KPD_G0 "\xFC\x04\x01"
#define DBGMSK_KPD_G1 "\xFC\x04\x02"
#define DBGMSK_KPD_G2 "\xFC\x04\x04"
#define DBGMSK_KPD_G3 "\xFC\x04\x08"
#define DBGMSK_KPD_G4 "\xFC\x04\x10"
#define DBGMSK_KPD_G5 "\xFC\x04\x20"
#define DBGMSK_KPD_G6 "\xFC\x04\x40"
#define DBGMSK_KPD_G7 "\xFC\x04\x80"
// Add for KeyPad debug mask Bruno 20101001
//Larry Lai#20101001 add i2c debug message mask
#define DBGMSK_I2C_G0 "\xFC\x05\x01" // normal
#define DBGMSK_I2C_G1 "\xFC\x05\x02" // buses, algos
#define DBGMSK_I2C_G2 "\xFC\x05\x04" //
#define DBGMSK_I2C_G3 "\xFC\x05\x08" //
#define DBGMSK_I2C_G4 "\xFC\x05\x10" //
#define DBGMSK_I2C_G5 "\xFC\x05\x20" //
#define DBGMSK_I2C_G6 "\xFC\x05\x40" //
#define DBGMSK_I2C_G7 "\xFC\x05\x80" // stress
//Joe chang touch message mask
#define DBGMSK_TCH_G0 "\xFC\x06\x01"
#define DBGMSK_TCH_G1 "\xFC\x06\x02"
#define DBGMSK_TCH_G2 "\xFC\x06\x04"
#define DBGMSK_TCH_G3 "\xFC\x06\x08"
#define DBGMSK_TCH_G4 "\xFC\x06\x10"
#define DBGMSK_TCH_G5 "\xFC\x06\x20"
#define DBGMSK_TCH_G6 "\xFC\x06\x40"
#define DBGMSK_TCH_G7 "\xFC\x06\x80"
//Ledger ++#20101013 add power manger debug message mask
#define DBGMSK_PWR_G0 "\xFC\x07\x01" //
#define DBGMSK_PWR_G1 "\xFC\x07\x02" //
#define DBGMSK_PWR_G2 "\xFC\x07\x04" //
#define DBGMSK_PWR_G3 "\xFC\x07\x08" //
#define DBGMSK_PWR_G4 "\xFC\x07\x10" //
#define DBGMSK_PWR_G5 "\xFC\x07\x20" //
#define DBGMSK_PWR_G6 "\xFC\x07\x40" //
#define DBGMSK_PWR_G7 "\xFC\x07\x80" //
//Ledger --#20101013 add power manger debug message mask
//Rice ++#20101014 add camera debug message mask
#define DBGMSK_CAM_G0 "\xFC\x08\x01" //
#define DBGMSK_CAM_G1 "\xFC\x08\x02" //5M
#define DBGMSK_CAM_G2 "\xFC\x08\x04" //VGA
#define DBGMSK_CAM_G3 "\xFC\x08\x08" //
#define DBGMSK_CAM_G4 "\xFC\x08\x10" //
#define DBGMSK_CAM_G5 "\xFC\x08\x20" //
#define DBGMSK_CAM_G6 "\xFC\x08\x40" //
#define DBGMSK_CAM_G7 "\xFC\x08\x80" //
//Rice --#20101014 add camera debug message mask
//Ledger ++#20101101 add Vibrator debug message mask
#define DBGMSK_VIB_G0 "\xFC\x09\x01" //
#define DBGMSK_VIB_G1 "\xFC\x09\x02" //
#define DBGMSK_VIB_G2 "\xFC\x09\x04" //
#define DBGMSK_VIB_G3 "\xFC\x09\x08" //
#define DBGMSK_VIB_G4 "\xFC\x09\x10" //
#define DBGMSK_VIB_G5 "\xFC\x09\x20" //
#define DBGMSK_VIB_G6 "\xFC\x09\x40" //
#define DBGMSK_VIB_G7 "\xFC\x09\x80" //
//Ledger --#20101101 add Vibrator debug message mask
//Larry Lai#20110526 add i2c bus debug mask
#define DBGMSK_TWSI_G0 "\xFC\x0A\x01" // gen1 i2c
#define DBGMSK_TWSI_G1 "\xFC\x0A\x02" // gen2 i2c
#define DBGMSK_TWSI_G2 "\xFC\x0A\x04" // cam i2c
#define DBGMSK_TWSI_G3 "\xFC\x0A\x08" // ddc i2c
#define DBGMSK_TWSI_G4 "\xFC\x0A\x10" // power i2c
#define DBGMSK_TWSI_G5 "\xFC\x0A\x20" //
#define DBGMSK_TWSI_G6 "\xFC\x0A\x40" //
#define DBGMSK_TWSI_G7 "\xFC\x0A\x80" //
//ASUS_BSP+++ Wenli "smd debug mask"
#define DBGMSK_SMD_G0 "\xFC\x0B\x01" // SMD Error
#define DBGMSK_SMD_G1 "\xFC\x0B\x02" // SMD Warm
#define DBGMSK_SMD_G2 "\xFC\x0B\x04" // SMD Info
#define DBGMSK_SMD_G3 "\xFC\x0B\x08" // SMD Debug
#define DBGMSK_SMD_G4 "\xFC\x0B\x10" // smd_xxx Error
#define DBGMSK_SMD_G5 "\xFC\x0B\x20" // smd_xxx Warm
#define DBGMSK_SMD_G6 "\xFC\x0B\x40" // smd_xxx Info
#define DBGMSK_SMD_G7 "\xFC\x0B\x80" // smd_xxx Debug
//ASUS_BSP--- Wenli "smd debug mask"
//[cm3623] for light and proximity sensor debug mask
#define DBGMSK_PRX_G0 "\xFC\x0C\x01" // CM3623 & AL3010 Error
#define DBGMSK_PRX_G1 "\xFC\x0C\x02" // CM3623 & AL3010 Warm
#define DBGMSK_PRX_G2 "\xFC\x0C\x04" // CM3623 & AL3010 Info
#define DBGMSK_PRX_G3 "\xFC\x0C\x08" // Light sensor Info
#define DBGMSK_PRX_G4 "\xFC\x0C\x10" // Proximity Info
#define DBGMSK_PRX_G5 "\xFC\x0C\x20" // ATD Info
#define DBGMSK_PRX_G6 "\xFC\x0C\x40" // AL3010 Info
#define DBGMSK_PRX_G7 "\xFC\x0C\x80" // CM3623 Debug Trace
//backlight driver debug mask
#define DBGMSK_BL_G0 "\xFC\x0d\x01" //
#define DBGMSK_BL_G1 "\xFC\x0d\x02" //
#define DBGMSK_BL_G2 "\xFC\x0d\x04" //
#define DBGMSK_BL_G3 "\xFC\x0d\x08" //
#define DBGMSK_BL_G4 "\xFC\x0d\x10" //
#define DBGMSK_BL_G5 "\xFC\x0d\x20" //
#define DBGMSK_BL_G6 "\xFC\x0d\x40" //
#define DBGMSK_BL_G7 "\xFC\x0d\x80" //
//Ledger ++#20120311 add gpio debug message mask
#define DBGMSK_GIO_G0 "\xFC\x0e\x01" //
#define DBGMSK_GIO_G1 "\xFC\x0e\x02" //
#define DBGMSK_GIO_G2 "\xFC\x0e\x04" //
#define DBGMSK_GIO_G3 "\xFC\x0e\x08" //
#define DBGMSK_GIO_G4 "\xFC\x0e\x10" //
#define DBGMSK_GIO_G5 "\xFC\x0e\x20" //
#define DBGMSK_GIO_G6 "\xFC\x0e\x40" //
#define DBGMSK_GIO_G7 "\xFC\x0e\x80" //
//Ledger --#20120311 add gpio debug message mask
/////////////////////////////////////////////////////////////////////////////////////////////
//// Eventlog mask mechanism
/////////////////////////////////////////////////////////////////////////////////////////////
#define ASUS_ASDF_BASE_DIR "/asdf/"
#define ASUS_EVTLOG_PATH ASUS_ASDF_BASE_DIR"ASUSEvtlog"
#define ASUS_EVTLOG_STR_MAXLEN (256)
#define ASUS_EVTLOG_MAX_ITEM (20)
void save_all_thread_info(void);
void delta_all_thread_info(void);
void save_phone_hang_log(int delta);
void save_last_shutdown_log(char *filename);
#if defined(CONFIG_MSM_RTB)
void save_rtb_log(void);
#endif
void get_last_shutdown_log(void);
void printk_lcd(const char *fmt, ...);
void printk_lcd_xy(int xx, int yy, unsigned int color, const char *fmt, ...);
void ASUSEvtlog(const char *fmt, ...);
//20101202_Bruno: added to get debug mask value
bool isASUS_MSK_set(const char *fmt);
uint32_t get_modem_debug_value(void);
void set_modem_debug_value(uint32_t val);
uint32_t get_rpm_turbo_require_count(void);
void set_rpm_turbo_require_count(uint32_t val);
uint32_t get_rpm_turbo_require_reset_time(void);
void set_rpm_turbo_require_reset_time(uint32_t val);
uint32_t get_rpm_turbo_target_count(void);
void set_rpm_turbo_target_count(uint32_t val);
#endif
|