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
gpu
drm
i915
dvo.h
Go to the documentation of this file.
1
/*
2
* Copyright © 2006 Eric Anholt
3
*
4
* Permission to use, copy, modify, distribute, and sell this software and its
5
* documentation for any purpose is hereby granted without fee, provided that
6
* the above copyright notice appear in all copies and that both that copyright
7
* notice and this permission notice appear in supporting documentation, and
8
* that the name of the copyright holders not be used in advertising or
9
* publicity pertaining to distribution of the software without specific,
10
* written prior permission. The copyright holders make no representations
11
* about the suitability of this software for any purpose. It is provided "as
12
* is" without express or implied warranty.
13
*
14
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
20
* OF THIS SOFTWARE.
21
*/
22
23
#ifndef _INTEL_DVO_H
24
#define _INTEL_DVO_H
25
26
#include <linux/i2c.h>
27
#include <
drm/drmP.h
>
28
#include <
drm/drm_crtc.h
>
29
#include "
intel_drv.h
"
30
31
struct
intel_dvo_device
{
32
const
char
*
name
;
33
int
type
;
34
/* DVOA/B/C output register */
35
u32
dvo_reg
;
36
/* GPIO register used for i2c bus to control this device */
37
u32
gpio
;
38
int
slave_addr
;
39
40
const
struct
intel_dvo_dev_ops
*
dev_ops
;
41
void
*
dev_priv
;
42
struct
i2c_adapter
*
i2c_bus
;
43
};
44
45
struct
intel_dvo_dev_ops
{
46
/*
47
* Initialize the device at startup time.
48
* Returns NULL if the device does not exist.
49
*/
50
bool
(*
init
)(
struct
intel_dvo_device
*dvo,
51
struct
i2c_adapter
*i2cbus);
52
53
/*
54
* Called to allow the output a chance to create properties after the
55
* RandR objects have been created.
56
*/
57
void
(*
create_resources
)(
struct
intel_dvo_device
*dvo);
58
59
/*
60
* Turn on/off output.
61
*
62
* Because none of our dvo drivers support an intermediate power levels,
63
* we don't expose this in the interfac.
64
*/
65
void
(*
dpms
)(
struct
intel_dvo_device
*dvo,
bool
enable
);
66
67
/*
68
* Callback for testing a video mode for a given output.
69
*
70
* This function should only check for cases where a mode can't
71
* be supported on the output specifically, and not represent
72
* generic CRTC limitations.
73
*
74
* \return MODE_OK if the mode is valid, or another MODE_* otherwise.
75
*/
76
int
(*
mode_valid
)(
struct
intel_dvo_device
*dvo,
77
struct
drm_display_mode
*
mode
);
78
79
/*
80
* Callback to adjust the mode to be set in the CRTC.
81
*
82
* This allows an output to adjust the clock or even the entire set of
83
* timings, which is used for panels with fixed timings or for
84
* buses with clock limitations.
85
*/
86
bool
(*
mode_fixup
)(
struct
intel_dvo_device
*dvo,
87
const
struct
drm_display_mode
*
mode
,
88
struct
drm_display_mode
*adjusted_mode);
89
90
/*
91
* Callback for preparing mode changes on an output
92
*/
93
void
(*
prepare
)(
struct
intel_dvo_device
*dvo);
94
95
/*
96
* Callback for committing mode changes on an output
97
*/
98
void
(*
commit
)(
struct
intel_dvo_device
*dvo);
99
100
/*
101
* Callback for setting up a video mode after fixups have been made.
102
*
103
* This is only called while the output is disabled. The dpms callback
104
* must be all that's necessary for the output, to turn the output on
105
* after this function is called.
106
*/
107
void
(*
mode_set
)(
struct
intel_dvo_device
*dvo,
108
struct
drm_display_mode
*
mode
,
109
struct
drm_display_mode
*adjusted_mode);
110
111
/*
112
* Probe for a connected output, and return detect_status.
113
*/
114
enum
drm_connector_status
(*
detect
)(
struct
intel_dvo_device
*dvo);
115
116
/*
117
* Probe the current hw status, returning true if the connected output
118
* is active.
119
*/
120
bool
(*
get_hw_state
)(
struct
intel_dvo_device
*
dev
);
121
129
struct
drm_display_mode
*(*get_modes)(
struct
intel_dvo_device
*dvo);
130
134
void
(*
destroy
) (
struct
intel_dvo_device
*dvo);
135
139
void
(*
dump_regs
)(
struct
intel_dvo_device
*dvo);
140
};
141
142
extern
struct
intel_dvo_dev_ops
sil164_ops
;
143
extern
struct
intel_dvo_dev_ops
ch7xxx_ops
;
144
extern
struct
intel_dvo_dev_ops
ivch_ops
;
145
extern
struct
intel_dvo_dev_ops
tfp410_ops
;
146
extern
struct
intel_dvo_dev_ops
ch7017_ops
;
147
extern
struct
intel_dvo_dev_ops
ns2501_ops
;
148
149
#endif
/* _INTEL_DVO_H */
Generated on Thu Jan 10 2013 13:31:41 for Linux Kernel by
1.8.2