summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDanny Nold <dannynold@freescale.com>2010-12-08 17:53:47 -0600
committerDanny Nold <dannynold@freescale.com>2010-12-09 17:03:54 -0600
commit51751fe784129967315ebef2432f082cd3bdddd4 (patch)
tree6b017daf7549b08df19cea312131092e0b95076a /include
parente3780fb857682686ab34402dd584f769e68fa86f (diff)
ENGR00134274 - EPDC fb: Optimize update flow by merging compatible updates
- Created a worker thread to centralize all update requests (new and collisions) - Added routine to merge compatible updates - Separated PXP processing from update ioctl and ISR flows into workqueue flow - Added IOCTL to turn control the update scheme. Supported schemes are snapshot mode (the old update scheme), queued mode, and queued mode with combining. - Added collision-handling refinement based on update submission order - Added support for 8bpp setting from kernel command line option Signed-off-by: Danny Nold <dannynold@freescale.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mxcfb.h11
-rw-r--r--include/linux/mxcfb_epdc_kernel.h1
2 files changed, 9 insertions, 3 deletions
diff --git a/include/linux/mxcfb.h b/include/linux/mxcfb.h
index 1733f91426e1..8c294339d56c 100644
--- a/include/linux/mxcfb.h
+++ b/include/linux/mxcfb.h
@@ -66,10 +66,14 @@ struct mxcfb_rect {
};
#define GRAYSCALE_8BIT 0x1
-#define GRAYSCALE_8BIT_INVERTED 0x2
+#define GRAYSCALE_8BIT_INVERTED 0x2
#define AUTO_UPDATE_MODE_REGION_MODE 0
-#define AUTO_UPDATE_MODE_AUTOMATIC_MODE 1
+#define AUTO_UPDATE_MODE_AUTOMATIC_MODE 1
+
+#define UPDATE_SCHEME_SNAPSHOT 0
+#define UPDATE_SCHEME_QUEUE 1
+#define UPDATE_SCHEME_QUEUE_AND_MERGE 2
#define UPDATE_MODE_PARTIAL 0x0
#define UPDATE_MODE_FULL 0x1
@@ -131,10 +135,11 @@ struct mxcfb_waveform_modes {
#define MXCFB_SET_WAVEFORM_MODES _IOW('F', 0x2B, struct mxcfb_waveform_modes)
#define MXCFB_SET_TEMPERATURE _IOW('F', 0x2C, int32_t)
#define MXCFB_SET_AUTO_UPDATE_MODE _IOW('F', 0x2D, __u32)
-#define MXCFB_SEND_UPDATE _IOW('F', 0x2E, struct mxcfb_update_data)
+#define MXCFB_SEND_UPDATE _IOW('F', 0x2E, struct mxcfb_update_data)
#define MXCFB_WAIT_FOR_UPDATE_COMPLETE _IOW('F', 0x2F, __u32)
#define MXCFB_SET_PWRDOWN_DELAY _IOW('F', 0x30, int32_t)
#define MXCFB_GET_PWRDOWN_DELAY _IOR('F', 0x31, int32_t)
+#define MXCFB_SET_UPDATE_SCHEME _IOW('F', 0x32, __u32)
#ifdef __KERNEL__
diff --git a/include/linux/mxcfb_epdc_kernel.h b/include/linux/mxcfb_epdc_kernel.h
index 80a498e08679..3c474dee4f6b 100644
--- a/include/linux/mxcfb_epdc_kernel.h
+++ b/include/linux/mxcfb_epdc_kernel.h
@@ -29,5 +29,6 @@ int mxc_epdc_fb_wait_update_complete(u32 update_marker, struct fb_info *info);
int mxc_epdc_fb_set_pwrdown_delay(u32 pwrdown_delay,
struct fb_info *info);
int mxc_epdc_get_pwrdown_delay(struct fb_info *info);
+int mxc_epdc_fb_set_upd_scheme(u32 upd_scheme, struct fb_info *info);
#endif