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 <airlied@linux.ie>
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 <airlied@linux.ie>
28
* Jesse Barnes <jesse.barnes@intel.com>
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