📄 lcd_plat.cod
字号:
000d0 00000000 DCD |??_C@_1BK@HNDINEGH@?$AAV?$AAe?$AAr?$AAt?$AAi?$AAc?$AAa?$AAl?$AAS?$AAi?$AAz?$AAe?$AA?$AA@|
000d4 |$LN13@get_screen|
000d4 00000000 DCD |??_C@_1BO@CPEMBNKP@?$AAH?$AAo?$AAr?$AAi?$AAz?$AAo?$AAn?$AAt?$AAa?$AAl?$AAS?$AAi?$AAz?$AAe?$AA?$AA@|
000d8 |$LN14@get_screen|
000d8 00000000 DCD |?s_szGPERegKey@?1??get_screen_size@@9@9|
000dc |$M42681|
ENDP ; |get_screen_size|
00000 AREA |.pdata|, PDATA
|$T42698| DCD |$LN7@is_vga|
DCD 0x40000e02
; Function compile flags: /Ogspy
00000 AREA |.text|, CODE, ARM
00000 |is_vga| PROC
; 128 : {
00000 |$LN7@is_vga|
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd008 sub sp, sp, #8
00008 |$M42695|
; 129 : UINT32 width, height;
; 130 : get_screen_size(&width, &height);
00008 e28d1000 add r1, sp, #0
0000c e28d0004 add r0, sp, #4
00010 eb000000 bl get_screen_size
; 131 : return width * height == 640 * 480;
00014 e59d2000 ldr r2, [sp]
00018 e59d3004 ldr r3, [sp, #4]
0001c e0020293 mul r2, r3, r2
00020 e3520a4b cmp r2, #0x4B, 20
00024 03a00001 moveq r0, #1
00028 13a00000 movne r0, #0
; 132 : }
0002c e28dd008 add sp, sp, #8
00030 e49de004 ldr lr, [sp], #4
00034 e12fff1e bx lr
00038 |$M42696|
ENDP ; |is_vga|
EXPORT |__$ArrayPad$| [ DATA ]
EXPORT |LCDPanelSelect|
EXPORT |??_C@_1DM@NGGLONBF@?$AAu?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAl?$AAc?$AAd?$AA?5?$AAp?$AAa?$AAn?$AAe?$AAl?$AA?5?$AA0?$AA2?$AA8?$AA3?$AA?$CI?$AAQ?$AAV?$AAG?$AAA?$AA?$CJ?$AA?4?$AA?$AN?$AA?6?$AA?$AA@| [ DATA ] ; `string'
IMPORT |vga_qvga_panel_init|
IMPORT |NKDbgPrintfW|
IMPORT |memcpy|
00000 AREA |.pdata|, PDATA
|$T42745| DCD |$LN24@LCDPanelSe|
DCD 0xc0003a02
00000 AREA |.xdata|, DATA
|$T42741| DCD 0xffffffe4
00000 AREA |.rdata|, DATA, READONLY
|??_C@_1DM@NGGLONBF@?$AAu?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAl?$AAc?$AAd?$AA?5?$AAp?$AAa?$AAn?$AAe?$AAl?$AA?5?$AA0?$AA2?$AA8?$AA3?$AA?$CI?$AAQ?$AAV?$AAG?$AAA?$AA?$CJ?$AA?4?$AA?$AN?$AA?6?$AA?$AA@| DCB "u"
DCB 0x0, "s", 0x0, "i", 0x0, "n", 0x0, "g", 0x0, " ", 0x0, "l"
DCB 0x0, "c", 0x0, "d", 0x0, " ", 0x0, "p", 0x0, "a", 0x0, "n"
DCB 0x0, "e", 0x0, "l", 0x0, " ", 0x0, "0", 0x0, "2", 0x0, "8"
DCB 0x0, "3", 0x0, "(", 0x0, "Q", 0x0, "V", 0x0, "G", 0x0, "A"
DCB 0x0, ")", 0x0, ".", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogspy
00000 AREA |.text|, CODE, ARM
00000 00000000 DCD |__GSHandlerCheck|
00004 00000000 DCD |$T42741|
00008 |LCDPanelSelect| PROC
; 135 : {
00008 |$LN24@LCDPanelSe|
00008 e92d41f0 stmdb sp!, {r4 - r8, lr}
0000c e24dde17 sub sp, sp, #0x17, 28
00010 |$M42742|
00010 e1a05000 mov r5, r0
00014 e59f30d0 ldr r3, [pc, #0xD0]
00018 e5933000 ldr r3, [r3]
0001c e58d316c str r3, [sp, #0x16C]
; 136 : active_panel_t *p;
; 137 :
; 138 : DWORD out_size;
; 139 : DWORD in_buf[2];
; 140 : XLLP_LCD_T outbuf;
; 141 : DWORD cfg;
; 142 :
; 143 :
; 144 : cfg = get_panel_type();
00020 e59f00c0 ldr r0, [pc, #0xC0]
00024 e28de008 add lr, sp, #8
00028 e3a040c0 mov r4, #0xC0
0002c e28d30ac add r3, sp, #0xAC
00030 e3a02000 mov r2, #0
00034 e3a01000 mov r1, #0
00038 e58de004 str lr, [sp, #4]
0003c e58d4000 str r4, [sp]
00040 eb000000 bl KernelIoControl
; 145 : cfg =4;
; 146 : switch (cfg)
; 147 : {
; 148 : case LCD_PANEL_ID_VGA_QVGA_OLED_LEAD:
; 149 : p = (void*)vga_qvga_panel_init(is_vga(),1);
; 150 : break;
; 151 :
; 152 : case XLLP_LCD_PANEL_ID_0283:
; 153 : NKDbgPrintfW(TEXT("using lcd panel 0283(QVGA).\r\n"));
00044 e59f0098 ldr r0, [pc, #0x98]
00048 eb000000 bl NKDbgPrintfW
; 154 : p = (void*)vga_qvga_panel_init(is_vga(), 1);
0004c e28d100c add r1, sp, #0xC
00050 e28d0008 add r0, sp, #8
00054 eb000000 bl get_screen_size
00058 e59d200c ldr r2, [sp, #0xC]
0005c e59d3008 ldr r3, [sp, #8]
00060 e3a01001 mov r1, #1
00064 e0020293 mul r2, r3, r2
00068 e3520a4b cmp r2, #0x4B, 20
0006c 03a00001 moveq r0, #1
00070 13a00000 movne r0, #0
00074 eb000000 bl vga_qvga_panel_init
00078 e1a04000 mov r4, r0
; 155 : break;
; 156 :
; 157 :
; 158 : case LCD_PANEL_ID_VGA_QVGA_OLED_LEAD_FREE:
; 159 : case LCD_PANEL_ID_VGA_QVGA_OLED_LEAD_FREE_LANDSCAPE:
; 160 :
; 161 : default:
; 162 : p = (void*)vga_qvga_panel_init( is_vga(),0);
; 163 :
; 164 : break;
; 165 : }
; 166 :
; 167 : *panel = (void*)p;
; 168 : in_buf[0] = cfg;
; 169 : in_buf[1] = 0;
; 170 : KernelIoControl(IOCTL_LCD_INIT, in_buf, sizeof(in_buf), (void *)&outbuf, sizeof(XLLP_LCD_T), &out_size);
0007c e59f005c ldr r0, [pc, #0x5C]
00080 e3a06004 mov r6, #4
00084 e3a07000 mov r7, #0
00088 e28de018 add lr, sp, #0x18
0008c e3a08090 mov r8, #0x90
00090 e28d301c add r3, sp, #0x1C
00094 e3a02008 mov r2, #8
00098 e28d1010 add r1, sp, #0x10
0009c e5854000 str r4, [r5]
000a0 e58d6010 str r6, [sp, #0x10]
000a4 e58d7014 str r7, [sp, #0x14]
000a8 e58de004 str lr, [sp, #4]
000ac e58d8000 str r8, [sp]
000b0 eb000000 bl KernelIoControl
; 171 : XllpLCD=outbuf;
000b4 e59f0020 ldr r0, [pc, #0x20]
000b8 e28d101c add r1, sp, #0x1C
000bc e3a02090 mov r2, #0x90
000c0 eb000000 bl memcpy
; 172 : return TRUE;
000c4 e59d016c ldr r0, [sp, #0x16C]
000c8 eb000000 bl __security_check_cookie
000cc e3a00001 mov r0, #1
; 173 : }
000d0 e28dde17 add sp, sp, #0x17, 28
000d4 e8bd41f0 ldmia sp!, {r4 - r8, lr}
000d8 e12fff1e bx lr
000dc |$LN25@LCDPanelSe|
000dc |$LN26@LCDPanelSe|
000dc 00000000 DCD |XllpLCD|
000e0 |$LN27@LCDPanelSe|
000e0 01013e88 DCD 0x1013e88
000e4 |$LN28@LCDPanelSe|
000e4 00000000 DCD |??_C@_1DM@NGGLONBF@?$AAu?$AAs?$AAi?$AAn?$AAg?$AA?5?$AAl?$AAc?$AAd?$AA?5?$AAp?$AAa?$AAn?$AAe?$AAl?$AA?5?$AA0?$AA2?$AA8?$AA3?$AA?$CI?$AAQ?$AAV?$AAG?$AAA?$AA?$CJ?$AA?4?$AA?$AN?$AA?6?$AA?$AA@|
000e8 |$LN29@LCDPanelSe|
000e8 01013e80 DCD 0x1013e80
000ec |$LN30@LCDPanelSe|
000ec 00000000 DCD |__security_cookie|
000f0 |$M42743|
ENDP ; |LCDPanelSelect|
EXPORT |set_lcd_domain|
EXPORT |??_C@_1IK@CGMIPIFC@?$AA?$FL?$AAL?$AAC?$AAD?$AA?$FN?$AA?5?$AAs?$AAe?$AAt?$AA_?$AAl?$AAc?$AAd?$AA_?$AAd?$AAo?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AAP@| [ DATA ] ; `string'
EXPORT |??_C@_1IK@CDIOALAF@?$AAD?$AA?3?$AA?2?$AAW?$AAI?$AAN?$AAC?$AAE?$AA6?$AA0?$AA0?$AA?2?$AAP?$AAL?$AAA?$AAT?$AAF?$AAO?$AAR?$AAM?$AA?2?$AAM?$AA?9?$AAs?$AAt?$AAo?$AAn?$AAe?$AA?2?$AAS?$AAR?$AAC@| [ DATA ] ; `string'
EXPORT |??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1II@CLHFCBNE@?$AA?$FL?$AAL?$AAC?$AAD?$AA?$FN?$AA?5?$AAs?$AAe?$AAt?$AA_?$AAl?$AAc?$AAd?$AA_?$AAd?$AAo?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AAP@| [ DATA ] ; `string'
IMPORT |PMIC_DisablePower|
IMPORT |PMIC_EnablePower|
00000 AREA |.pdata|, PDATA
|$T42763| DCD |$LN10@set_lcd_do|
DCD 0x40001d01
00000 AREA |.rdata|, DATA, READONLY
|??_C@_1IK@CGMIPIFC@?$AA?$FL?$AAL?$AAC?$AAD?$AA?$FN?$AA?5?$AAs?$AAe?$AAt?$AA_?$AAl?$AAc?$AAd?$AA_?$AAd?$AAo?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AAP@| DCB "["
DCB 0x0, "L", 0x0, "C", 0x0, "D", 0x0, "]", 0x0, " ", 0x0, "s"
DCB 0x0, "e", 0x0, "t", 0x0, "_", 0x0, "l", 0x0, "c", 0x0, "d"
DCB 0x0, "_", 0x0, "d", 0x0, "o", 0x0, "m", 0x0, "a", 0x0, "i"
DCB 0x0, "n", 0x0, " ", 0x0, "f", 0x0, "a", 0x0, "i", 0x0, "l"
DCB 0x0, "e", 0x0, "d", 0x0, " ", 0x0, "i", 0x0, "n", 0x0, " "
DCB 0x0, "P", 0x0, "M", 0x0, "I", 0x0, "C", 0x0, "_", 0x0, "D"
DCB 0x0, "i", 0x0, "s", 0x0, "a", 0x0, "b", 0x0, "l", 0x0, "e"
DCB 0x0, "P", 0x0, "o", 0x0, "w", 0x0, "e", 0x0, "r", 0x0, " "
DCB 0x0, "(", 0x0, "u", 0x0, "l", 0x0, "S", 0x0, "t", 0x0, "a"
DCB 0x0, "t", 0x0, "u", 0x0, "s", 0x0, " ", 0x0, "=", 0x0, " "
DCB 0x0, "%", 0x0, "d", 0x0, ")", 0x0, " ", 0x0, ".", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata|, DATA, READONLY
|??_C@_1IK@CDIOALAF@?$AAD?$AA?3?$AA?2?$AAW?$AAI?$AAN?$AAC?$AAE?$AA6?$AA0?$AA0?$AA?2?$AAP?$AAL?$AAA?$AAT?$AAF?$AAO?$AAR?$AAM?$AA?2?$AAM?$AA?9?$AAs?$AAt?$AAo?$AAn?$AAe?$AA?2?$AAS?$AAR?$AAC@| DCB "D"
DCB 0x0, ":", 0x0, "\\", 0x0, "W", 0x0, "I", 0x0, "N", 0x0, "C"
DCB 0x0, "E", 0x0, "6", 0x0, "0", 0x0, "0", 0x0, "\\", 0x0, "P"
DCB 0x0, "L", 0x0, "A", 0x0, "T", 0x0, "F", 0x0, "O", 0x0, "R"
DCB 0x0, "M", 0x0, "\\", 0x0, "M", 0x0, "-", 0x0, "s", 0x0, "t"
DCB 0x0, "o", 0x0, "n", 0x0, "e", 0x0, "\\", 0x0, "S", 0x0, "R"
DCB 0x0, "C", 0x0, "\\", 0x0, "D", 0x0, "R", 0x0, "I", 0x0, "V"
DCB 0x0, "E", 0x0, "R", 0x0, "S", 0x0, "\\", 0x0, "D", 0x0, "i"
DCB 0x0, "s", 0x0, "p", 0x0, "l", 0x0, "a", 0x0, "y", 0x0, "\\"
DCB 0x0, "p", 0x0, "a", 0x0, "n", 0x0, "e", 0x0, "l", 0x0, "s"
DCB 0x0, "\\", 0x0, ".", 0x0, "\\", 0x0, "l", 0x0, "c", 0x0, "d"
DCB 0x0, "_", 0x0, "p", 0x0, "l", 0x0, "a", 0x0, "t", 0x0, "."
DCB 0x0, "c", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata|, DATA, READONLY
|??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@| DCB "E"
DCB 0x0, "R", 0x0, "R", 0x0, "O", 0x0, "R", 0x0, ":", 0x0, " "
DCB 0x0, "%", 0x0, "s", 0x0, " ", 0x0, "l", 0x0, "i", 0x0, "n"
DCB 0x0, "e", 0x0, " ", 0x0, "%", 0x0, "d", 0x0, ":", 0x0, " "
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata|, DATA, READONLY
|??_C@_1II@CLHFCBNE@?$AA?$FL?$AAL?$AAC?$AAD?$AA?$FN?$AA?5?$AAs?$AAe?$AAt?$AA_?$AAl?$AAc?$AAd?$AA_?$AAd?$AAo?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AAP@| DCB "["
DCB 0x0, "L", 0x0, "C", 0x0, "D", 0x0, "]", 0x0, " ", 0x0, "s"
DCB 0x0, "e", 0x0, "t", 0x0, "_", 0x0, "l", 0x0, "c", 0x0, "d"
DCB 0x0, "_", 0x0, "d", 0x0, "o", 0x0, "m", 0x0, "a", 0x0, "i"
DCB 0x0, "n", 0x0, " ", 0x0, "f", 0x0, "a", 0x0, "i", 0x0, "l"
DCB 0x0, "e", 0x0, "d", 0x0, " ", 0x0, "i", 0x0, "n", 0x0, " "
DCB 0x0, "P", 0x0, "M", 0x0, "I", 0x0, "C", 0x0, "_", 0x0, "E"
DCB 0x0, "n", 0x0, "a", 0x0, "b", 0x0, "l", 0x0, "e", 0x0, "P"
DCB 0x0, "o", 0x0, "w", 0x0, "e", 0x0, "r", 0x0, " ", 0x0, "("
DCB 0x0, "u", 0x0, "l", 0x0, "S", 0x0, "t", 0x0, "a", 0x0, "t"
DCB 0x0, "u", 0x0, "s", 0x0, " ", 0x0, "=", 0x0, " ", 0x0, "%"
DCB 0x0, "d", 0x0, ")", 0x0, " ", 0x0, ".", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogspy
00000 AREA |.text|, CODE, ARM
00000 |set_lcd_domain| PROC
; 176 : {
00000 |$LN10@set_lcd_do|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M42760|
00004 e3500000 cmp r0, #0
; 177 : /* PMIC Upgrade */
; 178 : /*
; 179 : HANDLE pic_drv;
; 180 : DWORD domain=PIC_DOMAIN_DEBUG_3V;
; 181 :
; 182 : pic_drv = CreateFile(PIC_FILE_NAME, 0, 0, NULL, 0, 0, NULL);
; 183 :
; 184 : if (!pic_drv)
; 185 : ERRORMSG(1, (TEXT("open pic file failed!\r\n")));
; 186 :
; 187 : if(!DeviceIoControl(pic_drv, enable?(PIC_ENABLE_DOMAIN):(PIC_DISABLE_DOMAIN), &domain, sizeof(domain),
; 188 : 0,0,0,0))
; 189 : {
; 190 : ERRORMSG(1,(_T("Error %s domain for LCD.\r\n"), enable? _T("enabling"):_T("disabling")));
; 191 : return;
; 192 : }
; 193 :
; 194 : CloseHandle(pic_drv);
; 195 : */
; 196 :
; 197 : PXA_STATUS_T ulStatus = PXA_STATUS_SUCCESS;
; 198 :
; 199 : if (enable)
; 200 : {
; 201 : /* Enable */
; 202 : ulStatus = PMIC_EnablePower(PMIC_LCD_CLIENT_ID);
00008 e3a00002 mov r0, #2
0000c 0a000008 beq |$LN4@set_lcd_do|
00010 eb000000 bl PMIC_EnablePower
00014 e1b04000 movs r4, r0
; 203 :
; 204 : if (PXA_STATUS_SUCCESS != ulStatus)
00018 0a00000f beq |$LN1@set_lcd_do|
; 205 : {
; 206 : ERRORMSG(1,(_T("[LCD] set_lcd_domain failed in PMIC_EnablePower (ulStatus = %d) .\r\n"), ulStatus));
0001c e59f1048 ldr r1, [pc, #0x48]
00020 e59f0040 ldr r0, [pc, #0x40]
00024 e3a020ce mov r2, #0xCE
00028 eb000000 bl NKDbgPrintfW
0002c e59f003c ldr r0, [pc, #0x3C]
; 207 : return;
00030 ea000007 b |$LN7@set_lcd_do|
00034 |$LN4@set_lcd_do|
; 208 : }
; 209 : }
; 210 : else
; 211 : {
; 212 : /* Disable */
; 213 : ulStatus = PMIC_DisablePower(PMIC_LCD_CLIENT_ID);
00034 eb000000 bl PMIC_DisablePower
00038 e1b04000 movs r4, r0
; 214 :
; 215 : if (PXA_STATUS_SUCCESS != ulStatus)
0003c 0a000006 beq |$LN1@set_lcd_do|
; 216 : {
; 217 : ERRORMSG(1,(_T("[LCD] set_lcd_domain failed in PMIC_DisablePower (ulStatus = %d) .\r\n"), ulStatus));
00040 e59f1024 ldr r1, [pc, #0x24]
00044 e59f001c ldr r0, [pc, #0x1C]
00048 e3a020d9 mov r2, #0xD9
0004c eb000000 bl NKDbgPrintfW
00050 e59f000c ldr r0, [pc, #0xC]
00054 |$LN7@set_lcd_do|
00054 e1a01004 mov r1, r4
00058 eb000000 bl NKDbgPrintfW
0005c |$LN1@set_lcd_do|
; 218 : return;
; 219 : }
; 220 : }
; 221 :
; 222 :
; 223 : }
0005c e8bd4010 ldmia sp!, {r4, lr}
00060 e12fff1e bx lr
00064 |$LN11@set_lcd_do|
00064 |$LN12@set_lcd_do|
00064 00000000 DCD |??_C@_1IK@CGMIPIFC@?$AA?$FL?$AAL?$AAC?$AAD?$AA?$FN?$AA?5?$AAs?$AAe?$AAt?$AA_?$AAl?$AAc?$AAd?$AA_?$AAd?$AAo?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AAP@|
00068 |$LN13@set_lcd_do|
00068 00000000 DCD |??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@|
0006c |$LN14@set_lcd_do|
0006c 00000000 DCD |??_C@_1IK@CDIOALAF@?$AAD?$AA?3?$AA?2?$AAW?$AAI?$AAN?$AAC?$AAE?$AA6?$AA0?$AA0?$AA?2?$AAP?$AAL?$AAA?$AAT?$AAF?$AAO?$AAR?$AAM?$AA?2?$AAM?$AA?9?$AAs?$AAt?$AAo?$AAn?$AAe?$AA?2?$AAS?$AAR?$AAC@|
00070 |$LN15@set_lcd_do|
00070 00000000 DCD |??_C@_1II@CLHFCBNE@?$AA?$FL?$AAL?$AAC?$AAD?$AA?$FN?$AA?5?$AAs?$AAe?$AAt?$AA_?$AAl?$AAc?$AAd?$AA_?$AAd?$AAo?$AAm?$AAa?$AAi?$AAn?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5?$AAi?$AAn?$AA?5?$AAP@|
00074 |$M42761|
ENDP ; |set_lcd_domain|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -