Re: OMAP3530 vs DM3730

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2012-01-22 22:06, Hiremath, Vaibhav wrote:
On Sat, Jan 21, 2012 at 21:46:38, Gary Thomas wrote:
I'm running the public 3.0 kernel on my boards.  I have some boards
which can have either OMAP3530 or DM3730 (newer boards have the
newer part, but everything else is the same).

On the OMAP3530, I can enable the graphics overlay on the TV (S-Video)
output via the attached script.  On the DM3730 boards, this crashes
the kernel hard :-(

Can you share the kernel crash log here?

Sadly, no, as it just locks up tight.  At this point, I can only
reset manually.  I've tried sifting through the dmesg log (_log_buf)
in U-Boot, but I don't see any tell-tale trace of why it crashes.

Further investigation shows that it's not really a problem between 3530 and
3730, sorry.  I thought I had a 3530 system where it worked, but trying it
again today, it also fails. It seems to always fail when I enable fb2 as an
overlay using the TV as the manager.

I know this worked as far back as 2.6.28 and it works again in 3.2. I've
isolated where the kernel fails to the function dispc_pclk_rate().  This
function is quite different in 3.2 than 3.0, so I back-stitched it like
this:

unsigned long dispc_pclk_rate(enum omap_channel channel)
{
        unsigned long r;

        if (dispc_mgr_is_lcd(channel)) {
                int pcd;
                u32 l;

                l = dispc_read_reg(DISPC_DIVISORo(channel));
                pcd = FLD_GET(l, 7, 0);
                r = dispc_lclk_rate(channel);

                return r / pcd;
        } else {
                unsigned long venc_get_pixel_clock(void);
                return venc_get_pixel_clock();
        }
}

The kernel no longer crashes hard, but now I get these error messages
printed when I enable the overlay:
  omapdss DISPC error: GFX_FIFO_UNDERFLOW, disabling GFX
  omapdss DISPC error: GO bit not down for channel 1
  omapdss DISPC error: VID2_FIFO_UNDERFLOW, disabling VID2
  omapdss DISPC error: SYNC_LOST_DIGIT, disabling TV

Is there any hope of getting this operation to work in 3.0?

This same operation seems to be fixed on the 3.2 (public) kernel, but
it's difficult for me to upgrade to that kernel for some other reasons.

Does anyone have an idea why this might happen?  where to look to
isolate the bug(s)?

I tried to back-port the 3.2 DSS code into my 3.0 kernel, but my
simple attempt was pretty much a failure...  If I can, I'd like to
figure out how to just fix the 3.0 code, rather than the full-scale
import of the 3.2 code.

Thanks for any ideas/pointers

--
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux