zczjx / linux-4.4.38-for-tiny4412

linux-4.4.38-for-tiny4412
Other
20 stars 21 forks source link

s5p-jpeg encode will stuck the system when do continuous qbuf and dqbuf #1

Open zczjx opened 5 years ago

zczjx commented 5 years ago

symptom: drivers/media/platform/s5p-jpeg/ will stuck the system when do continuous qbuf/dqbuf to encode a series of pictures. we have to open/close the encode each time when encoding 1 picture.

root cause: the jpeg hw encode driver cannot enter interrupt irq when 2ed picture come in. the 1st picture interrupt irq is OK. the jpeg hw decode can enter iterrupt irq OK each times

zczjx commented 5 years ago

regs dump

jpeg enc OK regs:

[ 24.144793] s5p-jpeg 11840000.jpeg-codec: ================= START STATUS ================= [ 24.144882] zcz--> do [jpeg_log_status] [ 24.144921] idx = 0x0 val 0x30080002 [ 24.144959] idx = 0x4 val 0x0000001f [ 24.144996] idx = 0x8 val 0x00000000 [ 24.145938] idx = 0xc val 0x00000000 [ 24.149841] idx = 0x10 val 0x75b00000 [ 24.153491] idx = 0x14 val 0x01e00280 [ 24.157375] idx = 0x18 val 0x75a00000 [ 24.161144] idx = 0x1c val 0x00000000 [ 24.165008] idx = 0x20 val 0x00000000 [ 24.168786] idx = 0x24 val 0x00000000 [ 24.172586] idx = 0x28 val 0x00000000 [ 24.176475] idx = 0x2c val 0x00000000 [ 24.180239] idx = 0x30 val 0x00000000 [ 24.184122] idx = 0x34 val 0x00000000 [ 24.187863] idx = 0x38 val 0x00000000 [ 24.191757] idx = 0x3c val 0x00000c54 [ 24.195523] idx = 0x40 val 0x02004003 [ 24.199392] idx = 0x44 val 0x0000292e [ 24.203141] idx = 0x48 val 0x00000000 [ 24.207034] idx = 0x4c val 0x000001a2 [ 24.210794] idx = 0x50 val 0x00000067 [ 24.214682] idx = 0x54 val 0x00000000 [ 24.218419] idx = 0x58 val 0x00000000 [ 24.222389] s5p-jpeg 11840000.jpeg-codec: ================== END STATUS ==================

jpeg enc failedregs:

[ 31.560973] s5p-jpeg 11840000.jpeg-codec: ================= START STATUS ================= [ 31.561062] zcz--> do [jpeg_log_status] [ 31.561102] idx = 0x0 val 0x30080002 [ 31.561139] idx = 0x4 val 0x0000001f [ 31.561176] idx = 0x8 val 0x00000000 [ 31.562113] idx = 0xc val 0x00000000 [ 31.566038] idx = 0x10 val 0x75b00000 [ 31.569680] idx = 0x14 val 0x01e00280 [ 31.573494] idx = 0x18 val 0x75a00000 [ 31.577380] idx = 0x1c val 0x00000000 [ 31.581137] idx = 0x20 val 0x00000000 [ 31.585019] idx = 0x24 val 0x00000000 [ 31.588776] idx = 0x28 val 0x00000000 [ 31.592580] idx = 0x2c val 0x00000000 [ 31.596484] idx = 0x30 val 0x00000000 [ 31.600231] idx = 0x34 val 0x00000000 [ 31.604095] idx = 0x38 val 0x00000000 [ 31.607863] idx = 0x3c val 0x00000c54 [ 31.611733] idx = 0x40 val 0x01004003 [ 31.615509] idx = 0x44 val 0x00000256 [ 31.619370] idx = 0x48 val 0x00000000 [ 31.623142] idx = 0x4c val 0x000001a2 [ 31.627007] idx = 0x50 val 0x00000066 [ 31.630783] idx = 0x54 val 0x00000000 [ 31.634657] idx = 0x58 val 0x00000000 [ 31.638411] s5p-jpeg 11840000.jpeg-codec: ================== END STATUS ==================