Messages in this thread | | | Date | Thu, 20 Jun 2013 22:28:16 +0200 | From | Sebastian Hesselbarth <> | Subject | Re: [PATCH v4] drm/i2c: tda998x: fix sync generation and calculation |
| |
On 06/20/2013 10:06 PM, Russell King - ARM Linux wrote: > On Thu, Jun 20, 2013 at 09:46:03PM +0200, Sebastian Hesselbarth wrote: >> + ref_pix = 3 + mode->hsync_start - mode->hdisplay; >> + de_pix_s = mode->htotal - mode->hdisplay; >> + de_pix_e = de_pix_s + mode->hdisplay; >> + hs_pix_s = mode->hsync_start - mode->hdisplay; >> + hs_pix_e = hs_pix_s + mode->hsync_end - mode->hsync_start; > > Correct, however, these can be simplified. [...] > These calculations are the same as what was originally in the driver: > > + de_start = mode->htotal - mode->hdisplay; > + de_end = mode->htotal; > + hs_start = mode->hsync_start - mode->hdisplay; > + hs_end = mode->hsync_end - mode->hdisplay; > > when it was first committed. > > This is otherwise exactly what I came up with which gets my TV working > again in HDMI mode.
Russell,
I am fine with any way to describe de/hs but you should notice that I also modified refpix/refline and added interlaced sync. With the original sync calculation, on some modes there was source blanking captured by TDA998x which was also visible in the output image. I chose the above description to make it more readable.
Also the patch takes care of input sync and output sync inversion while the original driver always expected positive HS/VS.
I tested these sync settings on 4 DVI monitors and TV sets all accepted each mode perfectly. Especially, not-so-cheap TV sets are very picky about wrong sync.
Sebastian
| |