diff options
Diffstat (limited to 'drivers/gpu/drm/gma500/cdv_intel_crt.c')
-rw-r--r-- | drivers/gpu/drm/gma500/cdv_intel_crt.c | 57 |
1 files changed, 27 insertions, 30 deletions
diff --git a/drivers/gpu/drm/gma500/cdv_intel_crt.c b/drivers/gpu/drm/gma500/cdv_intel_crt.c index 7b8386fc3024..661af492173d 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_crt.c +++ b/drivers/gpu/drm/gma500/cdv_intel_crt.c | |||
@@ -95,13 +95,12 @@ static void cdv_intel_crt_mode_set(struct drm_encoder *encoder, | |||
95 | 95 | ||
96 | struct drm_device *dev = encoder->dev; | 96 | struct drm_device *dev = encoder->dev; |
97 | struct drm_crtc *crtc = encoder->crtc; | 97 | struct drm_crtc *crtc = encoder->crtc; |
98 | struct psb_intel_crtc *psb_intel_crtc = | 98 | struct gma_crtc *gma_crtc = to_gma_crtc(crtc); |
99 | to_psb_intel_crtc(crtc); | ||
100 | int dpll_md_reg; | 99 | int dpll_md_reg; |
101 | u32 adpa, dpll_md; | 100 | u32 adpa, dpll_md; |
102 | u32 adpa_reg; | 101 | u32 adpa_reg; |
103 | 102 | ||
104 | if (psb_intel_crtc->pipe == 0) | 103 | if (gma_crtc->pipe == 0) |
105 | dpll_md_reg = DPLL_A_MD; | 104 | dpll_md_reg = DPLL_A_MD; |
106 | else | 105 | else |
107 | dpll_md_reg = DPLL_B_MD; | 106 | dpll_md_reg = DPLL_B_MD; |
@@ -124,7 +123,7 @@ static void cdv_intel_crt_mode_set(struct drm_encoder *encoder, | |||
124 | if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC) | 123 | if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC) |
125 | adpa |= ADPA_VSYNC_ACTIVE_HIGH; | 124 | adpa |= ADPA_VSYNC_ACTIVE_HIGH; |
126 | 125 | ||
127 | if (psb_intel_crtc->pipe == 0) | 126 | if (gma_crtc->pipe == 0) |
128 | adpa |= ADPA_PIPE_A_SELECT; | 127 | adpa |= ADPA_PIPE_A_SELECT; |
129 | else | 128 | else |
130 | adpa |= ADPA_PIPE_B_SELECT; | 129 | adpa |= ADPA_PIPE_B_SELECT; |
@@ -197,10 +196,9 @@ static enum drm_connector_status cdv_intel_crt_detect( | |||
197 | 196 | ||
198 | static void cdv_intel_crt_destroy(struct drm_connector *connector) | 197 | static void cdv_intel_crt_destroy(struct drm_connector *connector) |
199 | { | 198 | { |
200 | struct psb_intel_encoder *psb_intel_encoder = | 199 | struct gma_encoder *gma_encoder = gma_attached_encoder(connector); |
201 | psb_intel_attached_encoder(connector); | ||
202 | 200 | ||
203 | psb_intel_i2c_destroy(psb_intel_encoder->ddc_bus); | 201 | psb_intel_i2c_destroy(gma_encoder->ddc_bus); |
204 | drm_sysfs_connector_remove(connector); | 202 | drm_sysfs_connector_remove(connector); |
205 | drm_connector_cleanup(connector); | 203 | drm_connector_cleanup(connector); |
206 | kfree(connector); | 204 | kfree(connector); |
@@ -208,9 +206,9 @@ static void cdv_intel_crt_destroy(struct drm_connector *connector) | |||
208 | 206 | ||
209 | static int cdv_intel_crt_get_modes(struct drm_connector *connector) | 207 | static int cdv_intel_crt_get_modes(struct drm_connector *connector) |
210 | { | 208 | { |
211 | struct psb_intel_encoder *psb_intel_encoder = | 209 | struct gma_encoder *gma_encoder = gma_attached_encoder(connector); |
212 | psb_intel_attached_encoder(connector); | 210 | return psb_intel_ddc_get_modes(connector, |
213 | return psb_intel_ddc_get_modes(connector, &psb_intel_encoder->ddc_bus->adapter); | 211 | &gma_encoder->ddc_bus->adapter); |
214 | } | 212 | } |
215 | 213 | ||
216 | static int cdv_intel_crt_set_property(struct drm_connector *connector, | 214 | static int cdv_intel_crt_set_property(struct drm_connector *connector, |
@@ -227,8 +225,8 @@ static int cdv_intel_crt_set_property(struct drm_connector *connector, | |||
227 | static const struct drm_encoder_helper_funcs cdv_intel_crt_helper_funcs = { | 225 | static const struct drm_encoder_helper_funcs cdv_intel_crt_helper_funcs = { |
228 | .dpms = cdv_intel_crt_dpms, | 226 | .dpms = cdv_intel_crt_dpms, |
229 | .mode_fixup = cdv_intel_crt_mode_fixup, | 227 | .mode_fixup = cdv_intel_crt_mode_fixup, |
230 | .prepare = psb_intel_encoder_prepare, | 228 | .prepare = gma_encoder_prepare, |
231 | .commit = psb_intel_encoder_commit, | 229 | .commit = gma_encoder_commit, |
232 | .mode_set = cdv_intel_crt_mode_set, | 230 | .mode_set = cdv_intel_crt_mode_set, |
233 | }; | 231 | }; |
234 | 232 | ||
@@ -244,7 +242,7 @@ static const struct drm_connector_helper_funcs | |||
244 | cdv_intel_crt_connector_helper_funcs = { | 242 | cdv_intel_crt_connector_helper_funcs = { |
245 | .mode_valid = cdv_intel_crt_mode_valid, | 243 | .mode_valid = cdv_intel_crt_mode_valid, |
246 | .get_modes = cdv_intel_crt_get_modes, | 244 | .get_modes = cdv_intel_crt_get_modes, |
247 | .best_encoder = psb_intel_best_encoder, | 245 | .best_encoder = gma_best_encoder, |
248 | }; | 246 | }; |
249 | 247 | ||
250 | static void cdv_intel_crt_enc_destroy(struct drm_encoder *encoder) | 248 | static void cdv_intel_crt_enc_destroy(struct drm_encoder *encoder) |
@@ -260,32 +258,31 @@ void cdv_intel_crt_init(struct drm_device *dev, | |||
260 | struct psb_intel_mode_device *mode_dev) | 258 | struct psb_intel_mode_device *mode_dev) |
261 | { | 259 | { |
262 | 260 | ||
263 | struct psb_intel_connector *psb_intel_connector; | 261 | struct gma_connector *gma_connector; |
264 | struct psb_intel_encoder *psb_intel_encoder; | 262 | struct gma_encoder *gma_encoder; |
265 | struct drm_connector *connector; | 263 | struct drm_connector *connector; |
266 | struct drm_encoder *encoder; | 264 | struct drm_encoder *encoder; |
267 | 265 | ||
268 | u32 i2c_reg; | 266 | u32 i2c_reg; |
269 | 267 | ||
270 | psb_intel_encoder = kzalloc(sizeof(struct psb_intel_encoder), GFP_KERNEL); | 268 | gma_encoder = kzalloc(sizeof(struct gma_encoder), GFP_KERNEL); |
271 | if (!psb_intel_encoder) | 269 | if (!gma_encoder) |
272 | return; | 270 | return; |
273 | 271 | ||
274 | psb_intel_connector = kzalloc(sizeof(struct psb_intel_connector), GFP_KERNEL); | 272 | gma_connector = kzalloc(sizeof(struct gma_connector), GFP_KERNEL); |
275 | if (!psb_intel_connector) | 273 | if (!gma_connector) |
276 | goto failed_connector; | 274 | goto failed_connector; |
277 | 275 | ||
278 | connector = &psb_intel_connector->base; | 276 | connector = &gma_connector->base; |
279 | connector->polled = DRM_CONNECTOR_POLL_HPD; | 277 | connector->polled = DRM_CONNECTOR_POLL_HPD; |
280 | drm_connector_init(dev, connector, | 278 | drm_connector_init(dev, connector, |
281 | &cdv_intel_crt_connector_funcs, DRM_MODE_CONNECTOR_VGA); | 279 | &cdv_intel_crt_connector_funcs, DRM_MODE_CONNECTOR_VGA); |
282 | 280 | ||
283 | encoder = &psb_intel_encoder->base; | 281 | encoder = &gma_encoder->base; |
284 | drm_encoder_init(dev, encoder, | 282 | drm_encoder_init(dev, encoder, |
285 | &cdv_intel_crt_enc_funcs, DRM_MODE_ENCODER_DAC); | 283 | &cdv_intel_crt_enc_funcs, DRM_MODE_ENCODER_DAC); |
286 | 284 | ||
287 | psb_intel_connector_attach_encoder(psb_intel_connector, | 285 | gma_connector_attach_encoder(gma_connector, gma_encoder); |
288 | psb_intel_encoder); | ||
289 | 286 | ||
290 | /* Set up the DDC bus. */ | 287 | /* Set up the DDC bus. */ |
291 | i2c_reg = GPIOA; | 288 | i2c_reg = GPIOA; |
@@ -294,15 +291,15 @@ void cdv_intel_crt_init(struct drm_device *dev, | |||
294 | if (dev_priv->crt_ddc_bus != 0) | 291 | if (dev_priv->crt_ddc_bus != 0) |
295 | i2c_reg = dev_priv->crt_ddc_bus; | 292 | i2c_reg = dev_priv->crt_ddc_bus; |
296 | }*/ | 293 | }*/ |
297 | psb_intel_encoder->ddc_bus = psb_intel_i2c_create(dev, | 294 | gma_encoder->ddc_bus = psb_intel_i2c_create(dev, |
298 | i2c_reg, "CRTDDC_A"); | 295 | i2c_reg, "CRTDDC_A"); |
299 | if (!psb_intel_encoder->ddc_bus) { | 296 | if (!gma_encoder->ddc_bus) { |
300 | dev_printk(KERN_ERR, &dev->pdev->dev, "DDC bus registration " | 297 | dev_printk(KERN_ERR, &dev->pdev->dev, "DDC bus registration " |
301 | "failed.\n"); | 298 | "failed.\n"); |
302 | goto failed_ddc; | 299 | goto failed_ddc; |
303 | } | 300 | } |
304 | 301 | ||
305 | psb_intel_encoder->type = INTEL_OUTPUT_ANALOG; | 302 | gma_encoder->type = INTEL_OUTPUT_ANALOG; |
306 | /* | 303 | /* |
307 | psb_intel_output->clone_mask = (1 << INTEL_ANALOG_CLONE_BIT); | 304 | psb_intel_output->clone_mask = (1 << INTEL_ANALOG_CLONE_BIT); |
308 | psb_intel_output->crtc_mask = (1 << 0) | (1 << 1); | 305 | psb_intel_output->crtc_mask = (1 << 0) | (1 << 1); |
@@ -318,10 +315,10 @@ void cdv_intel_crt_init(struct drm_device *dev, | |||
318 | 315 | ||
319 | return; | 316 | return; |
320 | failed_ddc: | 317 | failed_ddc: |
321 | drm_encoder_cleanup(&psb_intel_encoder->base); | 318 | drm_encoder_cleanup(&gma_encoder->base); |
322 | drm_connector_cleanup(&psb_intel_connector->base); | 319 | drm_connector_cleanup(&gma_connector->base); |
323 | kfree(psb_intel_connector); | 320 | kfree(gma_connector); |
324 | failed_connector: | 321 | failed_connector: |
325 | kfree(psb_intel_encoder); | 322 | kfree(gma_encoder); |
326 | return; | 323 | return; |
327 | } | 324 | } |