diff --git a/drivers/gpu/drm/rockchip/ebc-dev/ebc_dev.h b/drivers/gpu/drm/rockchip/ebc-dev/ebc_dev.h index f61d28fb8c09..90709403fec6 100644 --- a/drivers/gpu/drm/rockchip/ebc-dev/ebc_dev.h +++ b/drivers/gpu/drm/rockchip/ebc-dev/ebc_dev.h @@ -66,6 +66,8 @@ #define EBC_GET_NORMAL_REPAIR (0x7017) #define EBC_SET_FULL_REFRESH_WIDTH (0x7018) #define EBC_SET_FULL_REFRESH_TYPE (0x7019) +#define EBC_SET_FORCE_TEMPERATURE (0x701a) +#define EBC_ENABLE_WAVEFORM_FIX (0x701b) enum full_refresh_type { NORMAL_FULL_REFRESH, diff --git a/drivers/gpu/drm/rockchip/ebc-dev/ebc_dev_y8_v8.S b/drivers/gpu/drm/rockchip/ebc-dev/ebc_dev_y8_v8.S index 037d0561becc..3bd23d59e1e6 100644 --- a/drivers/gpu/drm/rockchip/ebc-dev/ebc_dev_y8_v8.S +++ b/drivers/gpu/drm/rockchip/ebc-dev/ebc_dev_y8_v8.S @@ -9,7 +9,7 @@ .file "ebc_dev_y8.c" .section .initcall6s.init,"a",@progbits -__initcall__kmod_rkebc__465_4460_ebc_init6s: +__initcall__kmod_rkebc__465_4488_ebc_init6s: .Ltmp0: .word ebc_init-.Ltmp0 .text @@ -671,7 +671,7 @@ ebc_probe: mov x0, x22 bl kfree mov x0, x19 - mov w1, #880 + mov w1, #888 mov w2, #3520 bl devm_kmalloc cbz x0, .LBB4_14 @@ -875,15 +875,18 @@ ebc_probe: bl ebc_panel_probe cbnz w0, .LBB4_52 ldp w9, w8, [x21, #116] - mov w11, #1 + mov w10, #1 + mov w11, #-1 mov x0, x21 - mul w10, w9, w8 str w8, [x21, #304] + mul w8, w9, w8 str w9, [x21, #308] - lsr w8, w10, #2 str w9, [x21, #856] - str w11, [x21, #864] - stp w10, w8, [x21, #252] + lsr w9, w8, #2 + str w10, [x21, #864] + str w11, [x21, #880] + stp w8, w9, [x21, #252] + strb w10, [x21, #884] bl ebc_buffer_manage_init cbnz w0, .LBB4_53 add x24, x23, #184 @@ -1777,7 +1780,7 @@ ebc_lut_table_init: ldr x0, [x19, #96] add x1, x1, :lo12:.L.str.64 add x2, x2, :lo12:.L__func__.ebc_lut_table_init - mov w3, #3902 + mov w3, #3928 bl _dev_err mov w0, #-12 b .LBB9_9 @@ -2110,9 +2113,9 @@ ebc_other_init: str w9, [x19, #556] str w9, [x19, #564] b.eq .LBB11_2 - adrp x8, .L.str.106 + adrp x8, .L.str.107 stp xzr, xzr, [x19, #424] - add x8, x8, :lo12:.L.str.106 + add x8, x8, :lo12:.L.str.107 stp xzr, xzr, [x19, #408] stp xzr, xzr, [x19, #392] stp xzr, xzr, [x19, #376] @@ -2175,24 +2178,24 @@ ebc_logo_init: mrs x8, SP_EL0 ldr x8, [x8, #1584] mov x20, x1 - adrp x1, .L.str.108 + adrp x1, .L.str.109 mov x19, x0 - add x1, x1, :lo12:.L.str.108 + add x1, x1, :lo12:.L.str.109 str x8, [sp, #8] ldr x22, [x9, :lo12:saved_command_line] str xzr, [sp] mov x0, x22 bl strstr - adrp x1, .L.str.109 + adrp x1, .L.str.110 mov x21, x0 - add x1, x1, :lo12:.L.str.109 + add x1, x1, :lo12:.L.str.110 mov x0, x22 bl strstr mov x22, x0 cbz x21, .LBB12_3 - adrp x1, .L.str.110 + adrp x1, .L.str.111 add x2, sp, #4 - add x1, x1, :lo12:.L.str.110 + add x1, x1, :lo12:.L.str.111 mov x0, x21 bl sscanf ldr w2, [sp, #4] @@ -2204,9 +2207,9 @@ ebc_logo_init: mov w23, #1 cbz x22, .LBB12_28 .LBB12_4: - adrp x1, .L.str.113 + adrp x1, .L.str.114 mov x2, sp - add x1, x1, :lo12:.L.str.113 + add x1, x1, :lo12:.L.str.114 mov x0, x22 bl sscanf ldr w2, [sp] @@ -2217,8 +2220,8 @@ ebc_logo_init: mov w24, #1 cbnz w23, .LBB12_29 .LBB12_6: - adrp x0, .L.str.117 - add x0, x0, :lo12:.L.str.117 + adrp x0, .L.str.118 + add x0, x0, :lo12:.L.str.118 bl ebc_empty_buf_get cbz x0, .LBB12_12 ldp w8, w9, [x20, #76] @@ -2250,8 +2253,8 @@ ebc_logo_init: bl ebc_add_to_dsp_buf_list .LBB12_12: tbnz w24, #0, .LBB12_18 - adrp x0, .L.str.117 - add x0, x0, :lo12:.L.str.117 + adrp x0, .L.str.118 + add x0, x0, :lo12:.L.str.118 bl ebc_empty_buf_get cbz x0, .LBB12_18 ldp w8, w9, [x20, #76] @@ -2311,9 +2314,9 @@ ebc_logo_init: add sp, sp, #80 ret .LBB12_26: - adrp x1, .L.str.111 + adrp x1, .L.str.112 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.111 + add x1, x1, :lo12:.L.str.112 bl _dev_info ldp w9, w8, [x20, #76] mov w1, #3520 @@ -2336,18 +2339,18 @@ ebc_logo_init: mov w24, #1 cbz w23, .LBB12_6 .LBB12_29: - adrp x1, .L.str.116 + adrp x1, .L.str.117 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.116 + add x1, x1, :lo12:.L.str.117 bl _dev_info ldr x0, [x19, #16] cbz x0, .LBB12_33 bl ebc_pmic_verity_vcom b .LBB12_34 .LBB12_31: - adrp x1, .L.str.114 + adrp x1, .L.str.115 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.114 + add x1, x1, :lo12:.L.str.115 bl _dev_info ldp w9, w8, [x20, #76] mov w1, #3520 @@ -2371,8 +2374,8 @@ ebc_logo_init: ldr x0, [x19, #24] bl ebc_regulator_verity_vcom .LBB12_34: - adrp x0, .L.str.118 - add x0, x0, :lo12:.L.str.118 + adrp x0, .L.str.119 + add x0, x0, :lo12:.L.str.119 bl ebc_empty_buf_get ldp w8, w9, [x20, #76] mov x23, x0 @@ -2391,15 +2394,15 @@ ebc_logo_init: stp w8, w9, [x23, #60] b .LBB12_11 .LBB12_35: - adrp x1, .L.str.112 + adrp x1, .L.str.113 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.112 + add x1, x1, :lo12:.L.str.113 bl _dev_err b .LBB12_24 .LBB12_36: - adrp x1, .L.str.115 + adrp x1, .L.str.116 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.115 + add x1, x1, :lo12:.L.str.116 bl _dev_err b .LBB12_24 .LBB12_37: @@ -3027,16 +3030,17 @@ ebc_thread: stp x20, x19, [sp, #224] stp x29, x30, [sp, #144] add x29, sp, #144 - stp x28, x27, [sp, #160] - mov w27, #-268435456 - ldr x19, [x8, :lo12:global_ebc] stp x26, x25, [sp, #176] + mov w20, #1 + ldr x19, [x8, :lo12:global_ebc] stp x24, x23, [sp, #192] - mov x25, #1030792151040 stp x22, x21, [sp, #208] + mov w26, #-268435456 + mov x25, #1030792151040 mov x24, #263882790666240 add x8, x19, #224 mov x22, #67553994410557440 + stp x28, x27, [sp, #160] str x8, [sp, #48] add x8, x19, #800 stur x8, [x29, #-56] @@ -3052,14 +3056,16 @@ ebc_thread: str x8, [sp, #72] b .LBB16_3 .LBB16_1: - str w3, [x19, #668] + ldr x0, [x19, #432] + mov w20, #1 + bl ebc_buf_release .LBB16_2: ldr x8, [x19, #440] str x8, [x19, #432] .LBB16_3: bl ebc_osd_buf_get cbz x0, .LBB16_8 - mov x26, x0 + mov x21, x0 ldr w8, [x19, #752] cbnz w8, .LBB16_6 ldr w8, [x19, #756] @@ -3068,9 +3074,9 @@ ebc_thread: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_66 + b.ge .LBB16_67 .LBB16_7: - mov x0, x26 + mov x0, x21 bl ebc_buf_release b .LBB16_3 .LBB16_8: @@ -3085,41 +3091,41 @@ ebc_thread: bl ebc_dsp_buf_get cbz x0, .LBB16_19 ldr w2, [x0, #40] - mov x26, x0 - mov w3, #1 + mov x21, x0 cmp w2, #21 b.ne .LBB16_21 .LBB16_13: ldr w8, [x19, #668] cbnz w8, .LBB16_15 - str x26, [x19, #432] - ldr w2, [x26, #40] + str x21, [x19, #432] + ldr w2, [x21, #40] .LBB16_15: + mov w3, #1 cmp w2, #23 - b.hi .LBB16_416 + b.hi .LBB16_412 lsl w8, w3, w2 tst w8, #0x1ff80 - b.ne .LBB16_28 + b.ne .LBB16_29 mov w9, #124 movk w9, #34, lsl #16 tst w8, w9 - b.eq .LBB16_77 - mov w8, #2 - b .LBB16_29 + b.eq .LBB16_159 + mov w27, #1 + b .LBB16_30 .LBB16_19: ldr w8, [x19, #312] - cbz w8, .LBB16_35 + cbz w8, .LBB16_36 .LBB16_20: str wzr, [x19, #312] b .LBB16_3 .LBB16_21: ldr w9, [x19, #760] ldr w8, [x19, #464] - cbz w9, .LBB16_57 + cbz w9, .LBB16_58 cmp w8, #1 - b.eq .LBB16_74 + b.eq .LBB16_156 cmp w8, #2 - b.ne .LBB16_366 + b.ne .LBB16_372 .LBB16_24: ldr x8, [x19, #432] ldr x0, [x19, #368] @@ -3131,13 +3137,14 @@ ebc_thread: ldrsw x2, [x19, #252] ldr x1, [x8, #16] bl memcpy - b .LBB16_366 + b .LBB16_372 .LBB16_25: ldr w8, [x19, #464] cmp w8, #1 - b.eq .LBB16_67 + b.eq .LBB16_68 + mov w28, #1 cmp w8, #2 - b.ne .LBB16_269 + b.ne .LBB16_71 .LBB16_27: ldr x8, [x19, #432] ldr x0, [x19, #368] @@ -3149,26 +3156,27 @@ ebc_thread: ldrsw x2, [x19, #252] ldr x1, [x8, #16] bl memcpy - b .LBB16_269 .LBB16_28: - mov w8, #1 + mov w28, #1 + b .LBB16_71 .LBB16_29: - stur w8, [x29, #-64] + mov w27, wzr +.LBB16_30: ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_45 + cbz w8, .LBB16_46 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_249 -.LBB16_31: + b.ge .LBB16_336 +.LBB16_32: sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry -.LBB16_32: +.LBB16_33: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq @@ -3176,11 +3184,11 @@ ebc_thread: bl prepare_to_wait_event ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_43 - cbnz x0, .LBB16_44 + cbz w8, .LBB16_44 + cbnz x0, .LBB16_45 bl schedule - b .LBB16_32 -.LBB16_35: + b .LBB16_33 +.LBB16_36: sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] @@ -3193,54 +3201,54 @@ ebc_thread: mov w2, #1 bl prepare_to_wait_event ldr w8, [x19, #312] - cbz w8, .LBB16_70 -.LBB16_36: + cbz w8, .LBB16_152 +.LBB16_37: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait ldr w8, [x19, #312] cbnz w8, .LBB16_3 -.LBB16_37: - ldur x20, [x29, #-48] - ldr w8, [x20] +.LBB16_38: + ldur x21, [x29, #-48] + ldr w8, [x21] cmp w8, #1 - b.ne .LBB16_84 + b.ne .LBB16_166 sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry -.LBB16_39: +.LBB16_40: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq mov w2, #1 bl prepare_to_wait_event - ldr w8, [x20] - cbz w8, .LBB16_86 + ldr w8, [x21] + cbz w8, .LBB16_168 ldr w8, [x19, #312] - cbnz w8, .LBB16_86 - cbnz x0, .LBB16_87 + cbnz w8, .LBB16_168 + cbnz x0, .LBB16_169 bl schedule - b .LBB16_39 -.LBB16_43: + b .LBB16_40 +.LBB16_44: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait -.LBB16_44: +.LBB16_45: ldur x8, [x29, #-56] mov w3, #1 ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_250 -.LBB16_45: + b.ge .LBB16_337 +.LBB16_46: ldr w8, [x19, #464] sub w9, w8, #3 cmp w9, #2 - b.hs .LBB16_47 + b.hs .LBB16_48 ldr x8, [x19, #432] str wzr, [x19, #776] str wzr, [x19, #784] @@ -3249,70 +3257,68 @@ ebc_thread: ldr x0, [x8, #16] bl memcpy mov w3, #1 - b .LBB16_51 -.LBB16_47: + b .LBB16_52 +.LBB16_48: cmp w8, #1 - b.ne .LBB16_51 + b.ne .LBB16_52 ldr w2, [x19, #296] - cbz w2, .LBB16_51 + cbz w2, .LBB16_52 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_398 -.LBB16_50: - mov w8, #21 - str wzr, [x19, #296] - str w8, [x26, #40] - mov w8, #2 - ldr w9, [x19, #780] - stur w8, [x29, #-64] - b .LBB16_140 + b.ge .LBB16_395 .LBB16_51: - ldr w8, [x26, #40] + mov w8, #21 + mov w27, #1 + str wzr, [x19, #296] + str w8, [x21, #40] + b .LBB16_218 +.LBB16_52: + ldr w8, [x21, #40] cmp w8, #11 - b.hi .LBB16_136 + b.hi .LBB16_218 lsl w9, w3, w8 mov w10, #2124 tst w9, w10 - b.eq .LBB16_59 + b.eq .LBB16_60 ldr w9, [x19, #252] add w10, w9, #7 cmp w9, #0 csel w10, w10, w9, lt cmp w9, #8 - b.lt .LBB16_103 + b.lt .LBB16_185 ldr x9, [x19, #432] asr w10, w10, #3 - ldr x11, [x26, #16] + ldr x11, [x21, #16] ldr x9, [x9, #16] -.LBB16_55: +.LBB16_56: ldr x12, [x11] ldr x13, [x9] cmp x12, x13 - b.ne .LBB16_136 + b.ne .LBB16_218 add x9, x9, #8 add x11, x11, #8 subs w10, w10, #1 - b.ne .LBB16_55 - b .LBB16_103 -.LBB16_57: + b.ne .LBB16_56 + b .LBB16_185 +.LBB16_58: cmp w8, #4 b.ne .LBB16_13 ldur x8, [x29, #-48] ldr w8, [x8] - cbnz w8, .LBB16_366 + cbnz w8, .LBB16_372 b .LBB16_13 -.LBB16_59: +.LBB16_60: tst w9, #0x180 - b.eq .LBB16_136 + b.eq .LBB16_218 ldr w9, [x19, #788] ldr w10, [x19, #252] - cbz w9, .LBB16_99 + cbz w9, .LBB16_181 add w9, w10, #7 cmp w10, #0 csel w12, w9, w10, lt cmp w10, #8 - b.lt .LBB16_103 + b.lt .LBB16_185 mov w11, #50 mov w13, #34079 movk w13, #20971, lsl #16 @@ -3325,41 +3331,420 @@ ebc_thread: asr x14, x10, #40 ldr x10, [x11, #16] add w11, w14, w13 - ldr x13, [x26, #16] -.LBB16_63: + ldr x13, [x21, #16] +.LBB16_64: ldr x14, [x13] ldr x15, [x10] cmp x14, x15 cinc w9, w9, ne cmp w9, w11 - b.gt .LBB16_134 + b.gt .LBB16_216 add x10, x10, #8 add x13, x13, #8 subs w12, w12, #1 - b.ne .LBB16_63 - cbnz w9, .LBB16_136 - b .LBB16_103 -.LBB16_66: + b.ne .LBB16_64 + cbnz w9, .LBB16_218 + b .LBB16_185 +.LBB16_67: ldr x8, [sp, #40] adrp x1, .L.str.73 add x1, x1, :lo12:.L.str.73 ldr x0, [x8] bl _dev_info b .LBB16_7 -.LBB16_67: +.LBB16_68: ldr w2, [x19, #296] - cbz w2, .LBB16_91 + mov w28, #1 + cbz w2, .LBB16_173 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_397 -.LBB16_69: - str wzr, [x19, #296] - b .LBB16_269 + b.ge .LBB16_394 .LBB16_70: - mov w8, #13 + str wzr, [x19, #296] .LBB16_71: - cbnz x0, .LBB16_37 + mov w8, #4 + str x21, [x19, #456] + ldr w9, [x19, #308] + str w8, [x19, #464] + ldp w10, w8, [x21, #48] + ldp w12, w14, [x21, #56] + add w11, w10, #7 + cmp w10, #0 + add w13, w12, #7 + csel w11, w11, w10, lt + cmp w12, #0 + add w10, w9, #7 + csel w12, w13, w12, lt + cmp w9, #0 + asr w15, w12, #3 + csel w12, w10, w9, lt + ldr w10, [x19, #304] + add w9, w15, #1 + asr w13, w12, #3 + sub w16, w13, #1 + cmp w9, w13 + csinc w9, w16, w15, ge + sub w15, w10, #1 + cmp w14, w10 + csel w10, w14, w15, lt + cmp w8, w10 + b.le .LBB16_76 +.LBB16_72: + ldur x8, [x29, #-48] + ldr w8, [x8] + cbz w8, .LBB16_150 + adrp x8, ebc_auto_task + mov w20, #1 + ldr x0, [x8, :lo12:ebc_auto_task] + bl wake_up_process + ldr x0, [x19, #448] + cbz x0, .LBB16_75 +.LBB16_74: + bl ebc_buf_release +.LBB16_75: + ldr x8, [x19, #456] + str x8, [x19, #448] + b .LBB16_3 +.LBB16_76: + ldr x14, [x19, #440] + mul w13, w13, w8 + ldp x16, x15, [x19, #384] + sxtw x13, w13 + asr w11, w11, #3 + ldr x14, [x14, #16] + lsl x0, x13, #3 + ldr x17, [x21, #16] + sbfx x2, x12, #3, #29 + ldr x1, [x19, #360] + add x13, x16, x0 + add x12, x15, x0 + add x14, x14, x0 + add x15, x17, x0 + sxtw x17, w11 + add x16, x1, x0 + add w0, w9, #1 + sxtw x0, w0 + lsl x1, x2, #3 + b .LBB16_78 +.LBB16_77: + add w8, w8, #1 + add x12, x12, x1 + add x13, x13, x1 + add x14, x14, x1 + add x15, x15, x1 + add x16, x16, x1 + cmp w8, w10 + b.gt .LBB16_72 +.LBB16_78: + cmp w11, w9 + b.gt .LBB16_77 + mov x2, x17 + b .LBB16_82 +.LBB16_80: + lsr x20, x5, #56 + orr x21, x4, #0x100000000000000 + cmp x20, #240 + orr x7, x7, #0xff00000000000000 + csel x4, x21, x4, eq +.LBB16_81: + bic x6, x6, x7 + and x5, x7, x5 + add x2, x2, #1 + orr x5, x6, x5 + cmp x0, x2 + str x4, [x12, x3] + str x5, [x16, x3] + b.eq .LBB16_77 +.LBB16_82: + lsl x3, x2, #3 + ldr x27, [x13, x3] + ldr x6, [x16, x3] + ldr x21, [x15, x3] + ldr x5, [x14, x3] + ldr x4, [x12, x3] + tst x27, #0xff + b.eq .LBB16_84 + mov x7, xzr + b .LBB16_86 +.LBB16_84: + and x4, x4, #0xffffffffffffff00 + and x20, x21, #0xf0 + cmp w20, #240 + b.ne .LBB16_109 + and x7, x5, #0xff + cmp x7, #240 + cset w7, eq + orr x4, x4, x7 + mov w7, #255 +.LBB16_86: + tst x27, #0xff00 + b.eq .LBB16_93 + tst x27, #0xff0000 + b.eq .LBB16_95 +.LBB16_88: + tst x27, #0xff000000 + b.eq .LBB16_97 +.LBB16_89: + tst x27, #0xff00000000 + b.eq .LBB16_99 +.LBB16_90: + tst x27, #0xff0000000000 + b.eq .LBB16_101 +.LBB16_91: + tst x27, #0xff000000000000 + b.eq .LBB16_103 +.LBB16_92: + lsr x20, x27, #56 + cbnz x20, .LBB16_81 + b .LBB16_105 +.LBB16_93: + and x4, x4, #0xffffffffffff00ff + and x20, x21, #0xf000 + cmp w20, #15, lsl #12 + b.ne .LBB16_111 + and x20, x5, #0xff00 + orr x23, x4, #0x100 + cmp x20, #15, lsl #12 + orr x7, x7, #0xff00 + csel x4, x23, x4, eq + tst x27, #0xff0000 + b.ne .LBB16_88 +.LBB16_95: + and x4, x4, #0xffffffffff00ffff + and x20, x21, #0xf00000 + cmp x20, #3840, lsl #12 + b.ne .LBB16_115 + and x20, x5, #0xff0000 + orr x23, x4, #0x10000 + cmp x20, #3840, lsl #12 + orr x7, x7, #0xff0000 + csel x4, x23, x4, eq + tst x27, #0xff000000 + b.ne .LBB16_89 +.LBB16_97: + and x4, x4, #0xffffffff00ffffff + and x20, x21, #0xf0000000 + cmp w20, w26 + b.ne .LBB16_119 + and x20, x5, #0xff000000 + orr x23, x4, #0x1000000 + cmp x20, x26 + orr x7, x7, #0xff000000 + csel x4, x23, x4, eq + tst x27, #0xff00000000 + b.ne .LBB16_90 +.LBB16_99: + and x4, x4, #0xffffff00ffffffff + and x20, x21, #0xf000000000 + cmp x20, x25 + b.ne .LBB16_121 + and x20, x5, #0xff00000000 + orr x23, x4, #0x100000000 + cmp x20, x25 + orr x7, x7, #0xff00000000 + csel x4, x23, x4, eq + tst x27, #0xff0000000000 + b.ne .LBB16_91 +.LBB16_101: + and x4, x4, #0xffff00ffffffffff + and x20, x21, #0xf00000000000 + cmp x20, x24 + b.ne .LBB16_123 + and x20, x5, #0xff0000000000 + orr x23, x4, #0x10000000000 + cmp x20, x24 + orr x7, x7, #0xff0000000000 + csel x4, x23, x4, eq + tst x27, #0xff000000000000 + b.ne .LBB16_92 +.LBB16_103: + and x4, x4, #0xff00ffffffffffff + and x20, x21, #0xf0000000000000 + cmp x20, x22 + b.ne .LBB16_125 + and x20, x5, #0xff000000000000 + orr x23, x4, #0x1000000000000 + cmp x20, x22 + orr x7, x7, #0xff000000000000 + csel x4, x23, x4, eq + lsr x20, x27, #56 + cbnz x20, .LBB16_81 +.LBB16_105: + and x4, x4, #0xffffffffffffff + lsr x20, x21, #60 + cmp x20, #15 + b.hs .LBB16_80 + and x20, x21, #0xf000000000000000 + mov x21, #-2305843009213693952 + cmp x20, x21 + b.eq .LBB16_141 + and x6, x6, #0xffffffffffffff + cbnz x20, .LBB16_142 + orr x4, x4, #0x100000000000000 + b .LBB16_81 +.LBB16_109: + cbnz w20, .LBB16_127 + mov x7, xzr + and x6, x6, #0xffffffffffffff00 + orr x4, x4, #0x1 + b .LBB16_86 +.LBB16_111: + and x6, x6, #0xffffffffffff00ff + cbz w20, .LBB16_114 + cmp w20, #14, lsl #12 + b.ne .LBB16_143 + orr x6, x6, #0xf000 +.LBB16_114: + orr x4, x4, #0x100 + tst x27, #0xff0000 + b.ne .LBB16_88 + b .LBB16_95 +.LBB16_115: + and x6, x6, #0xffffffffff00ffff + cbz x20, .LBB16_118 + cmp x20, #3584, lsl #12 + b.ne .LBB16_144 + orr x6, x6, #0xf00000 +.LBB16_118: + orr x4, x4, #0x10000 + tst x27, #0xff000000 + b.ne .LBB16_89 + b .LBB16_97 +.LBB16_119: + cbnz w20, .LBB16_129 + and x6, x6, #0xffffffff00ffffff + b .LBB16_131 +.LBB16_121: + cbnz x20, .LBB16_132 + and x6, x6, #0xffffff00ffffffff + b .LBB16_134 +.LBB16_123: + cbnz x20, .LBB16_135 + and x6, x6, #0xffff00ffffffffff + b .LBB16_137 +.LBB16_125: + cbnz x20, .LBB16_138 + and x6, x6, #0xff00ffffffffffff + b .LBB16_140 +.LBB16_127: + cmp w20, #224 + b.ne .LBB16_145 + and x6, x6, #0xffffffffffffff00 + mov x7, xzr + orr x6, x6, #0xf0 + orr x4, x4, #0x1 + b .LBB16_86 +.LBB16_129: + and x6, x6, #0xffffffff00ffffff + mov w23, #-536870912 + cmp w20, w23 + b.ne .LBB16_146 + orr x6, x6, #0xf0000000 +.LBB16_131: + orr x4, x4, #0x1000000 + tst x27, #0xff00000000 + b.ne .LBB16_90 + b .LBB16_99 +.LBB16_132: + and x6, x6, #0xffffff00ffffffff + mov x23, #962072674304 + cmp x20, x23 + b.ne .LBB16_147 + orr x6, x6, #0xf000000000 +.LBB16_134: + orr x4, x4, #0x100000000 + tst x27, #0xff0000000000 + b.ne .LBB16_91 + b .LBB16_101 +.LBB16_135: + and x6, x6, #0xffff00ffffffffff + mov x23, #246290604621824 + cmp x20, x23 + b.ne .LBB16_148 + orr x6, x6, #0xf00000000000 +.LBB16_137: + orr x4, x4, #0x10000000000 + tst x27, #0xff000000000000 + b.ne .LBB16_92 + b .LBB16_103 +.LBB16_138: + and x6, x6, #0xff00ffffffffffff + mov x23, #63050394783186944 + cmp x20, x23 + b.ne .LBB16_149 + orr x6, x6, #0xf0000000000000 +.LBB16_140: + orr x4, x4, #0x1000000000000 + lsr x20, x27, #56 + cbnz x20, .LBB16_81 + b .LBB16_105 +.LBB16_141: + mov x20, #-1152921504606846976 + orr x4, x4, #0x100000000000000 + bfxil x20, x6, #0, #56 + mov x6, x20 + b .LBB16_81 +.LBB16_142: + orr x6, x6, x20 + b .LBB16_81 +.LBB16_143: + orr x6, x6, x20 + tst x27, #0xff0000 + b.ne .LBB16_88 + b .LBB16_95 +.LBB16_144: + orr x6, x6, x20 + tst x27, #0xff000000 + b.ne .LBB16_89 + b .LBB16_97 +.LBB16_145: + and x6, x6, #0xffffffffffffff00 + mov x7, xzr + orr x6, x20, x6 + b .LBB16_86 +.LBB16_146: + orr x6, x6, x20 + tst x27, #0xff00000000 + b.ne .LBB16_90 + b .LBB16_99 +.LBB16_147: + orr x6, x6, x20 + tst x27, #0xff0000000000 + b.ne .LBB16_91 + b .LBB16_101 +.LBB16_148: + orr x6, x6, x20 + tst x27, #0xff000000000000 + b.ne .LBB16_92 + b .LBB16_103 +.LBB16_149: + orr x6, x6, x20 + lsr x20, x27, #56 + cbnz x20, .LBB16_81 + b .LBB16_105 +.LBB16_150: + mov x0, x19 + mov w1, #1 + mov w2, wzr + mov w20, #1 + str w28, [x19, #276] + bl ebc_lut_update + ldr w9, [x19, #800] + ldr w8, [x19, #328] + cmp w9, #1 + strh w8, [x19, #280] + b.ge .LBB16_356 +.LBB16_151: + mov x0, x19 + bl ebc_frame_start + ldr x0, [x19, #448] + cbnz x0, .LBB16_74 + b .LBB16_75 +.LBB16_152: + mov w8, #13 +.LBB16_153: + cbnz x0, .LBB16_38 mov x0, x8 bl schedule_timeout mov x21, x0 @@ -3372,83 +3757,83 @@ ebc_thread: cmp x21, #0 ccmp w9, #0, #4, eq csinc x8, x21, xzr, eq - cbnz w9, .LBB16_36 - cbnz x8, .LBB16_71 - b .LBB16_36 -.LBB16_74: + cbnz w9, .LBB16_37 + cbnz x8, .LBB16_153 + b .LBB16_37 +.LBB16_156: ldr w2, [x19, #296] - cbz w2, .LBB16_105 + cbz w2, .LBB16_187 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_404 -.LBB16_76: + b.ge .LBB16_400 +.LBB16_158: str wzr, [x19, #296] - b .LBB16_366 -.LBB16_77: + b .LBB16_372 +.LBB16_159: mov w9, #1 movk w9, #192, lsl #16 tst w8, w9 - b.eq .LBB16_416 + b.eq .LBB16_412 ldr w8, [x19, #464] - str x26, [x19, #440] + str x21, [x19, #440] cmp w8, #4 - b.eq .LBB16_113 + b.eq .LBB16_195 cmp w8, #2 - b.eq .LBB16_359 + b.eq .LBB16_365 cmp w8, #1 - b.ne .LBB16_119 + b.ne .LBB16_201 ldr w2, [x19, #296] - cbz w2, .LBB16_351 - ldur x8, [x29, #-56] - ldr w8, [x8] - cmp w8, #1 - b.ge .LBB16_429 -.LBB16_83: - str wzr, [x19, #296] - b .LBB16_361 -.LBB16_84: - bl ebc_get_dsp_list_enum_num - cbnz w0, .LBB16_3 - bl ebc_get_osd_list_enum_num - cbnz w0, .LBB16_3 - b .LBB16_256 -.LBB16_86: - adrp x0, ebc_thread_wq - sub x1, x29, #40 - add x0, x0, :lo12:ebc_thread_wq - bl finish_wait -.LBB16_87: - bl ebc_get_dsp_list_enum_num - cbnz w0, .LBB16_3 - bl ebc_get_osd_list_enum_num - cbnz w0, .LBB16_3 - ldur x8, [x29, #-48] - ldr w8, [x8] - cbz w8, .LBB16_256 - ldr w8, [x19, #312] - cbnz w8, .LBB16_20 - b .LBB16_257 -.LBB16_91: - ldr w8, [x19, #780] - cbz w8, .LBB16_27 - ldr w8, [x19, #776] - cbnz w8, .LBB16_94 - ldr w8, [x19, #784] - cbz w8, .LBB16_27 -.LBB16_94: + cbz w2, .LBB16_357 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 b.ge .LBB16_426 -.LBB16_95: +.LBB16_165: + str wzr, [x19, #296] + b .LBB16_367 +.LBB16_166: + bl ebc_get_dsp_list_enum_num + cbnz w0, .LBB16_3 + bl ebc_get_osd_list_enum_num + cbnz w0, .LBB16_3 + b .LBB16_349 +.LBB16_168: + adrp x0, ebc_thread_wq + sub x1, x29, #40 + add x0, x0, :lo12:ebc_thread_wq + bl finish_wait +.LBB16_169: + bl ebc_get_dsp_list_enum_num + cbnz w0, .LBB16_3 + bl ebc_get_osd_list_enum_num + cbnz w0, .LBB16_3 + ldur x8, [x29, #-48] + ldr w8, [x8] + cbz w8, .LBB16_349 + ldr w8, [x19, #312] + cbnz w8, .LBB16_20 + b .LBB16_350 +.LBB16_173: + ldr w8, [x19, #780] + cbz w8, .LBB16_27 + ldr w8, [x19, #776] + cbnz w8, .LBB16_176 + ldr w8, [x19, #784] + cbz w8, .LBB16_27 +.LBB16_176: + ldur x8, [x29, #-56] + ldr w8, [x8] + cmp w8, #1 + b.ge .LBB16_422 +.LBB16_177: ldr w8, [x19, #252] ldr x1, [x19, #376] cmp w8, #1 - b.lt .LBB16_267 + b.lt .LBB16_354 ldr x9, [x19, #440] ldr x9, [x9, #16] -.LBB16_97: +.LBB16_179: ldrb w10, [x9], #1 ldrb w11, [x1] mvn w12, w10 @@ -3457,57 +3842,57 @@ ebc_thread: csel w10, w10, w12, eq subs x8, x8, #1 strb w10, [x1], #1 - b.ne .LBB16_97 + b.ne .LBB16_179 ldr x1, [x19, #376] ldr w8, [x19, #252] - b .LBB16_268 -.LBB16_99: + b .LBB16_355 +.LBB16_181: add w9, w10, #7 cmp w10, #0 csel w11, w9, w10, lt cmp w10, #8 - b.lt .LBB16_103 + b.lt .LBB16_185 ldr x9, [x19, #432] asr w10, w11, #3 - ldr x11, [x26, #16] + ldr x11, [x21, #16] ldr x9, [x9, #16] -.LBB16_101: +.LBB16_183: ldr x12, [x11] ldr x13, [x9] cmp x12, x13 - b.ne .LBB16_136 + b.ne .LBB16_218 add x9, x9, #8 add x11, x11, #8 subs w10, w10, #1 - b.ne .LBB16_101 -.LBB16_103: + b.ne .LBB16_183 +.LBB16_185: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_254 -.LBB16_104: - str x26, [x19, #440] - b .LBB16_422 -.LBB16_105: + b.ge .LBB16_347 +.LBB16_186: + str x21, [x19, #440] + b .LBB16_418 +.LBB16_187: ldr w8, [x19, #780] cbz w8, .LBB16_24 ldr w8, [x19, #776] - cbnz w8, .LBB16_108 + cbnz w8, .LBB16_190 ldr w8, [x19, #784] cbz w8, .LBB16_24 -.LBB16_108: +.LBB16_190: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_427 -.LBB16_109: + b.ge .LBB16_424 +.LBB16_191: ldr w8, [x19, #252] ldr x1, [x19, #376] cmp w8, #1 - b.lt .LBB16_364 + b.lt .LBB16_370 ldr x9, [x19, #440] ldr x9, [x9, #16] -.LBB16_111: +.LBB16_193: ldrb w10, [x9], #1 ldrb w11, [x1] mvn w12, w10 @@ -3516,26 +3901,26 @@ ebc_thread: csel w10, w10, w12, eq subs x8, x8, #1 strb w10, [x1], #1 - b.ne .LBB16_111 + b.ne .LBB16_193 ldr x1, [x19, #376] ldr w8, [x19, #252] - b .LBB16_365 -.LBB16_113: + b .LBB16_371 +.LBB16_195: ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_119 + cbz w8, .LBB16_201 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_430 -.LBB16_115: + b.ge .LBB16_427 +.LBB16_197: sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry -.LBB16_116: +.LBB16_198: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq @@ -3543,31 +3928,32 @@ ebc_thread: bl prepare_to_wait_event ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_251 - cbnz x0, .LBB16_252 + cbz w8, .LBB16_344 + cbnz x0, .LBB16_345 bl schedule - b .LBB16_116 -.LBB16_119: + b .LBB16_198 +.LBB16_201: ldr x8, [x19, #432] - ldr w9, [x26, #40] + mov w4, #255 + ldr w9, [x21, #40] ldr w8, [x8, #40] cmp w9, w8 - b.eq .LBB16_126 + b.eq .LBB16_208 ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_126 + cbz w8, .LBB16_208 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_431 -.LBB16_122: + b.ge .LBB16_428 +.LBB16_204: sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry -.LBB16_123: +.LBB16_205: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq @@ -3575,44 +3961,43 @@ ebc_thread: bl prepare_to_wait_event ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_251 - cbnz x0, .LBB16_252 + cbz w8, .LBB16_344 + cbnz x0, .LBB16_345 bl schedule - b .LBB16_123 -.LBB16_126: + b .LBB16_205 +.LBB16_208: ldr w8, [x19, #308] - mov w4, #255 ldr w9, [x19, #304] add w10, w8, #7 cmp w8, #0 csel w13, w10, w8, lt cmp w9, #1 - b.lt .LBB16_361 + b.lt .LBB16_367 mov w10, wzr ldr x11, [x19, #384] - ldr x12, [x26, #16] + ldr x12, [x21, #16] asr w13, w13, #3 ldr x14, [x19, #360] - b .LBB16_129 -.LBB16_128: + b .LBB16_211 +.LBB16_210: add w10, w10, #1 cmp w10, w9 - b.eq .LBB16_361 -.LBB16_129: + b.eq .LBB16_367 +.LBB16_211: cmp w8, #8 - b.lt .LBB16_128 + b.lt .LBB16_210 mov w15, w13 - b .LBB16_132 -.LBB16_131: + b .LBB16_214 +.LBB16_213: add x14, x14, #8 subs w15, w15, #1 - b.eq .LBB16_128 -.LBB16_132: + b.eq .LBB16_210 +.LBB16_214: ldr x16, [x12], #8 ldr x17, [x14] ldr x0, [x11], #8 cmp x16, x17 - b.eq .LBB16_131 + b.eq .LBB16_213 tst x0, #0xff csel x1, x4, xzr, eq tst x0, #0xff00 @@ -3641,72 +4026,96 @@ ebc_thread: and x16, x0, x16 orr x16, x17, x16 str x16, [x14] - b .LBB16_131 -.LBB16_134: + b .LBB16_213 +.LBB16_216: ldur x9, [x29, #-56] ldr w9, [x9] cmp w9, #1 - b.ge .LBB16_428 -.LBB16_135: - mov w9, #2 - stur w9, [x29, #-64] -.LBB16_136: + b.ge .LBB16_425 +.LBB16_217: + mov w27, #1 +.LBB16_218: + cmp w27, #0 ldr w9, [x19, #780] - cbz w9, .LBB16_140 - sub w8, w8, #12 - cmp w8, #2 - b.hi .LBB16_140 + cset w27, ne + cinc w10, w3, ne + stur w10, [x29, #-64] + cbz w9, .LBB16_222 + sub w10, w8, #12 + cmp w10, #2 + b.hi .LBB16_222 ldr w8, [x19, #776] - cbz w8, .LBB16_145 + cbz w8, .LBB16_231 ldr x8, [x19, #432] ldr x1, [x19, #368] ldrsw x2, [x19, #252] ldr x0, [x8, #16] - b .LBB16_148 -.LBB16_140: - cbz w9, .LBB16_144 - ldr w8, [x19, #784] - cbz w8, .LBB16_144 + bl memcpy + b .LBB16_236 +.LBB16_222: + cbz w9, .LBB16_235 + ldr w9, [x19, #784] + cbz w9, .LBB16_235 + cmp w8, #21 + b.eq .LBB16_235 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_403 -.LBB16_143: - mov w8, #21 - str w8, [x26, #40] - mov w8, #2 - stur w8, [x29, #-64] -.LBB16_144: - str wzr, [x19, #784] - str wzr, [x19, #776] - b .LBB16_149 -.LBB16_145: + b.ge .LBB16_423 +.LBB16_226: + ldr w8, [x19, #252] + cmp w8, #1 + b.lt .LBB16_234 + ldr x10, [x19, #440] + ldr x9, [x19, #376] + ldr x11, [x21, #16] + ldr x10, [x10, #16] + b .LBB16_229 +.LBB16_228: + subs x8, x8, #1 + add x10, x10, #1 + add x11, x11, #1 + add x9, x9, #1 + b.eq .LBB16_234 +.LBB16_229: + ldrb w12, [x9] + cbz w12, .LBB16_228 + ldrb w12, [x11] + mvn w12, w12 + and w12, w12, #0xf0 + strb w12, [x10] + b .LBB16_228 +.LBB16_231: ldr w8, [x19, #784] - cbz w8, .LBB16_261 + cbz w8, .LBB16_338 ldr x8, [x19, #432] ldr x1, [x8, #16] ldr w8, [x19, #252] -.LBB16_147: +.LBB16_233: ldr x0, [x19, #368] sxtw x2, w8 -.LBB16_148: bl memcpy -.LBB16_149: - str x26, [x19, #440] - ldr w1, [x26, #40] + b .LBB16_236 +.LBB16_234: + mov w8, #9 + str w8, [x21, #40] +.LBB16_235: + str wzr, [x19, #784] + str wzr, [x19, #776] +.LBB16_236: + str x21, [x19, #440] + ldr w1, [x21, #40] cmp w1, #12 - b.eq .LBB16_154 + b.eq .LBB16_241 cmp w1, #14 - b.eq .LBB16_156 + b.eq .LBB16_243 cmp w1, #13 - b.ne .LBB16_160 + b.ne .LBB16_247 ldr w8, [x19, #780] - cbz w8, .LBB16_160 - ldur w8, [x29, #-64] + cbz w8, .LBB16_247 mov x0, x19 mov w1, #14 - cmp w8, #2 - cset w2, eq + mov w2, w27 bl ebc_lut_update ldrb w8, [x19, #328] sub w9, w8, #6 @@ -3715,15 +4124,13 @@ ebc_thread: add w9, w9, w10, lsr #15 mov w10, #2 lsr w9, w9, #1 - b .LBB16_158 -.LBB16_154: + b .LBB16_245 +.LBB16_241: ldr w8, [x19, #780] - cbz w8, .LBB16_160 - ldur w8, [x29, #-64] + cbz w8, .LBB16_247 mov x0, x19 mov w1, #14 - cmp w8, #2 - cset w2, eq + mov w2, w27 bl ebc_lut_update ldrb w8, [x19, #328] mov w10, #21846 @@ -3736,15 +4143,13 @@ ebc_thread: mov w10, #3 lsr w8, w8, #9 strb w10, [x19, #280] - b .LBB16_159 -.LBB16_156: + b .LBB16_246 +.LBB16_243: ldr w8, [x19, #780] - cbz w8, .LBB16_160 - ldur w8, [x29, #-64] + cbz w8, .LBB16_247 mov x0, x19 mov w1, #14 - cmp w8, #2 - cset w2, eq + mov w2, w27 bl ebc_lut_update ldrb w8, [x19, #328] sub w9, w8, #6 @@ -3753,30 +4158,28 @@ ebc_thread: add w9, w9, w10, lsr #14 mov w10, #4 lsr w9, w9, #2 -.LBB16_158: +.LBB16_245: strb w10, [x19, #280] -.LBB16_159: +.LBB16_246: strb w9, [x19, #872] strb w8, [x19, #873] - b .LBB16_161 -.LBB16_160: - ldur w8, [x29, #-64] + b .LBB16_248 +.LBB16_247: mov x0, x19 - cmp w8, #2 - cset w2, eq + mov w2, w27 bl ebc_lut_update ldr w8, [x19, #328] strb w8, [x19, #280] -.LBB16_161: +.LBB16_248: ldr w8, [x19, #780] mov w9, #1 - cbz w8, .LBB16_167 - ldr w8, [x26, #40] + cbz w8, .LBB16_254 + ldr w8, [x21, #40] sub w8, w8, #12 cmp w8, #2 - b.hi .LBB16_167 + b.hi .LBB16_254 ldr w8, [x19, #784] - cbnz w8, .LBB16_165 + cbnz w8, .LBB16_252 ldr x0, [x19, #376] mov w1, wzr ldrsw x2, [x19, #252] @@ -3786,22 +4189,22 @@ ebc_thread: ldrsw x2, [x19, #252] bl memset mov w9, #1 -.LBB16_165: +.LBB16_252: str w9, [x19, #784] - b .LBB16_167 -.LBB16_166: + b .LBB16_254 +.LBB16_253: ldr x8, [x19, #432] ldr x1, [x19, #368] ldrsw x2, [x19, #252] ldr x0, [x8, #16] bl memcpy mov w9, #1 -.LBB16_167: +.LBB16_254: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_211 -.LBB16_168: + b.ge .LBB16_298 +.LBB16_255: ldur w8, [x29, #-64] mov x0, x19 str w9, [x19, #276] @@ -3813,21 +4216,21 @@ ebc_thread: add x1, x8, #750 bl mod_timer ldr w8, [x19, #780] - cbz w8, .LBB16_189 - ldr w9, [x26, #40] + cbz w8, .LBB16_276 + ldr w9, [x21, #40] sub w9, w9, #12 cmp w9, #2 - b.hi .LBB16_189 + b.hi .LBB16_276 ldr w9, [x19, #784] - cbz w9, .LBB16_189 + cbz w9, .LBB16_276 ldur x9, [x29, #-56] ldr w9, [x9] cmp w9, #1 - b.ge .LBB16_214 -.LBB16_172: + b.ge .LBB16_301 +.LBB16_259: ldr w9, [x19, #304] cmp w9, #1 - b.lt .LBB16_187 + b.lt .LBB16_274 ldr x14, [x19, #440] mov w11, wzr ldrsb w0, [x19, #872] @@ -3842,92 +4245,92 @@ ebc_thread: ldr x14, [x14, #16] mov w30, #1 ldr x3, [x19, #360] - b .LBB16_175 -.LBB16_174: + b .LBB16_262 +.LBB16_261: add w12, w12, #1 add w11, w11, w13 cmp w12, w9 - b.eq .LBB16_188 -.LBB16_175: + b.eq .LBB16_275 +.LBB16_262: cmp w13, #1 - b.lt .LBB16_174 + b.lt .LBB16_261 mov w5, w11 mov x4, x13 - b .LBB16_181 -.LBB16_177: + b .LBB16_268 +.LBB16_264: cmp w8, #1 - orr w21, w21, #0x1 + orr w23, w23, #0x1 cset w6, gt cmp w7, w15 - cset w23, lt - orr w6, w6, w23 + cset w27, lt + orr w6, w6, w27 cmp w6, #0 mov w6, #-16 -.LBB16_178: - csel w6, w21, w6, ne +.LBB16_265: + csel w6, w23, w6, ne csinc w10, w10, wzr, eq -.LBB16_179: +.LBB16_266: strb w6, [x1, x5] strb w7, [x3, x5] strb w20, [x16, x5] -.LBB16_180: +.LBB16_267: subs x4, x4, #1 add w5, w5, #1 - b.eq .LBB16_174 -.LBB16_181: + b.eq .LBB16_261 +.LBB16_268: sxtw x5, w5 ldrb w6, [x14, x5] - ldrb w21, [x1, x5] - cmp w21, w6 - b.eq .LBB16_180 + ldrb w23, [x1, x5] + cmp w23, w6 + b.eq .LBB16_267 ldrsb w20, [x16, x5] cmp w6, #240 ldrb w7, [x3, x5] - b.ne .LBB16_185 + b.ne .LBB16_272 add w6, w7, #1 cmp w20, #0 sxtb w7, w6 csinc w20, w30, w20, lt cmp w17, w20, uxtb - b.ne .LBB16_177 + b.ne .LBB16_264 mov w6, #240 mov w20, w17 - b .LBB16_179 -.LBB16_185: - sub w23, w20, #1 + b .LBB16_266 +.LBB16_272: + sub w27, w20, #1 cmp w20, #0 - csinv w20, w23, wzr, le + csinv w20, w27, wzr, le sub w7, w7, #1 cmp w0, w20, sxtb - b.eq .LBB16_179 + b.eq .LBB16_266 cmp w8, #1 - orr w21, w21, #0x1 - cset w23, gt + orr w23, w23, #0x1 + cset w27, gt cmp w2, w7, sxtb cset w28, lt - orr w23, w23, w28 - cmp w23, #0 - b .LBB16_178 -.LBB16_187: + orr w27, w27, w28 + cmp w27, #0 + b .LBB16_265 +.LBB16_274: mov w10, wzr -.LBB16_188: +.LBB16_275: str w10, [x19, #776] -.LBB16_189: +.LBB16_276: ldur x8, [x29, #-48] ldr w9, [x8] ldur x8, [x29, #-56] ldr w8, [x8] - cbz w9, .LBB16_196 + cbz w9, .LBB16_283 cmp w8, #1 - b.ge .LBB16_212 -.LBB16_191: + b.ge .LBB16_299 +.LBB16_278: sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry -.LBB16_192: +.LBB16_279: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq @@ -3935,31 +4338,31 @@ ebc_thread: bl prepare_to_wait_event ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_195 - cbnz x0, .LBB16_197 + cbz w8, .LBB16_282 + cbnz x0, .LBB16_284 bl schedule - b .LBB16_192 -.LBB16_195: + b .LBB16_279 +.LBB16_282: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait - b .LBB16_197 -.LBB16_196: - tbz w8, #31, .LBB16_213 -.LBB16_197: + b .LBB16_284 +.LBB16_283: + tbz w8, #31, .LBB16_300 +.LBB16_284: ldr w8, [x19, #296] - cbnz w8, .LBB16_215 + cbnz w8, .LBB16_302 ldr w8, [x19, #780] - cbz w8, .LBB16_419 - ldr w8, [x26, #40] + cbz w8, .LBB16_415 + ldr w8, [x21, #40] sub w8, w8, #12 cmp w8, #2 - b.hi .LBB16_419 + b.hi .LBB16_415 ldr w8, [x19, #776] - cbz w8, .LBB16_221 + cbz w8, .LBB16_308 bl ebc_get_dsp_list_enum_num - cbnz w0, .LBB16_419 + cbnz w0, .LBB16_415 sub x0, x29, #40 mov w1, wzr str wzr, [x19, #312] @@ -3973,85 +4376,85 @@ ebc_thread: mov w2, #1 bl prepare_to_wait_event ldr w8, [x19, #312] - cbz w8, .LBB16_207 -.LBB16_203: + cbz w8, .LBB16_294 +.LBB16_290: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait -.LBB16_204: +.LBB16_291: bl ebc_get_dsp_list_enum_num - cbnz w0, .LBB16_419 + cbnz w0, .LBB16_415 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.lt .LBB16_166 + b.lt .LBB16_253 ldr x8, [sp, #40] - adrp x1, .L.str.92 - add x1, x1, :lo12:.L.str.92 + adrp x1, .L.str.93 + add x1, x1, :lo12:.L.str.93 ldr x0, [x8] bl _dev_info - b .LBB16_166 -.LBB16_207: + b .LBB16_253 +.LBB16_294: mov w8, #3 -.LBB16_208: - cbnz x0, .LBB16_204 +.LBB16_295: + cbnz x0, .LBB16_291 mov x0, x8 bl schedule_timeout - mov x21, x0 + mov x27, x0 adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq mov w2, #1 bl prepare_to_wait_event ldr w9, [x19, #312] - cmp x21, #0 + cmp x27, #0 ccmp w9, #0, #4, eq - csinc x8, x21, xzr, eq - cbnz w9, .LBB16_203 - cbnz x8, .LBB16_208 - b .LBB16_203 -.LBB16_211: + csinc x8, x27, xzr, eq + cbnz w9, .LBB16_290 + cbnz x8, .LBB16_295 + b .LBB16_290 +.LBB16_298: ldr x8, [x19, #440] - adrp x1, .L.str.87 + adrp x1, .L.str.88 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.87 + add x1, x1, :lo12:.L.str.88 ldrb w3, [x19, #280] ldr w2, [x8, #40] ldrb w4, [x19, #328] bl _dev_info mov w9, #1 - b .LBB16_168 -.LBB16_212: - ldr x8, [sp, #40] - adrp x1, .L.str.89 - add x1, x1, :lo12:.L.str.89 - ldr x0, [x8] - bl _dev_info - ldur x8, [x29, #-48] - ldr w8, [x8] - cbnz w8, .LBB16_191 - b .LBB16_197 -.LBB16_213: + b .LBB16_255 +.LBB16_299: ldr x8, [sp, #40] adrp x1, .L.str.90 add x1, x1, :lo12:.L.str.90 ldr x0, [x8] bl _dev_info - b .LBB16_197 -.LBB16_214: - adrp x1, .L.str.88 + ldur x8, [x29, #-48] + ldr w8, [x8] + cbnz w8, .LBB16_278 + b .LBB16_284 +.LBB16_300: + ldr x8, [sp, #40] + adrp x1, .L.str.91 + add x1, x1, :lo12:.L.str.91 + ldr x0, [x8] + bl _dev_info + b .LBB16_284 +.LBB16_301: + adrp x1, .L.str.89 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.88 + add x1, x1, :lo12:.L.str.89 bl _dev_info ldr w8, [x19, #780] - b .LBB16_172 -.LBB16_215: + b .LBB16_259 +.LBB16_302: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_406 -.LBB16_216: + b.ge .LBB16_402 +.LBB16_303: ldr x8, [x19, #432] ldr x0, [x19, #368] ldrsw x2, [x19, #252] @@ -4068,31 +4471,31 @@ ebc_thread: bl memset ldr w8, [x19, #252] cmp w8, #1 - b.lt .LBB16_419 + b.lt .LBB16_415 ldrb w11, [x19, #280] ldrb w12, [x19, #296] ldr x9, [x19, #384] sub w11, w11, w12 ldp x12, x10, [x19, #360] - b .LBB16_219 -.LBB16_218: + b .LBB16_306 +.LBB16_305: add x9, x9, #1 add x10, x10, #1 add x12, x12, #1 subs w8, w8, #1 - b.eq .LBB16_419 -.LBB16_219: + b.eq .LBB16_415 +.LBB16_306: ldrb w13, [x10] ldrb w14, [x12] cmp w13, w14 - b.eq .LBB16_218 + b.eq .LBB16_305 strb w11, [x9] - b .LBB16_218 -.LBB16_221: + b .LBB16_305 +.LBB16_308: ldr w8, [x19, #784] - cbz w8, .LBB16_419 + cbz w8, .LBB16_415 bl ebc_get_dsp_list_enum_num - cbnz w0, .LBB16_419 + cbnz w0, .LBB16_415 sub x0, x29, #40 mov w1, wzr str wzr, [x19, #312] @@ -4106,26 +4509,26 @@ ebc_thread: mov w2, #1 bl prepare_to_wait_event ldr w8, [x19, #312] - cbz w8, .LBB16_399 -.LBB16_224: + cbz w8, .LBB16_396 +.LBB16_311: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait -.LBB16_225: +.LBB16_312: bl ebc_get_dsp_list_enum_num - cbnz w0, .LBB16_419 + cbnz w0, .LBB16_415 ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_432 -.LBB16_227: + b.ge .LBB16_429 +.LBB16_314: ldr w8, [x19, #304] - ldr x26, [x19, #368] + ldr x21, [x19, #368] sub w8, w8, #1 cmp w8, #1 str w8, [sp, #20] - b.le .LBB16_408 + b.le .LBB16_404 ldr x8, [x19, #440] ldr w9, [x19, #308] ldr x20, [x19, #376] @@ -4136,194 +4539,194 @@ ebc_thread: str x8, [sp, #64] mov w8, #1 str w8, [sp, #36] - b .LBB16_230 -.LBB16_229: + b .LBB16_317 +.LBB16_316: ldr w9, [sp, #36] ldr w8, [sp, #20] add w9, w9, #1 cmp w9, w8 str w9, [sp, #36] - b.eq .LBB16_407 -.LBB16_230: + b.eq .LBB16_403 +.LBB16_317: ldr x8, [sp, #64] cmp w8, #2 - b.lt .LBB16_229 + b.lt .LBB16_316 ldr w8, [sp, #56] mov w28, #1 ldr w9, [sp, #36] mul w8, w9, w8 str w8, [sp, #60] - b .LBB16_233 -.LBB16_232: + b .LBB16_320 +.LBB16_319: ldr x8, [sp, #64] add x28, x28, #1 cmp x28, x8 - b.eq .LBB16_229 -.LBB16_233: + b.eq .LBB16_316 +.LBB16_320: ldr w8, [sp, #60] add w8, w8, w28 sxtw x23, w8 ldrb w8, [x20, x23] - cbz w8, .LBB16_232 + cbz w8, .LBB16_319 ldur x8, [x29, #-64] - ldrb w21, [x8, x23] -.LBB16_235: + ldrb w27, [x8, x23] +.LBB16_322: bl get_random_u8 and w8, w0, #0xff add w8, w8, w0, uxtb #1 tst w8, #0xff - b.eq .LBB16_235 + b.eq .LBB16_322 lsr w8, w8, #4 - cmp w21, #240 + cmp w27, #240 and w8, w8, #0x30 sub w9, w8, #88 - strb w9, [x26, x23] - b.ne .LBB16_232 + strb w9, [x21, x23] + b.ne .LBB16_319 ldr w9, [sp, #56] sub w9, w23, w9 sxtw x9, w9 ldrb w10, [x20, x9] - cbnz w10, .LBB16_240 + cbnz w10, .LBB16_327 ldur x10, [x29, #-64] ldrb w10, [x10, x9] cmp w10, #240 - b.ne .LBB16_240 + b.ne .LBB16_327 sub w10, w8, #40 - strb w10, [x26, x9] -.LBB16_240: + strb w10, [x21, x9] +.LBB16_327: ldr w9, [sp, #56] add w9, w23, w9 sxtw x9, w9 ldrb w10, [x20, x9] - cbnz w10, .LBB16_243 + cbnz w10, .LBB16_330 ldur x10, [x29, #-64] ldrb w10, [x10, x9] cmp w10, #240 - b.ne .LBB16_243 + b.ne .LBB16_330 sub w10, w8, #40 - strb w10, [x26, x9] -.LBB16_243: + strb w10, [x21, x9] +.LBB16_330: sub w9, w23, #1 sxtw x9, w9 ldrb w10, [x20, x9] - cbnz w10, .LBB16_246 + cbnz w10, .LBB16_333 ldur x10, [x29, #-64] ldrb w10, [x10, x9] cmp w10, #240 - b.ne .LBB16_246 + b.ne .LBB16_333 sub w10, w8, #40 - strb w10, [x26, x9] -.LBB16_246: + strb w10, [x21, x9] +.LBB16_333: add w9, w23, #1 sxtw x9, w9 ldrb w10, [x20, x9] - cbnz w10, .LBB16_232 + cbnz w10, .LBB16_319 ldur x10, [x29, #-64] ldrb w10, [x10, x9] cmp w10, #240 - b.ne .LBB16_232 + b.ne .LBB16_319 sub w8, w8, #40 - strb w8, [x26, x9] - b .LBB16_232 -.LBB16_249: + strb w8, [x21, x9] + b .LBB16_319 +.LBB16_336: ldr x8, [sp, #40] - adrp x1, .L.str.77 - add x1, x1, :lo12:.L.str.77 + adrp x1, .L.str.80 + add x1, x1, :lo12:.L.str.80 ldr x0, [x8] bl _dev_info ldur x8, [x29, #-48] ldr w8, [x8] - cbnz w8, .LBB16_31 - b .LBB16_44 -.LBB16_250: + cbnz w8, .LBB16_32 + b .LBB16_45 +.LBB16_337: ldr x8, [sp, #40] - adrp x1, .L.str.78 - add x1, x1, :lo12:.L.str.78 + adrp x1, .L.str.81 + add x1, x1, :lo12:.L.str.81 ldr x0, [x8] bl _dev_info mov w3, #1 - b .LBB16_45 -.LBB16_251: + b .LBB16_46 +.LBB16_338: + ldr w8, [x19, #252] + add w9, w8, #7 + cmp w8, #0 + csel w9, w9, w8, lt + cmp w8, #8 + b.lt .LBB16_342 + ldr x10, [x19, #432] + asr w9, w9, #3 + ldr x1, [x10, #16] + ldr x10, [x21, #16] + mov x11, x1 +.LBB16_340: + ldr x12, [x10] + ldr x13, [x11] + cmp x12, x13 + b.ne .LBB16_233 + add x11, x11, #8 + add x10, x10, #8 + subs w9, w9, #1 + b.ne .LBB16_340 +.LBB16_342: + ldur x8, [x29, #-56] + ldr w8, [x8] + cmp w8, #1 + b.lt .LBB16_186 + ldr x8, [sp, #40] + adrp x1, .L.str.86 + add x1, x1, :lo12:.L.str.86 + b .LBB16_348 +.LBB16_344: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait -.LBB16_252: +.LBB16_345: ldur x8, [x29, #-56] ldr w8, [x8] cmp w8, #1 - b.lt .LBB16_360 + b.lt .LBB16_366 ldr x8, [sp, #40] - adrp x1, .L.str.78 - add x1, x1, :lo12:.L.str.78 + adrp x1, .L.str.81 + add x1, x1, :lo12:.L.str.81 ldr x0, [x8] bl _dev_info - b .LBB16_360 -.LBB16_254: + b .LBB16_366 +.LBB16_347: ldr x8, [sp, #40] - adrp x1, .L.str.83 - add x1, x1, :lo12:.L.str.83 -.LBB16_255: + adrp x1, .L.str.84 + add x1, x1, :lo12:.L.str.84 +.LBB16_348: ldr x0, [x8] bl _dev_info mov w3, #1 - b .LBB16_104 -.LBB16_256: + b .LBB16_186 +.LBB16_349: mov x0, x19 mov w1, wzr bl ebc_power_set ldr w8, [x19, #312] cbnz w8, .LBB16_20 -.LBB16_257: +.LBB16_350: sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry -.LBB16_258: +.LBB16_351: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq mov w2, #1 bl prepare_to_wait_event ldr w8, [x19, #312] - cbnz w8, .LBB16_396 + cbnz w8, .LBB16_393 cbnz x0, .LBB16_20 bl schedule - b .LBB16_258 -.LBB16_261: - ldr w8, [x19, #252] - add w9, w8, #7 - cmp w8, #0 - csel w9, w9, w8, lt - cmp w8, #8 - b.lt .LBB16_265 - ldr x10, [x19, #432] - asr w9, w9, #3 - ldr x1, [x10, #16] - ldr x10, [x26, #16] - mov x11, x1 -.LBB16_263: - ldr x12, [x10] - ldr x13, [x11] - cmp x12, x13 - b.ne .LBB16_147 - add x11, x11, #8 - add x10, x10, #8 - subs w9, w9, #1 - b.ne .LBB16_263 -.LBB16_265: - ldur x8, [x29, #-56] - ldr w8, [x8] - cmp w8, #1 - b.lt .LBB16_104 - ldr x8, [sp, #40] - adrp x1, .L.str.85 - add x1, x1, :lo12:.L.str.85 - b .LBB16_255 -.LBB16_267: -.LBB16_268: + b .LBB16_351 +.LBB16_354: +.LBB16_355: ldr x0, [x19, #368] sxtw x2, w8 bl memcpy @@ -4334,385 +4737,8 @@ ebc_thread: bl memcpy str wzr, [x19, #784] str wzr, [x19, #776] -.LBB16_269: - mov w8, #4 - str x26, [x19, #456] - ldr w9, [x19, #308] - mov w28, #1 - str w8, [x19, #464] - ldp w10, w8, [x26, #48] - ldp w12, w14, [x26, #56] - add w11, w10, #7 - cmp w10, #0 - add w13, w12, #7 - csel w11, w11, w10, lt - cmp w12, #0 - add w10, w9, #7 - csel w12, w13, w12, lt - cmp w9, #0 - asr w15, w12, #3 - csel w12, w10, w9, lt - ldr w10, [x19, #304] - add w9, w15, #1 - asr w13, w12, #3 - sub w16, w13, #1 - cmp w9, w13 - csinc w9, w16, w15, ge - sub w15, w10, #1 - cmp w14, w10 - csel w10, w14, w15, lt - cmp w8, w10 - b.le .LBB16_274 -.LBB16_270: - ldur x8, [x29, #-48] - ldr w8, [x8] - cbz w8, .LBB16_348 - adrp x8, ebc_auto_task - ldr x0, [x8, :lo12:ebc_auto_task] - bl wake_up_process - ldr x0, [x19, #448] - cbz x0, .LBB16_273 -.LBB16_272: - bl ebc_buf_release -.LBB16_273: - ldr x8, [x19, #456] - str x8, [x19, #448] - b .LBB16_3 -.LBB16_274: - ldr x14, [x19, #440] - mul w13, w13, w8 - ldp x16, x15, [x19, #384] - sxtw x13, w13 - asr w11, w11, #3 - ldr x14, [x14, #16] - lsl x0, x13, #3 - ldr x17, [x26, #16] - sbfx x2, x12, #3, #29 - ldr x1, [x19, #360] - add x13, x16, x0 - add x12, x15, x0 - add x14, x14, x0 - add x15, x17, x0 - sxtw x17, w11 - add x16, x1, x0 - add w0, w9, #1 - sxtw x0, w0 - lsl x1, x2, #3 - b .LBB16_276 -.LBB16_275: - add w8, w8, #1 - add x12, x12, x1 - add x13, x13, x1 - add x14, x14, x1 - add x15, x15, x1 - add x16, x16, x1 - cmp w8, w10 - b.gt .LBB16_270 -.LBB16_276: - cmp w11, w9 - b.gt .LBB16_275 - mov x2, x17 - b .LBB16_280 -.LBB16_278: - lsr x20, x5, #56 - orr x21, x4, #0x100000000000000 - cmp x20, #240 - orr x7, x7, #0xff00000000000000 - csel x4, x21, x4, eq -.LBB16_279: - bic x6, x6, x7 - and x5, x7, x5 - add x2, x2, #1 - orr x5, x6, x5 - cmp x0, x2 - str x4, [x12, x3] - str x5, [x16, x3] - b.eq .LBB16_275 -.LBB16_280: - lsl x3, x2, #3 - ldr x26, [x13, x3] - ldr x6, [x16, x3] - ldr x21, [x15, x3] - ldr x5, [x14, x3] - ldr x4, [x12, x3] - tst x26, #0xff - b.eq .LBB16_282 - mov x7, xzr - b .LBB16_284 -.LBB16_282: - and x4, x4, #0xffffffffffffff00 - and x20, x21, #0xf0 - cmp w20, #240 - b.ne .LBB16_307 - and x7, x5, #0xff - cmp x7, #240 - cset w7, eq - orr x4, x4, x7 - mov w7, #255 -.LBB16_284: - tst x26, #0xff00 - b.eq .LBB16_291 - tst x26, #0xff0000 - b.eq .LBB16_293 -.LBB16_286: - tst x26, #0xff000000 - b.eq .LBB16_295 -.LBB16_287: - tst x26, #0xff00000000 - b.eq .LBB16_297 -.LBB16_288: - tst x26, #0xff0000000000 - b.eq .LBB16_299 -.LBB16_289: - tst x26, #0xff000000000000 - b.eq .LBB16_301 -.LBB16_290: - lsr x20, x26, #56 - cbnz x20, .LBB16_279 - b .LBB16_303 -.LBB16_291: - and x4, x4, #0xffffffffffff00ff - and x20, x21, #0xf000 - cmp w20, #15, lsl #12 - b.ne .LBB16_309 - and x20, x5, #0xff00 - orr x23, x4, #0x100 - cmp x20, #15, lsl #12 - orr x7, x7, #0xff00 - csel x4, x23, x4, eq - tst x26, #0xff0000 - b.ne .LBB16_286 -.LBB16_293: - and x4, x4, #0xffffffffff00ffff - and x20, x21, #0xf00000 - cmp x20, #3840, lsl #12 - b.ne .LBB16_313 - and x20, x5, #0xff0000 - orr x23, x4, #0x10000 - cmp x20, #3840, lsl #12 - orr x7, x7, #0xff0000 - csel x4, x23, x4, eq - tst x26, #0xff000000 - b.ne .LBB16_287 -.LBB16_295: - and x4, x4, #0xffffffff00ffffff - and x20, x21, #0xf0000000 - cmp w20, w27 - b.ne .LBB16_317 - and x20, x5, #0xff000000 - orr x23, x4, #0x1000000 - cmp x20, x27 - orr x7, x7, #0xff000000 - csel x4, x23, x4, eq - tst x26, #0xff00000000 - b.ne .LBB16_288 -.LBB16_297: - and x4, x4, #0xffffff00ffffffff - and x20, x21, #0xf000000000 - cmp x20, x25 - b.ne .LBB16_319 - and x20, x5, #0xff00000000 - orr x23, x4, #0x100000000 - cmp x20, x25 - orr x7, x7, #0xff00000000 - csel x4, x23, x4, eq - tst x26, #0xff0000000000 - b.ne .LBB16_289 -.LBB16_299: - and x4, x4, #0xffff00ffffffffff - and x20, x21, #0xf00000000000 - cmp x20, x24 - b.ne .LBB16_321 - and x20, x5, #0xff0000000000 - orr x23, x4, #0x10000000000 - cmp x20, x24 - orr x7, x7, #0xff0000000000 - csel x4, x23, x4, eq - tst x26, #0xff000000000000 - b.ne .LBB16_290 -.LBB16_301: - and x4, x4, #0xff00ffffffffffff - and x20, x21, #0xf0000000000000 - cmp x20, x22 - b.ne .LBB16_323 - and x20, x5, #0xff000000000000 - orr x23, x4, #0x1000000000000 - cmp x20, x22 - orr x7, x7, #0xff000000000000 - csel x4, x23, x4, eq - lsr x20, x26, #56 - cbnz x20, .LBB16_279 -.LBB16_303: - and x4, x4, #0xffffffffffffff - lsr x20, x21, #60 - cmp x20, #15 - b.hs .LBB16_278 - and x20, x21, #0xf000000000000000 - mov x21, #-2305843009213693952 - cmp x20, x21 - b.eq .LBB16_339 - and x6, x6, #0xffffffffffffff - cbnz x20, .LBB16_340 - orr x4, x4, #0x100000000000000 - b .LBB16_279 -.LBB16_307: - cbnz w20, .LBB16_325 - mov x7, xzr - and x6, x6, #0xffffffffffffff00 - orr x4, x4, #0x1 - b .LBB16_284 -.LBB16_309: - and x6, x6, #0xffffffffffff00ff - cbz w20, .LBB16_312 - cmp w20, #14, lsl #12 - b.ne .LBB16_341 - orr x6, x6, #0xf000 -.LBB16_312: - orr x4, x4, #0x100 - tst x26, #0xff0000 - b.ne .LBB16_286 - b .LBB16_293 -.LBB16_313: - and x6, x6, #0xffffffffff00ffff - cbz x20, .LBB16_316 - cmp x20, #3584, lsl #12 - b.ne .LBB16_342 - orr x6, x6, #0xf00000 -.LBB16_316: - orr x4, x4, #0x10000 - tst x26, #0xff000000 - b.ne .LBB16_287 - b .LBB16_295 -.LBB16_317: - cbnz w20, .LBB16_327 - and x6, x6, #0xffffffff00ffffff - b .LBB16_329 -.LBB16_319: - cbnz x20, .LBB16_330 - and x6, x6, #0xffffff00ffffffff - b .LBB16_332 -.LBB16_321: - cbnz x20, .LBB16_333 - and x6, x6, #0xffff00ffffffffff - b .LBB16_335 -.LBB16_323: - cbnz x20, .LBB16_336 - and x6, x6, #0xff00ffffffffffff - b .LBB16_338 -.LBB16_325: - cmp w20, #224 - b.ne .LBB16_343 - and x6, x6, #0xffffffffffffff00 - mov x7, xzr - orr x6, x6, #0xf0 - orr x4, x4, #0x1 - b .LBB16_284 -.LBB16_327: - and x6, x6, #0xffffffff00ffffff - mov w23, #-536870912 - cmp w20, w23 - b.ne .LBB16_344 - orr x6, x6, #0xf0000000 -.LBB16_329: - orr x4, x4, #0x1000000 - tst x26, #0xff00000000 - b.ne .LBB16_288 - b .LBB16_297 -.LBB16_330: - and x6, x6, #0xffffff00ffffffff - mov x23, #962072674304 - cmp x20, x23 - b.ne .LBB16_345 - orr x6, x6, #0xf000000000 -.LBB16_332: - orr x4, x4, #0x100000000 - tst x26, #0xff0000000000 - b.ne .LBB16_289 - b .LBB16_299 -.LBB16_333: - and x6, x6, #0xffff00ffffffffff - mov x23, #246290604621824 - cmp x20, x23 - b.ne .LBB16_346 - orr x6, x6, #0xf00000000000 -.LBB16_335: - orr x4, x4, #0x10000000000 - tst x26, #0xff000000000000 - b.ne .LBB16_290 - b .LBB16_301 -.LBB16_336: - and x6, x6, #0xff00ffffffffffff - mov x23, #63050394783186944 - cmp x20, x23 - b.ne .LBB16_347 - orr x6, x6, #0xf0000000000000 -.LBB16_338: - orr x4, x4, #0x1000000000000 - lsr x20, x26, #56 - cbnz x20, .LBB16_279 - b .LBB16_303 -.LBB16_339: - mov x20, #-1152921504606846976 - orr x4, x4, #0x100000000000000 - bfxil x20, x6, #0, #56 - mov x6, x20 - b .LBB16_279 -.LBB16_340: - orr x6, x6, x20 - b .LBB16_279 -.LBB16_341: - orr x6, x6, x20 - tst x26, #0xff0000 - b.ne .LBB16_286 - b .LBB16_293 -.LBB16_342: - orr x6, x6, x20 - tst x26, #0xff000000 - b.ne .LBB16_287 - b .LBB16_295 -.LBB16_343: - and x6, x6, #0xffffffffffffff00 - mov x7, xzr - orr x6, x20, x6 - b .LBB16_284 -.LBB16_344: - orr x6, x6, x20 - tst x26, #0xff00000000 - b.ne .LBB16_288 - b .LBB16_297 -.LBB16_345: - orr x6, x6, x20 - tst x26, #0xff0000000000 - b.ne .LBB16_289 - b .LBB16_299 -.LBB16_346: - orr x6, x6, x20 - tst x26, #0xff000000000000 - b.ne .LBB16_290 - b .LBB16_301 -.LBB16_347: - orr x6, x6, x20 - lsr x20, x26, #56 - cbnz x20, .LBB16_279 - b .LBB16_303 -.LBB16_348: - mov x0, x19 - mov w1, #1 - mov w2, wzr - str w28, [x19, #276] - bl ebc_lut_update - ldr w9, [x19, #800] - ldr w8, [x19, #328] - cmp w9, #1 - strh w8, [x19, #280] - b.ge .LBB16_350 -.LBB16_349: - mov x0, x19 - bl ebc_frame_start - ldr x0, [x19, #448] - cbnz x0, .LBB16_272 - b .LBB16_273 -.LBB16_350: + b .LBB16_28 +.LBB16_356: ldr x9, [sp, #40] adrp x1, .L.str.76 and w2, w8, #0xff @@ -4720,27 +4746,27 @@ ebc_thread: add x1, x1, :lo12:.L.str.76 ldr x0, [x9] bl _dev_info - b .LBB16_349 -.LBB16_351: + b .LBB16_151 +.LBB16_357: ldr w8, [x19, #780] - cbz w8, .LBB16_359 + cbz w8, .LBB16_365 ldr w8, [x19, #776] - cbnz w8, .LBB16_354 + cbnz w8, .LBB16_360 ldr w8, [x19, #784] - cbz w8, .LBB16_359 -.LBB16_354: + cbz w8, .LBB16_365 +.LBB16_360: ldur x8, [x29, #-56] - mov x9, x26 + mov x9, x21 ldr w8, [x8] cmp w8, #1 - b.ge .LBB16_433 -.LBB16_355: + b.ge .LBB16_430 +.LBB16_361: ldr w8, [x19, #252] ldr x1, [x19, #376] cmp w8, #1 - b.lt .LBB16_424 + b.lt .LBB16_420 ldr x9, [x9, #16] -.LBB16_357: +.LBB16_363: ldrb w10, [x9], #1 ldrb w11, [x1] mvn w12, w10 @@ -4749,44 +4775,44 @@ ebc_thread: csel w10, w10, w12, eq subs x8, x8, #1 strb w10, [x1], #1 - b.ne .LBB16_357 + b.ne .LBB16_363 ldr x1, [x19, #376] ldr w8, [x19, #252] - b .LBB16_425 -.LBB16_359: + b .LBB16_421 +.LBB16_365: ldr x8, [x19, #432] ldr x0, [x19, #368] ldrsw x2, [x19, #252] ldr x1, [x8, #16] bl memcpy -.LBB16_360: +.LBB16_366: ldr x8, [x19, #440] ldr x0, [x19, #360] ldrsw x2, [x19, #252] ldr x1, [x8, #16] bl memcpy mov w3, #1 -.LBB16_361: +.LBB16_367: ldr w8, [x19, #276] mov w9, #3 str w9, [x19, #464] - cbnz w8, .LBB16_422 + cbnz w8, .LBB16_418 str w3, [x19, #276] mov x0, x19 - ldr w1, [x26, #40] + ldr w1, [x21, #40] mov w2, wzr bl ebc_lut_update ldr w9, [x19, #800] ldr w8, [x19, #328] cmp w9, #1 strh w8, [x19, #280] - b.ge .LBB16_415 -.LBB16_363: + b.ge .LBB16_411 +.LBB16_369: mov x0, x19 bl ebc_frame_start - b .LBB16_421 -.LBB16_364: -.LBB16_365: + b .LBB16_417 +.LBB16_370: +.LBB16_371: ldr x0, [x19, #368] sxtw x2, w8 bl memcpy @@ -4797,72 +4823,43 @@ ebc_thread: bl memcpy str wzr, [x19, #784] str wzr, [x19, #776] -.LBB16_366: - ldr x8, [x19, #440] - ldr w9, [x26, #40] - ldr w8, [x8, #40] - cmp w9, w8 - b.eq .LBB16_375 - ldur x8, [x29, #-48] - ldr w8, [x8] - cbz w8, .LBB16_375 - ldur x8, [x29, #-56] - ldr w8, [x8] - cmp w8, #1 - b.ge .LBB16_394 -.LBB16_369: - sub x0, x29, #40 - mov w1, wzr - stp xzr, xzr, [x29, #-16] - stp xzr, xzr, [x29, #-32] - stur xzr, [x29, #-40] - bl init_wait_entry -.LBB16_370: - adrp x0, ebc_thread_wq - sub x1, x29, #40 - add x0, x0, :lo12:ebc_thread_wq - mov w2, #1 - bl prepare_to_wait_event - ldur x8, [x29, #-48] - ldr w8, [x8] - cbz w8, .LBB16_373 - cbnz x0, .LBB16_374 - bl schedule - b .LBB16_370 -.LBB16_373: - adrp x0, ebc_thread_wq - sub x1, x29, #40 - add x0, x0, :lo12:ebc_thread_wq - bl finish_wait -.LBB16_374: - ldur x8, [x29, #-56] - ldr w8, [x8] - cmp w8, #1 - b.ge .LBB16_395 -.LBB16_375: +.LBB16_372: mov w8, #4 - str x26, [x19, #440] + str x21, [x19, #440] ldp x3, x4, [x19, #384] str w8, [x19, #464] ldr x0, [x19, #360] ldr x1, [x19, #240] - ldr x2, [x26, #16] + ldr x2, [x21, #16] ldr x5, [sp, #48] bl refresh_new_image ldr w8, [x19, #276] + cbz w8, .LBB16_375 + ldur x8, [x29, #-56] mov w3, #1 - cbnz w8, .LBB16_388 - str w3, [x19, #276] + ldr w8, [x8] + cmp w8, #1 + b.lt .LBB16_387 + ldr x8, [x19, #440] + adrp x1, .L.str.78 + ldr x0, [x19, #320] + add x1, x1, :lo12:.L.str.78 + ldrb w3, [x19, #280] + ldr w2, [x8, #40] + bl _dev_info + b .LBB16_386 +.LBB16_375: + str w20, [x19, #276] mov x0, x19 - ldr w1, [x26, #40] + ldr w1, [x21, #40] mov w2, wzr bl ebc_lut_update ldr w9, [x19, #800] ldr w8, [x19, #328] cmp w9, #1 strh w8, [x19, #280] - b.ge .LBB16_393 -.LBB16_377: + b.ge .LBB16_392 +.LBB16_376: ldr x20, [sp, #48] mov w6, #1 ldp x4, x0, [x19, #392] @@ -4870,66 +4867,66 @@ ebc_thread: mov x5, x20 ldr w8, [x19, #204] ldr x3, [x19, #384] - cbz w8, .LBB16_379 + cbz w8, .LBB16_378 bl get_overlay_image2 - b .LBB16_380 -.LBB16_379: + b .LBB16_379 +.LBB16_378: bl get_overlay_image -.LBB16_380: +.LBB16_379: mov w3, #1 ldr w8, [x19, #284] - cbz w8, .LBB16_383 + cbz w8, .LBB16_382 ldp x1, x2, [x19, #360] mov x5, x20 mov w6, #1 ldp x3, x4, [x19, #384] ldr w8, [x19, #204] ldr x0, [x19, #408] - cbz w8, .LBB16_385 + cbz w8, .LBB16_384 bl get_overlay_image2 - b .LBB16_386 -.LBB16_383: + b .LBB16_385 +.LBB16_382: ldr w8, [x19, #800] str wzr, [x19, #276] str w3, [x19, #764] cmp w8, #1 - b.lt .LBB16_388 + b.lt .LBB16_387 ldr x8, [sp, #40] - adrp x1, .L.str.103 + adrp x1, .L.str.104 adrp x2, .L__func__.ebc_overlay_bg_frame_start - add x1, x1, :lo12:.L.str.103 + add x1, x1, :lo12:.L.str.104 add x2, x2, :lo12:.L__func__.ebc_overlay_bg_frame_start ldr x0, [x8] bl _dev_info - b .LBB16_387 -.LBB16_385: + b .LBB16_386 +.LBB16_384: bl get_overlay_image -.LBB16_386: +.LBB16_385: ldr x0, [sp, #24] mov x1, x20 str wzr, [x19, #112] bl flip -.LBB16_387: +.LBB16_386: mov w3, #1 -.LBB16_388: +.LBB16_387: ldr x8, [x19, #440] ldr w8, [x8, #40] cmp w8, #23 - b.hi .LBB16_390 + b.hi .LBB16_389 mov w9, #1 lsl w8, w3, w8 movk w9, #192, lsl #16 tst w8, w9 - b.ne .LBB16_422 -.LBB16_390: + b.ne .LBB16_418 +.LBB16_389: ldur x8, [x29, #-48] ldr w8, [x8] - cbz w8, .LBB16_422 + cbz w8, .LBB16_418 ldr w8, [x19, #800] str wzr, [x19, #764] cmp w8, #1 - b.ge .LBB16_405 -.LBB16_392: + b.ge .LBB16_401 +.LBB16_391: adrp x8, jiffies ldr x20, [x8, :lo12:jiffies] ldrb w8, [x19, #280] @@ -4938,57 +4935,42 @@ ebc_thread: bl __msecs_to_jiffies add x1, x0, x20 ldr x0, [sp, #8] - b .LBB16_420 -.LBB16_393: + b .LBB16_416 +.LBB16_392: ldr x9, [x19, #440] - adrp x1, .L.str.79 + adrp x1, .L.str.77 ldr x0, [x19, #320] and w3, w8, #0xff - add x1, x1, :lo12:.L.str.79 + add x1, x1, :lo12:.L.str.77 ldr w2, [x9, #40] bl _dev_info - b .LBB16_377 -.LBB16_394: - ldr x8, [sp, #40] - adrp x1, .L.str.77 - add x1, x1, :lo12:.L.str.77 - ldr x0, [x8] - bl _dev_info - ldur x8, [x29, #-48] - ldr w8, [x8] - cbnz w8, .LBB16_369 - b .LBB16_374 -.LBB16_395: - ldr x8, [sp, #40] - adrp x1, .L.str.78 - add x1, x1, :lo12:.L.str.78 - ldr x0, [x8] - bl _dev_info - b .LBB16_375 -.LBB16_396: + b .LBB16_376 +.LBB16_393: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait b .LBB16_20 -.LBB16_397: +.LBB16_394: ldr x8, [sp, #40] adrp x1, .L.str.74 add x1, x1, :lo12:.L.str.74 ldr x0, [x8] bl _dev_info - b .LBB16_69 -.LBB16_398: + mov w28, #1 + b .LBB16_70 +.LBB16_395: ldr x8, [sp, #40] - adrp x1, .L.str.82 - add x1, x1, :lo12:.L.str.82 + adrp x1, .L.str.83 + add x1, x1, :lo12:.L.str.83 ldr x0, [x8] bl _dev_info - b .LBB16_50 -.LBB16_399: + mov w3, #1 + b .LBB16_51 +.LBB16_396: mov w8, #3 -.LBB16_400: - cbnz x0, .LBB16_225 +.LBB16_397: + cbnz x0, .LBB16_312 mov x0, x8 bl schedule_timeout mov x21, x0 @@ -5001,42 +4983,35 @@ ebc_thread: cmp x21, #0 ccmp w9, #0, #4, eq csinc x8, x21, xzr, eq - cbnz w9, .LBB16_224 - cbnz x8, .LBB16_400 - b .LBB16_224 -.LBB16_403: - ldr x8, [sp, #40] - adrp x1, .L.str.86 - add x1, x1, :lo12:.L.str.86 - ldr x0, [x8] - bl _dev_info - b .LBB16_143 -.LBB16_404: + cbnz w9, .LBB16_311 + cbnz x8, .LBB16_397 + b .LBB16_311 +.LBB16_400: ldr x8, [sp, #40] adrp x1, .L.str.74 add x1, x1, :lo12:.L.str.74 ldr x0, [x8] bl _dev_info - b .LBB16_76 -.LBB16_405: + b .LBB16_158 +.LBB16_401: ldr x8, [sp, #40] - adrp x1, .L.str.80 - add x1, x1, :lo12:.L.str.80 + adrp x1, .L.str.79 + add x1, x1, :lo12:.L.str.79 ldr x0, [x8] bl _dev_info - b .LBB16_392 -.LBB16_406: + b .LBB16_391 +.LBB16_402: ldr x8, [sp, #40] - adrp x1, .L.str.91 - add x1, x1, :lo12:.L.str.91 + adrp x1, .L.str.92 + add x1, x1, :lo12:.L.str.92 ldr x0, [x8] bl _dev_info - b .LBB16_216 -.LBB16_407: - ldr x26, [x19, #368] -.LBB16_408: + b .LBB16_303 +.LBB16_403: + ldr x21, [x19, #368] +.LBB16_404: ldr x8, [x19, #432] - mov x1, x26 + mov x1, x21 ldrsw x2, [x19, #252] ldr x0, [x8, #16] bl memcpy @@ -5047,8 +5022,8 @@ ebc_thread: mov w8, #1 strb w9, [x19, #280] str w8, [x19, #276] - b.ge .LBB16_434 -.LBB16_409: + b.ge .LBB16_431 +.LBB16_405: mov x0, x19 bl ebc_frame_start adrp x8, jiffies @@ -5058,67 +5033,68 @@ ebc_thread: bl mod_timer ldr w8, [x19, #800] cmp w8, #1 - b.ge .LBB16_435 + b.ge .LBB16_432 ldr w8, [x20] - cbz w8, .LBB16_418 -.LBB16_411: + cbz w8, .LBB16_414 +.LBB16_407: sub x0, x29, #40 mov w1, wzr stp xzr, xzr, [x29, #-16] stp xzr, xzr, [x29, #-32] stur xzr, [x29, #-40] bl init_wait_entry -.LBB16_412: +.LBB16_408: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq mov w2, #1 bl prepare_to_wait_event ldr w8, [x20] - cbz w8, .LBB16_417 - cbnz x0, .LBB16_418 + cbz w8, .LBB16_413 + cbnz x0, .LBB16_414 bl schedule - b .LBB16_412 -.LBB16_415: + b .LBB16_408 +.LBB16_411: ldr x9, [sp, #40] - adrp x1, .L.str.81 + adrp x1, .L.str.82 and w2, w8, #0xff - add x1, x1, :lo12:.L.str.81 + add x1, x1, :lo12:.L.str.82 ldr x0, [x9] bl _dev_info - b .LBB16_363 -.LBB16_416: + b .LBB16_369 +.LBB16_412: ldr x8, [sp, #40] - adrp x1, .L.str.95 - add x1, x1, :lo12:.L.str.95 + adrp x1, .L.str.96 + add x1, x1, :lo12:.L.str.96 + mov w20, #1 ldr x0, [x8] bl _dev_err b .LBB16_7 -.LBB16_417: +.LBB16_413: adrp x0, ebc_thread_wq sub x1, x29, #40 add x0, x0, :lo12:ebc_thread_wq bl finish_wait -.LBB16_418: +.LBB16_414: str wzr, [x19, #784] -.LBB16_419: +.LBB16_415: adrp x8, jiffies mov w9, #335544320 ldr x8, [x8, :lo12:jiffies] ldr x0, [sp, #72] add x1, x8, x9 -.LBB16_420: +.LBB16_416: bl mod_timer -.LBB16_421: +.LBB16_417: mov w3, #1 -.LBB16_422: +.LBB16_418: ldr w8, [x19, #668] - cbz w8, .LBB16_1 - ldr x0, [x19, #432] - bl ebc_buf_release + cbnz w8, .LBB16_1 + mov w20, #1 + str w3, [x19, #668] b .LBB16_2 -.LBB16_424: -.LBB16_425: +.LBB16_420: +.LBB16_421: ldr x0, [x19, #368] sxtw x2, w8 bl memcpy @@ -5130,90 +5106,97 @@ ebc_thread: str wzr, [x19, #784] mov w3, #1 str wzr, [x19, #776] - b .LBB16_361 -.LBB16_426: + b .LBB16_367 +.LBB16_422: ldr x8, [sp, #40] adrp x1, .L.str.75 add x1, x1, :lo12:.L.str.75 ldr x0, [x8] bl _dev_info - b .LBB16_95 -.LBB16_427: + b .LBB16_177 +.LBB16_423: + ldr x8, [sp, #40] + adrp x1, .L.str.87 + add x1, x1, :lo12:.L.str.87 + ldr x0, [x8] + bl _dev_info + b .LBB16_226 +.LBB16_424: ldr x8, [sp, #40] adrp x1, .L.str.75 add x1, x1, :lo12:.L.str.75 ldr x0, [x8] bl _dev_info - b .LBB16_109 -.LBB16_428: + b .LBB16_191 +.LBB16_425: ldr x8, [sp, #40] - adrp x1, .L.str.84 - add x1, x1, :lo12:.L.str.84 + adrp x1, .L.str.85 + add x1, x1, :lo12:.L.str.85 ldr x0, [x8] bl _dev_info - ldr w8, [x26, #40] mov w3, #1 - b .LBB16_135 -.LBB16_429: + ldr w8, [x21, #40] + b .LBB16_217 +.LBB16_426: ldr x8, [sp, #40] adrp x1, .L.str.74 add x1, x1, :lo12:.L.str.74 ldr x0, [x8] bl _dev_info mov w3, #1 - b .LBB16_83 + b .LBB16_165 +.LBB16_427: + ldr x8, [sp, #40] + adrp x1, .L.str.80 + add x1, x1, :lo12:.L.str.80 + ldr x0, [x8] + bl _dev_info + ldur x8, [x29, #-48] + ldr w8, [x8] + cbnz w8, .LBB16_197 + b .LBB16_345 +.LBB16_428: + ldr x8, [sp, #40] + adrp x1, .L.str.80 + add x1, x1, :lo12:.L.str.80 + ldr x0, [x8] + bl _dev_info + ldur x8, [x29, #-48] + ldr w8, [x8] + cbnz w8, .LBB16_204 + b .LBB16_345 +.LBB16_429: + ldr x8, [sp, #40] + adrp x1, .L.str.94 + add x1, x1, :lo12:.L.str.94 + ldr x0, [x8] + bl _dev_info + b .LBB16_314 .LBB16_430: - ldr x8, [sp, #40] - adrp x1, .L.str.77 - add x1, x1, :lo12:.L.str.77 - ldr x0, [x8] - bl _dev_info - ldur x8, [x29, #-48] - ldr w8, [x8] - cbnz w8, .LBB16_115 - b .LBB16_252 -.LBB16_431: - ldr x8, [sp, #40] - adrp x1, .L.str.77 - add x1, x1, :lo12:.L.str.77 - ldr x0, [x8] - bl _dev_info - ldur x8, [x29, #-48] - ldr w8, [x8] - cbnz w8, .LBB16_122 - b .LBB16_252 -.LBB16_432: - ldr x8, [sp, #40] - adrp x1, .L.str.93 - add x1, x1, :lo12:.L.str.93 - ldr x0, [x8] - bl _dev_info - b .LBB16_227 -.LBB16_433: adrp x1, .L.str.75 ldr x0, [x19, #320] add x1, x1, :lo12:.L.str.75 bl _dev_info ldr x9, [x19, #440] - b .LBB16_355 -.LBB16_434: + b .LBB16_361 +.LBB16_431: ldr x8, [x19, #440] - adrp x1, .L.str.94 + adrp x1, .L.str.95 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.94 + add x1, x1, :lo12:.L.str.95 mov w3, #13 ldr w2, [x8, #40] bl _dev_info - b .LBB16_409 -.LBB16_435: + b .LBB16_405 +.LBB16_432: ldr x8, [sp, #40] - adrp x1, .L.str.89 - add x1, x1, :lo12:.L.str.89 + adrp x1, .L.str.90 + add x1, x1, :lo12:.L.str.90 ldr x0, [x8] bl _dev_info ldr w8, [x20] - cbnz w8, .LBB16_411 - b .LBB16_418 + cbnz w8, .LBB16_407 + b .LBB16_414 .Lfunc_end16: .size ebc_thread, .Lfunc_end16-ebc_thread @@ -8629,37 +8612,50 @@ ebc_lut_update: str x8, [sp, #8] str w9, [sp, #4] bl ebc_power_set + ldr w2, [x19, #880] + tbnz w2, #31, .LBB32_5 + str w2, [sp, #4] +.LBB32_2: + cmp w2, #51 + b.lo .LBB32_8 + ldr w8, [x19, #800] + tbz w8, #31, .LBB32_33 +.LBB32_4: + mov w8, #50 + str w8, [sp, #4] + b .LBB32_8 +.LBB32_5: ldr x0, [x19, #16] - cbz x0, .LBB32_7 + cbz x0, .LBB32_12 ldr x8, [x0, #56] add x1, sp, #4 blr x8 mov w2, w0 - cbz w2, .LBB32_8 -.LBB32_2: + cbz w2, .LBB32_13 +.LBB32_7: mov w8, #25 ldr w9, [x19, #800] str w8, [sp, #4] - tbz w9, #31, .LBB32_31 -.LBB32_3: + tbz w9, #31, .LBB32_34 +.LBB32_8: ldr w8, [x19, #800] cmp w8, #1 - b.ge .LBB32_18 + b.ge .LBB32_20 cmp w21, #23 - b.hi .LBB32_6 -.LBB32_5: + b.hi .LBB32_11 +.LBB32_10: adrp x9, .LJTI32_0 mov w8, w21 add x9, x9, :lo12:.LJTI32_0 mov w1, wzr - adr x10, .LBB32_6 + adr x10, .LBB32_11 ldrb w11, [x9, x8] add x10, x10, x11, lsl #2 br x10 -.LBB32_6: +.LBB32_11: mov w1, #3 - b .LBB32_27 -.LBB32_7: + b .LBB32_29 +.LBB32_12: ldr x0, [x19, #32] add x1, sp, #4 bl thermal_zone_get_temp @@ -8672,152 +8668,144 @@ ebc_lut_update: lsr x8, x8, #63 add w8, w8, w9, asr #6 str w8, [sp, #4] - cbnz w2, .LBB32_2 -.LBB32_8: - ldr w2, [sp, #4] - tbnz w2, #31, .LBB32_12 - cmp w2, #51 - b.lo .LBB32_3 - ldr w8, [x19, #800] - tbz w8, #31, .LBB32_33 -.LBB32_11: - mov w8, #50 - str w8, [sp, #4] - b .LBB32_3 -.LBB32_12: - ldr w8, [x19, #800] - tbz w8, #31, .LBB32_32 + cbnz w2, .LBB32_7 .LBB32_13: + ldr w2, [sp, #4] + tbz w2, #31, .LBB32_2 + ldr w8, [x19, #800] + tbz w8, #31, .LBB32_35 +.LBB32_15: mov w8, #25 str w8, [sp, #4] - b .LBB32_3 -.LBB32_14: - mov w1, #1 - b .LBB32_27 -.LBB32_15: - mov w1, #8 - b .LBB32_27 + b .LBB32_8 .LBB32_16: - mov w1, #7 - b .LBB32_27 + mov w1, #1 + b .LBB32_29 .LBB32_17: - mov w1, #2 - b .LBB32_27 + mov w1, #8 + b .LBB32_29 .LBB32_18: - adrp x1, .L.str.99 + mov w1, #7 + b .LBB32_29 +.LBB32_19: + mov w1, #2 + b .LBB32_29 +.LBB32_20: + adrp x1, .L.str.100 ldr x0, [x19, #320] ldr w2, [sp, #4] - add x1, x1, :lo12:.L.str.99 + add x1, x1, :lo12:.L.str.100 bl _dev_info cmp w21, #23 - b.ls .LBB32_5 - b .LBB32_6 -.LBB32_19: - mov w1, #10 - b .LBB32_27 -.LBB32_20: - mov w1, #4 - b .LBB32_27 + b.ls .LBB32_10 + b .LBB32_11 .LBB32_21: - mov w1, #5 - b .LBB32_27 + mov w1, #10 + b .LBB32_29 .LBB32_22: - mov w1, #6 - b .LBB32_27 + mov w1, #4 + b .LBB32_29 .LBB32_23: + mov w1, #5 + b .LBB32_29 +.LBB32_24: + mov w1, #6 + b .LBB32_29 +.LBB32_25: ldr w8, [x19, #788] mov w9, #3 cmp w8, #0 mov w8, #14 csel w1, w9, w8, eq - b .LBB32_27 -.LBB32_24: + b .LBB32_29 +.LBB32_26: ldr w8, [x19, #788] mov w9, #4 cmp w8, #0 mov w8, #13 csel w1, w9, w8, eq - b .LBB32_27 -.LBB32_25: + b .LBB32_29 +.LBB32_27: ldr w20, [x19, #192] mov w1, #11 - b .LBB32_27 -.LBB32_26: + b .LBB32_29 +.LBB32_28: ldr w20, [x19, #192] mov w1, #12 -.LBB32_27: - add x0, x19, #328 +.LBB32_29: ldr w2, [sp, #4] + add x0, x19, #328 + ldrb w4, [x19, #884] mov w3, #32 - mov w4, w20 + mov w5, w20 bl epd_lut_get - cbnz w0, .LBB32_30 -.LBB32_28: + cbnz w0, .LBB32_32 +.LBB32_30: mrs x8, SP_EL0 ldr x8, [x8, #1584] ldr x9, [sp, #8] cmp x8, x9 - b.ne .LBB32_34 + b.ne .LBB32_36 ldp x20, x19, [sp, #48] ldp x29, x30, [sp, #16] ldr x21, [sp, #32] ldr x30, [x18, #-8]! add sp, sp, #64 ret -.LBB32_30: - adrp x1, .L.str.100 +.LBB32_32: + adrp x1, .L.str.101 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.100 + add x1, x1, :lo12:.L.str.101 bl _dev_err - b .LBB32_28 -.LBB32_31: + b .LBB32_30 +.LBB32_33: adrp x1, .L.str.98 ldr x0, [x19, #320] add x1, x1, :lo12:.L.str.98 bl _dev_info - b .LBB32_3 -.LBB32_32: - adrp x1, .L.str.96 + b .LBB32_4 +.LBB32_34: + adrp x1, .L.str.99 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.96 + add x1, x1, :lo12:.L.str.99 bl _dev_info - b .LBB32_13 -.LBB32_33: + b .LBB32_8 +.LBB32_35: adrp x1, .L.str.97 ldr x0, [x19, #320] add x1, x1, :lo12:.L.str.97 bl _dev_info - b .LBB32_11 -.LBB32_34: + b .LBB32_15 +.LBB32_36: bl __stack_chk_fail .Lfunc_end32: .size ebc_lut_update, .Lfunc_end32-ebc_lut_update .section .rodata,"a",@progbits .LJTI32_0: - .byte (.LBB32_6-.LBB32_6)>>2 - .byte (.LBB32_19-.LBB32_6)>>2 - .byte (.LBB32_6-.LBB32_6)>>2 - .byte (.LBB32_20-.LBB32_6)>>2 - .byte (.LBB32_21-.LBB32_6)>>2 - .byte (.LBB32_22-.LBB32_6)>>2 - .byte (.LBB32_15-.LBB32_6)>>2 - .byte (.LBB32_23-.LBB32_6)>>2 - .byte (.LBB32_24-.LBB32_6)>>2 - .byte (.LBB32_25-.LBB32_6)>>2 - .byte (.LBB32_26-.LBB32_6)>>2 - .byte (.LBB32_15-.LBB32_6)>>2 - .byte (.LBB32_16-.LBB32_6)>>2 - .byte (.LBB32_16-.LBB32_6)>>2 - .byte (.LBB32_14-.LBB32_6)>>2 - .byte (.LBB32_17-.LBB32_6)>>2 - .byte (.LBB32_14-.LBB32_6)>>2 - .byte (.LBB32_27-.LBB32_6)>>2 - .byte (.LBB32_6-.LBB32_6)>>2 - .byte (.LBB32_6-.LBB32_6)>>2 - .byte (.LBB32_6-.LBB32_6)>>2 - .byte (.LBB32_6-.LBB32_6)>>2 - .byte (.LBB32_14-.LBB32_6)>>2 - .byte (.LBB32_17-.LBB32_6)>>2 + .byte (.LBB32_11-.LBB32_11)>>2 + .byte (.LBB32_21-.LBB32_11)>>2 + .byte (.LBB32_11-.LBB32_11)>>2 + .byte (.LBB32_22-.LBB32_11)>>2 + .byte (.LBB32_23-.LBB32_11)>>2 + .byte (.LBB32_24-.LBB32_11)>>2 + .byte (.LBB32_17-.LBB32_11)>>2 + .byte (.LBB32_25-.LBB32_11)>>2 + .byte (.LBB32_26-.LBB32_11)>>2 + .byte (.LBB32_27-.LBB32_11)>>2 + .byte (.LBB32_28-.LBB32_11)>>2 + .byte (.LBB32_17-.LBB32_11)>>2 + .byte (.LBB32_18-.LBB32_11)>>2 + .byte (.LBB32_18-.LBB32_11)>>2 + .byte (.LBB32_16-.LBB32_11)>>2 + .byte (.LBB32_19-.LBB32_11)>>2 + .byte (.LBB32_16-.LBB32_11)>>2 + .byte (.LBB32_29-.LBB32_11)>>2 + .byte (.LBB32_11-.LBB32_11)>>2 + .byte (.LBB32_11-.LBB32_11)>>2 + .byte (.LBB32_11-.LBB32_11)>>2 + .byte (.LBB32_11-.LBB32_11)>>2 + .byte (.LBB32_16-.LBB32_11)>>2 + .byte (.LBB32_19-.LBB32_11)>>2 .text .p2align 2 @@ -9028,10 +9016,10 @@ ebc_frame_start: ldr w8, [x19, #800] cmp w8, #1 b.lt .LBB33_47 - adrp x1, .L.str.102 + adrp x1, .L.str.103 adrp x2, .L__func__.ebc_frame_start ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.102 + add x1, x1, :lo12:.L.str.103 b .LBB33_62 .LBB33_31: ldp x25, x21, [sp, #8] @@ -9198,10 +9186,10 @@ ebc_frame_start: add sp, sp, #144 ret .LBB33_61: - adrp x1, .L.str.101 + adrp x1, .L.str.102 adrp x2, .L__func__.ebc_frame_start ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.101 + add x1, x1, :lo12:.L.str.102 .LBB33_62: add x2, x2, :lo12:.L__func__.ebc_frame_start bl _dev_info @@ -9270,9 +9258,9 @@ ebc_power_set: ldr w8, [x19, #800] cmp w8, #1 b.lt .LBB34_17 - adrp x1, .L.str.105 + adrp x1, .L.str.106 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.105 + add x1, x1, :lo12:.L.str.106 b .LBB34_20 .LBB34_15: ldr x0, [x19, #24] @@ -9300,8 +9288,8 @@ ebc_power_set: b .LBB34_13 .LBB34_19: ldr x0, [x19, #320] - adrp x1, .L.str.104 - add x1, x1, :lo12:.L.str.104 + adrp x1, .L.str.105 + add x1, x1, :lo12:.L.str.105 .LBB34_20: mov w2, w20 bl _dev_info @@ -9327,9 +9315,9 @@ ebc_frame_control_timeout: ldr x30, [x18, #-8]! ret .LBB35_2: - adrp x1, .L.str.107 + adrp x1, .L.str.108 ldr x0, [x8, #320] - add x1, x1, :lo12:.L.str.107 + add x1, x1, :lo12:.L.str.108 bl _dev_info b .LBB35_1 .Lfunc_end35: @@ -9367,13 +9355,13 @@ ebc_io_ctl: stp xzr, xzr, [sp, #64] ldr x21, [x8, :lo12:global_ebc] sub w8, w1, #7, lsl #12 - cmp w8, #25 + cmp w8, #27 stp xzr, xzr, [sp, #48] stp xzr, xzr, [sp, #32] stp xzr, xzr, [sp, #16] - b.hi .LBB37_55 + b.hi .LBB37_64 adrp x9, .LJTI37_0 - mov x0, xzr + mov x20, xzr add x9, x9, :lo12:.LJTI37_0 adr x10, .LBB37_2 ldrh w11, [x9, x8, lsl #1] @@ -9382,10 +9370,10 @@ ebc_io_ctl: .LBB37_2: mov x19, x2 cbz x2, .LBB37_24 - cmp w8, #25 - b.hi .LBB37_55 + cmp w8, #27 + b.hi .LBB37_64 adrp x9, .LJTI37_1 - mov x0, xzr + mov x20, xzr add x9, x9, :lo12:.LJTI37_1 adr x10, .LBB37_5 ldrh w11, [x9, x8, lsl #1] @@ -9397,10 +9385,10 @@ ebc_io_ctl: mov w2, #68 add x20, sp, #16 bl _copy_from_user - cbnz w0, .LBB37_51 + cbnz w0, .LBB37_60 add x0, x20, #48 bl ebc_empty_buf_get - cbz x0, .LBB37_52 + cbz x0, .LBB37_61 ldr x23, [x0, #8] mov x20, x0 bl ebc_phy_buf_base_get @@ -9423,97 +9411,97 @@ ebc_io_ctl: ldr w8, [x22, w9, sxtw #2] str w8, [sp, #80] bl _copy_to_user - cbz w0, .LBB37_56 + cbz w0, .LBB37_65 mov x0, x20 bl ebc_buf_release mov x0, #-14 - b .LBB37_58 + b .LBB37_67 .LBB37_9: mov w8, #1 ldr w9, [x21, #800] str w8, [x21, #760] - tbnz w9, #31, .LBB37_56 - adrp x1, .L.str.123 - ldr x0, [x21, #320] - add x1, x1, :lo12:.L.str.123 - bl _dev_info - b .LBB37_56 -.LBB37_11: - ldr w8, [x21, #800] - str wzr, [x21, #760] - tbnz w8, #31, .LBB37_56 + tbnz w9, #31, .LBB37_65 adrp x1, .L.str.124 ldr x0, [x21, #320] add x1, x1, :lo12:.L.str.124 bl _dev_info - b .LBB37_56 + b .LBB37_65 +.LBB37_11: + ldr w8, [x21, #800] + str wzr, [x21, #760] + tbnz w8, #31, .LBB37_65 + adrp x1, .L.str.125 + ldr x0, [x21, #320] + add x1, x1, :lo12:.L.str.125 + bl _dev_info + b .LBB37_65 .LBB37_13: mov w8, #1 ldr w9, [x21, #800] str w8, [x21, #768] - tbnz w9, #31, .LBB37_56 - adrp x1, .L.str.121 - ldr x0, [x21, #320] - add x1, x1, :lo12:.L.str.121 - bl _dev_info - b .LBB37_56 -.LBB37_15: - ldr w8, [x21, #800] - str wzr, [x21, #768] - tbnz w8, #31, .LBB37_56 + tbnz w9, #31, .LBB37_65 adrp x1, .L.str.122 ldr x0, [x21, #320] add x1, x1, :lo12:.L.str.122 bl _dev_info - b .LBB37_56 + b .LBB37_65 +.LBB37_15: + ldr w8, [x21, #800] + str wzr, [x21, #768] + tbnz w8, #31, .LBB37_65 + adrp x1, .L.str.123 + ldr x0, [x21, #320] + add x1, x1, :lo12:.L.str.123 + bl _dev_info + b .LBB37_65 .LBB37_17: bl ebc_drop_one_dsp_buf - cbnz w0, .LBB37_51 - b .LBB37_56 + cbnz w0, .LBB37_60 + b .LBB37_65 .LBB37_18: ldr w8, [x21, #800] - tbz w8, #31, .LBB37_60 + tbz w8, #31, .LBB37_69 .LBB37_19: mov w0, #2 bl ebc_notify mov w8, #1 - mov x0, xzr + mov x20, xzr str w8, [x21, #752] str w8, [x21, #772] - b .LBB37_57 + b .LBB37_66 .LBB37_20: ldr w8, [x21, #800] - tbz w8, #31, .LBB37_61 + tbz w8, #31, .LBB37_70 ldr w8, [x21, #752] cbz w8, .LBB37_23 .LBB37_22: mov w0, #3 bl ebc_notify .LBB37_23: - mov x0, xzr + mov x20, xzr str wzr, [x21, #752] str wzr, [x21, #772] - b .LBB37_57 + b .LBB37_66 .LBB37_24: - adrp x1, .L.str.120 + adrp x1, .L.str.121 adrp x2, .L__func__.ebc_io_ctl ldr x0, [x21, #320] - add x1, x1, :lo12:.L.str.120 + add x1, x1, :lo12:.L.str.121 add x2, x2, :lo12:.L__func__.ebc_io_ctl bl _dev_err mov x0, #-14 - b .LBB37_58 + b .LBB37_67 .LBB37_25: add x0, sp, #16 mov x1, x19 mov w2, #68 bl _copy_from_user - cbnz x0, .LBB37_51 + cbnz x0, .LBB37_60 bl ebc_phy_buf_base_get ldrsw x8, [sp, #16] add x0, x0, x8 bl ebc_find_buf_by_phy_addr - cbz x0, .LBB37_57 + cbz x0, .LBB37_65 ldr w8, [sp, #20] ldr w9, [sp, #36] ldr x10, [sp, #40] @@ -9537,16 +9525,15 @@ ebc_io_ctl: str w10, [sp, #32] stp w11, w8, [sp, #52] bl _copy_to_user - cbz x0, .LBB37_57 - adrp x1, .L.str.125 + cbz x0, .LBB37_65 + adrp x1, .L.str.126 ldr x0, [x21, #320] - add x1, x1, :lo12:.L.str.125 + add x1, x1, :lo12:.L.str.126 bl _dev_err - mov x0, #-14 - b .LBB37_58 + b .LBB37_60 .LBB37_30: bl ebc_empty_osd_buf_get - cbz x0, .LBB37_52 + cbz x0, .LBB37_61 ldr x20, [x0, #8] bl ebc_phy_buf_base_get mov w10, #26215 @@ -9567,16 +9554,15 @@ ebc_io_ctl: mov w2, #68 ldr w8, [x22, w9, sxtw #2] str w8, [sp, #80] - bl _copy_to_user - b .LBB37_57 + b .LBB37_47 .LBB37_32: add x0, sp, #16 mov x1, x19 mov w2, #68 bl _copy_from_user - cbnz x0, .LBB37_51 + cbnz x0, .LBB37_60 bl ebc_osd_buf_clone - cbz x0, .LBB37_57 + cbz x0, .LBB37_65 ldr w8, [sp, #20] ldr w9, [sp, #36] ldr x10, [sp, #40] @@ -9592,14 +9578,14 @@ ebc_io_ctl: str w8, [x21, #316] .LBB37_36: ldr w8, [x21, #312] - cbnz w8, .LBB37_56 + cbnz w8, .LBB37_65 adrp x0, ebc_thread_wq mov w8, #1 add x0, x0, :lo12:ebc_thread_wq mov w1, #1 str w8, [x21, #312] bl __wake_up_sync - b .LBB37_56 + b .LBB37_65 .LBB37_38: add x1, x21, #760 b .LBB37_46 @@ -9615,77 +9601,122 @@ ebc_io_ctl: ldr w8, [x21, #876] str wzr, [sp, #12] cmp w8, #3576 - b.ne .LBB37_56 + b.ne .LBB37_65 add x0, sp, #12 mov x1, x19 mov w2, #4 bl _copy_from_user - cbnz w0, .LBB37_51 + cbnz w0, .LBB37_60 ldr w8, [x21, #800] - tbz w8, #31, .LBB37_62 + tbz w8, #31, .LBB37_71 .LBB37_44: ldr w8, [sp, #12] str w8, [x21, #780] - b .LBB37_56 + b .LBB37_65 .LBB37_45: add x1, x21, #788 .LBB37_46: mov x0, x19 mov w2, #4 - bl _copy_to_user - b .LBB37_57 .LBB37_47: + bl _copy_to_user + mov x20, x0 + b .LBB37_66 +.LBB37_48: add x0, x21, #856 mov x1, x19 mov w2, #4 bl _copy_from_user - cbnz w0, .LBB37_51 + cbnz w0, .LBB37_60 ldr w8, [x21, #800] - tbnz w8, #31, .LBB37_56 - adrp x1, .L.str.129 + tbnz w8, #31, .LBB37_65 + adrp x1, .L.str.130 ldr x0, [x21, #320] ldr w2, [x21, #856] - add x1, x1, :lo12:.L.str.129 + add x1, x1, :lo12:.L.str.130 bl _dev_info - b .LBB37_56 -.LBB37_50: + b .LBB37_65 +.LBB37_51: add x0, x21, #868 mov x1, x19 mov w2, #4 bl _copy_from_user - cbz w0, .LBB37_53 -.LBB37_51: - mov x0, #-14 - b .LBB37_58 -.LBB37_52: - mov x0, #-1 - b .LBB37_58 -.LBB37_53: + cbnz w0, .LBB37_60 ldr w8, [x21, #800] - tbnz w8, #31, .LBB37_56 - adrp x1, .L.str.130 + tbnz w8, #31, .LBB37_65 + adrp x1, .L.str.131 ldr x0, [x21, #320] ldr w2, [x21, #868] - add x1, x1, :lo12:.L.str.130 + add x1, x1, :lo12:.L.str.131 bl _dev_info - b .LBB37_56 -.LBB37_55: - adrp x1, .L.str.131 + b .LBB37_65 +.LBB37_54: + mov w8, #-1 + add x0, sp, #12 + mov x1, x19 + mov w2, #4 + str w8, [sp, #12] + bl _copy_from_user + mov x20, x0 + cbnz w20, .LBB37_60 + ldr w8, [sp, #12] + cmp w8, #50 + b.hi .LBB37_57 + str w8, [x21, #880] +.LBB37_57: + ldr w8, [x21, #800] + tbnz w8, #31, .LBB37_66 + adrp x1, .L.str.132 + ldr x0, [x21, #320] + ldr w2, [x21, #880] + add x1, x1, :lo12:.L.str.132 + bl _dev_info + b .LBB37_66 +.LBB37_59: + add x0, sp, #12 + mov x1, x19 + mov w2, #4 + str wzr, [sp, #12] + bl _copy_from_user + mov x20, x0 + cbz w20, .LBB37_62 +.LBB37_60: + mov x0, #-14 + b .LBB37_67 +.LBB37_61: + mov x0, #-1 + b .LBB37_67 +.LBB37_62: + ldr w8, [sp, #12] + ldr w10, [x21, #800] + cmp w8, #0 + cset w9, ne + strb w9, [x21, #884] + tbnz w10, #31, .LBB37_66 + cmp w8, #0 + adrp x1, .L.str.133 + cset w2, ne + ldr x0, [x21, #320] + add x1, x1, :lo12:.L.str.133 + bl _dev_info + b .LBB37_66 +.LBB37_64: + adrp x1, .L.str.134 adrp x2, .L__func__.ebc_io_ctl ldr x0, [x21, #320] - add x1, x1, :lo12:.L.str.131 + add x1, x1, :lo12:.L.str.134 add x2, x2, :lo12:.L__func__.ebc_io_ctl bl _dev_err -.LBB37_56: - mov x0, xzr -.LBB37_57: - sxtw x0, w0 -.LBB37_58: +.LBB37_65: + mov x20, xzr +.LBB37_66: + sxtw x0, w20 +.LBB37_67: mrs x8, SP_EL0 ldr x8, [x8, #1584] ldur x9, [x29, #-8] cmp x8, x9 - b.ne .LBB37_63 + b.ne .LBB37_72 ldp x20, x19, [sp, #144] ldp x22, x21, [sp, #128] ldp x29, x30, [sp, #96] @@ -9693,28 +9724,28 @@ ebc_io_ctl: ldr x30, [x18, #-8]! add sp, sp, #160 ret -.LBB37_60: - adrp x1, .L.str.126 - ldr x0, [x21, #320] - add x1, x1, :lo12:.L.str.126 - bl _dev_info - b .LBB37_19 -.LBB37_61: +.LBB37_69: adrp x1, .L.str.127 ldr x0, [x21, #320] add x1, x1, :lo12:.L.str.127 bl _dev_info + b .LBB37_19 +.LBB37_70: + adrp x1, .L.str.128 + ldr x0, [x21, #320] + add x1, x1, :lo12:.L.str.128 + bl _dev_info ldr w8, [x21, #752] cbnz w8, .LBB37_22 b .LBB37_23 -.LBB37_62: - adrp x1, .L.str.128 +.LBB37_71: + adrp x1, .L.str.129 ldr x0, [x21, #320] ldr w2, [sp, #12] - add x1, x1, :lo12:.L.str.128 + add x1, x1, :lo12:.L.str.129 bl _dev_info b .LBB37_44 -.LBB37_63: +.LBB37_72: bl __stack_chk_fail .Lfunc_end37: .size ebc_io_ctl, .Lfunc_end37-ebc_io_ctl @@ -9729,21 +9760,23 @@ ebc_io_ctl: .hword (.LBB37_11-.LBB37_2)>>2 .hword (.LBB37_2-.LBB37_2)>>2 .hword (.LBB37_2-.LBB37_2)>>2 - .hword (.LBB37_57-.LBB37_2)>>2 + .hword (.LBB37_66-.LBB37_2)>>2 .hword (.LBB37_2-.LBB37_2)>>2 .hword (.LBB37_2-.LBB37_2)>>2 .hword (.LBB37_2-.LBB37_2)>>2 .hword (.LBB37_13-.LBB37_2)>>2 .hword (.LBB37_15-.LBB37_2)>>2 - .hword (.LBB37_57-.LBB37_2)>>2 - .hword (.LBB37_57-.LBB37_2)>>2 + .hword (.LBB37_66-.LBB37_2)>>2 + .hword (.LBB37_66-.LBB37_2)>>2 .hword (.LBB37_2-.LBB37_2)>>2 .hword (.LBB37_17-.LBB37_2)>>2 .hword (.LBB37_2-.LBB37_2)>>2 .hword (.LBB37_18-.LBB37_2)>>2 .hword (.LBB37_20-.LBB37_2)>>2 .hword (.LBB37_2-.LBB37_2)>>2 - .hword (.LBB37_55-.LBB37_2)>>2 + .hword (.LBB37_64-.LBB37_2)>>2 + .hword (.LBB37_2-.LBB37_2)>>2 + .hword (.LBB37_2-.LBB37_2)>>2 .hword (.LBB37_2-.LBB37_2)>>2 .hword (.LBB37_2-.LBB37_2)>>2 .hword (.LBB37_2-.LBB37_2)>>2 @@ -9752,29 +9785,31 @@ ebc_io_ctl: .hword (.LBB37_5-.LBB37_5)>>2 .hword (.LBB37_25-.LBB37_5)>>2 .hword (.LBB37_28-.LBB37_5)>>2 - .hword (.LBB37_57-.LBB37_5)>>2 + .hword (.LBB37_66-.LBB37_5)>>2 .hword (.LBB37_9-.LBB37_5)>>2 .hword (.LBB37_11-.LBB37_5)>>2 .hword (.LBB37_30-.LBB37_5)>>2 .hword (.LBB37_32-.LBB37_5)>>2 - .hword (.LBB37_57-.LBB37_5)>>2 - .hword (.LBB37_57-.LBB37_5)>>2 - .hword (.LBB37_57-.LBB37_5)>>2 + .hword (.LBB37_66-.LBB37_5)>>2 + .hword (.LBB37_66-.LBB37_5)>>2 + .hword (.LBB37_66-.LBB37_5)>>2 .hword (.LBB37_38-.LBB37_5)>>2 .hword (.LBB37_13-.LBB37_5)>>2 .hword (.LBB37_15-.LBB37_5)>>2 - .hword (.LBB37_57-.LBB37_5)>>2 - .hword (.LBB37_57-.LBB37_5)>>2 + .hword (.LBB37_66-.LBB37_5)>>2 + .hword (.LBB37_66-.LBB37_5)>>2 .hword (.LBB37_39-.LBB37_5)>>2 .hword (.LBB37_17-.LBB37_5)>>2 .hword (.LBB37_40-.LBB37_5)>>2 .hword (.LBB37_18-.LBB37_5)>>2 .hword (.LBB37_20-.LBB37_5)>>2 .hword (.LBB37_41-.LBB37_5)>>2 - .hword (.LBB37_55-.LBB37_5)>>2 + .hword (.LBB37_64-.LBB37_5)>>2 .hword (.LBB37_45-.LBB37_5)>>2 - .hword (.LBB37_47-.LBB37_5)>>2 - .hword (.LBB37_50-.LBB37_5)>>2 + .hword (.LBB37_48-.LBB37_5)>>2 + .hword (.LBB37_51-.LBB37_5)>>2 + .hword (.LBB37_54-.LBB37_5)>>2 + .hword (.LBB37_59-.LBB37_5)>>2 .text .p2align 2 @@ -11761,9 +11796,9 @@ waveform_version_read: mov x29, sp mov x19, x2 bl epd_lut_get_wf_version - adrp x1, .L.str.135 + adrp x1, .L.str.138 mov x2, x0 - add x1, x1, :lo12:.L.str.135 + add x1, x1, :lo12:.L.str.138 mov x0, x19 bl sprintf ldr x19, [sp, #16] @@ -11780,9 +11815,9 @@ pmic_name_read: str x30, [x18], #8 stp x29, x30, [sp, #-16]! adrp x8, global_ebc - adrp x1, .L.str.135 + adrp x1, .L.str.138 mov x0, x2 - add x1, x1, :lo12:.L.str.135 + add x1, x1, :lo12:.L.str.138 mov x29, sp ldr x8, [x8, :lo12:global_ebc] ldr x8, [x8, #16] @@ -11821,9 +11856,9 @@ pmic_temp_read: add x1, sp, #4 bl thermal_zone_get_temp .LBB47_3: - adrp x1, .L.str.138 + adrp x1, .L.str.141 ldr w2, [sp, #4] - add x1, x1, :lo12:.L.str.138 + add x1, x1, :lo12:.L.str.141 mov x0, x19 bl sprintf mrs x8, SP_EL0 @@ -11868,9 +11903,9 @@ pmic_vcom_read: asr x8, x8, #38 add w2, w8, w9 .LBB48_3: - adrp x1, .L.str.138 + adrp x1, .L.str.141 mov x0, x19 - add x1, x1, :lo12:.L.str.138 + add x1, x1, :lo12:.L.str.141 bl sprintf ldr x19, [sp, #16] sxtw x0, w0 @@ -11914,15 +11949,15 @@ pmic_vcom_write: bl ebc_regulator_set_vcom cbz w0, .LBB49_7 .LBB49_4: - adrp x1, .L.str.141 + adrp x1, .L.str.144 ldr x0, [x21] - add x1, x1, :lo12:.L.str.141 + add x1, x1, :lo12:.L.str.144 bl _dev_err b .LBB49_6 .LBB49_5: - adrp x1, .L.str.140 + adrp x1, .L.str.143 ldr x0, [x21] - add x1, x1, :lo12:.L.str.140 + add x1, x1, :lo12:.L.str.143 mov x2, x20 bl _dev_err .LBB49_6: @@ -11951,9 +11986,9 @@ ebc_version_read: str x30, [x18], #8 stp x29, x30, [sp, #-16]! mov x0, x2 - adrp x1, .L.str.135 + adrp x1, .L.str.138 adrp x2, .L.str.2 - add x1, x1, :lo12:.L.str.135 + add x1, x1, :lo12:.L.str.138 add x2, x2, :lo12:.L.str.2 mov x29, sp bl sprintf @@ -11970,9 +12005,9 @@ ebc_state_read: str x30, [x18], #8 stp x29, x30, [sp, #-16]! adrp x8, global_ebc - adrp x1, .L.str.138 + adrp x1, .L.str.141 mov x0, x2 - add x1, x1, :lo12:.L.str.138 + add x1, x1, :lo12:.L.str.141 mov x29, sp ldr x8, [x8, :lo12:global_ebc] ldr w2, [x8, #664] @@ -12025,9 +12060,9 @@ auto_frame_state_read: strh w8, [x2] b .LBB53_6 .LBB53_5: - adrp x1, .L.str.138 + adrp x1, .L.str.141 mov x0, x2 - add x1, x1, :lo12:.L.str.138 + add x1, x1, :lo12:.L.str.141 mov w2, w8 bl sprintf sxtw x0, w0 @@ -12044,9 +12079,9 @@ ebc_debug_level_read: str x30, [x18], #8 stp x29, x30, [sp, #-16]! adrp x8, global_ebc - adrp x1, .L.str.138 + adrp x1, .L.str.141 mov x0, x2 - add x1, x1, :lo12:.L.str.138 + add x1, x1, :lo12:.L.str.141 mov x29, sp ldr x8, [x8, :lo12:global_ebc] ldr w2, [x8, #800] @@ -12096,9 +12131,9 @@ ebc_debug_level_write: add sp, sp, #64 ret .LBB55_4: - adrp x1, .L.str.140 + adrp x1, .L.str.143 ldr x0, [x21, #320] - add x1, x1, :lo12:.L.str.140 + add x1, x1, :lo12:.L.str.143 mov x2, x20 bl _dev_err mov x19, #-1 @@ -12114,9 +12149,9 @@ wf_data_write: str x30, [x18], #8 stp x29, x30, [sp, #-96]! adrp x8, global_ebc - adrp x1, .L.str.149 + adrp x1, .L.str.152 mov x0, x2 - add x1, x1, :lo12:.L.str.149 + add x1, x1, :lo12:.L.str.152 stp x26, x25, [sp, #32] mov x29, sp ldr x8, [x8, :lo12:global_ebc] @@ -12140,15 +12175,15 @@ wf_data_write: ldr x30, [x18, #-8]! ret .LBB56_2: - adrp x0, .L.str.150 + adrp x0, .L.str.153 mov w1, w20 - add x0, x0, :lo12:.L.str.150 + add x0, x0, :lo12:.L.str.153 bl _printk - adrp x22, .L.str.151 - adrp x23, .L.str.152 + adrp x22, .L.str.154 + adrp x23, .L.str.155 mov x21, xzr - add x22, x22, :lo12:.L.str.151 - add x23, x23, :lo12:.L.str.152 + add x22, x22, :lo12:.L.str.154 + add x23, x23, :lo12:.L.str.155 .LBB56_3: mov x24, xzr mov x26, x25 @@ -12205,32 +12240,32 @@ ori_wf_data_write: stp xzr, xzr, [sp, #24] bl kmalloc_large cbnz x0, .LBB57_2 - adrp x0, .L.str.154 - add x0, x0, :lo12:.L.str.154 + adrp x0, .L.str.157 + add x0, x0, :lo12:.L.str.157 bl _printk b .LBB57_17 .LBB57_2: - adrp x1, .L.str.149 + adrp x1, .L.str.152 mov x19, x0 str x0, [sp, #40] - add x1, x1, :lo12:.L.str.149 + add x1, x1, :lo12:.L.str.152 mov x0, x21 bl strstr cbnz x0, .LBB57_4 - adrp x0, .L.str.157 - add x0, x0, :lo12:.L.str.157 + adrp x0, .L.str.160 + add x0, x0, :lo12:.L.str.160 b .LBB57_16 .LBB57_4: - adrp x1, .L.str.155 + adrp x1, .L.str.158 add x2, sp, #20 - add x1, x1, :lo12:.L.str.155 + add x1, x1, :lo12:.L.str.158 add x3, sp, #16 mov x0, x21 bl sscanf ldp w3, w2, [sp, #16] - adrp x0, .L.str.156 + adrp x0, .L.str.159 adrp x1, .L__func__.ori_wf_data_write - add x0, x0, :lo12:.L.str.156 + add x0, x0, :lo12:.L.str.159 add x1, x1, :lo12:.L__func__.ori_wf_data_write bl _printk ldr w1, [sp, #20] @@ -12245,16 +12280,16 @@ ori_wf_data_write: str x20, [sp, #8] bl epd_lut_get_original ldrb w21, [sp, #24] - adrp x0, .L.str.150 - add x0, x0, :lo12:.L.str.150 + adrp x0, .L.str.153 + add x0, x0, :lo12:.L.str.153 mov w1, w21 bl _printk - adrp x23, .L.str.151 - adrp x24, .L.str.152 + adrp x23, .L.str.154 + adrp x24, .L.str.155 mov x22, xzr mov x20, x19 - add x23, x23, :lo12:.L.str.151 - add x24, x24, :lo12:.L.str.152 + add x23, x23, :lo12:.L.str.154 + add x24, x24, :lo12:.L.str.155 .LBB57_8: mov x25, xzr mov x26, x20 @@ -12287,8 +12322,8 @@ ori_wf_data_write: ldr x20, [sp, #8] b .LBB57_17 .LBB57_15: - adrp x0, .L.str.158 - add x0, x0, :lo12:.L.str.158 + adrp x0, .L.str.161 + add x0, x0, :lo12:.L.str.161 .LBB57_16: adrp x1, .L__func__.ori_wf_data_write add x1, x1, :lo12:.L__func__.ori_wf_data_write @@ -12332,9 +12367,9 @@ ebc_suspend: ldr x8, [x0, #40] blr x8 .LBB58_2: - adrp x1, .L.str.159 + adrp x1, .L.str.162 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.159 + add x1, x1, :lo12:.L.str.162 bl _dev_info ldr x19, [sp, #16] mov w0, wzr @@ -12357,9 +12392,9 @@ ebc_resume: ldr x8, [x0, #48] blr x8 .LBB59_2: - adrp x1, .L.str.160 + adrp x1, .L.str.163 ldr x0, [x19, #320] - add x1, x1, :lo12:.L.str.160 + add x1, x1, :lo12:.L.str.163 str wzr, [x19, #756] bl _dev_info ldr x19, [sp, #16] @@ -12494,7 +12529,7 @@ ebc_pm: .type .L.str.2,@object .L.str.2: - .asciz "7.13_y8" + .asciz "7.14_y8" .size .L.str.2, 8 .type .L.str.3,@object @@ -12926,223 +12961,228 @@ ebc_auto_assist_thread_sem: .type .L.str.77,@object .L.str.77: - .asciz "ebc is busy now, waiting prev mode end...\n" - .size .L.str.77, 43 + .asciz "frame start under overlay, mode = %d, framecount = %d\n" + .size .L.str.77, 55 .type .L.str.78,@object .L.str.78: - .asciz "prev refresh mode end\n" - .size .L.str.78, 23 + .asciz "update frame under overlay, mode = %d, framecount = %d\n" + .size .L.str.78, 56 .type .L.str.79,@object .L.str.79: - .asciz "frame start under overlay, mode = %d, framecount = %d\n" - .size .L.str.79, 55 + .asciz "control bg update under overlay mode, overlay_bg_update=0\n" + .size .L.str.79, 59 .type .L.str.80,@object .L.str.80: - .asciz "control bg update under overlay mode, overlay_bg_update=0\n" - .size .L.str.80, 59 + .asciz "ebc is busy now, waiting prev mode end...\n" + .size .L.str.80, 43 .type .L.str.81,@object .L.str.81: - .asciz "auto mode start, frame_total=%d\n" - .size .L.str.81, 33 + .asciz "prev refresh mode end\n" + .size .L.str.81, 23 .type .L.str.82,@object .L.str.82: - .asciz "last frame not complete, left = %d, change to force full\n" - .size .L.str.82, 58 + .asciz "auto mode start, frame_total=%d\n" + .size .L.str.82, 33 .type .L.str.83,@object .L.str.83: - .asciz "check_part_mode==0, no need refresh\n" - .size .L.str.83, 37 + .asciz "last frame not complete, left = %d, change to force full\n" + .size .L.str.83, 58 .type .L.str.84,@object .L.str.84: - .asciz "check_diff_percent==2, full refresh\n" + .asciz "check_part_mode==0, no need refresh\n" .size .L.str.84, 37 .type .L.str.85,@object .L.str.85: - .asciz "fast check_part_mode==0, no need refresh\n" - .size .L.str.85, 42 + .asciz "check_diff_percent==2, full refresh\n" + .size .L.str.85, 37 .type .L.str.86,@object .L.str.86: - .asciz "change from fast mode and not complete, force full\n" - .size .L.str.86, 52 + .asciz "fast check_part_mode==0, no need refresh\n" + .size .L.str.86, 42 .type .L.str.87,@object .L.str.87: - .asciz "frame start, mode = %d, framecount = %d vs %d\n" - .size .L.str.87, 47 + .asciz "change from fast mode\n" + .size .L.str.87, 23 .type .L.str.88,@object .L.str.88: - .asciz "update repair buf\n" - .size .L.str.88, 19 + .asciz "frame start, mode = %d, framecount = %d vs %d\n" + .size .L.str.88, 47 .type .L.str.89,@object .L.str.89: - .asciz "waiting frame done\n" - .size .L.str.89, 20 + .asciz "update repair buf\n" + .size .L.str.89, 19 .type .L.str.90,@object .L.str.90: - .asciz "----update repair buf timeout----\n" - .size .L.str.90, 35 + .asciz "waiting frame done\n" + .size .L.str.90, 20 .type .L.str.91,@object .L.str.91: - .asciz "break from part work, do something before turn to overlay work\n" - .size .L.str.91, 64 + .asciz "----update repair buf timeout----\n" + .size .L.str.91, 35 .type .L.str.92,@object .L.str.92: - .asciz "no buffer, do repair..........\n" - .size .L.str.92, 32 + .asciz "break from part work, do something before turn to overlay work\n" + .size .L.str.92, 64 .type .L.str.93,@object .L.str.93: - .asciz "no buffer, do last ghost remove..........\n" - .size .L.str.93, 43 + .asciz "no buffer, do repair..........\n" + .size .L.str.93, 32 .type .L.str.94,@object .L.str.94: - .asciz "frame start, mode = %d, framecount = %d\n" - .size .L.str.94, 41 + .asciz "no buffer, do last ghost remove..........\n" + .size .L.str.94, 43 .type .L.str.95,@object .L.str.95: - .asciz "ebc buffer mode %d error!!!\n" - .size .L.str.95, 29 + .asciz "frame start, mode = %d, framecount = %d\n" + .size .L.str.95, 41 .type .L.str.96,@object .L.str.96: - .asciz "temperature = %d, out of range0~50 ,use 25 \n" - .size .L.str.96, 45 + .asciz "ebc buffer mode %d error!!!\n" + .size .L.str.96, 29 .type .L.str.97,@object .L.str.97: - .asciz "temperature = %d, out of range0~50 ,use 50 \n" + .asciz "temperature = %d, out of range0~50 ,use 25 \n" .size .L.str.97, 45 .type .L.str.98,@object .L.str.98: - .asciz "ebc_pmic_read_temp failed, ret = %d, use 25 \n" - .size .L.str.98, 46 + .asciz "temperature = %d, out of range0~50 ,use 50 \n" + .size .L.str.98, 45 .type .L.str.99,@object .L.str.99: - .asciz "lut update use temperature = %d\n" - .size .L.str.99, 33 + .asciz "ebc_pmic_read_temp failed, ret = %d, use 25 \n" + .size .L.str.99, 46 .type .L.str.100,@object .L.str.100: - .asciz "get lut data failed\n" - .size .L.str.100, 21 + .asciz "lut update use temperature = %d\n" + .size .L.str.100, 33 .type .L.str.101,@object .L.str.101: + .asciz "get lut data failed\n" + .size .L.str.101, 21 + + .type .L.str.102,@object +.L.str.102: .asciz "%s: overlay no need to update\n" - .size .L.str.101, 31 + .size .L.str.102, 31 .type .L__func__.ebc_frame_start,@object .L__func__.ebc_frame_start: .asciz "ebc_frame_start" .size .L__func__.ebc_frame_start, 16 - .type .L.str.102,@object -.L.str.102: - .asciz "%s: auto no need to update\n" - .size .L.str.102, 28 - .type .L.str.103,@object .L.str.103: + .asciz "%s: auto no need to update\n" + .size .L.str.103, 28 + + .type .L.str.104,@object +.L.str.104: .asciz "%s: overlay bg no need to update, overlay_bg_update=1\n" - .size .L.str.103, 55 + .size .L.str.104, 55 .type .L__func__.ebc_overlay_bg_frame_start,@object .L__func__.ebc_overlay_bg_frame_start: .asciz "ebc_overlay_bg_frame_start" .size .L__func__.ebc_overlay_bg_frame_start, 27 - .type .L.str.104,@object -.L.str.104: - .asciz "ebc hw power on res:%d\n" - .size .L.str.104, 24 - .type .L.str.105,@object .L.str.105: - .asciz "ebc hw power off res:%d\n" - .size .L.str.105, 25 + .asciz "ebc hw power on res:%d\n" + .size .L.str.105, 24 .type .L.str.106,@object .L.str.106: - .asciz "ebc" - .size .L.str.106, 4 + .asciz "ebc hw power off res:%d\n" + .size .L.str.106, 25 .type .L.str.107,@object .L.str.107: - .asciz "ebc_frame_control_timeout, overlay_bg_update=1\n" - .size .L.str.107, 48 + .asciz "ebc" + .size .L.str.107, 4 .type .L.str.108,@object .L.str.108: - .asciz "ulogo_addr=" - .size .L.str.108, 12 + .asciz "ebc_frame_control_timeout, overlay_bg_update=1\n" + .size .L.str.108, 48 .type .L.str.109,@object .L.str.109: - .asciz "klogo_addr=" + .asciz "ulogo_addr=" .size .L.str.109, 12 .type .L.str.110,@object .L.str.110: - .asciz "ulogo_addr=0x%x" - .size .L.str.110, 16 + .asciz "klogo_addr=" + .size .L.str.110, 12 .type .L.str.111,@object .L.str.111: - .asciz "have ulogo display, ulogo addr = 0x%x\n" - .size .L.str.111, 39 + .asciz "ulogo_addr=0x%x" + .size .L.str.111, 16 .type .L.str.112,@object .L.str.112: - .asciz "malloc ulogo buffer failed\n" - .size .L.str.112, 28 + .asciz "have ulogo display, ulogo addr = 0x%x\n" + .size .L.str.112, 39 .type .L.str.113,@object .L.str.113: - .asciz "klogo_addr=0x%x" - .size .L.str.113, 16 + .asciz "malloc ulogo buffer failed\n" + .size .L.str.113, 28 .type .L.str.114,@object .L.str.114: - .asciz "need show klogo, klogo addr = 0x%x\n" - .size .L.str.114, 36 + .asciz "klogo_addr=0x%x" + .size .L.str.114, 16 .type .L.str.115,@object .L.str.115: - .asciz "malloc klogo buffer failed\n" - .size .L.str.115, 28 + .asciz "need show klogo, klogo addr = 0x%x\n" + .size .L.str.115, 36 .type .L.str.116,@object .L.str.116: - .asciz "no uboot logo, panel init\n" - .size .L.str.116, 27 + .asciz "malloc klogo buffer failed\n" + .size .L.str.116, 28 .type .L.str.117,@object .L.str.117: - .asciz "ebc_dev_logo" - .size .L.str.117, 13 + .asciz "no uboot logo, panel init\n" + .size .L.str.117, 27 .type .L.str.118,@object .L.str.118: + .asciz "ebc_dev_logo" + .size .L.str.118, 13 + + .type .L.str.119,@object +.L.str.119: .asciz "ebc_dev_reset" - .size .L.str.118, 14 + .size .L.str.119, 14 .type ebc_misc,@object .data @@ -13150,7 +13190,7 @@ ebc_auto_assist_thread_sem: ebc_misc: .word 243 .zero 4 - .xword .L.str.106 + .xword .L.str.107 .xword ebc_ops .zero 16 .xword 0 @@ -13166,7 +13206,7 @@ ebc_misc: waveform_misc: .word 244 .zero 4 - .xword .L.str.132 + .xword .L.str.135 .xword waveform_ops .zero 16 .xword 0 @@ -13180,7 +13220,7 @@ waveform_misc: .type dev_attr_waveform_version,@object .p2align 3 dev_attr_waveform_version: - .xword .L.str.134 + .xword .L.str.137 .hword 292 .zero 6 .xword waveform_version_read @@ -13190,7 +13230,7 @@ dev_attr_waveform_version: .type dev_attr_pmic_name,@object .p2align 3 dev_attr_pmic_name: - .xword .L.str.136 + .xword .L.str.139 .hword 292 .zero 6 .xword pmic_name_read @@ -13200,7 +13240,7 @@ dev_attr_pmic_name: .type dev_attr_pmic_temp,@object .p2align 3 dev_attr_pmic_temp: - .xword .L.str.137 + .xword .L.str.140 .hword 292 .zero 6 .xword pmic_temp_read @@ -13210,7 +13250,7 @@ dev_attr_pmic_temp: .type dev_attr_pmic_vcom,@object .p2align 3 dev_attr_pmic_vcom: - .xword .L.str.139 + .xword .L.str.142 .hword 420 .zero 6 .xword pmic_vcom_read @@ -13220,7 +13260,7 @@ dev_attr_pmic_vcom: .type dev_attr_ebc_version,@object .p2align 3 dev_attr_ebc_version: - .xword .L.str.142 + .xword .L.str.145 .hword 292 .zero 6 .xword ebc_version_read @@ -13230,7 +13270,7 @@ dev_attr_ebc_version: .type dev_attr_ebc_state,@object .p2align 3 dev_attr_ebc_state: - .xword .L.str.143 + .xword .L.str.146 .hword 292 .zero 6 .xword ebc_state_read @@ -13240,7 +13280,7 @@ dev_attr_ebc_state: .type dev_attr_ebc_buf_state,@object .p2align 3 dev_attr_ebc_buf_state: - .xword .L.str.144 + .xword .L.str.147 .hword 292 .zero 6 .xword ebc_buf_state_read @@ -13250,7 +13290,7 @@ dev_attr_ebc_buf_state: .type dev_attr_auto_frame_state,@object .p2align 3 dev_attr_auto_frame_state: - .xword .L.str.145 + .xword .L.str.148 .hword 292 .zero 6 .xword auto_frame_state_read @@ -13260,7 +13300,7 @@ dev_attr_auto_frame_state: .type dev_attr_ebc_debug_level,@object .p2align 3 dev_attr_ebc_debug_level: - .xword .L.str.147 + .xword .L.str.150 .hword 420 .zero 6 .xword ebc_debug_level_read @@ -13270,7 +13310,7 @@ dev_attr_ebc_debug_level: .type dev_attr_wf_data,@object .p2align 3 dev_attr_wf_data: - .xword .L.str.148 + .xword .L.str.151 .hword 128 .zero 6 .xword 0 @@ -13280,7 +13320,7 @@ dev_attr_wf_data: .type dev_attr_ori_wf_data,@object .p2align 3 dev_attr_ori_wf_data: - .xword .L.str.153 + .xword .L.str.156 .hword 128 .zero 6 .xword 0 @@ -13327,76 +13367,86 @@ ebc_ops: .xword 0 .size ebc_ops, 272 - .type .L.str.120,@object + .type .L.str.121,@object .section .rodata.str1.1,"aMS",@progbits,1 -.L.str.120: +.L.str.121: .asciz "%s: argp NULL\n" - .size .L.str.120, 15 + .size .L.str.121, 15 .type .L__func__.ebc_io_ctl,@object .L__func__.ebc_io_ctl: .asciz "ebc_io_ctl" .size .L__func__.ebc_io_ctl, 11 - .type .L.str.121,@object -.L.str.121: - .asciz "enable bg control\n" - .size .L.str.121, 19 - .type .L.str.122,@object .L.str.122: - .asciz "disable bg control\n" - .size .L.str.122, 20 + .asciz "enable bg control\n" + .size .L.str.122, 19 .type .L.str.123,@object .L.str.123: - .asciz "enable ebc overlay, you can use osd buf to show something over the system display\n" - .size .L.str.123, 83 + .asciz "disable bg control\n" + .size .L.str.123, 20 .type .L.str.124,@object .L.str.124: - .asciz "disable ebc overlay\n" - .size .L.str.124, 21 + .asciz "enable ebc overlay, you can use osd buf to show something over the system display\n" + .size .L.str.124, 83 .type .L.str.125,@object .L.str.125: - .asciz "EBC_GET_BUFFER_INFO failed\n" - .size .L.str.125, 28 + .asciz "disable ebc overlay\n" + .size .L.str.125, 21 .type .L.str.126,@object .L.str.126: - .asciz "EBC_FB_BLANK\n" - .size .L.str.126, 14 + .asciz "EBC_GET_BUFFER_INFO failed\n" + .size .L.str.126, 28 .type .L.str.127,@object .L.str.127: - .asciz "EBC_FB_UNBLANK\n" - .size .L.str.127, 16 + .asciz "EBC_FB_BLANK\n" + .size .L.str.127, 14 .type .L.str.128,@object .L.str.128: - .asciz "EBC_ENABLE_REPAIR = %d\n" - .size .L.str.128, 24 + .asciz "EBC_FB_UNBLANK\n" + .size .L.str.128, 16 .type .L.str.129,@object .L.str.129: - .asciz "EBC_SET_FULL_REFRESH_WIDTH = %d\n" - .size .L.str.129, 33 + .asciz "EBC_ENABLE_REPAIR = %d\n" + .size .L.str.129, 24 .type .L.str.130,@object .L.str.130: - .asciz "EBC_SET_FULL_REFRESH_TYPE = %d\n" - .size .L.str.130, 32 + .asciz "EBC_SET_FULL_REFRESH_WIDTH = %d\n" + .size .L.str.130, 33 .type .L.str.131,@object .L.str.131: - .asciz "%s: unknown cmd\n" - .size .L.str.131, 17 + .asciz "EBC_SET_FULL_REFRESH_TYPE = %d\n" + .size .L.str.131, 32 .type .L.str.132,@object .L.str.132: + .asciz "EBC_SET_FORCE_TEMPERATURE = %d\n" + .size .L.str.132, 32 + + .type .L.str.133,@object +.L.str.133: + .asciz "EBC_ENABLE_WAVEFORM_FIX = %d\n" + .size .L.str.133, 30 + + .type .L.str.134,@object +.L.str.134: + .asciz "%s: unknown cmd\n" + .size .L.str.134, 17 + + .type .L.str.135,@object +.L.str.135: .asciz "waveform" - .size .L.str.132, 9 + .size .L.str.135, 9 .type waveform_ops,@object .section .rodata,"a",@progbits @@ -13438,146 +13488,146 @@ waveform_ops: .xword 0 .size waveform_ops, 272 - .type .L.str.134,@object - .section .rodata.str1.1,"aMS",@progbits,1 -.L.str.134: - .asciz "waveform_version" - .size .L.str.134, 17 - - .type .L.str.135,@object -.L.str.135: - .asciz "%s\n" - .size .L.str.135, 4 - - .type .L.str.136,@object -.L.str.136: - .asciz "pmic_name" - .size .L.str.136, 10 - .type .L.str.137,@object + .section .rodata.str1.1,"aMS",@progbits,1 .L.str.137: - .asciz "pmic_temp" - .size .L.str.137, 10 + .asciz "waveform_version" + .size .L.str.137, 17 .type .L.str.138,@object .L.str.138: - .asciz "%d\n" + .asciz "%s\n" .size .L.str.138, 4 .type .L.str.139,@object .L.str.139: - .asciz "pmic_vcom" + .asciz "pmic_name" .size .L.str.139, 10 .type .L.str.140,@object .L.str.140: - .asciz "invalid value = %s\n" - .size .L.str.140, 20 + .asciz "pmic_temp" + .size .L.str.140, 10 .type .L.str.141,@object .L.str.141: - .asciz "set vcom value failed\n" - .size .L.str.141, 23 + .asciz "%d\n" + .size .L.str.141, 4 .type .L.str.142,@object .L.str.142: - .asciz "ebc_version" - .size .L.str.142, 12 + .asciz "pmic_vcom" + .size .L.str.142, 10 .type .L.str.143,@object .L.str.143: - .asciz "ebc_state" - .size .L.str.143, 10 + .asciz "invalid value = %s\n" + .size .L.str.143, 20 .type .L.str.144,@object .L.str.144: - .asciz "ebc_buf_state" - .size .L.str.144, 14 + .asciz "set vcom value failed\n" + .size .L.str.144, 23 .type .L.str.145,@object .L.str.145: - .asciz "auto_frame_state" - .size .L.str.145, 17 + .asciz "ebc_version" + .size .L.str.145, 12 .type .L.str.146,@object .L.str.146: - .asciz "0\n" - .size .L.str.146, 3 + .asciz "ebc_state" + .size .L.str.146, 10 .type .L.str.147,@object .L.str.147: - .asciz "ebc_debug_level" - .size .L.str.147, 16 + .asciz "ebc_buf_state" + .size .L.str.147, 14 .type .L.str.148,@object .L.str.148: - .asciz "wf_data" - .size .L.str.148, 8 + .asciz "auto_frame_state" + .size .L.str.148, 17 .type .L.str.149,@object .L.str.149: - .asciz "603893" - .size .L.str.149, 7 + .asciz "0\n" + .size .L.str.149, 3 .type .L.str.150,@object .L.str.150: - .asciz "lutdata: %d frames\n" - .size .L.str.150, 20 + .asciz "ebc_debug_level" + .size .L.str.150, 16 .type .L.str.151,@object .L.str.151: - .asciz "[%d-->%d]: \n" - .size .L.str.151, 13 + .asciz "wf_data" + .size .L.str.151, 8 .type .L.str.152,@object .L.str.152: - .asciz "\001c\0017%d, " - .size .L.str.152, 9 + .asciz "603893" + .size .L.str.152, 7 .type .L.str.153,@object .L.str.153: - .asciz "ori_wf_data" - .size .L.str.153, 12 + .asciz "lutdata: %d frames\n" + .size .L.str.153, 20 .type .L.str.154,@object .L.str.154: - .asciz "malloc wf_table buffer failed\n" - .size .L.str.154, 31 + .asciz "[%d-->%d]: \n" + .size .L.str.154, 13 .type .L.str.155,@object .L.str.155: - .asciz "603893 %d %d" - .size .L.str.155, 13 + .asciz "\001c\0017%d, " + .size .L.str.155, 9 .type .L.str.156,@object .L.str.156: + .asciz "ori_wf_data" + .size .L.str.156, 12 + + .type .L.str.157,@object +.L.str.157: + .asciz "malloc wf_table buffer failed\n" + .size .L.str.157, 31 + + .type .L.str.158,@object +.L.str.158: + .asciz "603893 %d %d" + .size .L.str.158, 13 + + .type .L.str.159,@object +.L.str.159: .asciz "%s: wf mode %d on temp %d\n" - .size .L.str.156, 27 + .size .L.str.159, 27 .type .L__func__.ori_wf_data_write,@object .L__func__.ori_wf_data_write: .asciz "ori_wf_data_write" .size .L__func__.ori_wf_data_write, 18 - .type .L.str.157,@object -.L.str.157: - .asciz "%s: err code\n" - .size .L.str.157, 14 - - .type .L.str.158,@object -.L.str.158: - .asciz "%s: err lut_type or temp\n" - .size .L.str.158, 26 - - .type .L.str.159,@object -.L.str.159: - .asciz "device suspend\n" - .size .L.str.159, 16 - .type .L.str.160,@object .L.str.160: + .asciz "%s: err code\n" + .size .L.str.160, 14 + + .type .L.str.161,@object +.L.str.161: + .asciz "%s: err lut_type or temp\n" + .size .L.str.161, 26 + + .type .L.str.162,@object +.L.str.162: + .asciz "device suspend\n" + .size .L.str.162, 16 + + .type .L.str.163,@object +.L.str.163: .asciz "device resume\n" - .size .L.str.160, 15 + .size .L.str.163, 15 .ident "Android (8508608, based on r450784e) clang version 14.0.7 (https://android.googlesource.com/toolchain/llvm-project 4c603efb0cca074e9238af8b4106c30add4418f6)" .section ".note.GNU-stack","",@progbits diff --git a/drivers/gpu/drm/rockchip/ebc-dev/epdlut/epd_lut.c b/drivers/gpu/drm/rockchip/ebc-dev/epdlut/epd_lut.c index d2b08102900d..27d51f3595cf 100644 --- a/drivers/gpu/drm/rockchip/ebc-dev/epdlut/epd_lut.c +++ b/drivers/gpu/drm/rockchip/ebc-dev/epdlut/epd_lut.c @@ -16,7 +16,7 @@ #include "../ebc_dev.h" #include "epd_lut.h" -static int (*lut_get)(struct epd_lut_data *, enum epd_lut_type, int, int, int); +static int (*lut_get)(struct epd_lut_data *, enum epd_lut_type, int, int, int, int); static int (*lut_get_original)(struct epd_lut_data *, enum epd_lut_type, int, int); int epd_lut_from_mem_init(void *waveform) @@ -69,9 +69,9 @@ const char *epd_lut_get_wf_version(void) return NULL; } -int epd_lut_get(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperature, int pic, int regal_pix) +int epd_lut_get(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperature, int pic, int wf_fix, int regal_pix) { - return lut_get(output, lut_type, temperature, pic, regal_pix); + return lut_get(output, lut_type, temperature, pic, wf_fix, regal_pix); } int epd_lut_get_original(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperature, int pic) diff --git a/drivers/gpu/drm/rockchip/ebc-dev/epdlut/epd_lut.h b/drivers/gpu/drm/rockchip/ebc-dev/epdlut/epd_lut.h index 73f0b73f4cd7..f4e7f150a512 100644 --- a/drivers/gpu/drm/rockchip/ebc-dev/epdlut/epd_lut.h +++ b/drivers/gpu/drm/rockchip/ebc-dev/epdlut/epd_lut.h @@ -48,7 +48,7 @@ struct epd_lut_data { int epd_lut_from_mem_init(void *waveform); int epd_lut_from_file_init(struct device *dev, void *waveform, int size); const char *epd_lut_get_wf_version(void); -int epd_lut_get(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperature, int pic, int regal_pix); +int epd_lut_get(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperature, int pic, int wf_fix, int regal_pix); int epd_lut_get_original(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperature, int pic); //you can change overlay lut mode here @@ -60,7 +60,7 @@ int epd_overlay_lut(void); int pvi_wf_input(void *waveform_file); int pvi_wf_add_custom_mode_table(u8 *table, int size); const char *pvi_wf_get_version(void); -int pvi_wf_get_lut(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperature, int pic, int regal_pix); +int pvi_wf_get_lut(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperature, int pic, int wf_fix, int regal_pix); int pvi_wf_get_original_lut(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperature, int pic); /* @@ -68,5 +68,5 @@ int pvi_wf_get_original_lut(struct epd_lut_data *output, enum epd_lut_type lut_t */ int rkf_wf_input(void *waveform_file); const char *rkf_wf_get_version(void); -int rkf_wf_get_lut(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperature, int pic, int regal_pix); +int rkf_wf_get_lut(struct epd_lut_data *output, enum epd_lut_type lut_type, int temperature, int pic, int wf_fix, int regal_pix); #endif diff --git a/drivers/gpu/drm/rockchip/ebc-dev/epdlut/pvi_waveform_v8.S b/drivers/gpu/drm/rockchip/ebc-dev/epdlut/pvi_waveform_v8.S index 760064a99d72..98caca6206fa 100644 --- a/drivers/gpu/drm/rockchip/ebc-dev/epdlut/pvi_waveform_v8.S +++ b/drivers/gpu/drm/rockchip/ebc-dev/epdlut/pvi_waveform_v8.S @@ -65,15 +65,16 @@ pvi_wf_get_lut: str x30, [x18], #8 stp x29, x30, [sp, #-96]! stp x26, x25, [sp, #32] - adrp x25, global_waveform + adrp x26, global_waveform stp x28, x27, [sp, #16] mov x29, sp stp x24, x23, [sp, #48] - ldr x8, [x25, :lo12:global_waveform] + ldr x8, [x26, :lo12:global_waveform] stp x22, x21, [sp, #64] stp x20, x19, [sp, #80] cbz x8, .LBB1_12 - mov w21, w4 + mov w21, w5 + mov w24, w4 mov w19, w2 mov w22, w1 mov x20, x0 @@ -82,37 +83,37 @@ pvi_wf_get_lut: ldr x9, [x9] cbz x9, .LBB1_13 .LBB1_3: - adrp x27, pvi_wf_get_lut.sftemp + adrp x28, pvi_wf_get_lut.sftemp mov w9, #21846 movk w9, #21845, lsl #16 - adrp x28, pvi_wf_get_lut.stype - ldrsw x10, [x27, :lo12:pvi_wf_get_lut.sftemp] + ldrsw x10, [x28, :lo12:pvi_wf_get_lut.sftemp] smull x11, w19, w9 mul x9, x10, x9 lsr x10, x11, #63 lsr x11, x11, #32 lsr x12, x9, #63 lsr x9, x9, #32 - add w26, w11, w10 + add w27, w11, w10 add w9, w9, w12 + adrp x10, pvi_wf_get_lut.stype adrp x11, pvi_wf_get_lut.fix - cmp w26, w9 + cmp w27, w9 b.ne .LBB1_6 - ldr w10, [x28, :lo12:pvi_wf_get_lut.stype] + ldr w10, [x10, :lo12:pvi_wf_get_lut.stype] cmp w10, w22 b.ne .LBB1_6 ldr w10, [x11, :lo12:pvi_wf_get_lut.fix] cmp w10, w21 - b.eq .LBB1_25 + b.eq .LBB1_26 .LBB1_6: adrp x10, need_pic cmp w22, #10 str w3, [x10, :lo12:need_pic] - b.eq .LBB1_24 + b.eq .LBB1_25 ldr x10, [x20, #16] - adrp x24, waveformdata + adrp x25, waveformdata ldrb w9, [x8, #38] - str x10, [x24, :lo12:waveformdata] + str x10, [x25, :lo12:waveformdata] cbz w9, .LBB1_14 mov x10, xzr add x8, x8, #48 @@ -128,10 +129,10 @@ pvi_wf_get_lut: b .LBB1_16 .LBB1_12: mov w0, #-19 - b .LBB1_39 + b .LBB1_36 .LBB1_13: mov w0, #-22 - b .LBB1_39 + b .LBB1_36 .LBB1_14: mov w10, wzr mov w8, #-1 @@ -147,25 +148,26 @@ pvi_wf_get_lut: and w0, w0, #0xff mov w1, w23 bl get_wf_frm_num - tbnz w0, #31, .LBB1_44 + tbnz w0, #31, .LBB1_41 mov w23, w0 + cbz w24, .LBB1_24 cmp w22, #7 - b.eq .LBB1_19 + b.eq .LBB1_20 cmp w22, #1 - b.ne .LBB1_32 -.LBB1_19: - ldr x28, [x24, :lo12:waveformdata] + b.ne .LBB1_37 +.LBB1_20: + ldr x24, [x25, :lo12:waveformdata] mov w8, #8992 mov w9, #4832 cmp w23, #12 - add x27, x28, x8 - add x24, x28, x9 - b.ls .LBB1_61 -.LBB1_20: + add x28, x24, x8 + add x25, x24, x9 + b.ls .LBB1_62 +.LBB1_21: mov w8, wzr mov w9, w23 -.LBB1_21: - add x10, x28, w8, sxtw +.LBB1_22: + add x10, x24, w8, sxtw subs x9, x9, #1 add w8, w8, #1024 ldrb w11, [x10, #960] @@ -180,103 +182,92 @@ pvi_wf_get_lut: strb wzr, [x10, #958] strb wzr, [x10, #992] strb wzr, [x10, #1022] - b.ne .LBB1_21 -.LBB1_22: + b.ne .LBB1_22 +.LBB1_23: mov w8, #1 mov w9, #2 - strb w8, [x28, #672] - strb w9, [x28, #702] - strb w8, [x24] - strb w9, [x24, #30] - strb w8, [x27] - strb w9, [x27, #30] - strb w8, [x28, #1696] - strb w9, [x28, #1726] - strb w8, [x24, #1024] - strb w9, [x24, #1054] - strb w8, [x27, #1024] - strb w9, [x27, #1054] - strb w8, [x28, #2720] - strb w9, [x28, #2750] - strb w8, [x24, #2048] - strb w9, [x24, #2078] - strb w8, [x27, #2048] - strb w9, [x27, #2078] - strb w8, [x28, #3744] - strb w9, [x28, #3774] - strb w8, [x24, #3072] - strb w9, [x24, #3102] - strb w8, [x27, #3072] - strb w9, [x27, #3102] - strb w8, [x28, #1918] - strb w9, [x28, #2942] - strb w9, [x28, #3966] - adrp x28, pvi_wf_get_lut.stype - strb w8, [x24, #1246] - strb w9, [x24, #2270] - strb w9, [x24, #3294] - strb w8, [x27, #1246] - strb w9, [x27, #2270] - strb w9, [x27, #3294] - adrp x27, pvi_wf_get_lut.sftemp -.LBB1_23: + strb w8, [x24, #672] + strb w9, [x24, #702] + strb w8, [x25] + strb w9, [x25, #30] + strb w8, [x28] + strb w9, [x28, #30] + strb w8, [x24, #1696] + strb w9, [x24, #1726] + strb w8, [x25, #1024] + strb w9, [x25, #1054] + strb w8, [x28, #1024] + strb w9, [x28, #1054] + strb w8, [x24, #2720] + strb w9, [x24, #2750] + strb w8, [x25, #2048] + strb w9, [x25, #2078] + strb w8, [x28, #2048] + strb w9, [x28, #2078] + strb w8, [x24, #3744] + strb w9, [x24, #3774] + strb w8, [x25, #3072] + strb w9, [x25, #3102] + strb w8, [x28, #3072] + strb w9, [x28, #3102] + strb w8, [x24, #1918] + strb w9, [x24, #2942] + strb w9, [x24, #3966] + strb w8, [x25, #1246] + strb w9, [x25, #2270] + strb w9, [x25, #3294] + strb w8, [x28, #1246] + strb w9, [x28, #2270] + strb w9, [x28, #3294] + adrp x28, pvi_wf_get_lut.sftemp +.LBB1_24: ldrb w8, [x20, #1] mov w9, #21846 movk w9, #21845, lsl #16 orr w8, w23, w8, lsl #8 str w8, [x20] - ldrsw x8, [x27, :lo12:pvi_wf_get_lut.sftemp] - str w22, [x28, :lo12:pvi_wf_get_lut.stype] + ldrsw x8, [x28, :lo12:pvi_wf_get_lut.sftemp] mul x8, x8, x9 lsr x9, x8, #63 lsr x8, x8, #32 add w9, w8, w9 + adrp x8, pvi_wf_get_lut.stype + str w22, [x8, :lo12:pvi_wf_get_lut.stype] adrp x8, pvi_wf_get_lut.fix str w21, [x8, :lo12:pvi_wf_get_lut.fix] -.LBB1_24: - cmp w26, w9 - b.ne .LBB1_26 .LBB1_25: - mov w0, wzr - b .LBB1_39 + cmp w27, w9 + b.ne .LBB1_27 .LBB1_26: + mov w0, wzr + b .LBB1_36 +.LBB1_27: ldr x8, [x20, #24] adrp x9, waveformdata str x8, [x9, :lo12:waveformdata] bl epd_overlay_lut - ldr x10, [x25, :lo12:global_waveform] + ldr x10, [x26, :lo12:global_waveform] ldrb w8, [x10, #38] - cbz w8, .LBB1_31 + cbz w8, .LBB1_32 mov x9, xzr add x10, x10, #48 -.LBB1_28: +.LBB1_29: ldrb w11, [x10, x9] cmp w11, w19 - b.ge .LBB1_36 + b.ge .LBB1_33 add x9, x9, #1 cmp x8, x9 - b.ne .LBB1_28 + b.ne .LBB1_29 mov w10, #-1 mov w9, w8 - b .LBB1_37 -.LBB1_31: + b .LBB1_34 +.LBB1_32: mov w9, wzr mov w10, #-1 - b .LBB1_37 -.LBB1_32: - sub w8, w22, #5 - cmp w8, #1 - b.hi .LBB1_40 - cbz w23, .LBB1_23 - ldr x8, [x24, :lo12:waveformdata] - mov w9, w23 - cmp w23, #1 - b.ne .LBB1_47 - mov x10, xzr - b .LBB1_59 -.LBB1_36: + b .LBB1_34 +.LBB1_33: mov w10, w9 -.LBB1_37: +.LBB1_34: sub w11, w9, #1 cmp w9, w8 csel w21, w11, w10, eq @@ -284,13 +275,13 @@ pvi_wf_get_lut: and w0, w0, #0xff mov w1, w21 bl get_wf_frm_num - tbnz w0, #31, .LBB1_44 + tbnz w0, #31, .LBB1_41 ldrb w8, [x20] bfi w8, w0, #8, #24 mov w0, wzr str w8, [x20] - str w19, [x27, :lo12:pvi_wf_get_lut.sftemp] -.LBB1_39: + str w19, [x28, :lo12:pvi_wf_get_lut.sftemp] +.LBB1_36: ldp x20, x19, [sp, #80] ldp x22, x21, [sp, #64] ldp x24, x23, [sp, #48] @@ -299,33 +290,44 @@ pvi_wf_get_lut: ldp x29, x30, [sp], #96 ldr x30, [x18, #-8]! ret -.LBB1_40: - sub w8, w22, #11 +.LBB1_37: + sub w8, w22, #5 cmp w8, #1 - b.hi .LBB1_45 - cbz w23, .LBB1_23 - ldr x8, [x24, :lo12:waveformdata] + b.hi .LBB1_42 + cbz w23, .LBB1_24 + ldr x8, [x25, :lo12:waveformdata] mov w9, w23 cmp w23, #1 - b.ne .LBB1_64 + b.ne .LBB1_48 mov x10, xzr - b .LBB1_84 -.LBB1_44: + b .LBB1_60 +.LBB1_41: adrp x0, .L.str add x0, x0, :lo12:.L.str bl _printk mov w0, #-5 - b .LBB1_39 -.LBB1_45: + b .LBB1_36 +.LBB1_42: + sub w8, w22, #11 + cmp w8, #1 + b.hi .LBB1_46 + cbz w23, .LBB1_24 + ldr x8, [x25, :lo12:waveformdata] + mov w9, w23 + cmp w23, #1 + b.ne .LBB1_65 + mov x10, xzr + b .LBB1_85 +.LBB1_46: sub w8, w22, #13 cmp w8, #1 - b.hi .LBB1_23 - ldr x0, [x24, :lo12:waveformdata] + b.hi .LBB1_24 + ldr x0, [x25, :lo12:waveformdata] mov w1, w23 mov w2, w21 bl pvi_wf_normal_fix - b .LBB1_23 -.LBB1_47: + b .LBB1_24 +.LBB1_48: sub x12, x9, #1 mov x10, xzr and x11, x12, #0xffffffff @@ -334,30 +336,30 @@ pvi_wf_get_lut: cset w13, ne cmp xzr, x12, lsr #54 cset w11, ne - tbnz w14, #31, .LBB1_59 - tbnz w13, #0, .LBB1_59 + tbnz w14, #31, .LBB1_60 + tbnz w13, #0, .LBB1_60 lsr x13, x12, #32 - cbnz x13, .LBB1_59 + cbnz x13, .LBB1_60 add x13, x8, #30 lsl x12, x12, #10 add x14, x13, x12 cmp x14, x13 - b.lo .LBB1_59 - tbnz w11, #0, .LBB1_59 + b.lo .LBB1_60 + tbnz w11, #0, .LBB1_60 add x13, x8, #29 add x14, x13, x12 cmp x14, x13 - b.lo .LBB1_59 - tbnz w11, #0, .LBB1_59 + b.lo .LBB1_60 + tbnz w11, #0, .LBB1_60 add x13, x8, #31 add x12, x13, x12 cmp x12, x13 - b.lo .LBB1_59 - tbnz w11, #0, .LBB1_59 + b.lo .LBB1_60 + tbnz w11, #0, .LBB1_60 and x10, x9, #0xfffffffe mov w11, #1024 mov x12, x10 -.LBB1_57: +.LBB1_58: sub w13, w11, #1024 add x14, x8, w11, sxtw subs x12, x12, #2 @@ -369,29 +371,29 @@ pvi_wf_get_lut: strb w15, [x14, #29] strb w16, [x13, #31] strb w16, [x13, #29] - b.ne .LBB1_57 + b.ne .LBB1_58 cmp x10, x9 - b.eq .LBB1_23 -.LBB1_59: + b.eq .LBB1_24 +.LBB1_60: sub x9, x9, x10 lsl w10, w10, #10 -.LBB1_60: +.LBB1_61: add x11, x8, w10, sxtw subs x9, x9, #1 add w10, w10, #1024 ldrb w12, [x11, #30] strb w12, [x11, #31] strb w12, [x11, #29] - b.ne .LBB1_60 - b .LBB1_23 -.LBB1_61: + b.ne .LBB1_61 + b .LBB1_24 +.LBB1_62: adrp x0, .L.str.8 add x0, x0, :lo12:.L.str.8 bl _printk lsl w8, w23, #10 mov w9, #13 -.LBB1_62: - add x10, x28, w8, uxtw +.LBB1_63: + add x10, x24, w8, uxtw sub w9, w9, #1 add w8, w8, #1024 cmp w23, w9 @@ -405,11 +407,11 @@ pvi_wf_get_lut: strb wzr, [x10, #958] strb wzr, [x10, #992] strb wzr, [x10, #1022] - b.ne .LBB1_62 + b.ne .LBB1_63 cmp w23, #1 - b.ge .LBB1_20 - b .LBB1_22 -.LBB1_64: + b.ge .LBB1_21 + b .LBB1_23 +.LBB1_65: sub x12, x9, #1 mov x10, xzr and x11, x12, #0xffffffff @@ -418,50 +420,50 @@ pvi_wf_get_lut: cset w13, ne cmp xzr, x12, lsr #54 cset w11, ne - tbnz w14, #31, .LBB1_84 - tbnz w13, #0, .LBB1_84 + tbnz w14, #31, .LBB1_85 + tbnz w13, #0, .LBB1_85 lsr x13, x12, #32 - cbnz x13, .LBB1_84 + cbnz x13, .LBB1_85 add x13, x8, #30 lsl x12, x12, #10 add x14, x13, x12 cmp x14, x13 - b.lo .LBB1_84 - tbnz w11, #0, .LBB1_84 + b.lo .LBB1_85 + tbnz w11, #0, .LBB1_85 add x13, x8, #1022 add x14, x13, x12 cmp x14, x13 - b.lo .LBB1_84 - tbnz w11, #0, .LBB1_84 + b.lo .LBB1_85 + tbnz w11, #0, .LBB1_85 add x13, x8, #1021 add x14, x13, x12 cmp x14, x13 - b.lo .LBB1_84 - tbnz w11, #0, .LBB1_84 + b.lo .LBB1_85 + tbnz w11, #0, .LBB1_85 add x13, x8, #29 add x14, x13, x12 cmp x14, x13 - b.lo .LBB1_84 - tbnz w11, #0, .LBB1_84 + b.lo .LBB1_85 + tbnz w11, #0, .LBB1_85 add x13, x8, #31 add x14, x13, x12 cmp x14, x13 - b.lo .LBB1_84 - tbnz w11, #0, .LBB1_84 + b.lo .LBB1_85 + tbnz w11, #0, .LBB1_85 add x13, x8, #989 add x12, x13, x12 cmp x12, x13 - b.lo .LBB1_84 - tbnz w11, #0, .LBB1_84 + b.lo .LBB1_85 + tbnz w11, #0, .LBB1_85 and x10, x9, #0xfffffffe mov w11, #1024 mov x12, x10 - b .LBB1_81 -.LBB1_80: + b .LBB1_82 +.LBB1_81: subs x12, x12, #2 add w11, w11, #2048 - b.eq .LBB1_83 -.LBB1_81: + b.eq .LBB1_84 +.LBB1_82: sub w14, w11, #1024 add x13, x8, w11, sxtw add x14, x8, w14, sxtw @@ -473,33 +475,33 @@ pvi_wf_get_lut: strb w15, [x13, #29] strb w16, [x14, #31] strb w16, [x14, #29] - cbz w21, .LBB1_80 + cbz w21, .LBB1_81 add x14, x14, #1021 add x13, x13, #1021 strh wzr, [x14] strh wzr, [x13] - b .LBB1_80 -.LBB1_83: - cmp x10, x9 - b.eq .LBB1_23 + b .LBB1_81 .LBB1_84: + cmp x10, x9 + b.eq .LBB1_24 +.LBB1_85: sub x9, x9, x10 lsl w10, w10, #10 - b .LBB1_86 -.LBB1_85: + b .LBB1_87 +.LBB1_86: subs x9, x9, #1 add w10, w10, #1024 - b.eq .LBB1_23 -.LBB1_86: + b.eq .LBB1_24 +.LBB1_87: add x11, x8, w10, sxtw ldrb w12, [x11, #30] strb wzr, [x11, #989] strb w12, [x11, #31] strb w12, [x11, #29] - cbz w21, .LBB1_85 + cbz w21, .LBB1_86 add x11, x11, #1021 strh wzr, [x11] - b .LBB1_85 + b .LBB1_86 .Lfunc_end1: .size pvi_wf_get_lut, .Lfunc_end1-pvi_wf_get_lut diff --git a/drivers/gpu/drm/rockchip/ebc-dev/epdlut/rkf_waveform_v8.S b/drivers/gpu/drm/rockchip/ebc-dev/epdlut/rkf_waveform_v8.S index a6df1899f1e0..309150117597 100644 --- a/drivers/gpu/drm/rockchip/ebc-dev/epdlut/rkf_waveform_v8.S +++ b/drivers/gpu/drm/rockchip/ebc-dev/epdlut/rkf_waveform_v8.S @@ -190,26 +190,28 @@ rkf_wf_get_version: .p2align 2 .type rkf_wf_get_lut,@function rkf_wf_get_lut: + sub sp, sp, #112 str x30, [x18], #8 - stp x29, x30, [sp, #-96]! adrp x8, global_waveform - stp x28, x27, [sp, #16] - stp x26, x25, [sp, #32] - mov x29, sp - stp x24, x23, [sp, #48] + stp x29, x30, [sp, #16] + stp x28, x27, [sp, #32] + add x29, sp, #16 + stp x26, x25, [sp, #48] ldr x8, [x8, :lo12:global_waveform] - stp x22, x21, [sp, #64] - stp x20, x19, [sp, #80] - cbz x8, .LBB2_30 + stp x24, x23, [sp, #64] + stp x22, x21, [sp, #80] + stp x20, x19, [sp, #96] + cbz x8, .LBB2_24 mov x20, x0 - cbz x0, .LBB2_31 - mov w23, w4 + cbz x0, .LBB2_25 + mov w23, w5 + mov w24, w4 mov w19, w2 mov w21, w1 - adrp x27, need_pic + adrp x28, need_pic sub w8, w1, #8 cmp w8, #6 - str w3, [x27, :lo12:need_pic] + str w3, [x28, :lo12:need_pic] b.hi .LBB2_5 mov w9, #121 lsr w9, w9, w8 @@ -218,11 +220,10 @@ rkf_wf_get_lut: add x9, x9, :lo12:.Lswitch.table.rkf_wf_get_lut ldr w21, [x9, w8, sxtw #2] .LBB2_5: - adrp x24, rkf_wf_get_lut.sftemp + adrp x22, rkf_wf_get_lut.sftemp mov w8, #26215 movk w8, #26214, lsl #16 - adrp x26, rkf_wf_get_lut.stype - ldrsw x10, [x24, :lo12:rkf_wf_get_lut.sftemp] + ldrsw x10, [x22, :lo12:rkf_wf_get_lut.sftemp] smull x9, w19, w8 lsr x11, x9, #63 asr x9, x9, #33 @@ -231,14 +232,15 @@ rkf_wf_get_lut: lsr x9, x8, #63 asr x8, x8, #33 add w8, w8, w9 + adrp x9, rkf_wf_get_lut.stype cmp w25, w8 b.ne .LBB2_7 - ldr w9, [x26, :lo12:rkf_wf_get_lut.stype] + ldr w9, [x9, :lo12:rkf_wf_get_lut.stype] cmp w9, w21 - b.eq .LBB2_35 + b.eq .LBB2_45 .LBB2_7: cmp w21, #10 - b.eq .LBB2_34 + b.eq .LBB2_44 ldr x0, [x20, #8] cbz x0, .LBB2_10 bl kfree @@ -248,17 +250,17 @@ rkf_wf_get_lut: mov w1, w21 mov w2, w19 bl parse_wf_data - tbnz w0, #31, .LBB2_45 + tbnz w0, #31, .LBB2_55 mov w22, w0 ldr x1, [x20, #16] - cbz w21, .LBB2_32 + cbz w21, .LBB2_26 adrp x8, maxpic mov w10, #32 ldrb w9, [x8, :lo12:maxpic] mov w8, #16 cmp w9, #0 csel w10, w10, w8, ne - cbz w22, .LBB2_24 + cbz w22, .LBB2_27 lsr w13, w10, #4 mov x11, xzr mov x12, xzr @@ -295,12 +297,12 @@ rkf_wf_get_lut: add x11, x11, #1024 cmp x12, x8 b.ne .LBB2_14 - ldr w10, [x27, :lo12:need_pic] + ldr w10, [x28, :lo12:need_pic] cmp w10, #16 cset w10, eq and w9, w9, w10 cmp w9, #1 - b.ne .LBB2_24 + b.ne .LBB2_27 mov w9, wzr mov w10, wzr mov x11, xzr @@ -355,23 +357,35 @@ rkf_wf_get_lut: add w9, w9, #32 cmp x11, x8 b.ne .LBB2_21 + b .LBB2_27 .LBB2_24: - cmp w21, #7 - b.eq .LBB2_26 - cmp w21, #1 - b.ne .LBB2_41 + mov w0, #-19 + b .LBB2_50 +.LBB2_25: + mov w0, #-22 + b .LBB2_50 .LBB2_26: + mov x0, x20 + mov w2, w22 + bl rkf_lut_init_wf_table +.LBB2_27: + cbz w24, .LBB2_34 + cmp w21, #7 + b.eq .LBB2_30 + cmp w21, #1 + b.ne .LBB2_51 +.LBB2_30: ldr x23, [x20, #16] mov w8, #8992 mov w9, #4832 cmp w22, #12 - add x27, x23, x8 - add x28, x23, x9 - b.le .LBB2_66 -.LBB2_27: + add x24, x23, x8 + add x27, x23, x9 + b.le .LBB2_78 +.LBB2_31: mov w8, wzr mov w9, w22 -.LBB2_28: +.LBB2_32: add x10, x23, w8, sxtw subs x9, x9, #1 add w8, w8, #1024 @@ -387,84 +401,226 @@ rkf_wf_get_lut: strb wzr, [x10, #958] strb wzr, [x10, #992] strb wzr, [x10, #1022] - b.ne .LBB2_28 -.LBB2_29: + b.ne .LBB2_32 +.LBB2_33: mov w8, #1 mov w9, #2 strb w8, [x23, #672] strb w9, [x23, #702] - strb w8, [x28] - strb w9, [x28, #30] strb w8, [x27] strb w9, [x27, #30] + strb w8, [x24] + strb w9, [x24, #30] strb w8, [x23, #1696] strb w9, [x23, #1726] - strb w8, [x28, #1024] - strb w9, [x28, #1054] strb w8, [x27, #1024] strb w9, [x27, #1054] + strb w8, [x24, #1024] + strb w9, [x24, #1054] strb w8, [x23, #2720] strb w9, [x23, #2750] - strb w8, [x28, #2048] - strb w9, [x28, #2078] strb w8, [x27, #2048] strb w9, [x27, #2078] + strb w8, [x24, #2048] + strb w9, [x24, #2078] strb w8, [x23, #3744] strb w9, [x23, #3774] - strb w8, [x28, #3072] - strb w9, [x28, #3102] strb w8, [x27, #3072] strb w9, [x27, #3102] + strb w8, [x24, #3072] + strb w9, [x24, #3102] strb w8, [x23, #1918] strb w9, [x23, #2942] strb w9, [x23, #3966] - strb w8, [x28, #1246] - strb w9, [x28, #2270] - strb w9, [x28, #3294] strb w8, [x27, #1246] strb w9, [x27, #2270] strb w9, [x27, #3294] - b .LBB2_33 -.LBB2_30: - mov w0, #-19 - b .LBB2_40 -.LBB2_31: - mov w0, #-22 - b .LBB2_40 -.LBB2_32: - mov x0, x20 - mov w2, w22 - bl rkf_lut_init_wf_table -.LBB2_33: + strb w8, [x24, #1246] + strb w9, [x24, #2270] + strb w9, [x24, #3294] +.LBB2_34: + ldr x0, [x20, #8] + cbz x0, .LBB2_36 + bl kfree + str xzr, [x20, #8] +.LBB2_36: + add w8, w22, #15 + add w9, w22, #30 + cmp w8, #0 + mov w1, #3520 + csel w8, w9, w8, lt + lsl w8, w8, #6 + and w8, w8, #0xfffffc00 + sxtw x24, w8 + mov x0, x24 + bl __kmalloc + str x0, [x20, #8] + cbz x0, .LBB2_60 + ldr x27, [x20, #16] + stp w25, w19, [sp, #4] + stur w22, [x29, #-4] + cbz x27, .LBB2_61 + ldr w8, [x28, :lo12:need_pic] + mov w1, wzr + mov x2, x24 + mov x23, x0 + cmp w8, #16 + cset w28, ne + bl memset + cmp w22, #1 + b.lt .LBB2_43 + ldur w9, [x29, #-4] + mov w10, #1 + mov w11, #2 + mov w12, #3 + mov w13, #4 + mov w14, #5 + mov w15, #6 + mov w16, #7 + mov w17, #8 + mov w0, #9 + mov w1, #10 + mov w2, #11 + mov w3, #12 + mov w4, #13 + mov w5, #14 + mov w6, #15 + mov x8, xzr + mov w9, w9 + lsl x10, x10, x28 + lsl x11, x11, x28 + lsl x12, x12, x28 + lsl x13, x13, x28 + lsl x14, x14, x28 + lsl x15, x15, x28 + lsl x16, x16, x28 + lsl x17, x17, x28 + lsl x0, x0, x28 + lsl x1, x1, x28 + lsl x2, x2, x28 + lsl x3, x3, x28 + lsl x4, x4, x28 + lsl x5, x5, x28 + lsl x6, x6, x28 +.LBB2_40: + lsl w24, w8, #9 + mov w25, #31 + bfi w25, w8, #9, #23 + cmp w24, #0 + csel w24, w25, w24, lt + lsl w25, w8, #10 + asr w26, w24, #5 + mov x7, xzr + add x24, x27, w25, sxtw + add x30, x23, w26, sxtw #2 +.LBB2_41: + lsl w26, w7, w28 + lsl x25, x7, #2 + add x7, x7, #1 + add x26, x24, x26, lsl #5 + cmp x7, #16 + ldr w22, [x30, x25] + ldrb w19, [x26] + and w19, w19, #0x3 + orr w19, w22, w19 + str w19, [x30, x25] + ldrb w22, [x26, x10] + ubfiz w22, w22, #2, #2 + orr w19, w19, w22 + str w19, [x30, x25] + ldrb w22, [x26, x11] + ubfiz w22, w22, #4, #2 + orr w19, w19, w22 + str w19, [x30, x25] + ldrb w22, [x26, x12] + ubfiz w22, w22, #6, #2 + orr w19, w19, w22 + str w19, [x30, x25] + ldrb w22, [x26, x13] + and w22, w22, #0x3 + orr w19, w19, w22, lsl #8 + str w19, [x30, x25] + ldrb w22, [x26, x14] + and w22, w22, #0x3 + orr w19, w19, w22, lsl #10 + str w19, [x30, x25] + ldrb w22, [x26, x15] + and w22, w22, #0x3 + orr w19, w19, w22, lsl #12 + str w19, [x30, x25] + ldrb w22, [x26, x16] + and w22, w22, #0x3 + orr w19, w19, w22, lsl #14 + str w19, [x30, x25] + ldrb w22, [x26, x17] + and w22, w22, #0x3 + orr w19, w19, w22, lsl #16 + str w19, [x30, x25] + ldrb w22, [x26, x0] + and w22, w22, #0x3 + orr w19, w19, w22, lsl #18 + str w19, [x30, x25] + ldrb w22, [x26, x1] + and w22, w22, #0x3 + orr w19, w19, w22, lsl #20 + str w19, [x30, x25] + ldrb w22, [x26, x2] + and w22, w22, #0x3 + orr w19, w19, w22, lsl #22 + str w19, [x30, x25] + ldrb w22, [x26, x3] + and w22, w22, #0x3 + orr w19, w19, w22, lsl #24 + str w19, [x30, x25] + ldrb w22, [x26, x4] + and w22, w22, #0x3 + orr w19, w19, w22, lsl #26 + str w19, [x30, x25] + ldrb w22, [x26, x5] + and w22, w22, #0x3 + orr w19, w19, w22, lsl #28 + str w19, [x30, x25] + ldrb w22, [x26, x6] + orr w19, w19, w22, lsl #30 + str w19, [x30, x25] + b.ne .LBB2_41 + add x8, x8, #1 + cmp x8, x9 + b.ne .LBB2_40 +.LBB2_43: ldrb w8, [x20, #1] + adrp x22, rkf_wf_get_lut.sftemp + ldur w9, [x29, #-4] + ldp w25, w19, [sp, #4] + orr w8, w9, w8, lsl #8 mov w9, #26215 movk w9, #26214, lsl #16 - orr w8, w22, w8, lsl #8 str w8, [x20] - ldrsw x8, [x24, :lo12:rkf_wf_get_lut.sftemp] - str w21, [x26, :lo12:rkf_wf_get_lut.stype] + ldrsw x8, [x22, :lo12:rkf_wf_get_lut.sftemp] mul x8, x8, x9 lsr x9, x8, #63 asr x8, x8, #33 add w8, w8, w9 -.LBB2_34: + adrp x9, rkf_wf_get_lut.stype + str w21, [x9, :lo12:rkf_wf_get_lut.stype] +.LBB2_44: cmp w25, w8 - b.ne .LBB2_36 -.LBB2_35: + b.ne .LBB2_46 +.LBB2_45: mov w0, wzr - b .LBB2_40 -.LBB2_36: + b .LBB2_50 +.LBB2_46: ldr x0, [x20, #8] - cbz x0, .LBB2_38 + cbz x0, .LBB2_48 bl kfree str xzr, [x20, #8] -.LBB2_38: +.LBB2_48: bl epd_overlay_lut mov w1, w0 mov x0, x20 mov w2, w19 bl parse_wf_data - tbnz w0, #31, .LBB2_45 + tbnz w0, #31, .LBB2_55 mov w21, w0 ldr x1, [x20, #24] mov x0, x20 @@ -474,56 +630,68 @@ rkf_wf_get_lut: mov w0, wzr bfi w8, w21, #8, #24 str w8, [x20] - str w19, [x24, :lo12:rkf_wf_get_lut.sftemp] -.LBB2_40: - ldp x20, x19, [sp, #80] - ldp x22, x21, [sp, #64] - ldp x24, x23, [sp, #48] - ldp x26, x25, [sp, #32] - ldp x28, x27, [sp, #16] - ldp x29, x30, [sp], #96 + str w19, [x22, :lo12:rkf_wf_get_lut.sftemp] +.LBB2_50: + ldp x20, x19, [sp, #96] + ldp x22, x21, [sp, #80] + ldp x24, x23, [sp, #64] + ldp x26, x25, [sp, #48] + ldp x28, x27, [sp, #32] + ldp x29, x30, [sp, #16] ldr x30, [x18, #-8]! + add sp, sp, #112 ret -.LBB2_41: +.LBB2_51: sub w8, w21, #5 cmp w8, #1 - b.hi .LBB2_46 + b.hi .LBB2_56 cmp w22, #1 - b.lt .LBB2_33 + b.lt .LBB2_34 ldr x8, [x20, #16] mov w9, w22 cmp w22, #1 - b.ne .LBB2_52 + b.ne .LBB2_64 mov x10, xzr - b .LBB2_64 -.LBB2_45: + b .LBB2_76 +.LBB2_55: adrp x0, .L.str.3 add x0, x0, :lo12:.L.str.3 bl _printk mov w0, #-5 - b .LBB2_40 -.LBB2_46: + b .LBB2_50 +.LBB2_56: sub w8, w21, #11 cmp w8, #1 - b.hi .LBB2_50 + b.hi .LBB2_62 cmp w22, #1 - b.lt .LBB2_33 + b.lt .LBB2_34 ldr x8, [x20, #16] mov w9, w22 cmp w22, #1 - b.ne .LBB2_69 + b.ne .LBB2_81 mov x10, xzr - b .LBB2_89 -.LBB2_50: + b .LBB2_101 +.LBB2_60: + adrp x0, .L.str.4 + add x0, x0, :lo12:.L.str.4 + bl _printk + mov w0, #-12 + b .LBB2_50 +.LBB2_61: + adrp x0, .L.str.12 + add x0, x0, :lo12:.L.str.12 + bl _printk + b .LBB2_43 +.LBB2_62: sub w8, w21, #13 cmp w8, #1 - b.hi .LBB2_33 + b.hi .LBB2_34 ldr x0, [x20, #16] mov w1, w22 mov w2, w23 bl rkf_wf_normal_fix - b .LBB2_33 -.LBB2_52: + b .LBB2_34 +.LBB2_64: sub x12, x9, #1 mov x10, xzr and x11, x12, #0xffffffff @@ -532,30 +700,30 @@ rkf_wf_get_lut: cset w13, ne cmp xzr, x12, lsr #54 cset w11, ne - tbnz w14, #31, .LBB2_64 - tbnz w13, #0, .LBB2_64 + tbnz w14, #31, .LBB2_76 + tbnz w13, #0, .LBB2_76 lsr x13, x12, #32 - cbnz x13, .LBB2_64 + cbnz x13, .LBB2_76 add x13, x8, #30 lsl x12, x12, #10 add x14, x13, x12 cmp x14, x13 - b.lo .LBB2_64 - tbnz w11, #0, .LBB2_64 + b.lo .LBB2_76 + tbnz w11, #0, .LBB2_76 add x13, x8, #29 add x14, x13, x12 cmp x14, x13 - b.lo .LBB2_64 - tbnz w11, #0, .LBB2_64 + b.lo .LBB2_76 + tbnz w11, #0, .LBB2_76 add x13, x8, #31 add x12, x13, x12 cmp x12, x13 - b.lo .LBB2_64 - tbnz w11, #0, .LBB2_64 + b.lo .LBB2_76 + tbnz w11, #0, .LBB2_76 and x10, x9, #0xfffffffe mov w11, #1024 mov x12, x10 -.LBB2_62: +.LBB2_74: sub w13, w11, #1024 add x14, x8, w11, sxtw subs x12, x12, #2 @@ -567,28 +735,28 @@ rkf_wf_get_lut: strb w15, [x14, #29] strb w16, [x13, #31] strb w16, [x13, #29] - b.ne .LBB2_62 + b.ne .LBB2_74 cmp x10, x9 - b.eq .LBB2_33 -.LBB2_64: + b.eq .LBB2_34 +.LBB2_76: sub x9, x9, x10 lsl w10, w10, #10 -.LBB2_65: +.LBB2_77: add x11, x8, w10, sxtw subs x9, x9, #1 add w10, w10, #1024 ldrb w12, [x11, #30] strb w12, [x11, #31] strb w12, [x11, #29] - b.ne .LBB2_65 - b .LBB2_33 -.LBB2_66: + b.ne .LBB2_77 + b .LBB2_34 +.LBB2_78: adrp x0, .L.str.11 add x0, x0, :lo12:.L.str.11 bl _printk lsl w8, w22, #10 mov w9, #13 -.LBB2_67: +.LBB2_79: add x10, x23, w8, uxtw sub w9, w9, #1 add w8, w8, #1024 @@ -603,11 +771,11 @@ rkf_wf_get_lut: strb wzr, [x10, #958] strb wzr, [x10, #992] strb wzr, [x10, #1022] - b.ne .LBB2_67 + b.ne .LBB2_79 cmp w22, #1 - b.ge .LBB2_27 - b .LBB2_29 -.LBB2_69: + b.ge .LBB2_31 + b .LBB2_33 +.LBB2_81: sub x12, x9, #1 mov x10, xzr and x11, x12, #0xffffffff @@ -616,50 +784,50 @@ rkf_wf_get_lut: cset w13, ne cmp xzr, x12, lsr #54 cset w11, ne - tbnz w14, #31, .LBB2_89 - tbnz w13, #0, .LBB2_89 + tbnz w14, #31, .LBB2_101 + tbnz w13, #0, .LBB2_101 lsr x13, x12, #32 - cbnz x13, .LBB2_89 + cbnz x13, .LBB2_101 add x13, x8, #30 lsl x12, x12, #10 add x14, x13, x12 cmp x14, x13 - b.lo .LBB2_89 - tbnz w11, #0, .LBB2_89 + b.lo .LBB2_101 + tbnz w11, #0, .LBB2_101 add x13, x8, #1022 add x14, x13, x12 cmp x14, x13 - b.lo .LBB2_89 - tbnz w11, #0, .LBB2_89 + b.lo .LBB2_101 + tbnz w11, #0, .LBB2_101 add x13, x8, #1021 add x14, x13, x12 cmp x14, x13 - b.lo .LBB2_89 - tbnz w11, #0, .LBB2_89 + b.lo .LBB2_101 + tbnz w11, #0, .LBB2_101 add x13, x8, #29 add x14, x13, x12 cmp x14, x13 - b.lo .LBB2_89 - tbnz w11, #0, .LBB2_89 + b.lo .LBB2_101 + tbnz w11, #0, .LBB2_101 add x13, x8, #31 add x14, x13, x12 cmp x14, x13 - b.lo .LBB2_89 - tbnz w11, #0, .LBB2_89 + b.lo .LBB2_101 + tbnz w11, #0, .LBB2_101 add x13, x8, #989 add x12, x13, x12 cmp x12, x13 - b.lo .LBB2_89 - tbnz w11, #0, .LBB2_89 + b.lo .LBB2_101 + tbnz w11, #0, .LBB2_101 and x10, x9, #0xfffffffe mov w11, #1024 mov x12, x10 - b .LBB2_86 -.LBB2_85: + b .LBB2_98 +.LBB2_97: subs x12, x12, #2 add w11, w11, #2048 - b.eq .LBB2_88 -.LBB2_86: + b.eq .LBB2_100 +.LBB2_98: sub w14, w11, #1024 add x13, x8, w11, sxtw add x14, x8, w14, sxtw @@ -671,33 +839,33 @@ rkf_wf_get_lut: strb w15, [x13, #29] strb w16, [x14, #31] strb w16, [x14, #29] - cbz w23, .LBB2_85 + cbz w23, .LBB2_97 add x14, x14, #1021 add x13, x13, #1021 strh wzr, [x14] strh wzr, [x13] - b .LBB2_85 -.LBB2_88: + b .LBB2_97 +.LBB2_100: cmp x10, x9 - b.eq .LBB2_33 -.LBB2_89: + b.eq .LBB2_34 +.LBB2_101: sub x9, x9, x10 lsl w10, w10, #10 - b .LBB2_91 -.LBB2_90: + b .LBB2_103 +.LBB2_102: subs x9, x9, #1 add w10, w10, #1024 - b.eq .LBB2_33 -.LBB2_91: + b.eq .LBB2_34 +.LBB2_103: add x11, x8, w10, sxtw ldrb w12, [x11, #30] strb wzr, [x11, #989] strb w12, [x11, #31] strb w12, [x11, #29] - cbz w23, .LBB2_90 + cbz w23, .LBB2_102 add x11, x11, #1021 strh wzr, [x11] - b .LBB2_90 + b .LBB2_102 .Lfunc_end2: .size rkf_wf_get_lut, .Lfunc_end2-rkf_wf_get_lut @@ -1331,6 +1499,11 @@ need_pic: .asciz "rkf waveform get frame number failed\n" .size .L.str.3, 38 + .type .L.str.4,@object +.L.str.4: + .asciz "kzalloc output->data failed\n" + .size .L.str.4, 29 + .type .L.str.5,@object .L.str.5: .asciz "rkf:v1.0" @@ -1372,6 +1545,11 @@ need_pic: .asciz "gray2 waveform framenum < 13 frames\n" .size .L.str.11, 37 + .type .L.str.12,@object +.L.str.12: + .asciz "wf_table or lut_data is NULL\n" + .size .L.str.12, 30 + .type .Lswitch.table.rkf_wf_get_lut,@object .section .rodata,"a",@progbits .p2align 2