diff options
Diffstat (limited to 'meta-openvuplus/recipes-vuplus/aio-grab/aio-grab/aio-grab_vuplus.patch')
-rw-r--r-- | meta-openvuplus/recipes-vuplus/aio-grab/aio-grab/aio-grab_vuplus.patch | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/meta-openvuplus/recipes-vuplus/aio-grab/aio-grab/aio-grab_vuplus.patch b/meta-openvuplus/recipes-vuplus/aio-grab/aio-grab/aio-grab_vuplus.patch deleted file mode 100644 index b9f4039..0000000 --- a/meta-openvuplus/recipes-vuplus/aio-grab/aio-grab/aio-grab_vuplus.patch +++ /dev/null @@ -1,189 +0,0 @@ -diff --git a/main.c b/main.c -index ffff998..4bf7327 100644 ---- a/main.c -+++ b/main.c -@@ -86,8 +86,8 @@ void (*resize)(unsigned char *source, unsigned char *dest, int xsource, int ysou - void combine(unsigned char *output, unsigned char *video, unsigned char *osd, int xres, int yres); - char* upcase(char* mixedstr); - --enum {UNKNOWN,PALLAS,VULCAN,XILLEON,BRCM7401,BRCM7400,BRCM7405}; --char *stb_name[]={"unknown","Pallas","Vulcan","Xilleon","Brcm7401","Brcm7400","Brcm7405"}; -+enum {UNKNOWN,PALLAS,VULCAN,XILLEON,BRCM7401,BRCM7400,BRCM7405,BRCM7335,BRCM7325,BRCM7346,BRCM7425}; -+char *stb_name[]={"unknown","Pallas","Vulcan","Xilleon","Brcm7401","Brcm7400","Brcm7405","Brcm7335","Brcm7325","Brcm7346","Brcm7425"}; - int stb_type=UNKNOWN; - - // main program -@@ -139,6 +139,53 @@ int main(int argc, char **argv) { - stb_type=BRCM7405; - } - pclose(pipe); -+ -+ // CPU Detection. idea from pl -+ pipe=popen("cat /proc/stb/info/chipset","r"); -+ if(pipe) -+ { -+ while (fgets(buf,sizeof(buf),pipe)) -+ { -+ if (strstr(upcase(buf),"7335")) -+ { -+ stb_type=BRCM7335; -+ break; -+ } -+ else if (strstr(upcase(buf),"7325")) -+ { -+ stb_type=BRCM7325; -+ break; -+ } -+ else if (strstr(upcase(buf),"7405")) -+ { -+ stb_type=BRCM7405; -+ break; -+ } -+ else if (strstr(upcase(buf),"7356")) -+ { -+ stb_type=BRCM7346; -+ break; -+ } -+ else if (strstr(upcase(buf),"7346")) -+ { -+ stb_type=BRCM7346; -+ break; -+ } -+ -+ else if (strstr(upcase(buf),"7424")) -+ { -+ stb_type=BRCM7425; -+ break; -+ } -+ else if (strstr(upcase(buf),"7425")) -+ { -+ stb_type=BRCM7425; -+ break; -+ } -+ -+ } -+ } -+ pclose(pipe); - } - - if (stb_type == UNKNOWN) -@@ -491,15 +538,27 @@ void getvideo(unsigned char *video, int *xres, int *yres) - char buf[256]; - FILE *pipe; - -- if (stb_type == BRCM7401 || stb_type == BRCM7400 || stb_type == BRCM7405) -+ if (stb_type == BRCM7401 || stb_type == BRCM7400 || stb_type == BRCM7405 || stb_type == BRCM7335 || stb_type == BRCM7325 || stb_type == BRCM7346 || stb_type == BRCM7425) - { - // grab brcm7401 pic from decoder memory - -- if(!(memory = (unsigned char*)mmap(0, 100, PROT_READ, MAP_SHARED, mem_fd, 0x10100000))) -+ if(stb_type == BRCM7401 || stb_type == BRCM7400 || stb_type == BRCM7405 || stb_type == BRCM7335 || stb_type == BRCM7325) - { -- printf("Mainmemory: <Memmapping failed>\n"); -- return; -+ if(!(memory = (unsigned char*)mmap(0, 100, PROT_READ, MAP_SHARED, mem_fd, 0x10100000))) -+ { -+ printf("Mainmemory: <Memmapping failed>\n"); -+ return; -+ } -+ } -+ else -+ { -+ if(!(memory = (unsigned char*)mmap(0, 100, PROT_READ, MAP_SHARED, mem_fd, 0x10600000))) -+ { -+ printf("Mainmemory: <Memmapping failed>\n"); -+ return; -+ } - } -+ - - unsigned char data[100]; - -@@ -509,17 +568,31 @@ void getvideo(unsigned char *video, int *xres, int *yres) - memcpy(data,memory,100); - //vert_start=data[0x1B]<<8|data[0x1A]; - //vert_end=data[0x19]<<8|data[0x18]; -- stride=data[0x15]<<8|data[0x14]; -- ofs=(data[0x28]<<8|data[0x27])>>4; -- ofs2=(data[0x2c]<<8|data[0x2b])>>4; -- adr=(data[0x1f]<<24|data[0x1e]<<16|data[0x1d]<<8|data[0x1c])&0xFFFFFF00; -- adr2=(data[0x23]<<24|data[0x22]<<16|data[0x21]<<8|data[0x20])&0xFFFFFF00; -- offset=adr2-adr; -+ if(stb_type == BRCM7401 || stb_type == BRCM7400 || stb_type == BRCM7405 || stb_type == BRCM7335 || stb_type == BRCM7325) -+ { -+ stride=data[0x15]<<8|data[0x14]; -+ ofs=(data[0x28]<<8|data[0x27])>>4; -+ ofs2=(data[0x2c]<<8|data[0x2b])>>4; -+ adr=(data[0x1f]<<24|data[0x1e]<<16|data[0x1d]<<8|data[0x1c])&0xFFFFFF00; -+ adr2=(data[0x23]<<24|data[0x22]<<16|data[0x21]<<8|data[0x20])&0xFFFFFF00; -+ offset=adr2-adr; -+ } -+ else -+ { -+ stride=data[0x15]<<8|data[0x14]; -+ ofs=(data[0x3c]<<8|data[0x3b])>>4; -+ ofs2=(data[0x40]<<8|data[0x3f])>>4; -+ adr=(data[0x1f]<<24|data[0x1e]<<16|data[0x1d]<<8|data[0x1c])&0xFFFFFF00; -+ adr2=(data[0x37]<<24|data[0x36]<<16|data[0x35]<<8|data[0x34])&0xFFFFFF00; -+ offset=adr2-adr; -+ -+ } -+ - - munmap(memory, 100); - -- // printf("Stride: %d Res: %d\n",stride,res); -- // printf("Adr: %X Adr2: %X OFS: %d %d\n",adr,adr2,ofs,ofs2); -+ printf("Stride: %d Res: %d\n",stride,res); -+ printf("Adr: %X Adr2: %X OFS: %d %d\n",adr,adr2,ofs,ofs2); - - pipe=popen("cat /proc/stb/vmpeg/0/yres","r"); - while (fgets(buf,sizeof(buf),pipe)) -@@ -530,7 +603,7 @@ void getvideo(unsigned char *video, int *xres, int *yres) - chroma = (unsigned char *)malloc(stride*(ofs2+64)); - - // grabbing luma & chroma plane from the decoder memory -- if (stb_type == BRCM7401 || stb_type == BRCM7405) -+ if (stb_type == BRCM7401 || stb_type == BRCM7405 || stb_type == BRCM7325 || stb_type == BRCM7346 || stb_type == BRCM7425) - { - // on dm800/dm500hd we have direct access to the decoder memory - if(!(memory_tmp = (unsigned char*)mmap(0, offset + stride*(ofs2+64), PROT_READ, MAP_SHARED, mem_fd, adr))) -@@ -543,7 +616,7 @@ void getvideo(unsigned char *video, int *xres, int *yres) - // and hope we get a good timing. dont ask me why, but every DM800 i tested so far produced a good - // result with a 50ms delay - -- } else if (stb_type == BRCM7400) -+ } else if (stb_type == BRCM7400 || stb_type == BRCM7335) - { - // on dm8000 we have to use dma, so dont change anything here until you really know what you are doing ! - -@@ -553,7 +626,7 @@ void getvideo(unsigned char *video, int *xres, int *yres) - return; - } - volatile unsigned long *mem_dma; -- if(!(mem_dma = (volatile unsigned long*)mmap(0, 0x1000, PROT_READ|PROT_WRITE, MAP_SHARED, mem_fd, 0x10c02000))) -+ if(!(mem_dma = (volatile unsigned long*)mmap(0, 0x1000, PROT_READ|PROT_WRITE, MAP_SHARED, mem_fd, (stb_type==BRCM7400)? 0x10c02000:0x10c01000))) - { - printf("Mainmemory: <Memmapping failed>\n"); - return; -@@ -595,7 +668,7 @@ void getvideo(unsigned char *video, int *xres, int *yres) - int chr_luma_stride = 0x40; - int sw=1; - -- if (stb_type == BRCM7405) -+ if (stb_type == BRCM7405 || stb_type == BRCM7325 || stb_type == BRCM7346 || stb_type == BRCM7425) - chr_luma_stride *= 2; - - xsub=chr_luma_stride; -@@ -630,9 +703,9 @@ void getvideo(unsigned char *video, int *xres, int *yres) - } - } - -- if (stb_type == BRCM7401 || stb_type == BRCM7405) -+ if (stb_type == BRCM7401 || stb_type == BRCM7405 || stb_type == BRCM7325 || stb_type == BRCM7346 || stb_type == BRCM7425) - munmap(memory_tmp, offset + stride*(ofs2+64)); -- else if (stb_type == BRCM7400) -+ else if (stb_type == BRCM7400 || stb_type == BRCM7335) - munmap(memory_tmp, DMA_BLOCKSIZE + 0x1000); - - for (t=0; t< stride*ofs;t+=4) |