Rather than deriving the platform_mask from the
intel_device_static_info->platform at runtime, prefill it in the static
data.

 baseline.ko drivers/gpu/drm/i915/i915.ko
add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-20 (-20)
Function                                     old     new   delta
i915_driver_load                            5027    5007     -20
Total: Before=1331200, After=1331180, chg -0.00%

Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_drv.c |  2 --
 drivers/gpu/drm/i915/i915_pci.c | 69 ++++++++++++++++++++++-------------------
 2 files changed, 37 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index d47fbada79e6..e3cf7c9721e3 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -899,8 +899,6 @@ static int i915_driver_init_early(struct drm_i915_private 
*dev_priv,
 
        BUILD_BUG_ON(INTEL_MAX_PLATFORMS >
                     sizeof(device_info->platform_mask) * BITS_PER_BYTE);
-       device_info->platform_mask = BIT(device_info->platform);
-
        BUG_ON(device_info->gen > sizeof(device_info->gen_mask) * 
BITS_PER_BYTE);
        spin_lock_init(&dev_priv->irq_lock);
        spin_lock_init(&dev_priv->gpu_error.lock);
diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c
index a75b88f37830..c5edcf24a34b 100644
--- a/drivers/gpu/drm/i915/i915_pci.c
+++ b/drivers/gpu/drm/i915/i915_pci.c
@@ -30,6 +30,7 @@
 #include "i915_selftest.h"
 
 #define GEN(x) .gen = (x), .gen_mask = BIT((x) - 1)
+#define PLATFORM(x) .platform = (x), .platform_mask = BIT(x)
 
 #define GEN_DEFAULT_PIPEOFFSETS \
        .pipe_offsets = { PIPE_A_OFFSET, PIPE_B_OFFSET, \
@@ -79,19 +80,20 @@
 
 static const struct intel_device_static_info intel_i830_info = {
        GEN2_FEATURES,
-       .platform = INTEL_I830,
+       PLATFORM(INTEL_I830),
        .is_mobile = 1, .cursor_needs_physical = 1,
        .num_pipes = 2, /* legal, last one wins */
 };
 
 static const struct intel_device_static_info intel_i845g_info = {
        GEN2_FEATURES,
-       .platform = INTEL_I845G,
+       PLATFORM(INTEL_I845G),
 };
 
 static const struct intel_device_static_info intel_i85x_info = {
        GEN2_FEATURES,
-       .platform = INTEL_I85X, .is_mobile = 1,
+       PLATFORM(INTEL_I85X),
+       .is_mobile = 1,
        .num_pipes = 2, /* legal, last one wins */
        .cursor_needs_physical = 1,
        .has_fbc = 1,
@@ -99,7 +101,7 @@ static const struct intel_device_static_info intel_i85x_info 
= {
 
 static const struct intel_device_static_info intel_i865g_info = {
        GEN2_FEATURES,
-       .platform = INTEL_I865G,
+       PLATFORM(INTEL_I865G),
 };
 
 #define GEN3_FEATURES \
@@ -114,7 +116,8 @@ static const struct intel_device_static_info 
intel_i865g_info = {
 
 static const struct intel_device_static_info intel_i915g_info = {
        GEN3_FEATURES,
-       .platform = INTEL_I915G, .cursor_needs_physical = 1,
+       PLATFORM(INTEL_I915G),
+       .cursor_needs_physical = 1,
        .has_overlay = 1, .overlay_needs_physical = 1,
        .hws_needs_physical = 1,
        .unfenced_needs_alignment = 1,
@@ -122,7 +125,7 @@ static const struct intel_device_static_info 
intel_i915g_info = {
 
 static const struct intel_device_static_info intel_i915gm_info = {
        GEN3_FEATURES,
-       .platform = INTEL_I915GM,
+       PLATFORM(INTEL_I915GM),
        .is_mobile = 1,
        .cursor_needs_physical = 1,
        .has_overlay = 1, .overlay_needs_physical = 1,
@@ -134,7 +137,7 @@ static const struct intel_device_static_info 
intel_i915gm_info = {
 
 static const struct intel_device_static_info intel_i945g_info = {
        GEN3_FEATURES,
-       .platform = INTEL_I945G,
+       PLATFORM(INTEL_I945G),
        .has_hotplug = 1, .cursor_needs_physical = 1,
        .has_overlay = 1, .overlay_needs_physical = 1,
        .hws_needs_physical = 1,
@@ -143,7 +146,8 @@ static const struct intel_device_static_info 
intel_i945g_info = {
 
 static const struct intel_device_static_info intel_i945gm_info = {
        GEN3_FEATURES,
-       .platform = INTEL_I945GM, .is_mobile = 1,
+       PLATFORM(INTEL_I945GM),
+       .is_mobile = 1,
        .has_hotplug = 1, .cursor_needs_physical = 1,
        .has_overlay = 1, .overlay_needs_physical = 1,
        .supports_tv = 1,
@@ -154,14 +158,15 @@ static const struct intel_device_static_info 
intel_i945gm_info = {
 
 static const struct intel_device_static_info intel_g33_info = {
        GEN3_FEATURES,
-       .platform = INTEL_G33,
+       PLATFORM(INTEL_G33),
        .has_hotplug = 1,
        .has_overlay = 1,
 };
 
 static const struct intel_device_static_info intel_pineview_info = {
        GEN3_FEATURES,
-       .platform = INTEL_PINEVIEW, .is_mobile = 1,
+       PLATFORM(INTEL_PINEVIEW),
+       .is_mobile = 1,
        .has_hotplug = 1,
        .has_overlay = 1,
 };
@@ -179,7 +184,7 @@ static const struct intel_device_static_info 
intel_pineview_info = {
 
 static const struct intel_device_static_info intel_i965g_info = {
        GEN4_FEATURES,
-       .platform = INTEL_I965G,
+       PLATFORM(INTEL_I965G),
        .has_overlay = 1,
        .hws_needs_physical = 1,
        .has_snoop = false,
@@ -187,7 +192,7 @@ static const struct intel_device_static_info 
intel_i965g_info = {
 
 static const struct intel_device_static_info intel_i965gm_info = {
        GEN4_FEATURES,
-       .platform = INTEL_I965GM,
+       PLATFORM(INTEL_I965GM),
        .is_mobile = 1, .has_fbc = 1,
        .has_overlay = 1,
        .supports_tv = 1,
@@ -197,13 +202,13 @@ static const struct intel_device_static_info 
intel_i965gm_info = {
 
 static const struct intel_device_static_info intel_g45_info = {
        GEN4_FEATURES,
-       .platform = INTEL_G45,
+       PLATFORM(INTEL_G45),
        .ring_mask = RENDER_RING | BSD_RING,
 };
 
 static const struct intel_device_static_info intel_gm45_info = {
        GEN4_FEATURES,
-       .platform = INTEL_GM45,
+       PLATFORM(INTEL_GM45),
        .is_mobile = 1, .has_fbc = 1,
        .supports_tv = 1,
        .ring_mask = RENDER_RING | BSD_RING,
@@ -223,12 +228,12 @@ static const struct intel_device_static_info 
intel_gm45_info = {
 
 static const struct intel_device_static_info intel_ironlake_d_info = {
        GEN5_FEATURES,
-       .platform = INTEL_IRONLAKE,
+       PLATFORM(INTEL_IRONLAKE),
 };
 
 static const struct intel_device_static_info intel_ironlake_m_info = {
        GEN5_FEATURES,
-       .platform = INTEL_IRONLAKE,
+       PLATFORM(INTEL_IRONLAKE),
        .is_mobile = 1, .has_fbc = 1,
 };
 
@@ -248,7 +253,7 @@ static const struct intel_device_static_info 
intel_ironlake_m_info = {
 
 #define SNB_D_PLATFORM \
        GEN6_FEATURES, \
-       .platform = INTEL_SANDYBRIDGE
+       PLATFORM(INTEL_SANDYBRIDGE)
 
 static const struct intel_device_static_info intel_sandybridge_d_gt1_info = {
        SNB_D_PLATFORM,
@@ -262,7 +267,7 @@ static const struct intel_device_static_info 
intel_sandybridge_d_gt2_info = {
 
 #define SNB_M_PLATFORM \
        GEN6_FEATURES, \
-       .platform = INTEL_SANDYBRIDGE, \
+       PLATFORM(INTEL_SANDYBRIDGE), \
        .is_mobile = 1
 
 
@@ -293,7 +298,7 @@ static const struct intel_device_static_info 
intel_sandybridge_m_gt2_info = {
 
 #define IVB_D_PLATFORM \
        GEN7_FEATURES, \
-       .platform = INTEL_IVYBRIDGE, \
+       PLATFORM(INTEL_IVYBRIDGE), \
        .has_l3_dpf = 1
 
 static const struct intel_device_static_info intel_ivybridge_d_gt1_info = {
@@ -308,7 +313,7 @@ static const struct intel_device_static_info 
intel_ivybridge_d_gt2_info = {
 
 #define IVB_M_PLATFORM \
        GEN7_FEATURES, \
-       .platform = INTEL_IVYBRIDGE, \
+       PLATFORM(INTEL_IVYBRIDGE), \
        .is_mobile = 1, \
        .has_l3_dpf = 1
 
@@ -324,14 +329,14 @@ static const struct intel_device_static_info 
intel_ivybridge_m_gt2_info = {
 
 static const struct intel_device_static_info intel_ivybridge_q_info = {
        GEN7_FEATURES,
-       .platform = INTEL_IVYBRIDGE,
+       PLATFORM(INTEL_IVYBRIDGE),
        .gt = 2,
        .num_pipes = 0, /* legal, last one wins */
        .has_l3_dpf = 1,
 };
 
 static const struct intel_device_static_info intel_valleyview_info = {
-       .platform = INTEL_VALLEYVIEW,
+       PLATFORM(INTEL_VALLEYVIEW),
        GEN(7),
        .is_lp = 1,
        .num_pipes = 2,
@@ -363,7 +368,7 @@ static const struct intel_device_static_info 
intel_valleyview_info = {
 
 #define HSW_PLATFORM \
        G75_FEATURES, \
-       .platform = INTEL_HASWELL, \
+       PLATFORM(INTEL_HASWELL), \
        .has_l3_dpf = 1
 
 static const struct intel_device_static_info intel_haswell_gt1_info = {
@@ -394,7 +399,7 @@ static const struct intel_device_static_info 
intel_haswell_gt3_info = {
 #define BDW_PLATFORM \
        GEN8_FEATURES, \
        GEN(8), \
-       .platform = INTEL_BROADWELL
+       PLATFORM(INTEL_BROADWELL)
 
 static const struct intel_device_static_info intel_broadwell_gt1_info = {
        BDW_PLATFORM,
@@ -422,11 +427,11 @@ static const struct intel_device_static_info 
intel_broadwell_gt3_info = {
 
 static const struct intel_device_static_info intel_cherryview_info = {
        GEN(8),
+       PLATFORM(INTEL_CHERRYVIEW),
        .num_pipes = 3,
        .has_hotplug = 1,
        .is_lp = 1,
        .ring_mask = RENDER_RING | BSD_RING | BLT_RING | VEBOX_RING,
-       .platform = INTEL_CHERRYVIEW,
        .has_64bit_reloc = 1,
        .has_psr = 1,
        .has_runtime_pm = 1,
@@ -462,7 +467,7 @@ static const struct intel_device_static_info 
intel_cherryview_info = {
 #define SKL_PLATFORM \
        GEN9_FEATURES, \
        GEN(9), \
-       .platform = INTEL_SKYLAKE
+       PLATFORM(INTEL_SKYLAKE)
 
 static const struct intel_device_static_info intel_skylake_gt1_info = {
        SKL_PLATFORM,
@@ -522,13 +527,13 @@ static const struct intel_device_static_info 
intel_skylake_gt4_info = {
 
 static const struct intel_device_static_info intel_broxton_info = {
        GEN9_LP_FEATURES,
-       .platform = INTEL_BROXTON,
+       PLATFORM(INTEL_BROXTON),
        .ddb_size = 512,
 };
 
 static const struct intel_device_static_info intel_geminilake_info = {
        GEN9_LP_FEATURES,
-       .platform = INTEL_GEMINILAKE,
+       PLATFORM(INTEL_GEMINILAKE),
        .ddb_size = 1024,
        GLK_COLORS,
 };
@@ -536,7 +541,7 @@ static const struct intel_device_static_info 
intel_geminilake_info = {
 #define KBL_PLATFORM \
        GEN9_FEATURES, \
        GEN(9),  \
-       .platform = INTEL_KABYLAKE
+       PLATFORM(INTEL_KABYLAKE)
 
 static const struct intel_device_static_info intel_kabylake_gt1_info = {
        KBL_PLATFORM,
@@ -557,7 +562,7 @@ static const struct intel_device_static_info 
intel_kabylake_gt3_info = {
 #define CFL_PLATFORM \
        GEN9_FEATURES, \
        GEN(9), \
-       .platform = INTEL_COFFEELAKE
+       PLATFORM(INTEL_COFFEELAKE)
 
 static const struct intel_device_static_info intel_coffeelake_gt1_info = {
        CFL_PLATFORM,
@@ -583,8 +588,8 @@ static const struct intel_device_static_info 
intel_coffeelake_gt3_info = {
 static const struct intel_device_static_info intel_cannonlake_info = {
        GEN10_FEATURES,
        GEN(10),
+       PLATFORM(INTEL_CANNONLAKE),
        .is_alpha_support = 1,
-       .platform = INTEL_CANNONLAKE,
        .gt = 2,
 };
 
@@ -596,7 +601,7 @@ static const struct intel_device_static_info 
intel_cannonlake_info = {
 
 static const struct intel_device_static_info intel_icelake_11_info = {
        GEN11_FEATURES,
-       .platform = INTEL_ICELAKE,
+       PLATFORM(INTEL_ICELAKE),
        .is_alpha_support = 1,
        .has_resource_streamer = 0,
 };
-- 
2.16.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to