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

drm/i915/reg: split out vlv_dsi_regs.h and vlv_dsi_pll_regs.h

The VLV (including CHV, BXT, and GLK) DSI registers have fairly isolated
usage. Split the register macros to separated files.

Cc: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220217224023.3994777-3-jani.nikula@intel.com

+596 -576
+3 -2
drivers/gpu/drm/i915/display/intel_display.c
··· 113 113 #include "i9xx_plane.h" 114 114 #include "skl_scaler.h" 115 115 #include "skl_universal_plane.h" 116 - #include "vlv_dsi_pll.h" 117 - #include "vlv_sideband.h" 118 116 #include "vlv_dsi.h" 117 + #include "vlv_dsi_pll.h" 118 + #include "vlv_dsi_regs.h" 119 + #include "vlv_sideband.h" 119 120 120 121 static void intel_set_transcoder_timings(const struct intel_crtc_state *crtc_state); 121 122 static void intel_set_pipe_src_size(const struct intel_crtc_state *crtc_state);
+1
drivers/gpu/drm/i915/display/intel_dsi_vbt.c
··· 44 44 #include "intel_dsi.h" 45 45 #include "intel_dsi_vbt.h" 46 46 #include "vlv_dsi.h" 47 + #include "vlv_dsi_regs.h" 47 48 #include "vlv_sideband.h" 48 49 49 50 #define MIPI_TRANSFER_MODE_SHIFT 0
+1
drivers/gpu/drm/i915/display/vlv_dsi.c
··· 44 44 #include "skl_scaler.h" 45 45 #include "vlv_dsi.h" 46 46 #include "vlv_dsi_pll.h" 47 + #include "vlv_dsi_regs.h" 47 48 #include "vlv_sideband.h" 48 49 49 50 /* return pixels in terms of txbyteclkhs */
+1
drivers/gpu/drm/i915/display/vlv_dsi_pll.c
··· 32 32 #include "intel_display_types.h" 33 33 #include "intel_dsi.h" 34 34 #include "vlv_dsi_pll.h" 35 + #include "vlv_dsi_pll_regs.h" 35 36 #include "vlv_sideband.h" 36 37 37 38 static const u16 lfsr_converts[] = {
+109
drivers/gpu/drm/i915/display/vlv_dsi_pll_regs.h
··· 1 + /* SPDX-License-Identifier: MIT */ 2 + /* 3 + * Copyright © 2022 Intel Corporation 4 + */ 5 + 6 + #ifndef __VLV_DSI_PLL_REGS_H__ 7 + #define __VLV_DSI_PLL_REGS_H__ 8 + 9 + #include "vlv_dsi_regs.h" 10 + 11 + #define MIPIO_TXESC_CLK_DIV1 _MMIO(0x160004) 12 + #define GLK_TX_ESC_CLK_DIV1_MASK 0x3FF 13 + #define MIPIO_TXESC_CLK_DIV2 _MMIO(0x160008) 14 + #define GLK_TX_ESC_CLK_DIV2_MASK 0x3FF 15 + 16 + #define BXT_MAX_VAR_OUTPUT_KHZ 39500 17 + 18 + #define BXT_MIPI_CLOCK_CTL _MMIO(0x46090) 19 + #define BXT_MIPI1_DIV_SHIFT 26 20 + #define BXT_MIPI2_DIV_SHIFT 10 21 + #define BXT_MIPI_DIV_SHIFT(port) \ 22 + _MIPI_PORT(port, BXT_MIPI1_DIV_SHIFT, \ 23 + BXT_MIPI2_DIV_SHIFT) 24 + 25 + /* TX control divider to select actual TX clock output from (8x/var) */ 26 + #define BXT_MIPI1_TX_ESCLK_SHIFT 26 27 + #define BXT_MIPI2_TX_ESCLK_SHIFT 10 28 + #define BXT_MIPI_TX_ESCLK_SHIFT(port) \ 29 + _MIPI_PORT(port, BXT_MIPI1_TX_ESCLK_SHIFT, \ 30 + BXT_MIPI2_TX_ESCLK_SHIFT) 31 + #define BXT_MIPI1_TX_ESCLK_FIXDIV_MASK (0x3F << 26) 32 + #define BXT_MIPI2_TX_ESCLK_FIXDIV_MASK (0x3F << 10) 33 + #define BXT_MIPI_TX_ESCLK_FIXDIV_MASK(port) \ 34 + _MIPI_PORT(port, BXT_MIPI1_TX_ESCLK_FIXDIV_MASK, \ 35 + BXT_MIPI2_TX_ESCLK_FIXDIV_MASK) 36 + #define BXT_MIPI_TX_ESCLK_DIVIDER(port, val) \ 37 + (((val) & 0x3F) << BXT_MIPI_TX_ESCLK_SHIFT(port)) 38 + /* RX upper control divider to select actual RX clock output from 8x */ 39 + #define BXT_MIPI1_RX_ESCLK_UPPER_SHIFT 21 40 + #define BXT_MIPI2_RX_ESCLK_UPPER_SHIFT 5 41 + #define BXT_MIPI_RX_ESCLK_UPPER_SHIFT(port) \ 42 + _MIPI_PORT(port, BXT_MIPI1_RX_ESCLK_UPPER_SHIFT, \ 43 + BXT_MIPI2_RX_ESCLK_UPPER_SHIFT) 44 + #define BXT_MIPI1_RX_ESCLK_UPPER_FIXDIV_MASK (3 << 21) 45 + #define BXT_MIPI2_RX_ESCLK_UPPER_FIXDIV_MASK (3 << 5) 46 + #define BXT_MIPI_RX_ESCLK_UPPER_FIXDIV_MASK(port) \ 47 + _MIPI_PORT(port, BXT_MIPI1_RX_ESCLK_UPPER_FIXDIV_MASK, \ 48 + BXT_MIPI2_RX_ESCLK_UPPER_FIXDIV_MASK) 49 + #define BXT_MIPI_RX_ESCLK_UPPER_DIVIDER(port, val) \ 50 + (((val) & 3) << BXT_MIPI_RX_ESCLK_UPPER_SHIFT(port)) 51 + /* 8/3X divider to select the actual 8/3X clock output from 8x */ 52 + #define BXT_MIPI1_8X_BY3_SHIFT 19 53 + #define BXT_MIPI2_8X_BY3_SHIFT 3 54 + #define BXT_MIPI_8X_BY3_SHIFT(port) \ 55 + _MIPI_PORT(port, BXT_MIPI1_8X_BY3_SHIFT, \ 56 + BXT_MIPI2_8X_BY3_SHIFT) 57 + #define BXT_MIPI1_8X_BY3_DIVIDER_MASK (3 << 19) 58 + #define BXT_MIPI2_8X_BY3_DIVIDER_MASK (3 << 3) 59 + #define BXT_MIPI_8X_BY3_DIVIDER_MASK(port) \ 60 + _MIPI_PORT(port, BXT_MIPI1_8X_BY3_DIVIDER_MASK, \ 61 + BXT_MIPI2_8X_BY3_DIVIDER_MASK) 62 + #define BXT_MIPI_8X_BY3_DIVIDER(port, val) \ 63 + (((val) & 3) << BXT_MIPI_8X_BY3_SHIFT(port)) 64 + /* RX lower control divider to select actual RX clock output from 8x */ 65 + #define BXT_MIPI1_RX_ESCLK_LOWER_SHIFT 16 66 + #define BXT_MIPI2_RX_ESCLK_LOWER_SHIFT 0 67 + #define BXT_MIPI_RX_ESCLK_LOWER_SHIFT(port) \ 68 + _MIPI_PORT(port, BXT_MIPI1_RX_ESCLK_LOWER_SHIFT, \ 69 + BXT_MIPI2_RX_ESCLK_LOWER_SHIFT) 70 + #define BXT_MIPI1_RX_ESCLK_LOWER_FIXDIV_MASK (3 << 16) 71 + #define BXT_MIPI2_RX_ESCLK_LOWER_FIXDIV_MASK (3 << 0) 72 + #define BXT_MIPI_RX_ESCLK_LOWER_FIXDIV_MASK(port) \ 73 + _MIPI_PORT(port, BXT_MIPI1_RX_ESCLK_LOWER_FIXDIV_MASK, \ 74 + BXT_MIPI2_RX_ESCLK_LOWER_FIXDIV_MASK) 75 + #define BXT_MIPI_RX_ESCLK_LOWER_DIVIDER(port, val) \ 76 + (((val) & 3) << BXT_MIPI_RX_ESCLK_LOWER_SHIFT(port)) 77 + 78 + #define RX_DIVIDER_BIT_1_2 0x3 79 + #define RX_DIVIDER_BIT_3_4 0xC 80 + 81 + #define BXT_DSI_PLL_CTL _MMIO(0x161000) 82 + #define BXT_DSI_PLL_PVD_RATIO_SHIFT 16 83 + #define BXT_DSI_PLL_PVD_RATIO_MASK (3 << BXT_DSI_PLL_PVD_RATIO_SHIFT) 84 + #define BXT_DSI_PLL_PVD_RATIO_1 (1 << BXT_DSI_PLL_PVD_RATIO_SHIFT) 85 + #define BXT_DSIC_16X_BY1 (0 << 10) 86 + #define BXT_DSIC_16X_BY2 (1 << 10) 87 + #define BXT_DSIC_16X_BY3 (2 << 10) 88 + #define BXT_DSIC_16X_BY4 (3 << 10) 89 + #define BXT_DSIC_16X_MASK (3 << 10) 90 + #define BXT_DSIA_16X_BY1 (0 << 8) 91 + #define BXT_DSIA_16X_BY2 (1 << 8) 92 + #define BXT_DSIA_16X_BY3 (2 << 8) 93 + #define BXT_DSIA_16X_BY4 (3 << 8) 94 + #define BXT_DSIA_16X_MASK (3 << 8) 95 + #define BXT_DSI_FREQ_SEL_SHIFT 8 96 + #define BXT_DSI_FREQ_SEL_MASK (0xF << BXT_DSI_FREQ_SEL_SHIFT) 97 + 98 + #define BXT_DSI_PLL_RATIO_MAX 0x7D 99 + #define BXT_DSI_PLL_RATIO_MIN 0x22 100 + #define GLK_DSI_PLL_RATIO_MAX 0x6F 101 + #define GLK_DSI_PLL_RATIO_MIN 0x22 102 + #define BXT_DSI_PLL_RATIO_MASK 0xFF 103 + #define BXT_REF_CLOCK_KHZ 19200 104 + 105 + #define BXT_DSI_PLL_ENABLE _MMIO(0x46080) 106 + #define BXT_DSI_PLL_DO_ENABLE (1 << 31) 107 + #define BXT_DSI_PLL_LOCKED (1 << 30) 108 + 109 + #endif /* __VLV_DSI_PLL_REGS_H__ */
+480
drivers/gpu/drm/i915/display/vlv_dsi_regs.h
··· 1 + /* SPDX-License-Identifier: MIT */ 2 + /* 3 + * Copyright © 2022 Intel Corporation 4 + */ 5 + 6 + #ifndef __VLV_DSI_REGS_H__ 7 + #define __VLV_DSI_REGS_H__ 8 + 9 + #include "i915_reg_defs.h" 10 + 11 + #define VLV_MIPI_BASE VLV_DISPLAY_BASE 12 + #define BXT_MIPI_BASE 0x60000 13 + 14 + #define _MIPI_PORT(port, a, c) (((port) == PORT_A) ? a : c) /* ports A and C only */ 15 + #define _MMIO_MIPI(port, a, c) _MMIO(_MIPI_PORT(port, a, c)) 16 + 17 + /* BXT MIPI mode configure */ 18 + #define _BXT_MIPIA_TRANS_HACTIVE 0x6B0F8 19 + #define _BXT_MIPIC_TRANS_HACTIVE 0x6B8F8 20 + #define BXT_MIPI_TRANS_HACTIVE(tc) _MMIO_MIPI(tc, \ 21 + _BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE) 22 + 23 + #define _BXT_MIPIA_TRANS_VACTIVE 0x6B0FC 24 + #define _BXT_MIPIC_TRANS_VACTIVE 0x6B8FC 25 + #define BXT_MIPI_TRANS_VACTIVE(tc) _MMIO_MIPI(tc, \ 26 + _BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE) 27 + 28 + #define _BXT_MIPIA_TRANS_VTOTAL 0x6B100 29 + #define _BXT_MIPIC_TRANS_VTOTAL 0x6B900 30 + #define BXT_MIPI_TRANS_VTOTAL(tc) _MMIO_MIPI(tc, \ 31 + _BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL) 32 + 33 + #define BXT_P_DSI_REGULATOR_CFG _MMIO(0x160020) 34 + #define STAP_SELECT (1 << 0) 35 + 36 + #define BXT_P_DSI_REGULATOR_TX_CTRL _MMIO(0x160054) 37 + #define HS_IO_CTRL_SELECT (1 << 0) 38 + 39 + #define _MIPIA_PORT_CTRL (VLV_DISPLAY_BASE + 0x61190) 40 + #define _MIPIC_PORT_CTRL (VLV_DISPLAY_BASE + 0x61700) 41 + #define MIPI_PORT_CTRL(port) _MMIO_MIPI(port, _MIPIA_PORT_CTRL, _MIPIC_PORT_CTRL) 42 + 43 + /* BXT port control */ 44 + #define _BXT_MIPIA_PORT_CTRL 0x6B0C0 45 + #define _BXT_MIPIC_PORT_CTRL 0x6B8C0 46 + #define BXT_MIPI_PORT_CTRL(tc) _MMIO_MIPI(tc, _BXT_MIPIA_PORT_CTRL, _BXT_MIPIC_PORT_CTRL) 47 + 48 + #define DPI_ENABLE (1 << 31) /* A + C */ 49 + #define MIPIA_MIPI4DPHY_DELAY_COUNT_SHIFT 27 50 + #define MIPIA_MIPI4DPHY_DELAY_COUNT_MASK (0xf << 27) 51 + #define DUAL_LINK_MODE_SHIFT 26 52 + #define DUAL_LINK_MODE_MASK (1 << 26) 53 + #define DUAL_LINK_MODE_FRONT_BACK (0 << 26) 54 + #define DUAL_LINK_MODE_PIXEL_ALTERNATIVE (1 << 26) 55 + #define DITHERING_ENABLE (1 << 25) /* A + C */ 56 + #define FLOPPED_HSTX (1 << 23) 57 + #define DE_INVERT (1 << 19) /* XXX */ 58 + #define MIPIA_FLISDSI_DELAY_COUNT_SHIFT 18 59 + #define MIPIA_FLISDSI_DELAY_COUNT_MASK (0xf << 18) 60 + #define AFE_LATCHOUT (1 << 17) 61 + #define LP_OUTPUT_HOLD (1 << 16) 62 + #define MIPIC_FLISDSI_DELAY_COUNT_HIGH_SHIFT 15 63 + #define MIPIC_FLISDSI_DELAY_COUNT_HIGH_MASK (1 << 15) 64 + #define MIPIC_MIPI4DPHY_DELAY_COUNT_SHIFT 11 65 + #define MIPIC_MIPI4DPHY_DELAY_COUNT_MASK (0xf << 11) 66 + #define CSB_SHIFT 9 67 + #define CSB_MASK (3 << 9) 68 + #define CSB_20MHZ (0 << 9) 69 + #define CSB_10MHZ (1 << 9) 70 + #define CSB_40MHZ (2 << 9) 71 + #define BANDGAP_MASK (1 << 8) 72 + #define BANDGAP_PNW_CIRCUIT (0 << 8) 73 + #define BANDGAP_LNC_CIRCUIT (1 << 8) 74 + #define MIPIC_FLISDSI_DELAY_COUNT_LOW_SHIFT 5 75 + #define MIPIC_FLISDSI_DELAY_COUNT_LOW_MASK (7 << 5) 76 + #define TEARING_EFFECT_DELAY (1 << 4) /* A + C */ 77 + #define TEARING_EFFECT_SHIFT 2 /* A + C */ 78 + #define TEARING_EFFECT_MASK (3 << 2) 79 + #define TEARING_EFFECT_OFF (0 << 2) 80 + #define TEARING_EFFECT_DSI (1 << 2) 81 + #define TEARING_EFFECT_GPIO (2 << 2) 82 + #define LANE_CONFIGURATION_SHIFT 0 83 + #define LANE_CONFIGURATION_MASK (3 << 0) 84 + #define LANE_CONFIGURATION_4LANE (0 << 0) 85 + #define LANE_CONFIGURATION_DUAL_LINK_A (1 << 0) 86 + #define LANE_CONFIGURATION_DUAL_LINK_B (2 << 0) 87 + 88 + #define _MIPIA_TEARING_CTRL (VLV_DISPLAY_BASE + 0x61194) 89 + #define _MIPIC_TEARING_CTRL (VLV_DISPLAY_BASE + 0x61704) 90 + #define MIPI_TEARING_CTRL(port) _MMIO_MIPI(port, _MIPIA_TEARING_CTRL, _MIPIC_TEARING_CTRL) 91 + #define TEARING_EFFECT_DELAY_SHIFT 0 92 + #define TEARING_EFFECT_DELAY_MASK (0xffff << 0) 93 + 94 + /* XXX: all bits reserved */ 95 + #define _MIPIA_AUTOPWG (VLV_DISPLAY_BASE + 0x611a0) 96 + 97 + /* MIPI DSI Controller and D-PHY registers */ 98 + 99 + #define _MIPIA_DEVICE_READY (dev_priv->mipi_mmio_base + 0xb000) 100 + #define _MIPIC_DEVICE_READY (dev_priv->mipi_mmio_base + 0xb800) 101 + #define MIPI_DEVICE_READY(port) _MMIO_MIPI(port, _MIPIA_DEVICE_READY, _MIPIC_DEVICE_READY) 102 + #define BUS_POSSESSION (1 << 3) /* set to give bus to receiver */ 103 + #define ULPS_STATE_MASK (3 << 1) 104 + #define ULPS_STATE_ENTER (2 << 1) 105 + #define ULPS_STATE_EXIT (1 << 1) 106 + #define ULPS_STATE_NORMAL_OPERATION (0 << 1) 107 + #define DEVICE_READY (1 << 0) 108 + 109 + #define _MIPIA_INTR_STAT (dev_priv->mipi_mmio_base + 0xb004) 110 + #define _MIPIC_INTR_STAT (dev_priv->mipi_mmio_base + 0xb804) 111 + #define MIPI_INTR_STAT(port) _MMIO_MIPI(port, _MIPIA_INTR_STAT, _MIPIC_INTR_STAT) 112 + #define _MIPIA_INTR_EN (dev_priv->mipi_mmio_base + 0xb008) 113 + #define _MIPIC_INTR_EN (dev_priv->mipi_mmio_base + 0xb808) 114 + #define MIPI_INTR_EN(port) _MMIO_MIPI(port, _MIPIA_INTR_EN, _MIPIC_INTR_EN) 115 + #define TEARING_EFFECT (1 << 31) 116 + #define SPL_PKT_SENT_INTERRUPT (1 << 30) 117 + #define GEN_READ_DATA_AVAIL (1 << 29) 118 + #define LP_GENERIC_WR_FIFO_FULL (1 << 28) 119 + #define HS_GENERIC_WR_FIFO_FULL (1 << 27) 120 + #define RX_PROT_VIOLATION (1 << 26) 121 + #define RX_INVALID_TX_LENGTH (1 << 25) 122 + #define ACK_WITH_NO_ERROR (1 << 24) 123 + #define TURN_AROUND_ACK_TIMEOUT (1 << 23) 124 + #define LP_RX_TIMEOUT (1 << 22) 125 + #define HS_TX_TIMEOUT (1 << 21) 126 + #define DPI_FIFO_UNDERRUN (1 << 20) 127 + #define LOW_CONTENTION (1 << 19) 128 + #define HIGH_CONTENTION (1 << 18) 129 + #define TXDSI_VC_ID_INVALID (1 << 17) 130 + #define TXDSI_DATA_TYPE_NOT_RECOGNISED (1 << 16) 131 + #define TXCHECKSUM_ERROR (1 << 15) 132 + #define TXECC_MULTIBIT_ERROR (1 << 14) 133 + #define TXECC_SINGLE_BIT_ERROR (1 << 13) 134 + #define TXFALSE_CONTROL_ERROR (1 << 12) 135 + #define RXDSI_VC_ID_INVALID (1 << 11) 136 + #define RXDSI_DATA_TYPE_NOT_REGOGNISED (1 << 10) 137 + #define RXCHECKSUM_ERROR (1 << 9) 138 + #define RXECC_MULTIBIT_ERROR (1 << 8) 139 + #define RXECC_SINGLE_BIT_ERROR (1 << 7) 140 + #define RXFALSE_CONTROL_ERROR (1 << 6) 141 + #define RXHS_RECEIVE_TIMEOUT_ERROR (1 << 5) 142 + #define RX_LP_TX_SYNC_ERROR (1 << 4) 143 + #define RXEXCAPE_MODE_ENTRY_ERROR (1 << 3) 144 + #define RXEOT_SYNC_ERROR (1 << 2) 145 + #define RXSOT_SYNC_ERROR (1 << 1) 146 + #define RXSOT_ERROR (1 << 0) 147 + 148 + #define _MIPIA_DSI_FUNC_PRG (dev_priv->mipi_mmio_base + 0xb00c) 149 + #define _MIPIC_DSI_FUNC_PRG (dev_priv->mipi_mmio_base + 0xb80c) 150 + #define MIPI_DSI_FUNC_PRG(port) _MMIO_MIPI(port, _MIPIA_DSI_FUNC_PRG, _MIPIC_DSI_FUNC_PRG) 151 + #define CMD_MODE_DATA_WIDTH_MASK (7 << 13) 152 + #define CMD_MODE_NOT_SUPPORTED (0 << 13) 153 + #define CMD_MODE_DATA_WIDTH_16_BIT (1 << 13) 154 + #define CMD_MODE_DATA_WIDTH_9_BIT (2 << 13) 155 + #define CMD_MODE_DATA_WIDTH_8_BIT (3 << 13) 156 + #define CMD_MODE_DATA_WIDTH_OPTION1 (4 << 13) 157 + #define CMD_MODE_DATA_WIDTH_OPTION2 (5 << 13) 158 + #define VID_MODE_FORMAT_MASK (0xf << 7) 159 + #define VID_MODE_NOT_SUPPORTED (0 << 7) 160 + #define VID_MODE_FORMAT_RGB565 (1 << 7) 161 + #define VID_MODE_FORMAT_RGB666_PACKED (2 << 7) 162 + #define VID_MODE_FORMAT_RGB666 (3 << 7) 163 + #define VID_MODE_FORMAT_RGB888 (4 << 7) 164 + #define CMD_MODE_CHANNEL_NUMBER_SHIFT 5 165 + #define CMD_MODE_CHANNEL_NUMBER_MASK (3 << 5) 166 + #define VID_MODE_CHANNEL_NUMBER_SHIFT 3 167 + #define VID_MODE_CHANNEL_NUMBER_MASK (3 << 3) 168 + #define DATA_LANES_PRG_REG_SHIFT 0 169 + #define DATA_LANES_PRG_REG_MASK (7 << 0) 170 + 171 + #define _MIPIA_HS_TX_TIMEOUT (dev_priv->mipi_mmio_base + 0xb010) 172 + #define _MIPIC_HS_TX_TIMEOUT (dev_priv->mipi_mmio_base + 0xb810) 173 + #define MIPI_HS_TX_TIMEOUT(port) _MMIO_MIPI(port, _MIPIA_HS_TX_TIMEOUT, _MIPIC_HS_TX_TIMEOUT) 174 + #define HIGH_SPEED_TX_TIMEOUT_COUNTER_MASK 0xffffff 175 + 176 + #define _MIPIA_LP_RX_TIMEOUT (dev_priv->mipi_mmio_base + 0xb014) 177 + #define _MIPIC_LP_RX_TIMEOUT (dev_priv->mipi_mmio_base + 0xb814) 178 + #define MIPI_LP_RX_TIMEOUT(port) _MMIO_MIPI(port, _MIPIA_LP_RX_TIMEOUT, _MIPIC_LP_RX_TIMEOUT) 179 + #define LOW_POWER_RX_TIMEOUT_COUNTER_MASK 0xffffff 180 + 181 + #define _MIPIA_TURN_AROUND_TIMEOUT (dev_priv->mipi_mmio_base + 0xb018) 182 + #define _MIPIC_TURN_AROUND_TIMEOUT (dev_priv->mipi_mmio_base + 0xb818) 183 + #define MIPI_TURN_AROUND_TIMEOUT(port) _MMIO_MIPI(port, _MIPIA_TURN_AROUND_TIMEOUT, _MIPIC_TURN_AROUND_TIMEOUT) 184 + #define TURN_AROUND_TIMEOUT_MASK 0x3f 185 + 186 + #define _MIPIA_DEVICE_RESET_TIMER (dev_priv->mipi_mmio_base + 0xb01c) 187 + #define _MIPIC_DEVICE_RESET_TIMER (dev_priv->mipi_mmio_base + 0xb81c) 188 + #define MIPI_DEVICE_RESET_TIMER(port) _MMIO_MIPI(port, _MIPIA_DEVICE_RESET_TIMER, _MIPIC_DEVICE_RESET_TIMER) 189 + #define DEVICE_RESET_TIMER_MASK 0xffff 190 + 191 + #define _MIPIA_DPI_RESOLUTION (dev_priv->mipi_mmio_base + 0xb020) 192 + #define _MIPIC_DPI_RESOLUTION (dev_priv->mipi_mmio_base + 0xb820) 193 + #define MIPI_DPI_RESOLUTION(port) _MMIO_MIPI(port, _MIPIA_DPI_RESOLUTION, _MIPIC_DPI_RESOLUTION) 194 + #define VERTICAL_ADDRESS_SHIFT 16 195 + #define VERTICAL_ADDRESS_MASK (0xffff << 16) 196 + #define HORIZONTAL_ADDRESS_SHIFT 0 197 + #define HORIZONTAL_ADDRESS_MASK 0xffff 198 + 199 + #define _MIPIA_DBI_FIFO_THROTTLE (dev_priv->mipi_mmio_base + 0xb024) 200 + #define _MIPIC_DBI_FIFO_THROTTLE (dev_priv->mipi_mmio_base + 0xb824) 201 + #define MIPI_DBI_FIFO_THROTTLE(port) _MMIO_MIPI(port, _MIPIA_DBI_FIFO_THROTTLE, _MIPIC_DBI_FIFO_THROTTLE) 202 + #define DBI_FIFO_EMPTY_HALF (0 << 0) 203 + #define DBI_FIFO_EMPTY_QUARTER (1 << 0) 204 + #define DBI_FIFO_EMPTY_7_LOCATIONS (2 << 0) 205 + 206 + /* regs below are bits 15:0 */ 207 + #define _MIPIA_HSYNC_PADDING_COUNT (dev_priv->mipi_mmio_base + 0xb028) 208 + #define _MIPIC_HSYNC_PADDING_COUNT (dev_priv->mipi_mmio_base + 0xb828) 209 + #define MIPI_HSYNC_PADDING_COUNT(port) _MMIO_MIPI(port, _MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT) 210 + 211 + #define _MIPIA_HBP_COUNT (dev_priv->mipi_mmio_base + 0xb02c) 212 + #define _MIPIC_HBP_COUNT (dev_priv->mipi_mmio_base + 0xb82c) 213 + #define MIPI_HBP_COUNT(port) _MMIO_MIPI(port, _MIPIA_HBP_COUNT, _MIPIC_HBP_COUNT) 214 + 215 + #define _MIPIA_HFP_COUNT (dev_priv->mipi_mmio_base + 0xb030) 216 + #define _MIPIC_HFP_COUNT (dev_priv->mipi_mmio_base + 0xb830) 217 + #define MIPI_HFP_COUNT(port) _MMIO_MIPI(port, _MIPIA_HFP_COUNT, _MIPIC_HFP_COUNT) 218 + 219 + #define _MIPIA_HACTIVE_AREA_COUNT (dev_priv->mipi_mmio_base + 0xb034) 220 + #define _MIPIC_HACTIVE_AREA_COUNT (dev_priv->mipi_mmio_base + 0xb834) 221 + #define MIPI_HACTIVE_AREA_COUNT(port) _MMIO_MIPI(port, _MIPIA_HACTIVE_AREA_COUNT, _MIPIC_HACTIVE_AREA_COUNT) 222 + 223 + #define _MIPIA_VSYNC_PADDING_COUNT (dev_priv->mipi_mmio_base + 0xb038) 224 + #define _MIPIC_VSYNC_PADDING_COUNT (dev_priv->mipi_mmio_base + 0xb838) 225 + #define MIPI_VSYNC_PADDING_COUNT(port) _MMIO_MIPI(port, _MIPIA_VSYNC_PADDING_COUNT, _MIPIC_VSYNC_PADDING_COUNT) 226 + 227 + #define _MIPIA_VBP_COUNT (dev_priv->mipi_mmio_base + 0xb03c) 228 + #define _MIPIC_VBP_COUNT (dev_priv->mipi_mmio_base + 0xb83c) 229 + #define MIPI_VBP_COUNT(port) _MMIO_MIPI(port, _MIPIA_VBP_COUNT, _MIPIC_VBP_COUNT) 230 + 231 + #define _MIPIA_VFP_COUNT (dev_priv->mipi_mmio_base + 0xb040) 232 + #define _MIPIC_VFP_COUNT (dev_priv->mipi_mmio_base + 0xb840) 233 + #define MIPI_VFP_COUNT(port) _MMIO_MIPI(port, _MIPIA_VFP_COUNT, _MIPIC_VFP_COUNT) 234 + 235 + #define _MIPIA_HIGH_LOW_SWITCH_COUNT (dev_priv->mipi_mmio_base + 0xb044) 236 + #define _MIPIC_HIGH_LOW_SWITCH_COUNT (dev_priv->mipi_mmio_base + 0xb844) 237 + #define MIPI_HIGH_LOW_SWITCH_COUNT(port) _MMIO_MIPI(port, _MIPIA_HIGH_LOW_SWITCH_COUNT, _MIPIC_HIGH_LOW_SWITCH_COUNT) 238 + 239 + #define _MIPIA_DPI_CONTROL (dev_priv->mipi_mmio_base + 0xb048) 240 + #define _MIPIC_DPI_CONTROL (dev_priv->mipi_mmio_base + 0xb848) 241 + #define MIPI_DPI_CONTROL(port) _MMIO_MIPI(port, _MIPIA_DPI_CONTROL, _MIPIC_DPI_CONTROL) 242 + #define DPI_LP_MODE (1 << 6) 243 + #define BACKLIGHT_OFF (1 << 5) 244 + #define BACKLIGHT_ON (1 << 4) 245 + #define COLOR_MODE_OFF (1 << 3) 246 + #define COLOR_MODE_ON (1 << 2) 247 + #define TURN_ON (1 << 1) 248 + #define SHUTDOWN (1 << 0) 249 + 250 + #define _MIPIA_DPI_DATA (dev_priv->mipi_mmio_base + 0xb04c) 251 + #define _MIPIC_DPI_DATA (dev_priv->mipi_mmio_base + 0xb84c) 252 + #define MIPI_DPI_DATA(port) _MMIO_MIPI(port, _MIPIA_DPI_DATA, _MIPIC_DPI_DATA) 253 + #define COMMAND_BYTE_SHIFT 0 254 + #define COMMAND_BYTE_MASK (0x3f << 0) 255 + 256 + #define _MIPIA_INIT_COUNT (dev_priv->mipi_mmio_base + 0xb050) 257 + #define _MIPIC_INIT_COUNT (dev_priv->mipi_mmio_base + 0xb850) 258 + #define MIPI_INIT_COUNT(port) _MMIO_MIPI(port, _MIPIA_INIT_COUNT, _MIPIC_INIT_COUNT) 259 + #define MASTER_INIT_TIMER_SHIFT 0 260 + #define MASTER_INIT_TIMER_MASK (0xffff << 0) 261 + 262 + #define _MIPIA_MAX_RETURN_PKT_SIZE (dev_priv->mipi_mmio_base + 0xb054) 263 + #define _MIPIC_MAX_RETURN_PKT_SIZE (dev_priv->mipi_mmio_base + 0xb854) 264 + #define MIPI_MAX_RETURN_PKT_SIZE(port) _MMIO_MIPI(port, \ 265 + _MIPIA_MAX_RETURN_PKT_SIZE, _MIPIC_MAX_RETURN_PKT_SIZE) 266 + #define MAX_RETURN_PKT_SIZE_SHIFT 0 267 + #define MAX_RETURN_PKT_SIZE_MASK (0x3ff << 0) 268 + 269 + #define _MIPIA_VIDEO_MODE_FORMAT (dev_priv->mipi_mmio_base + 0xb058) 270 + #define _MIPIC_VIDEO_MODE_FORMAT (dev_priv->mipi_mmio_base + 0xb858) 271 + #define MIPI_VIDEO_MODE_FORMAT(port) _MMIO_MIPI(port, _MIPIA_VIDEO_MODE_FORMAT, _MIPIC_VIDEO_MODE_FORMAT) 272 + #define RANDOM_DPI_DISPLAY_RESOLUTION (1 << 4) 273 + #define DISABLE_VIDEO_BTA (1 << 3) 274 + #define IP_TG_CONFIG (1 << 2) 275 + #define VIDEO_MODE_NON_BURST_WITH_SYNC_PULSE (1 << 0) 276 + #define VIDEO_MODE_NON_BURST_WITH_SYNC_EVENTS (2 << 0) 277 + #define VIDEO_MODE_BURST (3 << 0) 278 + 279 + #define _MIPIA_EOT_DISABLE (dev_priv->mipi_mmio_base + 0xb05c) 280 + #define _MIPIC_EOT_DISABLE (dev_priv->mipi_mmio_base + 0xb85c) 281 + #define MIPI_EOT_DISABLE(port) _MMIO_MIPI(port, _MIPIA_EOT_DISABLE, _MIPIC_EOT_DISABLE) 282 + #define BXT_DEFEATURE_DPI_FIFO_CTR (1 << 9) 283 + #define BXT_DPHY_DEFEATURE_EN (1 << 8) 284 + #define LP_RX_TIMEOUT_ERROR_RECOVERY_DISABLE (1 << 7) 285 + #define HS_RX_TIMEOUT_ERROR_RECOVERY_DISABLE (1 << 6) 286 + #define LOW_CONTENTION_RECOVERY_DISABLE (1 << 5) 287 + #define HIGH_CONTENTION_RECOVERY_DISABLE (1 << 4) 288 + #define TXDSI_TYPE_NOT_RECOGNISED_ERROR_RECOVERY_DISABLE (1 << 3) 289 + #define TXECC_MULTIBIT_ERROR_RECOVERY_DISABLE (1 << 2) 290 + #define CLOCKSTOP (1 << 1) 291 + #define EOT_DISABLE (1 << 0) 292 + 293 + #define _MIPIA_LP_BYTECLK (dev_priv->mipi_mmio_base + 0xb060) 294 + #define _MIPIC_LP_BYTECLK (dev_priv->mipi_mmio_base + 0xb860) 295 + #define MIPI_LP_BYTECLK(port) _MMIO_MIPI(port, _MIPIA_LP_BYTECLK, _MIPIC_LP_BYTECLK) 296 + #define LP_BYTECLK_SHIFT 0 297 + #define LP_BYTECLK_MASK (0xffff << 0) 298 + 299 + #define _MIPIA_TLPX_TIME_COUNT (dev_priv->mipi_mmio_base + 0xb0a4) 300 + #define _MIPIC_TLPX_TIME_COUNT (dev_priv->mipi_mmio_base + 0xb8a4) 301 + #define MIPI_TLPX_TIME_COUNT(port) _MMIO_MIPI(port, _MIPIA_TLPX_TIME_COUNT, _MIPIC_TLPX_TIME_COUNT) 302 + 303 + #define _MIPIA_CLK_LANE_TIMING (dev_priv->mipi_mmio_base + 0xb098) 304 + #define _MIPIC_CLK_LANE_TIMING (dev_priv->mipi_mmio_base + 0xb898) 305 + #define MIPI_CLK_LANE_TIMING(port) _MMIO_MIPI(port, _MIPIA_CLK_LANE_TIMING, _MIPIC_CLK_LANE_TIMING) 306 + 307 + /* bits 31:0 */ 308 + #define _MIPIA_LP_GEN_DATA (dev_priv->mipi_mmio_base + 0xb064) 309 + #define _MIPIC_LP_GEN_DATA (dev_priv->mipi_mmio_base + 0xb864) 310 + #define MIPI_LP_GEN_DATA(port) _MMIO_MIPI(port, _MIPIA_LP_GEN_DATA, _MIPIC_LP_GEN_DATA) 311 + 312 + /* bits 31:0 */ 313 + #define _MIPIA_HS_GEN_DATA (dev_priv->mipi_mmio_base + 0xb068) 314 + #define _MIPIC_HS_GEN_DATA (dev_priv->mipi_mmio_base + 0xb868) 315 + #define MIPI_HS_GEN_DATA(port) _MMIO_MIPI(port, _MIPIA_HS_GEN_DATA, _MIPIC_HS_GEN_DATA) 316 + 317 + #define _MIPIA_LP_GEN_CTRL (dev_priv->mipi_mmio_base + 0xb06c) 318 + #define _MIPIC_LP_GEN_CTRL (dev_priv->mipi_mmio_base + 0xb86c) 319 + #define MIPI_LP_GEN_CTRL(port) _MMIO_MIPI(port, _MIPIA_LP_GEN_CTRL, _MIPIC_LP_GEN_CTRL) 320 + #define _MIPIA_HS_GEN_CTRL (dev_priv->mipi_mmio_base + 0xb070) 321 + #define _MIPIC_HS_GEN_CTRL (dev_priv->mipi_mmio_base + 0xb870) 322 + #define MIPI_HS_GEN_CTRL(port) _MMIO_MIPI(port, _MIPIA_HS_GEN_CTRL, _MIPIC_HS_GEN_CTRL) 323 + #define LONG_PACKET_WORD_COUNT_SHIFT 8 324 + #define LONG_PACKET_WORD_COUNT_MASK (0xffff << 8) 325 + #define SHORT_PACKET_PARAM_SHIFT 8 326 + #define SHORT_PACKET_PARAM_MASK (0xffff << 8) 327 + #define VIRTUAL_CHANNEL_SHIFT 6 328 + #define VIRTUAL_CHANNEL_MASK (3 << 6) 329 + #define DATA_TYPE_SHIFT 0 330 + #define DATA_TYPE_MASK (0x3f << 0) 331 + /* data type values, see include/video/mipi_display.h */ 332 + 333 + #define _MIPIA_GEN_FIFO_STAT (dev_priv->mipi_mmio_base + 0xb074) 334 + #define _MIPIC_GEN_FIFO_STAT (dev_priv->mipi_mmio_base + 0xb874) 335 + #define MIPI_GEN_FIFO_STAT(port) _MMIO_MIPI(port, _MIPIA_GEN_FIFO_STAT, _MIPIC_GEN_FIFO_STAT) 336 + #define DPI_FIFO_EMPTY (1 << 28) 337 + #define DBI_FIFO_EMPTY (1 << 27) 338 + #define LP_CTRL_FIFO_EMPTY (1 << 26) 339 + #define LP_CTRL_FIFO_HALF_EMPTY (1 << 25) 340 + #define LP_CTRL_FIFO_FULL (1 << 24) 341 + #define HS_CTRL_FIFO_EMPTY (1 << 18) 342 + #define HS_CTRL_FIFO_HALF_EMPTY (1 << 17) 343 + #define HS_CTRL_FIFO_FULL (1 << 16) 344 + #define LP_DATA_FIFO_EMPTY (1 << 10) 345 + #define LP_DATA_FIFO_HALF_EMPTY (1 << 9) 346 + #define LP_DATA_FIFO_FULL (1 << 8) 347 + #define HS_DATA_FIFO_EMPTY (1 << 2) 348 + #define HS_DATA_FIFO_HALF_EMPTY (1 << 1) 349 + #define HS_DATA_FIFO_FULL (1 << 0) 350 + 351 + #define _MIPIA_HS_LS_DBI_ENABLE (dev_priv->mipi_mmio_base + 0xb078) 352 + #define _MIPIC_HS_LS_DBI_ENABLE (dev_priv->mipi_mmio_base + 0xb878) 353 + #define MIPI_HS_LP_DBI_ENABLE(port) _MMIO_MIPI(port, _MIPIA_HS_LS_DBI_ENABLE, _MIPIC_HS_LS_DBI_ENABLE) 354 + #define DBI_HS_LP_MODE_MASK (1 << 0) 355 + #define DBI_LP_MODE (1 << 0) 356 + #define DBI_HS_MODE (0 << 0) 357 + 358 + #define _MIPIA_DPHY_PARAM (dev_priv->mipi_mmio_base + 0xb080) 359 + #define _MIPIC_DPHY_PARAM (dev_priv->mipi_mmio_base + 0xb880) 360 + #define MIPI_DPHY_PARAM(port) _MMIO_MIPI(port, _MIPIA_DPHY_PARAM, _MIPIC_DPHY_PARAM) 361 + #define EXIT_ZERO_COUNT_SHIFT 24 362 + #define EXIT_ZERO_COUNT_MASK (0x3f << 24) 363 + #define TRAIL_COUNT_SHIFT 16 364 + #define TRAIL_COUNT_MASK (0x1f << 16) 365 + #define CLK_ZERO_COUNT_SHIFT 8 366 + #define CLK_ZERO_COUNT_MASK (0xff << 8) 367 + #define PREPARE_COUNT_SHIFT 0 368 + #define PREPARE_COUNT_MASK (0x3f << 0) 369 + 370 + #define _MIPIA_DBI_BW_CTRL (dev_priv->mipi_mmio_base + 0xb084) 371 + #define _MIPIC_DBI_BW_CTRL (dev_priv->mipi_mmio_base + 0xb884) 372 + #define MIPI_DBI_BW_CTRL(port) _MMIO_MIPI(port, _MIPIA_DBI_BW_CTRL, _MIPIC_DBI_BW_CTRL) 373 + 374 + #define _MIPIA_CLK_LANE_SWITCH_TIME_CNT (dev_priv->mipi_mmio_base + 0xb088) 375 + #define _MIPIC_CLK_LANE_SWITCH_TIME_CNT (dev_priv->mipi_mmio_base + 0xb888) 376 + #define MIPI_CLK_LANE_SWITCH_TIME_CNT(port) _MMIO_MIPI(port, _MIPIA_CLK_LANE_SWITCH_TIME_CNT, _MIPIC_CLK_LANE_SWITCH_TIME_CNT) 377 + #define LP_HS_SSW_CNT_SHIFT 16 378 + #define LP_HS_SSW_CNT_MASK (0xffff << 16) 379 + #define HS_LP_PWR_SW_CNT_SHIFT 0 380 + #define HS_LP_PWR_SW_CNT_MASK (0xffff << 0) 381 + 382 + #define _MIPIA_STOP_STATE_STALL (dev_priv->mipi_mmio_base + 0xb08c) 383 + #define _MIPIC_STOP_STATE_STALL (dev_priv->mipi_mmio_base + 0xb88c) 384 + #define MIPI_STOP_STATE_STALL(port) _MMIO_MIPI(port, _MIPIA_STOP_STATE_STALL, _MIPIC_STOP_STATE_STALL) 385 + #define STOP_STATE_STALL_COUNTER_SHIFT 0 386 + #define STOP_STATE_STALL_COUNTER_MASK (0xff << 0) 387 + 388 + #define _MIPIA_INTR_STAT_REG_1 (dev_priv->mipi_mmio_base + 0xb090) 389 + #define _MIPIC_INTR_STAT_REG_1 (dev_priv->mipi_mmio_base + 0xb890) 390 + #define MIPI_INTR_STAT_REG_1(port) _MMIO_MIPI(port, _MIPIA_INTR_STAT_REG_1, _MIPIC_INTR_STAT_REG_1) 391 + #define _MIPIA_INTR_EN_REG_1 (dev_priv->mipi_mmio_base + 0xb094) 392 + #define _MIPIC_INTR_EN_REG_1 (dev_priv->mipi_mmio_base + 0xb894) 393 + #define MIPI_INTR_EN_REG_1(port) _MMIO_MIPI(port, _MIPIA_INTR_EN_REG_1, _MIPIC_INTR_EN_REG_1) 394 + #define RX_CONTENTION_DETECTED (1 << 0) 395 + 396 + /* XXX: only pipe A ?!? */ 397 + #define MIPIA_DBI_TYPEC_CTRL (dev_priv->mipi_mmio_base + 0xb100) 398 + #define DBI_TYPEC_ENABLE (1 << 31) 399 + #define DBI_TYPEC_WIP (1 << 30) 400 + #define DBI_TYPEC_OPTION_SHIFT 28 401 + #define DBI_TYPEC_OPTION_MASK (3 << 28) 402 + #define DBI_TYPEC_FREQ_SHIFT 24 403 + #define DBI_TYPEC_FREQ_MASK (0xf << 24) 404 + #define DBI_TYPEC_OVERRIDE (1 << 8) 405 + #define DBI_TYPEC_OVERRIDE_COUNTER_SHIFT 0 406 + #define DBI_TYPEC_OVERRIDE_COUNTER_MASK (0xff << 0) 407 + 408 + /* MIPI adapter registers */ 409 + 410 + #define _MIPIA_CTRL (dev_priv->mipi_mmio_base + 0xb104) 411 + #define _MIPIC_CTRL (dev_priv->mipi_mmio_base + 0xb904) 412 + #define MIPI_CTRL(port) _MMIO_MIPI(port, _MIPIA_CTRL, _MIPIC_CTRL) 413 + #define ESCAPE_CLOCK_DIVIDER_SHIFT 5 /* A only */ 414 + #define ESCAPE_CLOCK_DIVIDER_MASK (3 << 5) 415 + #define ESCAPE_CLOCK_DIVIDER_1 (0 << 5) 416 + #define ESCAPE_CLOCK_DIVIDER_2 (1 << 5) 417 + #define ESCAPE_CLOCK_DIVIDER_4 (2 << 5) 418 + #define READ_REQUEST_PRIORITY_SHIFT 3 419 + #define READ_REQUEST_PRIORITY_MASK (3 << 3) 420 + #define READ_REQUEST_PRIORITY_LOW (0 << 3) 421 + #define READ_REQUEST_PRIORITY_HIGH (3 << 3) 422 + #define RGB_FLIP_TO_BGR (1 << 2) 423 + 424 + #define BXT_PIPE_SELECT_SHIFT 7 425 + #define BXT_PIPE_SELECT_MASK (7 << 7) 426 + #define BXT_PIPE_SELECT(pipe) ((pipe) << 7) 427 + #define GLK_PHY_STATUS_PORT_READY (1 << 31) /* RO */ 428 + #define GLK_ULPS_NOT_ACTIVE (1 << 30) /* RO */ 429 + #define GLK_MIPIIO_RESET_RELEASED (1 << 28) 430 + #define GLK_CLOCK_LANE_STOP_STATE (1 << 27) /* RO */ 431 + #define GLK_DATA_LANE_STOP_STATE (1 << 26) /* RO */ 432 + #define GLK_LP_WAKE (1 << 22) 433 + #define GLK_LP11_LOW_PWR_MODE (1 << 21) 434 + #define GLK_LP00_LOW_PWR_MODE (1 << 20) 435 + #define GLK_FIREWALL_ENABLE (1 << 16) 436 + #define BXT_PIXEL_OVERLAP_CNT_MASK (0xf << 10) 437 + #define BXT_PIXEL_OVERLAP_CNT_SHIFT 10 438 + #define BXT_DSC_ENABLE (1 << 3) 439 + #define BXT_RGB_FLIP (1 << 2) 440 + #define GLK_MIPIIO_PORT_POWERED (1 << 1) /* RO */ 441 + #define GLK_MIPIIO_ENABLE (1 << 0) 442 + 443 + #define _MIPIA_DATA_ADDRESS (dev_priv->mipi_mmio_base + 0xb108) 444 + #define _MIPIC_DATA_ADDRESS (dev_priv->mipi_mmio_base + 0xb908) 445 + #define MIPI_DATA_ADDRESS(port) _MMIO_MIPI(port, _MIPIA_DATA_ADDRESS, _MIPIC_DATA_ADDRESS) 446 + #define DATA_MEM_ADDRESS_SHIFT 5 447 + #define DATA_MEM_ADDRESS_MASK (0x7ffffff << 5) 448 + #define DATA_VALID (1 << 0) 449 + 450 + #define _MIPIA_DATA_LENGTH (dev_priv->mipi_mmio_base + 0xb10c) 451 + #define _MIPIC_DATA_LENGTH (dev_priv->mipi_mmio_base + 0xb90c) 452 + #define MIPI_DATA_LENGTH(port) _MMIO_MIPI(port, _MIPIA_DATA_LENGTH, _MIPIC_DATA_LENGTH) 453 + #define DATA_LENGTH_SHIFT 0 454 + #define DATA_LENGTH_MASK (0xfffff << 0) 455 + 456 + #define _MIPIA_COMMAND_ADDRESS (dev_priv->mipi_mmio_base + 0xb110) 457 + #define _MIPIC_COMMAND_ADDRESS (dev_priv->mipi_mmio_base + 0xb910) 458 + #define MIPI_COMMAND_ADDRESS(port) _MMIO_MIPI(port, _MIPIA_COMMAND_ADDRESS, _MIPIC_COMMAND_ADDRESS) 459 + #define COMMAND_MEM_ADDRESS_SHIFT 5 460 + #define COMMAND_MEM_ADDRESS_MASK (0x7ffffff << 5) 461 + #define AUTO_PWG_ENABLE (1 << 2) 462 + #define MEMORY_WRITE_DATA_FROM_PIPE_RENDERING (1 << 1) 463 + #define COMMAND_VALID (1 << 0) 464 + 465 + #define _MIPIA_COMMAND_LENGTH (dev_priv->mipi_mmio_base + 0xb114) 466 + #define _MIPIC_COMMAND_LENGTH (dev_priv->mipi_mmio_base + 0xb914) 467 + #define MIPI_COMMAND_LENGTH(port) _MMIO_MIPI(port, _MIPIA_COMMAND_LENGTH, _MIPIC_COMMAND_LENGTH) 468 + #define COMMAND_LENGTH_SHIFT(n) (8 * (n)) /* n: 0...3 */ 469 + #define COMMAND_LENGTH_MASK(n) (0xff << (8 * (n))) 470 + 471 + #define _MIPIA_READ_DATA_RETURN0 (dev_priv->mipi_mmio_base + 0xb118) 472 + #define _MIPIC_READ_DATA_RETURN0 (dev_priv->mipi_mmio_base + 0xb918) 473 + #define MIPI_READ_DATA_RETURN(port, n) _MMIO(_MIPI(port, _MIPIA_READ_DATA_RETURN0, _MIPIC_READ_DATA_RETURN0) + 4 * (n)) /* n: 0...7 */ 474 + 475 + #define _MIPIA_READ_DATA_VALID (dev_priv->mipi_mmio_base + 0xb138) 476 + #define _MIPIC_READ_DATA_VALID (dev_priv->mipi_mmio_base + 0xb938) 477 + #define MIPI_READ_DATA_VALID(port) _MMIO_MIPI(port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID) 478 + #define READ_DATA_VALID(n) (1 << (n)) 479 + 480 + #endif /* __VLV_DSI_REGS_H__ */
+1
drivers/gpu/drm/i915/gvt/handlers.c
··· 43 43 #include "intel_mchbar_regs.h" 44 44 #include "display/intel_display_types.h" 45 45 #include "display/intel_fbc.h" 46 + #include "display/vlv_dsi_pll_regs.h" 46 47 #include "gt/intel_gt_regs.h" 47 48 48 49 /* XXX FIXME i915 has changed PP_XXX definition */
-574
drivers/gpu/drm/i915/i915_reg.h
··· 115 115 * #define GEN8_BAR _MMIO(0xb888) 116 116 */ 117 117 118 - #define VLV_MIPI_BASE VLV_DISPLAY_BASE 119 - #define BXT_MIPI_BASE 0x60000 120 - 121 118 #define DISPLAY_MMIO_BASE(dev_priv) (INTEL_INFO(dev_priv)->display_mmio_offset) 122 119 123 120 /* ··· 8393 8396 #define CGM_PIPE_GAMMA(pipe, i, w) _MMIO(_PIPE(pipe, _CGM_PIPE_A_GAMMA, _CGM_PIPE_B_GAMMA) + (i) * 8 + (w) * 4) 8394 8397 #define CGM_PIPE_MODE(pipe) _MMIO_PIPE(pipe, _CGM_PIPE_A_MODE, _CGM_PIPE_B_MODE) 8395 8398 8396 - /* MIPI DSI registers */ 8397 - 8398 - #define _MIPI_PORT(port, a, c) (((port) == PORT_A) ? a : c) /* ports A and C only */ 8399 - #define _MMIO_MIPI(port, a, c) _MMIO(_MIPI_PORT(port, a, c)) 8400 - 8401 8399 /* Gen11 DSI */ 8402 8400 #define _MMIO_DSI(tc, dsi0, dsi1) _MMIO_TRANS((tc) - TRANSCODER_DSI_0, \ 8403 8401 dsi0, dsi1) 8404 - 8405 - #define MIPIO_TXESC_CLK_DIV1 _MMIO(0x160004) 8406 - #define GLK_TX_ESC_CLK_DIV1_MASK 0x3FF 8407 - #define MIPIO_TXESC_CLK_DIV2 _MMIO(0x160008) 8408 - #define GLK_TX_ESC_CLK_DIV2_MASK 0x3FF 8409 - 8410 8402 #define _ICL_DSI_ESC_CLK_DIV0 0x6b090 8411 8403 #define _ICL_DSI_ESC_CLK_DIV1 0x6b890 8412 8404 #define ICL_DSI_ESC_CLK_DIV(port) _MMIO_PORT((port), \ ··· 8484 8498 #define PIPE_FRMTMSTMP(pipe) \ 8485 8499 _MMIO_PIPE2(pipe, _PIPE_FRMTMSTMP_A) 8486 8500 8487 - /* BXT MIPI clock controls */ 8488 - #define BXT_MAX_VAR_OUTPUT_KHZ 39500 8489 - 8490 - #define BXT_MIPI_CLOCK_CTL _MMIO(0x46090) 8491 - #define BXT_MIPI1_DIV_SHIFT 26 8492 - #define BXT_MIPI2_DIV_SHIFT 10 8493 - #define BXT_MIPI_DIV_SHIFT(port) \ 8494 - _MIPI_PORT(port, BXT_MIPI1_DIV_SHIFT, \ 8495 - BXT_MIPI2_DIV_SHIFT) 8496 - 8497 - /* TX control divider to select actual TX clock output from (8x/var) */ 8498 - #define BXT_MIPI1_TX_ESCLK_SHIFT 26 8499 - #define BXT_MIPI2_TX_ESCLK_SHIFT 10 8500 - #define BXT_MIPI_TX_ESCLK_SHIFT(port) \ 8501 - _MIPI_PORT(port, BXT_MIPI1_TX_ESCLK_SHIFT, \ 8502 - BXT_MIPI2_TX_ESCLK_SHIFT) 8503 - #define BXT_MIPI1_TX_ESCLK_FIXDIV_MASK (0x3F << 26) 8504 - #define BXT_MIPI2_TX_ESCLK_FIXDIV_MASK (0x3F << 10) 8505 - #define BXT_MIPI_TX_ESCLK_FIXDIV_MASK(port) \ 8506 - _MIPI_PORT(port, BXT_MIPI1_TX_ESCLK_FIXDIV_MASK, \ 8507 - BXT_MIPI2_TX_ESCLK_FIXDIV_MASK) 8508 - #define BXT_MIPI_TX_ESCLK_DIVIDER(port, val) \ 8509 - (((val) & 0x3F) << BXT_MIPI_TX_ESCLK_SHIFT(port)) 8510 - /* RX upper control divider to select actual RX clock output from 8x */ 8511 - #define BXT_MIPI1_RX_ESCLK_UPPER_SHIFT 21 8512 - #define BXT_MIPI2_RX_ESCLK_UPPER_SHIFT 5 8513 - #define BXT_MIPI_RX_ESCLK_UPPER_SHIFT(port) \ 8514 - _MIPI_PORT(port, BXT_MIPI1_RX_ESCLK_UPPER_SHIFT, \ 8515 - BXT_MIPI2_RX_ESCLK_UPPER_SHIFT) 8516 - #define BXT_MIPI1_RX_ESCLK_UPPER_FIXDIV_MASK (3 << 21) 8517 - #define BXT_MIPI2_RX_ESCLK_UPPER_FIXDIV_MASK (3 << 5) 8518 - #define BXT_MIPI_RX_ESCLK_UPPER_FIXDIV_MASK(port) \ 8519 - _MIPI_PORT(port, BXT_MIPI1_RX_ESCLK_UPPER_FIXDIV_MASK, \ 8520 - BXT_MIPI2_RX_ESCLK_UPPER_FIXDIV_MASK) 8521 - #define BXT_MIPI_RX_ESCLK_UPPER_DIVIDER(port, val) \ 8522 - (((val) & 3) << BXT_MIPI_RX_ESCLK_UPPER_SHIFT(port)) 8523 - /* 8/3X divider to select the actual 8/3X clock output from 8x */ 8524 - #define BXT_MIPI1_8X_BY3_SHIFT 19 8525 - #define BXT_MIPI2_8X_BY3_SHIFT 3 8526 - #define BXT_MIPI_8X_BY3_SHIFT(port) \ 8527 - _MIPI_PORT(port, BXT_MIPI1_8X_BY3_SHIFT, \ 8528 - BXT_MIPI2_8X_BY3_SHIFT) 8529 - #define BXT_MIPI1_8X_BY3_DIVIDER_MASK (3 << 19) 8530 - #define BXT_MIPI2_8X_BY3_DIVIDER_MASK (3 << 3) 8531 - #define BXT_MIPI_8X_BY3_DIVIDER_MASK(port) \ 8532 - _MIPI_PORT(port, BXT_MIPI1_8X_BY3_DIVIDER_MASK, \ 8533 - BXT_MIPI2_8X_BY3_DIVIDER_MASK) 8534 - #define BXT_MIPI_8X_BY3_DIVIDER(port, val) \ 8535 - (((val) & 3) << BXT_MIPI_8X_BY3_SHIFT(port)) 8536 - /* RX lower control divider to select actual RX clock output from 8x */ 8537 - #define BXT_MIPI1_RX_ESCLK_LOWER_SHIFT 16 8538 - #define BXT_MIPI2_RX_ESCLK_LOWER_SHIFT 0 8539 - #define BXT_MIPI_RX_ESCLK_LOWER_SHIFT(port) \ 8540 - _MIPI_PORT(port, BXT_MIPI1_RX_ESCLK_LOWER_SHIFT, \ 8541 - BXT_MIPI2_RX_ESCLK_LOWER_SHIFT) 8542 - #define BXT_MIPI1_RX_ESCLK_LOWER_FIXDIV_MASK (3 << 16) 8543 - #define BXT_MIPI2_RX_ESCLK_LOWER_FIXDIV_MASK (3 << 0) 8544 - #define BXT_MIPI_RX_ESCLK_LOWER_FIXDIV_MASK(port) \ 8545 - _MIPI_PORT(port, BXT_MIPI1_RX_ESCLK_LOWER_FIXDIV_MASK, \ 8546 - BXT_MIPI2_RX_ESCLK_LOWER_FIXDIV_MASK) 8547 - #define BXT_MIPI_RX_ESCLK_LOWER_DIVIDER(port, val) \ 8548 - (((val) & 3) << BXT_MIPI_RX_ESCLK_LOWER_SHIFT(port)) 8549 - 8550 - #define RX_DIVIDER_BIT_1_2 0x3 8551 - #define RX_DIVIDER_BIT_3_4 0xC 8552 - 8553 - /* BXT MIPI mode configure */ 8554 - #define _BXT_MIPIA_TRANS_HACTIVE 0x6B0F8 8555 - #define _BXT_MIPIC_TRANS_HACTIVE 0x6B8F8 8556 - #define BXT_MIPI_TRANS_HACTIVE(tc) _MMIO_MIPI(tc, \ 8557 - _BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE) 8558 - 8559 - #define _BXT_MIPIA_TRANS_VACTIVE 0x6B0FC 8560 - #define _BXT_MIPIC_TRANS_VACTIVE 0x6B8FC 8561 - #define BXT_MIPI_TRANS_VACTIVE(tc) _MMIO_MIPI(tc, \ 8562 - _BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE) 8563 - 8564 - #define _BXT_MIPIA_TRANS_VTOTAL 0x6B100 8565 - #define _BXT_MIPIC_TRANS_VTOTAL 0x6B900 8566 - #define BXT_MIPI_TRANS_VTOTAL(tc) _MMIO_MIPI(tc, \ 8567 - _BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL) 8568 - 8569 - #define BXT_DSI_PLL_CTL _MMIO(0x161000) 8570 - #define BXT_DSI_PLL_PVD_RATIO_SHIFT 16 8571 - #define BXT_DSI_PLL_PVD_RATIO_MASK (3 << BXT_DSI_PLL_PVD_RATIO_SHIFT) 8572 - #define BXT_DSI_PLL_PVD_RATIO_1 (1 << BXT_DSI_PLL_PVD_RATIO_SHIFT) 8573 - #define BXT_DSIC_16X_BY1 (0 << 10) 8574 - #define BXT_DSIC_16X_BY2 (1 << 10) 8575 - #define BXT_DSIC_16X_BY3 (2 << 10) 8576 - #define BXT_DSIC_16X_BY4 (3 << 10) 8577 - #define BXT_DSIC_16X_MASK (3 << 10) 8578 - #define BXT_DSIA_16X_BY1 (0 << 8) 8579 - #define BXT_DSIA_16X_BY2 (1 << 8) 8580 - #define BXT_DSIA_16X_BY3 (2 << 8) 8581 - #define BXT_DSIA_16X_BY4 (3 << 8) 8582 - #define BXT_DSIA_16X_MASK (3 << 8) 8583 - #define BXT_DSI_FREQ_SEL_SHIFT 8 8584 - #define BXT_DSI_FREQ_SEL_MASK (0xF << BXT_DSI_FREQ_SEL_SHIFT) 8585 - 8586 - #define BXT_DSI_PLL_RATIO_MAX 0x7D 8587 - #define BXT_DSI_PLL_RATIO_MIN 0x22 8588 - #define GLK_DSI_PLL_RATIO_MAX 0x6F 8589 - #define GLK_DSI_PLL_RATIO_MIN 0x22 8590 - #define BXT_DSI_PLL_RATIO_MASK 0xFF 8591 - #define BXT_REF_CLOCK_KHZ 19200 8592 - 8593 - #define BXT_DSI_PLL_ENABLE _MMIO(0x46080) 8594 - #define BXT_DSI_PLL_DO_ENABLE (1 << 31) 8595 - #define BXT_DSI_PLL_LOCKED (1 << 30) 8596 - 8597 - #define _MIPIA_PORT_CTRL (VLV_DISPLAY_BASE + 0x61190) 8598 - #define _MIPIC_PORT_CTRL (VLV_DISPLAY_BASE + 0x61700) 8599 - #define MIPI_PORT_CTRL(port) _MMIO_MIPI(port, _MIPIA_PORT_CTRL, _MIPIC_PORT_CTRL) 8600 - 8601 - /* BXT port control */ 8602 - #define _BXT_MIPIA_PORT_CTRL 0x6B0C0 8603 - #define _BXT_MIPIC_PORT_CTRL 0x6B8C0 8604 - #define BXT_MIPI_PORT_CTRL(tc) _MMIO_MIPI(tc, _BXT_MIPIA_PORT_CTRL, _BXT_MIPIC_PORT_CTRL) 8605 - 8606 8501 /* ICL DSI MODE control */ 8607 8502 #define _ICL_DSI_IO_MODECTL_0 0x6B094 8608 8503 #define _ICL_DSI_IO_MODECTL_1 0x6B894 ··· 8540 8673 _ICL_PIPE_DSS_CTL2_PB, \ 8541 8674 _ICL_PIPE_DSS_CTL2_PC) 8542 8675 8543 - #define BXT_P_DSI_REGULATOR_CFG _MMIO(0x160020) 8544 - #define STAP_SELECT (1 << 0) 8545 - 8546 - #define BXT_P_DSI_REGULATOR_TX_CTRL _MMIO(0x160054) 8547 - #define HS_IO_CTRL_SELECT (1 << 0) 8548 - 8549 - #define DPI_ENABLE (1 << 31) /* A + C */ 8550 - #define MIPIA_MIPI4DPHY_DELAY_COUNT_SHIFT 27 8551 - #define MIPIA_MIPI4DPHY_DELAY_COUNT_MASK (0xf << 27) 8552 - #define DUAL_LINK_MODE_SHIFT 26 8553 - #define DUAL_LINK_MODE_MASK (1 << 26) 8554 - #define DUAL_LINK_MODE_FRONT_BACK (0 << 26) 8555 - #define DUAL_LINK_MODE_PIXEL_ALTERNATIVE (1 << 26) 8556 - #define DITHERING_ENABLE (1 << 25) /* A + C */ 8557 - #define FLOPPED_HSTX (1 << 23) 8558 - #define DE_INVERT (1 << 19) /* XXX */ 8559 - #define MIPIA_FLISDSI_DELAY_COUNT_SHIFT 18 8560 - #define MIPIA_FLISDSI_DELAY_COUNT_MASK (0xf << 18) 8561 - #define AFE_LATCHOUT (1 << 17) 8562 - #define LP_OUTPUT_HOLD (1 << 16) 8563 - #define MIPIC_FLISDSI_DELAY_COUNT_HIGH_SHIFT 15 8564 - #define MIPIC_FLISDSI_DELAY_COUNT_HIGH_MASK (1 << 15) 8565 - #define MIPIC_MIPI4DPHY_DELAY_COUNT_SHIFT 11 8566 - #define MIPIC_MIPI4DPHY_DELAY_COUNT_MASK (0xf << 11) 8567 - #define CSB_SHIFT 9 8568 - #define CSB_MASK (3 << 9) 8569 - #define CSB_20MHZ (0 << 9) 8570 - #define CSB_10MHZ (1 << 9) 8571 - #define CSB_40MHZ (2 << 9) 8572 - #define BANDGAP_MASK (1 << 8) 8573 - #define BANDGAP_PNW_CIRCUIT (0 << 8) 8574 - #define BANDGAP_LNC_CIRCUIT (1 << 8) 8575 - #define MIPIC_FLISDSI_DELAY_COUNT_LOW_SHIFT 5 8576 - #define MIPIC_FLISDSI_DELAY_COUNT_LOW_MASK (7 << 5) 8577 - #define TEARING_EFFECT_DELAY (1 << 4) /* A + C */ 8578 - #define TEARING_EFFECT_SHIFT 2 /* A + C */ 8579 - #define TEARING_EFFECT_MASK (3 << 2) 8580 - #define TEARING_EFFECT_OFF (0 << 2) 8581 - #define TEARING_EFFECT_DSI (1 << 2) 8582 - #define TEARING_EFFECT_GPIO (2 << 2) 8583 - #define LANE_CONFIGURATION_SHIFT 0 8584 - #define LANE_CONFIGURATION_MASK (3 << 0) 8585 - #define LANE_CONFIGURATION_4LANE (0 << 0) 8586 - #define LANE_CONFIGURATION_DUAL_LINK_A (1 << 0) 8587 - #define LANE_CONFIGURATION_DUAL_LINK_B (2 << 0) 8588 - 8589 - #define _MIPIA_TEARING_CTRL (VLV_DISPLAY_BASE + 0x61194) 8590 - #define _MIPIC_TEARING_CTRL (VLV_DISPLAY_BASE + 0x61704) 8591 - #define MIPI_TEARING_CTRL(port) _MMIO_MIPI(port, _MIPIA_TEARING_CTRL, _MIPIC_TEARING_CTRL) 8592 - #define TEARING_EFFECT_DELAY_SHIFT 0 8593 - #define TEARING_EFFECT_DELAY_MASK (0xffff << 0) 8594 - 8595 - /* XXX: all bits reserved */ 8596 - #define _MIPIA_AUTOPWG (VLV_DISPLAY_BASE + 0x611a0) 8597 - 8598 - /* MIPI DSI Controller and D-PHY registers */ 8599 - 8600 - #define _MIPIA_DEVICE_READY (dev_priv->mipi_mmio_base + 0xb000) 8601 - #define _MIPIC_DEVICE_READY (dev_priv->mipi_mmio_base + 0xb800) 8602 - #define MIPI_DEVICE_READY(port) _MMIO_MIPI(port, _MIPIA_DEVICE_READY, _MIPIC_DEVICE_READY) 8603 - #define BUS_POSSESSION (1 << 3) /* set to give bus to receiver */ 8604 - #define ULPS_STATE_MASK (3 << 1) 8605 - #define ULPS_STATE_ENTER (2 << 1) 8606 - #define ULPS_STATE_EXIT (1 << 1) 8607 - #define ULPS_STATE_NORMAL_OPERATION (0 << 1) 8608 - #define DEVICE_READY (1 << 0) 8609 - 8610 - #define _MIPIA_INTR_STAT (dev_priv->mipi_mmio_base + 0xb004) 8611 - #define _MIPIC_INTR_STAT (dev_priv->mipi_mmio_base + 0xb804) 8612 - #define MIPI_INTR_STAT(port) _MMIO_MIPI(port, _MIPIA_INTR_STAT, _MIPIC_INTR_STAT) 8613 - #define _MIPIA_INTR_EN (dev_priv->mipi_mmio_base + 0xb008) 8614 - #define _MIPIC_INTR_EN (dev_priv->mipi_mmio_base + 0xb808) 8615 - #define MIPI_INTR_EN(port) _MMIO_MIPI(port, _MIPIA_INTR_EN, _MIPIC_INTR_EN) 8616 - #define TEARING_EFFECT (1 << 31) 8617 - #define SPL_PKT_SENT_INTERRUPT (1 << 30) 8618 - #define GEN_READ_DATA_AVAIL (1 << 29) 8619 - #define LP_GENERIC_WR_FIFO_FULL (1 << 28) 8620 - #define HS_GENERIC_WR_FIFO_FULL (1 << 27) 8621 - #define RX_PROT_VIOLATION (1 << 26) 8622 - #define RX_INVALID_TX_LENGTH (1 << 25) 8623 - #define ACK_WITH_NO_ERROR (1 << 24) 8624 - #define TURN_AROUND_ACK_TIMEOUT (1 << 23) 8625 - #define LP_RX_TIMEOUT (1 << 22) 8626 - #define HS_TX_TIMEOUT (1 << 21) 8627 - #define DPI_FIFO_UNDERRUN (1 << 20) 8628 - #define LOW_CONTENTION (1 << 19) 8629 - #define HIGH_CONTENTION (1 << 18) 8630 - #define TXDSI_VC_ID_INVALID (1 << 17) 8631 - #define TXDSI_DATA_TYPE_NOT_RECOGNISED (1 << 16) 8632 - #define TXCHECKSUM_ERROR (1 << 15) 8633 - #define TXECC_MULTIBIT_ERROR (1 << 14) 8634 - #define TXECC_SINGLE_BIT_ERROR (1 << 13) 8635 - #define TXFALSE_CONTROL_ERROR (1 << 12) 8636 - #define RXDSI_VC_ID_INVALID (1 << 11) 8637 - #define RXDSI_DATA_TYPE_NOT_REGOGNISED (1 << 10) 8638 - #define RXCHECKSUM_ERROR (1 << 9) 8639 - #define RXECC_MULTIBIT_ERROR (1 << 8) 8640 - #define RXECC_SINGLE_BIT_ERROR (1 << 7) 8641 - #define RXFALSE_CONTROL_ERROR (1 << 6) 8642 - #define RXHS_RECEIVE_TIMEOUT_ERROR (1 << 5) 8643 - #define RX_LP_TX_SYNC_ERROR (1 << 4) 8644 - #define RXEXCAPE_MODE_ENTRY_ERROR (1 << 3) 8645 - #define RXEOT_SYNC_ERROR (1 << 2) 8646 - #define RXSOT_SYNC_ERROR (1 << 1) 8647 - #define RXSOT_ERROR (1 << 0) 8648 - 8649 - #define _MIPIA_DSI_FUNC_PRG (dev_priv->mipi_mmio_base + 0xb00c) 8650 - #define _MIPIC_DSI_FUNC_PRG (dev_priv->mipi_mmio_base + 0xb80c) 8651 - #define MIPI_DSI_FUNC_PRG(port) _MMIO_MIPI(port, _MIPIA_DSI_FUNC_PRG, _MIPIC_DSI_FUNC_PRG) 8652 - #define CMD_MODE_DATA_WIDTH_MASK (7 << 13) 8653 - #define CMD_MODE_NOT_SUPPORTED (0 << 13) 8654 - #define CMD_MODE_DATA_WIDTH_16_BIT (1 << 13) 8655 - #define CMD_MODE_DATA_WIDTH_9_BIT (2 << 13) 8656 - #define CMD_MODE_DATA_WIDTH_8_BIT (3 << 13) 8657 - #define CMD_MODE_DATA_WIDTH_OPTION1 (4 << 13) 8658 - #define CMD_MODE_DATA_WIDTH_OPTION2 (5 << 13) 8659 - #define VID_MODE_FORMAT_MASK (0xf << 7) 8660 - #define VID_MODE_NOT_SUPPORTED (0 << 7) 8661 - #define VID_MODE_FORMAT_RGB565 (1 << 7) 8662 - #define VID_MODE_FORMAT_RGB666_PACKED (2 << 7) 8663 - #define VID_MODE_FORMAT_RGB666 (3 << 7) 8664 - #define VID_MODE_FORMAT_RGB888 (4 << 7) 8665 - #define CMD_MODE_CHANNEL_NUMBER_SHIFT 5 8666 - #define CMD_MODE_CHANNEL_NUMBER_MASK (3 << 5) 8667 - #define VID_MODE_CHANNEL_NUMBER_SHIFT 3 8668 - #define VID_MODE_CHANNEL_NUMBER_MASK (3 << 3) 8669 - #define DATA_LANES_PRG_REG_SHIFT 0 8670 - #define DATA_LANES_PRG_REG_MASK (7 << 0) 8671 - 8672 - #define _MIPIA_HS_TX_TIMEOUT (dev_priv->mipi_mmio_base + 0xb010) 8673 - #define _MIPIC_HS_TX_TIMEOUT (dev_priv->mipi_mmio_base + 0xb810) 8674 - #define MIPI_HS_TX_TIMEOUT(port) _MMIO_MIPI(port, _MIPIA_HS_TX_TIMEOUT, _MIPIC_HS_TX_TIMEOUT) 8675 - #define HIGH_SPEED_TX_TIMEOUT_COUNTER_MASK 0xffffff 8676 - 8677 - #define _MIPIA_LP_RX_TIMEOUT (dev_priv->mipi_mmio_base + 0xb014) 8678 - #define _MIPIC_LP_RX_TIMEOUT (dev_priv->mipi_mmio_base + 0xb814) 8679 - #define MIPI_LP_RX_TIMEOUT(port) _MMIO_MIPI(port, _MIPIA_LP_RX_TIMEOUT, _MIPIC_LP_RX_TIMEOUT) 8680 - #define LOW_POWER_RX_TIMEOUT_COUNTER_MASK 0xffffff 8681 - 8682 - #define _MIPIA_TURN_AROUND_TIMEOUT (dev_priv->mipi_mmio_base + 0xb018) 8683 - #define _MIPIC_TURN_AROUND_TIMEOUT (dev_priv->mipi_mmio_base + 0xb818) 8684 - #define MIPI_TURN_AROUND_TIMEOUT(port) _MMIO_MIPI(port, _MIPIA_TURN_AROUND_TIMEOUT, _MIPIC_TURN_AROUND_TIMEOUT) 8685 - #define TURN_AROUND_TIMEOUT_MASK 0x3f 8686 - 8687 - #define _MIPIA_DEVICE_RESET_TIMER (dev_priv->mipi_mmio_base + 0xb01c) 8688 - #define _MIPIC_DEVICE_RESET_TIMER (dev_priv->mipi_mmio_base + 0xb81c) 8689 - #define MIPI_DEVICE_RESET_TIMER(port) _MMIO_MIPI(port, _MIPIA_DEVICE_RESET_TIMER, _MIPIC_DEVICE_RESET_TIMER) 8690 - #define DEVICE_RESET_TIMER_MASK 0xffff 8691 - 8692 - #define _MIPIA_DPI_RESOLUTION (dev_priv->mipi_mmio_base + 0xb020) 8693 - #define _MIPIC_DPI_RESOLUTION (dev_priv->mipi_mmio_base + 0xb820) 8694 - #define MIPI_DPI_RESOLUTION(port) _MMIO_MIPI(port, _MIPIA_DPI_RESOLUTION, _MIPIC_DPI_RESOLUTION) 8695 - #define VERTICAL_ADDRESS_SHIFT 16 8696 - #define VERTICAL_ADDRESS_MASK (0xffff << 16) 8697 - #define HORIZONTAL_ADDRESS_SHIFT 0 8698 - #define HORIZONTAL_ADDRESS_MASK 0xffff 8699 - 8700 - #define _MIPIA_DBI_FIFO_THROTTLE (dev_priv->mipi_mmio_base + 0xb024) 8701 - #define _MIPIC_DBI_FIFO_THROTTLE (dev_priv->mipi_mmio_base + 0xb824) 8702 - #define MIPI_DBI_FIFO_THROTTLE(port) _MMIO_MIPI(port, _MIPIA_DBI_FIFO_THROTTLE, _MIPIC_DBI_FIFO_THROTTLE) 8703 - #define DBI_FIFO_EMPTY_HALF (0 << 0) 8704 - #define DBI_FIFO_EMPTY_QUARTER (1 << 0) 8705 - #define DBI_FIFO_EMPTY_7_LOCATIONS (2 << 0) 8706 - 8707 - /* regs below are bits 15:0 */ 8708 - #define _MIPIA_HSYNC_PADDING_COUNT (dev_priv->mipi_mmio_base + 0xb028) 8709 - #define _MIPIC_HSYNC_PADDING_COUNT (dev_priv->mipi_mmio_base + 0xb828) 8710 - #define MIPI_HSYNC_PADDING_COUNT(port) _MMIO_MIPI(port, _MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT) 8711 - 8712 - #define _MIPIA_HBP_COUNT (dev_priv->mipi_mmio_base + 0xb02c) 8713 - #define _MIPIC_HBP_COUNT (dev_priv->mipi_mmio_base + 0xb82c) 8714 - #define MIPI_HBP_COUNT(port) _MMIO_MIPI(port, _MIPIA_HBP_COUNT, _MIPIC_HBP_COUNT) 8715 - 8716 - #define _MIPIA_HFP_COUNT (dev_priv->mipi_mmio_base + 0xb030) 8717 - #define _MIPIC_HFP_COUNT (dev_priv->mipi_mmio_base + 0xb830) 8718 - #define MIPI_HFP_COUNT(port) _MMIO_MIPI(port, _MIPIA_HFP_COUNT, _MIPIC_HFP_COUNT) 8719 - 8720 - #define _MIPIA_HACTIVE_AREA_COUNT (dev_priv->mipi_mmio_base + 0xb034) 8721 - #define _MIPIC_HACTIVE_AREA_COUNT (dev_priv->mipi_mmio_base + 0xb834) 8722 - #define MIPI_HACTIVE_AREA_COUNT(port) _MMIO_MIPI(port, _MIPIA_HACTIVE_AREA_COUNT, _MIPIC_HACTIVE_AREA_COUNT) 8723 - 8724 - #define _MIPIA_VSYNC_PADDING_COUNT (dev_priv->mipi_mmio_base + 0xb038) 8725 - #define _MIPIC_VSYNC_PADDING_COUNT (dev_priv->mipi_mmio_base + 0xb838) 8726 - #define MIPI_VSYNC_PADDING_COUNT(port) _MMIO_MIPI(port, _MIPIA_VSYNC_PADDING_COUNT, _MIPIC_VSYNC_PADDING_COUNT) 8727 - 8728 - #define _MIPIA_VBP_COUNT (dev_priv->mipi_mmio_base + 0xb03c) 8729 - #define _MIPIC_VBP_COUNT (dev_priv->mipi_mmio_base + 0xb83c) 8730 - #define MIPI_VBP_COUNT(port) _MMIO_MIPI(port, _MIPIA_VBP_COUNT, _MIPIC_VBP_COUNT) 8731 - 8732 - #define _MIPIA_VFP_COUNT (dev_priv->mipi_mmio_base + 0xb040) 8733 - #define _MIPIC_VFP_COUNT (dev_priv->mipi_mmio_base + 0xb840) 8734 - #define MIPI_VFP_COUNT(port) _MMIO_MIPI(port, _MIPIA_VFP_COUNT, _MIPIC_VFP_COUNT) 8735 - 8736 - #define _MIPIA_HIGH_LOW_SWITCH_COUNT (dev_priv->mipi_mmio_base + 0xb044) 8737 - #define _MIPIC_HIGH_LOW_SWITCH_COUNT (dev_priv->mipi_mmio_base + 0xb844) 8738 - #define MIPI_HIGH_LOW_SWITCH_COUNT(port) _MMIO_MIPI(port, _MIPIA_HIGH_LOW_SWITCH_COUNT, _MIPIC_HIGH_LOW_SWITCH_COUNT) 8739 - 8740 - /* regs above are bits 15:0 */ 8741 - 8742 - #define _MIPIA_DPI_CONTROL (dev_priv->mipi_mmio_base + 0xb048) 8743 - #define _MIPIC_DPI_CONTROL (dev_priv->mipi_mmio_base + 0xb848) 8744 - #define MIPI_DPI_CONTROL(port) _MMIO_MIPI(port, _MIPIA_DPI_CONTROL, _MIPIC_DPI_CONTROL) 8745 - #define DPI_LP_MODE (1 << 6) 8746 - #define BACKLIGHT_OFF (1 << 5) 8747 - #define BACKLIGHT_ON (1 << 4) 8748 - #define COLOR_MODE_OFF (1 << 3) 8749 - #define COLOR_MODE_ON (1 << 2) 8750 - #define TURN_ON (1 << 1) 8751 - #define SHUTDOWN (1 << 0) 8752 - 8753 - #define _MIPIA_DPI_DATA (dev_priv->mipi_mmio_base + 0xb04c) 8754 - #define _MIPIC_DPI_DATA (dev_priv->mipi_mmio_base + 0xb84c) 8755 - #define MIPI_DPI_DATA(port) _MMIO_MIPI(port, _MIPIA_DPI_DATA, _MIPIC_DPI_DATA) 8756 - #define COMMAND_BYTE_SHIFT 0 8757 - #define COMMAND_BYTE_MASK (0x3f << 0) 8758 - 8759 - #define _MIPIA_INIT_COUNT (dev_priv->mipi_mmio_base + 0xb050) 8760 - #define _MIPIC_INIT_COUNT (dev_priv->mipi_mmio_base + 0xb850) 8761 - #define MIPI_INIT_COUNT(port) _MMIO_MIPI(port, _MIPIA_INIT_COUNT, _MIPIC_INIT_COUNT) 8762 - #define MASTER_INIT_TIMER_SHIFT 0 8763 - #define MASTER_INIT_TIMER_MASK (0xffff << 0) 8764 - 8765 - #define _MIPIA_MAX_RETURN_PKT_SIZE (dev_priv->mipi_mmio_base + 0xb054) 8766 - #define _MIPIC_MAX_RETURN_PKT_SIZE (dev_priv->mipi_mmio_base + 0xb854) 8767 - #define MIPI_MAX_RETURN_PKT_SIZE(port) _MMIO_MIPI(port, \ 8768 - _MIPIA_MAX_RETURN_PKT_SIZE, _MIPIC_MAX_RETURN_PKT_SIZE) 8769 - #define MAX_RETURN_PKT_SIZE_SHIFT 0 8770 - #define MAX_RETURN_PKT_SIZE_MASK (0x3ff << 0) 8771 - 8772 - #define _MIPIA_VIDEO_MODE_FORMAT (dev_priv->mipi_mmio_base + 0xb058) 8773 - #define _MIPIC_VIDEO_MODE_FORMAT (dev_priv->mipi_mmio_base + 0xb858) 8774 - #define MIPI_VIDEO_MODE_FORMAT(port) _MMIO_MIPI(port, _MIPIA_VIDEO_MODE_FORMAT, _MIPIC_VIDEO_MODE_FORMAT) 8775 - #define RANDOM_DPI_DISPLAY_RESOLUTION (1 << 4) 8776 - #define DISABLE_VIDEO_BTA (1 << 3) 8777 - #define IP_TG_CONFIG (1 << 2) 8778 - #define VIDEO_MODE_NON_BURST_WITH_SYNC_PULSE (1 << 0) 8779 - #define VIDEO_MODE_NON_BURST_WITH_SYNC_EVENTS (2 << 0) 8780 - #define VIDEO_MODE_BURST (3 << 0) 8781 - 8782 - #define _MIPIA_EOT_DISABLE (dev_priv->mipi_mmio_base + 0xb05c) 8783 - #define _MIPIC_EOT_DISABLE (dev_priv->mipi_mmio_base + 0xb85c) 8784 - #define MIPI_EOT_DISABLE(port) _MMIO_MIPI(port, _MIPIA_EOT_DISABLE, _MIPIC_EOT_DISABLE) 8785 - #define BXT_DEFEATURE_DPI_FIFO_CTR (1 << 9) 8786 - #define BXT_DPHY_DEFEATURE_EN (1 << 8) 8787 - #define LP_RX_TIMEOUT_ERROR_RECOVERY_DISABLE (1 << 7) 8788 - #define HS_RX_TIMEOUT_ERROR_RECOVERY_DISABLE (1 << 6) 8789 - #define LOW_CONTENTION_RECOVERY_DISABLE (1 << 5) 8790 - #define HIGH_CONTENTION_RECOVERY_DISABLE (1 << 4) 8791 - #define TXDSI_TYPE_NOT_RECOGNISED_ERROR_RECOVERY_DISABLE (1 << 3) 8792 - #define TXECC_MULTIBIT_ERROR_RECOVERY_DISABLE (1 << 2) 8793 - #define CLOCKSTOP (1 << 1) 8794 - #define EOT_DISABLE (1 << 0) 8795 - 8796 - #define _MIPIA_LP_BYTECLK (dev_priv->mipi_mmio_base + 0xb060) 8797 - #define _MIPIC_LP_BYTECLK (dev_priv->mipi_mmio_base + 0xb860) 8798 - #define MIPI_LP_BYTECLK(port) _MMIO_MIPI(port, _MIPIA_LP_BYTECLK, _MIPIC_LP_BYTECLK) 8799 - #define LP_BYTECLK_SHIFT 0 8800 - #define LP_BYTECLK_MASK (0xffff << 0) 8801 - 8802 - #define _MIPIA_TLPX_TIME_COUNT (dev_priv->mipi_mmio_base + 0xb0a4) 8803 - #define _MIPIC_TLPX_TIME_COUNT (dev_priv->mipi_mmio_base + 0xb8a4) 8804 - #define MIPI_TLPX_TIME_COUNT(port) _MMIO_MIPI(port, _MIPIA_TLPX_TIME_COUNT, _MIPIC_TLPX_TIME_COUNT) 8805 - 8806 - #define _MIPIA_CLK_LANE_TIMING (dev_priv->mipi_mmio_base + 0xb098) 8807 - #define _MIPIC_CLK_LANE_TIMING (dev_priv->mipi_mmio_base + 0xb898) 8808 - #define MIPI_CLK_LANE_TIMING(port) _MMIO_MIPI(port, _MIPIA_CLK_LANE_TIMING, _MIPIC_CLK_LANE_TIMING) 8809 - 8810 - /* bits 31:0 */ 8811 - #define _MIPIA_LP_GEN_DATA (dev_priv->mipi_mmio_base + 0xb064) 8812 - #define _MIPIC_LP_GEN_DATA (dev_priv->mipi_mmio_base + 0xb864) 8813 - #define MIPI_LP_GEN_DATA(port) _MMIO_MIPI(port, _MIPIA_LP_GEN_DATA, _MIPIC_LP_GEN_DATA) 8814 - 8815 - /* bits 31:0 */ 8816 - #define _MIPIA_HS_GEN_DATA (dev_priv->mipi_mmio_base + 0xb068) 8817 - #define _MIPIC_HS_GEN_DATA (dev_priv->mipi_mmio_base + 0xb868) 8818 - #define MIPI_HS_GEN_DATA(port) _MMIO_MIPI(port, _MIPIA_HS_GEN_DATA, _MIPIC_HS_GEN_DATA) 8819 - 8820 - #define _MIPIA_LP_GEN_CTRL (dev_priv->mipi_mmio_base + 0xb06c) 8821 - #define _MIPIC_LP_GEN_CTRL (dev_priv->mipi_mmio_base + 0xb86c) 8822 - #define MIPI_LP_GEN_CTRL(port) _MMIO_MIPI(port, _MIPIA_LP_GEN_CTRL, _MIPIC_LP_GEN_CTRL) 8823 - #define _MIPIA_HS_GEN_CTRL (dev_priv->mipi_mmio_base + 0xb070) 8824 - #define _MIPIC_HS_GEN_CTRL (dev_priv->mipi_mmio_base + 0xb870) 8825 - #define MIPI_HS_GEN_CTRL(port) _MMIO_MIPI(port, _MIPIA_HS_GEN_CTRL, _MIPIC_HS_GEN_CTRL) 8826 - #define LONG_PACKET_WORD_COUNT_SHIFT 8 8827 - #define LONG_PACKET_WORD_COUNT_MASK (0xffff << 8) 8828 - #define SHORT_PACKET_PARAM_SHIFT 8 8829 - #define SHORT_PACKET_PARAM_MASK (0xffff << 8) 8830 - #define VIRTUAL_CHANNEL_SHIFT 6 8831 - #define VIRTUAL_CHANNEL_MASK (3 << 6) 8832 - #define DATA_TYPE_SHIFT 0 8833 - #define DATA_TYPE_MASK (0x3f << 0) 8834 - /* data type values, see include/video/mipi_display.h */ 8835 - 8836 - #define _MIPIA_GEN_FIFO_STAT (dev_priv->mipi_mmio_base + 0xb074) 8837 - #define _MIPIC_GEN_FIFO_STAT (dev_priv->mipi_mmio_base + 0xb874) 8838 - #define MIPI_GEN_FIFO_STAT(port) _MMIO_MIPI(port, _MIPIA_GEN_FIFO_STAT, _MIPIC_GEN_FIFO_STAT) 8839 - #define DPI_FIFO_EMPTY (1 << 28) 8840 - #define DBI_FIFO_EMPTY (1 << 27) 8841 - #define LP_CTRL_FIFO_EMPTY (1 << 26) 8842 - #define LP_CTRL_FIFO_HALF_EMPTY (1 << 25) 8843 - #define LP_CTRL_FIFO_FULL (1 << 24) 8844 - #define HS_CTRL_FIFO_EMPTY (1 << 18) 8845 - #define HS_CTRL_FIFO_HALF_EMPTY (1 << 17) 8846 - #define HS_CTRL_FIFO_FULL (1 << 16) 8847 - #define LP_DATA_FIFO_EMPTY (1 << 10) 8848 - #define LP_DATA_FIFO_HALF_EMPTY (1 << 9) 8849 - #define LP_DATA_FIFO_FULL (1 << 8) 8850 - #define HS_DATA_FIFO_EMPTY (1 << 2) 8851 - #define HS_DATA_FIFO_HALF_EMPTY (1 << 1) 8852 - #define HS_DATA_FIFO_FULL (1 << 0) 8853 - 8854 - #define _MIPIA_HS_LS_DBI_ENABLE (dev_priv->mipi_mmio_base + 0xb078) 8855 - #define _MIPIC_HS_LS_DBI_ENABLE (dev_priv->mipi_mmio_base + 0xb878) 8856 - #define MIPI_HS_LP_DBI_ENABLE(port) _MMIO_MIPI(port, _MIPIA_HS_LS_DBI_ENABLE, _MIPIC_HS_LS_DBI_ENABLE) 8857 - #define DBI_HS_LP_MODE_MASK (1 << 0) 8858 - #define DBI_LP_MODE (1 << 0) 8859 - #define DBI_HS_MODE (0 << 0) 8860 - 8861 - #define _MIPIA_DPHY_PARAM (dev_priv->mipi_mmio_base + 0xb080) 8862 - #define _MIPIC_DPHY_PARAM (dev_priv->mipi_mmio_base + 0xb880) 8863 - #define MIPI_DPHY_PARAM(port) _MMIO_MIPI(port, _MIPIA_DPHY_PARAM, _MIPIC_DPHY_PARAM) 8864 - #define EXIT_ZERO_COUNT_SHIFT 24 8865 - #define EXIT_ZERO_COUNT_MASK (0x3f << 24) 8866 - #define TRAIL_COUNT_SHIFT 16 8867 - #define TRAIL_COUNT_MASK (0x1f << 16) 8868 - #define CLK_ZERO_COUNT_SHIFT 8 8869 - #define CLK_ZERO_COUNT_MASK (0xff << 8) 8870 - #define PREPARE_COUNT_SHIFT 0 8871 - #define PREPARE_COUNT_MASK (0x3f << 0) 8872 8676 8873 8677 #define _ICL_DSI_T_INIT_MASTER_0 0x6b088 8874 8678 #define _ICL_DSI_T_INIT_MASTER_1 0x6b888 ··· 8778 9240 #define TA_TIMEOUT_VALUE_MASK (0xffff << 0) 8779 9241 #define TA_TIMEOUT_VALUE_SHIFT 0 8780 9242 #define TA_TIMEOUT_VALUE(x) ((x) << 0) 8781 - 8782 - /* bits 31:0 */ 8783 - #define _MIPIA_DBI_BW_CTRL (dev_priv->mipi_mmio_base + 0xb084) 8784 - #define _MIPIC_DBI_BW_CTRL (dev_priv->mipi_mmio_base + 0xb884) 8785 - #define MIPI_DBI_BW_CTRL(port) _MMIO_MIPI(port, _MIPIA_DBI_BW_CTRL, _MIPIC_DBI_BW_CTRL) 8786 - 8787 - #define _MIPIA_CLK_LANE_SWITCH_TIME_CNT (dev_priv->mipi_mmio_base + 0xb088) 8788 - #define _MIPIC_CLK_LANE_SWITCH_TIME_CNT (dev_priv->mipi_mmio_base + 0xb888) 8789 - #define MIPI_CLK_LANE_SWITCH_TIME_CNT(port) _MMIO_MIPI(port, _MIPIA_CLK_LANE_SWITCH_TIME_CNT, _MIPIC_CLK_LANE_SWITCH_TIME_CNT) 8790 - #define LP_HS_SSW_CNT_SHIFT 16 8791 - #define LP_HS_SSW_CNT_MASK (0xffff << 16) 8792 - #define HS_LP_PWR_SW_CNT_SHIFT 0 8793 - #define HS_LP_PWR_SW_CNT_MASK (0xffff << 0) 8794 - 8795 - #define _MIPIA_STOP_STATE_STALL (dev_priv->mipi_mmio_base + 0xb08c) 8796 - #define _MIPIC_STOP_STATE_STALL (dev_priv->mipi_mmio_base + 0xb88c) 8797 - #define MIPI_STOP_STATE_STALL(port) _MMIO_MIPI(port, _MIPIA_STOP_STATE_STALL, _MIPIC_STOP_STATE_STALL) 8798 - #define STOP_STATE_STALL_COUNTER_SHIFT 0 8799 - #define STOP_STATE_STALL_COUNTER_MASK (0xff << 0) 8800 - 8801 - #define _MIPIA_INTR_STAT_REG_1 (dev_priv->mipi_mmio_base + 0xb090) 8802 - #define _MIPIC_INTR_STAT_REG_1 (dev_priv->mipi_mmio_base + 0xb890) 8803 - #define MIPI_INTR_STAT_REG_1(port) _MMIO_MIPI(port, _MIPIA_INTR_STAT_REG_1, _MIPIC_INTR_STAT_REG_1) 8804 - #define _MIPIA_INTR_EN_REG_1 (dev_priv->mipi_mmio_base + 0xb094) 8805 - #define _MIPIC_INTR_EN_REG_1 (dev_priv->mipi_mmio_base + 0xb894) 8806 - #define MIPI_INTR_EN_REG_1(port) _MMIO_MIPI(port, _MIPIA_INTR_EN_REG_1, _MIPIC_INTR_EN_REG_1) 8807 - #define RX_CONTENTION_DETECTED (1 << 0) 8808 - 8809 - /* XXX: only pipe A ?!? */ 8810 - #define MIPIA_DBI_TYPEC_CTRL (dev_priv->mipi_mmio_base + 0xb100) 8811 - #define DBI_TYPEC_ENABLE (1 << 31) 8812 - #define DBI_TYPEC_WIP (1 << 30) 8813 - #define DBI_TYPEC_OPTION_SHIFT 28 8814 - #define DBI_TYPEC_OPTION_MASK (3 << 28) 8815 - #define DBI_TYPEC_FREQ_SHIFT 24 8816 - #define DBI_TYPEC_FREQ_MASK (0xf << 24) 8817 - #define DBI_TYPEC_OVERRIDE (1 << 8) 8818 - #define DBI_TYPEC_OVERRIDE_COUNTER_SHIFT 0 8819 - #define DBI_TYPEC_OVERRIDE_COUNTER_MASK (0xff << 0) 8820 - 8821 - 8822 - /* MIPI adapter registers */ 8823 - 8824 - #define _MIPIA_CTRL (dev_priv->mipi_mmio_base + 0xb104) 8825 - #define _MIPIC_CTRL (dev_priv->mipi_mmio_base + 0xb904) 8826 - #define MIPI_CTRL(port) _MMIO_MIPI(port, _MIPIA_CTRL, _MIPIC_CTRL) 8827 - #define ESCAPE_CLOCK_DIVIDER_SHIFT 5 /* A only */ 8828 - #define ESCAPE_CLOCK_DIVIDER_MASK (3 << 5) 8829 - #define ESCAPE_CLOCK_DIVIDER_1 (0 << 5) 8830 - #define ESCAPE_CLOCK_DIVIDER_2 (1 << 5) 8831 - #define ESCAPE_CLOCK_DIVIDER_4 (2 << 5) 8832 - #define READ_REQUEST_PRIORITY_SHIFT 3 8833 - #define READ_REQUEST_PRIORITY_MASK (3 << 3) 8834 - #define READ_REQUEST_PRIORITY_LOW (0 << 3) 8835 - #define READ_REQUEST_PRIORITY_HIGH (3 << 3) 8836 - #define RGB_FLIP_TO_BGR (1 << 2) 8837 - 8838 - #define BXT_PIPE_SELECT_SHIFT 7 8839 - #define BXT_PIPE_SELECT_MASK (7 << 7) 8840 - #define BXT_PIPE_SELECT(pipe) ((pipe) << 7) 8841 - #define GLK_PHY_STATUS_PORT_READY (1 << 31) /* RO */ 8842 - #define GLK_ULPS_NOT_ACTIVE (1 << 30) /* RO */ 8843 - #define GLK_MIPIIO_RESET_RELEASED (1 << 28) 8844 - #define GLK_CLOCK_LANE_STOP_STATE (1 << 27) /* RO */ 8845 - #define GLK_DATA_LANE_STOP_STATE (1 << 26) /* RO */ 8846 - #define GLK_LP_WAKE (1 << 22) 8847 - #define GLK_LP11_LOW_PWR_MODE (1 << 21) 8848 - #define GLK_LP00_LOW_PWR_MODE (1 << 20) 8849 - #define GLK_FIREWALL_ENABLE (1 << 16) 8850 - #define BXT_PIXEL_OVERLAP_CNT_MASK (0xf << 10) 8851 - #define BXT_PIXEL_OVERLAP_CNT_SHIFT 10 8852 - #define BXT_DSC_ENABLE (1 << 3) 8853 - #define BXT_RGB_FLIP (1 << 2) 8854 - #define GLK_MIPIIO_PORT_POWERED (1 << 1) /* RO */ 8855 - #define GLK_MIPIIO_ENABLE (1 << 0) 8856 - 8857 - #define _MIPIA_DATA_ADDRESS (dev_priv->mipi_mmio_base + 0xb108) 8858 - #define _MIPIC_DATA_ADDRESS (dev_priv->mipi_mmio_base + 0xb908) 8859 - #define MIPI_DATA_ADDRESS(port) _MMIO_MIPI(port, _MIPIA_DATA_ADDRESS, _MIPIC_DATA_ADDRESS) 8860 - #define DATA_MEM_ADDRESS_SHIFT 5 8861 - #define DATA_MEM_ADDRESS_MASK (0x7ffffff << 5) 8862 - #define DATA_VALID (1 << 0) 8863 - 8864 - #define _MIPIA_DATA_LENGTH (dev_priv->mipi_mmio_base + 0xb10c) 8865 - #define _MIPIC_DATA_LENGTH (dev_priv->mipi_mmio_base + 0xb90c) 8866 - #define MIPI_DATA_LENGTH(port) _MMIO_MIPI(port, _MIPIA_DATA_LENGTH, _MIPIC_DATA_LENGTH) 8867 - #define DATA_LENGTH_SHIFT 0 8868 - #define DATA_LENGTH_MASK (0xfffff << 0) 8869 - 8870 - #define _MIPIA_COMMAND_ADDRESS (dev_priv->mipi_mmio_base + 0xb110) 8871 - #define _MIPIC_COMMAND_ADDRESS (dev_priv->mipi_mmio_base + 0xb910) 8872 - #define MIPI_COMMAND_ADDRESS(port) _MMIO_MIPI(port, _MIPIA_COMMAND_ADDRESS, _MIPIC_COMMAND_ADDRESS) 8873 - #define COMMAND_MEM_ADDRESS_SHIFT 5 8874 - #define COMMAND_MEM_ADDRESS_MASK (0x7ffffff << 5) 8875 - #define AUTO_PWG_ENABLE (1 << 2) 8876 - #define MEMORY_WRITE_DATA_FROM_PIPE_RENDERING (1 << 1) 8877 - #define COMMAND_VALID (1 << 0) 8878 - 8879 - #define _MIPIA_COMMAND_LENGTH (dev_priv->mipi_mmio_base + 0xb114) 8880 - #define _MIPIC_COMMAND_LENGTH (dev_priv->mipi_mmio_base + 0xb914) 8881 - #define MIPI_COMMAND_LENGTH(port) _MMIO_MIPI(port, _MIPIA_COMMAND_LENGTH, _MIPIC_COMMAND_LENGTH) 8882 - #define COMMAND_LENGTH_SHIFT(n) (8 * (n)) /* n: 0...3 */ 8883 - #define COMMAND_LENGTH_MASK(n) (0xff << (8 * (n))) 8884 - 8885 - #define _MIPIA_READ_DATA_RETURN0 (dev_priv->mipi_mmio_base + 0xb118) 8886 - #define _MIPIC_READ_DATA_RETURN0 (dev_priv->mipi_mmio_base + 0xb918) 8887 - #define MIPI_READ_DATA_RETURN(port, n) _MMIO(_MIPI(port, _MIPIA_READ_DATA_RETURN0, _MIPIC_READ_DATA_RETURN0) + 4 * (n)) /* n: 0...7 */ 8888 - 8889 - #define _MIPIA_READ_DATA_VALID (dev_priv->mipi_mmio_base + 0xb138) 8890 - #define _MIPIC_READ_DATA_VALID (dev_priv->mipi_mmio_base + 0xb938) 8891 - #define MIPI_READ_DATA_VALID(port) _MMIO_MIPI(port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID) 8892 - #define READ_DATA_VALID(n) (1 << (n)) 8893 9243 8894 9244 #define GEN12_GSMBASE _MMIO(0x108100) 8895 9245 #define GEN12_DSMBASE _MMIO(0x1080C0)