Commit de6e2eaf authored by Eric Anholt's avatar Eric Anholt Committed by Chris Wilson

drm/i915: Apply B-spec mandated workaround for read flushes on Ironlake.

This is not known to fix any particular bugs we have, but the spec
says to do it, and the BIOS hadn't already set it up on my system.
Signed-off-by: default avatarEric Anholt <eric@anholt.net>
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
parent 629e8941
...@@ -316,6 +316,19 @@ ...@@ -316,6 +316,19 @@
#define ERROR_GEN6 0x040a0 #define ERROR_GEN6 0x040a0
/* GM45+ chicken bits -- debug workaround bits that may be required
* for various sorts of correct behavior. The top 16 bits of each are
* the enables for writing to the corresponding low bit.
*/
#define _3D_CHICKEN 0x02084
#define _3D_CHICKEN2 0x0208c
/* Disables pipelining of read flushes past the SF-WIZ interface.
* Required on all Ironlake steppings according to the B-Spec, but the
* particular danger of not doing so is not specified.
*/
# define _3D_CHICKEN2_WM_READ_PIPELINED (1 << 14)
#define _3D_CHICKEN3 0x02090
#define MI_MODE 0x0209c #define MI_MODE 0x0209c
# define VS_TIMER_DISPATCH (1 << 6) # define VS_TIMER_DISPATCH (1 << 6)
# define MI_FLUSH_ENABLE (1 << 11) # define MI_FLUSH_ENABLE (1 << 11)
......
...@@ -5818,6 +5818,12 @@ void intel_init_clock_gating(struct drm_device *dev) ...@@ -5818,6 +5818,12 @@ void intel_init_clock_gating(struct drm_device *dev)
ILK_DPFC_DIS2 | ILK_DPFC_DIS2 |
ILK_CLK_FBC); ILK_CLK_FBC);
} }
if (IS_GEN5(dev)) {
I915_WRITE(_3D_CHICKEN2,
_3D_CHICKEN2_WM_READ_PIPELINED << 16 |
_3D_CHICKEN2_WM_READ_PIPELINED);
}
return; return;
} else if (IS_G4X(dev)) { } else if (IS_G4X(dev)) {
uint32_t dspclk_gate; uint32_t dspclk_gate;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment