remove clear postponing again
authorMalte S. Stretz <mss@apache.org>
Tue, 11 Jan 2011 01:31:44 +0000 (02:31 +0100)
committerMalte S. Stretz <mss@apache.org>
Tue, 11 Jan 2011 01:31:44 +0000 (02:31 +0100)
ax89063.c

index 9b8b5fb..a1af9db 100644 (file)
--- a/ax89063.c
+++ b/ax89063.c
@@ -68,7 +68,6 @@ typedef struct driver_private_data {
        int height;
        char *framebuf;
        int framebuf_size;
-       int framebuf_clear;
        char *framebuf_hw;
 } PrivateData;
 
@@ -77,21 +76,6 @@ MODULE_EXPORT int stay_in_foreground = 1;
 MODULE_EXPORT int supports_multiple = 0;
 MODULE_EXPORT char *symbol_prefix = "ax89063_";
 
-
-/**
- * Reset the framebuffer with spaces if clear() was called before. The
- * clearing of the screen is postponed to avoid hammering of the display
- * which makes the keypad unresponsible.
- * \param drvthis  Pointer to driver structure.
- */
-static inline void ax89063_clear_if_needed(PrivateData *p) {
-       if (!p->framebuf_clear)
-               return;
-       memset(p->framebuf, ' ', p->framebuf_size);
-       p->framebuf_clear = 0;
-}
-
-
 /**
  * Initialize the driver.
  * \param drvthis  Pointer to driver structure.
@@ -116,7 +100,6 @@ MODULE_EXPORT int ax89063_init(Driver *drvthis) {
        p->framebuf = NULL;
        p->framebuf_hw = NULL;
        p->framebuf_size = p->width * p->height;
-       p->framebuf_clear = 0;
 
        /* Read config file */
        /* Get device name, use default if it cannot be retrieved.*/
@@ -196,7 +179,6 @@ MODULE_EXPORT void ax89063_flush(Driver *drvthis) {
 
        /* Map framebuffer */
        dirty = 0;
-       ax89063_clear_if_needed(p);
        for (ibuf = p->framebuf, obuf = p->framebuf_hw + 1;
                        ibuf < p->framebuf + p->framebuf_size;
                        ibuf += p->width, obuf += AX89063_HWFRAMEBUFLEN / p->height) {
@@ -298,7 +280,7 @@ MODULE_EXPORT int ax89063_cellheight(Driver *drvthis) {
  */
 MODULE_EXPORT void ax89063_clear(Driver *drvthis) {
        PrivateData *p = drvthis->private_data;
-       p->framebuf_clear = 1;
+       memset(p->framebuf, ' ', p->framebuf_size);
 }
 
 /**
@@ -321,7 +303,6 @@ MODULE_EXPORT void ax89063_string(Driver *drvthis, int x, int y,
        if ((y < 0) || (y >= p->height))
                return;
 
-       ax89063_clear_if_needed(p);
        for (i = 0; (string[i] != '\0') && (x < p->width); i++, x++) {
                /* Check for buffer overflows... */
                if (x >= 0)
@@ -342,7 +323,6 @@ MODULE_EXPORT void ax89063_chr(Driver *drvthis, int x, int y, char c) {
        y--;
        x--;
 
-       ax89063_clear_if_needed(p);
        if ((x >= 0) && (y >= 0) && (x < p->width) && (y < p->height))
                p->framebuf[(y * p->width) + x] = c;
 }