diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-09-16 20:31:36 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-09-16 20:31:36 -0400 |
commit | 7ac3c93e5dd74486ca4f8f0b02ae55182658d2e5 (patch) | |
tree | 08b949c872aefbc0f8e12bdcc4dc82297bdd0f2e /drivers/gpu/drm/i915 | |
parent | 23666a74c9f552bc9cfef20ded1b8b29bedb80c6 (diff) | |
parent | 5698bd757d55b1bb87edd1a9744ab09c142abfc2 (diff) |
Merge 3.6-rc6 into tty-next
This pulls in the fixes in 3.6-rc6
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r-- | drivers/gpu/drm/i915/i915_dma.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_gtt.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 18 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 11 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_lvds.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_panel.c | 31 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_sdvo.c | 15 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_sprite.c | 4 |
10 files changed, 60 insertions, 36 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 9cf7dfe022b9..914c0dfabe60 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
@@ -1587,6 +1587,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) | |||
1587 | spin_lock_init(&dev_priv->irq_lock); | 1587 | spin_lock_init(&dev_priv->irq_lock); |
1588 | spin_lock_init(&dev_priv->error_lock); | 1588 | spin_lock_init(&dev_priv->error_lock); |
1589 | spin_lock_init(&dev_priv->rps_lock); | 1589 | spin_lock_init(&dev_priv->rps_lock); |
1590 | spin_lock_init(&dev_priv->dpio_lock); | ||
1590 | 1591 | ||
1591 | if (IS_IVYBRIDGE(dev) || IS_HASWELL(dev)) | 1592 | if (IS_IVYBRIDGE(dev) || IS_HASWELL(dev)) |
1592 | dev_priv->num_pipe = 3; | 1593 | dev_priv->num_pipe = 3; |
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index d9a5372ec56f..60815b861ec2 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c | |||
@@ -72,7 +72,7 @@ int i915_gem_init_aliasing_ppgtt(struct drm_device *dev) | |||
72 | /* ppgtt PDEs reside in the global gtt pagetable, which has 512*1024 | 72 | /* ppgtt PDEs reside in the global gtt pagetable, which has 512*1024 |
73 | * entries. For aliasing ppgtt support we just steal them at the end for | 73 | * entries. For aliasing ppgtt support we just steal them at the end for |
74 | * now. */ | 74 | * now. */ |
75 | first_pd_entry_in_global_pt = 512*1024 - I915_PPGTT_PD_ENTRIES; | 75 | first_pd_entry_in_global_pt = dev_priv->mm.gtt->gtt_total_entries - I915_PPGTT_PD_ENTRIES; |
76 | 76 | ||
77 | ppgtt = kzalloc(sizeof(*ppgtt), GFP_KERNEL); | 77 | ppgtt = kzalloc(sizeof(*ppgtt), GFP_KERNEL); |
78 | if (!ppgtt) | 78 | if (!ppgtt) |
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 8a3828528b9d..5249640cce13 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c | |||
@@ -2700,9 +2700,6 @@ void intel_irq_init(struct drm_device *dev) | |||
2700 | dev->driver->irq_handler = i8xx_irq_handler; | 2700 | dev->driver->irq_handler = i8xx_irq_handler; |
2701 | dev->driver->irq_uninstall = i8xx_irq_uninstall; | 2701 | dev->driver->irq_uninstall = i8xx_irq_uninstall; |
2702 | } else if (INTEL_INFO(dev)->gen == 3) { | 2702 | } else if (INTEL_INFO(dev)->gen == 3) { |
2703 | /* IIR "flip pending" means done if this bit is set */ | ||
2704 | I915_WRITE(ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE)); | ||
2705 | |||
2706 | dev->driver->irq_preinstall = i915_irq_preinstall; | 2703 | dev->driver->irq_preinstall = i915_irq_preinstall; |
2707 | dev->driver->irq_postinstall = i915_irq_postinstall; | 2704 | dev->driver->irq_postinstall = i915_irq_postinstall; |
2708 | dev->driver->irq_uninstall = i915_irq_uninstall; | 2705 | dev->driver->irq_uninstall = i915_irq_uninstall; |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index a69a3d0d3acf..bc2ad348e5d8 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -1376,7 +1376,8 @@ static void assert_pch_dp_disabled(struct drm_i915_private *dev_priv, | |||
1376 | "PCH DP (0x%08x) enabled on transcoder %c, should be disabled\n", | 1376 | "PCH DP (0x%08x) enabled on transcoder %c, should be disabled\n", |
1377 | reg, pipe_name(pipe)); | 1377 | reg, pipe_name(pipe)); |
1378 | 1378 | ||
1379 | WARN(HAS_PCH_IBX(dev_priv->dev) && (val & SDVO_PIPE_B_SELECT), | 1379 | WARN(HAS_PCH_IBX(dev_priv->dev) && (val & DP_PORT_EN) == 0 |
1380 | && (val & DP_PIPEB_SELECT), | ||
1380 | "IBX PCH dp port still using transcoder B\n"); | 1381 | "IBX PCH dp port still using transcoder B\n"); |
1381 | } | 1382 | } |
1382 | 1383 | ||
@@ -1384,11 +1385,12 @@ static void assert_pch_hdmi_disabled(struct drm_i915_private *dev_priv, | |||
1384 | enum pipe pipe, int reg) | 1385 | enum pipe pipe, int reg) |
1385 | { | 1386 | { |
1386 | u32 val = I915_READ(reg); | 1387 | u32 val = I915_READ(reg); |
1387 | WARN(hdmi_pipe_enabled(dev_priv, val, pipe), | 1388 | WARN(hdmi_pipe_enabled(dev_priv, pipe, val), |
1388 | "PCH HDMI (0x%08x) enabled on transcoder %c, should be disabled\n", | 1389 | "PCH HDMI (0x%08x) enabled on transcoder %c, should be disabled\n", |
1389 | reg, pipe_name(pipe)); | 1390 | reg, pipe_name(pipe)); |
1390 | 1391 | ||
1391 | WARN(HAS_PCH_IBX(dev_priv->dev) && (val & SDVO_PIPE_B_SELECT), | 1392 | WARN(HAS_PCH_IBX(dev_priv->dev) && (val & PORT_ENABLE) == 0 |
1393 | && (val & SDVO_PIPE_B_SELECT), | ||
1392 | "IBX PCH hdmi port still using transcoder B\n"); | 1394 | "IBX PCH hdmi port still using transcoder B\n"); |
1393 | } | 1395 | } |
1394 | 1396 | ||
@@ -1404,13 +1406,13 @@ static void assert_pch_ports_disabled(struct drm_i915_private *dev_priv, | |||
1404 | 1406 | ||
1405 | reg = PCH_ADPA; | 1407 | reg = PCH_ADPA; |
1406 | val = I915_READ(reg); | 1408 | val = I915_READ(reg); |
1407 | WARN(adpa_pipe_enabled(dev_priv, val, pipe), | 1409 | WARN(adpa_pipe_enabled(dev_priv, pipe, val), |
1408 | "PCH VGA enabled on transcoder %c, should be disabled\n", | 1410 | "PCH VGA enabled on transcoder %c, should be disabled\n", |
1409 | pipe_name(pipe)); | 1411 | pipe_name(pipe)); |
1410 | 1412 | ||
1411 | reg = PCH_LVDS; | 1413 | reg = PCH_LVDS; |
1412 | val = I915_READ(reg); | 1414 | val = I915_READ(reg); |
1413 | WARN(lvds_pipe_enabled(dev_priv, val, pipe), | 1415 | WARN(lvds_pipe_enabled(dev_priv, pipe, val), |
1414 | "PCH LVDS enabled on transcoder %c, should be disabled\n", | 1416 | "PCH LVDS enabled on transcoder %c, should be disabled\n", |
1415 | pipe_name(pipe)); | 1417 | pipe_name(pipe)); |
1416 | 1418 | ||
@@ -1872,7 +1874,7 @@ static void disable_pch_hdmi(struct drm_i915_private *dev_priv, | |||
1872 | enum pipe pipe, int reg) | 1874 | enum pipe pipe, int reg) |
1873 | { | 1875 | { |
1874 | u32 val = I915_READ(reg); | 1876 | u32 val = I915_READ(reg); |
1875 | if (hdmi_pipe_enabled(dev_priv, val, pipe)) { | 1877 | if (hdmi_pipe_enabled(dev_priv, pipe, val)) { |
1876 | DRM_DEBUG_KMS("Disabling pch HDMI %x on pipe %d\n", | 1878 | DRM_DEBUG_KMS("Disabling pch HDMI %x on pipe %d\n", |
1877 | reg, pipe); | 1879 | reg, pipe); |
1878 | I915_WRITE(reg, val & ~PORT_ENABLE); | 1880 | I915_WRITE(reg, val & ~PORT_ENABLE); |
@@ -1894,12 +1896,12 @@ static void intel_disable_pch_ports(struct drm_i915_private *dev_priv, | |||
1894 | 1896 | ||
1895 | reg = PCH_ADPA; | 1897 | reg = PCH_ADPA; |
1896 | val = I915_READ(reg); | 1898 | val = I915_READ(reg); |
1897 | if (adpa_pipe_enabled(dev_priv, val, pipe)) | 1899 | if (adpa_pipe_enabled(dev_priv, pipe, val)) |
1898 | I915_WRITE(reg, val & ~ADPA_DAC_ENABLE); | 1900 | I915_WRITE(reg, val & ~ADPA_DAC_ENABLE); |
1899 | 1901 | ||
1900 | reg = PCH_LVDS; | 1902 | reg = PCH_LVDS; |
1901 | val = I915_READ(reg); | 1903 | val = I915_READ(reg); |
1902 | if (lvds_pipe_enabled(dev_priv, val, pipe)) { | 1904 | if (lvds_pipe_enabled(dev_priv, pipe, val)) { |
1903 | DRM_DEBUG_KMS("disable lvds on pipe %d val 0x%08x\n", pipe, val); | 1905 | DRM_DEBUG_KMS("disable lvds on pipe %d val 0x%08x\n", pipe, val); |
1904 | I915_WRITE(reg, val & ~LVDS_PORT_EN); | 1906 | I915_WRITE(reg, val & ~LVDS_PORT_EN); |
1905 | POSTING_READ(reg); | 1907 | POSTING_READ(reg); |
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index a6c426afaa7a..ace757af9133 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
@@ -2533,14 +2533,10 @@ intel_dp_init(struct drm_device *dev, int output_reg) | |||
2533 | break; | 2533 | break; |
2534 | } | 2534 | } |
2535 | 2535 | ||
2536 | intel_dp_i2c_init(intel_dp, intel_connector, name); | ||
2537 | |||
2538 | /* Cache some DPCD data in the eDP case */ | 2536 | /* Cache some DPCD data in the eDP case */ |
2539 | if (is_edp(intel_dp)) { | 2537 | if (is_edp(intel_dp)) { |
2540 | bool ret; | ||
2541 | struct edp_power_seq cur, vbt; | 2538 | struct edp_power_seq cur, vbt; |
2542 | u32 pp_on, pp_off, pp_div; | 2539 | u32 pp_on, pp_off, pp_div; |
2543 | struct edid *edid; | ||
2544 | 2540 | ||
2545 | pp_on = I915_READ(PCH_PP_ON_DELAYS); | 2541 | pp_on = I915_READ(PCH_PP_ON_DELAYS); |
2546 | pp_off = I915_READ(PCH_PP_OFF_DELAYS); | 2542 | pp_off = I915_READ(PCH_PP_OFF_DELAYS); |
@@ -2591,6 +2587,13 @@ intel_dp_init(struct drm_device *dev, int output_reg) | |||
2591 | 2587 | ||
2592 | DRM_DEBUG_KMS("backlight on delay %d, off delay %d\n", | 2588 | DRM_DEBUG_KMS("backlight on delay %d, off delay %d\n", |
2593 | intel_dp->backlight_on_delay, intel_dp->backlight_off_delay); | 2589 | intel_dp->backlight_on_delay, intel_dp->backlight_off_delay); |
2590 | } | ||
2591 | |||
2592 | intel_dp_i2c_init(intel_dp, intel_connector, name); | ||
2593 | |||
2594 | if (is_edp(intel_dp)) { | ||
2595 | bool ret; | ||
2596 | struct edid *edid; | ||
2594 | 2597 | ||
2595 | ironlake_edp_panel_vdd_on(intel_dp); | 2598 | ironlake_edp_panel_vdd_on(intel_dp); |
2596 | ret = intel_dp_get_dpcd(intel_dp); | 2599 | ret = intel_dp_get_dpcd(intel_dp); |
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c index e05c0d3e3440..e9a6f6aaed85 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c | |||
@@ -780,6 +780,14 @@ static const struct dmi_system_id intel_no_lvds[] = { | |||
780 | DMI_MATCH(DMI_BOARD_NAME, "ZBOXSD-ID12/ID13"), | 780 | DMI_MATCH(DMI_BOARD_NAME, "ZBOXSD-ID12/ID13"), |
781 | }, | 781 | }, |
782 | }, | 782 | }, |
783 | { | ||
784 | .callback = intel_no_lvds_dmi_callback, | ||
785 | .ident = "Gigabyte GA-D525TUD", | ||
786 | .matches = { | ||
787 | DMI_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co., Ltd."), | ||
788 | DMI_MATCH(DMI_BOARD_NAME, "D525TUD"), | ||
789 | }, | ||
790 | }, | ||
783 | 791 | ||
784 | { } /* terminating entry */ | 792 | { } /* terminating entry */ |
785 | }; | 793 | }; |
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c index 3df4f5fa892a..e019b2369861 100644 --- a/drivers/gpu/drm/i915/intel_panel.c +++ b/drivers/gpu/drm/i915/intel_panel.c | |||
@@ -162,19 +162,12 @@ static u32 i915_read_blc_pwm_ctl(struct drm_i915_private *dev_priv) | |||
162 | return val; | 162 | return val; |
163 | } | 163 | } |
164 | 164 | ||
165 | u32 intel_panel_get_max_backlight(struct drm_device *dev) | 165 | static u32 _intel_panel_get_max_backlight(struct drm_device *dev) |
166 | { | 166 | { |
167 | struct drm_i915_private *dev_priv = dev->dev_private; | 167 | struct drm_i915_private *dev_priv = dev->dev_private; |
168 | u32 max; | 168 | u32 max; |
169 | 169 | ||
170 | max = i915_read_blc_pwm_ctl(dev_priv); | 170 | max = i915_read_blc_pwm_ctl(dev_priv); |
171 | if (max == 0) { | ||
172 | /* XXX add code here to query mode clock or hardware clock | ||
173 | * and program max PWM appropriately. | ||
174 | */ | ||
175 | pr_warn_once("fixme: max PWM is zero\n"); | ||
176 | return 1; | ||
177 | } | ||
178 | 171 | ||
179 | if (HAS_PCH_SPLIT(dev)) { | 172 | if (HAS_PCH_SPLIT(dev)) { |
180 | max >>= 16; | 173 | max >>= 16; |
@@ -188,6 +181,22 @@ u32 intel_panel_get_max_backlight(struct drm_device *dev) | |||
188 | max *= 0xff; | 181 | max *= 0xff; |
189 | } | 182 | } |
190 | 183 | ||
184 | return max; | ||
185 | } | ||
186 | |||
187 | u32 intel_panel_get_max_backlight(struct drm_device *dev) | ||
188 | { | ||
189 | u32 max; | ||
190 | |||
191 | max = _intel_panel_get_max_backlight(dev); | ||
192 | if (max == 0) { | ||
193 | /* XXX add code here to query mode clock or hardware clock | ||
194 | * and program max PWM appropriately. | ||
195 | */ | ||
196 | pr_warn_once("fixme: max PWM is zero\n"); | ||
197 | return 1; | ||
198 | } | ||
199 | |||
191 | DRM_DEBUG_DRIVER("max backlight PWM = %d\n", max); | 200 | DRM_DEBUG_DRIVER("max backlight PWM = %d\n", max); |
192 | return max; | 201 | return max; |
193 | } | 202 | } |
@@ -424,7 +433,11 @@ int intel_panel_setup_backlight(struct drm_device *dev) | |||
424 | 433 | ||
425 | memset(&props, 0, sizeof(props)); | 434 | memset(&props, 0, sizeof(props)); |
426 | props.type = BACKLIGHT_RAW; | 435 | props.type = BACKLIGHT_RAW; |
427 | props.max_brightness = intel_panel_get_max_backlight(dev); | 436 | props.max_brightness = _intel_panel_get_max_backlight(dev); |
437 | if (props.max_brightness == 0) { | ||
438 | DRM_ERROR("Failed to get maximum backlight value\n"); | ||
439 | return -ENODEV; | ||
440 | } | ||
428 | dev_priv->backlight = | 441 | dev_priv->backlight = |
429 | backlight_device_register("intel_backlight", | 442 | backlight_device_register("intel_backlight", |
430 | &connector->kdev, dev, | 443 | &connector->kdev, dev, |
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 1881c8c83f0e..ba8a27b1757a 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c | |||
@@ -3672,6 +3672,9 @@ static void gen3_init_clock_gating(struct drm_device *dev) | |||
3672 | 3672 | ||
3673 | if (IS_PINEVIEW(dev)) | 3673 | if (IS_PINEVIEW(dev)) |
3674 | I915_WRITE(ECOSKPD, _MASKED_BIT_ENABLE(ECO_GATING_CX_ONLY)); | 3674 | I915_WRITE(ECOSKPD, _MASKED_BIT_ENABLE(ECO_GATING_CX_ONLY)); |
3675 | |||
3676 | /* IIR "flip pending" means done if this bit is set */ | ||
3677 | I915_WRITE(ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE)); | ||
3675 | } | 3678 | } |
3676 | 3679 | ||
3677 | static void i85x_init_clock_gating(struct drm_device *dev) | 3680 | static void i85x_init_clock_gating(struct drm_device *dev) |
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c index d81bb0bf2885..123afd357611 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c | |||
@@ -2573,7 +2573,6 @@ bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, bool is_sdvob) | |||
2573 | hotplug_mask = intel_sdvo->is_sdvob ? | 2573 | hotplug_mask = intel_sdvo->is_sdvob ? |
2574 | SDVOB_HOTPLUG_INT_STATUS_I915 : SDVOC_HOTPLUG_INT_STATUS_I915; | 2574 | SDVOB_HOTPLUG_INT_STATUS_I915 : SDVOC_HOTPLUG_INT_STATUS_I915; |
2575 | } | 2575 | } |
2576 | dev_priv->hotplug_supported_mask |= hotplug_mask; | ||
2577 | 2576 | ||
2578 | drm_encoder_helper_add(&intel_encoder->base, &intel_sdvo_helper_funcs); | 2577 | drm_encoder_helper_add(&intel_encoder->base, &intel_sdvo_helper_funcs); |
2579 | 2578 | ||
@@ -2581,14 +2580,6 @@ bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, bool is_sdvob) | |||
2581 | if (!intel_sdvo_get_capabilities(intel_sdvo, &intel_sdvo->caps)) | 2580 | if (!intel_sdvo_get_capabilities(intel_sdvo, &intel_sdvo->caps)) |
2582 | goto err; | 2581 | goto err; |
2583 | 2582 | ||
2584 | /* Set up hotplug command - note paranoia about contents of reply. | ||
2585 | * We assume that the hardware is in a sane state, and only touch | ||
2586 | * the bits we think we understand. | ||
2587 | */ | ||
2588 | intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_ACTIVE_HOT_PLUG, | ||
2589 | &intel_sdvo->hotplug_active, 2); | ||
2590 | intel_sdvo->hotplug_active[0] &= ~0x3; | ||
2591 | |||
2592 | if (intel_sdvo_output_setup(intel_sdvo, | 2583 | if (intel_sdvo_output_setup(intel_sdvo, |
2593 | intel_sdvo->caps.output_flags) != true) { | 2584 | intel_sdvo->caps.output_flags) != true) { |
2594 | DRM_DEBUG_KMS("SDVO output failed to setup on %s\n", | 2585 | DRM_DEBUG_KMS("SDVO output failed to setup on %s\n", |
@@ -2596,6 +2587,12 @@ bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, bool is_sdvob) | |||
2596 | goto err; | 2587 | goto err; |
2597 | } | 2588 | } |
2598 | 2589 | ||
2590 | /* Only enable the hotplug irq if we need it, to work around noisy | ||
2591 | * hotplug lines. | ||
2592 | */ | ||
2593 | if (intel_sdvo->hotplug_active[0]) | ||
2594 | dev_priv->hotplug_supported_mask |= hotplug_mask; | ||
2595 | |||
2599 | intel_sdvo_select_ddc_bus(dev_priv, intel_sdvo, sdvo_reg); | 2596 | intel_sdvo_select_ddc_bus(dev_priv, intel_sdvo, sdvo_reg); |
2600 | 2597 | ||
2601 | /* Set the input timing to the screen. Assume always input 0. */ | 2598 | /* Set the input timing to the screen. Assume always input 0. */ |
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c index cc8df4de2d92..7644f31a3778 100644 --- a/drivers/gpu/drm/i915/intel_sprite.c +++ b/drivers/gpu/drm/i915/intel_sprite.c | |||
@@ -60,11 +60,11 @@ ivb_update_plane(struct drm_plane *plane, struct drm_framebuffer *fb, | |||
60 | 60 | ||
61 | switch (fb->pixel_format) { | 61 | switch (fb->pixel_format) { |
62 | case DRM_FORMAT_XBGR8888: | 62 | case DRM_FORMAT_XBGR8888: |
63 | sprctl |= SPRITE_FORMAT_RGBX888; | 63 | sprctl |= SPRITE_FORMAT_RGBX888 | SPRITE_RGB_ORDER_RGBX; |
64 | pixel_size = 4; | 64 | pixel_size = 4; |
65 | break; | 65 | break; |
66 | case DRM_FORMAT_XRGB8888: | 66 | case DRM_FORMAT_XRGB8888: |
67 | sprctl |= SPRITE_FORMAT_RGBX888 | SPRITE_RGB_ORDER_RGBX; | 67 | sprctl |= SPRITE_FORMAT_RGBX888; |
68 | pixel_size = 4; | 68 | pixel_size = 4; |
69 | break; | 69 | break; |
70 | case DRM_FORMAT_YUYV: | 70 | case DRM_FORMAT_YUYV: |