Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915: split out i9xx_wm_regs.h

Very few files need the i9xx watermark related registers. Split them out
to a dedicated file.

Reviewed-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241213115111.335474-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

+261 -248
+1
drivers/gpu/drm/i915/display/i9xx_display_sr.c
··· 6 6 #include "i915_drv.h" 7 7 #include "i915_reg.h" 8 8 #include "i9xx_display_sr.h" 9 + #include "i9xx_wm_regs.h" 9 10 #include "intel_de.h" 10 11 #include "intel_gmbus.h" 11 12 #include "intel_pci_config.h"
+1
drivers/gpu/drm/i915/display/i9xx_wm.c
··· 6 6 #include "i915_drv.h" 7 7 #include "i915_reg.h" 8 8 #include "i9xx_wm.h" 9 + #include "i9xx_wm_regs.h" 9 10 #include "intel_atomic.h" 10 11 #include "intel_bo.h" 11 12 #include "intel_display.h"
+257
drivers/gpu/drm/i915/display/i9xx_wm_regs.h
··· 1 + /* SPDX-License-Identifier: MIT */ 2 + /* Copyright © 2024 Intel Corporation */ 3 + 4 + #ifndef __I9XX_WM_REGS_H__ 5 + #define __I9XX_WM_REGS_H__ 6 + 7 + #include "intel_display_reg_defs.h" 8 + 9 + #define DSPARB(dev_priv) _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x70030) 10 + #define DSPARB_CSTART_MASK (0x7f << 7) 11 + #define DSPARB_CSTART_SHIFT 7 12 + #define DSPARB_BSTART_MASK (0x7f) 13 + #define DSPARB_BSTART_SHIFT 0 14 + #define DSPARB_BEND_SHIFT 9 /* on 855 */ 15 + #define DSPARB_AEND_SHIFT 0 16 + #define DSPARB_SPRITEA_SHIFT_VLV 0 17 + #define DSPARB_SPRITEA_MASK_VLV (0xff << 0) 18 + #define DSPARB_SPRITEB_SHIFT_VLV 8 19 + #define DSPARB_SPRITEB_MASK_VLV (0xff << 8) 20 + #define DSPARB_SPRITEC_SHIFT_VLV 16 21 + #define DSPARB_SPRITEC_MASK_VLV (0xff << 16) 22 + #define DSPARB_SPRITED_SHIFT_VLV 24 23 + #define DSPARB_SPRITED_MASK_VLV (0xff << 24) 24 + #define DSPARB2 _MMIO(VLV_DISPLAY_BASE + 0x70060) /* vlv/chv */ 25 + #define DSPARB_SPRITEA_HI_SHIFT_VLV 0 26 + #define DSPARB_SPRITEA_HI_MASK_VLV (0x1 << 0) 27 + #define DSPARB_SPRITEB_HI_SHIFT_VLV 4 28 + #define DSPARB_SPRITEB_HI_MASK_VLV (0x1 << 4) 29 + #define DSPARB_SPRITEC_HI_SHIFT_VLV 8 30 + #define DSPARB_SPRITEC_HI_MASK_VLV (0x1 << 8) 31 + #define DSPARB_SPRITED_HI_SHIFT_VLV 12 32 + #define DSPARB_SPRITED_HI_MASK_VLV (0x1 << 12) 33 + #define DSPARB_SPRITEE_HI_SHIFT_VLV 16 34 + #define DSPARB_SPRITEE_HI_MASK_VLV (0x1 << 16) 35 + #define DSPARB_SPRITEF_HI_SHIFT_VLV 20 36 + #define DSPARB_SPRITEF_HI_MASK_VLV (0x1 << 20) 37 + #define DSPARB3 _MMIO(VLV_DISPLAY_BASE + 0x7006c) /* chv */ 38 + #define DSPARB_SPRITEE_SHIFT_VLV 0 39 + #define DSPARB_SPRITEE_MASK_VLV (0xff << 0) 40 + #define DSPARB_SPRITEF_SHIFT_VLV 8 41 + #define DSPARB_SPRITEF_MASK_VLV (0xff << 8) 42 + 43 + /* pnv/gen4/g4x/vlv/chv */ 44 + #define DSPFW1(dev_priv) _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x70034) 45 + #define DSPFW_SR_SHIFT 23 46 + #define DSPFW_SR_MASK (0x1ff << 23) 47 + #define DSPFW_CURSORB_SHIFT 16 48 + #define DSPFW_CURSORB_MASK (0x3f << 16) 49 + #define DSPFW_PLANEB_SHIFT 8 50 + #define DSPFW_PLANEB_MASK (0x7f << 8) 51 + #define DSPFW_PLANEB_MASK_VLV (0xff << 8) /* vlv/chv */ 52 + #define DSPFW_PLANEA_SHIFT 0 53 + #define DSPFW_PLANEA_MASK (0x7f << 0) 54 + #define DSPFW_PLANEA_MASK_VLV (0xff << 0) /* vlv/chv */ 55 + #define DSPFW2(dev_priv) _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x70038) 56 + #define DSPFW_FBC_SR_EN (1 << 31) /* g4x */ 57 + #define DSPFW_FBC_SR_SHIFT 28 58 + #define DSPFW_FBC_SR_MASK (0x7 << 28) /* g4x */ 59 + #define DSPFW_FBC_HPLL_SR_SHIFT 24 60 + #define DSPFW_FBC_HPLL_SR_MASK (0xf << 24) /* g4x */ 61 + #define DSPFW_SPRITEB_SHIFT (16) 62 + #define DSPFW_SPRITEB_MASK (0x7f << 16) /* g4x */ 63 + #define DSPFW_SPRITEB_MASK_VLV (0xff << 16) /* vlv/chv */ 64 + #define DSPFW_CURSORA_SHIFT 8 65 + #define DSPFW_CURSORA_MASK (0x3f << 8) 66 + #define DSPFW_PLANEC_OLD_SHIFT 0 67 + #define DSPFW_PLANEC_OLD_MASK (0x7f << 0) /* pre-gen4 sprite C */ 68 + #define DSPFW_SPRITEA_SHIFT 0 69 + #define DSPFW_SPRITEA_MASK (0x7f << 0) /* g4x */ 70 + #define DSPFW_SPRITEA_MASK_VLV (0xff << 0) /* vlv/chv */ 71 + #define DSPFW3(dev_priv) _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x7003c) 72 + #define DSPFW_HPLL_SR_EN (1 << 31) 73 + #define PINEVIEW_SELF_REFRESH_EN (1 << 30) 74 + #define DSPFW_CURSOR_SR_SHIFT 24 75 + #define DSPFW_CURSOR_SR_MASK (0x3f << 24) 76 + #define DSPFW_HPLL_CURSOR_SHIFT 16 77 + #define DSPFW_HPLL_CURSOR_MASK (0x3f << 16) 78 + #define DSPFW_HPLL_SR_SHIFT 0 79 + #define DSPFW_HPLL_SR_MASK (0x1ff << 0) 80 + 81 + /* vlv/chv */ 82 + #define DSPFW4 _MMIO(VLV_DISPLAY_BASE + 0x70070) 83 + #define DSPFW_SPRITEB_WM1_SHIFT 16 84 + #define DSPFW_SPRITEB_WM1_MASK (0xff << 16) 85 + #define DSPFW_CURSORA_WM1_SHIFT 8 86 + #define DSPFW_CURSORA_WM1_MASK (0x3f << 8) 87 + #define DSPFW_SPRITEA_WM1_SHIFT 0 88 + #define DSPFW_SPRITEA_WM1_MASK (0xff << 0) 89 + #define DSPFW5 _MMIO(VLV_DISPLAY_BASE + 0x70074) 90 + #define DSPFW_PLANEB_WM1_SHIFT 24 91 + #define DSPFW_PLANEB_WM1_MASK (0xff << 24) 92 + #define DSPFW_PLANEA_WM1_SHIFT 16 93 + #define DSPFW_PLANEA_WM1_MASK (0xff << 16) 94 + #define DSPFW_CURSORB_WM1_SHIFT 8 95 + #define DSPFW_CURSORB_WM1_MASK (0x3f << 8) 96 + #define DSPFW_CURSOR_SR_WM1_SHIFT 0 97 + #define DSPFW_CURSOR_SR_WM1_MASK (0x3f << 0) 98 + #define DSPFW6 _MMIO(VLV_DISPLAY_BASE + 0x70078) 99 + #define DSPFW_SR_WM1_SHIFT 0 100 + #define DSPFW_SR_WM1_MASK (0x1ff << 0) 101 + #define DSPFW7 _MMIO(VLV_DISPLAY_BASE + 0x7007c) 102 + #define DSPFW7_CHV _MMIO(VLV_DISPLAY_BASE + 0x700b4) /* wtf #1? */ 103 + #define DSPFW_SPRITED_WM1_SHIFT 24 104 + #define DSPFW_SPRITED_WM1_MASK (0xff << 24) 105 + #define DSPFW_SPRITED_SHIFT 16 106 + #define DSPFW_SPRITED_MASK_VLV (0xff << 16) 107 + #define DSPFW_SPRITEC_WM1_SHIFT 8 108 + #define DSPFW_SPRITEC_WM1_MASK (0xff << 8) 109 + #define DSPFW_SPRITEC_SHIFT 0 110 + #define DSPFW_SPRITEC_MASK_VLV (0xff << 0) 111 + #define DSPFW8_CHV _MMIO(VLV_DISPLAY_BASE + 0x700b8) 112 + #define DSPFW_SPRITEF_WM1_SHIFT 24 113 + #define DSPFW_SPRITEF_WM1_MASK (0xff << 24) 114 + #define DSPFW_SPRITEF_SHIFT 16 115 + #define DSPFW_SPRITEF_MASK_VLV (0xff << 16) 116 + #define DSPFW_SPRITEE_WM1_SHIFT 8 117 + #define DSPFW_SPRITEE_WM1_MASK (0xff << 8) 118 + #define DSPFW_SPRITEE_SHIFT 0 119 + #define DSPFW_SPRITEE_MASK_VLV (0xff << 0) 120 + #define DSPFW9_CHV _MMIO(VLV_DISPLAY_BASE + 0x7007c) /* wtf #2? */ 121 + #define DSPFW_PLANEC_WM1_SHIFT 24 122 + #define DSPFW_PLANEC_WM1_MASK (0xff << 24) 123 + #define DSPFW_PLANEC_SHIFT 16 124 + #define DSPFW_PLANEC_MASK_VLV (0xff << 16) 125 + #define DSPFW_CURSORC_WM1_SHIFT 8 126 + #define DSPFW_CURSORC_WM1_MASK (0x3f << 16) 127 + #define DSPFW_CURSORC_SHIFT 0 128 + #define DSPFW_CURSORC_MASK (0x3f << 0) 129 + 130 + /* vlv/chv high order bits */ 131 + #define DSPHOWM _MMIO(VLV_DISPLAY_BASE + 0x70064) 132 + #define DSPFW_SR_HI_SHIFT 24 133 + #define DSPFW_SR_HI_MASK (3 << 24) /* 2 bits for chv, 1 for vlv */ 134 + #define DSPFW_SPRITEF_HI_SHIFT 23 135 + #define DSPFW_SPRITEF_HI_MASK (1 << 23) 136 + #define DSPFW_SPRITEE_HI_SHIFT 22 137 + #define DSPFW_SPRITEE_HI_MASK (1 << 22) 138 + #define DSPFW_PLANEC_HI_SHIFT 21 139 + #define DSPFW_PLANEC_HI_MASK (1 << 21) 140 + #define DSPFW_SPRITED_HI_SHIFT 20 141 + #define DSPFW_SPRITED_HI_MASK (1 << 20) 142 + #define DSPFW_SPRITEC_HI_SHIFT 16 143 + #define DSPFW_SPRITEC_HI_MASK (1 << 16) 144 + #define DSPFW_PLANEB_HI_SHIFT 12 145 + #define DSPFW_PLANEB_HI_MASK (1 << 12) 146 + #define DSPFW_SPRITEB_HI_SHIFT 8 147 + #define DSPFW_SPRITEB_HI_MASK (1 << 8) 148 + #define DSPFW_SPRITEA_HI_SHIFT 4 149 + #define DSPFW_SPRITEA_HI_MASK (1 << 4) 150 + #define DSPFW_PLANEA_HI_SHIFT 0 151 + #define DSPFW_PLANEA_HI_MASK (1 << 0) 152 + #define DSPHOWM1 _MMIO(VLV_DISPLAY_BASE + 0x70068) 153 + #define DSPFW_SR_WM1_HI_SHIFT 24 154 + #define DSPFW_SR_WM1_HI_MASK (3 << 24) /* 2 bits for chv, 1 for vlv */ 155 + #define DSPFW_SPRITEF_WM1_HI_SHIFT 23 156 + #define DSPFW_SPRITEF_WM1_HI_MASK (1 << 23) 157 + #define DSPFW_SPRITEE_WM1_HI_SHIFT 22 158 + #define DSPFW_SPRITEE_WM1_HI_MASK (1 << 22) 159 + #define DSPFW_PLANEC_WM1_HI_SHIFT 21 160 + #define DSPFW_PLANEC_WM1_HI_MASK (1 << 21) 161 + #define DSPFW_SPRITED_WM1_HI_SHIFT 20 162 + #define DSPFW_SPRITED_WM1_HI_MASK (1 << 20) 163 + #define DSPFW_SPRITEC_WM1_HI_SHIFT 16 164 + #define DSPFW_SPRITEC_WM1_HI_MASK (1 << 16) 165 + #define DSPFW_PLANEB_WM1_HI_SHIFT 12 166 + #define DSPFW_PLANEB_WM1_HI_MASK (1 << 12) 167 + #define DSPFW_SPRITEB_WM1_HI_SHIFT 8 168 + #define DSPFW_SPRITEB_WM1_HI_MASK (1 << 8) 169 + #define DSPFW_SPRITEA_WM1_HI_SHIFT 4 170 + #define DSPFW_SPRITEA_WM1_HI_MASK (1 << 4) 171 + #define DSPFW_PLANEA_WM1_HI_SHIFT 0 172 + #define DSPFW_PLANEA_WM1_HI_MASK (1 << 0) 173 + 174 + /* drain latency register values*/ 175 + #define VLV_DDL(pipe) _MMIO(VLV_DISPLAY_BASE + 0x70050 + 4 * (pipe)) 176 + #define DDL_CURSOR_SHIFT 24 177 + #define DDL_SPRITE_SHIFT(sprite) (8 + 8 * (sprite)) 178 + #define DDL_PLANE_SHIFT 0 179 + #define DDL_PRECISION_HIGH (1 << 7) 180 + #define DDL_PRECISION_LOW (0 << 7) 181 + #define DRAIN_LATENCY_MASK 0x7f 182 + 183 + /* FIFO watermark sizes etc */ 184 + #define G4X_FIFO_LINE_SIZE 64 185 + #define I915_FIFO_LINE_SIZE 64 186 + #define I830_FIFO_LINE_SIZE 32 187 + 188 + #define VALLEYVIEW_FIFO_SIZE 255 189 + #define G4X_FIFO_SIZE 127 190 + #define I965_FIFO_SIZE 512 191 + #define I945_FIFO_SIZE 127 192 + #define I915_FIFO_SIZE 95 193 + #define I855GM_FIFO_SIZE 127 /* In cachelines */ 194 + #define I830_FIFO_SIZE 95 195 + 196 + #define VALLEYVIEW_MAX_WM 0xff 197 + #define G4X_MAX_WM 0x3f 198 + #define I915_MAX_WM 0x3f 199 + 200 + #define PINEVIEW_DISPLAY_FIFO 512 /* in 64byte unit */ 201 + #define PINEVIEW_FIFO_LINE_SIZE 64 202 + #define PINEVIEW_MAX_WM 0x1ff 203 + #define PINEVIEW_DFT_WM 0x3f 204 + #define PINEVIEW_DFT_HPLLOFF_WM 0 205 + #define PINEVIEW_GUARD_WM 10 206 + #define PINEVIEW_CURSOR_FIFO 64 207 + #define PINEVIEW_CURSOR_MAX_WM 0x3f 208 + #define PINEVIEW_CURSOR_DFT_WM 0 209 + #define PINEVIEW_CURSOR_GUARD_WM 5 210 + 211 + #define VALLEYVIEW_CURSOR_MAX_WM 64 212 + #define I965_CURSOR_FIFO 64 213 + #define I965_CURSOR_MAX_WM 32 214 + #define I965_CURSOR_DFT_WM 8 215 + 216 + /* define the Watermark register on Ironlake */ 217 + #define _WM0_PIPEA_ILK 0x45100 218 + #define _WM0_PIPEB_ILK 0x45104 219 + #define _WM0_PIPEC_IVB 0x45200 220 + #define WM0_PIPE_ILK(pipe) _MMIO_BASE_PIPE3(0, (pipe), _WM0_PIPEA_ILK, \ 221 + _WM0_PIPEB_ILK, _WM0_PIPEC_IVB) 222 + #define WM0_PIPE_PRIMARY_MASK REG_GENMASK(31, 16) 223 + #define WM0_PIPE_SPRITE_MASK REG_GENMASK(15, 8) 224 + #define WM0_PIPE_CURSOR_MASK REG_GENMASK(7, 0) 225 + #define WM0_PIPE_PRIMARY(x) REG_FIELD_PREP(WM0_PIPE_PRIMARY_MASK, (x)) 226 + #define WM0_PIPE_SPRITE(x) REG_FIELD_PREP(WM0_PIPE_SPRITE_MASK, (x)) 227 + #define WM0_PIPE_CURSOR(x) REG_FIELD_PREP(WM0_PIPE_CURSOR_MASK, (x)) 228 + #define WM1_LP_ILK _MMIO(0x45108) 229 + #define WM2_LP_ILK _MMIO(0x4510c) 230 + #define WM3_LP_ILK _MMIO(0x45110) 231 + #define WM_LP_ENABLE REG_BIT(31) 232 + #define WM_LP_LATENCY_MASK REG_GENMASK(30, 24) 233 + #define WM_LP_FBC_MASK_BDW REG_GENMASK(23, 19) 234 + #define WM_LP_FBC_MASK_ILK REG_GENMASK(23, 20) 235 + #define WM_LP_PRIMARY_MASK REG_GENMASK(18, 8) 236 + #define WM_LP_CURSOR_MASK REG_GENMASK(7, 0) 237 + #define WM_LP_LATENCY(x) REG_FIELD_PREP(WM_LP_LATENCY_MASK, (x)) 238 + #define WM_LP_FBC_BDW(x) REG_FIELD_PREP(WM_LP_FBC_MASK_BDW, (x)) 239 + #define WM_LP_FBC_ILK(x) REG_FIELD_PREP(WM_LP_FBC_MASK_ILK, (x)) 240 + #define WM_LP_PRIMARY(x) REG_FIELD_PREP(WM_LP_PRIMARY_MASK, (x)) 241 + #define WM_LP_CURSOR(x) REG_FIELD_PREP(WM_LP_CURSOR_MASK, (x)) 242 + #define WM1S_LP_ILK _MMIO(0x45120) 243 + #define WM2S_LP_IVB _MMIO(0x45124) 244 + #define WM3S_LP_IVB _MMIO(0x45128) 245 + #define WM_LP_SPRITE_ENABLE REG_BIT(31) /* ilk/snb WM1S only */ 246 + #define WM_LP_SPRITE_MASK REG_GENMASK(10, 0) 247 + #define WM_LP_SPRITE(x) REG_FIELD_PREP(WM_LP_SPRITE_MASK, (x)) 248 + 249 + #define WM_MISC _MMIO(0x45260) 250 + #define WM_MISC_DATA_PARTITION_5_6 (1 << 0) 251 + 252 + #define WM_DBG _MMIO(0x45280) 253 + #define WM_DBG_DISALLOW_MULTIPLE_LP (1 << 0) 254 + #define WM_DBG_DISALLOW_MAXFIFO (1 << 1) 255 + #define WM_DBG_DISALLOW_SPRITE (1 << 2) 256 + 257 + #endif /* __I9XX_WM_REGS_H__ */
+1
drivers/gpu/drm/i915/display/intel_display_debugfs.c
··· 13 13 #include "hsw_ips.h" 14 14 #include "i915_irq.h" 15 15 #include "i915_reg.h" 16 + #include "i9xx_wm_regs.h" 16 17 #include "intel_alpm.h" 17 18 #include "intel_bo.h" 18 19 #include "intel_crtc.h"
-248
drivers/gpu/drm/i915/i915_reg.h
··· 1739 1739 #define SPRITEA_INVALID_GTT_STATUS REG_BIT(1) 1740 1740 #define PLANEA_INVALID_GTT_STATUS REG_BIT(0) 1741 1741 1742 - #define DSPARB(dev_priv) _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x70030) 1743 - #define DSPARB_CSTART_MASK (0x7f << 7) 1744 - #define DSPARB_CSTART_SHIFT 7 1745 - #define DSPARB_BSTART_MASK (0x7f) 1746 - #define DSPARB_BSTART_SHIFT 0 1747 - #define DSPARB_BEND_SHIFT 9 /* on 855 */ 1748 - #define DSPARB_AEND_SHIFT 0 1749 - #define DSPARB_SPRITEA_SHIFT_VLV 0 1750 - #define DSPARB_SPRITEA_MASK_VLV (0xff << 0) 1751 - #define DSPARB_SPRITEB_SHIFT_VLV 8 1752 - #define DSPARB_SPRITEB_MASK_VLV (0xff << 8) 1753 - #define DSPARB_SPRITEC_SHIFT_VLV 16 1754 - #define DSPARB_SPRITEC_MASK_VLV (0xff << 16) 1755 - #define DSPARB_SPRITED_SHIFT_VLV 24 1756 - #define DSPARB_SPRITED_MASK_VLV (0xff << 24) 1757 - #define DSPARB2 _MMIO(VLV_DISPLAY_BASE + 0x70060) /* vlv/chv */ 1758 - #define DSPARB_SPRITEA_HI_SHIFT_VLV 0 1759 - #define DSPARB_SPRITEA_HI_MASK_VLV (0x1 << 0) 1760 - #define DSPARB_SPRITEB_HI_SHIFT_VLV 4 1761 - #define DSPARB_SPRITEB_HI_MASK_VLV (0x1 << 4) 1762 - #define DSPARB_SPRITEC_HI_SHIFT_VLV 8 1763 - #define DSPARB_SPRITEC_HI_MASK_VLV (0x1 << 8) 1764 - #define DSPARB_SPRITED_HI_SHIFT_VLV 12 1765 - #define DSPARB_SPRITED_HI_MASK_VLV (0x1 << 12) 1766 - #define DSPARB_SPRITEE_HI_SHIFT_VLV 16 1767 - #define DSPARB_SPRITEE_HI_MASK_VLV (0x1 << 16) 1768 - #define DSPARB_SPRITEF_HI_SHIFT_VLV 20 1769 - #define DSPARB_SPRITEF_HI_MASK_VLV (0x1 << 20) 1770 - #define DSPARB3 _MMIO(VLV_DISPLAY_BASE + 0x7006c) /* chv */ 1771 - #define DSPARB_SPRITEE_SHIFT_VLV 0 1772 - #define DSPARB_SPRITEE_MASK_VLV (0xff << 0) 1773 - #define DSPARB_SPRITEF_SHIFT_VLV 8 1774 - #define DSPARB_SPRITEF_MASK_VLV (0xff << 8) 1775 - 1776 - /* pnv/gen4/g4x/vlv/chv */ 1777 - #define DSPFW1(dev_priv) _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x70034) 1778 - #define DSPFW_SR_SHIFT 23 1779 - #define DSPFW_SR_MASK (0x1ff << 23) 1780 - #define DSPFW_CURSORB_SHIFT 16 1781 - #define DSPFW_CURSORB_MASK (0x3f << 16) 1782 - #define DSPFW_PLANEB_SHIFT 8 1783 - #define DSPFW_PLANEB_MASK (0x7f << 8) 1784 - #define DSPFW_PLANEB_MASK_VLV (0xff << 8) /* vlv/chv */ 1785 - #define DSPFW_PLANEA_SHIFT 0 1786 - #define DSPFW_PLANEA_MASK (0x7f << 0) 1787 - #define DSPFW_PLANEA_MASK_VLV (0xff << 0) /* vlv/chv */ 1788 - #define DSPFW2(dev_priv) _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x70038) 1789 - #define DSPFW_FBC_SR_EN (1 << 31) /* g4x */ 1790 - #define DSPFW_FBC_SR_SHIFT 28 1791 - #define DSPFW_FBC_SR_MASK (0x7 << 28) /* g4x */ 1792 - #define DSPFW_FBC_HPLL_SR_SHIFT 24 1793 - #define DSPFW_FBC_HPLL_SR_MASK (0xf << 24) /* g4x */ 1794 - #define DSPFW_SPRITEB_SHIFT (16) 1795 - #define DSPFW_SPRITEB_MASK (0x7f << 16) /* g4x */ 1796 - #define DSPFW_SPRITEB_MASK_VLV (0xff << 16) /* vlv/chv */ 1797 - #define DSPFW_CURSORA_SHIFT 8 1798 - #define DSPFW_CURSORA_MASK (0x3f << 8) 1799 - #define DSPFW_PLANEC_OLD_SHIFT 0 1800 - #define DSPFW_PLANEC_OLD_MASK (0x7f << 0) /* pre-gen4 sprite C */ 1801 - #define DSPFW_SPRITEA_SHIFT 0 1802 - #define DSPFW_SPRITEA_MASK (0x7f << 0) /* g4x */ 1803 - #define DSPFW_SPRITEA_MASK_VLV (0xff << 0) /* vlv/chv */ 1804 - #define DSPFW3(dev_priv) _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x7003c) 1805 - #define DSPFW_HPLL_SR_EN (1 << 31) 1806 - #define PINEVIEW_SELF_REFRESH_EN (1 << 30) 1807 - #define DSPFW_CURSOR_SR_SHIFT 24 1808 - #define DSPFW_CURSOR_SR_MASK (0x3f << 24) 1809 - #define DSPFW_HPLL_CURSOR_SHIFT 16 1810 - #define DSPFW_HPLL_CURSOR_MASK (0x3f << 16) 1811 - #define DSPFW_HPLL_SR_SHIFT 0 1812 - #define DSPFW_HPLL_SR_MASK (0x1ff << 0) 1813 - 1814 - /* vlv/chv */ 1815 - #define DSPFW4 _MMIO(VLV_DISPLAY_BASE + 0x70070) 1816 - #define DSPFW_SPRITEB_WM1_SHIFT 16 1817 - #define DSPFW_SPRITEB_WM1_MASK (0xff << 16) 1818 - #define DSPFW_CURSORA_WM1_SHIFT 8 1819 - #define DSPFW_CURSORA_WM1_MASK (0x3f << 8) 1820 - #define DSPFW_SPRITEA_WM1_SHIFT 0 1821 - #define DSPFW_SPRITEA_WM1_MASK (0xff << 0) 1822 - #define DSPFW5 _MMIO(VLV_DISPLAY_BASE + 0x70074) 1823 - #define DSPFW_PLANEB_WM1_SHIFT 24 1824 - #define DSPFW_PLANEB_WM1_MASK (0xff << 24) 1825 - #define DSPFW_PLANEA_WM1_SHIFT 16 1826 - #define DSPFW_PLANEA_WM1_MASK (0xff << 16) 1827 - #define DSPFW_CURSORB_WM1_SHIFT 8 1828 - #define DSPFW_CURSORB_WM1_MASK (0x3f << 8) 1829 - #define DSPFW_CURSOR_SR_WM1_SHIFT 0 1830 - #define DSPFW_CURSOR_SR_WM1_MASK (0x3f << 0) 1831 - #define DSPFW6 _MMIO(VLV_DISPLAY_BASE + 0x70078) 1832 - #define DSPFW_SR_WM1_SHIFT 0 1833 - #define DSPFW_SR_WM1_MASK (0x1ff << 0) 1834 - #define DSPFW7 _MMIO(VLV_DISPLAY_BASE + 0x7007c) 1835 - #define DSPFW7_CHV _MMIO(VLV_DISPLAY_BASE + 0x700b4) /* wtf #1? */ 1836 - #define DSPFW_SPRITED_WM1_SHIFT 24 1837 - #define DSPFW_SPRITED_WM1_MASK (0xff << 24) 1838 - #define DSPFW_SPRITED_SHIFT 16 1839 - #define DSPFW_SPRITED_MASK_VLV (0xff << 16) 1840 - #define DSPFW_SPRITEC_WM1_SHIFT 8 1841 - #define DSPFW_SPRITEC_WM1_MASK (0xff << 8) 1842 - #define DSPFW_SPRITEC_SHIFT 0 1843 - #define DSPFW_SPRITEC_MASK_VLV (0xff << 0) 1844 - #define DSPFW8_CHV _MMIO(VLV_DISPLAY_BASE + 0x700b8) 1845 - #define DSPFW_SPRITEF_WM1_SHIFT 24 1846 - #define DSPFW_SPRITEF_WM1_MASK (0xff << 24) 1847 - #define DSPFW_SPRITEF_SHIFT 16 1848 - #define DSPFW_SPRITEF_MASK_VLV (0xff << 16) 1849 - #define DSPFW_SPRITEE_WM1_SHIFT 8 1850 - #define DSPFW_SPRITEE_WM1_MASK (0xff << 8) 1851 - #define DSPFW_SPRITEE_SHIFT 0 1852 - #define DSPFW_SPRITEE_MASK_VLV (0xff << 0) 1853 - #define DSPFW9_CHV _MMIO(VLV_DISPLAY_BASE + 0x7007c) /* wtf #2? */ 1854 - #define DSPFW_PLANEC_WM1_SHIFT 24 1855 - #define DSPFW_PLANEC_WM1_MASK (0xff << 24) 1856 - #define DSPFW_PLANEC_SHIFT 16 1857 - #define DSPFW_PLANEC_MASK_VLV (0xff << 16) 1858 - #define DSPFW_CURSORC_WM1_SHIFT 8 1859 - #define DSPFW_CURSORC_WM1_MASK (0x3f << 16) 1860 - #define DSPFW_CURSORC_SHIFT 0 1861 - #define DSPFW_CURSORC_MASK (0x3f << 0) 1862 - 1863 - /* vlv/chv high order bits */ 1864 - #define DSPHOWM _MMIO(VLV_DISPLAY_BASE + 0x70064) 1865 - #define DSPFW_SR_HI_SHIFT 24 1866 - #define DSPFW_SR_HI_MASK (3 << 24) /* 2 bits for chv, 1 for vlv */ 1867 - #define DSPFW_SPRITEF_HI_SHIFT 23 1868 - #define DSPFW_SPRITEF_HI_MASK (1 << 23) 1869 - #define DSPFW_SPRITEE_HI_SHIFT 22 1870 - #define DSPFW_SPRITEE_HI_MASK (1 << 22) 1871 - #define DSPFW_PLANEC_HI_SHIFT 21 1872 - #define DSPFW_PLANEC_HI_MASK (1 << 21) 1873 - #define DSPFW_SPRITED_HI_SHIFT 20 1874 - #define DSPFW_SPRITED_HI_MASK (1 << 20) 1875 - #define DSPFW_SPRITEC_HI_SHIFT 16 1876 - #define DSPFW_SPRITEC_HI_MASK (1 << 16) 1877 - #define DSPFW_PLANEB_HI_SHIFT 12 1878 - #define DSPFW_PLANEB_HI_MASK (1 << 12) 1879 - #define DSPFW_SPRITEB_HI_SHIFT 8 1880 - #define DSPFW_SPRITEB_HI_MASK (1 << 8) 1881 - #define DSPFW_SPRITEA_HI_SHIFT 4 1882 - #define DSPFW_SPRITEA_HI_MASK (1 << 4) 1883 - #define DSPFW_PLANEA_HI_SHIFT 0 1884 - #define DSPFW_PLANEA_HI_MASK (1 << 0) 1885 - #define DSPHOWM1 _MMIO(VLV_DISPLAY_BASE + 0x70068) 1886 - #define DSPFW_SR_WM1_HI_SHIFT 24 1887 - #define DSPFW_SR_WM1_HI_MASK (3 << 24) /* 2 bits for chv, 1 for vlv */ 1888 - #define DSPFW_SPRITEF_WM1_HI_SHIFT 23 1889 - #define DSPFW_SPRITEF_WM1_HI_MASK (1 << 23) 1890 - #define DSPFW_SPRITEE_WM1_HI_SHIFT 22 1891 - #define DSPFW_SPRITEE_WM1_HI_MASK (1 << 22) 1892 - #define DSPFW_PLANEC_WM1_HI_SHIFT 21 1893 - #define DSPFW_PLANEC_WM1_HI_MASK (1 << 21) 1894 - #define DSPFW_SPRITED_WM1_HI_SHIFT 20 1895 - #define DSPFW_SPRITED_WM1_HI_MASK (1 << 20) 1896 - #define DSPFW_SPRITEC_WM1_HI_SHIFT 16 1897 - #define DSPFW_SPRITEC_WM1_HI_MASK (1 << 16) 1898 - #define DSPFW_PLANEB_WM1_HI_SHIFT 12 1899 - #define DSPFW_PLANEB_WM1_HI_MASK (1 << 12) 1900 - #define DSPFW_SPRITEB_WM1_HI_SHIFT 8 1901 - #define DSPFW_SPRITEB_WM1_HI_MASK (1 << 8) 1902 - #define DSPFW_SPRITEA_WM1_HI_SHIFT 4 1903 - #define DSPFW_SPRITEA_WM1_HI_MASK (1 << 4) 1904 - #define DSPFW_PLANEA_WM1_HI_SHIFT 0 1905 - #define DSPFW_PLANEA_WM1_HI_MASK (1 << 0) 1906 - 1907 - /* drain latency register values*/ 1908 - #define VLV_DDL(pipe) _MMIO(VLV_DISPLAY_BASE + 0x70050 + 4 * (pipe)) 1909 - #define DDL_CURSOR_SHIFT 24 1910 - #define DDL_SPRITE_SHIFT(sprite) (8 + 8 * (sprite)) 1911 - #define DDL_PLANE_SHIFT 0 1912 - #define DDL_PRECISION_HIGH (1 << 7) 1913 - #define DDL_PRECISION_LOW (0 << 7) 1914 - #define DRAIN_LATENCY_MASK 0x7f 1915 - 1916 1742 #define CBR1_VLV _MMIO(VLV_DISPLAY_BASE + 0x70400) 1917 1743 #define CBR_PND_DEADLINE_DISABLE (1 << 31) 1918 1744 #define CBR_PWM_CLOCK_MUX_SELECT (1 << 30) 1919 1745 1920 1746 #define CBR4_VLV _MMIO(VLV_DISPLAY_BASE + 0x70450) 1921 1747 #define CBR_DPLLBMD_PIPE(pipe) (1 << (7 + (pipe) * 11)) /* pipes B and C */ 1922 - 1923 - /* FIFO watermark sizes etc */ 1924 - #define G4X_FIFO_LINE_SIZE 64 1925 - #define I915_FIFO_LINE_SIZE 64 1926 - #define I830_FIFO_LINE_SIZE 32 1927 - 1928 - #define VALLEYVIEW_FIFO_SIZE 255 1929 - #define G4X_FIFO_SIZE 127 1930 - #define I965_FIFO_SIZE 512 1931 - #define I945_FIFO_SIZE 127 1932 - #define I915_FIFO_SIZE 95 1933 - #define I855GM_FIFO_SIZE 127 /* In cachelines */ 1934 - #define I830_FIFO_SIZE 95 1935 - 1936 - #define VALLEYVIEW_MAX_WM 0xff 1937 - #define G4X_MAX_WM 0x3f 1938 - #define I915_MAX_WM 0x3f 1939 - 1940 - #define PINEVIEW_DISPLAY_FIFO 512 /* in 64byte unit */ 1941 - #define PINEVIEW_FIFO_LINE_SIZE 64 1942 - #define PINEVIEW_MAX_WM 0x1ff 1943 - #define PINEVIEW_DFT_WM 0x3f 1944 - #define PINEVIEW_DFT_HPLLOFF_WM 0 1945 - #define PINEVIEW_GUARD_WM 10 1946 - #define PINEVIEW_CURSOR_FIFO 64 1947 - #define PINEVIEW_CURSOR_MAX_WM 0x3f 1948 - #define PINEVIEW_CURSOR_DFT_WM 0 1949 - #define PINEVIEW_CURSOR_GUARD_WM 5 1950 - 1951 - #define VALLEYVIEW_CURSOR_MAX_WM 64 1952 - #define I965_CURSOR_FIFO 64 1953 - #define I965_CURSOR_MAX_WM 32 1954 - #define I965_CURSOR_DFT_WM 8 1955 - 1956 - /* define the Watermark register on Ironlake */ 1957 - #define _WM0_PIPEA_ILK 0x45100 1958 - #define _WM0_PIPEB_ILK 0x45104 1959 - #define _WM0_PIPEC_IVB 0x45200 1960 - #define WM0_PIPE_ILK(pipe) _MMIO_BASE_PIPE3(0, (pipe), _WM0_PIPEA_ILK, \ 1961 - _WM0_PIPEB_ILK, _WM0_PIPEC_IVB) 1962 - #define WM0_PIPE_PRIMARY_MASK REG_GENMASK(31, 16) 1963 - #define WM0_PIPE_SPRITE_MASK REG_GENMASK(15, 8) 1964 - #define WM0_PIPE_CURSOR_MASK REG_GENMASK(7, 0) 1965 - #define WM0_PIPE_PRIMARY(x) REG_FIELD_PREP(WM0_PIPE_PRIMARY_MASK, (x)) 1966 - #define WM0_PIPE_SPRITE(x) REG_FIELD_PREP(WM0_PIPE_SPRITE_MASK, (x)) 1967 - #define WM0_PIPE_CURSOR(x) REG_FIELD_PREP(WM0_PIPE_CURSOR_MASK, (x)) 1968 - #define WM1_LP_ILK _MMIO(0x45108) 1969 - #define WM2_LP_ILK _MMIO(0x4510c) 1970 - #define WM3_LP_ILK _MMIO(0x45110) 1971 - #define WM_LP_ENABLE REG_BIT(31) 1972 - #define WM_LP_LATENCY_MASK REG_GENMASK(30, 24) 1973 - #define WM_LP_FBC_MASK_BDW REG_GENMASK(23, 19) 1974 - #define WM_LP_FBC_MASK_ILK REG_GENMASK(23, 20) 1975 - #define WM_LP_PRIMARY_MASK REG_GENMASK(18, 8) 1976 - #define WM_LP_CURSOR_MASK REG_GENMASK(7, 0) 1977 - #define WM_LP_LATENCY(x) REG_FIELD_PREP(WM_LP_LATENCY_MASK, (x)) 1978 - #define WM_LP_FBC_BDW(x) REG_FIELD_PREP(WM_LP_FBC_MASK_BDW, (x)) 1979 - #define WM_LP_FBC_ILK(x) REG_FIELD_PREP(WM_LP_FBC_MASK_ILK, (x)) 1980 - #define WM_LP_PRIMARY(x) REG_FIELD_PREP(WM_LP_PRIMARY_MASK, (x)) 1981 - #define WM_LP_CURSOR(x) REG_FIELD_PREP(WM_LP_CURSOR_MASK, (x)) 1982 - #define WM1S_LP_ILK _MMIO(0x45120) 1983 - #define WM2S_LP_IVB _MMIO(0x45124) 1984 - #define WM3S_LP_IVB _MMIO(0x45128) 1985 - #define WM_LP_SPRITE_ENABLE REG_BIT(31) /* ilk/snb WM1S only */ 1986 - #define WM_LP_SPRITE_MASK REG_GENMASK(10, 0) 1987 - #define WM_LP_SPRITE(x) REG_FIELD_PREP(WM_LP_SPRITE_MASK, (x)) 1988 1748 1989 1749 /* 1990 1750 * The two pipe frame counter registers are not synchronized, so ··· 4166 4406 #define SFUSE_STRAP_DDIB_DETECTED (1 << 2) 4167 4407 #define SFUSE_STRAP_DDIC_DETECTED (1 << 1) 4168 4408 #define SFUSE_STRAP_DDID_DETECTED (1 << 0) 4169 - 4170 - #define WM_MISC _MMIO(0x45260) 4171 - #define WM_MISC_DATA_PARTITION_5_6 (1 << 0) 4172 - 4173 - #define WM_DBG _MMIO(0x45280) 4174 - #define WM_DBG_DISALLOW_MULTIPLE_LP (1 << 0) 4175 - #define WM_DBG_DISALLOW_MAXFIFO (1 << 1) 4176 - #define WM_DBG_DISALLOW_SPRITE (1 << 2) 4177 4409 4178 4410 /* Gen4+ Timestamp and Pipe Frame time stamp registers */ 4179 4411 #define GEN4_TIMESTAMP _MMIO(0x2358)
+1
drivers/gpu/drm/i915/intel_gvt_mmio_table.c
··· 5 5 6 6 #include "display/bxt_dpio_phy_regs.h" 7 7 #include "display/i9xx_plane_regs.h" 8 + #include "display/i9xx_wm_regs.h" 8 9 #include "display/intel_audio_regs.h" 9 10 #include "display/intel_backlight_regs.h" 10 11 #include "display/intel_color_regs.h"