From 80ad6d155c1b974590f0c96b6291b0baa70b09d5 Mon Sep 17 00:00:00 2001 From: reinelt <> Date: Thu, 24 Jul 2003 04:48:09 +0000 Subject: [lcd4linux @ 2003-07-24 04:48:09 by reinelt] 'soft clear' needed for virtual rows --- T6963.c | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) (limited to 'T6963.c') diff --git a/T6963.c b/T6963.c index e7b7263..22125f3 100644 --- a/T6963.c +++ b/T6963.c @@ -1,4 +1,4 @@ -/* $Id: T6963.c,v 1.6 2003/04/07 06:03:00 reinelt Exp $ +/* $Id: T6963.c,v 1.7 2003/07/24 04:48:09 reinelt Exp $ * * driver for display modules based on the Toshiba T6963 chip * @@ -20,6 +20,9 @@ * * * $Log: T6963.c,v $ + * Revision 1.7 2003/07/24 04:48:09 reinelt + * 'soft clear' needed for virtual rows + * * Revision 1.6 2003/04/07 06:03:00 reinelt * further parallel port abstraction * @@ -290,23 +293,26 @@ static void T6_memcpy(unsigned short addr, unsigned char *data, int len) } -int T6_clear (void) +int T6_clear (int full) { int rows; - rows=(Lcd.rows>8 ? 8 : Lcd.rows); - - T6_memset(0x0000, 0, Lcd.cols*rows); // clear text area - T6_memset(0x0200, 0, Lcd.cols*rows*8); // clear graphic area - - if (Lcd.rows>8) { - T6_memset(0x8000, 0, Lcd.cols*(Lcd.rows-rows)); // clear text area #2 - T6_memset(0x8200, 0, Lcd.cols*(Lcd.rows-rows)*8); // clear graphic area #2 + if (full) { + + rows=(Lcd.rows>8 ? 8 : Lcd.rows); + + T6_memset(0x0000, 0, Lcd.cols*rows); // clear text area + T6_memset(0x0200, 0, Lcd.cols*rows*8); // clear graphic area + + if (Lcd.rows>8) { + T6_memset(0x8000, 0, Lcd.cols*(Lcd.rows-rows)); // clear text area #2 + T6_memset(0x8200, 0, Lcd.cols*(Lcd.rows-rows)*8); // clear graphic area #2 + } + + memset(Buffer1,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer1)); + memset(Buffer2,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer2)); } - - memset(Buffer1,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer1)); - memset(Buffer2,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer2)); - + return pix_clear(); } @@ -363,7 +369,7 @@ int T6_init (LCD *Self) T6_write_cmd (0xa0); // Set Cursor Pattern: 1 line cursor T6_send_word (0x21, 0x0000); // Set Cursor Pointer to (0,0) - T6_clear(); + T6_clear(1); return 0; } -- cgit v1.2.3