linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] video: da8xx-fb: Increased resolution configuration of revised LCDC IP
@ 2011-07-18  4:40 Manjunathappa, Prakash
  2011-07-26  4:32 ` [PATCH v3] video: da8xx-fb: Increased resolution configuration Manjunathappa, Prakash
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Manjunathappa, Prakash @ 2011-07-18  4:40 UTC (permalink / raw)
  To: linux-fbdev

Revised LCD controller in upcoming TI SoC which is an updated version of
LCDC IP that was found on TI's DA850 SoC supports 2048*2048 resolution.
Below are the encoding details:
Width:
Pixels Per Line = {pplmsb, ppllsb, 4'b1111} + 1
Where pplmsb:1bit=>Raster Timing0[3], ppllsb:6bits=>Raster Timing0[9:4].
And encoded value can range from 16 to 2048 in multiples of 16.

Height:
Lines Per Panel = {lpp_b10, lpp}
Where lpp:10bits=>Raster Timing1[9:0], lpp_b10:1bit=>Raster Timing2[26].
And encoded value can range from 1 to 2048, programmable range is 0 to
2047.

Patch is verified on emulation platform of upcoming SoC for updated
feature and on DA850 platform to make sure nothing existing breaks.

Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com>
---
Since v2:
Corrected comment describing horizontal resolution bits and removed unnecessary
outer parenthesis.
Since v1:
1)Fixed the bug in configuration of lpp_b10 in Raster Timing2[26] register.
2)Reframed commit message.

 drivers/video/da8xx-fb.c |   31 ++++++++++++++++++++++++++++---
 1 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
index 620f1c3..94b611a 100644
--- a/drivers/video/da8xx-fb.c
+++ b/drivers/video/da8xx-fb.c
@@ -460,18 +460,43 @@ static int lcd_cfg_frame_buffer(struct da8xx_fb_par *par, u32 width, u32 height,
 
 	/* Set the Panel Width */
 	/* Pixels per line = (PPL + 1)*16 */
-	/*0x3F in bits 4..9 gives max horisontal resolution = 1024 pixels*/
-	width &= 0x3f0;
+	if (lcd_revision = LCD_VERSION_1) {
+		/*
+		 * 0x3F in bits 4..9 gives max horizontal resolution = 1024
+		 * pixels.
+		 */
+		width &= 0x3f0;
+	} else {
+		/*
+		 * 0x7F in bits 4..10 gives max horizontal resolution = 2048
+		 * pixels.
+		 */
+		width &= 0x7f0;
+	}
+
 	reg = lcdc_read(LCD_RASTER_TIMING_0_REG);
 	reg &= 0xfffffc00;
-	reg |= ((width >> 4) - 1) << 4;
+	if (lcd_revision = LCD_VERSION_1) {
+		reg |= ((width >> 4) - 1) << 4;
+	} else {
+		width = (width >> 4) - 1;
+		reg |= ((width & 0x3f) << 4) | ((width & 0x40) >> 3);
+	}
 	lcdc_write(reg, LCD_RASTER_TIMING_0_REG);
 
 	/* Set the Panel Height */
+	/* Set bits 9:0 of Lines Per Pixel */
 	reg = lcdc_read(LCD_RASTER_TIMING_1_REG);
 	reg = ((height - 1) & 0x3ff) | (reg & 0xfffffc00);
 	lcdc_write(reg, LCD_RASTER_TIMING_1_REG);
 
+	/* Set bit 10 of Lines Per Pixel */
+	if (lcd_revision = LCD_VERSION_2) {
+		reg = lcdc_read(LCD_RASTER_TIMING_2_REG);
+		reg |= ((height - 1) & 0x400) << 16;
+		lcdc_write(reg, LCD_RASTER_TIMING_2_REG);
+	}
+
 	/* Set the Raster Order of the Frame Buffer */
 	reg = lcdc_read(LCD_RASTER_CTRL_REG) & ~(1 << 8);
 	if (raster_order)
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* RE: [PATCH v3] video: da8xx-fb: Increased resolution configuration
  2011-07-18  4:40 [PATCH v3] video: da8xx-fb: Increased resolution configuration of revised LCDC IP Manjunathappa, Prakash
@ 2011-07-26  4:32 ` Manjunathappa, Prakash
  2011-10-04  7:12 ` Manjunathappa, Prakash
  2011-10-04 20:26 ` Florian Tobias Schandinat
  2 siblings, 0 replies; 4+ messages in thread
From: Manjunathappa, Prakash @ 2011-07-26  4:32 UTC (permalink / raw)
  To: linux-fbdev

Hi Paul,

Could you please accept this patch as there are no comments?

Thanks,
Prakash
On Mon, Jul 18, 2011 at 09:58:53, Manjunathappa, Prakash wrote:
> Revised LCD controller in upcoming TI SoC which is an updated version of
> LCDC IP that was found on TI's DA850 SoC supports 2048*2048 resolution.
> Below are the encoding details:
> Width:
> Pixels Per Line = {pplmsb, ppllsb, 4'b1111} + 1
> Where pplmsb:1bit=>Raster Timing0[3], ppllsb:6bits=>Raster Timing0[9:4].
> And encoded value can range from 16 to 2048 in multiples of 16.
> 
> Height:
> Lines Per Panel = {lpp_b10, lpp}
> Where lpp:10bits=>Raster Timing1[9:0], lpp_b10:1bit=>Raster Timing2[26].
> And encoded value can range from 1 to 2048, programmable range is 0 to
> 2047.
> 
> Patch is verified on emulation platform of upcoming SoC for updated
> feature and on DA850 platform to make sure nothing existing breaks.
> 
> Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com>
> ---
> Since v2:
> Corrected comment describing horizontal resolution bits and removed unnecessary
> outer parenthesis.
> Since v1:
> 1)Fixed the bug in configuration of lpp_b10 in Raster Timing2[26] register.
> 2)Reframed commit message.
> 
>  drivers/video/da8xx-fb.c |   31 ++++++++++++++++++++++++++++---
>  1 files changed, 28 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
> index 620f1c3..94b611a 100644
> --- a/drivers/video/da8xx-fb.c
> +++ b/drivers/video/da8xx-fb.c
> @@ -460,18 +460,43 @@ static int lcd_cfg_frame_buffer(struct da8xx_fb_par *par, u32 width, u32 height,
>  
>  	/* Set the Panel Width */
>  	/* Pixels per line = (PPL + 1)*16 */
> -	/*0x3F in bits 4..9 gives max horisontal resolution = 1024 pixels*/
> -	width &= 0x3f0;
> +	if (lcd_revision = LCD_VERSION_1) {
> +		/*
> +		 * 0x3F in bits 4..9 gives max horizontal resolution = 1024
> +		 * pixels.
> +		 */
> +		width &= 0x3f0;
> +	} else {
> +		/*
> +		 * 0x7F in bits 4..10 gives max horizontal resolution = 2048
> +		 * pixels.
> +		 */
> +		width &= 0x7f0;
> +	}
> +
>  	reg = lcdc_read(LCD_RASTER_TIMING_0_REG);
>  	reg &= 0xfffffc00;
> -	reg |= ((width >> 4) - 1) << 4;
> +	if (lcd_revision = LCD_VERSION_1) {
> +		reg |= ((width >> 4) - 1) << 4;
> +	} else {
> +		width = (width >> 4) - 1;
> +		reg |= ((width & 0x3f) << 4) | ((width & 0x40) >> 3);
> +	}
>  	lcdc_write(reg, LCD_RASTER_TIMING_0_REG);
>  
>  	/* Set the Panel Height */
> +	/* Set bits 9:0 of Lines Per Pixel */
>  	reg = lcdc_read(LCD_RASTER_TIMING_1_REG);
>  	reg = ((height - 1) & 0x3ff) | (reg & 0xfffffc00);
>  	lcdc_write(reg, LCD_RASTER_TIMING_1_REG);
>  
> +	/* Set bit 10 of Lines Per Pixel */
> +	if (lcd_revision = LCD_VERSION_2) {
> +		reg = lcdc_read(LCD_RASTER_TIMING_2_REG);
> +		reg |= ((height - 1) & 0x400) << 16;
> +		lcdc_write(reg, LCD_RASTER_TIMING_2_REG);
> +	}
> +
>  	/* Set the Raster Order of the Frame Buffer */
>  	reg = lcdc_read(LCD_RASTER_CTRL_REG) & ~(1 << 8);
>  	if (raster_order)
> -- 
> 1.7.1
> 
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH v3] video: da8xx-fb: Increased resolution configuration
  2011-07-18  4:40 [PATCH v3] video: da8xx-fb: Increased resolution configuration of revised LCDC IP Manjunathappa, Prakash
  2011-07-26  4:32 ` [PATCH v3] video: da8xx-fb: Increased resolution configuration Manjunathappa, Prakash
@ 2011-10-04  7:12 ` Manjunathappa, Prakash
  2011-10-04 20:26 ` Florian Tobias Schandinat
  2 siblings, 0 replies; 4+ messages in thread
From: Manjunathappa, Prakash @ 2011-10-04  7:12 UTC (permalink / raw)
  To: linux-fbdev

Hi Florian Tobias Schandinat,

Can you please accept below patch? It depends on my earlier patch "video: da8xx-fb: Interrupt configuration of revised LCDC IP" accepted by Paul, but I don't see it main line yet. Please let me know if I have submit both patches again?

Thanks,
Prakash

On Tue, Jul 26, 2011 at 09:50:12, Manjunathappa, Prakash wrote:
> Hi Paul,
> 
> Could you please accept this patch as there are no comments?
> 
> Thanks,
> Prakash
> On Mon, Jul 18, 2011 at 09:58:53, Manjunathappa, Prakash wrote:
> > Revised LCD controller in upcoming TI SoC which is an updated version of
> > LCDC IP that was found on TI's DA850 SoC supports 2048*2048 resolution.
> > Below are the encoding details:
> > Width:
> > Pixels Per Line = {pplmsb, ppllsb, 4'b1111} + 1
> > Where pplmsb:1bit=>Raster Timing0[3], ppllsb:6bits=>Raster Timing0[9:4].
> > And encoded value can range from 16 to 2048 in multiples of 16.
> > 
> > Height:
> > Lines Per Panel = {lpp_b10, lpp}
> > Where lpp:10bits=>Raster Timing1[9:0], lpp_b10:1bit=>Raster Timing2[26].
> > And encoded value can range from 1 to 2048, programmable range is 0 to
> > 2047.
> > 
> > Patch is verified on emulation platform of upcoming SoC for updated
> > feature and on DA850 platform to make sure nothing existing breaks.
> > 
> > Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com>
> > ---
> > Since v2:
> > Corrected comment describing horizontal resolution bits and removed unnecessary
> > outer parenthesis.
> > Since v1:
> > 1)Fixed the bug in configuration of lpp_b10 in Raster Timing2[26] register.
> > 2)Reframed commit message.
> > 
> >  drivers/video/da8xx-fb.c |   31 ++++++++++++++++++++++++++++---
> >  1 files changed, 28 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
> > index 620f1c3..94b611a 100644
> > --- a/drivers/video/da8xx-fb.c
> > +++ b/drivers/video/da8xx-fb.c
> > @@ -460,18 +460,43 @@ static int lcd_cfg_frame_buffer(struct da8xx_fb_par *par, u32 width, u32 height,
> >  
> >  	/* Set the Panel Width */
> >  	/* Pixels per line = (PPL + 1)*16 */
> > -	/*0x3F in bits 4..9 gives max horisontal resolution = 1024 pixels*/
> > -	width &= 0x3f0;
> > +	if (lcd_revision = LCD_VERSION_1) {
> > +		/*
> > +		 * 0x3F in bits 4..9 gives max horizontal resolution = 1024
> > +		 * pixels.
> > +		 */
> > +		width &= 0x3f0;
> > +	} else {
> > +		/*
> > +		 * 0x7F in bits 4..10 gives max horizontal resolution = 2048
> > +		 * pixels.
> > +		 */
> > +		width &= 0x7f0;
> > +	}
> > +
> >  	reg = lcdc_read(LCD_RASTER_TIMING_0_REG);
> >  	reg &= 0xfffffc00;
> > -	reg |= ((width >> 4) - 1) << 4;
> > +	if (lcd_revision = LCD_VERSION_1) {
> > +		reg |= ((width >> 4) - 1) << 4;
> > +	} else {
> > +		width = (width >> 4) - 1;
> > +		reg |= ((width & 0x3f) << 4) | ((width & 0x40) >> 3);
> > +	}
> >  	lcdc_write(reg, LCD_RASTER_TIMING_0_REG);
> >  
> >  	/* Set the Panel Height */
> > +	/* Set bits 9:0 of Lines Per Pixel */
> >  	reg = lcdc_read(LCD_RASTER_TIMING_1_REG);
> >  	reg = ((height - 1) & 0x3ff) | (reg & 0xfffffc00);
> >  	lcdc_write(reg, LCD_RASTER_TIMING_1_REG);
> >  
> > +	/* Set bit 10 of Lines Per Pixel */
> > +	if (lcd_revision = LCD_VERSION_2) {
> > +		reg = lcdc_read(LCD_RASTER_TIMING_2_REG);
> > +		reg |= ((height - 1) & 0x400) << 16;
> > +		lcdc_write(reg, LCD_RASTER_TIMING_2_REG);
> > +	}
> > +
> >  	/* Set the Raster Order of the Frame Buffer */
> >  	reg = lcdc_read(LCD_RASTER_CTRL_REG) & ~(1 << 8);
> >  	if (raster_order)
> > -- 
> > 1.7.1
> > 
> > 
> 
> _______________________________________________
> Davinci-linux-open-source mailing list
> Davinci-linux-open-source@linux.davincidsp.com
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v3] video: da8xx-fb: Increased resolution configuration
  2011-07-18  4:40 [PATCH v3] video: da8xx-fb: Increased resolution configuration of revised LCDC IP Manjunathappa, Prakash
  2011-07-26  4:32 ` [PATCH v3] video: da8xx-fb: Increased resolution configuration Manjunathappa, Prakash
  2011-10-04  7:12 ` Manjunathappa, Prakash
@ 2011-10-04 20:26 ` Florian Tobias Schandinat
  2 siblings, 0 replies; 4+ messages in thread
From: Florian Tobias Schandinat @ 2011-10-04 20:26 UTC (permalink / raw)
  To: linux-fbdev

On 10/04/2011 07:00 AM, Manjunathappa, Prakash wrote:
> Hi Florian Tobias Schandinat,
> 
> Can you please accept below patch? It depends on my earlier patch "video: da8xx-fb: Interrupt configuration of revised LCDC IP" accepted by Paul, but I don't see it main line yet. Please let me know if I have submit both patches again?
> 
> Thanks,
> Prakash

Applied this patch. I already got the dependency when I merged Paul latest tree.
You can see the result under
git://github.com/schandinat/linux-2.6.git fbdev-next
or in the next linux-next build.


Thanks,

Florian Tobias Schandinat

> 
> On Tue, Jul 26, 2011 at 09:50:12, Manjunathappa, Prakash wrote:
>> Hi Paul,
>>
>> Could you please accept this patch as there are no comments?
>>
>> Thanks,
>> Prakash
>> On Mon, Jul 18, 2011 at 09:58:53, Manjunathappa, Prakash wrote:
>>> Revised LCD controller in upcoming TI SoC which is an updated version of
>>> LCDC IP that was found on TI's DA850 SoC supports 2048*2048 resolution.
>>> Below are the encoding details:
>>> Width:
>>> Pixels Per Line = {pplmsb, ppllsb, 4'b1111} + 1
>>> Where pplmsb:1bit=>Raster Timing0[3], ppllsb:6bits=>Raster Timing0[9:4].
>>> And encoded value can range from 16 to 2048 in multiples of 16.
>>>
>>> Height:
>>> Lines Per Panel = {lpp_b10, lpp}
>>> Where lpp:10bits=>Raster Timing1[9:0], lpp_b10:1bit=>Raster Timing2[26].
>>> And encoded value can range from 1 to 2048, programmable range is 0 to
>>> 2047.
>>>
>>> Patch is verified on emulation platform of upcoming SoC for updated
>>> feature and on DA850 platform to make sure nothing existing breaks.
>>>
>>> Signed-off-by: Manjunathappa, Prakash <prakash.pm@ti.com>
>>> ---
>>> Since v2:
>>> Corrected comment describing horizontal resolution bits and removed unnecessary
>>> outer parenthesis.
>>> Since v1:
>>> 1)Fixed the bug in configuration of lpp_b10 in Raster Timing2[26] register.
>>> 2)Reframed commit message.
>>>
>>>  drivers/video/da8xx-fb.c |   31 ++++++++++++++++++++++++++++---
>>>  1 files changed, 28 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
>>> index 620f1c3..94b611a 100644
>>> --- a/drivers/video/da8xx-fb.c
>>> +++ b/drivers/video/da8xx-fb.c
>>> @@ -460,18 +460,43 @@ static int lcd_cfg_frame_buffer(struct da8xx_fb_par *par, u32 width, u32 height,
>>>  
>>>  	/* Set the Panel Width */
>>>  	/* Pixels per line = (PPL + 1)*16 */
>>> -	/*0x3F in bits 4..9 gives max horisontal resolution = 1024 pixels*/
>>> -	width &= 0x3f0;
>>> +	if (lcd_revision = LCD_VERSION_1) {
>>> +		/*
>>> +		 * 0x3F in bits 4..9 gives max horizontal resolution = 1024
>>> +		 * pixels.
>>> +		 */
>>> +		width &= 0x3f0;
>>> +	} else {
>>> +		/*
>>> +		 * 0x7F in bits 4..10 gives max horizontal resolution = 2048
>>> +		 * pixels.
>>> +		 */
>>> +		width &= 0x7f0;
>>> +	}
>>> +
>>>  	reg = lcdc_read(LCD_RASTER_TIMING_0_REG);
>>>  	reg &= 0xfffffc00;
>>> -	reg |= ((width >> 4) - 1) << 4;
>>> +	if (lcd_revision = LCD_VERSION_1) {
>>> +		reg |= ((width >> 4) - 1) << 4;
>>> +	} else {
>>> +		width = (width >> 4) - 1;
>>> +		reg |= ((width & 0x3f) << 4) | ((width & 0x40) >> 3);
>>> +	}
>>>  	lcdc_write(reg, LCD_RASTER_TIMING_0_REG);
>>>  
>>>  	/* Set the Panel Height */
>>> +	/* Set bits 9:0 of Lines Per Pixel */
>>>  	reg = lcdc_read(LCD_RASTER_TIMING_1_REG);
>>>  	reg = ((height - 1) & 0x3ff) | (reg & 0xfffffc00);
>>>  	lcdc_write(reg, LCD_RASTER_TIMING_1_REG);
>>>  
>>> +	/* Set bit 10 of Lines Per Pixel */
>>> +	if (lcd_revision = LCD_VERSION_2) {
>>> +		reg = lcdc_read(LCD_RASTER_TIMING_2_REG);
>>> +		reg |= ((height - 1) & 0x400) << 16;
>>> +		lcdc_write(reg, LCD_RASTER_TIMING_2_REG);
>>> +	}
>>> +
>>>  	/* Set the Raster Order of the Frame Buffer */
>>>  	reg = lcdc_read(LCD_RASTER_CTRL_REG) & ~(1 << 8);
>>>  	if (raster_order)
>>> -- 
>>> 1.7.1
>>>
>>>
>>
>> _______________________________________________
>> Davinci-linux-open-source mailing list
>> Davinci-linux-open-source@linux.davincidsp.com
>> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
>>
> 
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-10-04 20:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-18  4:40 [PATCH v3] video: da8xx-fb: Increased resolution configuration of revised LCDC IP Manjunathappa, Prakash
2011-07-26  4:32 ` [PATCH v3] video: da8xx-fb: Increased resolution configuration Manjunathappa, Prakash
2011-10-04  7:12 ` Manjunathappa, Prakash
2011-10-04 20:26 ` Florian Tobias Schandinat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).