diff options
Diffstat (limited to 'drivers/gpu/drm/gma500/oaktrail_hdmi.c')
-rw-r--r-- | drivers/gpu/drm/gma500/oaktrail_hdmi.c | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/drivers/gpu/drm/gma500/oaktrail_hdmi.c b/drivers/gpu/drm/gma500/oaktrail_hdmi.c index f036f1fc161e..38153143ed8c 100644 --- a/drivers/gpu/drm/gma500/oaktrail_hdmi.c +++ b/drivers/gpu/drm/gma500/oaktrail_hdmi.c | |||
@@ -155,12 +155,6 @@ static void oaktrail_hdmi_audio_disable(struct drm_device *dev) | |||
155 | HDMI_READ(HDMI_HCR); | 155 | HDMI_READ(HDMI_HCR); |
156 | } | 156 | } |
157 | 157 | ||
158 | static void wait_for_vblank(struct drm_device *dev) | ||
159 | { | ||
160 | /* Wait for 20ms, i.e. one cycle at 50hz. */ | ||
161 | mdelay(20); | ||
162 | } | ||
163 | |||
164 | static unsigned int htotal_calculate(struct drm_display_mode *mode) | 158 | static unsigned int htotal_calculate(struct drm_display_mode *mode) |
165 | { | 159 | { |
166 | u32 htotal, new_crtc_htotal; | 160 | u32 htotal, new_crtc_htotal; |
@@ -372,10 +366,10 @@ int oaktrail_crtc_hdmi_mode_set(struct drm_crtc *crtc, | |||
372 | 366 | ||
373 | REG_WRITE(PCH_PIPEBCONF, pipeconf); | 367 | REG_WRITE(PCH_PIPEBCONF, pipeconf); |
374 | REG_READ(PCH_PIPEBCONF); | 368 | REG_READ(PCH_PIPEBCONF); |
375 | wait_for_vblank(dev); | 369 | gma_wait_for_vblank(dev); |
376 | 370 | ||
377 | REG_WRITE(dspcntr_reg, dspcntr); | 371 | REG_WRITE(dspcntr_reg, dspcntr); |
378 | wait_for_vblank(dev); | 372 | gma_wait_for_vblank(dev); |
379 | 373 | ||
380 | gma_power_end(dev); | 374 | gma_power_end(dev); |
381 | 375 | ||
@@ -459,7 +453,7 @@ void oaktrail_crtc_hdmi_dpms(struct drm_crtc *crtc, int mode) | |||
459 | REG_READ(PCH_PIPEBCONF); | 453 | REG_READ(PCH_PIPEBCONF); |
460 | } | 454 | } |
461 | 455 | ||
462 | wait_for_vblank(dev); | 456 | gma_wait_for_vblank(dev); |
463 | 457 | ||
464 | /* Enable plane */ | 458 | /* Enable plane */ |
465 | temp = REG_READ(DSPBCNTR); | 459 | temp = REG_READ(DSPBCNTR); |
@@ -470,7 +464,7 @@ void oaktrail_crtc_hdmi_dpms(struct drm_crtc *crtc, int mode) | |||
470 | REG_READ(DSPBSURF); | 464 | REG_READ(DSPBSURF); |
471 | } | 465 | } |
472 | 466 | ||
473 | psb_intel_crtc_load_lut(crtc); | 467 | gma_crtc_load_lut(crtc); |
474 | } | 468 | } |
475 | 469 | ||
476 | /* DSPARB */ | 470 | /* DSPARB */ |
@@ -615,16 +609,16 @@ static void oaktrail_hdmi_destroy(struct drm_connector *connector) | |||
615 | static const struct drm_encoder_helper_funcs oaktrail_hdmi_helper_funcs = { | 609 | static const struct drm_encoder_helper_funcs oaktrail_hdmi_helper_funcs = { |
616 | .dpms = oaktrail_hdmi_dpms, | 610 | .dpms = oaktrail_hdmi_dpms, |
617 | .mode_fixup = oaktrail_hdmi_mode_fixup, | 611 | .mode_fixup = oaktrail_hdmi_mode_fixup, |
618 | .prepare = psb_intel_encoder_prepare, | 612 | .prepare = gma_encoder_prepare, |
619 | .mode_set = oaktrail_hdmi_mode_set, | 613 | .mode_set = oaktrail_hdmi_mode_set, |
620 | .commit = psb_intel_encoder_commit, | 614 | .commit = gma_encoder_commit, |
621 | }; | 615 | }; |
622 | 616 | ||
623 | static const struct drm_connector_helper_funcs | 617 | static const struct drm_connector_helper_funcs |
624 | oaktrail_hdmi_connector_helper_funcs = { | 618 | oaktrail_hdmi_connector_helper_funcs = { |
625 | .get_modes = oaktrail_hdmi_get_modes, | 619 | .get_modes = oaktrail_hdmi_get_modes, |
626 | .mode_valid = oaktrail_hdmi_mode_valid, | 620 | .mode_valid = oaktrail_hdmi_mode_valid, |
627 | .best_encoder = psb_intel_best_encoder, | 621 | .best_encoder = gma_best_encoder, |
628 | }; | 622 | }; |
629 | 623 | ||
630 | static const struct drm_connector_funcs oaktrail_hdmi_connector_funcs = { | 624 | static const struct drm_connector_funcs oaktrail_hdmi_connector_funcs = { |
@@ -646,21 +640,21 @@ static const struct drm_encoder_funcs oaktrail_hdmi_enc_funcs = { | |||
646 | void oaktrail_hdmi_init(struct drm_device *dev, | 640 | void oaktrail_hdmi_init(struct drm_device *dev, |
647 | struct psb_intel_mode_device *mode_dev) | 641 | struct psb_intel_mode_device *mode_dev) |
648 | { | 642 | { |
649 | struct psb_intel_encoder *psb_intel_encoder; | 643 | struct gma_encoder *gma_encoder; |
650 | struct psb_intel_connector *psb_intel_connector; | 644 | struct gma_connector *gma_connector; |
651 | struct drm_connector *connector; | 645 | struct drm_connector *connector; |
652 | struct drm_encoder *encoder; | 646 | struct drm_encoder *encoder; |
653 | 647 | ||
654 | psb_intel_encoder = kzalloc(sizeof(struct psb_intel_encoder), GFP_KERNEL); | 648 | gma_encoder = kzalloc(sizeof(struct gma_encoder), GFP_KERNEL); |
655 | if (!psb_intel_encoder) | 649 | if (!gma_encoder) |
656 | return; | 650 | return; |
657 | 651 | ||
658 | psb_intel_connector = kzalloc(sizeof(struct psb_intel_connector), GFP_KERNEL); | 652 | gma_connector = kzalloc(sizeof(struct gma_connector), GFP_KERNEL); |
659 | if (!psb_intel_connector) | 653 | if (!gma_connector) |
660 | goto failed_connector; | 654 | goto failed_connector; |
661 | 655 | ||
662 | connector = &psb_intel_connector->base; | 656 | connector = &gma_connector->base; |
663 | encoder = &psb_intel_encoder->base; | 657 | encoder = &gma_encoder->base; |
664 | drm_connector_init(dev, connector, | 658 | drm_connector_init(dev, connector, |
665 | &oaktrail_hdmi_connector_funcs, | 659 | &oaktrail_hdmi_connector_funcs, |
666 | DRM_MODE_CONNECTOR_DVID); | 660 | DRM_MODE_CONNECTOR_DVID); |
@@ -669,10 +663,9 @@ void oaktrail_hdmi_init(struct drm_device *dev, | |||
669 | &oaktrail_hdmi_enc_funcs, | 663 | &oaktrail_hdmi_enc_funcs, |
670 | DRM_MODE_ENCODER_TMDS); | 664 | DRM_MODE_ENCODER_TMDS); |
671 | 665 | ||
672 | psb_intel_connector_attach_encoder(psb_intel_connector, | 666 | gma_connector_attach_encoder(gma_connector, gma_encoder); |
673 | psb_intel_encoder); | ||
674 | 667 | ||
675 | psb_intel_encoder->type = INTEL_OUTPUT_HDMI; | 668 | gma_encoder->type = INTEL_OUTPUT_HDMI; |
676 | drm_encoder_helper_add(encoder, &oaktrail_hdmi_helper_funcs); | 669 | drm_encoder_helper_add(encoder, &oaktrail_hdmi_helper_funcs); |
677 | drm_connector_helper_add(connector, &oaktrail_hdmi_connector_helper_funcs); | 670 | drm_connector_helper_add(connector, &oaktrail_hdmi_connector_helper_funcs); |
678 | 671 | ||
@@ -685,7 +678,7 @@ void oaktrail_hdmi_init(struct drm_device *dev, | |||
685 | return; | 678 | return; |
686 | 679 | ||
687 | failed_connector: | 680 | failed_connector: |
688 | kfree(psb_intel_encoder); | 681 | kfree(gma_encoder); |
689 | } | 682 | } |
690 | 683 | ||
691 | static DEFINE_PCI_DEVICE_TABLE(hdmi_ids) = { | 684 | static DEFINE_PCI_DEVICE_TABLE(hdmi_ids) = { |