omapdss DISPC error: SYNC_LOST_DIGIT

Bug #592295 reported by Lee Jones
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux-ti-omap4 (Ubuntu)
Fix Released
Medium
Lee Jones

Bug Description

Lots of spurious "omapdss DISPC error: SYNC_LOST_DIGIT" error messages printed out to the console when a monitor is connected via HDMI.

- Kernel -
Description: Ubuntu 10.04 LTS
Release: 10.04
Linux version 2.6.33-900-omap4 (xxxxx@xxxxx) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #1~panda SMP PREEMPT Tue Jun 8 08:50:45 EDT 2010

- Board -
Panda OMAP 4

- Monitor-
LG W2261VP 22" LCD Widescreen Full HD Gaming Monitor 1920 x 1080 250cd/m2 10,000:1 2ms VGA/DVI/HDMI

Lee Jones (lag)
Changed in linux-ti-omap (Ubuntu):
assignee: nobody → Lee Jones (lag)
Revision history for this message
Bryan Wu (cooloney) wrote :

After grepping the OMAP4 kernel, I found some code was commented in the driver:

drivers/video/omap2/dss/dispc.c
----
        if (errors & DISPC_IRQ_SYNC_LOST_DIGIT) {

        DSSERR("SYNC_LOST_DIGIT\n");
/*commenting below code as with 1080P Decode we see a sync lost digit for
first frame as it takes long time to decode but it later recovers*/
#if 0
                struct omap_overlay_manager *manager = NULL;
                bool enable = false;

                DSSERR("SYNC_LOST_DIGIT, disabling TV\n");

                for (i = 0; i < omap_dss_get_num_overlay_managers(); ++i) {
                        struct omap_overlay_manager *mgr;
                        mgr = omap_dss_get_overlay_manager(i);

                        if (mgr->id == OMAP_DSS_CHANNEL_DIGIT) {
                                manager = mgr;
                                enable = mgr->device->state ==
                                                OMAP_DSS_DISPLAY_ACTIVE;
                                mgr->device->driver->disable(mgr->device);
                                break;
                        }

                }

                if (manager) {
                        struct omap_dss_device *dssdev = manager->device;
                        for (i = 0; i < omap_dss_get_num_overlays(); ++i) {
                                struct omap_overlay *ovl;
                                ovl = omap_dss_get_overlay(i);

                                if (!(ovl->caps & OMAP_DSS_OVL_CAP_DISPC))
                                        continue;

                                if (ovl->id != 0 && ovl->manager == manager)
                                        dispc_enable_plane(ovl->id, 0);
                        }

                        dispc_go(manager->id);
                        mdelay(50);
                        if (enable)
                                dssdev->driver->enable(dssdev);
                }
#endif
        }
----

I am not sure about that.
-Bryan

Revision history for this message
Lee Jones (lag) wrote :

I'm sure there is a neater solution than that.

I will test and post my results on here.

Revision history for this message
Sebastien JAN (sebjan) wrote :

Not sure about the root cause for that. In the meantime, here is a kernel hack that shall disable this trace and free some cpu (to avoid locking the board because of the huge traces generated). This shall enable using the HDMI output.

--- drivers/video/omap2/dss/dispc.c 2010-06-15 09:57:56.000000000 +0200
+++ drivers/video/omap2/dss/dispc.c 2010-0mc-pdm1.patch6-04 17:04:06.000000000 +0200
@@ -4182,7 +4182,7 @@mc-pdm1.patch
  PIS(VID1_FIFO_UNDERFLOW);
  PIS(VID2_FIFO_UNDERFLOW);
  PIS(SYNC_LOST);
- PIS(SYNC_LOST_DIGIT);
+ /*PIS(SYNC_LOST_DIGIT);*/
 #undef PIS

  printk("\n");
@@ -4431,7 +4431,7 @@
   bool enable = false;
 #endif

- DSSERR("SYNC_LOST_DIGIT\n");
+ /*DSSERR("SYNC_LOST_DIGIT\n");*/
  /*
   DSSERR("SYNC_LOST_DIGIT, disabling TV\n");

Bryan Wu (cooloney)
Changed in linux-ti-omap (Ubuntu):
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
Lee Jones (lag) wrote :

FAO Sebastien,

I already have something similar to allow me access to the system console.

My method uses a 'static int' and only allows the message to appear 10 times.

I'm currently building the very latest ti-omap4 branch to see if the error has regressed.

I'll keep you informed of my progress.

Revision history for this message
Lee Jones (lag) wrote :

Bug seems to have disappeared in the latest Linux version 2.6.34-901-omap4 kernel.

I'm going to close this bug until it rears its ugly head again.

Revision history for this message
Lee Jones (lag) wrote :

Change of plan.

After some extra experimentation it appears the bug still occurs, but only if an HDMI monitor is plugged in and turned off.

Revision history for this message
mythripk (mythripk) wrote :

the reason why the portion of code in dispc.c
drivers/video/omap2/dss/dispc.c
----
        if (errors & DISPC_IRQ_SYNC_LOST_DIGIT) {

        DSSERR("SYNC_LOST_DIGIT\n");
/*commenting below code as with 1080P Decode we see a sync lost digit for
first frame as it takes long time to decode but it later recovers*/
is commented out is that , The sync lost digit can be got for several reasons . One of the reasons is that when IVA-HD decoded video is played on HDMI , then the first frame takes about 1s to decode and results in a SYNC_LOST_DIGIT, which if the code is not commented would disable the overlay manager.

Now coming to the SYNC_LOST_DIGIT as such , It would be helpful if you could elaborate on how you are able to reproduce the issue.I assume the timing set is correct.

Steve Kowalik (stevenk)
affects: linux-ti-omap (Ubuntu) → linux-ti-omap4 (Ubuntu)
Revision history for this message
Lee Jones (lag) wrote :

A patch has been put up for RFC at the address below.

http://omappedia.org/wiki/RFCs

This patch allows the kernel to auto detect a monitor's settings and only attempt to turn it on when it's found. This clears the spurious SYNC_LOST_DIGIT messages.

Lee Jones (lag)
Changed in linux-ti-omap4 (Ubuntu):
status: Confirmed → In Progress
Revision history for this message
Lee Jones (lag) wrote :

The fix for this issue has been committed with 2.6.35.

Changed in linux-ti-omap4 (Ubuntu):
status: In Progress → Fix Committed
Lee Jones (lag)
Changed in linux-ti-omap4 (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Adriano Pallavicino (adriano.pallavicino) wrote :

Hi, I've got same issue on my pandaboard rel. A3.
kernel is:
=====================

adriano@pandaboard:~$ uname -r
2.6.38-1208-omap4
=====================

and the error printed out on serial console in a while(1) loop

=====================
[ 730.415527] omapdss DISPC error: SYNC_LOST_DIGIT, disabling TV
=====================

the distro is ubuntu headless 11.04

=====================

adriano@pandaboard:~$ uname -a
Linux pandaboard 2.6.38-1208-omap4 #11-Ubuntu SMP PREEMPT Fri Apr 15 16:34:35 UTC 2011 armv7l armv7l armv7l GNU/Linux
=====================

I hope to wrote on the right place, best regards

Adriano

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.