Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: OMAP: Sync framebuffer headers with N800 tree

This patch syncs framebuffer headers with N800 tree.

Signed-off-by: Kai Svahn <kai.svahn@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Kai Svahn and committed by
Russell King
b01d96d6 d82973d1

+63 -10
+12
include/asm-arm/arch-omap/hwa742.h
··· 1 + #ifndef _HWA742_H 2 + #define _HWA742_H 3 + 4 + struct hwa742_platform_data { 5 + void (*power_up)(struct device *dev); 6 + void (*power_down)(struct device *dev); 7 + unsigned long (*get_clock_rate)(struct device *dev); 8 + 9 + unsigned te_connected:1; 10 + }; 11 + 12 + #endif
+51 -10
include/asm-arm/arch-omap/omapfb.h
··· 38 38 #define OMAPFB_SYNC_GFX OMAP_IO(37) 39 39 #define OMAPFB_VSYNC OMAP_IO(38) 40 40 #define OMAPFB_SET_UPDATE_MODE OMAP_IOW(40, int) 41 - #define OMAPFB_UPDATE_WINDOW_OLD OMAP_IOW(41, struct omapfb_update_window_old) 41 + #define OMAPFB_GET_CAPS OMAP_IOR(42, struct omapfb_caps) 42 42 #define OMAPFB_GET_UPDATE_MODE OMAP_IOW(43, int) 43 43 #define OMAPFB_LCD_TEST OMAP_IOW(45, int) 44 44 #define OMAPFB_CTRL_TEST OMAP_IOW(46, int) 45 - #define OMAPFB_UPDATE_WINDOW OMAP_IOW(47, struct omapfb_update_window) 45 + #define OMAPFB_UPDATE_WINDOW_OLD OMAP_IOW(47, struct omapfb_update_window_old) 46 46 #define OMAPFB_SET_COLOR_KEY OMAP_IOW(50, struct omapfb_color_key) 47 47 #define OMAPFB_GET_COLOR_KEY OMAP_IOW(51, struct omapfb_color_key) 48 48 #define OMAPFB_SETUP_PLANE OMAP_IOW(52, struct omapfb_plane_info) 49 49 #define OMAPFB_QUERY_PLANE OMAP_IOW(53, struct omapfb_plane_info) 50 + #define OMAPFB_UPDATE_WINDOW OMAP_IOW(54, struct omapfb_update_window) 51 + #define OMAPFB_SETUP_MEM OMAP_IOW(55, struct omapfb_mem_info) 52 + #define OMAPFB_QUERY_MEM OMAP_IOW(56, struct omapfb_mem_info) 50 53 51 54 #define OMAPFB_CAPS_GENERIC_MASK 0x00000fff 52 55 #define OMAPFB_CAPS_LCDC_MASK 0x00fff000 53 56 #define OMAPFB_CAPS_PANEL_MASK 0xff000000 54 57 55 58 #define OMAPFB_CAPS_MANUAL_UPDATE 0x00001000 59 + #define OMAPFB_CAPS_TEARSYNC 0x00002000 60 + #define OMAPFB_CAPS_PLANE_RELOCATE_MEM 0x00004000 61 + #define OMAPFB_CAPS_PLANE_SCALE 0x00008000 62 + #define OMAPFB_CAPS_WINDOW_PIXEL_DOUBLE 0x00010000 63 + #define OMAPFB_CAPS_WINDOW_SCALE 0x00020000 64 + #define OMAPFB_CAPS_WINDOW_OVERLAY 0x00040000 56 65 #define OMAPFB_CAPS_SET_BACKLIGHT 0x01000000 57 66 58 67 /* Values from DSP must map to lower 16-bits */ 59 - #define OMAPFB_FORMAT_MASK 0x00ff 60 - #define OMAPFB_FORMAT_FLAG_DOUBLE 0x0100 68 + #define OMAPFB_FORMAT_MASK 0x00ff 69 + #define OMAPFB_FORMAT_FLAG_DOUBLE 0x0100 70 + #define OMAPFB_FORMAT_FLAG_TEARSYNC 0x0200 71 + #define OMAPFB_FORMAT_FLAG_FORCE_VSYNC 0x0400 72 + #define OMAPFB_FORMAT_FLAG_ENABLE_OVERLAY 0x0800 73 + #define OMAPFB_FORMAT_FLAG_DISABLE_OVERLAY 0x1000 61 74 62 75 #define OMAPFB_EVENT_READY 1 63 76 #define OMAPFB_EVENT_DISABLED 2 77 + 78 + #define OMAPFB_MEMTYPE_SDRAM 0 79 + #define OMAPFB_MEMTYPE_SRAM 1 80 + #define OMAPFB_MEMTYPE_MAX 1 64 81 65 82 enum omapfb_color_format { 66 83 OMAPFB_COLOR_RGB565 = 0, ··· 95 78 __u32 x, y; 96 79 __u32 width, height; 97 80 __u32 format; 81 + __u32 out_x, out_y; 82 + __u32 out_width, out_height; 83 + __u32 reserved[8]; 98 84 }; 99 85 100 86 struct omapfb_update_window_old { 101 87 __u32 x, y; 102 88 __u32 width, height; 89 + __u32 format; 103 90 }; 104 91 105 92 enum omapfb_plane { ··· 127 106 __u32 out_width; 128 107 __u32 out_height; 129 108 __u32 reserved2[12]; 109 + }; 110 + 111 + struct omapfb_mem_info { 112 + __u32 size; 113 + __u8 type; 114 + __u8 reserved[3]; 115 + }; 116 + 117 + struct omapfb_caps { 118 + __u32 ctrl; 119 + __u32 plane_color; 120 + __u32 wnd_color; 130 121 }; 131 122 132 123 enum omapfb_color_key_type { ··· 224 191 int (*run_test) (struct lcd_panel *panel, int test_num); 225 192 }; 226 193 227 - struct omapfb_device; 228 - 229 194 struct extif_timings { 230 195 int cs_on_time; 231 196 int cs_off_time; ··· 247 216 int (*init) (struct omapfb_device *fbdev); 248 217 void (*cleanup) (void); 249 218 void (*get_clk_info) (u32 *clk_period, u32 *max_clk_div); 219 + unsigned long (*get_max_tx_rate)(void); 250 220 int (*convert_timings) (struct extif_timings *timings); 251 221 void (*set_timings) (const struct extif_timings *timings); 252 222 void (*set_bits_per_cycle)(int bpc); ··· 256 224 void (*write_data) (const void *buf, unsigned int len); 257 225 void (*transfer_area) (int width, int height, 258 226 void (callback)(void * data), void *data); 227 + int (*setup_tearsync) (unsigned pin_cnt, 228 + unsigned hs_pulse_time, unsigned vs_pulse_time, 229 + int hs_pol_inv, int vs_pol_inv, int div); 230 + int (*enable_tearsync) (int enable, unsigned line); 259 231 260 232 unsigned long max_transmit_size; 261 233 }; ··· 278 242 dma_addr_t paddr; 279 243 void *vaddr; 280 244 unsigned long size; 281 - int alloc:1; 245 + u8 type; /* OMAPFB_PLANE_MEM_* */ 246 + unsigned alloc:1; /* allocated by the driver */ 247 + unsigned map:1; /* kernel mapped by the driver */ 282 248 }; 283 249 284 250 struct omapfb_mem_desc { ··· 297 259 struct omapfb_mem_desc *req_md); 298 260 void (*cleanup) (void); 299 261 void (*bind_client) (struct omapfb_notifier_block *nb); 300 - unsigned long (*get_caps) (void); 262 + void (*get_caps) (int plane, struct omapfb_caps *caps); 301 263 int (*set_update_mode)(enum omapfb_update_mode mode); 302 264 enum omapfb_update_mode (*get_update_mode)(void); 303 265 int (*setup_plane) (int plane, int channel_out, ··· 305 267 int screen_width, 306 268 int pos_x, int pos_y, int width, 307 269 int height, int color_mode); 270 + int (*setup_mem) (int plane, size_t size, 271 + int mem_type, unsigned long *paddr); 272 + int (*mmap) (struct fb_info *info, 273 + struct vm_area_struct *vma); 308 274 int (*set_scale) (int plane, 309 275 int orig_width, int orig_height, 310 276 int out_width, int out_height); ··· 326 284 int update_hw_mem); 327 285 int (*set_color_key) (struct omapfb_color_key *ck); 328 286 int (*get_color_key) (struct omapfb_color_key *ck); 329 - 330 287 }; 331 288 332 289 enum omapfb_state { ··· 356 315 struct lcd_ctrl_extif *ext_if; /* LCD ctrl external 357 316 interface */ 358 317 struct device *dev; 318 + struct fb_var_screeninfo new_var; /* for mode changes */ 359 319 360 320 struct omapfb_mem_desc mem_desc; 361 321 struct fb_info *fb_info[OMAPFB_PLANE_NUM]; ··· 388 346 void *callback_data); 389 347 390 348 /* in arch/arm/plat-omap/fb.c */ 391 - extern void omapfb_reserve_mem(void); 392 349 extern void omapfb_set_ctrl_platform_data(void *pdata); 393 350 394 351 #endif /* __KERNEL__ */