struct regmask {
        i915_reg_t reg;
-       unsigned long gen_mask;
+       u8 graphics_ver;
 };
 
 static bool find_reg(struct drm_i915_private *i915,
        u32 offset = i915_mmio_reg_offset(reg);
 
        while (count--) {
-               if (INTEL_INFO(i915)->gen_mask & tbl->gen_mask &&
+               if (GRAPHICS_VER(i915) == tbl->graphics_ver &&
                    i915_mmio_reg_offset(tbl->reg) == offset)
                        return true;
                tbl++;
 {
        /* Alas, we must pardon some whitelists. Mistakes already made */
        static const struct regmask pardon[] = {
-               { GEN9_CTX_PREEMPT_REG, INTEL_GEN_MASK(9, 9) },
-               { GEN8_L3SQCREG4, INTEL_GEN_MASK(9, 9) },
+               { GEN9_CTX_PREEMPT_REG, 9 },
+               { GEN8_L3SQCREG4, 9 },
        };
 
        return find_reg(i915, reg, pardon, ARRAY_SIZE(pardon));
 {
        /* Some registers do not seem to behave and our writes unreadable */
        static const struct regmask wo[] = {
-               { GEN9_SLICE_COMMON_ECO_CHICKEN1, INTEL_GEN_MASK(9, 9) },
+               { GEN9_SLICE_COMMON_ECO_CHICKEN1, 9 },
        };
 
        return find_reg(i915, reg, wo, ARRAY_SIZE(wo));