Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] GraphLCD-Plugin SED1330 driver
Hi list,
I wrote a driver for the SED1330, you can download it from:
http://praml.roland.bei.t-online.de/vdr/graphlcd-sed1330.diff.gz
(The Init parameters are for a 320x240 LCD)
But I've currently the problem that I've garbage on the Data lines
and don't know why.
Every 10 ms (100 Hz = scheduler frequency?) some data lines go for
5猶 to GND. If there is HD activity the line goes to GND for a
longer time. I think it's a bug in my chipset. (Asus P4S533 Sis645 DX)
Maybe it's possible to solve it, to forbid task switches while writing
to the LCD, but how do I program this? I tried to solve it this way:
------------------ code ---------------------------
#define DELAY asm("nop; nop; nop; nop; nop; nop; nop; nop; nop; nop;");
asm("cli");
// set RS low, RW low and E low
port_out(lptPort+2, ( WRITE ) ^ CMASK);
DELAY
// Output the actual data
port_out(lptPort, data);
DELAY
// set E high
port_out(lptPort+2, ( WRITE | ENABLE) ^ CMASK);
DELAY
// set E low
port_out(lptPort+2, ( WRITE ) ^ CMASK);
DELAY
DELAY
asm("sti");
------------------ code -----------------------------
But VDR crashes with segmention fault if I use cli/sti. I'm not an expert
in C/C++ so it would be great if someone can give me a hint
a) how can I prevent context switches in a userspace program (vdr runs as
root)
or
b) fix the bug that the chipset/kernel/bios or whatever is accessing my LPT
Roland
--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.
Home |
Main Index |
Thread Index