Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
video
sh_mobile_lcdcfb.h
Go to the documentation of this file.
1
#ifndef SH_MOBILE_LCDCFB_H
2
#define SH_MOBILE_LCDCFB_H
3
4
#include <
linux/completion.h
>
5
#include <linux/fb.h>
6
#include <
linux/mutex.h
>
7
#include <linux/wait.h>
8
9
/* per-channel registers */
10
enum
{
LDDCKPAT1R
,
LDDCKPAT2R
,
LDMT1R
,
LDMT2R
,
LDMT3R
,
LDDFR
,
LDSM1R
,
11
LDSM2R
,
LDSA1R
,
LDSA2R
,
LDMLSR
,
LDHCNR
,
LDHSYNR
,
LDVLNR
,
LDVSYNR
,
LDPMR
,
12
LDHAJR
,
13
NR_CH_REGS
};
14
15
#define PALETTE_NR 16
16
17
struct
backlight_device
;
18
struct
fb_info
;
19
struct
module
;
20
struct
sh_mobile_lcdc_chan
;
21
struct
sh_mobile_lcdc_entity
;
22
struct
sh_mobile_lcdc_format_info
;
23
struct
sh_mobile_lcdc_priv
;
24
25
#define SH_MOBILE_LCDC_DISPLAY_DISCONNECTED 0
26
#define SH_MOBILE_LCDC_DISPLAY_CONNECTED 1
27
28
struct
sh_mobile_lcdc_entity_ops
{
29
/* Display */
30
int
(*
display_on
)(
struct
sh_mobile_lcdc_entity
*entity);
31
void
(*
display_off
)(
struct
sh_mobile_lcdc_entity
*entity);
32
};
33
34
enum
sh_mobile_lcdc_entity_event
{
35
SH_MOBILE_LCDC_EVENT_DISPLAY_CONNECT
,
36
SH_MOBILE_LCDC_EVENT_DISPLAY_DISCONNECT
,
37
SH_MOBILE_LCDC_EVENT_DISPLAY_MODE
,
38
};
39
40
struct
sh_mobile_lcdc_entity
{
41
struct
module
*
owner
;
42
const
struct
sh_mobile_lcdc_entity_ops
*
ops
;
43
struct
sh_mobile_lcdc_chan
*
lcdc
;
44
struct
fb_videomode
def_mode
;
45
};
46
47
/*
48
* struct sh_mobile_lcdc_chan - LCDC display channel
49
*
50
* @pan_y_offset: Panning linear offset in bytes (luma component)
51
* @base_addr_y: Frame buffer viewport base address (luma component)
52
* @base_addr_c: Frame buffer viewport base address (chroma component)
53
* @pitch: Frame buffer line pitch
54
*/
55
struct
sh_mobile_lcdc_chan
{
56
struct
sh_mobile_lcdc_priv
*
lcdc
;
57
struct
sh_mobile_lcdc_entity
*
tx_dev
;
58
const
struct
sh_mobile_lcdc_chan_cfg
*
cfg
;
59
60
unsigned
long
*
reg_offs
;
61
unsigned
long
ldmt1r_value
;
62
unsigned
long
enabled
;
/* ME and SE in LDCNT2R */
63
void
*
cache
;
64
65
struct
mutex
open_lock
;
/* protects the use counter */
66
int
use_count
;
67
68
void
*
fb_mem
;
69
unsigned
long
fb_size
;
70
71
dma_addr_t
dma_handle
;
72
unsigned
long
pan_y_offset
;
73
74
unsigned
long
frame_end
;
75
wait_queue_head_t
frame_end_wait
;
76
struct
completion
vsync_completion
;
77
78
const
struct
sh_mobile_lcdc_format_info
*
format
;
79
u32
colorspace
;
80
unsigned
int
xres
;
81
unsigned
int
xres_virtual
;
82
unsigned
int
yres
;
83
unsigned
int
yres_virtual
;
84
unsigned
int
pitch
;
85
86
unsigned
long
base_addr_y
;
87
unsigned
long
base_addr_c
;
88
unsigned
int
line_size
;
89
90
int
(*
notify
)(
struct
sh_mobile_lcdc_chan
*ch,
91
enum
sh_mobile_lcdc_entity_event
event
,
92
const
struct
fb_videomode
*
mode
,
93
const
struct
fb_monspecs
*monspec);
94
95
/* Backlight */
96
struct
backlight_device
*
bl
;
97
98
/* FB */
99
struct
fb_info
*
info
;
100
u32
pseudo_palette
[
PALETTE_NR
];
101
struct
{
102
unsigned
int
width
;
103
unsigned
int
height
;
104
struct
fb_videomode
mode
;
105
}
display
;
106
struct
fb_deferred_io
defio
;
107
struct
scatterlist
*
sglist
;
108
int
blank_status
;
109
};
110
111
#endif
Generated on Thu Jan 10 2013 14:41:44 for Linux Kernel by
1.8.2