/* include/linux/s3c-fb.h * * Copyright 2008 Openmoko Inc. * Copyright 2008-2010 Simtec Electronics * Ben Dooks <ben@simtec.co.uk> * http://armlinux.simtec.co.uk/ * * Samsung SoC Framebuffer driver * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software FoundatIon. */ #ifndef __S3C_FB_H__ #define __S3C_FB_H__ struct s3c_fb_user_window { int x; int y; }; struct s3c_fb_user_plane_alpha { int channel; unsigned char red; unsigned char green; unsigned char blue; }; struct s3c_fb_user_chroma { int enabled; unsigned char red; unsigned char green; unsigned char blue; }; struct s3c_fb_user_ion_client { int fd; int offset; }; enum s3c_fb_pixel_format { S3C_FB_PIXEL_FORMAT_RGBA_8888 = 0, S3C_FB_PIXEL_FORMAT_RGBX_8888 = 1, S3C_FB_PIXEL_FORMAT_RGBA_5551 = 2, S3C_FB_PIXEL_FORMAT_RGB_565 = 3, S3C_FB_PIXEL_FORMAT_BGRA_8888 = 4, S3C_FB_PIXEL_FORMAT_MAX = 5, }; enum s3c_fb_blending { S3C_FB_BLENDING_NONE = 0, S3C_FB_BLENDING_PREMULT = 1, S3C_FB_BLENDING_COVERAGE = 2, S3C_FB_BLENDING_MAX = 3, }; struct s3c_fb_win_config { enum { S3C_FB_WIN_STATE_DISABLED = 0, S3C_FB_WIN_STATE_COLOR, S3C_FB_WIN_STATE_BUFFER, } state; union { __u32 color; struct { int fd; __u32 offset; __u32 stride; enum s3c_fb_pixel_format format; enum s3c_fb_blending blending; int fence_fd; }; }; int x; int y; __u32 w; __u32 h; }; /* S3C_FB_MAX_WIN * Set to the maximum number of windows that any of the supported hardware * can use. Since the platform data uses this for an array size, having it * set to the maximum of any version of the hardware can do is safe. */ #define S3C_FB_MAX_WIN (5) struct s3c_fb_win_config_data { int fence; struct s3c_fb_win_config config[S3C_FB_MAX_WIN]; }; /* IOCTL commands */ #define S3CFB_WIN_POSITION _IOW('F', 203, \ struct s3c_fb_user_window) #define S3CFB_WIN_SET_PLANE_ALPHA _IOW('F', 204, \ struct s3c_fb_user_plane_alpha) #define S3CFB_WIN_SET_CHROMA _IOW('F', 205, \ struct s3c_fb_user_chroma) #define S3CFB_SET_VSYNC_INT _IOW('F', 206, __u32) #define S3CFB_GET_ION_USER_HANDLE _IOWR('F', 208, \ struct s3c_fb_user_ion_client) #define S3CFB_WIN_CONFIG _IOW('F', 209, \ struct s3c_fb_win_config_data) #endif /* __S3C_FB_H__ */