Thread (10 messages) flat view 10 messages, 2 authors, 2011-02-16
STALE5665d

Re: [PATCH] mx3fb: Fix parameter to sdc_init_panel

From: Alexander Stein <hidden>
Date: 2011-02-10 13:01:17
Also in: linux-arm-kernel

On Thursday 10 February 2011, 13:48:23 Guennadi Liakhovetski wrote:
quoted
Ok, i will just write about HSYNC the problem about VSYNC is similar.
Let's assume we have a display with the following properties.
left_margin   = 38
right_margin  = 32
hsync_len     = 20
width         = 800

Without the patch we get the following arguments on sdc_init_panel
width           = 800
h_start_width   = 38 (left_margin)
h_sync_width    = 20 (hsync_len)
h_end_width     = 52 = 32 + 20 (right_margin + hsync_len)

So we will write into SDC_HOR_CONF:

reg = ((h_sync_width - 1) << 26) |

    ((width + h_start_width + h_end_width - 1) << 16);

reg = ((20 - 1) << 26) |

    ((800 + 38 + 52 - 1) << 16);

So the value SCREEN_WIDTH get written is
width + left_margin + right_margin + hsync_len

which is IMO wrong. The description in the reference manual states:
quoted
Screen width minus 1. Specifies the number of pixel clock periods
between the last HSYNC and the new HSYNC.
It should just be: width + left_margin + right_margin
I fell accross it, as I have a display with 800 px width and rather big
left_margin. The sum got greater than 1023 which is what SCREEN_WIDTH can
hold at maximum.

I don't know which display you used, but I guess your right_margin (and
lower_margin) needs to be adjusted.
Ok, agree. But then you need to adjust all current users and have them
tested... Otherwise, of course, you can just adjust your platform panel
data to work with the current calculations, even though in principle your
patch seems to be doing the right thing (tm), according to the manual. But
if applied as is without fixing all the users, it can very well break
them...
Ok, I've just seen there are some model defines in mx3fb.c which would also be 
affected.
I'll try to find all mx3fb users and fix their videomodes and repost a new 
patch.

Alexander
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help