Linux Audio

Check our new training course

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__ */