summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/gma500/psb_intel_drv.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/gma500/psb_intel_drv.h')
-rw-r--r--drivers/gpu/drm/gma500/psb_intel_drv.h44
1 files changed, 19 insertions, 25 deletions
diff --git a/drivers/gpu/drm/gma500/psb_intel_drv.h b/drivers/gpu/drm/gma500/psb_intel_drv.h
index 4dcae421a58d..bde27fdb41bf 100644
--- a/drivers/gpu/drm/gma500/psb_intel_drv.h
+++ b/drivers/gpu/drm/gma500/psb_intel_drv.h
@@ -24,6 +24,7 @@
24#include <drm/drm_crtc.h> 24#include <drm/drm_crtc.h>
25#include <drm/drm_crtc_helper.h> 25#include <drm/drm_crtc_helper.h>
26#include <linux/gpio.h> 26#include <linux/gpio.h>
27#include "gma_display.h"
27 28
28/* 29/*
29 * Display related stuff 30 * Display related stuff
@@ -116,11 +117,11 @@ struct psb_intel_i2c_chan {
116 u8 slave_addr; 117 u8 slave_addr;
117}; 118};
118 119
119struct psb_intel_encoder { 120struct gma_encoder {
120 struct drm_encoder base; 121 struct drm_encoder base;
121 int type; 122 int type;
122 bool needs_tv_clock; 123 bool needs_tv_clock;
123 void (*hot_plug)(struct psb_intel_encoder *); 124 void (*hot_plug)(struct gma_encoder *);
124 int crtc_mask; 125 int crtc_mask;
125 int clone_mask; 126 int clone_mask;
126 u32 ddi_select; /* Channel info */ 127 u32 ddi_select; /* Channel info */
@@ -136,9 +137,9 @@ struct psb_intel_encoder {
136 struct psb_intel_i2c_chan *ddc_bus; 137 struct psb_intel_i2c_chan *ddc_bus;
137}; 138};
138 139
139struct psb_intel_connector { 140struct gma_connector {
140 struct drm_connector base; 141 struct drm_connector base;
141 struct psb_intel_encoder *encoder; 142 struct gma_encoder *encoder;
142}; 143};
143 144
144struct psb_intel_crtc_state { 145struct psb_intel_crtc_state {
@@ -161,7 +162,7 @@ struct psb_intel_crtc_state {
161 uint32_t savePalette[256]; 162 uint32_t savePalette[256];
162}; 163};
163 164
164struct psb_intel_crtc { 165struct gma_crtc {
165 struct drm_crtc base; 166 struct drm_crtc base;
166 int pipe; 167 int pipe;
167 int plane; 168 int plane;
@@ -188,14 +189,16 @@ struct psb_intel_crtc {
188 189
189 /* Saved Crtc HW states */ 190 /* Saved Crtc HW states */
190 struct psb_intel_crtc_state *crtc_state; 191 struct psb_intel_crtc_state *crtc_state;
192
193 const struct gma_clock_funcs *clock_funcs;
191}; 194};
192 195
193#define to_psb_intel_crtc(x) \ 196#define to_gma_crtc(x) \
194 container_of(x, struct psb_intel_crtc, base) 197 container_of(x, struct gma_crtc, base)
195#define to_psb_intel_connector(x) \ 198#define to_gma_connector(x) \
196 container_of(x, struct psb_intel_connector, base) 199 container_of(x, struct gma_connector, base)
197#define to_psb_intel_encoder(x) \ 200#define to_gma_encoder(x) \
198 container_of(x, struct psb_intel_encoder, base) 201 container_of(x, struct gma_encoder, base)
199#define to_psb_intel_framebuffer(x) \ 202#define to_psb_intel_framebuffer(x) \
200 container_of(x, struct psb_intel_framebuffer, base) 203 container_of(x, struct psb_intel_framebuffer, base)
201 204
@@ -223,27 +226,18 @@ extern void oaktrail_dsi_init(struct drm_device *dev,
223extern void mid_dsi_init(struct drm_device *dev, 226extern void mid_dsi_init(struct drm_device *dev,
224 struct psb_intel_mode_device *mode_dev, int dsi_num); 227 struct psb_intel_mode_device *mode_dev, int dsi_num);
225 228
226extern void psb_intel_crtc_load_lut(struct drm_crtc *crtc); 229extern struct drm_encoder *gma_best_encoder(struct drm_connector *connector);
227extern void psb_intel_encoder_prepare(struct drm_encoder *encoder); 230extern void gma_connector_attach_encoder(struct gma_connector *connector,
228extern void psb_intel_encoder_commit(struct drm_encoder *encoder); 231 struct gma_encoder *encoder);
229extern void psb_intel_encoder_destroy(struct drm_encoder *encoder);
230 232
231static inline struct psb_intel_encoder *psb_intel_attached_encoder( 233static inline struct gma_encoder *gma_attached_encoder(
232 struct drm_connector *connector) 234 struct drm_connector *connector)
233{ 235{
234 return to_psb_intel_connector(connector)->encoder; 236 return to_gma_connector(connector)->encoder;
235} 237}
236 238
237extern void psb_intel_connector_attach_encoder(
238 struct psb_intel_connector *connector,
239 struct psb_intel_encoder *encoder);
240
241extern struct drm_encoder *psb_intel_best_encoder(struct drm_connector
242 *connector);
243
244extern struct drm_display_mode *psb_intel_crtc_mode_get(struct drm_device *dev, 239extern struct drm_display_mode *psb_intel_crtc_mode_get(struct drm_device *dev,
245 struct drm_crtc *crtc); 240 struct drm_crtc *crtc);
246extern void psb_intel_wait_for_vblank(struct drm_device *dev);
247extern int psb_intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data, 241extern int psb_intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data,
248 struct drm_file *file_priv); 242 struct drm_file *file_priv);
249extern struct drm_crtc *psb_intel_get_crtc_from_pipe(struct drm_device *dev, 243extern struct drm_crtc *psb_intel_get_crtc_from_pipe(struct drm_device *dev,