After hours of fiddling around, i got the jpegdec to build again in kernel.
I had to make some assumptions on registers values and actually dig them from older versions
Code: Select all
define PSCALE_RBUF_START_BLKX 0x0925
#define PSCALE_RBUF_START_BLKY 0x0926
#define PSCALE_CANVAS_RD_ADDR 0x092c
#define PSCALE_CANVAS_WR_ADDR 0x092d
These are not defined anymore in the 3.14 kernel. Some other regs could be found in the dvb registers.
I was able to start the decoding process, as kicking a jpeg data buffer seems to start partly the decoding process (microprogram will read correctly the jpeg header at least).
I'm getting that kind of log in kernel :
Code: Select all
[ 59.312647] codec:vdec_clock_set-----2
[ 59.312736] codec:vdec1_set_clk 0, 1
[ 59.312799] codec:vdec_clock_set 2 to 500
[ 59.313034] codec:Video stbuf alloced at 000000005e300000, size = 15728640
[ 59.313155] codec:vdec_dev_reg.mem[0x0 -- 0x0]
[ 59.313304] codec:vdec base memory alloced 000000005f200000
[ 59.314200] codec:video first pts = 0
[ 59.315633] codec:vdec_clock_set-----2
[ 59.315728] codec:vdec1_set_clk 0, 1
[ 59.315795] codec:vdec_clock_set 2 to 500
[ 59.315906] codec:Video stbuf alloced at 000000005e300000, size = 15728640
[ 59.316035] codec:vdec_dev_reg.mem[0x0 -- 0x0]
[ 59.316234] codec:vdec base memory alloced 000000005f200000
[ 59.317181] codec:video first pts = 0
[ 59.385656] codec:loading firmware jpegdec_mc to vdec ram ok!
[ 59.386673] codec:7amjpegdec: amjpegdec_ioctl: JPEGDEC_IOC_INFOCONFIG
[ 59.386820] codec:7amjpegdec: ucode report picture size 1920x1080, comp_num 3
[ 59.387103] codec:7amjpegdec: amjpegdec_ioctl: JPEGDEC_IOC_INFO, 1920x1080
[ 59.387381] codec:7amjpegdec: amjpegdec_ioctl:config,target (0-0-1920-1080)
[ 59.387504] codec:7amjpegdec: planes (0x0-0x0-0x0), pbufAddr=0x5f200000
[ 59.387692] codec:7amjpegdec: Enable decoding
[ 60.974422] switch_vpu_mem_pd: viu_vd1 OFF
[ 60.974499] switch_vpu_mem_pd: afbc_dec OFF
[ 60.974566] switch_vpu_mem_pd: di_post OFF
But it will never complete. When i look into the jpegdec code, it seems that after reading the size header, i should get another interrupt request to notify that the decoding is complete, but i never get it.
This is getting me exhausted as we don't have any info, and or doc / samples / datasheet to work with ...
@odroid : is there any chance you could ping amlogic and see if they plan to fix that advertised feature ? That would be much appreciated.