1*aea0ec7eSJani Nikula /* SPDX-License-Identifier: MIT */ 2*aea0ec7eSJani Nikula /* Copyright © 2024 Intel Corporation */ 3*aea0ec7eSJani Nikula 4*aea0ec7eSJani Nikula #ifndef __I9XX_WM_REGS_H__ 5*aea0ec7eSJani Nikula #define __I9XX_WM_REGS_H__ 6*aea0ec7eSJani Nikula 7*aea0ec7eSJani Nikula #include "intel_display_reg_defs.h" 8*aea0ec7eSJani Nikula 9*aea0ec7eSJani Nikula #define DSPARB(dev_priv) _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x70030) 10*aea0ec7eSJani Nikula #define DSPARB_CSTART_MASK (0x7f << 7) 11*aea0ec7eSJani Nikula #define DSPARB_CSTART_SHIFT 7 12*aea0ec7eSJani Nikula #define DSPARB_BSTART_MASK (0x7f) 13*aea0ec7eSJani Nikula #define DSPARB_BSTART_SHIFT 0 14*aea0ec7eSJani Nikula #define DSPARB_BEND_SHIFT 9 /* on 855 */ 15*aea0ec7eSJani Nikula #define DSPARB_AEND_SHIFT 0 16*aea0ec7eSJani Nikula #define DSPARB_SPRITEA_SHIFT_VLV 0 17*aea0ec7eSJani Nikula #define DSPARB_SPRITEA_MASK_VLV (0xff << 0) 18*aea0ec7eSJani Nikula #define DSPARB_SPRITEB_SHIFT_VLV 8 19*aea0ec7eSJani Nikula #define DSPARB_SPRITEB_MASK_VLV (0xff << 8) 20*aea0ec7eSJani Nikula #define DSPARB_SPRITEC_SHIFT_VLV 16 21*aea0ec7eSJani Nikula #define DSPARB_SPRITEC_MASK_VLV (0xff << 16) 22*aea0ec7eSJani Nikula #define DSPARB_SPRITED_SHIFT_VLV 24 23*aea0ec7eSJani Nikula #define DSPARB_SPRITED_MASK_VLV (0xff << 24) 24*aea0ec7eSJani Nikula #define DSPARB2 _MMIO(VLV_DISPLAY_BASE + 0x70060) /* vlv/chv */ 25*aea0ec7eSJani Nikula #define DSPARB_SPRITEA_HI_SHIFT_VLV 0 26*aea0ec7eSJani Nikula #define DSPARB_SPRITEA_HI_MASK_VLV (0x1 << 0) 27*aea0ec7eSJani Nikula #define DSPARB_SPRITEB_HI_SHIFT_VLV 4 28*aea0ec7eSJani Nikula #define DSPARB_SPRITEB_HI_MASK_VLV (0x1 << 4) 29*aea0ec7eSJani Nikula #define DSPARB_SPRITEC_HI_SHIFT_VLV 8 30*aea0ec7eSJani Nikula #define DSPARB_SPRITEC_HI_MASK_VLV (0x1 << 8) 31*aea0ec7eSJani Nikula #define DSPARB_SPRITED_HI_SHIFT_VLV 12 32*aea0ec7eSJani Nikula #define DSPARB_SPRITED_HI_MASK_VLV (0x1 << 12) 33*aea0ec7eSJani Nikula #define DSPARB_SPRITEE_HI_SHIFT_VLV 16 34*aea0ec7eSJani Nikula #define DSPARB_SPRITEE_HI_MASK_VLV (0x1 << 16) 35*aea0ec7eSJani Nikula #define DSPARB_SPRITEF_HI_SHIFT_VLV 20 36*aea0ec7eSJani Nikula #define DSPARB_SPRITEF_HI_MASK_VLV (0x1 << 20) 37*aea0ec7eSJani Nikula #define DSPARB3 _MMIO(VLV_DISPLAY_BASE + 0x7006c) /* chv */ 38*aea0ec7eSJani Nikula #define DSPARB_SPRITEE_SHIFT_VLV 0 39*aea0ec7eSJani Nikula #define DSPARB_SPRITEE_MASK_VLV (0xff << 0) 40*aea0ec7eSJani Nikula #define DSPARB_SPRITEF_SHIFT_VLV 8 41*aea0ec7eSJani Nikula #define DSPARB_SPRITEF_MASK_VLV (0xff << 8) 42*aea0ec7eSJani Nikula 43*aea0ec7eSJani Nikula /* pnv/gen4/g4x/vlv/chv */ 44*aea0ec7eSJani Nikula #define DSPFW1(dev_priv) _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x70034) 45*aea0ec7eSJani Nikula #define DSPFW_SR_SHIFT 23 46*aea0ec7eSJani Nikula #define DSPFW_SR_MASK (0x1ff << 23) 47*aea0ec7eSJani Nikula #define DSPFW_CURSORB_SHIFT 16 48*aea0ec7eSJani Nikula #define DSPFW_CURSORB_MASK (0x3f << 16) 49*aea0ec7eSJani Nikula #define DSPFW_PLANEB_SHIFT 8 50*aea0ec7eSJani Nikula #define DSPFW_PLANEB_MASK (0x7f << 8) 51*aea0ec7eSJani Nikula #define DSPFW_PLANEB_MASK_VLV (0xff << 8) /* vlv/chv */ 52*aea0ec7eSJani Nikula #define DSPFW_PLANEA_SHIFT 0 53*aea0ec7eSJani Nikula #define DSPFW_PLANEA_MASK (0x7f << 0) 54*aea0ec7eSJani Nikula #define DSPFW_PLANEA_MASK_VLV (0xff << 0) /* vlv/chv */ 55*aea0ec7eSJani Nikula #define DSPFW2(dev_priv) _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x70038) 56*aea0ec7eSJani Nikula #define DSPFW_FBC_SR_EN (1 << 31) /* g4x */ 57*aea0ec7eSJani Nikula #define DSPFW_FBC_SR_SHIFT 28 58*aea0ec7eSJani Nikula #define DSPFW_FBC_SR_MASK (0x7 << 28) /* g4x */ 59*aea0ec7eSJani Nikula #define DSPFW_FBC_HPLL_SR_SHIFT 24 60*aea0ec7eSJani Nikula #define DSPFW_FBC_HPLL_SR_MASK (0xf << 24) /* g4x */ 61*aea0ec7eSJani Nikula #define DSPFW_SPRITEB_SHIFT (16) 62*aea0ec7eSJani Nikula #define DSPFW_SPRITEB_MASK (0x7f << 16) /* g4x */ 63*aea0ec7eSJani Nikula #define DSPFW_SPRITEB_MASK_VLV (0xff << 16) /* vlv/chv */ 64*aea0ec7eSJani Nikula #define DSPFW_CURSORA_SHIFT 8 65*aea0ec7eSJani Nikula #define DSPFW_CURSORA_MASK (0x3f << 8) 66*aea0ec7eSJani Nikula #define DSPFW_PLANEC_OLD_SHIFT 0 67*aea0ec7eSJani Nikula #define DSPFW_PLANEC_OLD_MASK (0x7f << 0) /* pre-gen4 sprite C */ 68*aea0ec7eSJani Nikula #define DSPFW_SPRITEA_SHIFT 0 69*aea0ec7eSJani Nikula #define DSPFW_SPRITEA_MASK (0x7f << 0) /* g4x */ 70*aea0ec7eSJani Nikula #define DSPFW_SPRITEA_MASK_VLV (0xff << 0) /* vlv/chv */ 71*aea0ec7eSJani Nikula #define DSPFW3(dev_priv) _MMIO(DISPLAY_MMIO_BASE(dev_priv) + 0x7003c) 72*aea0ec7eSJani Nikula #define DSPFW_HPLL_SR_EN (1 << 31) 73*aea0ec7eSJani Nikula #define PINEVIEW_SELF_REFRESH_EN (1 << 30) 74*aea0ec7eSJani Nikula #define DSPFW_CURSOR_SR_SHIFT 24 75*aea0ec7eSJani Nikula #define DSPFW_CURSOR_SR_MASK (0x3f << 24) 76*aea0ec7eSJani Nikula #define DSPFW_HPLL_CURSOR_SHIFT 16 77*aea0ec7eSJani Nikula #define DSPFW_HPLL_CURSOR_MASK (0x3f << 16) 78*aea0ec7eSJani Nikula #define DSPFW_HPLL_SR_SHIFT 0 79*aea0ec7eSJani Nikula #define DSPFW_HPLL_SR_MASK (0x1ff << 0) 80*aea0ec7eSJani Nikula 81*aea0ec7eSJani Nikula /* vlv/chv */ 82*aea0ec7eSJani Nikula #define DSPFW4 _MMIO(VLV_DISPLAY_BASE + 0x70070) 83*aea0ec7eSJani Nikula #define DSPFW_SPRITEB_WM1_SHIFT 16 84*aea0ec7eSJani Nikula #define DSPFW_SPRITEB_WM1_MASK (0xff << 16) 85*aea0ec7eSJani Nikula #define DSPFW_CURSORA_WM1_SHIFT 8 86*aea0ec7eSJani Nikula #define DSPFW_CURSORA_WM1_MASK (0x3f << 8) 87*aea0ec7eSJani Nikula #define DSPFW_SPRITEA_WM1_SHIFT 0 88*aea0ec7eSJani Nikula #define DSPFW_SPRITEA_WM1_MASK (0xff << 0) 89*aea0ec7eSJani Nikula #define DSPFW5 _MMIO(VLV_DISPLAY_BASE + 0x70074) 90*aea0ec7eSJani Nikula #define DSPFW_PLANEB_WM1_SHIFT 24 91*aea0ec7eSJani Nikula #define DSPFW_PLANEB_WM1_MASK (0xff << 24) 92*aea0ec7eSJani Nikula #define DSPFW_PLANEA_WM1_SHIFT 16 93*aea0ec7eSJani Nikula #define DSPFW_PLANEA_WM1_MASK (0xff << 16) 94*aea0ec7eSJani Nikula #define DSPFW_CURSORB_WM1_SHIFT 8 95*aea0ec7eSJani Nikula #define DSPFW_CURSORB_WM1_MASK (0x3f << 8) 96*aea0ec7eSJani Nikula #define DSPFW_CURSOR_SR_WM1_SHIFT 0 97*aea0ec7eSJani Nikula #define DSPFW_CURSOR_SR_WM1_MASK (0x3f << 0) 98*aea0ec7eSJani Nikula #define DSPFW6 _MMIO(VLV_DISPLAY_BASE + 0x70078) 99*aea0ec7eSJani Nikula #define DSPFW_SR_WM1_SHIFT 0 100*aea0ec7eSJani Nikula #define DSPFW_SR_WM1_MASK (0x1ff << 0) 101*aea0ec7eSJani Nikula #define DSPFW7 _MMIO(VLV_DISPLAY_BASE + 0x7007c) 102*aea0ec7eSJani Nikula #define DSPFW7_CHV _MMIO(VLV_DISPLAY_BASE + 0x700b4) /* wtf #1? */ 103*aea0ec7eSJani Nikula #define DSPFW_SPRITED_WM1_SHIFT 24 104*aea0ec7eSJani Nikula #define DSPFW_SPRITED_WM1_MASK (0xff << 24) 105*aea0ec7eSJani Nikula #define DSPFW_SPRITED_SHIFT 16 106*aea0ec7eSJani Nikula #define DSPFW_SPRITED_MASK_VLV (0xff << 16) 107*aea0ec7eSJani Nikula #define DSPFW_SPRITEC_WM1_SHIFT 8 108*aea0ec7eSJani Nikula #define DSPFW_SPRITEC_WM1_MASK (0xff << 8) 109*aea0ec7eSJani Nikula #define DSPFW_SPRITEC_SHIFT 0 110*aea0ec7eSJani Nikula #define DSPFW_SPRITEC_MASK_VLV (0xff << 0) 111*aea0ec7eSJani Nikula #define DSPFW8_CHV _MMIO(VLV_DISPLAY_BASE + 0x700b8) 112*aea0ec7eSJani Nikula #define DSPFW_SPRITEF_WM1_SHIFT 24 113*aea0ec7eSJani Nikula #define DSPFW_SPRITEF_WM1_MASK (0xff << 24) 114*aea0ec7eSJani Nikula #define DSPFW_SPRITEF_SHIFT 16 115*aea0ec7eSJani Nikula #define DSPFW_SPRITEF_MASK_VLV (0xff << 16) 116*aea0ec7eSJani Nikula #define DSPFW_SPRITEE_WM1_SHIFT 8 117*aea0ec7eSJani Nikula #define DSPFW_SPRITEE_WM1_MASK (0xff << 8) 118*aea0ec7eSJani Nikula #define DSPFW_SPRITEE_SHIFT 0 119*aea0ec7eSJani Nikula #define DSPFW_SPRITEE_MASK_VLV (0xff << 0) 120*aea0ec7eSJani Nikula #define DSPFW9_CHV _MMIO(VLV_DISPLAY_BASE + 0x7007c) /* wtf #2? */ 121*aea0ec7eSJani Nikula #define DSPFW_PLANEC_WM1_SHIFT 24 122*aea0ec7eSJani Nikula #define DSPFW_PLANEC_WM1_MASK (0xff << 24) 123*aea0ec7eSJani Nikula #define DSPFW_PLANEC_SHIFT 16 124*aea0ec7eSJani Nikula #define DSPFW_PLANEC_MASK_VLV (0xff << 16) 125*aea0ec7eSJani Nikula #define DSPFW_CURSORC_WM1_SHIFT 8 126*aea0ec7eSJani Nikula #define DSPFW_CURSORC_WM1_MASK (0x3f << 16) 127*aea0ec7eSJani Nikula #define DSPFW_CURSORC_SHIFT 0 128*aea0ec7eSJani Nikula #define DSPFW_CURSORC_MASK (0x3f << 0) 129*aea0ec7eSJani Nikula 130*aea0ec7eSJani Nikula /* vlv/chv high order bits */ 131*aea0ec7eSJani Nikula #define DSPHOWM _MMIO(VLV_DISPLAY_BASE + 0x70064) 132*aea0ec7eSJani Nikula #define DSPFW_SR_HI_SHIFT 24 133*aea0ec7eSJani Nikula #define DSPFW_SR_HI_MASK (3 << 24) /* 2 bits for chv, 1 for vlv */ 134*aea0ec7eSJani Nikula #define DSPFW_SPRITEF_HI_SHIFT 23 135*aea0ec7eSJani Nikula #define DSPFW_SPRITEF_HI_MASK (1 << 23) 136*aea0ec7eSJani Nikula #define DSPFW_SPRITEE_HI_SHIFT 22 137*aea0ec7eSJani Nikula #define DSPFW_SPRITEE_HI_MASK (1 << 22) 138*aea0ec7eSJani Nikula #define DSPFW_PLANEC_HI_SHIFT 21 139*aea0ec7eSJani Nikula #define DSPFW_PLANEC_HI_MASK (1 << 21) 140*aea0ec7eSJani Nikula #define DSPFW_SPRITED_HI_SHIFT 20 141*aea0ec7eSJani Nikula #define DSPFW_SPRITED_HI_MASK (1 << 20) 142*aea0ec7eSJani Nikula #define DSPFW_SPRITEC_HI_SHIFT 16 143*aea0ec7eSJani Nikula #define DSPFW_SPRITEC_HI_MASK (1 << 16) 144*aea0ec7eSJani Nikula #define DSPFW_PLANEB_HI_SHIFT 12 145*aea0ec7eSJani Nikula #define DSPFW_PLANEB_HI_MASK (1 << 12) 146*aea0ec7eSJani Nikula #define DSPFW_SPRITEB_HI_SHIFT 8 147*aea0ec7eSJani Nikula #define DSPFW_SPRITEB_HI_MASK (1 << 8) 148*aea0ec7eSJani Nikula #define DSPFW_SPRITEA_HI_SHIFT 4 149*aea0ec7eSJani Nikula #define DSPFW_SPRITEA_HI_MASK (1 << 4) 150*aea0ec7eSJani Nikula #define DSPFW_PLANEA_HI_SHIFT 0 151*aea0ec7eSJani Nikula #define DSPFW_PLANEA_HI_MASK (1 << 0) 152*aea0ec7eSJani Nikula #define DSPHOWM1 _MMIO(VLV_DISPLAY_BASE + 0x70068) 153*aea0ec7eSJani Nikula #define DSPFW_SR_WM1_HI_SHIFT 24 154*aea0ec7eSJani Nikula #define DSPFW_SR_WM1_HI_MASK (3 << 24) /* 2 bits for chv, 1 for vlv */ 155*aea0ec7eSJani Nikula #define DSPFW_SPRITEF_WM1_HI_SHIFT 23 156*aea0ec7eSJani Nikula #define DSPFW_SPRITEF_WM1_HI_MASK (1 << 23) 157*aea0ec7eSJani Nikula #define DSPFW_SPRITEE_WM1_HI_SHIFT 22 158*aea0ec7eSJani Nikula #define DSPFW_SPRITEE_WM1_HI_MASK (1 << 22) 159*aea0ec7eSJani Nikula #define DSPFW_PLANEC_WM1_HI_SHIFT 21 160*aea0ec7eSJani Nikula #define DSPFW_PLANEC_WM1_HI_MASK (1 << 21) 161*aea0ec7eSJani Nikula #define DSPFW_SPRITED_WM1_HI_SHIFT 20 162*aea0ec7eSJani Nikula #define DSPFW_SPRITED_WM1_HI_MASK (1 << 20) 163*aea0ec7eSJani Nikula #define DSPFW_SPRITEC_WM1_HI_SHIFT 16 164*aea0ec7eSJani Nikula #define DSPFW_SPRITEC_WM1_HI_MASK (1 << 16) 165*aea0ec7eSJani Nikula #define DSPFW_PLANEB_WM1_HI_SHIFT 12 166*aea0ec7eSJani Nikula #define DSPFW_PLANEB_WM1_HI_MASK (1 << 12) 167*aea0ec7eSJani Nikula #define DSPFW_SPRITEB_WM1_HI_SHIFT 8 168*aea0ec7eSJani Nikula #define DSPFW_SPRITEB_WM1_HI_MASK (1 << 8) 169*aea0ec7eSJani Nikula #define DSPFW_SPRITEA_WM1_HI_SHIFT 4 170*aea0ec7eSJani Nikula #define DSPFW_SPRITEA_WM1_HI_MASK (1 << 4) 171*aea0ec7eSJani Nikula #define DSPFW_PLANEA_WM1_HI_SHIFT 0 172*aea0ec7eSJani Nikula #define DSPFW_PLANEA_WM1_HI_MASK (1 << 0) 173*aea0ec7eSJani Nikula 174*aea0ec7eSJani Nikula /* drain latency register values*/ 175*aea0ec7eSJani Nikula #define VLV_DDL(pipe) _MMIO(VLV_DISPLAY_BASE + 0x70050 + 4 * (pipe)) 176*aea0ec7eSJani Nikula #define DDL_CURSOR_SHIFT 24 177*aea0ec7eSJani Nikula #define DDL_SPRITE_SHIFT(sprite) (8 + 8 * (sprite)) 178*aea0ec7eSJani Nikula #define DDL_PLANE_SHIFT 0 179*aea0ec7eSJani Nikula #define DDL_PRECISION_HIGH (1 << 7) 180*aea0ec7eSJani Nikula #define DDL_PRECISION_LOW (0 << 7) 181*aea0ec7eSJani Nikula #define DRAIN_LATENCY_MASK 0x7f 182*aea0ec7eSJani Nikula 183*aea0ec7eSJani Nikula /* FIFO watermark sizes etc */ 184*aea0ec7eSJani Nikula #define G4X_FIFO_LINE_SIZE 64 185*aea0ec7eSJani Nikula #define I915_FIFO_LINE_SIZE 64 186*aea0ec7eSJani Nikula #define I830_FIFO_LINE_SIZE 32 187*aea0ec7eSJani Nikula 188*aea0ec7eSJani Nikula #define VALLEYVIEW_FIFO_SIZE 255 189*aea0ec7eSJani Nikula #define G4X_FIFO_SIZE 127 190*aea0ec7eSJani Nikula #define I965_FIFO_SIZE 512 191*aea0ec7eSJani Nikula #define I945_FIFO_SIZE 127 192*aea0ec7eSJani Nikula #define I915_FIFO_SIZE 95 193*aea0ec7eSJani Nikula #define I855GM_FIFO_SIZE 127 /* In cachelines */ 194*aea0ec7eSJani Nikula #define I830_FIFO_SIZE 95 195*aea0ec7eSJani Nikula 196*aea0ec7eSJani Nikula #define VALLEYVIEW_MAX_WM 0xff 197*aea0ec7eSJani Nikula #define G4X_MAX_WM 0x3f 198*aea0ec7eSJani Nikula #define I915_MAX_WM 0x3f 199*aea0ec7eSJani Nikula 200*aea0ec7eSJani Nikula #define PINEVIEW_DISPLAY_FIFO 512 /* in 64byte unit */ 201*aea0ec7eSJani Nikula #define PINEVIEW_FIFO_LINE_SIZE 64 202*aea0ec7eSJani Nikula #define PINEVIEW_MAX_WM 0x1ff 203*aea0ec7eSJani Nikula #define PINEVIEW_DFT_WM 0x3f 204*aea0ec7eSJani Nikula #define PINEVIEW_DFT_HPLLOFF_WM 0 205*aea0ec7eSJani Nikula #define PINEVIEW_GUARD_WM 10 206*aea0ec7eSJani Nikula #define PINEVIEW_CURSOR_FIFO 64 207*aea0ec7eSJani Nikula #define PINEVIEW_CURSOR_MAX_WM 0x3f 208*aea0ec7eSJani Nikula #define PINEVIEW_CURSOR_DFT_WM 0 209*aea0ec7eSJani Nikula #define PINEVIEW_CURSOR_GUARD_WM 5 210*aea0ec7eSJani Nikula 211*aea0ec7eSJani Nikula #define VALLEYVIEW_CURSOR_MAX_WM 64 212*aea0ec7eSJani Nikula #define I965_CURSOR_FIFO 64 213*aea0ec7eSJani Nikula #define I965_CURSOR_MAX_WM 32 214*aea0ec7eSJani Nikula #define I965_CURSOR_DFT_WM 8 215*aea0ec7eSJani Nikula 216*aea0ec7eSJani Nikula /* define the Watermark register on Ironlake */ 217*aea0ec7eSJani Nikula #define _WM0_PIPEA_ILK 0x45100 218*aea0ec7eSJani Nikula #define _WM0_PIPEB_ILK 0x45104 219*aea0ec7eSJani Nikula #define _WM0_PIPEC_IVB 0x45200 220*aea0ec7eSJani Nikula #define WM0_PIPE_ILK(pipe) _MMIO_BASE_PIPE3(0, (pipe), _WM0_PIPEA_ILK, \ 221*aea0ec7eSJani Nikula _WM0_PIPEB_ILK, _WM0_PIPEC_IVB) 222*aea0ec7eSJani Nikula #define WM0_PIPE_PRIMARY_MASK REG_GENMASK(31, 16) 223*aea0ec7eSJani Nikula #define WM0_PIPE_SPRITE_MASK REG_GENMASK(15, 8) 224*aea0ec7eSJani Nikula #define WM0_PIPE_CURSOR_MASK REG_GENMASK(7, 0) 225*aea0ec7eSJani Nikula #define WM0_PIPE_PRIMARY(x) REG_FIELD_PREP(WM0_PIPE_PRIMARY_MASK, (x)) 226*aea0ec7eSJani Nikula #define WM0_PIPE_SPRITE(x) REG_FIELD_PREP(WM0_PIPE_SPRITE_MASK, (x)) 227*aea0ec7eSJani Nikula #define WM0_PIPE_CURSOR(x) REG_FIELD_PREP(WM0_PIPE_CURSOR_MASK, (x)) 228*aea0ec7eSJani Nikula #define WM1_LP_ILK _MMIO(0x45108) 229*aea0ec7eSJani Nikula #define WM2_LP_ILK _MMIO(0x4510c) 230*aea0ec7eSJani Nikula #define WM3_LP_ILK _MMIO(0x45110) 231*aea0ec7eSJani Nikula #define WM_LP_ENABLE REG_BIT(31) 232*aea0ec7eSJani Nikula #define WM_LP_LATENCY_MASK REG_GENMASK(30, 24) 233*aea0ec7eSJani Nikula #define WM_LP_FBC_MASK_BDW REG_GENMASK(23, 19) 234*aea0ec7eSJani Nikula #define WM_LP_FBC_MASK_ILK REG_GENMASK(23, 20) 235*aea0ec7eSJani Nikula #define WM_LP_PRIMARY_MASK REG_GENMASK(18, 8) 236*aea0ec7eSJani Nikula #define WM_LP_CURSOR_MASK REG_GENMASK(7, 0) 237*aea0ec7eSJani Nikula #define WM_LP_LATENCY(x) REG_FIELD_PREP(WM_LP_LATENCY_MASK, (x)) 238*aea0ec7eSJani Nikula #define WM_LP_FBC_BDW(x) REG_FIELD_PREP(WM_LP_FBC_MASK_BDW, (x)) 239*aea0ec7eSJani Nikula #define WM_LP_FBC_ILK(x) REG_FIELD_PREP(WM_LP_FBC_MASK_ILK, (x)) 240*aea0ec7eSJani Nikula #define WM_LP_PRIMARY(x) REG_FIELD_PREP(WM_LP_PRIMARY_MASK, (x)) 241*aea0ec7eSJani Nikula #define WM_LP_CURSOR(x) REG_FIELD_PREP(WM_LP_CURSOR_MASK, (x)) 242*aea0ec7eSJani Nikula #define WM1S_LP_ILK _MMIO(0x45120) 243*aea0ec7eSJani Nikula #define WM2S_LP_IVB _MMIO(0x45124) 244*aea0ec7eSJani Nikula #define WM3S_LP_IVB _MMIO(0x45128) 245*aea0ec7eSJani Nikula #define WM_LP_SPRITE_ENABLE REG_BIT(31) /* ilk/snb WM1S only */ 246*aea0ec7eSJani Nikula #define WM_LP_SPRITE_MASK REG_GENMASK(10, 0) 247*aea0ec7eSJani Nikula #define WM_LP_SPRITE(x) REG_FIELD_PREP(WM_LP_SPRITE_MASK, (x)) 248*aea0ec7eSJani Nikula 249*aea0ec7eSJani Nikula #define WM_MISC _MMIO(0x45260) 250*aea0ec7eSJani Nikula #define WM_MISC_DATA_PARTITION_5_6 (1 << 0) 251*aea0ec7eSJani Nikula 252*aea0ec7eSJani Nikula #define WM_DBG _MMIO(0x45280) 253*aea0ec7eSJani Nikula #define WM_DBG_DISALLOW_MULTIPLE_LP (1 << 0) 254*aea0ec7eSJani Nikula #define WM_DBG_DISALLOW_MAXFIFO (1 << 1) 255*aea0ec7eSJani Nikula #define WM_DBG_DISALLOW_SPRITE (1 << 2) 256*aea0ec7eSJani Nikula 257*aea0ec7eSJani Nikula #endif /* __I9XX_WM_REGS_H__ */ 258