diff options
author | Danny Nold <dannynold@freescale.com> | 2010-12-08 17:53:47 -0600 |
---|---|---|
committer | Danny Nold <dannynold@freescale.com> | 2010-12-09 17:03:54 -0600 |
commit | 51751fe784129967315ebef2432f082cd3bdddd4 (patch) | |
tree | 6b017daf7549b08df19cea312131092e0b95076a /include | |
parent | e3780fb857682686ab34402dd584f769e68fa86f (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.h | 11 | ||||
-rw-r--r-- | include/linux/mxcfb_epdc_kernel.h | 1 |
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 |