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µS 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