Thank you to anyone who has already donated - your generous donations helped make three months of treatment possible.

My brother Nate continues to fight stage IV Hodgkin's lymphoma. He's just 31, with a wife and baby girl. They have no active income (since he's been unable to return to work), no insurance, and cannot afford the treatment he needs. Nate and his family need your help. Please consider a donation, every dollar helps. Thanks.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Index: firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c
===================================================================
--- firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c  (Revision 20040)
+++ firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c  (Arbeitskopie)
@@ -435,7 +435,7 @@
 } /* lcd_update_rect */

 /* writes one read pixel outside the visible area, needed for correct dbop reads */
-void lcd_button_support(void)
+bool lcd_button_support(void)
 {
     int x=LCD_HEIGHT+1;
     int y=LCD_WIDTH+1;
@@ -444,7 +444,7 @@
     unsigned short data = (0xf<<12);

     if (lcd_busy)
-        return;
+        return false;

     lcd_write_reg(R_ENTRY_MODE, R_ENTRY_MODE_HORZ);
     /* Set start position and window */
@@ -457,4 +457,5 @@
     lcd_write_cmd(R_WRITE_DATA_2_GRAM);

     lcd_write_data(&data, width);
+    return true;
 }
Index: firmware/target/arm/as3525/sansa-e200v2/button-e200v2.c
===================================================================
--- firmware/target/arm/as3525/sansa-e200v2/button-e200v2.c  (Revision 20039)
+++ firmware/target/arm/as3525/sansa-e200v2/button-e200v2.c  (Arbeitskopie)
@@ -47,7 +47,7 @@
 static bool hold_button_old = false;
 #endif

-extern void lcd_button_support(void);
+extern bool lcd_button_support(void);

 void button_init_device(void)
 {
@@ -182,8 +182,10 @@

 int read_dbop(void)
 {
+    static int ret;
     /*write a red pixel */
-   lcd_button_support();
+    if (!lcd_button_support())
+        return ret;

   /* Set up dbop for input */
     while (!(DBOP_STAT & (1<<10)));     /* Wait for fifo to empty */
@@ -198,7 +200,7 @@
     int delay = 50;
     while(delay--);          /* small delay to set up read */

-    int ret = DBOP_DIN;     /* now read dbop & store info*/
+    ret = DBOP_DIN;     /* now read dbop & store info*/

     DBOP_TIMPOL_01 = 0x6e167;
     DBOP_TIMPOL_23 = 0xa167e06f;