Thread (3 messages) 3 messages, 2 authors, 2009-10-23

RE: MPC5121e DIU driver - kernel crash writing alpha component

flat view

From: Chen Hongjun-R66092 <hidden>
Date: 2009-10-23 08:46:23

Hi,=20

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