Hi, On Wed, 2012-03-21 at 15:21 +0530, Chandrabhanu Mahapatra wrote: > In OMAP3 DISPC video overlays suffer from some undocumented horizontal position > and timing related limitations leading to SYNCLOST errors. Whenever the image > window is moved towards the right of the screen SYNCLOST errors become > frequent. Checks have been implemented to see that DISPC driver rejects > configuration exceeding above limitations. > > This code was successfully tested on OMAP3. This code is written based on code > written by Ville Syrjälä <ville.syrjala@xxxxxxxxx> in Linux OMAP kernel. Ville > Syrjälä <ville.syrjala@xxxxxxxxx> had added checks for video overlay horizontal > timing and DISPC horizontal blanking length limitations. > > Signed-off-by: Chandrabhanu Mahapatra <cmahapatra@xxxxxx> > --- > drivers/video/omap2/dss/dispc.c | 97 +++++++++++++++++++++++++++++---------- > 1 files changed, 72 insertions(+), 25 deletions(-) The patch seems to be using dos line endings... Where did they come from? The two others are fine. I think git am removed the dos line endings, so it's fine. Tomi ERROR: DOS line endings #72: FILE: drivers/video/omap2/dss/dispc.c:1625: +static int check_horiz_timing(enum omap_channel channel, u16 pos_x,^M$ ERROR: DOS line endings #73: FILE: drivers/video/omap2/dss/dispc.c:1626: +^I^Iu16 width, u16 height, u16 out_width, u16 out_height)^M$ ERROR: DOS line endings #74: FILE: drivers/video/omap2/dss/dispc.c:1627: +{^M$ ERROR: DOS line endings #75: FILE: drivers/video/omap2/dss/dispc.c:1628: +^Iint DS = DIV_ROUND_UP(height, out_height);^M$ ERROR: DOS line endings #76: FILE: drivers/video/omap2/dss/dispc.c:1629: +^Istruct omap_dss_device *dssdev = dispc_mgr_get_device(channel);^M$ ERROR: DOS line endings #77: FILE: drivers/video/omap2/dss/dispc.c:1630: +^Istruct omap_video_timings t = dssdev->panel.timings;^M$ ERROR: DOS line endings #78: FILE: drivers/video/omap2/dss/dispc.c:1631: +^Iunsigned long nonactive, lclk, pclk;^M$ ERROR: DOS line endings #79: FILE: drivers/video/omap2/dss/dispc.c:1632: +^Istatic const u8 limits[3] = { 8, 10, 20 };^M$ ERROR: DOS line endings #80: FILE: drivers/video/omap2/dss/dispc.c:1633: +^Iu64 val, blank;^M$ ERROR: DOS line endings #81: FILE: drivers/video/omap2/dss/dispc.c:1634: +^Iint i;^M$ ERROR: DOS line endings #82: FILE: drivers/video/omap2/dss/dispc.c:1635: +^M$ ERROR: DOS line endings #83: FILE: drivers/video/omap2/dss/dispc.c:1636: +^Inonactive = t.x_res + t.hfp + t.hsw + t.hbp - out_width;^M$ ERROR: DOS line endings #84: FILE: drivers/video/omap2/dss/dispc.c:1637: +^Ipclk = dispc_mgr_pclk_rate(channel);^M$ ERROR: DOS line endings #85: FILE: drivers/video/omap2/dss/dispc.c:1638: +^Ilclk = dispc_mgr_lclk_rate(channel);^M$ ERROR: DOS line endings #86: FILE: drivers/video/omap2/dss/dispc.c:1639: +^M$ ERROR: DOS line endings #87: FILE: drivers/video/omap2/dss/dispc.c:1640: +^Ii = 0;^M$ ERROR: DOS line endings #88: FILE: drivers/video/omap2/dss/dispc.c:1641: +^Iif (out_height < height)^M$ ERROR: DOS line endings #89: FILE: drivers/video/omap2/dss/dispc.c:1642: +^I^Ii++;^M$ ERROR: DOS line endings #90: FILE: drivers/video/omap2/dss/dispc.c:1643: +^Iif (out_width < width)^M$ ERROR: DOS line endings #91: FILE: drivers/video/omap2/dss/dispc.c:1644: +^I^Ii++;^M$ ERROR: DOS line endings #92: FILE: drivers/video/omap2/dss/dispc.c:1645: +^Iblank = div_u64((u64)(t.hbp + t.hsw + t.hfp) * lclk, pclk);^M$ ERROR: DOS line endings #93: FILE: drivers/video/omap2/dss/dispc.c:1646: +^IDSSDBG("blanking period + ppl = %llu (limit = %u)\n", blank, limits[i]);^M$ WARNING: line over 80 characters #93: FILE: drivers/video/omap2/dss/dispc.c:1646: + DSSDBG("blanking period + ppl = %llu (limit = %u)\n", blank, limits[i]); ERROR: DOS line endings #94: FILE: drivers/video/omap2/dss/dispc.c:1647: +^Iif (blank <= limits[i])^M$ ERROR: DOS line endings #95: FILE: drivers/video/omap2/dss/dispc.c:1648: +^I^Ireturn -EINVAL;^M$ ERROR: DOS line endings #96: FILE: drivers/video/omap2/dss/dispc.c:1649: +^M$ ERROR: trailing whitespace #97: FILE: drivers/video/omap2/dss/dispc.c:1650: +^I/*^M$ ERROR: trailing whitespace #98: FILE: drivers/video/omap2/dss/dispc.c:1651: +^I * Pixel data should be prepared before visible display point starts.^M$ ERROR: trailing whitespace #99: FILE: drivers/video/omap2/dss/dispc.c:1652: +^I * So, atleast DS-2 lines must have already been fetched by DISPC^M$ ERROR: trailing whitespace #100: FILE: drivers/video/omap2/dss/dispc.c:1653: +^I * during nonactive - pos_x period.^M$ ERROR: DOS line endings #101: FILE: drivers/video/omap2/dss/dispc.c:1654: +^I */^M$ ERROR: DOS line endings #102: FILE: drivers/video/omap2/dss/dispc.c:1655: +^Ival = div_u64((u64)(nonactive - pos_x) * lclk, pclk);^M$ ERROR: DOS line endings #103: FILE: drivers/video/omap2/dss/dispc.c:1656: +^IDSSDBG("(nonactive - pos_x) * pcd = %llu,"^M$ ERROR: DOS line endings #104: FILE: drivers/video/omap2/dss/dispc.c:1657: +^I^I" max(0, DS - 2) * width = %d\n",^M$ ERROR: DOS line endings #105: FILE: drivers/video/omap2/dss/dispc.c:1658: +^I^Ival, max(0, DS - 2) * width);^M$ ERROR: DOS line endings #106: FILE: drivers/video/omap2/dss/dispc.c:1659: +^Iif (val < max(0, DS - 2) * width)^M$ ERROR: DOS line endings #107: FILE: drivers/video/omap2/dss/dispc.c:1660: +^I^Ireturn -EINVAL;^M$ ERROR: DOS line endings #108: FILE: drivers/video/omap2/dss/dispc.c:1661: +^M$ ERROR: trailing whitespace #109: FILE: drivers/video/omap2/dss/dispc.c:1662: +^I/*^M$ ERROR: trailing whitespace #110: FILE: drivers/video/omap2/dss/dispc.c:1663: +^I * All lines need to be refilled during the nonactive period of which^M$ ERROR: trailing whitespace #111: FILE: drivers/video/omap2/dss/dispc.c:1664: +^I * only one line can be loaded during the active period. So, atleast^M$ ERROR: trailing whitespace #112: FILE: drivers/video/omap2/dss/dispc.c:1665: +^I * DS - 1 lines should be loaded during nonactive period.^M$ ERROR: DOS line endings #113: FILE: drivers/video/omap2/dss/dispc.c:1666: +^I */^M$ ERROR: DOS line endings #114: FILE: drivers/video/omap2/dss/dispc.c:1667: +^Ival = div_u64((u64)nonactive * lclk, pclk);^M$ ERROR: DOS line endings #115: FILE: drivers/video/omap2/dss/dispc.c:1668: +^IDSSDBG("nonactive * pcd = %llu, max(0, DS - 1) * width = %d\n",^M$ ERROR: DOS line endings #116: FILE: drivers/video/omap2/dss/dispc.c:1669: +^I^Ival, max(0, DS - 1) * width);^M$ ERROR: DOS line endings #117: FILE: drivers/video/omap2/dss/dispc.c:1670: +^Iif (val < max(0, DS - 1) * width)^M$ ERROR: DOS line endings #118: FILE: drivers/video/omap2/dss/dispc.c:1671: +^I^Ireturn -EINVAL;^M$ ERROR: DOS line endings #119: FILE: drivers/video/omap2/dss/dispc.c:1672: +^M$ ERROR: DOS line endings #120: FILE: drivers/video/omap2/dss/dispc.c:1673: +^Ireturn 0;^M$ ERROR: DOS line endings #121: FILE: drivers/video/omap2/dss/dispc.c:1674: +}^M$ ERROR: DOS line endings #122: FILE: drivers/video/omap2/dss/dispc.c:1675: +^M$ ERROR: DOS line endings #131: FILE: drivers/video/omap2/dss/dispc.c:1756: +^I^Iint *x_predecim, int *y_predecim, u16 pos_x)^M$ ERROR: DOS line endings #139: FILE: drivers/video/omap2/dss/dispc.c:1832: +^I^I^Ierror = check_horiz_timing(channel, pos_x, in_width,^M$ ERROR: DOS line endings #140: FILE: drivers/video/omap2/dss/dispc.c:1833: +^I^I^I^Iin_height, out_width, out_height);^M$ ERROR: DOS line endings #141: FILE: drivers/video/omap2/dss/dispc.c:1834: +^M$ ERROR: DOS line endings #150: FILE: drivers/video/omap2/dss/dispc.c:1842: +^I^I^Ierror = (error || in_width > maxsinglelinewidth * 2 ||^M$ ERROR: DOS line endings #158: FILE: drivers/video/omap2/dss/dispc.c:1858: +^I^Iif (check_horiz_timing(channel, pos_x, width, height,^M$ ERROR: DOS line endings #159: FILE: drivers/video/omap2/dss/dispc.c:1859: +^I^I^Iout_width, out_height)){^M$ ERROR: DOS line endings #160: FILE: drivers/video/omap2/dss/dispc.c:1860: +^I^I^I^IDSSERR("horizontal timing too tight\n");^M$ ERROR: DOS line endings #161: FILE: drivers/video/omap2/dss/dispc.c:1861: +^I^I^I^Ireturn -EINVAL;^M$ ERROR: DOS line endings #162: FILE: drivers/video/omap2/dss/dispc.c:1862: +^I^I}^M$ ERROR: DOS line endings #163: FILE: drivers/video/omap2/dss/dispc.c:1863: +^M$ ERROR: DOS line endings #172: FILE: drivers/video/omap2/dss/dispc.c:1964: +^I^I^I&x_predecim, &y_predecim, oi->pos_x);^M$ ERROR: DOS line endings #184: FILE: drivers/video/omap2/dss/dispc.c:2535: +^Iunsigned long r = dispc_fclk_rate();^M$ ERROR: DOS line endings #187: FILE: drivers/video/omap2/dss/dispc.c:2537: +^Iif (dispc_mgr_is_lcd(channel)) {^M$ ERROR: DOS line endings #188: FILE: drivers/video/omap2/dss/dispc.c:2538: +^I^Iu32 l;^M$ ERROR: DOS line endings #189: FILE: drivers/video/omap2/dss/dispc.c:2539: +^I^Iint lcd;^M$ ERROR: DOS line endings #192: FILE: drivers/video/omap2/dss/dispc.c:2541: +^I^Il = dispc_read_reg(DISPC_DIVISORo(channel));^M$ ERROR: DOS line endings #193: FILE: drivers/video/omap2/dss/dispc.c:2542: +^I^Ilcd = FLD_GET(l, 23, 16);^M$ ERROR: DOS line endings #209: FILE: drivers/video/omap2/dss/dispc.c:2544: +^I^Ireturn r / lcd;^M$ ERROR: DOS line endings #210: FILE: drivers/video/omap2/dss/dispc.c:2545: +^I} else {^M$ ERROR: DOS line endings #211: FILE: drivers/video/omap2/dss/dispc.c:2546: +^I^Ireturn r;^M$ total: 72 errors, 1 warnings, 143 lines checked NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or scripts/cleanfile 123.mbox has style problems, please review. If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS.
Attachment:
signature.asc
Description: This is a digitally signed message part