Hi, Pls refer to my comment embedded.
> -----Original Message----- > From: > linuxppc-dev-bounces+hong-jun.chen=freescale....@lists.ozlabs. > org > [mailto:linuxppc-dev-bounces+hong-jun.chen=freescale....@lists > .ozlabs.org] On Behalf Of LD > Sent: Friday, October 23, 2009 3:17 PM > To: Linux ppc mailing list; Lucio Dona' > Subject: MPC5121e DIU driver - kernel crash writing alpha component > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hi all, > I am working on Freescale MPC5121e evaluation board ADS512101 > rev. 3 (M34K processor stepping), developing a graphical application. > Just switched to ADS512101 rev. 4, 0M36P processor stepping. > > I have problems with the video framebuffer driver, try to explain: > > - - app is based on microwindows+fltk, framebuffer driver. On > rev3 board working ok. > - - rev4 board: using the kernel from ltib 2009/06/02, just > adapted fsl-diu-fb.c and .h to support resolution and timings > of my lcd panel. > > The board is booting ok (NFS), but my user space app keeps > crashing the kernel. > > I noticed that in 0M36P processor stepping there are many > changes about the video interface (DIU), correcting some bugs > of the previous stepping ; seems that when I write to the ram > area which is mapped to Panel0 of the DIU the system randomly hangs. > > After some debugging... > 800x480, 32 bits per pixel, using plane1 (first plane, as > described in the processor's reference manual). > If, from user space, I write some alpha component != 0 in > this plane then I have a complete system crash. > The reference pdf says "There is no alpha component defined > for plane1 because there are no planes behind it." > Sure, panel0 doesn't support alpha function, so you can't operate it. > I did not yet investigate about writing in other planes ; > time is short... > For now, patched microwindows driver for writing 0x00 in > alpha components, no more hangs. > Reported to Freescale FAE, waiting for some answers. > > Meanwhile: some suggestions about filtering alpha components > in the video driver ? You can replace panel0 with panel1, which can support alpha function. > I was thinking about some sort of double buffering : user space app > (fltk--->microwindows) writes in a buffer, then the driver > clears alpha to 0x00 and memcpy to the real video buffer. > > Problems: > - - driver / user space sync. Vertical retrace ? ioctl ? > - - waste of memory, needs double video buffers > > > Any suggestions are welcome, > work in progress. > > Regards > Lucio Dona' > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.6 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iD8DBQFK4VhdvxHCsvXy9okRAtrtAKCaAectSfrHOfzcbTR7KfF9lHCY1QCeOcND > HC9fMyGUATKeDL9z9IEzAWc= > =ofjv > -----END PGP SIGNATURE----- > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/linuxppc-dev > > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev