210
210
#include "i915_oa_cflgt3.h"
211
211
#include "i915_oa_cnl.h"
212
212
#include "i915_oa_icl.h"
213
+ #include "intel_lrc_reg.h"
213
214
214
215
/* HW requires this to be a power of two, between 128k and 16M, though driver
215
216
* is currently generally designed assuming the largest 16M size is used such
@@ -1636,27 +1637,25 @@ static void gen8_update_reg_state_unlocked(struct i915_gem_context *ctx,
1636
1637
u32 ctx_oactxctrl = dev_priv -> perf .oa .ctx_oactxctrl_offset ;
1637
1638
u32 ctx_flexeu0 = dev_priv -> perf .oa .ctx_flexeu0_offset ;
1638
1639
/* The MMIO offsets for Flex EU registers aren't contiguous */
1639
- u32 flex_mmio [] = {
1640
- i915_mmio_reg_offset ( EU_PERF_CNTL0 ) ,
1641
- i915_mmio_reg_offset ( EU_PERF_CNTL1 ) ,
1642
- i915_mmio_reg_offset ( EU_PERF_CNTL2 ) ,
1643
- i915_mmio_reg_offset ( EU_PERF_CNTL3 ) ,
1644
- i915_mmio_reg_offset ( EU_PERF_CNTL4 ) ,
1645
- i915_mmio_reg_offset ( EU_PERF_CNTL5 ) ,
1646
- i915_mmio_reg_offset ( EU_PERF_CNTL6 ) ,
1640
+ i915_reg_t flex_regs [] = {
1641
+ EU_PERF_CNTL0 ,
1642
+ EU_PERF_CNTL1 ,
1643
+ EU_PERF_CNTL2 ,
1644
+ EU_PERF_CNTL3 ,
1645
+ EU_PERF_CNTL4 ,
1646
+ EU_PERF_CNTL5 ,
1647
+ EU_PERF_CNTL6 ,
1647
1648
};
1648
1649
int i ;
1649
1650
1650
- reg_state [ctx_oactxctrl ] = i915_mmio_reg_offset (GEN8_OACTXCONTROL );
1651
- reg_state [ctx_oactxctrl + 1 ] = (dev_priv -> perf .oa .period_exponent <<
1652
- GEN8_OA_TIMER_PERIOD_SHIFT ) |
1653
- (dev_priv -> perf .oa .periodic ?
1654
- GEN8_OA_TIMER_ENABLE : 0 ) |
1655
- GEN8_OA_COUNTER_RESUME ;
1651
+ CTX_REG (reg_state , ctx_oactxctrl , GEN8_OACTXCONTROL ,
1652
+ (dev_priv -> perf .oa .period_exponent << GEN8_OA_TIMER_PERIOD_SHIFT ) |
1653
+ (dev_priv -> perf .oa .periodic ? GEN8_OA_TIMER_ENABLE : 0 ) |
1654
+ GEN8_OA_COUNTER_RESUME );
1656
1655
1657
- for (i = 0 ; i < ARRAY_SIZE (flex_mmio ); i ++ ) {
1656
+ for (i = 0 ; i < ARRAY_SIZE (flex_regs ); i ++ ) {
1658
1657
u32 state_offset = ctx_flexeu0 + i * 2 ;
1659
- u32 mmio = flex_mmio [i ];
1658
+ u32 mmio = i915_mmio_reg_offset ( flex_regs [i ]) ;
1660
1659
1661
1660
/*
1662
1661
* This arbitrary default will select the 'EU FPU0 Pipeline
@@ -1676,8 +1675,7 @@ static void gen8_update_reg_state_unlocked(struct i915_gem_context *ctx,
1676
1675
}
1677
1676
}
1678
1677
1679
- reg_state [state_offset ] = mmio ;
1680
- reg_state [state_offset + 1 ] = value ;
1678
+ CTX_REG (reg_state , state_offset , flex_regs [i ], value );
1681
1679
}
1682
1680
}
1683
1681
0 commit comments