summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/hosted/agptek/lcd-agptek.c25
-rw-r--r--firmware/target/hosted/agptek/lcd-target.h6
2 files changed, 30 insertions, 1 deletions
diff --git a/firmware/target/hosted/agptek/lcd-agptek.c b/firmware/target/hosted/agptek/lcd-agptek.c
index abf89ea9e3..ff5a8146a2 100644
--- a/firmware/target/hosted/agptek/lcd-agptek.c
+++ b/firmware/target/hosted/agptek/lcd-agptek.c
@@ -29,6 +29,7 @@
29#include "lcd.h" 29#include "lcd.h"
30#include "lcd-target.h" 30#include "lcd-target.h"
31#include "backlight-target.h" 31#include "backlight-target.h"
32#include "sysfs.h"
32#include "panic.h" 33#include "panic.h"
33 34
34static int fd = -1; 35static int fd = -1;
@@ -75,6 +76,30 @@ void lcd_init_device(void)
75 } 76 }
76} 77}
77 78
79#ifdef HAVE_LCD_SHUTDOWN
80void lcd_shutdown(void)
81{
82 munmap(framebuffer, FRAMEBUFFER_SIZE);
83 close(fd);
84}
85#endif
86
87void lcd_enable(bool on)
88{
89 const char * const sysfs_fb_blank = "/sys/class/graphics/fb0/blank";
90
91 if (lcd_active() != on)
92 {
93 sysfs_set_int(sysfs_fb_blank, on ? 0 : 1);
94 lcd_set_active(on);
95
96 if (on)
97 {
98 send_event(LCD_EVENT_ACTIVATION, NULL);
99 }
100 }
101}
102
78static void redraw(void) 103static void redraw(void)
79{ 104{
80 ioctl(fd, FBIOPAN_DISPLAY, &vinfo); 105 ioctl(fd, FBIOPAN_DISPLAY, &vinfo);
diff --git a/firmware/target/hosted/agptek/lcd-target.h b/firmware/target/hosted/agptek/lcd-target.h
index 346644bdfc..b6fcfdb98f 100644
--- a/firmware/target/hosted/agptek/lcd-target.h
+++ b/firmware/target/hosted/agptek/lcd-target.h
@@ -21,6 +21,10 @@
21#ifndef __LCD_TARGET_H__ 21#ifndef __LCD_TARGET_H__
22#define __LCD_TARGET_H__ 22#define __LCD_TARGET_H__
23 23
24extern fb_data *framebuffer; /* see lcd-nwz.c */ 24/* Agptek needs special ioctl() to redraw updated framebuffer content */
25#define LCD_OPTIMIZED_UPDATE
26#define LCD_OPTIMIZED_UPDATE_RECT
27
28extern fb_data *framebuffer; /* see lcd-agptek.c */
25#define LCD_FRAMEBUF_ADDR(col, row) (framebuffer + (row)*LCD_WIDTH + (col)) 29#define LCD_FRAMEBUF_ADDR(col, row) (framebuffer + (row)*LCD_WIDTH + (col))
26#endif /* __LCD_TARGET_H__ */ 30#endif /* __LCD_TARGET_H__ */