]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2002-08-21 06:09:53 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 21 Aug 2002 06:09:53 +0000 (06:09 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 21 Aug 2002 06:09:53 +0000 (06:09 +0000)
some T6963 fixes, ndelay wrap

git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@165 3ae390bd-cb1e-0410-b409-cd5a39f66f1f

T6963.c
udelay.c

diff --git a/T6963.c b/T6963.c
index b76d510ea12155c2d5d717626d0a0d27138a45c0..a6597335af2688ea4f0c9beade428e6ef477f178 100644 (file)
--- a/T6963.c
+++ b/T6963.c
@@ -1,4 +1,4 @@
-/* $Id: T6963.c,v 1.3 2002/08/19 04:41:20 reinelt Exp $
+/* $Id: T6963.c,v 1.4 2002/08/21 06:09:53 reinelt Exp $
  *
  * driver for display modules based on the Toshiba T6963 chip
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: T6963.c,v $
+ * Revision 1.4  2002/08/21 06:09:53  reinelt
+ * some T6963 fixes, ndelay wrap
+ *
  * Revision 1.3  2002/08/19 04:41:20  reinelt
  * introduced bar.c, moved bar stuff from display.h to bar.h
  *
@@ -93,7 +96,6 @@
 
 #define XRES 6
 #define YRES 8
-#define BARS ( BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2 | BAR_V2 | BAR_T)
 
 static LCD Lcd;
 
@@ -169,7 +171,6 @@ void T6_status2 (void)
       break;
     }
     ioctl (PPfd, PPRDATA, &data);
-    // } while ((data & 0x08) == 0);
   } while ((data & 0x08) != 0x08);
 
   // rise RD and CE
@@ -408,10 +409,10 @@ int T6_init (LCD *Self)
   debug ("setting %d columns", Lcd.cols);
 
   T6_send_word (0x40, 0x0000);    // Set Text Home Address
-  T6_send_word (0x41, 40);        // Set Text Area
+  T6_send_word (0x41, Lcd.cols);  // Set Text Area
 
   T6_send_word (0x42, 0x0200);    // Set Graphic Home Address
-  T6_send_word (0x43, 40);        // Set Graphic Area
+  T6_send_word (0x43, Lcd.cols);  // Set Graphic Area
 
   T6_write_cmd (0x80);            // Mode Set: OR mode, Internal CG RAM mode
   T6_send_word (0x22, 0x0002);    // Set Offset Register
@@ -437,7 +438,8 @@ int T6_bar (int type, int row, int col, int max, int len1, int len2)
 int T6_flush (void)
 {
   int i, j, e;
-  
+  int count=0;
+
   memset(Buffer1,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer1));
   
   for (i=0; i<Lcd.cols*Lcd.rows*Lcd.yres; i++) {
@@ -457,6 +459,7 @@ int T6_flush (void)
       }
     }
     T6_memcpy (j, Buffer1+j, i-j-e+1);
+    count+=i-j-e+1;
   }
 
   memcpy(Buffer2,Buffer1,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer1));
@@ -478,7 +481,35 @@ int T6_quit (void)
 }
 
 LCD T6963[] = {
-  { "TLC1091", 16,40,XRES,YRES,BARS,0,T6_init,T6_clear,T6_put,T6_bar,NULL,T6_flush,T6_quit },
-  { "DMF5002N",14,40,XRES,YRES,BARS,0,T6_init,T6_clear,T6_put,T6_bar,NULL,T6_flush,T6_quit },
+  { name: "TLC1091", 
+    rows:  16,
+    cols:  40,
+    xres:  6,
+    yres:  8,
+    bars:  BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2 | BAR_V2 | BAR_T,
+    gpos:  0,
+    init:  T6_init,
+    clear: T6_clear,
+    put:   T6_put,
+    bar:   T6_bar,
+    gpo:   NULL,
+    flush: T6_flush,
+    quit:  T6_quit 
+  },
+  { name: "DMF5002N",
+    rows:  14,
+    cols:  16,
+    xres:  8,
+    yres:  8,
+    bars:  BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2 | BAR_V2 | BAR_T,
+    gpos:  0,
+    init:  T6_init,
+    clear: T6_clear,
+    put:   T6_put,
+    bar:   T6_bar,
+    gpo:   NULL,
+    flush: T6_flush,
+    quit:  T6_quit
+  },
   { NULL }
 };
index 2180f66993409e386d778bafdaa893168e5a4661..6077dd0c4ebf1ad876e3f6128462aea7b92ae63e 100644 (file)
--- a/udelay.c
+++ b/udelay.c
@@ -1,4 +1,4 @@
-/* $Id: udelay.c,v 1.8 2002/08/17 14:14:21 reinelt Exp $
+/* $Id: udelay.c,v 1.9 2002/08/21 06:09:53 reinelt Exp $
  *
  * short delays
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: udelay.c,v $
+ * Revision 1.9  2002/08/21 06:09:53  reinelt
+ * some T6963 fixes, ndelay wrap
+ *
  * Revision 1.8  2002/08/17 14:14:21  reinelt
  *
  * USBLCD fixes
@@ -246,10 +249,14 @@ void ndelay (unsigned long nsec)
     do {
       rep_nop();
       rdtscl(t2);
+      // Fixme
+      if (t2<t1) {
+       debug ("ndelay wrap: t1=%d t2=%d", t1, t2);
+      }
     } while ((t2-t1)<nsec);
     
   } else
-
+    
 #endif
 
     {