drm/i915: Move device_info.has_snoop into the static tables
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 6 Sep 2017 10:56:53 +0000 (11:56 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 6 Sep 2017 18:14:44 +0000 (19:14 +0100)
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: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170906105653.3665-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_pci.c
drivers/gpu/drm/i915/intel_device_info.c

index d05aab60c1fb0e19cac28ce5988d33aba4885d17..881b5d6708aa5ec3c89b8da08a510c8670d81254 100644 (file)
@@ -63,6 +63,7 @@
        .hws_needs_physical = 1, \
        .unfenced_needs_alignment = 1, \
        .ring_mask = RENDER_RING, \
+       .has_snoop = true, \
        GEN_DEFAULT_PIPEOFFSETS, \
        CURSOR_OFFSETS
 
@@ -95,6 +96,7 @@ static const struct intel_device_info intel_i865g_info __initconst = {
        .gen = 3, .num_pipes = 2, \
        .has_gmch_display = 1, \
        .ring_mask = RENDER_RING, \
+       .has_snoop = true, \
        GEN_DEFAULT_PIPEOFFSETS, \
        CURSOR_OFFSETS
 
@@ -157,6 +159,7 @@ static const struct intel_device_info intel_pineview_info __initconst = {
        .has_hotplug = 1, \
        .has_gmch_display = 1, \
        .ring_mask = RENDER_RING, \
+       .has_snoop = true, \
        GEN_DEFAULT_PIPEOFFSETS, \
        CURSOR_OFFSETS
 
@@ -197,6 +200,7 @@ static const struct intel_device_info intel_gm45_info __initconst = {
        .has_hotplug = 1, \
        .has_gmbus_irq = 1, \
        .ring_mask = RENDER_RING | BSD_RING, \
+       .has_snoop = true, \
        GEN_DEFAULT_PIPEOFFSETS, \
        CURSOR_OFFSETS
 
@@ -320,6 +324,7 @@ static const struct intel_device_info intel_valleyview_info __initconst = {
        .has_hotplug = 1,
        .has_aliasing_ppgtt = 1,
        .has_full_ppgtt = 1,
+       .has_snoop = true,
        .ring_mask = RENDER_RING | BSD_RING | BLT_RING,
        .display_mmio_offset = VLV_DISPLAY_BASE,
        GEN_DEFAULT_PIPEOFFSETS,
@@ -411,6 +416,7 @@ static const struct intel_device_info intel_cherryview_info __initconst = {
        .has_aliasing_ppgtt = 1,
        .has_full_ppgtt = 1,
        .has_reset_engine = 1,
+       .has_snoop = true,
        .display_mmio_offset = VLV_DISPLAY_BASE,
        GEN_CHV_PIPEOFFSETS,
        CURSOR_OFFSETS,
@@ -473,6 +479,7 @@ static const struct intel_device_info intel_skylake_gt4_info __initconst = {
        .has_full_ppgtt = 1, \
        .has_full_48bit_ppgtt = 1, \
        .has_reset_engine = 1, \
+       .has_snoop = true, \
        GEN_DEFAULT_PIPEOFFSETS, \
        IVB_CURSOR_OFFSETS, \
        BDW_COLORS
index 5f91ddc78c7a332c92653651fe983345bdea1a58..b17f7045c8f846d1493c08e392c811a0e2088ae6 100644 (file)
@@ -412,7 +412,7 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
        else if (INTEL_INFO(dev_priv)->gen >= 9)
                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 total: %u\n", hweight8(info->sseu.slice_mask));