Commit 5d95c248 authored by Chris Wilson's avatar Chris Wilson

drm/i915: Move device_info.has_snoop into the static tables

Currently we define any !llc machine as using snoop instead. However,
some platforms run into trouble using snoop that we would like to
disable, and to do so easily we want to be able to use the static
device_info tables.

v2: Leave the old snoop = !llc as a warning for the time being to check
that all stanzas are filled as either llc or snoop.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170906105653.3665-1-chris@chris-wilson.co.uk
parent 90cad095
...@@ -63,6 +63,7 @@ ...@@ -63,6 +63,7 @@
.hws_needs_physical = 1, \ .hws_needs_physical = 1, \
.unfenced_needs_alignment = 1, \ .unfenced_needs_alignment = 1, \
.ring_mask = RENDER_RING, \ .ring_mask = RENDER_RING, \
.has_snoop = true, \
GEN_DEFAULT_PIPEOFFSETS, \ GEN_DEFAULT_PIPEOFFSETS, \
CURSOR_OFFSETS CURSOR_OFFSETS
...@@ -95,6 +96,7 @@ static const struct intel_device_info intel_i865g_info __initconst = { ...@@ -95,6 +96,7 @@ static const struct intel_device_info intel_i865g_info __initconst = {
.gen = 3, .num_pipes = 2, \ .gen = 3, .num_pipes = 2, \
.has_gmch_display = 1, \ .has_gmch_display = 1, \
.ring_mask = RENDER_RING, \ .ring_mask = RENDER_RING, \
.has_snoop = true, \
GEN_DEFAULT_PIPEOFFSETS, \ GEN_DEFAULT_PIPEOFFSETS, \
CURSOR_OFFSETS CURSOR_OFFSETS
...@@ -157,6 +159,7 @@ static const struct intel_device_info intel_pineview_info __initconst = { ...@@ -157,6 +159,7 @@ static const struct intel_device_info intel_pineview_info __initconst = {
.has_hotplug = 1, \ .has_hotplug = 1, \
.has_gmch_display = 1, \ .has_gmch_display = 1, \
.ring_mask = RENDER_RING, \ .ring_mask = RENDER_RING, \
.has_snoop = true, \
GEN_DEFAULT_PIPEOFFSETS, \ GEN_DEFAULT_PIPEOFFSETS, \
CURSOR_OFFSETS CURSOR_OFFSETS
...@@ -197,6 +200,7 @@ static const struct intel_device_info intel_gm45_info __initconst = { ...@@ -197,6 +200,7 @@ static const struct intel_device_info intel_gm45_info __initconst = {
.has_hotplug = 1, \ .has_hotplug = 1, \
.has_gmbus_irq = 1, \ .has_gmbus_irq = 1, \
.ring_mask = RENDER_RING | BSD_RING, \ .ring_mask = RENDER_RING | BSD_RING, \
.has_snoop = true, \
GEN_DEFAULT_PIPEOFFSETS, \ GEN_DEFAULT_PIPEOFFSETS, \
CURSOR_OFFSETS CURSOR_OFFSETS
...@@ -320,6 +324,7 @@ static const struct intel_device_info intel_valleyview_info __initconst = { ...@@ -320,6 +324,7 @@ static const struct intel_device_info intel_valleyview_info __initconst = {
.has_hotplug = 1, .has_hotplug = 1,
.has_aliasing_ppgtt = 1, .has_aliasing_ppgtt = 1,
.has_full_ppgtt = 1, .has_full_ppgtt = 1,
.has_snoop = true,
.ring_mask = RENDER_RING | BSD_RING | BLT_RING, .ring_mask = RENDER_RING | BSD_RING | BLT_RING,
.display_mmio_offset = VLV_DISPLAY_BASE, .display_mmio_offset = VLV_DISPLAY_BASE,
GEN_DEFAULT_PIPEOFFSETS, GEN_DEFAULT_PIPEOFFSETS,
...@@ -411,6 +416,7 @@ static const struct intel_device_info intel_cherryview_info __initconst = { ...@@ -411,6 +416,7 @@ static const struct intel_device_info intel_cherryview_info __initconst = {
.has_aliasing_ppgtt = 1, .has_aliasing_ppgtt = 1,
.has_full_ppgtt = 1, .has_full_ppgtt = 1,
.has_reset_engine = 1, .has_reset_engine = 1,
.has_snoop = true,
.display_mmio_offset = VLV_DISPLAY_BASE, .display_mmio_offset = VLV_DISPLAY_BASE,
GEN_CHV_PIPEOFFSETS, GEN_CHV_PIPEOFFSETS,
CURSOR_OFFSETS, CURSOR_OFFSETS,
...@@ -473,6 +479,7 @@ static const struct intel_device_info intel_skylake_gt4_info __initconst = { ...@@ -473,6 +479,7 @@ static const struct intel_device_info intel_skylake_gt4_info __initconst = {
.has_full_ppgtt = 1, \ .has_full_ppgtt = 1, \
.has_full_48bit_ppgtt = 1, \ .has_full_48bit_ppgtt = 1, \
.has_reset_engine = 1, \ .has_reset_engine = 1, \
.has_snoop = true, \
GEN_DEFAULT_PIPEOFFSETS, \ GEN_DEFAULT_PIPEOFFSETS, \
IVB_CURSOR_OFFSETS, \ IVB_CURSOR_OFFSETS, \
BDW_COLORS BDW_COLORS
......
...@@ -412,7 +412,7 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv) ...@@ -412,7 +412,7 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
else if (INTEL_INFO(dev_priv)->gen >= 9) else if (INTEL_INFO(dev_priv)->gen >= 9)
gen9_sseu_info_init(dev_priv); gen9_sseu_info_init(dev_priv);
info->has_snoop = !info->has_llc; WARN_ON(info->has_snoop != !info->has_llc);
DRM_DEBUG_DRIVER("slice mask: %04x\n", info->sseu.slice_mask); DRM_DEBUG_DRIVER("slice mask: %04x\n", info->sseu.slice_mask);
DRM_DEBUG_DRIVER("slice total: %u\n", hweight8(info->sseu.slice_mask)); DRM_DEBUG_DRIVER("slice total: %u\n", hweight8(info->sseu.slice_mask));
......
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