Blame view
drivers/video/sh_mobile_lcdcfb.h
2.71 KB
6de9edd5b fbdev: sh_mobile_... |
1 2 3 4 5 |
#ifndef SH_MOBILE_LCDCFB_H #define SH_MOBILE_LCDCFB_H #include <linux/completion.h> #include <linux/fb.h> |
dd210503b fbdev: sh_mobile_... |
6 |
#include <linux/mutex.h> |
6de9edd5b fbdev: sh_mobile_... |
7 8 9 10 |
#include <linux/wait.h> /* per-channel registers */ enum { LDDCKPAT1R, LDDCKPAT2R, LDMT1R, LDMT2R, LDMT3R, LDDFR, LDSM1R, |
53b503143 fbdev: sh_mobile_... |
11 |
LDSM2R, LDSA1R, LDSA2R, LDMLSR, LDHCNR, LDHSYNR, LDVLNR, LDVSYNR, LDPMR, |
6de9edd5b fbdev: sh_mobile_... |
12 13 14 15 |
LDHAJR, NR_CH_REGS }; #define PALETTE_NR 16 |
3b0fd9d75 fbdev: sh_mobile_... |
16 |
struct backlight_device; |
d2ccdc807 fbdev: sh_mobile_... |
17 18 |
struct fb_info; struct module; |
fc9e78e6b fbdev: sh_mobile_... |
19 |
struct sh_mobile_lcdc_chan; |
d2ccdc807 fbdev: sh_mobile_... |
20 |
struct sh_mobile_lcdc_entity; |
fc9e78e6b fbdev: sh_mobile_... |
21 |
struct sh_mobile_lcdc_format_info; |
d2ccdc807 fbdev: sh_mobile_... |
22 |
struct sh_mobile_lcdc_priv; |
458981c38 fbdev: sh_mobile_... |
23 24 |
#define SH_MOBILE_LCDC_DISPLAY_DISCONNECTED 0 #define SH_MOBILE_LCDC_DISPLAY_CONNECTED 1 |
d2ccdc807 fbdev: sh_mobile_... |
25 26 |
struct sh_mobile_lcdc_entity_ops { /* Display */ |
5864ace19 fbdev: sh_mobile_... |
27 |
int (*display_on)(struct sh_mobile_lcdc_entity *entity); |
d2ccdc807 fbdev: sh_mobile_... |
28 29 |
void (*display_off)(struct sh_mobile_lcdc_entity *entity); }; |
ecd299478 sh_mobile_lcdc: A... |
30 31 32 33 34 |
enum sh_mobile_lcdc_entity_event { SH_MOBILE_LCDC_EVENT_DISPLAY_CONNECT, SH_MOBILE_LCDC_EVENT_DISPLAY_DISCONNECT, SH_MOBILE_LCDC_EVENT_DISPLAY_MODE, }; |
d2ccdc807 fbdev: sh_mobile_... |
35 36 37 |
struct sh_mobile_lcdc_entity { struct module *owner; const struct sh_mobile_lcdc_entity_ops *ops; |
e34d0bbb0 sh_mobile_lcdc: A... |
38 |
struct sh_mobile_lcdc_chan *lcdc; |
13f80eea5 fbdev: sh_mobile_... |
39 |
struct fb_videomode def_mode; |
d2ccdc807 fbdev: sh_mobile_... |
40 |
}; |
6de9edd5b fbdev: sh_mobile_... |
41 |
|
9a217e344 fbdev: sh_mobile_... |
42 43 44 |
/* * struct sh_mobile_lcdc_chan - LCDC display channel * |
a4aa25f6e fbdev: sh_mobile_... |
45 |
* @pan_y_offset: Panning linear offset in bytes (luma component) |
9a217e344 fbdev: sh_mobile_... |
46 47 48 49 |
* @base_addr_y: Frame buffer viewport base address (luma component) * @base_addr_c: Frame buffer viewport base address (chroma component) * @pitch: Frame buffer line pitch */ |
6de9edd5b fbdev: sh_mobile_... |
50 51 |
struct sh_mobile_lcdc_chan { struct sh_mobile_lcdc_priv *lcdc; |
9a2985e7f fbdev: sh_mobile_... |
52 |
struct sh_mobile_lcdc_entity *tx_dev; |
b5ef967df fbdev: sh_mobile_... |
53 |
const struct sh_mobile_lcdc_chan_cfg *cfg; |
9a2985e7f fbdev: sh_mobile_... |
54 |
|
6de9edd5b fbdev: sh_mobile_... |
55 56 57 |
unsigned long *reg_offs; unsigned long ldmt1r_value; unsigned long enabled; /* ME and SE in LDCNT2R */ |
4a2371772 sh_mobile_meram: ... |
58 |
void *cache; |
740f802af fbdev: sh_mobile_... |
59 60 61 |
struct mutex open_lock; /* protects the use counter */ int use_count; |
a67f379d3 fbdev: sh_mobile_... |
62 63 |
void *fb_mem; unsigned long fb_size; |
b5ef967df fbdev: sh_mobile_... |
64 |
|
6de9edd5b fbdev: sh_mobile_... |
65 |
dma_addr_t dma_handle; |
a4aa25f6e fbdev: sh_mobile_... |
66 |
unsigned long pan_y_offset; |
740f802af fbdev: sh_mobile_... |
67 68 |
unsigned long frame_end; |
6de9edd5b fbdev: sh_mobile_... |
69 70 |
wait_queue_head_t frame_end_wait; struct completion vsync_completion; |
9a217e344 fbdev: sh_mobile_... |
71 |
|
fc9e78e6b fbdev: sh_mobile_... |
72 |
const struct sh_mobile_lcdc_format_info *format; |
58f03d998 fbdev: sh_mobile_... |
73 74 75 76 77 78 |
u32 colorspace; unsigned int xres; unsigned int xres_virtual; unsigned int yres; unsigned int yres_virtual; unsigned int pitch; |
9a217e344 fbdev: sh_mobile_... |
79 80 |
unsigned long base_addr_y; unsigned long base_addr_c; |
72c04af9a fbdev: sh_mobile_... |
81 |
unsigned int line_size; |
ecd299478 sh_mobile_lcdc: A... |
82 83 84 |
int (*notify)(struct sh_mobile_lcdc_chan *ch, enum sh_mobile_lcdc_entity_event event, |
e0c8601a1 fbdev: sh_mobile_... |
85 86 |
const struct fb_videomode *mode, const struct fb_monspecs *monspec); |
740f802af fbdev: sh_mobile_... |
87 88 89 |
/* Backlight */ struct backlight_device *bl; |
656d4f332 fbdev: sh_mobile_... |
90 |
unsigned int bl_brightness; |
740f802af fbdev: sh_mobile_... |
91 92 93 94 95 96 97 98 99 100 101 102 |
/* FB */ struct fb_info *info; u32 pseudo_palette[PALETTE_NR]; struct { unsigned int width; unsigned int height; struct fb_videomode mode; } display; struct fb_deferred_io defio; struct scatterlist *sglist; int blank_status; |
6de9edd5b fbdev: sh_mobile_... |
103 104 105 |
}; #endif |