[PATCH 0/5] drm/i915: cleanup dead code
Lucas De Marchi
lucas.demarchi at intel.com
Tue Mar 12 12:53:40 UTC 2024
On Tue, Mar 12, 2024 at 09:54:41AM +0000, Tvrtko Ursulin wrote:
>
>On 11/03/2024 19:27, Lucas De Marchi wrote:
>>On Mon, Mar 11, 2024 at 05:43:00PM +0000, Tvrtko Ursulin wrote:
>>>
>>>On 06/03/2024 19:36, Lucas De Marchi wrote:
>>>>Remove platforms that never had their PCI IDs added to the driver and
>>>>are of course marked with requiring force_probe. Note that most of the
>>>>code for those platforms is actually used by subsequent ones, so it's
>>>>not a huge amount of code being removed.
>>>
>>>I had PVC and xehpsdv back in October but could not collect all acks. :(
>>>
>>>Last two patches from https://patchwork.freedesktop.org/series/124705/.
>>
>>oh... I was actually surprised we still had xehpsdv while removing a
>>WA for PVC, which made me look into removing these platforms.
>>
>>rebasing your series and comparing yours..my-v2, where my-v2 only has
>>patches 2 and 4, I have the diff below. I think it's small enough that I
>>can just take your commits and squash delta. Is that ok to you?
>>
>>my version is a little bit more aggressive, also doing some renames
>>s/xehpsdv/xehp/ and dropping some more code
>>(engine_mask_apply_copy_fuses(), unused registers, default ctx, fw
>>ranges).
>
>Right, yeah I see I missed some case combos in the comments when
>grepping and more.
>
>> diff --git a/Documentation/gpu/rfc/i915_vm_bind.h
>>b/Documentation/gpu/rfc/i915_vm_bind.h
>> index 8a8fcd4fceac..bc26dc126104 100644
>> --- a/Documentation/gpu/rfc/i915_vm_bind.h
>> +++ b/Documentation/gpu/rfc/i915_vm_bind.h
>> @@ -93,12 +93,11 @@ struct drm_i915_gem_timeline_fence {
>> * Multiple VA mappings can be created to the same section of
>>the object
>> * (aliasing).
>> *
>> - * The @start, @offset and @length must be 4K page aligned.
>>However the DG2
>> - * and XEHPSDV has 64K page size for device local memory and
>>has compact page
>> - * table. On those platforms, for binding device local-memory
>>objects, the
>> - * @start, @offset and @length must be 64K aligned. Also, UMDs
>>should not mix
>> - * the local memory 64K page and the system memory 4K page
>>bindings in the same
>> - * 2M range.
>> + * The @start, @offset and @length must be 4K page aligned.
>>However the DG2 has
>> + * 64K page size for device local memory and has compact page
>>table. On that
>> + * platform, for binding device local-memory objects, the
>>@start, @offset and
>> + * @length must be 64K aligned. Also, UMDs should not mix the
>>local memory 64K
>> + * page and the system memory 4K page bindings in the same 2M range.
>> *
>> * Error code -EINVAL will be returned if @start, @offset and
>>@length are not
>> * properly aligned. In version 1 (See
>>I915_PARAM_VM_BIND_VERSION), error code
>> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
>>b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
>> index 1495b6074492..d3300ae3053f 100644
>> --- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
>> +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h
>> @@ -386,7 +386,7 @@ struct drm_i915_gem_object {
>> * and kernel mode driver for caching policy control after GEN12.
>> * In the meantime platform specific tables are created to
>>translate
>> * i915_cache_level into pat index, for more details check
>>the macros
>> - * defined i915/i915_pci.c, e.g. TGL_CACHELEVEL.
>> + * defined i915/i915_pci.c, e.g. MTL_CACHELEVEL.
>
>Why this?
it was just our different choices while doing the search-and-replace.
It's not that I changed yours, it's that my choice was to go with MTL
and yours to go with TGL. Any of them fit the role here.
>
>> * For backward compatibility, this field contains values
>>exactly match
>> * the entries of enum i915_cache_level for pre-GEN12
>>platforms (See
>> * LEGACY_CACHELEVEL), so that the PTE encode functions for these
>> diff --git a/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
>>b/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
>> index fa46d2308b0e..1bd0e041e15c 100644
>> --- a/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
>> +++ b/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
>> @@ -500,11 +500,11 @@ gen8_ppgtt_insert_pte(struct i915_ppgtt *ppgtt,
>> }
>> static void
>> -xehpsdv_ppgtt_insert_huge(struct i915_address_space *vm,
>> - struct i915_vma_resource *vma_res,
>> - struct sgt_dma *iter,
>> - unsigned int pat_index,
>> - u32 flags)
>> +xehp_ppgtt_insert_huge(struct i915_address_space *vm,
>> + struct i915_vma_resource *vma_res,
>> + struct sgt_dma *iter,
>> + unsigned int pat_index,
>> + u32 flags)
>> {
>> const gen8_pte_t pte_encode = vm->pte_encode(0, pat_index, flags);
>> unsigned int rem = sg_dma_len(iter->sg);
>> @@ -741,8 +741,8 @@ static void gen8_ppgtt_insert(struct
>>i915_address_space *vm,
>> struct sgt_dma iter = sgt_dma(vma_res);
>> if (vma_res->bi.page_sizes.sg > I915_GTT_PAGE_SIZE) {
>> - if (GRAPHICS_VER_FULL(vm->i915) >= IP_VER(12, 50))
>> - xehpsdv_ppgtt_insert_huge(vm, vma_res, &iter,
>>pat_index, flags);
>> + if (GRAPHICS_VER_FULL(vm->i915) >= IP_VER(12, 55))
>> + xehp_ppgtt_insert_huge(vm, vma_res, &iter,
>>pat_index, flags);
>> else
>> gen8_ppgtt_insert_huge(vm, vma_res, &iter,
>>pat_index, flags);
>> } else {
>> @@ -781,11 +781,11 @@ static void
>>gen8_ppgtt_insert_entry(struct i915_address_space *vm,
>> drm_clflush_virt_range(&vaddr[gen8_pd_index(idx, 0)],
>>sizeof(*vaddr));
>> }
>> -static void __xehpsdv_ppgtt_insert_entry_lm(struct
>>i915_address_space *vm,
>> - dma_addr_t addr,
>> - u64 offset,
>> - unsigned int pat_index,
>> - u32 flags)
>> +static void xehp_ppgtt_insert_entry_lm(struct i915_address_space *vm,
>> + dma_addr_t addr,
>> + u64 offset,
>> + unsigned int pat_index,
>> + u32 flags)
>> {
>> u64 idx = offset >> GEN8_PTE_SHIFT;
>> struct i915_page_directory * const pdp =
>> @@ -810,15 +810,15 @@ static void
>>__xehpsdv_ppgtt_insert_entry_lm(struct i915_address_space *vm,
>> vaddr[gen8_pd_index(idx, 0) / 16] = vm->pte_encode(addr,
>>pat_index, flags);
>> }
>> -static void xehpsdv_ppgtt_insert_entry(struct i915_address_space *vm,
>> - dma_addr_t addr,
>> - u64 offset,
>> - unsigned int pat_index,
>> - u32 flags)
>> +static void xehp_ppgtt_insert_entry(struct i915_address_space *vm,
>> + dma_addr_t addr,
>> + u64 offset,
>> + unsigned int pat_index,
>> + u32 flags)
>> {
>> if (flags & PTE_LM)
>> - return __xehpsdv_ppgtt_insert_entry_lm(vm, addr, offset,
>> - pat_index, flags);
>> + return xehp_ppgtt_insert_entry_lm(vm, addr, offset,
>> + pat_index, flags);
>> return gen8_ppgtt_insert_entry(vm, addr, offset, pat_index,
>>flags);
>> }
>> @@ -1042,7 +1042,7 @@ struct i915_ppgtt
>>*gen8_ppgtt_create(struct intel_gt *gt,
>> ppgtt->vm.bind_async_flags = I915_VMA_LOCAL_BIND;
>> ppgtt->vm.insert_entries = gen8_ppgtt_insert;
>> if (HAS_64K_PAGES(gt->i915))
>> - ppgtt->vm.insert_page = xehpsdv_ppgtt_insert_entry;
>> + ppgtt->vm.insert_page = xehp_ppgtt_insert_entry;
>> else
>> ppgtt->vm.insert_page = gen8_ppgtt_insert_entry;
>> ppgtt->vm.allocate_va_range = gen8_ppgtt_alloc;
>> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
>>b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
>> index f553cf4e6449..423d72115af0 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
>> @@ -839,38 +839,6 @@ static void
>>engine_mask_apply_compute_fuses(struct intel_gt *gt)
>> }
>> }
>> -static void engine_mask_apply_copy_fuses(struct intel_gt *gt)
>> -{
>> - struct drm_i915_private *i915 = gt->i915;
>> - struct intel_gt_info *info = >->info;
>> - unsigned long meml3_mask;
>> - unsigned long quad;
>> -
>> - if (!(GRAPHICS_VER_FULL(i915) >= IP_VER(12, 60) &&
>> - GRAPHICS_VER_FULL(i915) < IP_VER(12, 70)))
>> - return;
>
>I trust you know this is correct. :) Without a easy to reach table of
>platform codenames to ip block version I give up.
well, xe_pci.c has the versions at least until MTL with
graphics ver 12.70. So if we remove PVC (12.60), there's nothing left.
>
>> -
>> - meml3_mask = intel_uncore_read(gt->uncore, GEN10_MIRROR_FUSE3);
>> - meml3_mask = REG_FIELD_GET(GEN12_MEML3_EN_MASK, meml3_mask);
>> -
>> - /*
>> - * Link Copy engines may be fused off according to
>>meml3_mask. Each
>> - * bit is a quad that houses 2 Link Copy and two Sub Copy
>>engines.
>> - */
>> - for_each_clear_bit(quad, &meml3_mask, GEN12_MAX_MSLICES) {
>> - unsigned int instance = quad * 2 + 1;
>> - intel_engine_mask_t mask = GENMASK(_BCS(instance + 1),
>> - _BCS(instance));
>> -
>> - if (mask & info->engine_mask) {
>> - gt_dbg(gt, "bcs%u fused off\n", instance);
>> - gt_dbg(gt, "bcs%u fused off\n", instance + 1);
>> -
>> - info->engine_mask &= ~mask;
>> - }
>> - }
>> -}
>> -
>> /*
>> * Determine which engines are fused off in our particular hardware.
>> * Note that we have a catch-22 situation where we need to be
>>able to access
>> @@ -889,7 +857,6 @@ static intel_engine_mask_t
>>init_engine_mask(struct intel_gt *gt)
>> engine_mask_apply_media_fuses(gt);
>> engine_mask_apply_compute_fuses(gt);
>> - engine_mask_apply_copy_fuses(gt);
>> /*
>> * The only use of the GSC CS is to load and communicate
>>with the GSC
>> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_mcr.c
>>b/drivers/gpu/drm/i915/gt/intel_gt_mcr.c
>> index 2f386f531c55..ee5115b12a21 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_gt_mcr.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_gt_mcr.c
>> @@ -57,7 +57,7 @@ static const struct intel_mmio_range
>>icl_l3bank_steering_table[] = {
>> * are of a "GAM" subclass that has special rules. Thus we
>>use a separate
>> * GAM table farther down for those.
>> */
>> -static const struct intel_mmio_range
>>xehpsdv_mslice_steering_table[] = {
>> +static const struct intel_mmio_range dg2_mslice_steering_table[] = {
>> { 0x00DD00, 0x00DDFF },
>> { 0x00E900, 0x00FFFF }, /* 0xEA00 - OxEFFF is unused */
>> {},
>> @@ -153,7 +153,7 @@ void intel_gt_mcr_init(struct intel_gt *gt)
>> gt->steering_table[L3BANK] = xelpg_l3bank_steering_table;
>> gt->steering_table[DSS] = xelpg_dss_steering_table;
>> } else if (IS_DG2(i915)) {
>> - gt->steering_table[MSLICE] = xehpsdv_mslice_steering_table;
>> + gt->steering_table[MSLICE] = dg2_mslice_steering_table;
>> gt->steering_table[LNCF] = dg2_lncf_steering_table;
>> /*
>> * No need to hook up the GAM table since it has a dedicated
>> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
>>b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
>> index 0635c9288742..8d8d781b44b6 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
>> +++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
>> @@ -723,38 +723,6 @@
>> #define HSUNIT_CLKGATE_DIS REG_BIT(8)
>> #define VSUNIT_CLKGATE_DIS REG_BIT(3)
>> -#define UNSLCGCTL9440 _MMIO(0x9440)
>> -#define GAMTLBOACS_CLKGATE_DIS REG_BIT(28)
>> -#define GAMTLBVDBOX5_CLKGATE_DIS REG_BIT(27)
>> -#define GAMTLBVDBOX6_CLKGATE_DIS REG_BIT(26)
>> -#define GAMTLBVDBOX3_CLKGATE_DIS REG_BIT(24)
>> -#define GAMTLBVDBOX4_CLKGATE_DIS REG_BIT(23)
>> -#define GAMTLBVDBOX7_CLKGATE_DIS REG_BIT(22)
>> -#define GAMTLBVDBOX2_CLKGATE_DIS REG_BIT(21)
>> -#define GAMTLBVDBOX0_CLKGATE_DIS REG_BIT(17)
>> -#define GAMTLBKCR_CLKGATE_DIS REG_BIT(16)
>> -#define GAMTLBGUC_CLKGATE_DIS REG_BIT(15)
>> -#define GAMTLBBLT_CLKGATE_DIS REG_BIT(14)
>> -#define GAMTLBVDBOX1_CLKGATE_DIS REG_BIT(6)
>> -
>> -#define UNSLCGCTL9444 _MMIO(0x9444)
>> -#define GAMTLBGFXA0_CLKGATE_DIS REG_BIT(30)
>> -#define GAMTLBGFXA1_CLKGATE_DIS REG_BIT(29)
>> -#define GAMTLBCOMPA0_CLKGATE_DIS REG_BIT(28)
>> -#define GAMTLBCOMPA1_CLKGATE_DIS REG_BIT(27)
>> -#define GAMTLBCOMPB0_CLKGATE_DIS REG_BIT(26)
>> -#define GAMTLBCOMPB1_CLKGATE_DIS REG_BIT(25)
>> -#define GAMTLBCOMPC0_CLKGATE_DIS REG_BIT(24)
>> -#define GAMTLBCOMPC1_CLKGATE_DIS REG_BIT(23)
>> -#define GAMTLBCOMPD0_CLKGATE_DIS REG_BIT(22)
>> -#define GAMTLBCOMPD1_CLKGATE_DIS REG_BIT(21)
>> -#define GAMTLBMERT_CLKGATE_DIS REG_BIT(20)
>> -#define GAMTLBVEBOX3_CLKGATE_DIS REG_BIT(19)
>> -#define GAMTLBVEBOX2_CLKGATE_DIS REG_BIT(18)
>> -#define GAMTLBVEBOX1_CLKGATE_DIS REG_BIT(17)
>> -#define GAMTLBVEBOX0_CLKGATE_DIS REG_BIT(16)
>> -#define LTCDD_CLKGATE_DIS REG_BIT(10)
>> -
>> #define GEN11_SLICE_UNIT_LEVEL_CLKGATE _MMIO(0x94d4)
>> #define XEHP_SLICE_UNIT_LEVEL_CLKGATE MCR_REG(0x94d4)
>> #define SARBUNIT_CLKGATE_DIS (1 << 5)
>> @@ -764,9 +732,6 @@
>> #define L3_CLKGATE_DIS REG_BIT(16)
>> #define L3_CR2X_CLKGATE_DIS REG_BIT(17)
>> -#define SCCGCTL94DC MCR_REG(0x94dc)
>> -#define CG3DDISURB REG_BIT(14)
>> -
>> #define UNSLICE_UNIT_LEVEL_CLKGATE2 _MMIO(0x94e4)
>> #define VSUNIT_CLKGATE_DIS_TGL REG_BIT(19)
>> #define PSDUNIT_CLKGATE_DIS REG_BIT(5)
>> @@ -988,10 +953,6 @@
>> #define GEN7_WA_FOR_GEN7_L3_CONTROL 0x3C47FF8C
>> #define GEN7_L3AGDIS (1 << 19)
>> -#define XEHPC_LNCFMISCCFGREG0 MCR_REG(0xb01c)
>> -#define XEHPC_HOSTCACHEEN REG_BIT(1)
>> -#define XEHPC_OVRLSCCC REG_BIT(0)
>> -
>> #define GEN7_L3CNTLREG2 _MMIO(0xb020)
>> /* MOCS (Memory Object Control State) registers */
>> @@ -1045,20 +1006,9 @@
>> #define XEHP_L3SQCREG5 MCR_REG(0xb158)
>> #define L3_PWM_TIMER_INIT_VAL_MASK REG_GENMASK(9, 0)
>> -#define MLTICTXCTL MCR_REG(0xb170)
>> -#define TDONRENDER REG_BIT(2)
>> -
>> #define XEHP_L3SCQREG7 MCR_REG(0xb188)
>> #define BLEND_FILL_CACHING_OPT_DIS REG_BIT(3)
>> -#define XEHPC_L3SCRUB MCR_REG(0xb18c)
>> -#define SCRUB_CL_DWNGRADE_SHARED REG_BIT(12)
>> -#define SCRUB_RATE_PER_BANK_MASK REG_GENMASK(2, 0)
>> -#define SCRUB_RATE_4B_PER_CLK
>>REG_FIELD_PREP(SCRUB_RATE_PER_BANK_MASK, 0x6)
>> -
>> -#define L3SQCREG1_CCS0 MCR_REG(0xb200)
>> -#define FLUSHALLNONCOH REG_BIT(5)
>> -
>> #define GEN11_GLBLINVL _MMIO(0xb404)
>> #define GEN11_BANK_HASH_ADDR_EXCL_MASK (0x7f << 5)
>> #define GEN11_BANK_HASH_ADDR_EXCL_BIT0 (1 << 5)
>> @@ -1108,7 +1058,6 @@
>> #define XEHP_COMPCTX_TLB_INV_CR MCR_REG(0xcf04)
>> #define XELPMP_GSC_TLB_INV_CR _MMIO(0xcf04) /*
>>media GT only */
>> -#define XEHP_MERT_MOD_CTRL MCR_REG(0xcf28)
>> #define RENDER_MOD_CTRL MCR_REG(0xcf2c)
>> #define COMP_MOD_CTRL MCR_REG(0xcf30)
>> #define XELPMP_GSC_MOD_CTRL _MMIO(0xcf30) /*
>>media GT only */
>> @@ -1184,7 +1133,6 @@
>> #define EU_PERF_CNTL4 PERF_REG(0xe45c)
>> #define GEN9_ROW_CHICKEN4 MCR_REG(0xe48c)
>> -#define GEN12_DISABLE_GRF_CLEAR REG_BIT(13)
>> #define XEHP_DIS_BBL_SYSPIPE REG_BIT(11)
>> #define GEN12_DISABLE_TDL_PUSH REG_BIT(9)
>> #define GEN11_DIS_PICK_2ND_EU REG_BIT(7)
>> @@ -1201,7 +1149,6 @@
>> #define FLOW_CONTROL_ENABLE REG_BIT(15)
>> #define UGM_BACKUP_MODE REG_BIT(13)
>> #define MDQ_ARBITRATION_MODE REG_BIT(12)
>> -#define SYSTOLIC_DOP_CLOCK_GATING_DIS REG_BIT(10)
>> #define PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE REG_BIT(8)
>> #define STALL_DOP_GATING_DISABLE REG_BIT(5)
>> #define THROTTLE_12_5 REG_GENMASK(4, 2)
>> @@ -1678,11 +1625,6 @@
>> #define GEN12_SFC_DONE(n) _MMIO(0x1cc000 + (n) * 0x1000)
>> -#define GT0_PACKAGE_ENERGY_STATUS _MMIO(0x250004)
>> -#define GT0_PACKAGE_RAPL_LIMIT _MMIO(0x250008)
>> -#define GT0_PACKAGE_POWER_SKU_UNIT _MMIO(0x250068)
>> -#define GT0_PLATFORM_ENERGY_STATUS _MMIO(0x25006c)
>> -
>> /*
>> * Standalone Media's non-engine GT registers are located at
>>their regular GT
>> * offsets plus 0x380000. This extra offset is stored inside
>>the intel_uncore
>> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c
>>b/drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c
>> index 90644e47d261..d7784650e4d9 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c
>> @@ -582,9 +582,10 @@ static ssize_t
>>media_freq_factor_show(struct kobject *kobj,
>> */
>> with_intel_runtime_pm(gt->uncore->rpm, wakeref)
>> mode = intel_uncore_read(gt->uncore, GEN6_RPNSWREQ);
>> +
>> mode = REG_FIELD_GET(GEN12_MEDIA_FREQ_RATIO, mode) ?
>> - SLPC_MEDIA_RATIO_MODE_FIXED_ONE_TO_ONE :
>> - SLPC_MEDIA_RATIO_MODE_FIXED_ONE_TO_TWO;
>> + SLPC_MEDIA_RATIO_MODE_FIXED_ONE_TO_ONE :
>> + SLPC_MEDIA_RATIO_MODE_FIXED_ONE_TO_TWO;
>
>Something is off in someone's version here.
yeah, I will double check before v2.
>
>> return sysfs_emit(buff, "%u\n", media_ratio_mode_to_factor(mode));
>> }
>> diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c
>>b/drivers/gpu/drm/i915/gt/intel_lrc.c
>> index 7c367ba8d9dc..7f1b00cb9924 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_lrc.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
>> @@ -546,47 +546,6 @@ static const u8 gen12_rcs_offsets[] = {
>> END
>> };
>> -static const u8 xehp_rcs_offsets[] = {
>> - NOP(1),
>> - LRI(13, POSTED),
>> - REG16(0x244),
>> - REG(0x034),
>> - REG(0x030),
>> - REG(0x038),
>> - REG(0x03c),
>> - REG(0x168),
>> - REG(0x140),
>> - REG(0x110),
>> - REG(0x1c0),
>> - REG(0x1c4),
>> - REG(0x1c8),
>> - REG(0x180),
>> - REG16(0x2b4),
>> -
>> - NOP(5),
>> - LRI(9, POSTED),
>> - REG16(0x3a8),
>> - REG16(0x28c),
>> - REG16(0x288),
>> - REG16(0x284),
>> - REG16(0x280),
>> - REG16(0x27c),
>> - REG16(0x278),
>> - REG16(0x274),
>> - REG16(0x270),
>> -
>> - LRI(3, POSTED),
>> - REG(0x1b0),
>> - REG16(0x5a8),
>> - REG16(0x5ac),
>> -
>> - NOP(6),
>> - LRI(1, 0),
>> - REG(0x0c8),
>> -
>> - END
>> -};
>> -
>> static const u8 dg2_rcs_offsets[] = {
>> NOP(1),
>> LRI(15, POSTED),
>> @@ -695,8 +654,6 @@ static const u8 *reg_offsets(const struct
>>intel_engine_cs *engine)
>> return mtl_rcs_offsets;
>> else if (GRAPHICS_VER_FULL(engine->i915) >= IP_VER(12, 55))
>> return dg2_rcs_offsets;
>> - else if (GRAPHICS_VER_FULL(engine->i915) >= IP_VER(12, 50))
>> - return xehp_rcs_offsets;
>> else if (GRAPHICS_VER(engine->i915) >= 12)
>> return gen12_rcs_offsets;
>> else if (GRAPHICS_VER(engine->i915) >= 11)
>> diff --git a/drivers/gpu/drm/i915/gt/intel_migrate.c
>>b/drivers/gpu/drm/i915/gt/intel_migrate.c
>> index 576e5ef0289b..86ba2f2e485c 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_migrate.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_migrate.c
>> @@ -35,9 +35,9 @@ static bool engine_supports_migration(struct
>>intel_engine_cs *engine)
>> return true;
>> }
>> -static void xehpsdv_toggle_pdes(struct i915_address_space *vm,
>> - struct i915_page_table *pt,
>> - void *data)
>> +static void xehp_toggle_pdes(struct i915_address_space *vm,
>> + struct i915_page_table *pt,
>> + void *data)
>> {
>> struct insert_pte_data *d = data;
>> @@ -52,9 +52,9 @@ static void xehpsdv_toggle_pdes(struct
>>i915_address_space *vm,
>> d->offset += SZ_2M;
>> }
>> -static void xehpsdv_insert_pte(struct i915_address_space *vm,
>> - struct i915_page_table *pt,
>> - void *data)
>> +static void xehp_insert_pte(struct i915_address_space *vm,
>> + struct i915_page_table *pt,
>> + void *data)
>> {
>> struct insert_pte_data *d = data;
>> @@ -120,7 +120,7 @@ static struct i915_address_space
>>*migrate_vm(struct intel_gt *gt)
>> * 512 entry layout using 4K GTT pages. The other two
>>windows just map
>> * lmem pages and must use the new compact 32 entry layout
>>using 64K GTT
>> * pages, which ensures we can address any lmem object that
>>the user
>> - * throws at us. We then also use the xehpsdv_toggle_pdes
>>as a way of
>> + * throws at us. We then also use the xehp_toggle_pdes as
>>a way of
>> * just toggling the PDE bit(GEN12_PDE_64K) for us, to enable the
>> * compact layout for each of these page-tables, that fall
>>within the
>> * [CHUNK_SIZE, 3 * CHUNK_SIZE) range.
>> @@ -209,12 +209,12 @@ static struct i915_address_space
>>*migrate_vm(struct intel_gt *gt)
>> /* Now allow the GPU to rewrite the PTE via its own ppGTT */
>> if (HAS_64K_PAGES(gt->i915)) {
>> vm->vm.foreach(&vm->vm, base, d.offset - base,
>> - xehpsdv_insert_pte, &d);
>> + xehp_insert_pte, &d);
>> d.offset = base + CHUNK_SZ;
>> vm->vm.foreach(&vm->vm,
>> d.offset,
>> 2 * CHUNK_SZ,
>> - xehpsdv_toggle_pdes, &d);
>> + xehp_toggle_pdes, &d);
>> } else {
>> vm->vm.foreach(&vm->vm, base, d.offset - base,
>> insert_pte, &d);
>> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c
>>b/drivers/gpu/drm/i915/gt/intel_workarounds.c
>> index 7889147b44b7..804654ab80ec 100644
>> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
>> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
>> @@ -2661,6 +2661,7 @@ xcs_engine_wa_init(struct intel_engine_cs
>>*engine, struct i915_wa_list *wal)
>> static void
>> ccs_engine_wa_init(struct intel_engine_cs *engine, struct
>>i915_wa_list *wal)
>> {
>> + /* boilerplate for any CCS engine workaround */
>> }
>> /*
>> diff --git a/drivers/gpu/drm/i915/i915_perf.c
>>b/drivers/gpu/drm/i915/i915_perf.c
>> index f68ec0a1c17d..1637c1d235e9 100644
>> --- a/drivers/gpu/drm/i915/i915_perf.c
>> +++ b/drivers/gpu/drm/i915/i915_perf.c
>> @@ -2881,7 +2881,7 @@ gen12_enable_metric_set(struct
>>i915_perf_stream *stream,
>> int ret;
>> /*
>> - * Wa_1508761755:xehpsdv, dg2
>> + * Wa_1508761755
>> * EU NOA signals behave incorrectly if EU clock gating is
>>enabled.
>> * Disable thread stall DOP gating and EU DOP gating.
>> */
>> @@ -2911,7 +2911,7 @@ gen12_enable_metric_set(struct
>>i915_perf_stream *stream,
>> /*
>> * Initialize Super Queue Internal Cnt Register
>> * Set PMON Enable in order to collect valid metrics.
>> - * Enable byets per clock reporting in OA for XEHPSDV onward.
>> + * Enable byets per clock reporting in OA.
>
>Could you fix byets while touching the line?
>
>> */
>> sqcnt1 = GEN12_SQCNT1_PMON_ENABLE |
>> (HAS_OA_BPC_REPORTING(i915) ? GEN12_SQCNT1_OABPC : 0);
>> @@ -2971,8 +2971,7 @@ static void
>>gen12_disable_metric_set(struct i915_perf_stream *stream)
>> u32 sqcnt1;
>> /*
>> - * Wa_1508761755:xehpsdv, dg2
>> - * Enable thread stall DOP gating and EU DOP gating.
>> + * Wa_1508761755: Enable thread stall DOP gating and EU
>>DOP gating.
>> */
>> if (IS_DG2(i915)) {
>> intel_gt_mcr_multicast_write(uncore->gt, GEN8_ROW_CHICKEN,
>> diff --git a/drivers/gpu/drm/i915/i915_reg.h
>>b/drivers/gpu/drm/i915/i915_reg.h
>> index bdc409085b9a..f62573d48c76 100644
>> --- a/drivers/gpu/drm/i915/i915_reg.h
>> +++ b/drivers/gpu/drm/i915/i915_reg.h
>> @@ -5399,7 +5399,7 @@
>> #define POWER_SETUP_I1_SHIFT 6 /* 10.6 fixed
>>point format */
>> #define POWER_SETUP_I1_DATA_MASK REG_GENMASK(15, 0)
>> #define GEN12_PCODE_READ_SAGV_BLOCK_TIME_US 0x23
>> -#define XEHP_PCODE_FREQUENCY_CONFIG 0x6e /*
>>xehpsdv, pvc */
>> +#define XEHP_PCODE_FREQUENCY_CONFIG 0x6e
>> /* XEHP_PCODE_FREQUENCY_CONFIG sub-commands (param1) */
>> #define PCODE_MBOX_FC_SC_READ_FUSED_P0 0x0
>> #define PCODE_MBOX_FC_SC_READ_FUSED_PN 0x1
>> diff --git a/drivers/gpu/drm/i915/intel_uncore.c
>>b/drivers/gpu/drm/i915/intel_uncore.c
>> index 58d6c68195e0..40d56f02b5c6 100644
>> --- a/drivers/gpu/drm/i915/intel_uncore.c
>> +++ b/drivers/gpu/drm/i915/intel_uncore.c
>> @@ -1497,17 +1497,16 @@ static const struct
>>intel_forcewake_range __gen12_fw_ranges[] = {
>> GEN_FW_RANGE(0x13200, 0x13fff, FORCEWAKE_MEDIA_VDBOX2),
>>/* \
>> 0x13200 - 0x133ff: VD2 (DG2 only) \
>> 0x13400 - 0x13fff: reserved */ \
>> - GEN_FW_RANGE(0x14000, 0x141ff, FORCEWAKE_MEDIA_VDBOX0), /*
>>XEHPSDV only */ \
>> - GEN_FW_RANGE(0x14200, 0x143ff, FORCEWAKE_MEDIA_VDBOX2), /*
>>XEHPSDV only */ \
>> - GEN_FW_RANGE(0x14400, 0x145ff, FORCEWAKE_MEDIA_VDBOX4), /*
>>XEHPSDV only */ \
>> - GEN_FW_RANGE(0x14600, 0x147ff, FORCEWAKE_MEDIA_VDBOX6), /*
>>XEHPSDV only */ \
>> + GEN_FW_RANGE(0x14000, 0x141ff,
>>FORCEWAKE_MEDIA_VDBOX0), \
>> + GEN_FW_RANGE(0x14200, 0x143ff,
>>FORCEWAKE_MEDIA_VDBOX2), \
>> + GEN_FW_RANGE(0x14400, 0x145ff,
>>FORCEWAKE_MEDIA_VDBOX4), \
>> + GEN_FW_RANGE(0x14600, 0x147ff,
>>FORCEWAKE_MEDIA_VDBOX6), \
>
>I see Rodrigo and you were discussing this hunk so I will just skip over.
>
>> GEN_FW_RANGE(0x14800, 0x14fff, FORCEWAKE_RENDER), \
>> GEN_FW_RANGE(0x15000, 0x16dff, FORCEWAKE_GT), /* \
>> 0x15000 - 0x15fff: gt (DG2 only) \
>> 0x16000 - 0x16dff: reserved */ \
>> GEN_FW_RANGE(0x16e00, 0x1ffff, FORCEWAKE_RENDER), \
>> - GEN_FW_RANGE(0x20000, 0x21fff, FORCEWAKE_MEDIA_VDBOX0),
>>/* \
>> - 0x20000 - 0x20fff: VD0 (XEHPSDV only) \
>> + GEN_FW_RANGE(0x21000, 0x21fff, FORCEWAKE_MEDIA_VDBOX0),
>>/* \
>> 0x21000 - 0x21fff: reserved */ \
>> GEN_FW_RANGE(0x22000, 0x23fff, FORCEWAKE_GT), \
>> GEN_FW_RANGE(0x24000, 0x2417f, 0), /* \
>> @@ -1588,10 +1587,6 @@ static const struct
>>intel_forcewake_range __gen12_fw_ranges[] = {
>> 0x1f6e00 - 0x1f7fff: reserved */ \
>> GEN_FW_RANGE(0x1f8000, 0x1fa0ff, FORCEWAKE_MEDIA_VEBOX3),
>> -static const struct intel_forcewake_range __xehp_fw_ranges[] = {
>> - XEHP_FWRANGES(FORCEWAKE_GT)
>> -};
>> -
>> static const struct intel_forcewake_range __dg2_fw_ranges[] = {
>> XEHP_FWRANGES(FORCEWAKE_RENDER)
>> };
>> @@ -2442,10 +2437,6 @@ static int uncore_forcewake_init(struct
>>intel_uncore *uncore)
>> ASSIGN_FW_DOMAINS_TABLE(uncore, __dg2_fw_ranges);
>> ASSIGN_SHADOW_TABLE(uncore, dg2_shadowed_regs);
>> ASSIGN_WRITE_MMIO_VFUNCS(uncore, fwtable);
>> - } else if (GRAPHICS_VER_FULL(i915) >= IP_VER(12, 50)) {
>> - ASSIGN_FW_DOMAINS_TABLE(uncore, __xehp_fw_ranges);
>> - ASSIGN_SHADOW_TABLE(uncore, gen12_shadowed_regs);
>> - ASSIGN_WRITE_MMIO_VFUNCS(uncore, fwtable);
>> } else if (GRAPHICS_VER(i915) >= 12) {
>> ASSIGN_FW_DOMAINS_TABLE(uncore, __gen12_fw_ranges);
>> ASSIGN_SHADOW_TABLE(uncore, gen12_shadowed_regs);
>> diff --git a/drivers/gpu/drm/i915/selftests/intel_uncore.c
>>b/drivers/gpu/drm/i915/selftests/intel_uncore.c
>> index c998f15d505c..41eaa9b7f67d 100644
>> --- a/drivers/gpu/drm/i915/selftests/intel_uncore.c
>> +++ b/drivers/gpu/drm/i915/selftests/intel_uncore.c
>> @@ -118,7 +118,6 @@ int intel_uncore_mock_selftests(void)
>> { __gen9_fw_ranges, ARRAY_SIZE(__gen9_fw_ranges), true },
>> { __gen11_fw_ranges, ARRAY_SIZE(__gen11_fw_ranges), true },
>> { __gen12_fw_ranges, ARRAY_SIZE(__gen12_fw_ranges), true },
>> - { __xehp_fw_ranges, ARRAY_SIZE(__xehp_fw_ranges), true },
>> { __mtl_fw_ranges, ARRAY_SIZE(__mtl_fw_ranges), true },
>> { __xelpmp_fw_ranges, ARRAY_SIZE(__xelpmp_fw_ranges), true },
>> };
>> diff --git a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>>b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>> index a86d00a9758f..a01d1b869c2d 100644
>> --- a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>> +++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
>> @@ -85,9 +85,7 @@ static inline struct drm_i915_private
>>*kdev_to_i915(struct device *kdev)
>> #define IS_DG1(dev_priv) IS_PLATFORM(dev_priv, XE_DG1)
>> #define IS_ALDERLAKE_S(dev_priv) IS_PLATFORM(dev_priv,
>>XE_ALDERLAKE_S)
>> #define IS_ALDERLAKE_P(dev_priv) IS_PLATFORM(dev_priv,
>>XE_ALDERLAKE_P)
>> -#define IS_XEHPSDV(dev_priv) (dev_priv && 0)
>> #define IS_DG2(dev_priv) IS_PLATFORM(dev_priv, XE_DG2)
>> -#define IS_PONTEVECCHIO(dev_priv) IS_PLATFORM(dev_priv, XE_PVC)
>> #define IS_METEORLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_METEORLAKE)
>> #define IS_LUNARLAKE(dev_priv) IS_PLATFORM(dev_priv, XE_LUNARLAKE)
>> @@ -130,7 +128,6 @@ static inline struct drm_i915_private
>>*kdev_to_i915(struct device *kdev)
>> #define IS_DG2_GRAPHICS_STEP(xe, variant, first, last) \
>> ((xe)->info.subplatform == XE_SUBPLATFORM_DG2_ ## variant && \
>> IS_GRAPHICS_STEP(xe, first, last))
>> -#define IS_XEHPSDV_GRAPHICS_STEP(xe, first, last)
>>(IS_XEHPSDV(xe) && IS_GRAPHICS_STEP(xe, first, last))
>> #define IS_TIGERLAKE_DISPLAY_STEP(xe, first, last)
>>(IS_TIGERLAKE(xe) && IS_DISPLAY_STEP(xe, first, last))
>> #define IS_ROCKETLAKE_DISPLAY_STEP(xe, first, last)
>>(IS_ROCKETLAKE(xe) && IS_DISPLAY_STEP(xe, first, last))
>>
>>
>>Let me know what you prefer. If squashing these changes to your patches,
>>then I'd add the other patches in this series on top.
>
>Do what is easiest for you, which is probably to just go with yours
>and that's fine since you caught more than I have. Just unfortunate we
>spent duplicated effort.
ok, sounds good.
thanks
Lucas De Marchi
More information about the Intel-gfx
mailing list