diff options
author | Alan Cox <alan@linux.intel.com> | 2012-04-25 09:38:07 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-04-27 04:24:16 -0400 |
commit | d235e64a4367ad3ff204309490c4325b4f89b25b (patch) | |
tree | 33e84fdfc41628f78c5183f04e450d396c1cbc38 /drivers/gpu/drm/gma500/framebuffer.c | |
parent | b60bfb6585bcda7bc7abd32ce9a14d4c8a6acc8e (diff) |
cdv: continue synching up with updated reference code
In particular clean up the errata handling and correct the crtc masks. We do
this a bit differently using our device abstraction for neatness.
This doesn't address the ACPI opregion and hotplug plumbing, nor the IRQ related
changes that will need. It touches on backlight init but the full backlight
support is not in this change set.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/gma500/framebuffer.c')
-rw-r--r-- | drivers/gpu/drm/gma500/framebuffer.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c index c2cf6bf217dd..c9fe4bdeb681 100644 --- a/drivers/gpu/drm/gma500/framebuffer.c +++ b/drivers/gpu/drm/gma500/framebuffer.c | |||
@@ -748,10 +748,7 @@ static void psb_setup_outputs(struct drm_device *dev) | |||
748 | clone_mask = (1 << INTEL_OUTPUT_SDVO); | 748 | clone_mask = (1 << INTEL_OUTPUT_SDVO); |
749 | break; | 749 | break; |
750 | case INTEL_OUTPUT_LVDS: | 750 | case INTEL_OUTPUT_LVDS: |
751 | if (IS_MRST(dev)) | 751 | crtc_mask = dev_priv->ops->lvds_mask; |
752 | crtc_mask = (1 << 0); | ||
753 | else | ||
754 | crtc_mask = (1 << 1); | ||
755 | clone_mask = (1 << INTEL_OUTPUT_LVDS); | 752 | clone_mask = (1 << INTEL_OUTPUT_LVDS); |
756 | break; | 753 | break; |
757 | case INTEL_OUTPUT_MIPI: | 754 | case INTEL_OUTPUT_MIPI: |
@@ -763,10 +760,7 @@ static void psb_setup_outputs(struct drm_device *dev) | |||
763 | clone_mask = (1 << INTEL_OUTPUT_MIPI2); | 760 | clone_mask = (1 << INTEL_OUTPUT_MIPI2); |
764 | break; | 761 | break; |
765 | case INTEL_OUTPUT_HDMI: | 762 | case INTEL_OUTPUT_HDMI: |
766 | if (IS_MFLD(dev)) | 763 | crtc_mask = dev_priv->ops->hdmi_mask; |
767 | crtc_mask = (1 << 1); | ||
768 | else | ||
769 | crtc_mask = (1 << 0); | ||
770 | clone_mask = (1 << INTEL_OUTPUT_HDMI); | 764 | clone_mask = (1 << INTEL_OUTPUT_HDMI); |
771 | break; | 765 | break; |
772 | } | 766 | } |
@@ -802,6 +796,9 @@ void psb_modeset_init(struct drm_device *dev) | |||
802 | dev->mode_config.max_height = 2048; | 796 | dev->mode_config.max_height = 2048; |
803 | 797 | ||
804 | psb_setup_outputs(dev); | 798 | psb_setup_outputs(dev); |
799 | |||
800 | if (dev_priv->ops->errata) | ||
801 | dev_priv->ops->errata(dev); | ||
805 | } | 802 | } |
806 | 803 | ||
807 | void psb_modeset_cleanup(struct drm_device *dev) | 804 | void psb_modeset_cleanup(struct drm_device *dev) |