Loading...
Note: File does not exist in v5.14.15.
1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2024 Intel Corporation
4 */
5
6#ifndef __I9XX_PLANE_REGS_H__
7#define __I9XX_PLANE_REGS_H__
8
9#include "intel_display_reg_defs.h"
10
11#define _DSPAADDR_VLV 0x7017C /* vlv/chv */
12#define DSPADDR_VLV(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPAADDR_VLV)
13
14#define _DSPACNTR 0x70180
15#define DSPCNTR(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPACNTR)
16#define DISP_ENABLE REG_BIT(31)
17#define DISP_PIPE_GAMMA_ENABLE REG_BIT(30)
18#define DISP_FORMAT_MASK REG_GENMASK(29, 26)
19#define DISP_FORMAT_8BPP REG_FIELD_PREP(DISP_FORMAT_MASK, 2)
20#define DISP_FORMAT_BGRA555 REG_FIELD_PREP(DISP_FORMAT_MASK, 3)
21#define DISP_FORMAT_BGRX555 REG_FIELD_PREP(DISP_FORMAT_MASK, 4)
22#define DISP_FORMAT_BGRX565 REG_FIELD_PREP(DISP_FORMAT_MASK, 5)
23#define DISP_FORMAT_BGRX888 REG_FIELD_PREP(DISP_FORMAT_MASK, 6)
24#define DISP_FORMAT_BGRA888 REG_FIELD_PREP(DISP_FORMAT_MASK, 7)
25#define DISP_FORMAT_RGBX101010 REG_FIELD_PREP(DISP_FORMAT_MASK, 8)
26#define DISP_FORMAT_RGBA101010 REG_FIELD_PREP(DISP_FORMAT_MASK, 9)
27#define DISP_FORMAT_BGRX101010 REG_FIELD_PREP(DISP_FORMAT_MASK, 10)
28#define DISP_FORMAT_BGRA101010 REG_FIELD_PREP(DISP_FORMAT_MASK, 11)
29#define DISP_FORMAT_RGBX161616 REG_FIELD_PREP(DISP_FORMAT_MASK, 12)
30#define DISP_FORMAT_RGBX888 REG_FIELD_PREP(DISP_FORMAT_MASK, 14)
31#define DISP_FORMAT_RGBA888 REG_FIELD_PREP(DISP_FORMAT_MASK, 15)
32#define DISP_STEREO_ENABLE REG_BIT(25)
33#define DISP_PIPE_CSC_ENABLE REG_BIT(24) /* ilk+ */
34#define DISP_PIPE_SEL_MASK REG_GENMASK(25, 24)
35#define DISP_PIPE_SEL(pipe) REG_FIELD_PREP(DISP_PIPE_SEL_MASK, (pipe))
36#define DISP_SRC_KEY_ENABLE REG_BIT(22)
37#define DISP_LINE_DOUBLE REG_BIT(20)
38#define DISP_STEREO_POLARITY_SECOND REG_BIT(18)
39#define DISP_ALPHA_PREMULTIPLY REG_BIT(16) /* CHV pipe B */
40#define DISP_ROTATE_180 REG_BIT(15) /* i965+ */
41#define DISP_ALPHA_TRANS_ENABLE REG_BIT(15) /* pre-g4x plane B */
42#define DISP_TRICKLE_FEED_DISABLE REG_BIT(14) /* g4x+ */
43#define DISP_TILED REG_BIT(10) /* i965+ */
44#define DISP_ASYNC_FLIP REG_BIT(9) /* g4x+ */
45#define DISP_MIRROR REG_BIT(8) /* CHV pipe B */
46#define DISP_SPRITE_ABOVE_OVERLAY REG_BIT(0) /* pre-g4x plane B/C */
47
48#define _DSPAADDR 0x70184 /* pre-i965 */
49#define DSPADDR(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPAADDR)
50
51#define _DSPALINOFF 0x70184 /* i965+ */
52#define DSPLINOFF(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPALINOFF)
53
54#define _DSPASTRIDE 0x70188
55#define DSPSTRIDE(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPASTRIDE)
56
57#define _DSPAPOS 0x7018C /* pre-g4x */
58#define DSPPOS(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPAPOS)
59#define DISP_POS_Y_MASK REG_GENMASK(31, 16)
60#define DISP_POS_Y(y) REG_FIELD_PREP(DISP_POS_Y_MASK, (y))
61#define DISP_POS_X_MASK REG_GENMASK(15, 0)
62#define DISP_POS_X(x) REG_FIELD_PREP(DISP_POS_X_MASK, (x))
63
64#define _DSPASIZE 0x70190 /* pre-g4x */
65#define DSPSIZE(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPASIZE)
66#define DISP_HEIGHT_MASK REG_GENMASK(31, 16)
67#define DISP_HEIGHT(h) REG_FIELD_PREP(DISP_HEIGHT_MASK, (h))
68#define DISP_WIDTH_MASK REG_GENMASK(15, 0)
69#define DISP_WIDTH(w) REG_FIELD_PREP(DISP_WIDTH_MASK, (w))
70
71#define _DSPASURF 0x7019C /* i965+ */
72#define DSPSURF(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPASURF)
73#define DISP_ADDR_MASK REG_GENMASK(31, 12)
74
75#define _DSPATILEOFF 0x701A4 /* i965+ */
76#define DSPTILEOFF(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPATILEOFF)
77#define DISP_OFFSET_Y_MASK REG_GENMASK(31, 16)
78#define DISP_OFFSET_Y(y) REG_FIELD_PREP(DISP_OFFSET_Y_MASK, (y))
79#define DISP_OFFSET_X_MASK REG_GENMASK(15, 0)
80#define DISP_OFFSET_X(x) REG_FIELD_PREP(DISP_OFFSET_X_MASK, (x))
81
82#define _DSPAOFFSET 0x701A4 /* hsw+ */
83#define DSPOFFSET(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPAOFFSET)
84
85#define _DSPASURFLIVE 0x701AC /* g4x+ */
86#define DSPSURFLIVE(dev_priv, plane) _MMIO_PIPE2(dev_priv, plane, _DSPASURFLIVE)
87
88#define _DSPAGAMC 0x701E0 /* pre-g4x */
89#define DSPGAMC(dev_priv, plane, i) _MMIO_PIPE2(dev_priv, plane, _DSPAGAMC + (5 - (i)) * 4) /* plane C only, 6 x u0.8 */
90
91/* CHV pipe B primary plane */
92#define _PRIMPOS_A 0x60a08
93#define PRIMPOS(dev_priv, plane) _MMIO_TRANS2(dev_priv, plane, _PRIMPOS_A)
94#define PRIM_POS_Y_MASK REG_GENMASK(31, 16)
95#define PRIM_POS_Y(y) REG_FIELD_PREP(PRIM_POS_Y_MASK, (y))
96#define PRIM_POS_X_MASK REG_GENMASK(15, 0)
97#define PRIM_POS_X(x) REG_FIELD_PREP(PRIM_POS_X_MASK, (x))
98
99#define _PRIMSIZE_A 0x60a0c
100#define PRIMSIZE(dev_priv, plane) _MMIO_TRANS2(dev_priv, plane, _PRIMSIZE_A)
101#define PRIM_HEIGHT_MASK REG_GENMASK(31, 16)
102#define PRIM_HEIGHT(h) REG_FIELD_PREP(PRIM_HEIGHT_MASK, (h))
103#define PRIM_WIDTH_MASK REG_GENMASK(15, 0)
104#define PRIM_WIDTH(w) REG_FIELD_PREP(PRIM_WIDTH_MASK, (w))
105
106#define _PRIMCNSTALPHA_A 0x60a10
107#define PRIMCNSTALPHA(dev_priv, plane) _MMIO_TRANS2(dev_priv, plane, _PRIMCNSTALPHA_A)
108#define PRIM_CONST_ALPHA_ENABLE REG_BIT(31)
109#define PRIM_CONST_ALPHA_MASK REG_GENMASK(7, 0)
110#define PRIM_CONST_ALPHA(alpha) REG_FIELD_PREP(PRIM_CONST_ALPHA_MASK, (alpha))
111
112#endif /* __I9XX_PLANE_REGS_H__ */