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
include
drm
drm_fb_helper.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2006-2009 Red Hat Inc.
3
* Copyright (c) 2006-2008 Intel Corporation
4
* Copyright (c) 2007 Dave Airlie <
[email protected]
>
5
*
6
* DRM framebuffer helper functions
7
*
8
* Permission to use, copy, modify, distribute, and sell this software and its
9
* documentation for any purpose is hereby granted without fee, provided that
10
* the above copyright notice appear in all copies and that both that copyright
11
* notice and this permission notice appear in supporting documentation, and
12
* that the name of the copyright holders not be used in advertising or
13
* publicity pertaining to distribution of the software without specific,
14
* written prior permission. The copyright holders make no representations
15
* about the suitability of this software for any purpose. It is provided "as
16
* is" without express or implied warranty.
17
*
18
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
19
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
20
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
21
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
22
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
23
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
24
* OF THIS SOFTWARE.
25
*
26
* Authors:
27
* Dave Airlie <
[email protected]
>
28
* Jesse Barnes <
[email protected]
>
29
*/
30
#ifndef DRM_FB_HELPER_H
31
#define DRM_FB_HELPER_H
32
33
struct
drm_fb_helper
;
34
35
#include <
linux/kgdb.h
>
36
37
struct
drm_fb_helper_crtc
{
38
struct
drm_mode_set
mode_set
;
39
struct
drm_display_mode
*
desired_mode
;
40
};
41
42
struct
drm_fb_helper_surface_size
{
43
u32
fb_width
;
44
u32
fb_height
;
45
u32
surface_width
;
46
u32
surface_height
;
47
u32
surface_bpp
;
48
u32
surface_depth
;
49
};
50
51
struct
drm_fb_helper_funcs
{
52
void
(*
gamma_set
)(
struct
drm_crtc
*
crtc
,
u16
red
,
u16
green
,
53
u16
blue
,
int
regno);
54
void
(*
gamma_get
)(
struct
drm_crtc
*
crtc
,
u16
*
red
,
u16
*
green
,
55
u16
*
blue
,
int
regno);
56
57
int
(*
fb_probe
)(
struct
drm_fb_helper
*helper,
58
struct
drm_fb_helper_surface_size
*sizes);
59
};
60
61
struct
drm_fb_helper_connector
{
62
struct
drm_connector
*
connector
;
63
struct
drm_cmdline_mode
cmdline_mode
;
64
};
65
66
struct
drm_fb_helper
{
67
struct
drm_framebuffer
*
fb
;
68
struct
drm_framebuffer
*
saved_fb
;
69
struct
drm_device
*
dev
;
70
struct
drm_display_mode
*
mode
;
71
int
crtc_count
;
72
struct
drm_fb_helper_crtc
*
crtc_info
;
73
int
connector_count
;
74
struct
drm_fb_helper_connector
**
connector_info
;
75
struct
drm_fb_helper_funcs
*
funcs
;
76
struct
fb_info
*
fbdev
;
77
u32
pseudo_palette
[17];
78
struct
list_head
kernel_fb_list
;
79
80
/* we got a hotplug but fbdev wasn't running the console
81
delay until next set_par */
82
bool
delayed_hotplug
;
83
};
84
85
int
drm_fb_helper_single_fb_probe
(
struct
drm_fb_helper
*helper,
86
int
preferred_bpp);
87
88
int
drm_fb_helper_init
(
struct
drm_device
*
dev
,
89
struct
drm_fb_helper
*helper,
int
crtc_count,
90
int
max_conn);
91
void
drm_fb_helper_fini
(
struct
drm_fb_helper
*helper);
92
int
drm_fb_helper_blank
(
int
blank,
struct
fb_info
*
info
);
93
int
drm_fb_helper_pan_display
(
struct
fb_var_screeninfo
*var,
94
struct
fb_info
*
info
);
95
int
drm_fb_helper_set_par
(
struct
fb_info
*
info
);
96
int
drm_fb_helper_check_var
(
struct
fb_var_screeninfo
*var,
97
struct
fb_info
*
info
);
98
int
drm_fb_helper_setcolreg
(
unsigned
regno,
99
unsigned
red
,
100
unsigned
green
,
101
unsigned
blue
,
102
unsigned
transp
,
103
struct
fb_info
*
info
);
104
105
bool
drm_fb_helper_restore_fbdev_mode
(
struct
drm_fb_helper
*fb_helper);
106
void
drm_fb_helper_restore
(
void
);
107
void
drm_fb_helper_fill_var
(
struct
fb_info
*
info
,
struct
drm_fb_helper
*fb_helper,
108
uint32_t
fb_width,
uint32_t
fb_height);
109
void
drm_fb_helper_fill_fix
(
struct
fb_info
*
info
,
uint32_t
pitch,
110
uint32_t
depth
);
111
112
int
drm_fb_helper_setcmap
(
struct
fb_cmap
*cmap,
struct
fb_info
*
info
);
113
114
int
drm_fb_helper_hotplug_event
(
struct
drm_fb_helper
*fb_helper);
115
bool
drm_fb_helper_initial_config
(
struct
drm_fb_helper
*fb_helper,
int
bpp_sel);
116
int
drm_fb_helper_single_add_all_connectors
(
struct
drm_fb_helper
*fb_helper);
117
int
drm_fb_helper_debug_enter
(
struct
fb_info
*
info
);
118
int
drm_fb_helper_debug_leave
(
struct
fb_info
*
info
);
119
120
#endif
Generated on Thu Jan 10 2013 14:50:56 for Linux Kernel by
1.8.2