I think you should package everything in a github repo, but not only the 
driver, but also the application that you used to make pictures and videos.
And finally document which SDK or image the system is running from as well 
as describe the model of the H/W used, and which CPU ( A10, A20, etc ), 
and specify if a Linux or Android image with their versions, in the 
"READEM.md" file of the repo.

All my attempts to get this working, and I only get a "green screen" on my 
CB3.

R

On Tuesday, September 8, 2015 at 3:35:38 AM UTC-5, [email protected] wrote:
>
> On Tuesday, September 8, 2015 at 12:36:49 AM UTC+2, Enrico wrote: 
> > Il giorno lunedì 7 settembre 2015 13:04:07 UTC+2, [email protected] ha 
> scritto: 
> > Sure! Can I paste diffs here on the list? 
> > 
> > Thanks, 
> > 
> > Rodolfo 
> > 
> > i think nobody will complain! 
> > 
> > Enrico 
> >   
>
> Here it is! Tomorrow I will receive a cvbs cam and I hope to have more 
> than a blue screen. 
>
> Rodolfo 
>
>
> diff -uwr sun7i_tvd/bsp_tvd.c 
> /A20/MarsBoard-A20-android-4.2.2-SDK-V2.0/lichee/linux-3.3/drivers/media/video/sun7i_tvd/bsp_tvd.c
>  
>
> --- sun7i_tvd/bsp_tvd.c        2013-03-19 19:28:41.000000000 +0100 
> +++ 
> /A20/MarsBoard-A20-android-4.2.2-SDK-V2.0/lichee/linux-3.3/drivers/media/video/sun7i_tvd/bsp_tvd.c
>         2014-08-29 
> 09:46:13.000000000 +0200 
> @@ -72,7 +72,7 @@ 
>                                  break; 
>                  } 
>                  REG_WR32(addr_base+0x0504,0x00000000); 
> -                REG_WR32(addr_base+0x052c,0x00110000); 
> +                REG_WR32(addr_base+0x052c,0xe0110000); 
>                  //1 channel cvbs 
>                  //REG_WR32(addr_base+0x0500,0x00000111);         
>                  //REG_WR32(addr_base+0x0000,0x00000321); 
> @@ -98,7 +98,7 @@ 
>                                  break; 
>                  } 
>                  REG_WR32(addr_base+0x0504,0x00000000); 
> -                REG_WR32(addr_base+0x052c,0x00110000); 
> +                REG_WR32(addr_base+0x052c,0xe0110000); 
>                  REG_WR32(addr_base+0x0500,0x00020711); 
>                  REG_WR32(addr_base+0x0000,0x00000321); 
>          } 
> @@ -107,25 +107,20 @@ 
>                  switch(system) 
>                  { 
>                          case TVD_NTSC://480p 
> -   
>                                  REG_WR32(addr_base+0x0008,0x00594001); 
> -                                REG_WR32(addr_base+0x0018,0x00002080); 
> -                                REG_WR32(addr_base+0x0080,0x00500082); 
> -                                REG_WR32(addr_base+0x0084,0x00610022); 
> -                                 
>                                  REG_WR32(addr_base+0x0008,0x80594001); 
> -                                REG_WR32(addr_base+0x0024,0x039db10a); 
> -                                REG_WR32(addr_base+0x0028,0x000037b1); 
> -                               
>  REG_WR32(addr_base+0x0034,0x39999999);                             
> +                REG_WR32(addr_base+0x0034,0x20000000); 
> +                REG_WR32(addr_base+0x0070,0x00002050); 
>                                  break; 
>                          case TVD_PAL://576p not work 
> -                                REG_WR32(addr_base+0x0008,0x10594101); 
> -                                REG_WR32(addr_base+0x0018,0x00002480); 
> +                REG_WR32(addr_base+0x0008,0x90594101); 
> +                REG_WR32(addr_base+0x0034,0x20000000); 
> +                REG_WR32(addr_base+0x0070,0x00002050); 
>                                  REG_WR32(addr_base+0x0080,0x00500087); 
>                                  REG_WR32(addr_base+0x0084,0x00c10026); 
>                                  break; 
>                  } 
>                  REG_WR32(addr_base+0x0504,0x00000000); 
> -                REG_WR32(addr_base+0x052c,0x00110000); 
> +                REG_WR32(addr_base+0x052c,0xe0110000); 
>                  REG_WR32(addr_base+0x0500,0x00020711);         
>                  REG_WR32(addr_base+0x0000,0x00000321); 
>          }         
> diff -uwr sun7i_tvd/drv_tvd.c 
> /A20/MarsBoard-A20-android-4.2.2-SDK-V2.0/lichee/linux-3.3/drivers/media/video/sun7i_tvd/drv_tvd.c
>  
>
> --- sun7i_tvd/drv_tvd.c        2013-03-19 19:28:41.000000000 +0100 
> +++ 
> /A20/MarsBoard-A20-android-4.2.2-SDK-V2.0/lichee/linux-3.3/drivers/media/video/sun7i_tvd/drv_tvd.c
>         2014-08-29 
> 09:46:13.000000000 +0200 
> @@ -203,10 +203,14 @@ 
>                     __err("get tvd clock source error!\n");         
>                  return -1; 
>          }   
> -        if(interface==2) 
> -                    ret = clk_set_rate(module_clk_src, 330000000); 
> //264000000//297000000 
> -        else 
> + 
> +        if (interface == 2) {//YpbPr_P 
> +                //ret = clk_set_rate(module_clk_src, 330000000); 
> //264000000//297000000 
> +                ret = clk_set_rate(module_clk_src, 270000000); 
> //264000000//297000000 
> +        } else {//CVBS and YPbPr_I 
>                      ret = clk_set_rate(module_clk_src, 297000000); 
> //264000000//297000000 
> +        } 
> + 
>          if (ret == -1) 
>          { 
>                  __err("set tvd parent clock error!\n"); 
> @@ -220,6 +224,25 @@ 
>                  return -1; 
>          } 
>   
> +        /* add by [email protected] <javascript:> 
> +         * spec p77 TVD_CLK_REG 
> +         * bit[3-0] set TVD_CLK divid ratio(m) 
> +         * the per-divided clock is divided by(m+1). the divider is from 
> +         * 1 to 16 
> +         * 0xb,0x5 from [email protected] <javascript:> 
> +         */ 
> +        if (interface == 2) {//YpbPr_P 
> +                ret = clk_set_rate(dev->module1_clk, 270000000 / 0x5); 
> +        } else {//CVBS and YPbPr_I 
> +                ret = clk_set_rate(dev->module1_clk, 297000000 / 0xb); 
> +        } 
> + 
> +        if (ret == -1) 
> +        { 
> +                __err("set tvd clk rate error!\n"); 
> +        return -1; 
> +        } 
> + 
>          if(NULL == module_clk_src || IS_ERR(module_clk_src)) 
>          { 
>                  __err("tvd module_clk_src NULL hdle\n"); 
> @@ -968,7 +991,7 @@ 
>                          break;         
>                  case TVD_PL_YUV422: 
>                  default: 
> -                        *size = dev->width * dev->height * 2; 
> +                        *size = dev->width * dev->height * 3/2; 
>                          break; 
>          } 
>           
>

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to