drm/xe: Use XE_REG/XE_REG_MCR
authorLucas De Marchi <lucas.demarchi@intel.com>
Thu, 27 Apr 2023 22:32:53 +0000 (15:32 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 19 Dec 2023 23:32:21 +0000 (18:32 -0500)
These should replace the _MMIO() and MCR_REG() from i915, with the goal
of being more extensible, allowing to pass the additional fields for
struct xe_reg and struct xe_reg_mcr. Replace all uses of _MMIO() and
MCR_REG() in xe.

Since the RTP, reg-save-restore and WA infra are not ready to use the
new type, just undef the macro like was done for the i915 types
previously. That conversion will come later.

v2: Remove MEDIA_SOFT_SCRATCH_COUNT/MEDIA_SOFT_SCRATCH re-added by
    mistake (Matt Roper)

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://lore.kernel.org/r/20230427223256.1432787-8-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
19 files changed:
drivers/gpu/drm/xe/regs/xe_engine_regs.h
drivers/gpu/drm/xe/regs/xe_gt_regs.h
drivers/gpu/drm/xe/regs/xe_guc_regs.h
drivers/gpu/drm/xe/regs/xe_reg_defs.h
drivers/gpu/drm/xe/regs/xe_regs.h
drivers/gpu/drm/xe/tests/xe_rtp_test.c
drivers/gpu/drm/xe/xe_ggtt.c
drivers/gpu/drm/xe/xe_guc.c
drivers/gpu/drm/xe/xe_guc_pc.c
drivers/gpu/drm/xe/xe_irq.c
drivers/gpu/drm/xe/xe_mmio.c
drivers/gpu/drm/xe/xe_mocs.c
drivers/gpu/drm/xe/xe_pat.c
drivers/gpu/drm/xe/xe_pcode_api.h
drivers/gpu/drm/xe/xe_reg_sr.c
drivers/gpu/drm/xe/xe_reg_whitelist.c
drivers/gpu/drm/xe/xe_rtp.h
drivers/gpu/drm/xe/xe_tuning.c
drivers/gpu/drm/xe/xe_wa.c

index f1e75703e4bce34b971c41928493381c5a8eb552..80b66844a8ec4e518b377d3f4041561e3558fde9 100644 (file)
 
 #include "regs/xe_reg_defs.h"
 
-#define RING_TAIL(base)                                _MMIO((base) + 0x30)
+#define RING_TAIL(base)                                XE_REG((base) + 0x30)
 
-#define RING_HEAD(base)                                _MMIO((base) + 0x34)
+#define RING_HEAD(base)                                XE_REG((base) + 0x34)
 #define   HEAD_ADDR                            0x001FFFFC
 
-#define RING_START(base)                       _MMIO((base) + 0x38)
+#define RING_START(base)                       XE_REG((base) + 0x38)
 
-#define RING_CTL(base)                         _MMIO((base) + 0x3c)
+#define RING_CTL(base)                         XE_REG((base) + 0x3c)
 #define   RING_CTL_SIZE(size)                  ((size) - PAGE_SIZE) /* in bytes -> pages */
 #define   RING_CTL_SIZE(size)                  ((size) - PAGE_SIZE) /* in bytes -> pages */
 
-#define RING_PSMI_CTL(base)                    _MMIO((base) + 0x50)
+#define RING_PSMI_CTL(base)                    XE_REG((base) + 0x50)
 #define   RC_SEMA_IDLE_MSG_DISABLE             REG_BIT(12)
 #define   WAIT_FOR_EVENT_POWER_DOWN_DISABLE    REG_BIT(7)
 
-#define RING_ACTHD_UDW(base)                   _MMIO((base) + 0x5c)
-#define RING_DMA_FADD_UDW(base)                        _MMIO((base) + 0x60)
-#define RING_IPEIR(base)                       _MMIO((base) + 0x64)
-#define RING_IPEHR(base)                       _MMIO((base) + 0x68)
-#define RING_ACTHD(base)                       _MMIO((base) + 0x74)
-#define RING_DMA_FADD(base)                    _MMIO((base) + 0x78)
-#define RING_HWS_PGA(base)                     _MMIO((base) + 0x80)
-#define IPEIR(base)                            _MMIO((base) + 0x88)
-#define IPEHR(base)                            _MMIO((base) + 0x8c)
-#define RING_HWSTAM(base)                      _MMIO((base) + 0x98)
-#define RING_MI_MODE(base)                     _MMIO((base) + 0x9c)
-#define RING_NOPID(base)                       _MMIO((base) + 0x94)
-
-#define RING_IMR(base)                         _MMIO((base) + 0xa8)
+#define RING_ACTHD_UDW(base)                   XE_REG((base) + 0x5c)
+#define RING_DMA_FADD_UDW(base)                        XE_REG((base) + 0x60)
+#define RING_IPEIR(base)                       XE_REG((base) + 0x64)
+#define RING_IPEHR(base)                       XE_REG((base) + 0x68)
+#define RING_ACTHD(base)                       XE_REG((base) + 0x74)
+#define RING_DMA_FADD(base)                    XE_REG((base) + 0x78)
+#define RING_HWS_PGA(base)                     XE_REG((base) + 0x80)
+#define IPEIR(base)                            XE_REG((base) + 0x88)
+#define IPEHR(base)                            XE_REG((base) + 0x8c)
+#define RING_HWSTAM(base)                      XE_REG((base) + 0x98)
+#define RING_MI_MODE(base)                     XE_REG((base) + 0x9c)
+#define RING_NOPID(base)                       XE_REG((base) + 0x94)
+
+#define RING_IMR(base)                         XE_REG((base) + 0xa8)
 #define   RING_MAX_NONPRIV_SLOTS  12
 
-#define RING_EIR(base)                         _MMIO((base) + 0xb0)
-#define RING_EMR(base)                         _MMIO((base) + 0xb4)
-#define RING_ESR(base)                         _MMIO((base) + 0xb8)
-#define RING_BBADDR(base)                      _MMIO((base) + 0x140)
-#define RING_BBADDR_UDW(base)                  _MMIO((base) + 0x168)
-#define RING_EXECLIST_STATUS_LO(base)          _MMIO((base) + 0x234)
-#define RING_EXECLIST_STATUS_HI(base)          _MMIO((base) + 0x234 + 4)
+#define RING_EIR(base)                         XE_REG((base) + 0xb0)
+#define RING_EMR(base)                         XE_REG((base) + 0xb4)
+#define RING_ESR(base)                         XE_REG((base) + 0xb8)
+#define RING_BBADDR(base)                      XE_REG((base) + 0x140)
+#define RING_BBADDR_UDW(base)                  XE_REG((base) + 0x168)
+#define RING_EXECLIST_STATUS_LO(base)          XE_REG((base) + 0x234)
+#define RING_EXECLIST_STATUS_HI(base)          XE_REG((base) + 0x234 + 4)
 
-#define RING_CONTEXT_CONTROL(base)             _MMIO((base) + 0x244)
+#define RING_CONTEXT_CONTROL(base)             XE_REG((base) + 0x244)
 #define          CTX_CTRL_INHIBIT_SYN_CTX_SWITCH       REG_BIT(3)
 #define          CTX_CTRL_ENGINE_CTX_RESTORE_INHIBIT   REG_BIT(0)
 
-#define RING_MODE(base)                                _MMIO((base) + 0x29c)
+#define RING_MODE(base)                                XE_REG((base) + 0x29c)
 #define   GFX_DISABLE_LEGACY_MODE              REG_BIT(3)
 
-#define RING_TIMESTAMP(base)                   _MMIO((base) + 0x358)
+#define RING_TIMESTAMP(base)                   XE_REG((base) + 0x358)
 
-#define RING_TIMESTAMP_UDW(base)               _MMIO((base) + 0x358 + 4)
+#define RING_TIMESTAMP_UDW(base)               XE_REG((base) + 0x358 + 4)
 #define   RING_VALID_MASK                      0x00000001
 #define   RING_VALID                           0x00000001
 #define   STOP_RING                            REG_BIT(8)
 #define   TAIL_ADDR                            0x001FFFF8
 
-#define RING_CTX_TIMESTAMP(base)               _MMIO((base) + 0x3a8)
+#define RING_CTX_TIMESTAMP(base)               XE_REG((base) + 0x3a8)
 
-#define RING_FORCE_TO_NONPRIV(base, i)         _MMIO(((base) + 0x4d0) + (i) * 4)
+#define RING_FORCE_TO_NONPRIV(base, i)         XE_REG(((base) + 0x4d0) + (i) * 4)
 #define   RING_FORCE_TO_NONPRIV_DENY           REG_BIT(30)
 #define   RING_FORCE_TO_NONPRIV_ACCESS_MASK    REG_GENMASK(29, 28)
 #define   RING_FORCE_TO_NONPRIV_ACCESS_RW      REG_FIELD_PREP(RING_FORCE_TO_NONPRIV_ACCESS_MASK, 0)
                                                 RING_FORCE_TO_NONPRIV_DENY)
 #define   RING_MAX_NONPRIV_SLOTS  12
 
-#define RING_EXECLIST_SQ_CONTENTS_LO(base)     _MMIO((base) + 0x510)
-#define RING_EXECLIST_SQ_CONTENTS_HI(base)     _MMIO((base) + 0x510 + 4)
+#define RING_EXECLIST_SQ_CONTENTS_LO(base)     XE_REG((base) + 0x510)
+#define RING_EXECLIST_SQ_CONTENTS_HI(base)     XE_REG((base) + 0x510 + 4)
 
-#define RING_EXECLIST_CONTROL(base)            _MMIO((base) + 0x550)
+#define RING_EXECLIST_CONTROL(base)            XE_REG((base) + 0x550)
 #define          EL_CTRL_LOAD                          REG_BIT(0)
 
-#define VDBOX_CGCTL3F10(base)                  _MMIO((base) + 0x3f10)
+#define VDBOX_CGCTL3F10(base)                  XE_REG((base) + 0x3f10)
 #define   IECPUNIT_CLKGATE_DIS                 REG_BIT(22)
 
-#define VDBOX_CGCTL3F18(base)                  _MMIO((base) + 0x3f18)
+#define VDBOX_CGCTL3F18(base)                  XE_REG((base) + 0x3f18)
 #define   ALNUNIT_CLKGATE_DIS                  REG_BIT(13)
 
 #endif
index 657b8cc961bb068843c62b238a246740baae37ac..5648305a8f5a45d599609ff4c7ba909346e0d058 100644 (file)
@@ -9,7 +9,7 @@
 #include "regs/xe_reg_defs.h"
 
 /* RPM unit config (Gen8+) */
-#define RPM_CONFIG0                                    _MMIO(0xd00)
+#define RPM_CONFIG0                                    XE_REG(0xd00)
 #define   RPM_CONFIG0_CRYSTAL_CLOCK_FREQ_MASK          REG_GENMASK(5, 3)
 #define   RPM_CONFIG0_CRYSTAL_CLOCK_FREQ_24_MHZ                0
 #define   RPM_CONFIG0_CRYSTAL_CLOCK_FREQ_19_2_MHZ      1
 #define   RPM_CONFIG0_CRYSTAL_CLOCK_FREQ_25_MHZ                3
 #define   RPM_CONFIG0_CTC_SHIFT_PARAMETER_MASK         REG_GENMASK(2, 1)
 
-#define FORCEWAKE_ACK_MEDIA_VDBOX(n)           _MMIO(0xd50 + (n) * 4)
-#define FORCEWAKE_ACK_MEDIA_VEBOX(n)           _MMIO(0xd70 + (n) * 4)
-#define FORCEWAKE_ACK_RENDER                   _MMIO(0xd84)
+#define FORCEWAKE_ACK_MEDIA_VDBOX(n)           XE_REG(0xd50 + (n) * 4)
+#define FORCEWAKE_ACK_MEDIA_VEBOX(n)           XE_REG(0xd70 + (n) * 4)
+#define FORCEWAKE_ACK_RENDER                   XE_REG(0xd84)
 
-#define GMD_ID                                 _MMIO(0xd8c)
+#define GMD_ID                                 XE_REG(0xd8c)
 #define   GMD_ID_ARCH_MASK                     REG_GENMASK(31, 22)
 #define   GMD_ID_RELEASE_MASK                  REG_GENMASK(21, 14)
 #define   GMD_ID_STEP                          REG_GENMASK(5, 0)
 
-#define FORCEWAKE_ACK_GT_MTL                   _MMIO(0xdfc)
+#define FORCEWAKE_ACK_GT_MTL                   XE_REG(0xdfc)
 
-#define LNCFCMOCS(i)                           _MMIO(0xb020 + (i) * 4) /* L3 Cache Control */
+/* L3 Cache Control */
+#define LNCFCMOCS(i)                           XE_REG(0xb020 + (i) * 4)
 #define LNCFCMOCS_REG_COUNT                    32
 
-#define MCFG_MCR_SELECTOR                      _MMIO(0xfd0)
-#define MTL_MCR_SELECTOR                       _MMIO(0xfd4)
-#define SF_MCR_SELECTOR                                _MMIO(0xfd8)
-#define MCR_SELECTOR                           _MMIO(0xfdc)
-#define GAM_MCR_SELECTOR                       _MMIO(0xfe0)
+#define MCFG_MCR_SELECTOR                      XE_REG(0xfd0)
+#define MTL_MCR_SELECTOR                       XE_REG(0xfd4)
+#define SF_MCR_SELECTOR                                XE_REG(0xfd8)
+#define MCR_SELECTOR                           XE_REG(0xfdc)
+#define GAM_MCR_SELECTOR                       XE_REG(0xfe0)
 #define   MCR_MULTICAST                                REG_BIT(31)
 #define   MCR_SLICE_MASK                       REG_GENMASK(30, 27)
 #define   MCR_SLICE(slice)                     REG_FIELD_PREP(MCR_SLICE_MASK, slice)
 #define   MTL_MCR_GROUPID                      REG_GENMASK(11, 8)
 #define   MTL_MCR_INSTANCEID                   REG_GENMASK(3, 0)
 
-#define FF_SLICE_CS_CHICKEN1                   _MMIO(0x20e0)
+#define FF_SLICE_CS_CHICKEN1                   XE_REG(0x20e0)
 #define   FFSC_PERCTX_PREEMPT_CTRL             REG_BIT(14)
 
-#define FF_SLICE_CS_CHICKEN2                   _MMIO(0x20e4)
+#define FF_SLICE_CS_CHICKEN2                   XE_REG(0x20e4)
 #define   PERF_FIX_BALANCING_CFE_DISABLE       REG_BIT(15)
 
-#define CS_DEBUG_MODE1                         _MMIO(0x20ec)
+#define CS_DEBUG_MODE1                         XE_REG(0x20ec)
 #define   FF_DOP_CLOCK_GATE_DISABLE            REG_BIT(1)
 #define   REPLAY_MODE_GRANULARITY              REG_BIT(0)
 
-#define PS_INVOCATION_COUNT                    _MMIO(0x2348)
+#define PS_INVOCATION_COUNT                    XE_REG(0x2348)
 
-#define CS_CHICKEN1                            _MMIO(0x2580)
+#define CS_CHICKEN1                            XE_REG(0x2580)
 #define   PREEMPT_GPGPU_LEVEL(hi, lo)          (((hi) << 2) | ((lo) << 1))
 #define   PREEMPT_GPGPU_MID_THREAD_LEVEL       PREEMPT_GPGPU_LEVEL(0, 0)
 #define   PREEMPT_GPGPU_THREAD_GROUP_LEVEL     PREEMPT_GPGPU_LEVEL(0, 1)
 #define   PREEMPT_GPGPU_LEVEL_MASK             PREEMPT_GPGPU_LEVEL(1, 1)
 #define   PREEMPT_3D_OBJECT_LEVEL              REG_BIT(0)
 
-#define GLOBAL_MOCS(i)                         _MMIO(0x4000 + (i) * 4) /* Global MOCS regs */
-#define CCS_AUX_INV                            _MMIO(0x4208)
+#define GLOBAL_MOCS(i)                         XE_REG(0x4000 + (i) * 4) /* Global MOCS regs */
+#define CCS_AUX_INV                            XE_REG(0x4208)
 
-#define VD0_AUX_INV                            _MMIO(0x4218)
-#define VE0_AUX_INV                            _MMIO(0x4238)
+#define VD0_AUX_INV                            XE_REG(0x4218)
+#define VE0_AUX_INV                            XE_REG(0x4238)
 
-#define VE1_AUX_INV                            _MMIO(0x42b8)
+#define VE1_AUX_INV                            XE_REG(0x42b8)
 #define   AUX_INV                              REG_BIT(0)
 
-#define XEHP_TILE0_ADDR_RANGE                  MCR_REG(0x4900)
-#define XEHP_FLAT_CCS_BASE_ADDR                        MCR_REG(0x4910)
+#define XEHP_TILE0_ADDR_RANGE                  XE_REG_MCR(0x4900)
+#define XEHP_FLAT_CCS_BASE_ADDR                        XE_REG_MCR(0x4910)
 
-#define CHICKEN_RASTER_1                       MCR_REG(0x6204)
+#define CHICKEN_RASTER_1                       XE_REG_MCR(0x6204)
 #define   DIS_SF_ROUND_NEAREST_EVEN            REG_BIT(8)
 
-#define CHICKEN_RASTER_2                       MCR_REG(0x6208)
+#define CHICKEN_RASTER_2                       XE_REG_MCR(0x6208)
 #define   TBIMR_FAST_CLIP                      REG_BIT(5)
 
-#define VFLSKPD                                        MCR_REG(0x62a8)
+#define VFLSKPD                                        XE_REG_MCR(0x62a8)
 #define   DIS_OVER_FETCH_CACHE                 REG_BIT(1)
 #define   DIS_MULT_MISS_RD_SQUASH              REG_BIT(0)
 
-#define FF_MODE2                               _MMIO(0x6604)
-#define XEHP_FF_MODE2                          MCR_REG(0x6604)
+#define FF_MODE2                               XE_REG(0x6604)
+#define XEHP_FF_MODE2                          XE_REG_MCR(0x6604)
 #define   FF_MODE2_GS_TIMER_MASK               REG_GENMASK(31, 24)
 #define   FF_MODE2_GS_TIMER_224                        REG_FIELD_PREP(FF_MODE2_GS_TIMER_MASK, 224)
 #define   FF_MODE2_TDS_TIMER_MASK              REG_GENMASK(23, 16)
 #define   FF_MODE2_TDS_TIMER_128               REG_FIELD_PREP(FF_MODE2_TDS_TIMER_MASK, 4)
 
-#define CACHE_MODE_1                           _MMIO(0x7004)
+#define CACHE_MODE_1                           XE_REG(0x7004)
 #define   MSAA_OPTIMIZATION_REDUC_DISABLE      REG_BIT(11)
 
-#define XEHP_PSS_MODE2                         MCR_REG(0x703c)
+#define XEHP_PSS_MODE2                         XE_REG_MCR(0x703c)
 #define   SCOREBOARD_STALL_FLUSH_CONTROL       REG_BIT(5)
 
-#define HIZ_CHICKEN                                    _MMIO(0x7018)
+#define HIZ_CHICKEN                                    XE_REG(0x7018)
 #define   DG1_HZ_READ_SUPPRESSION_OPTIMIZATION_DISABLE REG_BIT(14)
 #define   HZ_DEPTH_TEST_LE_GE_OPT_DISABLE              REG_BIT(13)
 
-#define COMMON_SLICE_CHICKEN1                  _MMIO(0x7010)
+#define COMMON_SLICE_CHICKEN1                  XE_REG(0x7010)
 
-#define COMMON_SLICE_CHICKEN4                  _MMIO(0x7300)
+#define COMMON_SLICE_CHICKEN4                  XE_REG(0x7300)
 #define   DISABLE_TDC_LOAD_BALANCING_CALC      REG_BIT(6)
 
-#define COMMON_SLICE_CHICKEN3                          _MMIO(0x7304)
-#define XEHP_COMMON_SLICE_CHICKEN3                     MCR_REG(0x7304)
+#define COMMON_SLICE_CHICKEN3                          XE_REG(0x7304)
+#define XEHP_COMMON_SLICE_CHICKEN3                     XE_REG_MCR(0x7304)
 #define   DG1_FLOAT_POINT_BLEND_OPT_STRICT_MODE_EN     REG_BIT(12)
 #define   XEHP_DUAL_SIMD8_SEQ_MERGE_DISABLE            REG_BIT(12)
 #define   BLEND_EMB_FIX_DISABLE_IN_RCC                 REG_BIT(11)
 #define   DISABLE_CPS_AWARE_COLOR_PIPE                 REG_BIT(9)
 
-#define XEHP_SLICE_COMMON_ECO_CHICKEN1         MCR_REG(0x731c)
+#define XEHP_SLICE_COMMON_ECO_CHICKEN1         XE_REG_MCR(0x731c)
 #define   MSC_MSAA_REODER_BUF_BYPASS_DISABLE   REG_BIT(14)
 
-#define VF_PREEMPTION                          _MMIO(0x83a4)
+#define VF_PREEMPTION                          XE_REG(0x83a4)
 #define   PREEMPTION_VERTEX_COUNT              REG_GENMASK(15, 0)
 
-#define VFG_PREEMPTION_CHICKEN                 _MMIO(0x83b4)
+#define VFG_PREEMPTION_CHICKEN                 XE_REG(0x83b4)
 #define   POLYGON_TRIFAN_LINELOOP_DISABLE      REG_BIT(4)
 
-#define XEHP_SQCM                              MCR_REG(0x8724)
+#define XEHP_SQCM                              XE_REG_MCR(0x8724)
 #define   EN_32B_ACCESS                                REG_BIT(30)
 
-#define        MIRROR_FUSE3                            _MMIO(0x9118)
+#define        MIRROR_FUSE3                            XE_REG(0x9118)
 #define   L3BANK_PAIR_COUNT                    4
 #define   L3BANK_MASK                          REG_GENMASK(3, 0)
 /* on Xe_HP the same fuses indicates mslices instead of L3 banks */
 #define   MEML3_EN_MASK                                REG_GENMASK(3, 0)
 
 /* Fuse readout registers for GT */
-#define XEHP_FUSE4                             _MMIO(0x9114)
+#define XEHP_FUSE4                             XE_REG(0x9114)
 #define   GT_L3_EXC_MASK                       REG_GENMASK(6, 4)
 
-#define GT_VEBOX_VDBOX_DISABLE                 _MMIO(0x9140)
+#define GT_VEBOX_VDBOX_DISABLE                 XE_REG(0x9140)
 #define   GT_VEBOX_DISABLE_MASK                        REG_GENMASK(19, 16)
 #define   GT_VDBOX_DISABLE_MASK                        REG_GENMASK(7, 0)
 
-#define XELP_EU_ENABLE                         _MMIO(0x9134)   /* "_DISABLE" on Xe_LP */
+#define XELP_EU_ENABLE                         XE_REG(0x9134)  /* "_DISABLE" on Xe_LP */
 #define   XELP_EU_MASK                         REG_GENMASK(7, 0)
-#define XELP_GT_GEOMETRY_DSS_ENABLE            _MMIO(0x913c)
-#define XEHP_GT_COMPUTE_DSS_ENABLE             _MMIO(0x9144)
-#define XEHPC_GT_COMPUTE_DSS_ENABLE_EXT                _MMIO(0x9148)
+#define XELP_GT_GEOMETRY_DSS_ENABLE            XE_REG(0x913c)
+#define XEHP_GT_COMPUTE_DSS_ENABLE             XE_REG(0x9144)
+#define XEHPC_GT_COMPUTE_DSS_ENABLE_EXT                XE_REG(0x9148)
 
-#define GDRST                                  _MMIO(0x941c)
+#define GDRST                                  XE_REG(0x941c)
 #define   GRDOM_GUC                            REG_BIT(3)
 #define   GRDOM_FULL                           REG_BIT(0)
 
-#define MISCCPCTL                              _MMIO(0x9424)
+#define MISCCPCTL                              XE_REG(0x9424)
 #define   DOP_CLOCK_GATE_RENDER_ENABLE         REG_BIT(1)
 
-#define UNSLCGCTL9430                          _MMIO(0x9430)
+#define UNSLCGCTL9430                          XE_REG(0x9430)
 #define   MSQDUNIT_CLKGATE_DIS                 REG_BIT(3)
 
-#define UNSLICE_UNIT_LEVEL_CLKGATE             _MMIO(0x9434)
+#define UNSLICE_UNIT_LEVEL_CLKGATE             XE_REG(0x9434)
 #define   VFUNIT_CLKGATE_DIS                   REG_BIT(20)
 #define   TSGUNIT_CLKGATE_DIS                  REG_BIT(17) /* XEHPSDV */
 #define   CG3DDISCFEG_CLKGATE_DIS              REG_BIT(17) /* DG2 */
 #define   HSUNIT_CLKGATE_DIS                   REG_BIT(8)
 #define   VSUNIT_CLKGATE_DIS                   REG_BIT(3)
 
-#define UNSLCGCTL9440                          _MMIO(0x9440)
+#define UNSLCGCTL9440                          XE_REG(0x9440)
 #define   GAMTLBOACS_CLKGATE_DIS               REG_BIT(28)
 #define   GAMTLBVDBOX5_CLKGATE_DIS             REG_BIT(27)
 #define   GAMTLBVDBOX6_CLKGATE_DIS             REG_BIT(26)
 #define   GAMTLBBLT_CLKGATE_DIS                        REG_BIT(14)
 #define   GAMTLBVDBOX1_CLKGATE_DIS             REG_BIT(6)
 
-#define UNSLCGCTL9444                          _MMIO(0x9444)
+#define UNSLCGCTL9444                          XE_REG(0x9444)
 #define   GAMTLBGFXA0_CLKGATE_DIS              REG_BIT(30)
 #define   GAMTLBGFXA1_CLKGATE_DIS              REG_BIT(29)
 #define   GAMTLBCOMPA0_CLKGATE_DIS             REG_BIT(28)
 #define   GAMTLBVEBOX0_CLKGATE_DIS             REG_BIT(16)
 #define   LTCDD_CLKGATE_DIS                    REG_BIT(10)
 
-#define XEHP_SLICE_UNIT_LEVEL_CLKGATE          MCR_REG(0x94d4)
+#define XEHP_SLICE_UNIT_LEVEL_CLKGATE          XE_REG_MCR(0x94d4)
 #define   L3_CR2X_CLKGATE_DIS                  REG_BIT(17)
 #define   L3_CLKGATE_DIS                       REG_BIT(16)
 #define   NODEDSS_CLKGATE_DIS                  REG_BIT(12)
 #define   RCCUNIT_CLKGATE_DIS                  REG_BIT(7)
 #define   SARBUNIT_CLKGATE_DIS                 REG_BIT(5)
 
-#define UNSLICE_UNIT_LEVEL_CLKGATE2            _MMIO(0x94e4)
+#define UNSLICE_UNIT_LEVEL_CLKGATE2            XE_REG(0x94e4)
 #define   VSUNIT_CLKGATE2_DIS                  REG_BIT(19)
 
-#define SUBSLICE_UNIT_LEVEL_CLKGATE            MCR_REG(0x9524)
+#define SUBSLICE_UNIT_LEVEL_CLKGATE            XE_REG_MCR(0x9524)
 #define   DSS_ROUTER_CLKGATE_DIS               REG_BIT(28)
 #define   GWUNIT_CLKGATE_DIS                   REG_BIT(16)
 
-#define SUBSLICE_UNIT_LEVEL_CLKGATE2           MCR_REG(0x9528)
+#define SUBSLICE_UNIT_LEVEL_CLKGATE2           XE_REG_MCR(0x9528)
 #define   CPSSUNIT_CLKGATE_DIS                 REG_BIT(9)
 
-#define SSMCGCTL9530                           MCR_REG(0x9530)
+#define SSMCGCTL9530                           XE_REG_MCR(0x9530)
 #define   RTFUNIT_CLKGATE_DIS                  REG_BIT(18)
 
-#define DFR_RATIO_EN_AND_CHICKEN               MCR_REG(0x9550)
+#define DFR_RATIO_EN_AND_CHICKEN               XE_REG_MCR(0x9550)
 #define   DFR_DISABLE                          REG_BIT(9)
 
-#define RPNSWREQ                               _MMIO(0xa008)
+#define RPNSWREQ                               XE_REG(0xa008)
 #define   REQ_RATIO_MASK                       REG_GENMASK(31, 23)
-#define RC_CONTROL                             _MMIO(0xa090)
-#define RC_STATE                               _MMIO(0xa094)
+#define RC_CONTROL                             XE_REG(0xa090)
+#define RC_STATE                               XE_REG(0xa094)
 
-#define PMINTRMSK                              _MMIO(0xa168)
+#define PMINTRMSK                              XE_REG(0xa168)
 #define   PMINTR_DISABLE_REDIRECT_TO_GUC       REG_BIT(31)
 #define   ARAT_EXPIRED_INTRMSK                 REG_BIT(9)
 
-#define FORCEWAKE_GT                           _MMIO(0xa188)
+#define FORCEWAKE_GT                           XE_REG(0xa188)
 
-#define PG_ENABLE                              _MMIO(0xa210)
+#define PG_ENABLE                              XE_REG(0xa210)
 
-#define CTC_MODE                               _MMIO(0xa26c)
+#define CTC_MODE                               XE_REG(0xa26c)
 #define   CTC_SHIFT_PARAMETER_MASK             REG_GENMASK(2, 1)
 #define   CTC_SOURCE_DIVIDE_LOGIC              REG_BIT(0)
 
-#define FORCEWAKE_RENDER                       _MMIO(0xa278)
-#define FORCEWAKE_MEDIA_VDBOX(n)               _MMIO(0xa540 + (n) * 4)
-#define FORCEWAKE_MEDIA_VEBOX(n)               _MMIO(0xa560 + (n) * 4)
+#define FORCEWAKE_RENDER                       XE_REG(0xa278)
+#define FORCEWAKE_MEDIA_VDBOX(n)               XE_REG(0xa540 + (n) * 4)
+#define FORCEWAKE_MEDIA_VEBOX(n)               XE_REG(0xa560 + (n) * 4)
 
-#define XEHPC_LNCFMISCCFGREG0                  MCR_REG(0xb01c)
+#define XEHPC_LNCFMISCCFGREG0                  XE_REG_MCR(0xb01c)
 #define   XEHPC_OVRLSCCC                       REG_BIT(0)
 
-#define XEHP_L3NODEARBCFG                      MCR_REG(0xb0b4)
+#define XEHP_L3NODEARBCFG                      XE_REG_MCR(0xb0b4)
 #define   XEHP_LNESPARE                                REG_BIT(19)
 
-#define XEHP_L3SQCREG5                         MCR_REG(0xb158)
+#define XEHP_L3SQCREG5                         XE_REG_MCR(0xb158)
 #define   L3_PWM_TIMER_INIT_VAL_MASK           REG_GENMASK(9, 0)
 
-#define XEHP_L3SCQREG7                         MCR_REG(0xb188)
+#define XEHP_L3SCQREG7                         XE_REG_MCR(0xb188)
 #define   BLEND_FILL_CACHING_OPT_DIS           REG_BIT(3)
 
-#define XEHP_MERT_MOD_CTRL                     MCR_REG(0xcf28)
-#define RENDER_MOD_CTRL                                MCR_REG(0xcf2c)
-#define COMP_MOD_CTRL                          MCR_REG(0xcf30)
-#define XEHP_VDBX_MOD_CTRL                     MCR_REG(0xcf34)
-#define XEHP_VEBX_MOD_CTRL                     MCR_REG(0xcf38)
+#define XEHP_MERT_MOD_CTRL                     XE_REG_MCR(0xcf28)
+#define RENDER_MOD_CTRL                                XE_REG_MCR(0xcf2c)
+#define COMP_MOD_CTRL                          XE_REG_MCR(0xcf30)
+#define XEHP_VDBX_MOD_CTRL                     XE_REG_MCR(0xcf34)
+#define XEHP_VEBX_MOD_CTRL                     XE_REG_MCR(0xcf38)
 #define   FORCE_MISS_FTLB                      REG_BIT(3)
 
-#define XEHP_GAMSTLB_CTRL                      MCR_REG(0xcf4c)
+#define XEHP_GAMSTLB_CTRL                      XE_REG_MCR(0xcf4c)
 #define   CONTROL_BLOCK_CLKGATE_DIS            REG_BIT(12)
 #define   EGRESS_BLOCK_CLKGATE_DIS             REG_BIT(11)
 #define   TAG_BLOCK_CLKGATE_DIS                        REG_BIT(7)
 
-#define XEHP_GAMCNTRL_CTRL                     MCR_REG(0xcf54)
+#define XEHP_GAMCNTRL_CTRL                     XE_REG_MCR(0xcf54)
 #define   INVALIDATION_BROADCAST_MODE_DIS      REG_BIT(12)
 #define   GLOBAL_INVALIDATION_MODE             REG_BIT(2)
 
-#define SAMPLER_MODE                           MCR_REG(0xe18c)
+#define SAMPLER_MODE                           XE_REG_MCR(0xe18c)
 #define   ENABLE_SMALLPL                       REG_BIT(15)
 #define   SC_DISABLE_POWER_OPTIMIZATION_EBB    REG_BIT(9)
 #define   SAMPLER_ENABLE_HEADLESS_MSG          REG_BIT(5)
 
-#define HALF_SLICE_CHICKEN7                            MCR_REG(0xe194)
+#define HALF_SLICE_CHICKEN7                            XE_REG_MCR(0xe194)
 #define   DG2_DISABLE_ROUND_ENABLE_ALLOW_FOR_SSLA      REG_BIT(15)
 
-#define CACHE_MODE_SS                          MCR_REG(0xe420)
+#define CACHE_MODE_SS                          XE_REG_MCR(0xe420)
 #define   ENABLE_EU_COUNT_FOR_TDL_FLUSH                REG_BIT(10)
 #define   DISABLE_ECC                          REG_BIT(5)
 #define   ENABLE_PREFETCH_INTO_IC              REG_BIT(3)
 
-#define ROW_CHICKEN4                           MCR_REG(0xe48c)
+#define ROW_CHICKEN4                           XE_REG_MCR(0xe48c)
 #define   DISABLE_GRF_CLEAR                    REG_BIT(13)
 #define   XEHP_DIS_BBL_SYSPIPE                 REG_BIT(11)
 #define   DISABLE_TDL_PUSH                     REG_BIT(9)
 #define   THREAD_EX_ARB_MODE                   REG_GENMASK(3, 2)
 #define   THREAD_EX_ARB_MODE_RR_AFTER_DEP      REG_FIELD_PREP(THREAD_EX_ARB_MODE, 0x2)
 
-#define ROW_CHICKEN                            MCR_REG(0xe4f0)
+#define ROW_CHICKEN                            XE_REG_MCR(0xe4f0)
 #define   UGM_BACKUP_MODE                      REG_BIT(13)
 #define   MDQ_ARBITRATION_MODE                 REG_BIT(12)
 
-#define ROW_CHICKEN2                           MCR_REG(0xe4f4)
+#define ROW_CHICKEN2                           XE_REG_MCR(0xe4f4)
 #define   DISABLE_READ_SUPPRESSION             REG_BIT(15)
 #define   DISABLE_EARLY_READ                   REG_BIT(14)
 #define   ENABLE_LARGE_GRF_MODE                        REG_BIT(12)
 #define   PUSH_CONST_DEREF_HOLD_DIS            REG_BIT(8)
 #define   DISABLE_DOP_GATING                   REG_BIT(0)
 
-#define XEHP_HDC_CHICKEN0                                      MCR_REG(0xe5f0)
+#define XEHP_HDC_CHICKEN0                                      XE_REG_MCR(0xe5f0)
 #define   LSC_L1_FLUSH_CTL_3D_DATAPORT_FLUSH_EVENTS_MASK       REG_GENMASK(13, 11)
 
-#define RT_CTRL                                        MCR_REG(0xe530)
+#define RT_CTRL                                        XE_REG_MCR(0xe530)
 #define   DIS_NULL_QUERY                       REG_BIT(10)
 
-#define LSC_CHICKEN_BIT_0                      MCR_REG(0xe7c8)
+#define LSC_CHICKEN_BIT_0                      XE_REG_MCR(0xe7c8)
 #define   DISABLE_D8_D16_COASLESCE             REG_BIT(30)
 #define   FORCE_1_SUB_MESSAGE_PER_FRAGMENT     REG_BIT(15)
 
-#define LSC_CHICKEN_BIT_0_UDW                  MCR_REG(0xe7c8 + 4)
+#define LSC_CHICKEN_BIT_0_UDW                  XE_REG_MCR(0xe7c8 + 4)
 #define   DIS_CHAIN_2XSIMD8                    REG_BIT(55 - 32)
 #define   FORCE_SLM_FENCE_SCOPE_TO_TILE                REG_BIT(42 - 32)
 #define   FORCE_UGM_FENCE_SCOPE_TO_TILE                REG_BIT(41 - 32)
 #define   MAXREQS_PER_BANK                     REG_GENMASK(39 - 32, 37 - 32)
 #define   DISABLE_128B_EVICTION_COMMAND_UDW    REG_BIT(36 - 32)
 
-#define SARB_CHICKEN1                          MCR_REG(0xe90c)
+#define SARB_CHICKEN1                          XE_REG_MCR(0xe90c)
 #define   COMP_CKN_IN                          REG_GENMASK(30, 29)
 
-#define RCU_MODE                               _MMIO(0x14800)
+#define RCU_MODE                               XE_REG(0x14800)
 #define   RCU_MODE_CCS_ENABLE                  REG_BIT(0)
 
-#define FORCEWAKE_ACK_GT                       _MMIO(0x130044)
+#define FORCEWAKE_ACK_GT                       XE_REG(0x130044)
 #define   FORCEWAKE_KERNEL                     BIT(0)
 #define   FORCEWAKE_USER                       BIT(1)
 #define   FORCEWAKE_KERNEL_FALLBACK            BIT(15)
 
-#define GT_CORE_STATUS                         _MMIO(0x138060)
+#define GT_CORE_STATUS                         XE_REG(0x138060)
 #define   RCN_MASK                             REG_GENMASK(2, 0)
 #define   GT_RC0                               0
 #define   GT_RC6                               3
 
-#define GT_GFX_RC6_LOCKED                      _MMIO(0x138104)
-#define GT_GFX_RC6                             _MMIO(0x138108)
+#define GT_GFX_RC6_LOCKED                      XE_REG(0x138104)
+#define GT_GFX_RC6                             XE_REG(0x138108)
 
-#define GT_INTR_DW(x)                          _MMIO(0x190018 + ((x) * 4))
+#define GT_INTR_DW(x)                          XE_REG(0x190018 + ((x) * 4))
 
-#define GUC_SG_INTR_ENABLE                     _MMIO(0x190038)
+#define GUC_SG_INTR_ENABLE                     XE_REG(0x190038)
 #define   ENGINE1_MASK                         REG_GENMASK(31, 16)
 #define   ENGINE0_MASK                         REG_GENMASK(15, 0)
 
-#define GPM_WGBOXPERF_INTR_ENABLE              _MMIO(0x19003c)
+#define GPM_WGBOXPERF_INTR_ENABLE              XE_REG(0x19003c)
 
-#define INTR_IDENTITY_REG(x)                   _MMIO(0x190060 + ((x) * 4))
+#define INTR_IDENTITY_REG(x)                   XE_REG(0x190060 + ((x) * 4))
 #define   INTR_DATA_VALID                      REG_BIT(31)
 #define   INTR_ENGINE_INSTANCE(x)              REG_FIELD_GET(GENMASK(25, 20), x)
 #define   INTR_ENGINE_CLASS(x)                 REG_FIELD_GET(GENMASK(18, 16), x)
 #define   INTR_ENGINE_INTR(x)                  REG_FIELD_GET(GENMASK(15, 0), x)
 #define   OTHER_GUC_INSTANCE                   0
 
-#define RENDER_COPY_INTR_ENABLE                        _MMIO(0x190030)
-#define VCS_VECS_INTR_ENABLE                   _MMIO(0x190034)
-#define CCS_RSVD_INTR_ENABLE                   _MMIO(0x190048)
-#define IIR_REG_SELECTOR(x)                    _MMIO(0x190070 + ((x) * 4))
-#define RCS0_RSVD_INTR_MASK                    _MMIO(0x190090)
-#define BCS_RSVD_INTR_MASK                     _MMIO(0x1900a0)
-#define VCS0_VCS1_INTR_MASK                    _MMIO(0x1900a8)
-#define VCS2_VCS3_INTR_MASK                    _MMIO(0x1900ac)
-#define VECS0_VECS1_INTR_MASK                  _MMIO(0x1900d0)
-#define GUC_SG_INTR_MASK                       _MMIO(0x1900e8)
-#define GPM_WGBOXPERF_INTR_MASK                        _MMIO(0x1900ec)
-#define CCS0_CCS1_INTR_MASK                    _MMIO(0x190100)
-#define CCS2_CCS3_INTR_MASK                    _MMIO(0x190104)
-#define XEHPC_BCS1_BCS2_INTR_MASK              _MMIO(0x190110)
-#define XEHPC_BCS3_BCS4_INTR_MASK              _MMIO(0x190114)
-#define XEHPC_BCS5_BCS6_INTR_MASK              _MMIO(0x190118)
-#define XEHPC_BCS7_BCS8_INTR_MASK              _MMIO(0x19011c)
+#define RENDER_COPY_INTR_ENABLE                        XE_REG(0x190030)
+#define VCS_VECS_INTR_ENABLE                   XE_REG(0x190034)
+#define CCS_RSVD_INTR_ENABLE                   XE_REG(0x190048)
+#define IIR_REG_SELECTOR(x)                    XE_REG(0x190070 + ((x) * 4))
+#define RCS0_RSVD_INTR_MASK                    XE_REG(0x190090)
+#define BCS_RSVD_INTR_MASK                     XE_REG(0x1900a0)
+#define VCS0_VCS1_INTR_MASK                    XE_REG(0x1900a8)
+#define VCS2_VCS3_INTR_MASK                    XE_REG(0x1900ac)
+#define VECS0_VECS1_INTR_MASK                  XE_REG(0x1900d0)
+#define GUC_SG_INTR_MASK                       XE_REG(0x1900e8)
+#define GPM_WGBOXPERF_INTR_MASK                        XE_REG(0x1900ec)
+#define CCS0_CCS1_INTR_MASK                    XE_REG(0x190100)
+#define CCS2_CCS3_INTR_MASK                    XE_REG(0x190104)
+#define XEHPC_BCS1_BCS2_INTR_MASK              XE_REG(0x190110)
+#define XEHPC_BCS3_BCS4_INTR_MASK              XE_REG(0x190114)
+#define XEHPC_BCS5_BCS6_INTR_MASK              XE_REG(0x190118)
+#define XEHPC_BCS7_BCS8_INTR_MASK              XE_REG(0x19011c)
 
 #endif
index bc9b42b38795f5cf021f7a512aa5ddf253ec6163..37e0ac5509317e9e6cda82bf041a4de3a9278f59 100644 (file)
@@ -13,7 +13,7 @@
 
 /* Definitions of GuC H/W registers, bits, etc */
 
-#define GUC_STATUS                     _MMIO(0xc000)
+#define GUC_STATUS                     XE_REG(0xc000)
 #define   GS_AUTH_STATUS_MASK          REG_GENMASK(31, 30)
 #define   GS_AUTH_STATUS_BAD           REG_FIELD_PREP(GS_AUTH_STATUS_MASK, 0x1)
 #define   GS_AUTH_STATUS_GOOD          REG_FIELD_PREP(GS_AUTH_STATUS_MASK, 0x2)
 #define   GS_BOOTROM_JUMP_PASSED       REG_FIELD_PREP(GS_BOOTROM_MASK, 0x76)
 #define   GS_MIA_IN_RESET              REG_BIT(0)
 
-#define SOFT_SCRATCH(n)                        _MMIO(0xc180 + (n) * 4)
+#define SOFT_SCRATCH(n)                        XE_REG(0xc180 + (n) * 4)
 #define SOFT_SCRATCH_COUNT             16
 
-#define UOS_RSA_SCRATCH(i)             _MMIO(0xc200 + (i) * 4)
+#define UOS_RSA_SCRATCH(i)             XE_REG(0xc200 + (i) * 4)
 #define UOS_RSA_SCRATCH_COUNT          64
 
-#define DMA_ADDR_0_LOW                 _MMIO(0xc300)
-#define DMA_ADDR_0_HIGH                        _MMIO(0xc304)
-#define DMA_ADDR_1_LOW                 _MMIO(0xc308)
-#define DMA_ADDR_1_HIGH                        _MMIO(0xc30c)
+#define DMA_ADDR_0_LOW                 XE_REG(0xc300)
+#define DMA_ADDR_0_HIGH                        XE_REG(0xc304)
+#define DMA_ADDR_1_LOW                 XE_REG(0xc308)
+#define DMA_ADDR_1_HIGH                        XE_REG(0xc30c)
 #define   DMA_ADDR_SPACE_MASK          REG_GENMASK(20, 16)
 #define   DMA_ADDRESS_SPACE_WOPCM      REG_FIELD_PREP(DMA_ADDR_SPACE_MASK, 7)
-#define DMA_COPY_SIZE                  _MMIO(0xc310)
-#define DMA_CTRL                       _MMIO(0xc314)
+#define DMA_COPY_SIZE                  XE_REG(0xc310)
+#define DMA_CTRL                       XE_REG(0xc314)
 #define   HUC_UKERNEL                  REG_BIT(9)
 #define   UOS_MOVE                     REG_BIT(4)
 #define   START_DMA                    REG_BIT(0)
-#define DMA_GUC_WOPCM_OFFSET           _MMIO(0xc340)
+#define DMA_GUC_WOPCM_OFFSET           XE_REG(0xc340)
 #define   GUC_WOPCM_OFFSET_SHIFT       14
 #define   GUC_WOPCM_OFFSET_MASK                REG_GENMASK(31, GUC_WOPCM_OFFSET_SHIFT)
 #define   HUC_LOADING_AGENT_GUC                REG_BIT(1)
 #define   GUC_WOPCM_OFFSET_VALID       REG_BIT(0)
-#define GUC_MAX_IDLE_COUNT             _MMIO(0xc3e4)
+#define GUC_MAX_IDLE_COUNT             XE_REG(0xc3e4)
 
-#define HUC_STATUS2                    _MMIO(0xd3b0)
+#define HUC_STATUS2                    XE_REG(0xd3b0)
 #define   HUC_FW_VERIFIED              REG_BIT(7)
 
-#define HUC_KERNEL_LOAD_INFO           _MMIO(0xc1dc)
+#define HUC_KERNEL_LOAD_INFO           XE_REG(0xc1dc)
 #define   HUC_LOAD_SUCCESSFUL          REG_BIT(0)
 
-#define GUC_WOPCM_SIZE                 _MMIO(0xc050)
+#define GUC_WOPCM_SIZE                 XE_REG(0xc050)
 #define   GUC_WOPCM_SIZE_MASK          REG_GENMASK(31, 12)
 #define   GUC_WOPCM_SIZE_LOCKED                REG_BIT(0)
 
-#define GT_PM_CONFIG                   _MMIO(0x13816c)
+#define GT_PM_CONFIG                   XE_REG(0x13816c)
 #define   GT_DOORBELL_ENABLE           REG_BIT(0)
 
-#define GTCR                           _MMIO(0x4274)
+#define GTCR                           XE_REG(0x4274)
 #define   GTCR_INVALIDATE              REG_BIT(0)
 
-#define GUC_TLB_INV_CR                 _MMIO(0xcee8)
+#define GUC_TLB_INV_CR                 XE_REG(0xcee8)
 #define   GUC_TLB_INV_CR_INVALIDATE    REG_BIT(0)
 
-#define GUC_ARAT_C6DIS                         _MMIO(0xa178)
+#define GUC_ARAT_C6DIS                         XE_REG(0xa178)
 
-#define GUC_SHIM_CONTROL                       _MMIO(0xc064)
+#define GUC_SHIM_CONTROL                       XE_REG(0xc064)
 #define   PVC_GUC_MOCS_INDEX_MASK              REG_GENMASK(25, 24)
 #define   PVC_GUC_MOCS_UC_INDEX                        1
 #define   PVC_GUC_MOCS_INDEX(index)            REG_FIELD_PREP(PVC_GUC_MOCS_INDEX_MASK, \
@@ -87,9 +87,9 @@
 #define   GUC_DISABLE_SRAM_INIT_TO_ZEROES      REG_BIT(0)
 
 
-#define GUC_SEND_INTERRUPT                     _MMIO(0xc4c8)
+#define GUC_SEND_INTERRUPT                     XE_REG(0xc4c8)
 #define   GUC_SEND_TRIGGER                     REG_BIT(0)
-#define GUC_HOST_INTERRUPT                     _MMIO(0x1901f0)
+#define GUC_HOST_INTERRUPT                     XE_REG(0x1901f0)
 
 #define GUC_NUM_DOORBELLS                      256
 
@@ -103,24 +103,24 @@ struct guc_doorbell_info {
        u32 reserved[14];
 } __packed;
 
-#define DRBREGL(x)                             _MMIO(0x1000 + (x) * 8)
+#define DRBREGL(x)                             XE_REG(0x1000 + (x) * 8)
 #define   DRB_VALID                            REG_BIT(0)
-#define DRBREGU(x)                             _MMIO(0x1000 + (x) * 8 + 4)
+#define DRBREGU(x)                             XE_REG(0x1000 + (x) * 8 + 4)
 
-#define DIST_DBS_POPULATED                     _MMIO(0xd08)
+#define DIST_DBS_POPULATED                     XE_REG(0xd08)
 #define   DOORBELLS_PER_SQIDI_MASK             REG_GENMASK(23, 16)
 #define   SQIDIS_DOORBELL_EXIST_MASK           REG_GENMASK(15, 0)
 
-#define GUC_BCS_RCS_IER                                _MMIO(0xC550)
-#define GUC_VCS2_VCS1_IER                      _MMIO(0xC554)
-#define GUC_WD_VECS_IER                                _MMIO(0xC558)
-#define GUC_PM_P24C_IER                                _MMIO(0xC55C)
+#define GUC_BCS_RCS_IER                                XE_REG(0xC550)
+#define GUC_VCS2_VCS1_IER                      XE_REG(0xC554)
+#define GUC_WD_VECS_IER                                XE_REG(0xC558)
+#define GUC_PM_P24C_IER                                XE_REG(0xC55C)
 
-#define VF_SW_FLAG(n)                  _MMIO(0x190240 + (n) * 4)
-#define VF_SW_FLAG_COUNT               4
+#define VF_SW_FLAG(n)                          XE_REG(0x190240 + (n) * 4)
+#define VF_SW_FLAG_COUNT                       4
 
-#define MED_VF_SW_FLAG(n)              _MMIO(0x190310 + (n) * 4)
-#define MED_VF_SW_FLAG_COUNT           4
+#define MED_VF_SW_FLAG(n)                      XE_REG(0x190310 + (n) * 4)
+#define MED_VF_SW_FLAG_COUNT                   4
 
 /* GuC Interrupt Vector */
 #define GUC_INTR_GUC2HOST                      BIT(15)
index e31137e2c42f255da94667d11236ed567e153fc2..787f223bc72755976f1bb98746d672d28ea53848 100644 (file)
@@ -94,13 +94,4 @@ struct xe_reg_mcr {
                                 .__reg = XE_REG_INITIALIZER(r_,  ##__VA_ARGS__, .mcr = 1)      \
                                 })
 
-/*
- * TODO: remove these once the register declarations are not using them anymore
- */
-#undef _MMIO
-#undef MCR_REG
-#define _MMIO(r_)      ((const struct xe_reg){ .reg = r_ })
-#define MCR_REG(r_)    ((const struct xe_reg_mcr){ .__reg.reg = r_,            \
-                                                   .__reg.mcr = 1 })
-
 #endif
index 9d18430fd2252fea7ee83c89e933baeb56557ddb..e0734c8f922c6f6e6316a256aed7b19abe2e15e0 100644 (file)
@@ -7,7 +7,7 @@
 
 #include "regs/xe_reg_defs.h"
 
-#define GU_CNTL                                        _MMIO(0x101010)
+#define GU_CNTL                                        XE_REG(0x101010)
 #define   LMEM_INIT                            REG_BIT(7)
 
 #define RENDER_RING_BASE                       0x02000
 #define   GT_CS_MASTER_ERROR_INTERRUPT         REG_BIT(3)
 #define   GT_RENDER_USER_INTERRUPT             REG_BIT(0)
 
-#define FF_THREAD_MODE                         _MMIO(0x20a0)
+#define FF_THREAD_MODE                         XE_REG(0x20a0)
 #define   FF_TESSELATION_DOP_GATE_DISABLE      BIT(19)
 
-#define PVC_RP_STATE_CAP                       _MMIO(0x281014)
-#define MTL_RP_STATE_CAP                       _MMIO(0x138000)
+#define PVC_RP_STATE_CAP                       XE_REG(0x281014)
+#define MTL_RP_STATE_CAP                       XE_REG(0x138000)
 
-#define MTL_MEDIAP_STATE_CAP                   _MMIO(0x138020)
+#define MTL_MEDIAP_STATE_CAP                   XE_REG(0x138020)
 #define   MTL_RP0_CAP_MASK                     REG_GENMASK(8, 0)
 #define   MTL_RPN_CAP_MASK                     REG_GENMASK(24, 16)
 
-#define MTL_GT_RPE_FREQUENCY                   _MMIO(0x13800c)
-#define MTL_MPE_FREQUENCY                      _MMIO(0x13802c)
+#define MTL_GT_RPE_FREQUENCY                   XE_REG(0x13800c)
+#define MTL_MPE_FREQUENCY                      XE_REG(0x13802c)
 #define   MTL_RPE_MASK                         REG_GENMASK(8, 0)
 
 #define TRANSCODER_A_OFFSET                    0x60000
 #define PIPE_DSI0_OFFSET                       0x7b000
 #define PIPE_DSI1_OFFSET                       0x7b800
 
-#define SOFTWARE_FLAGS_SPR33                   _MMIO(0x4f084)
+#define SOFTWARE_FLAGS_SPR33                   XE_REG(0x4f084)
 
 #define PCU_IRQ_OFFSET                         0x444e0
 #define GU_MISC_IRQ_OFFSET                     0x444f0
 #define   GU_MISC_GSE                          REG_BIT(27)
 
-#define GFX_MSTR_IRQ                           _MMIO(0x190010)
+#define GFX_MSTR_IRQ                           XE_REG(0x190010)
 #define   MASTER_IRQ                           REG_BIT(31)
 #define   GU_MISC_IRQ                          REG_BIT(29)
 #define   DISPLAY_IRQ                          REG_BIT(16)
 #define   GT_DW_IRQ(x)                         REG_BIT(x)
 
-#define DG1_MSTR_TILE_INTR                     _MMIO(0x190008)
+#define DG1_MSTR_TILE_INTR                     XE_REG(0x190008)
 #define   DG1_MSTR_IRQ                         REG_BIT(31)
 #define   DG1_MSTR_TILE(t)                     REG_BIT(t)
 
-#define TIMESTAMP_OVERRIDE                                     _MMIO(0x44074)
+#define TIMESTAMP_OVERRIDE                                     XE_REG(0x44074)
 #define   TIMESTAMP_OVERRIDE_US_COUNTER_DENOMINATOR_MASK       REG_GENMASK(15, 12)
 #define   TIMESTAMP_OVERRIDE_US_COUNTER_DIVIDER_MASK           REG_GENMASK(9, 0)
 
-#define GGC                                    _MMIO(0x108040)
+#define GGC                                    XE_REG(0x108040)
 #define   GMS_MASK                             REG_GENMASK(15, 8)
 #define   GGMS_MASK                            REG_GENMASK(7, 6)
 
-#define GSMBASE                                        _MMIO(0x108100)
-#define DSMBASE                                        _MMIO(0x1080C0)
+#define GSMBASE                                        XE_REG(0x108100)
+#define DSMBASE                                        XE_REG(0x1080C0)
 #define   BDSM_MASK                            REG_GENMASK64(63, 20)
 
 #endif
index 29e112c108c624e63e0512345790377ca509e0ae..51d215f08113de7034bc6d7e3d385f03c0068bae 100644 (file)
 #include "xe_reg_sr.h"
 #include "xe_rtp.h"
 
-#undef _MMIO
-#undef MCR_REG
-#define _MMIO(x)       _XE_RTP_REG(x)
-#define MCR_REG(x)     _XE_RTP_MCR_REG(x)
+#undef XE_REG
+#undef XE_REG_MCR
+#define XE_REG(x, ...)         _XE_RTP_REG(x)
+#define XE_REG_MCR(x, ...)     _XE_RTP_MCR_REG(x)
 
-#define REGULAR_REG1   _MMIO(1)
-#define REGULAR_REG2   _MMIO(2)
-#define REGULAR_REG3   _MMIO(3)
-#define MCR_REG1       MCR_REG(1)
-#define MCR_REG2       MCR_REG(2)
-#define MCR_REG3       MCR_REG(3)
+#define REGULAR_REG1   XE_REG(1)
+#define REGULAR_REG2   XE_REG(2)
+#define REGULAR_REG3   XE_REG(3)
+#define MCR_REG1       XE_REG_MCR(1)
+#define MCR_REG2       XE_REG_MCR(2)
+#define MCR_REG3       XE_REG_MCR(3)
 
 struct rtp_test_case {
        const char *name;
index fc580d961dbbee50ad568e4b0c5e95f10aabec4c..4e5ad616063d74637f57f7f589cfc5231931648e 100644 (file)
@@ -185,11 +185,11 @@ err:
        return err;
 }
 
-#define GUC_TLB_INV_CR                         _MMIO(0xcee8)
+#define GUC_TLB_INV_CR                         XE_REG(0xcee8)
 #define   GUC_TLB_INV_CR_INVALIDATE            REG_BIT(0)
-#define PVC_GUC_TLB_INV_DESC0                  _MMIO(0xcf7c)
+#define PVC_GUC_TLB_INV_DESC0                  XE_REG(0xcf7c)
 #define   PVC_GUC_TLB_INV_DESC0_VALID          REG_BIT(0)
-#define PVC_GUC_TLB_INV_DESC1                  _MMIO(0xcf80)
+#define PVC_GUC_TLB_INV_DESC1                  XE_REG(0xcf80)
 #define   PVC_GUC_TLB_INV_DESC1_INVALIDATE     REG_BIT(6)
 
 void xe_ggtt_invalidate(struct xe_gt *gt)
index 4e9e9b1aad0234cd1a2f1e971fa822a8d80f6936..89d20faced19dd51f815902f27156a26a398521c 100644 (file)
@@ -22,6 +22,8 @@
 #include "xe_uc_fw.h"
 #include "xe_wopcm.h"
 
+#define MEDIA_GUC_HOST_INTERRUPT        XE_REG(0x190304)
+
 static struct xe_gt *
 guc_to_gt(struct xe_guc *guc)
 {
@@ -244,8 +246,6 @@ static void guc_write_params(struct xe_guc *guc)
                xe_mmio_write32(gt, SOFT_SCRATCH(1 + i).reg, guc->params[i]);
 }
 
-#define MEDIA_GUC_HOST_INTERRUPT        _MMIO(0x190304)
-
 int xe_guc_init(struct xe_guc *guc)
 {
        struct xe_device *xe = guc_to_xe(guc);
index 6d59e36b6e5c7885b53ced2cc3e4a2997fce6476..72d460d5323bd7c0fce2bab1d3766ff1068aef33 100644 (file)
 
 #define MCHBAR_MIRROR_BASE_SNB 0x140000
 
-#define GEN6_RP_STATE_CAP                      _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5998)
-#define   RP0_MASK                             REG_GENMASK(7, 0)
-#define   RP1_MASK                             REG_GENMASK(15, 8)
-#define   RPN_MASK                             REG_GENMASK(23, 16)
+#define GEN6_RP_STATE_CAP      XE_REG(MCHBAR_MIRROR_BASE_SNB + 0x5998)
+#define   RP0_MASK             REG_GENMASK(7, 0)
+#define   RP1_MASK             REG_GENMASK(15, 8)
+#define   RPN_MASK             REG_GENMASK(23, 16)
 
-#define GEN10_FREQ_INFO_REC    _MMIO(MCHBAR_MIRROR_BASE_SNB + 0x5ef0)
+#define GEN10_FREQ_INFO_REC    XE_REG(MCHBAR_MIRROR_BASE_SNB + 0x5ef0)
 #define   RPE_MASK             REG_GENMASK(15, 8)
 
-#define GEN12_RPSTAT1          _MMIO(0x1381b4)
+#define GEN12_RPSTAT1          XE_REG(0x1381b4)
 #define   GEN12_CAGF_MASK      REG_GENMASK(19, 11)
 
-#define MTL_MIRROR_TARGET_WP1  _MMIO(0xc60)
+#define MTL_MIRROR_TARGET_WP1  XE_REG(0xc60)
 #define   MTL_CAGF_MASK                REG_GENMASK(8, 0)
 
 #define GT_FREQUENCY_MULTIPLIER        50
index 9dd730d707e5c4c1f119be8da7eb07115c666385..2fffb2865cab6434fe6cc38bb68c152a8546bb8d 100644 (file)
@@ -22,9 +22,9 @@
  * Interrupt registers for a unit are always consecutive and ordered
  * ISR, IMR, IIR, IER.
  */
-#define IMR(offset)                            _MMIO(offset + 0x4)
-#define IIR(offset)                            _MMIO(offset + 0x8)
-#define IER(offset)                            _MMIO(offset + 0xc)
+#define IMR(offset)                            XE_REG(offset + 0x4)
+#define IIR(offset)                            XE_REG(offset + 0x8)
+#define IER(offset)                            XE_REG(offset + 0xc)
 
 static void assert_iir_is_zero(struct xe_gt *gt, struct xe_reg reg)
 {
index 24a3c184214496b2553a4313de9aba1244bf9570..3b719c774efa6de45ad8a66ab2c6cb7795685acb 100644 (file)
@@ -17,7 +17,7 @@
 #include "xe_macros.h"
 #include "xe_module.h"
 
-#define XEHP_MTCFG_ADDR                _MMIO(0x101800)
+#define XEHP_MTCFG_ADDR                XE_REG(0x101800)
 #define TILE_COUNT             REG_GENMASK(15, 8)
 #define GEN12_LMEM_BAR         2
 
index 67c63facdbf94fca998631b0865381bec090058c..f2ceecd536ed065cd0cf8897e852b9481c8e34f4 100644 (file)
@@ -477,8 +477,8 @@ static void __init_mocs_table(struct xe_gt *gt,
        for (i = 0;
             i < info->n_entries ? (mocs = get_entry_control(info, i)), 1 : 0;
             i++) {
-               mocs_dbg(&gt->xe->drm, "%d 0x%x 0x%x\n", i, _MMIO(addr + i * 4).reg, mocs);
-               xe_mmio_write32(gt, _MMIO(addr + i * 4).reg, mocs);
+               mocs_dbg(&gt->xe->drm, "%d 0x%x 0x%x\n", i, XE_REG(addr + i * 4).reg, mocs);
+               xe_mmio_write32(gt, XE_REG(addr + i * 4).reg, mocs);
        }
 }
 
index fcf6ae2c92ccbba732a321c290a50a2b6ce07378..abee41fa3cb9d0b4b5327a1578dd6d60d9ab3a99 100644 (file)
@@ -71,7 +71,7 @@ static void program_pat(struct xe_gt *gt, const u32 table[], int n_entries)
 static void program_pat_mcr(struct xe_gt *gt, const u32 table[], int n_entries)
 {
        for (int i = 0; i < n_entries; i++)
-               xe_gt_mcr_multicast_write(gt, MCR_REG(_PAT_INDEX(i)), table[i]);
+               xe_gt_mcr_multicast_write(gt, XE_REG_MCR(_PAT_INDEX(i)), table[i]);
 }
 
 void xe_pat_init(struct xe_gt *gt)
index 4e689cd4b23b86875bbed05a14029ce70c0a1106..837ff7c71280e0a984bf6a49bb033287c44bfa70 100644 (file)
@@ -7,7 +7,7 @@
 
 #include "regs/xe_reg_defs.h"
 
-#define PCODE_MAILBOX                  _MMIO(0x138124)
+#define PCODE_MAILBOX                  XE_REG(0x138124)
 #define   PCODE_READY                  REG_BIT(31)
 #define   PCODE_MB_PARAM2              REG_GENMASK(23, 16)
 #define   PCODE_MB_PARAM1              REG_GENMASK(15, 8)
@@ -22,8 +22,8 @@
 #define     PCODE_GT_RATIO_OUT_OF_RANGE        0x10
 #define     PCODE_REJECTED             0x11
 
-#define PCODE_DATA0                    _MMIO(0x138128)
-#define PCODE_DATA1                    _MMIO(0x13812C)
+#define PCODE_DATA0                    XE_REG(0x138128)
+#define PCODE_DATA1                    XE_REG(0x13812C)
 
 /* Min Freq QOS Table */
 #define   PCODE_WRITE_MIN_FREQ_TABLE   0x8
index e38397fc771a12406a279758745c6482dd617c53..b7bbba929170b21141447b53e05ec32a18a3f128 100644 (file)
@@ -151,7 +151,7 @@ static void apply_one_mmio(struct xe_gt *gt, u32 reg,
                val = (entry->clr_bits ?: entry->set_bits) << 16;
        else if (entry->clr_bits + 1)
                val = (entry->reg_type == XE_RTP_REG_MCR ?
-                      xe_gt_mcr_unicast_read_any(gt, MCR_REG(reg)) :
+                      xe_gt_mcr_unicast_read_any(gt, XE_REG_MCR(reg)) :
                       xe_mmio_read32(gt, reg)) & (~entry->clr_bits);
        else
                val = 0;
@@ -166,7 +166,7 @@ static void apply_one_mmio(struct xe_gt *gt, u32 reg,
        drm_dbg(&xe->drm, "REG[0x%x] = 0x%08x", reg, val);
 
        if (entry->reg_type == XE_RTP_REG_MCR)
-               xe_gt_mcr_multicast_write(gt, MCR_REG(reg), val);
+               xe_gt_mcr_multicast_write(gt, XE_REG_MCR(reg), val);
        else
                xe_mmio_write32(gt, reg, val);
 }
index 5a266570691215cdd83fcdfd3d9983afb1d9f609..310d5dfe30d574222774bb97433738f5440a1e67 100644 (file)
 #include "xe_platform_types.h"
 #include "xe_rtp.h"
 
-#undef _MMIO
-#undef MCR_REG
-#define _MMIO(x)       _XE_RTP_REG(x)
-#define MCR_REG(x)     _XE_RTP_MCR_REG(x)
+#undef XE_REG
+#undef XE_REG_MCR
+#define XE_REG(x, ...)         _XE_RTP_REG(x)
+#define XE_REG_MCR(x, ...)     _XE_RTP_MCR_REG(x)
 
 static bool match_not_render(const struct xe_gt *gt,
                             const struct xe_hw_engine *hwe)
@@ -45,10 +45,10 @@ static const struct xe_rtp_entry register_whitelist[] = {
        },
        { XE_RTP_NAME("16014440446"),
          XE_RTP_RULES(PLATFORM(PVC)),
-         XE_RTP_ACTIONS(WHITELIST(_MMIO(0x4400),
+         XE_RTP_ACTIONS(WHITELIST(XE_REG(0x4400),
                                   RING_FORCE_TO_NONPRIV_DENY |
                                   RING_FORCE_TO_NONPRIV_RANGE_64),
-                        WHITELIST(_MMIO(0x4500),
+                        WHITELIST(XE_REG(0x4500),
                                   RING_FORCE_TO_NONPRIV_DENY |
                                   RING_FORCE_TO_NONPRIV_RANGE_64))
        },
index a3be7c77753a1393f3855113fe9d12cd9b05520c..c0c587a739808d1eb511fb93ffc2e5b3deee98b2 100644 (file)
@@ -197,7 +197,7 @@ struct xe_reg_sr;
  * XE_RTP_ACTION_WR - Helper to write a value to the register, overriding all
  *                    the bits
  * @reg_: Register
- * @reg_type_: Register type - automatically expanded by MCR_REG/_MMIO
+ * @reg_type_: Register type - automatically expanded by XE_REG
  * @val_: Value to set
  * @...: Additional fields to override in the struct xe_rtp_action entry
  *
@@ -213,7 +213,7 @@ struct xe_reg_sr;
 /**
  * XE_RTP_ACTION_SET - Set bits from @val_ in the register.
  * @reg_: Register
- * @reg_type_: Register type - automatically expanded by MCR_REG/_MMIO
+ * @reg_type_: Register type - automatically expanded by XE_REG
  * @val_: Bits to set in the register
  * @...: Additional fields to override in the struct xe_rtp_action entry
  *
@@ -232,7 +232,7 @@ struct xe_reg_sr;
 /**
  * XE_RTP_ACTION_CLR: Clear bits from @val_ in the register.
  * @reg_: Register
- * @reg_type_: Register type - automatically expanded by MCR_REG/_MMIO
+ * @reg_type_: Register type - automatically expanded by XE_REG
  * @val_: Bits to clear in the register
  * @...: Additional fields to override in the struct xe_rtp_action entry
  *
@@ -251,7 +251,7 @@ struct xe_reg_sr;
 /**
  * XE_RTP_ACTION_FIELD_SET: Set a bit range
  * @reg_: Register
- * @reg_type_: Register type - automatically expanded by MCR_REG/_MMIO
+ * @reg_type_: Register type - automatically expanded by XE_REG
  * @mask_bits_: Mask of bits to be changed in the register, forming a field
  * @val_: Value to set in the field denoted by @mask_bits_
  * @...: Additional fields to override in the struct xe_rtp_action entry
@@ -274,7 +274,7 @@ struct xe_reg_sr;
 /**
  * XE_RTP_ACTION_WHITELIST - Add register to userspace whitelist
  * @reg_: Register
- * @reg_type_: Register type - automatically expanded by MCR_REG/_MMIO
+ * @reg_type_: Register type - automatically expanded by XE_REG
  * @val_: Whitelist-specific flags to set
  * @...: Additional fields to override in the struct xe_rtp_action entry
  *
index 43912312cfba7db7fbc8f1e1b125176b6192c31d..f6eefa951175f1e0f8212281acba415a52c3b36b 100644 (file)
 #include "xe_platform_types.h"
 #include "xe_rtp.h"
 
-#undef _MMIO
-#undef MCR_REG
-#define _MMIO(x)       _XE_RTP_REG(x)
-#define MCR_REG(x)     _XE_RTP_MCR_REG(x)
+#undef XE_REG
+#undef XE_REG_MCR
+#define XE_REG(x, ...)         _XE_RTP_REG(x)
+#define XE_REG_MCR(x, ...)     _XE_RTP_MCR_REG(x)
 
 static const struct xe_rtp_entry gt_tunings[] = {
        { XE_RTP_NAME("Tuning: Blend Fill Caching Optimization Disable"),
index 7a9bf588301e9ce0c16a3d76f94e07fab9a6559a..ed3fa51ccd24687fa9442a468b47b05d544d1f9c 100644 (file)
  *    a more declarative approach rather than procedural.
  */
 
-#undef _MMIO
-#undef MCR_REG
-#define _MMIO(x)       _XE_RTP_REG(x)
-#define MCR_REG(x)     _XE_RTP_MCR_REG(x)
+#undef XE_REG
+#undef XE_REG_MCR
+#define XE_REG(x, ...)         _XE_RTP_REG(x)
+#define XE_REG_MCR(x, ...)     _XE_RTP_MCR_REG(x)
 
 __diag_push();
 __diag_ignore_all("-Woverride-init", "Allow field overrides in table");