Hi all,
The following patch fixes a synchronisation problem in the VGA driver.The interrupt is used to deliver the buffer to the user land process. A delay of only 136 lines from the frame start is too short so that the buffer is read when it is not completely written by the driver.
Michele
--- ccdc_dm355.c.old 2009-09-10 23:51:28.000000000 +0200+++ ccdc_dm355.c 2009-09-10 23:05:55.000000000 +0200@@ -1551,15 +1551,14 @@ /* * C O N F I G U R E I N T E R R U P T R E G I S T E R S */- if (params->frm_fmt == CCDC_FRMFMT_PROGRESSIVE) {- val = params->win.height / 2;- regw(136, VDINT0);- regw(149, VDINT0);- regw(0, VDINT1);- } else {- regw(0, VDINT0);- regw(0, VDINT1);- }+ if (params->frm_fmt == CCDC_FRMFMT_PROGRESSIVE) {+ val = params->win.height -1 ;+ regw(val, VDINT0);+ regw(val, VDINT1);+ } else {+ regw(0, VDINT0);+ regw(0, VDINT1);+ } dev_dbg(dev, "\nend of ccdc_config_raw..."); }