diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_reg.h')
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 822 |
1 files changed, 614 insertions, 208 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 7c491ea3d052..47baf2fe8f71 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
@@ -157,20 +157,37 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg) | |||
157 | /* | 157 | /* |
158 | * Named helper wrappers around _PICK_EVEN() and _PICK(). | 158 | * Named helper wrappers around _PICK_EVEN() and _PICK(). |
159 | */ | 159 | */ |
160 | #define _PIPE(pipe, a, b) _PICK_EVEN(pipe, a, b) | 160 | #define _PIPE(pipe, a, b) _PICK_EVEN(pipe, a, b) |
161 | #define _MMIO_PIPE(pipe, a, b) _MMIO(_PIPE(pipe, a, b)) | 161 | #define _PLANE(plane, a, b) _PICK_EVEN(plane, a, b) |
162 | #define _PLANE(plane, a, b) _PICK_EVEN(plane, a, b) | 162 | #define _TRANS(tran, a, b) _PICK_EVEN(tran, a, b) |
163 | #define _MMIO_PLANE(plane, a, b) _MMIO_PIPE(plane, a, b) | 163 | #define _PORT(port, a, b) _PICK_EVEN(port, a, b) |
164 | #define _TRANS(tran, a, b) _PICK_EVEN(tran, a, b) | 164 | #define _PLL(pll, a, b) _PICK_EVEN(pll, a, b) |
165 | #define _MMIO_TRANS(tran, a, b) _MMIO(_TRANS(tran, a, b)) | 165 | |
166 | #define _PORT(port, a, b) _PICK_EVEN(port, a, b) | 166 | #define _MMIO_PIPE(pipe, a, b) _MMIO(_PIPE(pipe, a, b)) |
167 | #define _MMIO_PORT(port, a, b) _MMIO(_PORT(port, a, b)) | 167 | #define _MMIO_PLANE(plane, a, b) _MMIO(_PLANE(plane, a, b)) |
168 | #define _MMIO_PIPE3(pipe, a, b, c) _MMIO(_PICK(pipe, a, b, c)) | 168 | #define _MMIO_TRANS(tran, a, b) _MMIO(_TRANS(tran, a, b)) |
169 | #define _MMIO_PORT3(pipe, a, b, c) _MMIO(_PICK(pipe, a, b, c)) | 169 | #define _MMIO_PORT(port, a, b) _MMIO(_PORT(port, a, b)) |
170 | #define _PLL(pll, a, b) _PICK_EVEN(pll, a, b) | 170 | #define _MMIO_PLL(pll, a, b) _MMIO(_PLL(pll, a, b)) |
171 | #define _MMIO_PLL(pll, a, b) _MMIO(_PLL(pll, a, b)) | 171 | |
172 | #define _PHY3(phy, ...) _PICK(phy, __VA_ARGS__) | 172 | #define _PHY3(phy, ...) _PICK(phy, __VA_ARGS__) |
173 | #define _MMIO_PHY3(phy, a, b, c) _MMIO(_PHY3(phy, a, b, c)) | 173 | |
174 | #define _MMIO_PIPE3(pipe, a, b, c) _MMIO(_PICK(pipe, a, b, c)) | ||
175 | #define _MMIO_PORT3(pipe, a, b, c) _MMIO(_PICK(pipe, a, b, c)) | ||
176 | #define _MMIO_PHY3(phy, a, b, c) _MMIO(_PHY3(phy, a, b, c)) | ||
177 | |||
178 | /* | ||
179 | * Device info offset array based helpers for groups of registers with unevenly | ||
180 | * spaced base offsets. | ||
181 | */ | ||
182 | #define _MMIO_PIPE2(pipe, reg) _MMIO(dev_priv->info.pipe_offsets[pipe] - \ | ||
183 | dev_priv->info.pipe_offsets[PIPE_A] + (reg) + \ | ||
184 | dev_priv->info.display_mmio_offset) | ||
185 | #define _MMIO_TRANS2(pipe, reg) _MMIO(dev_priv->info.trans_offsets[(pipe)] - \ | ||
186 | dev_priv->info.trans_offsets[TRANSCODER_A] + (reg) + \ | ||
187 | dev_priv->info.display_mmio_offset) | ||
188 | #define _CURSOR2(pipe, reg) _MMIO(dev_priv->info.cursor_offsets[(pipe)] - \ | ||
189 | dev_priv->info.cursor_offsets[PIPE_A] + (reg) + \ | ||
190 | dev_priv->info.display_mmio_offset) | ||
174 | 191 | ||
175 | #define __MASKED_FIELD(mask, value) ((mask) << 16 | (value)) | 192 | #define __MASKED_FIELD(mask, value) ((mask) << 16 | (value)) |
176 | #define _MASKED_FIELD(mask, value) ({ \ | 193 | #define _MASKED_FIELD(mask, value) ({ \ |
@@ -1631,35 +1648,6 @@ enum i915_power_well_id { | |||
1631 | #define PHY_RESERVED (1 << 7) | 1648 | #define PHY_RESERVED (1 << 7) |
1632 | #define BXT_PORT_CL1CM_DW0(phy) _BXT_PHY((phy), _PORT_CL1CM_DW0_BC) | 1649 | #define BXT_PORT_CL1CM_DW0(phy) _BXT_PHY((phy), _PORT_CL1CM_DW0_BC) |
1633 | 1650 | ||
1634 | #define CNL_PORT_CL1CM_DW5 _MMIO(0x162014) | ||
1635 | #define CL_POWER_DOWN_ENABLE (1 << 4) | ||
1636 | #define SUS_CLOCK_CONFIG (3 << 0) | ||
1637 | |||
1638 | #define _ICL_PORT_CL_DW5_A 0x162014 | ||
1639 | #define _ICL_PORT_CL_DW5_B 0x6C014 | ||
1640 | #define ICL_PORT_CL_DW5(port) _MMIO_PORT(port, _ICL_PORT_CL_DW5_A, \ | ||
1641 | _ICL_PORT_CL_DW5_B) | ||
1642 | |||
1643 | #define _CNL_PORT_CL_DW10_A 0x162028 | ||
1644 | #define _ICL_PORT_CL_DW10_B 0x6c028 | ||
1645 | #define ICL_PORT_CL_DW10(port) _MMIO_PORT(port, \ | ||
1646 | _CNL_PORT_CL_DW10_A, \ | ||
1647 | _ICL_PORT_CL_DW10_B) | ||
1648 | #define PG_SEQ_DELAY_OVERRIDE_MASK (3 << 25) | ||
1649 | #define PG_SEQ_DELAY_OVERRIDE_SHIFT 25 | ||
1650 | #define PG_SEQ_DELAY_OVERRIDE_ENABLE (1 << 24) | ||
1651 | #define PWR_UP_ALL_LANES (0x0 << 4) | ||
1652 | #define PWR_DOWN_LN_3_2_1 (0xe << 4) | ||
1653 | #define PWR_DOWN_LN_3_2 (0xc << 4) | ||
1654 | #define PWR_DOWN_LN_3 (0x8 << 4) | ||
1655 | #define PWR_DOWN_LN_2_1_0 (0x7 << 4) | ||
1656 | #define PWR_DOWN_LN_1_0 (0x3 << 4) | ||
1657 | #define PWR_DOWN_LN_1 (0x2 << 4) | ||
1658 | #define PWR_DOWN_LN_3_1 (0xa << 4) | ||
1659 | #define PWR_DOWN_LN_3_1_0 (0xb << 4) | ||
1660 | #define PWR_DOWN_LN_MASK (0xf << 4) | ||
1661 | #define PWR_DOWN_LN_SHIFT 4 | ||
1662 | |||
1663 | #define _PORT_CL1CM_DW9_A 0x162024 | 1651 | #define _PORT_CL1CM_DW9_A 0x162024 |
1664 | #define _PORT_CL1CM_DW9_BC 0x6C024 | 1652 | #define _PORT_CL1CM_DW9_BC 0x6C024 |
1665 | #define IREF0RC_OFFSET_SHIFT 8 | 1653 | #define IREF0RC_OFFSET_SHIFT 8 |
@@ -1672,13 +1660,6 @@ enum i915_power_well_id { | |||
1672 | #define IREF1RC_OFFSET_MASK (0xFF << IREF1RC_OFFSET_SHIFT) | 1660 | #define IREF1RC_OFFSET_MASK (0xFF << IREF1RC_OFFSET_SHIFT) |
1673 | #define BXT_PORT_CL1CM_DW10(phy) _BXT_PHY((phy), _PORT_CL1CM_DW10_BC) | 1661 | #define BXT_PORT_CL1CM_DW10(phy) _BXT_PHY((phy), _PORT_CL1CM_DW10_BC) |
1674 | 1662 | ||
1675 | #define _ICL_PORT_CL_DW12_A 0x162030 | ||
1676 | #define _ICL_PORT_CL_DW12_B 0x6C030 | ||
1677 | #define ICL_LANE_ENABLE_AUX (1 << 0) | ||
1678 | #define ICL_PORT_CL_DW12(port) _MMIO_PORT((port), \ | ||
1679 | _ICL_PORT_CL_DW12_A, \ | ||
1680 | _ICL_PORT_CL_DW12_B) | ||
1681 | |||
1682 | #define _PORT_CL1CM_DW28_A 0x162070 | 1663 | #define _PORT_CL1CM_DW28_A 0x162070 |
1683 | #define _PORT_CL1CM_DW28_BC 0x6C070 | 1664 | #define _PORT_CL1CM_DW28_BC 0x6C070 |
1684 | #define OCL1_POWER_DOWN_EN (1 << 23) | 1665 | #define OCL1_POWER_DOWN_EN (1 << 23) |
@@ -1691,6 +1672,74 @@ enum i915_power_well_id { | |||
1691 | #define OCL2_LDOFUSE_PWR_DIS (1 << 6) | 1672 | #define OCL2_LDOFUSE_PWR_DIS (1 << 6) |
1692 | #define BXT_PORT_CL1CM_DW30(phy) _BXT_PHY((phy), _PORT_CL1CM_DW30_BC) | 1673 | #define BXT_PORT_CL1CM_DW30(phy) _BXT_PHY((phy), _PORT_CL1CM_DW30_BC) |
1693 | 1674 | ||
1675 | /* | ||
1676 | * CNL/ICL Port/COMBO-PHY Registers | ||
1677 | */ | ||
1678 | #define _ICL_COMBOPHY_A 0x162000 | ||
1679 | #define _ICL_COMBOPHY_B 0x6C000 | ||
1680 | #define _ICL_COMBOPHY(port) _PICK(port, _ICL_COMBOPHY_A, \ | ||
1681 | _ICL_COMBOPHY_B) | ||
1682 | |||
1683 | /* CNL/ICL Port CL_DW registers */ | ||
1684 | #define _ICL_PORT_CL_DW(dw, port) (_ICL_COMBOPHY(port) + \ | ||
1685 | 4 * (dw)) | ||
1686 | |||
1687 | #define CNL_PORT_CL1CM_DW5 _MMIO(0x162014) | ||
1688 | #define ICL_PORT_CL_DW5(port) _MMIO(_ICL_PORT_CL_DW(5, port)) | ||
1689 | #define CL_POWER_DOWN_ENABLE (1 << 4) | ||
1690 | #define SUS_CLOCK_CONFIG (3 << 0) | ||
1691 | |||
1692 | #define ICL_PORT_CL_DW10(port) _MMIO(_ICL_PORT_CL_DW(10, port)) | ||
1693 | #define PG_SEQ_DELAY_OVERRIDE_MASK (3 << 25) | ||
1694 | #define PG_SEQ_DELAY_OVERRIDE_SHIFT 25 | ||
1695 | #define PG_SEQ_DELAY_OVERRIDE_ENABLE (1 << 24) | ||
1696 | #define PWR_UP_ALL_LANES (0x0 << 4) | ||
1697 | #define PWR_DOWN_LN_3_2_1 (0xe << 4) | ||
1698 | #define PWR_DOWN_LN_3_2 (0xc << 4) | ||
1699 | #define PWR_DOWN_LN_3 (0x8 << 4) | ||
1700 | #define PWR_DOWN_LN_2_1_0 (0x7 << 4) | ||
1701 | #define PWR_DOWN_LN_1_0 (0x3 << 4) | ||
1702 | #define PWR_DOWN_LN_1 (0x2 << 4) | ||
1703 | #define PWR_DOWN_LN_3_1 (0xa << 4) | ||
1704 | #define PWR_DOWN_LN_3_1_0 (0xb << 4) | ||
1705 | #define PWR_DOWN_LN_MASK (0xf << 4) | ||
1706 | #define PWR_DOWN_LN_SHIFT 4 | ||
1707 | |||
1708 | #define ICL_PORT_CL_DW12(port) _MMIO(_ICL_PORT_CL_DW(12, port)) | ||
1709 | #define ICL_LANE_ENABLE_AUX (1 << 0) | ||
1710 | |||
1711 | /* CNL/ICL Port COMP_DW registers */ | ||
1712 | #define _ICL_PORT_COMP 0x100 | ||
1713 | #define _ICL_PORT_COMP_DW(dw, port) (_ICL_COMBOPHY(port) + \ | ||
1714 | _ICL_PORT_COMP + 4 * (dw)) | ||
1715 | |||
1716 | #define CNL_PORT_COMP_DW0 _MMIO(0x162100) | ||
1717 | #define ICL_PORT_COMP_DW0(port) _MMIO(_ICL_PORT_COMP_DW(0, port)) | ||
1718 | #define COMP_INIT (1 << 31) | ||
1719 | |||
1720 | #define CNL_PORT_COMP_DW1 _MMIO(0x162104) | ||
1721 | #define ICL_PORT_COMP_DW1(port) _MMIO(_ICL_PORT_COMP_DW(1, port)) | ||
1722 | |||
1723 | #define CNL_PORT_COMP_DW3 _MMIO(0x16210c) | ||
1724 | #define ICL_PORT_COMP_DW3(port) _MMIO(_ICL_PORT_COMP_DW(3, port)) | ||
1725 | #define PROCESS_INFO_DOT_0 (0 << 26) | ||
1726 | #define PROCESS_INFO_DOT_1 (1 << 26) | ||
1727 | #define PROCESS_INFO_DOT_4 (2 << 26) | ||
1728 | #define PROCESS_INFO_MASK (7 << 26) | ||
1729 | #define PROCESS_INFO_SHIFT 26 | ||
1730 | #define VOLTAGE_INFO_0_85V (0 << 24) | ||
1731 | #define VOLTAGE_INFO_0_95V (1 << 24) | ||
1732 | #define VOLTAGE_INFO_1_05V (2 << 24) | ||
1733 | #define VOLTAGE_INFO_MASK (3 << 24) | ||
1734 | #define VOLTAGE_INFO_SHIFT 24 | ||
1735 | |||
1736 | #define CNL_PORT_COMP_DW9 _MMIO(0x162124) | ||
1737 | #define ICL_PORT_COMP_DW9(port) _MMIO(_ICL_PORT_COMP_DW(9, port)) | ||
1738 | |||
1739 | #define CNL_PORT_COMP_DW10 _MMIO(0x162128) | ||
1740 | #define ICL_PORT_COMP_DW10(port) _MMIO(_ICL_PORT_COMP_DW(10, port)) | ||
1741 | |||
1742 | /* CNL/ICL Port PCS registers */ | ||
1694 | #define _CNL_PORT_PCS_DW1_GRP_AE 0x162304 | 1743 | #define _CNL_PORT_PCS_DW1_GRP_AE 0x162304 |
1695 | #define _CNL_PORT_PCS_DW1_GRP_B 0x162384 | 1744 | #define _CNL_PORT_PCS_DW1_GRP_B 0x162384 |
1696 | #define _CNL_PORT_PCS_DW1_GRP_C 0x162B04 | 1745 | #define _CNL_PORT_PCS_DW1_GRP_C 0x162B04 |
@@ -1708,7 +1757,6 @@ enum i915_power_well_id { | |||
1708 | _CNL_PORT_PCS_DW1_GRP_D, \ | 1757 | _CNL_PORT_PCS_DW1_GRP_D, \ |
1709 | _CNL_PORT_PCS_DW1_GRP_AE, \ | 1758 | _CNL_PORT_PCS_DW1_GRP_AE, \ |
1710 | _CNL_PORT_PCS_DW1_GRP_F)) | 1759 | _CNL_PORT_PCS_DW1_GRP_F)) |
1711 | |||
1712 | #define CNL_PORT_PCS_DW1_LN0(port) _MMIO(_PICK(port, \ | 1760 | #define CNL_PORT_PCS_DW1_LN0(port) _MMIO(_PICK(port, \ |
1713 | _CNL_PORT_PCS_DW1_LN0_AE, \ | 1761 | _CNL_PORT_PCS_DW1_LN0_AE, \ |
1714 | _CNL_PORT_PCS_DW1_LN0_B, \ | 1762 | _CNL_PORT_PCS_DW1_LN0_B, \ |
@@ -1717,24 +1765,21 @@ enum i915_power_well_id { | |||
1717 | _CNL_PORT_PCS_DW1_LN0_AE, \ | 1765 | _CNL_PORT_PCS_DW1_LN0_AE, \ |
1718 | _CNL_PORT_PCS_DW1_LN0_F)) | 1766 | _CNL_PORT_PCS_DW1_LN0_F)) |
1719 | 1767 | ||
1720 | #define _ICL_PORT_PCS_DW1_GRP_A 0x162604 | 1768 | #define _ICL_PORT_PCS_AUX 0x300 |
1721 | #define _ICL_PORT_PCS_DW1_GRP_B 0x6C604 | 1769 | #define _ICL_PORT_PCS_GRP 0x600 |
1722 | #define _ICL_PORT_PCS_DW1_LN0_A 0x162804 | 1770 | #define _ICL_PORT_PCS_LN(ln) (0x800 + (ln) * 0x100) |
1723 | #define _ICL_PORT_PCS_DW1_LN0_B 0x6C804 | 1771 | #define _ICL_PORT_PCS_DW_AUX(dw, port) (_ICL_COMBOPHY(port) + \ |
1724 | #define _ICL_PORT_PCS_DW1_AUX_A 0x162304 | 1772 | _ICL_PORT_PCS_AUX + 4 * (dw)) |
1725 | #define _ICL_PORT_PCS_DW1_AUX_B 0x6c304 | 1773 | #define _ICL_PORT_PCS_DW_GRP(dw, port) (_ICL_COMBOPHY(port) + \ |
1726 | #define ICL_PORT_PCS_DW1_GRP(port) _MMIO_PORT(port,\ | 1774 | _ICL_PORT_PCS_GRP + 4 * (dw)) |
1727 | _ICL_PORT_PCS_DW1_GRP_A, \ | 1775 | #define _ICL_PORT_PCS_DW_LN(dw, ln, port) (_ICL_COMBOPHY(port) + \ |
1728 | _ICL_PORT_PCS_DW1_GRP_B) | 1776 | _ICL_PORT_PCS_LN(ln) + 4 * (dw)) |
1729 | #define ICL_PORT_PCS_DW1_LN0(port) _MMIO_PORT(port, \ | 1777 | #define ICL_PORT_PCS_DW1_AUX(port) _MMIO(_ICL_PORT_PCS_DW_AUX(1, port)) |
1730 | _ICL_PORT_PCS_DW1_LN0_A, \ | 1778 | #define ICL_PORT_PCS_DW1_GRP(port) _MMIO(_ICL_PORT_PCS_DW_GRP(1, port)) |
1731 | _ICL_PORT_PCS_DW1_LN0_B) | 1779 | #define ICL_PORT_PCS_DW1_LN0(port) _MMIO(_ICL_PORT_PCS_DW_LN(1, 0, port)) |
1732 | #define ICL_PORT_PCS_DW1_AUX(port) _MMIO_PORT(port, \ | ||
1733 | _ICL_PORT_PCS_DW1_AUX_A, \ | ||
1734 | _ICL_PORT_PCS_DW1_AUX_B) | ||
1735 | #define COMMON_KEEPER_EN (1 << 26) | 1780 | #define COMMON_KEEPER_EN (1 << 26) |
1736 | 1781 | ||
1737 | /* CNL Port TX registers */ | 1782 | /* CNL/ICL Port TX registers */ |
1738 | #define _CNL_PORT_TX_AE_GRP_OFFSET 0x162340 | 1783 | #define _CNL_PORT_TX_AE_GRP_OFFSET 0x162340 |
1739 | #define _CNL_PORT_TX_B_GRP_OFFSET 0x1623C0 | 1784 | #define _CNL_PORT_TX_B_GRP_OFFSET 0x1623C0 |
1740 | #define _CNL_PORT_TX_C_GRP_OFFSET 0x162B40 | 1785 | #define _CNL_PORT_TX_C_GRP_OFFSET 0x162B40 |
@@ -1762,23 +1807,22 @@ enum i915_power_well_id { | |||
1762 | _CNL_PORT_TX_F_LN0_OFFSET) + \ | 1807 | _CNL_PORT_TX_F_LN0_OFFSET) + \ |
1763 | 4 * (dw)) | 1808 | 4 * (dw)) |
1764 | 1809 | ||
1765 | #define CNL_PORT_TX_DW2_GRP(port) _MMIO(_CNL_PORT_TX_DW_GRP((port), 2)) | 1810 | #define _ICL_PORT_TX_AUX 0x380 |
1766 | #define CNL_PORT_TX_DW2_LN0(port) _MMIO(_CNL_PORT_TX_DW_LN0((port), 2)) | 1811 | #define _ICL_PORT_TX_GRP 0x680 |
1767 | #define _ICL_PORT_TX_DW2_GRP_A 0x162688 | 1812 | #define _ICL_PORT_TX_LN(ln) (0x880 + (ln) * 0x100) |
1768 | #define _ICL_PORT_TX_DW2_GRP_B 0x6C688 | 1813 | |
1769 | #define _ICL_PORT_TX_DW2_LN0_A 0x162888 | 1814 | #define _ICL_PORT_TX_DW_AUX(dw, port) (_ICL_COMBOPHY(port) + \ |
1770 | #define _ICL_PORT_TX_DW2_LN0_B 0x6C888 | 1815 | _ICL_PORT_TX_AUX + 4 * (dw)) |
1771 | #define _ICL_PORT_TX_DW2_AUX_A 0x162388 | 1816 | #define _ICL_PORT_TX_DW_GRP(dw, port) (_ICL_COMBOPHY(port) + \ |
1772 | #define _ICL_PORT_TX_DW2_AUX_B 0x6c388 | 1817 | _ICL_PORT_TX_GRP + 4 * (dw)) |
1773 | #define ICL_PORT_TX_DW2_GRP(port) _MMIO_PORT(port, \ | 1818 | #define _ICL_PORT_TX_DW_LN(dw, ln, port) (_ICL_COMBOPHY(port) + \ |
1774 | _ICL_PORT_TX_DW2_GRP_A, \ | 1819 | _ICL_PORT_TX_LN(ln) + 4 * (dw)) |
1775 | _ICL_PORT_TX_DW2_GRP_B) | 1820 | |
1776 | #define ICL_PORT_TX_DW2_LN0(port) _MMIO_PORT(port, \ | 1821 | #define CNL_PORT_TX_DW2_GRP(port) _MMIO(_CNL_PORT_TX_DW_GRP(2, port)) |
1777 | _ICL_PORT_TX_DW2_LN0_A, \ | 1822 | #define CNL_PORT_TX_DW2_LN0(port) _MMIO(_CNL_PORT_TX_DW_LN0(2, port)) |
1778 | _ICL_PORT_TX_DW2_LN0_B) | 1823 | #define ICL_PORT_TX_DW2_AUX(port) _MMIO(_ICL_PORT_TX_DW_AUX(2, port)) |
1779 | #define ICL_PORT_TX_DW2_AUX(port) _MMIO_PORT(port, \ | 1824 | #define ICL_PORT_TX_DW2_GRP(port) _MMIO(_ICL_PORT_TX_DW_GRP(2, port)) |
1780 | _ICL_PORT_TX_DW2_AUX_A, \ | 1825 | #define ICL_PORT_TX_DW2_LN0(port) _MMIO(_ICL_PORT_TX_DW_LN(2, 0, port)) |
1781 | _ICL_PORT_TX_DW2_AUX_B) | ||
1782 | #define SWING_SEL_UPPER(x) (((x) >> 3) << 15) | 1826 | #define SWING_SEL_UPPER(x) (((x) >> 3) << 15) |
1783 | #define SWING_SEL_UPPER_MASK (1 << 15) | 1827 | #define SWING_SEL_UPPER_MASK (1 << 15) |
1784 | #define SWING_SEL_LOWER(x) (((x) & 0x7) << 11) | 1828 | #define SWING_SEL_LOWER(x) (((x) & 0x7) << 11) |
@@ -1795,24 +1839,10 @@ enum i915_power_well_id { | |||
1795 | #define CNL_PORT_TX_DW4_LN(port, ln) _MMIO(_CNL_PORT_TX_DW_LN0((port), 4) + \ | 1839 | #define CNL_PORT_TX_DW4_LN(port, ln) _MMIO(_CNL_PORT_TX_DW_LN0((port), 4) + \ |
1796 | ((ln) * (_CNL_PORT_TX_DW4_LN1_AE - \ | 1840 | ((ln) * (_CNL_PORT_TX_DW4_LN1_AE - \ |
1797 | _CNL_PORT_TX_DW4_LN0_AE))) | 1841 | _CNL_PORT_TX_DW4_LN0_AE))) |
1798 | #define _ICL_PORT_TX_DW4_GRP_A 0x162690 | 1842 | #define ICL_PORT_TX_DW4_AUX(port) _MMIO(_ICL_PORT_TX_DW_AUX(4, port)) |
1799 | #define _ICL_PORT_TX_DW4_GRP_B 0x6C690 | 1843 | #define ICL_PORT_TX_DW4_GRP(port) _MMIO(_ICL_PORT_TX_DW_GRP(4, port)) |
1800 | #define _ICL_PORT_TX_DW4_LN0_A 0x162890 | 1844 | #define ICL_PORT_TX_DW4_LN0(port) _MMIO(_ICL_PORT_TX_DW_LN(4, 0, port)) |
1801 | #define _ICL_PORT_TX_DW4_LN1_A 0x162990 | 1845 | #define ICL_PORT_TX_DW4_LN(port, ln) _MMIO(_ICL_PORT_TX_DW_LN(4, ln, port)) |
1802 | #define _ICL_PORT_TX_DW4_LN0_B 0x6C890 | ||
1803 | #define _ICL_PORT_TX_DW4_AUX_A 0x162390 | ||
1804 | #define _ICL_PORT_TX_DW4_AUX_B 0x6c390 | ||
1805 | #define ICL_PORT_TX_DW4_GRP(port) _MMIO_PORT(port, \ | ||
1806 | _ICL_PORT_TX_DW4_GRP_A, \ | ||
1807 | _ICL_PORT_TX_DW4_GRP_B) | ||
1808 | #define ICL_PORT_TX_DW4_LN(port, ln) _MMIO(_PORT(port, \ | ||
1809 | _ICL_PORT_TX_DW4_LN0_A, \ | ||
1810 | _ICL_PORT_TX_DW4_LN0_B) + \ | ||
1811 | ((ln) * (_ICL_PORT_TX_DW4_LN1_A - \ | ||
1812 | _ICL_PORT_TX_DW4_LN0_A))) | ||
1813 | #define ICL_PORT_TX_DW4_AUX(port) _MMIO_PORT(port, \ | ||
1814 | _ICL_PORT_TX_DW4_AUX_A, \ | ||
1815 | _ICL_PORT_TX_DW4_AUX_B) | ||
1816 | #define LOADGEN_SELECT (1 << 31) | 1846 | #define LOADGEN_SELECT (1 << 31) |
1817 | #define POST_CURSOR_1(x) ((x) << 12) | 1847 | #define POST_CURSOR_1(x) ((x) << 12) |
1818 | #define POST_CURSOR_1_MASK (0x3F << 12) | 1848 | #define POST_CURSOR_1_MASK (0x3F << 12) |
@@ -1821,23 +1851,11 @@ enum i915_power_well_id { | |||
1821 | #define CURSOR_COEFF(x) ((x) << 0) | 1851 | #define CURSOR_COEFF(x) ((x) << 0) |
1822 | #define CURSOR_COEFF_MASK (0x3F << 0) | 1852 | #define CURSOR_COEFF_MASK (0x3F << 0) |
1823 | 1853 | ||
1824 | #define CNL_PORT_TX_DW5_GRP(port) _MMIO(_CNL_PORT_TX_DW_GRP((port), 5)) | 1854 | #define CNL_PORT_TX_DW5_GRP(port) _MMIO(_CNL_PORT_TX_DW_GRP(5, port)) |
1825 | #define CNL_PORT_TX_DW5_LN0(port) _MMIO(_CNL_PORT_TX_DW_LN0((port), 5)) | 1855 | #define CNL_PORT_TX_DW5_LN0(port) _MMIO(_CNL_PORT_TX_DW_LN0(5, port)) |
1826 | #define _ICL_PORT_TX_DW5_GRP_A 0x162694 | 1856 | #define ICL_PORT_TX_DW5_AUX(port) _MMIO(_ICL_PORT_TX_DW_AUX(5, port)) |
1827 | #define _ICL_PORT_TX_DW5_GRP_B 0x6C694 | 1857 | #define ICL_PORT_TX_DW5_GRP(port) _MMIO(_ICL_PORT_TX_DW_GRP(5, port)) |
1828 | #define _ICL_PORT_TX_DW5_LN0_A 0x162894 | 1858 | #define ICL_PORT_TX_DW5_LN0(port) _MMIO(_ICL_PORT_TX_DW_LN(5, 0, port)) |
1829 | #define _ICL_PORT_TX_DW5_LN0_B 0x6C894 | ||
1830 | #define _ICL_PORT_TX_DW5_AUX_A 0x162394 | ||
1831 | #define _ICL_PORT_TX_DW5_AUX_B 0x6c394 | ||
1832 | #define ICL_PORT_TX_DW5_GRP(port) _MMIO_PORT(port, \ | ||
1833 | _ICL_PORT_TX_DW5_GRP_A, \ | ||
1834 | _ICL_PORT_TX_DW5_GRP_B) | ||
1835 | #define ICL_PORT_TX_DW5_LN0(port) _MMIO_PORT(port, \ | ||
1836 | _ICL_PORT_TX_DW5_LN0_A, \ | ||
1837 | _ICL_PORT_TX_DW5_LN0_B) | ||
1838 | #define ICL_PORT_TX_DW5_AUX(port) _MMIO_PORT(port, \ | ||
1839 | _ICL_PORT_TX_DW5_AUX_A, \ | ||
1840 | _ICL_PORT_TX_DW5_AUX_B) | ||
1841 | #define TX_TRAINING_EN (1 << 31) | 1859 | #define TX_TRAINING_EN (1 << 31) |
1842 | #define TAP2_DISABLE (1 << 30) | 1860 | #define TAP2_DISABLE (1 << 30) |
1843 | #define TAP3_DISABLE (1 << 29) | 1861 | #define TAP3_DISABLE (1 << 29) |
@@ -2054,49 +2072,16 @@ enum i915_power_well_id { | |||
2054 | #define BXT_PORT_CL2CM_DW6(phy) _BXT_PHY((phy), _PORT_CL2CM_DW6_BC) | 2072 | #define BXT_PORT_CL2CM_DW6(phy) _BXT_PHY((phy), _PORT_CL2CM_DW6_BC) |
2055 | #define DW6_OLDO_DYN_PWR_DOWN_EN (1 << 28) | 2073 | #define DW6_OLDO_DYN_PWR_DOWN_EN (1 << 28) |
2056 | 2074 | ||
2057 | #define CNL_PORT_COMP_DW0 _MMIO(0x162100) | 2075 | #define FIA1_BASE 0x163000 |
2058 | #define COMP_INIT (1 << 31) | ||
2059 | #define CNL_PORT_COMP_DW1 _MMIO(0x162104) | ||
2060 | #define CNL_PORT_COMP_DW3 _MMIO(0x16210c) | ||
2061 | #define PROCESS_INFO_DOT_0 (0 << 26) | ||
2062 | #define PROCESS_INFO_DOT_1 (1 << 26) | ||
2063 | #define PROCESS_INFO_DOT_4 (2 << 26) | ||
2064 | #define PROCESS_INFO_MASK (7 << 26) | ||
2065 | #define PROCESS_INFO_SHIFT 26 | ||
2066 | #define VOLTAGE_INFO_0_85V (0 << 24) | ||
2067 | #define VOLTAGE_INFO_0_95V (1 << 24) | ||
2068 | #define VOLTAGE_INFO_1_05V (2 << 24) | ||
2069 | #define VOLTAGE_INFO_MASK (3 << 24) | ||
2070 | #define VOLTAGE_INFO_SHIFT 24 | ||
2071 | #define CNL_PORT_COMP_DW9 _MMIO(0x162124) | ||
2072 | #define CNL_PORT_COMP_DW10 _MMIO(0x162128) | ||
2073 | |||
2074 | #define _ICL_PORT_COMP_DW0_A 0x162100 | ||
2075 | #define _ICL_PORT_COMP_DW0_B 0x6C100 | ||
2076 | #define ICL_PORT_COMP_DW0(port) _MMIO_PORT(port, _ICL_PORT_COMP_DW0_A, \ | ||
2077 | _ICL_PORT_COMP_DW0_B) | ||
2078 | #define _ICL_PORT_COMP_DW1_A 0x162104 | ||
2079 | #define _ICL_PORT_COMP_DW1_B 0x6C104 | ||
2080 | #define ICL_PORT_COMP_DW1(port) _MMIO_PORT(port, _ICL_PORT_COMP_DW1_A, \ | ||
2081 | _ICL_PORT_COMP_DW1_B) | ||
2082 | #define _ICL_PORT_COMP_DW3_A 0x16210C | ||
2083 | #define _ICL_PORT_COMP_DW3_B 0x6C10C | ||
2084 | #define ICL_PORT_COMP_DW3(port) _MMIO_PORT(port, _ICL_PORT_COMP_DW3_A, \ | ||
2085 | _ICL_PORT_COMP_DW3_B) | ||
2086 | #define _ICL_PORT_COMP_DW9_A 0x162124 | ||
2087 | #define _ICL_PORT_COMP_DW9_B 0x6C124 | ||
2088 | #define ICL_PORT_COMP_DW9(port) _MMIO_PORT(port, _ICL_PORT_COMP_DW9_A, \ | ||
2089 | _ICL_PORT_COMP_DW9_B) | ||
2090 | #define _ICL_PORT_COMP_DW10_A 0x162128 | ||
2091 | #define _ICL_PORT_COMP_DW10_B 0x6C128 | ||
2092 | #define ICL_PORT_COMP_DW10(port) _MMIO_PORT(port, \ | ||
2093 | _ICL_PORT_COMP_DW10_A, \ | ||
2094 | _ICL_PORT_COMP_DW10_B) | ||
2095 | 2076 | ||
2096 | /* ICL PHY DFLEX registers */ | 2077 | /* ICL PHY DFLEX registers */ |
2097 | #define PORT_TX_DFLEXDPMLE1 _MMIO(0x1638C0) | 2078 | #define PORT_TX_DFLEXDPMLE1 _MMIO(FIA1_BASE + 0x008C0) |
2098 | #define DFLEXDPMLE1_DPMLETC_MASK(n) (0xf << (4 * (n))) | 2079 | #define DFLEXDPMLE1_DPMLETC_MASK(tc_port) (0xf << (4 * (tc_port))) |
2099 | #define DFLEXDPMLE1_DPMLETC(n, x) ((x) << (4 * (n))) | 2080 | #define DFLEXDPMLE1_DPMLETC_ML0(tc_port) (1 << (4 * (tc_port))) |
2081 | #define DFLEXDPMLE1_DPMLETC_ML1_0(tc_port) (3 << (4 * (tc_port))) | ||
2082 | #define DFLEXDPMLE1_DPMLETC_ML3(tc_port) (8 << (4 * (tc_port))) | ||
2083 | #define DFLEXDPMLE1_DPMLETC_ML3_2(tc_port) (12 << (4 * (tc_port))) | ||
2084 | #define DFLEXDPMLE1_DPMLETC_ML3_0(tc_port) (15 << (4 * (tc_port))) | ||
2100 | 2085 | ||
2101 | /* BXT PHY Ref registers */ | 2086 | /* BXT PHY Ref registers */ |
2102 | #define _PORT_REF_DW3_A 0x16218C | 2087 | #define _PORT_REF_DW3_A 0x16218C |
@@ -2413,6 +2398,7 @@ enum i915_power_well_id { | |||
2413 | 2398 | ||
2414 | #define GEN8_GAMW_ECO_DEV_RW_IA _MMIO(0x4080) | 2399 | #define GEN8_GAMW_ECO_DEV_RW_IA _MMIO(0x4080) |
2415 | #define GAMW_ECO_ENABLE_64K_IPS_FIELD 0xF | 2400 | #define GAMW_ECO_ENABLE_64K_IPS_FIELD 0xF |
2401 | #define GAMW_ECO_DEV_CTX_RELOAD_DISABLE (1 << 7) | ||
2416 | 2402 | ||
2417 | #define GAMT_CHKN_BIT_REG _MMIO(0x4ab8) | 2403 | #define GAMT_CHKN_BIT_REG _MMIO(0x4ab8) |
2418 | #define GAMT_CHKN_DISABLE_L3_COH_PIPE (1 << 31) | 2404 | #define GAMT_CHKN_DISABLE_L3_COH_PIPE (1 << 31) |
@@ -2573,6 +2559,7 @@ enum i915_power_well_id { | |||
2573 | /* chicken reg for WaConextSwitchWithConcurrentTLBInvalidate */ | 2559 | /* chicken reg for WaConextSwitchWithConcurrentTLBInvalidate */ |
2574 | #define GEN9_CSFE_CHICKEN1_RCS _MMIO(0x20D4) | 2560 | #define GEN9_CSFE_CHICKEN1_RCS _MMIO(0x20D4) |
2575 | #define GEN9_PREEMPT_GPGPU_SYNC_SWITCH_DISABLE (1 << 2) | 2561 | #define GEN9_PREEMPT_GPGPU_SYNC_SWITCH_DISABLE (1 << 2) |
2562 | #define GEN11_ENABLE_32_PLANE_MODE (1 << 7) | ||
2576 | 2563 | ||
2577 | /* WaClearTdlStateAckDirtyBits */ | 2564 | /* WaClearTdlStateAckDirtyBits */ |
2578 | #define GEN8_STATE_ACK _MMIO(0x20F0) | 2565 | #define GEN8_STATE_ACK _MMIO(0x20F0) |
@@ -3475,11 +3462,13 @@ enum i915_power_well_id { | |||
3475 | /* | 3462 | /* |
3476 | * Palette regs | 3463 | * Palette regs |
3477 | */ | 3464 | */ |
3478 | #define PALETTE_A_OFFSET 0xa000 | 3465 | #define _PALETTE_A 0xa000 |
3479 | #define PALETTE_B_OFFSET 0xa800 | 3466 | #define _PALETTE_B 0xa800 |
3480 | #define CHV_PALETTE_C_OFFSET 0xc000 | 3467 | #define _CHV_PALETTE_C 0xc000 |
3481 | #define PALETTE(pipe, i) _MMIO(dev_priv->info.palette_offsets[pipe] + \ | 3468 | #define PALETTE(pipe, i) _MMIO(dev_priv->info.display_mmio_offset + \ |
3482 | dev_priv->info.display_mmio_offset + (i) * 4) | 3469 | _PICK((pipe), _PALETTE_A, \ |
3470 | _PALETTE_B, _CHV_PALETTE_C) + \ | ||
3471 | (i) * 4) | ||
3483 | 3472 | ||
3484 | /* MCH MMIO space */ | 3473 | /* MCH MMIO space */ |
3485 | 3474 | ||
@@ -4061,15 +4050,27 @@ enum { | |||
4061 | #define _VSYNCSHIFT_B 0x61028 | 4050 | #define _VSYNCSHIFT_B 0x61028 |
4062 | #define _PIPE_MULT_B 0x6102c | 4051 | #define _PIPE_MULT_B 0x6102c |
4063 | 4052 | ||
4053 | /* DSI 0 timing regs */ | ||
4054 | #define _HTOTAL_DSI0 0x6b000 | ||
4055 | #define _HSYNC_DSI0 0x6b008 | ||
4056 | #define _VTOTAL_DSI0 0x6b00c | ||
4057 | #define _VSYNC_DSI0 0x6b014 | ||
4058 | #define _VSYNCSHIFT_DSI0 0x6b028 | ||
4059 | |||
4060 | /* DSI 1 timing regs */ | ||
4061 | #define _HTOTAL_DSI1 0x6b800 | ||
4062 | #define _HSYNC_DSI1 0x6b808 | ||
4063 | #define _VTOTAL_DSI1 0x6b80c | ||
4064 | #define _VSYNC_DSI1 0x6b814 | ||
4065 | #define _VSYNCSHIFT_DSI1 0x6b828 | ||
4066 | |||
4064 | #define TRANSCODER_A_OFFSET 0x60000 | 4067 | #define TRANSCODER_A_OFFSET 0x60000 |
4065 | #define TRANSCODER_B_OFFSET 0x61000 | 4068 | #define TRANSCODER_B_OFFSET 0x61000 |
4066 | #define TRANSCODER_C_OFFSET 0x62000 | 4069 | #define TRANSCODER_C_OFFSET 0x62000 |
4067 | #define CHV_TRANSCODER_C_OFFSET 0x63000 | 4070 | #define CHV_TRANSCODER_C_OFFSET 0x63000 |
4068 | #define TRANSCODER_EDP_OFFSET 0x6f000 | 4071 | #define TRANSCODER_EDP_OFFSET 0x6f000 |
4069 | 4072 | #define TRANSCODER_DSI0_OFFSET 0x6b000 | |
4070 | #define _MMIO_TRANS2(pipe, reg) _MMIO(dev_priv->info.trans_offsets[(pipe)] - \ | 4073 | #define TRANSCODER_DSI1_OFFSET 0x6b800 |
4071 | dev_priv->info.trans_offsets[TRANSCODER_A] + (reg) + \ | ||
4072 | dev_priv->info.display_mmio_offset) | ||
4073 | 4074 | ||
4074 | #define HTOTAL(trans) _MMIO_TRANS2(trans, _HTOTAL_A) | 4075 | #define HTOTAL(trans) _MMIO_TRANS2(trans, _HTOTAL_A) |
4075 | #define HBLANK(trans) _MMIO_TRANS2(trans, _HBLANK_A) | 4076 | #define HBLANK(trans) _MMIO_TRANS2(trans, _HBLANK_A) |
@@ -4149,9 +4150,13 @@ enum { | |||
4149 | /* Bspec claims those aren't shifted but stay at 0x64800 */ | 4150 | /* Bspec claims those aren't shifted but stay at 0x64800 */ |
4150 | #define EDP_PSR_IMR _MMIO(0x64834) | 4151 | #define EDP_PSR_IMR _MMIO(0x64834) |
4151 | #define EDP_PSR_IIR _MMIO(0x64838) | 4152 | #define EDP_PSR_IIR _MMIO(0x64838) |
4152 | #define EDP_PSR_ERROR(trans) (1 << (((trans) * 8 + 10) & 31)) | 4153 | #define EDP_PSR_ERROR(shift) (1 << ((shift) + 2)) |
4153 | #define EDP_PSR_POST_EXIT(trans) (1 << (((trans) * 8 + 9) & 31)) | 4154 | #define EDP_PSR_POST_EXIT(shift) (1 << ((shift) + 1)) |
4154 | #define EDP_PSR_PRE_ENTRY(trans) (1 << (((trans) * 8 + 8) & 31)) | 4155 | #define EDP_PSR_PRE_ENTRY(shift) (1 << (shift)) |
4156 | #define EDP_PSR_TRANSCODER_C_SHIFT 24 | ||
4157 | #define EDP_PSR_TRANSCODER_B_SHIFT 16 | ||
4158 | #define EDP_PSR_TRANSCODER_A_SHIFT 8 | ||
4159 | #define EDP_PSR_TRANSCODER_EDP_SHIFT 0 | ||
4155 | 4160 | ||
4156 | #define EDP_PSR_AUX_CTL _MMIO(dev_priv->psr_mmio_base + 0x10) | 4161 | #define EDP_PSR_AUX_CTL _MMIO(dev_priv->psr_mmio_base + 0x10) |
4157 | #define EDP_PSR_AUX_CTL_TIME_OUT_MASK (3 << 26) | 4162 | #define EDP_PSR_AUX_CTL_TIME_OUT_MASK (3 << 26) |
@@ -4195,7 +4200,7 @@ enum { | |||
4195 | #define EDP_PSR_DEBUG_MASK_LPSP (1 << 27) | 4200 | #define EDP_PSR_DEBUG_MASK_LPSP (1 << 27) |
4196 | #define EDP_PSR_DEBUG_MASK_MEMUP (1 << 26) | 4201 | #define EDP_PSR_DEBUG_MASK_MEMUP (1 << 26) |
4197 | #define EDP_PSR_DEBUG_MASK_HPD (1 << 25) | 4202 | #define EDP_PSR_DEBUG_MASK_HPD (1 << 25) |
4198 | #define EDP_PSR_DEBUG_MASK_DISP_REG_WRITE (1 << 16) | 4203 | #define EDP_PSR_DEBUG_MASK_DISP_REG_WRITE (1 << 16) /* Reserved in ICL+ */ |
4199 | #define EDP_PSR_DEBUG_EXIT_ON_PIXEL_UNDERRUN (1 << 15) /* SKL+ */ | 4204 | #define EDP_PSR_DEBUG_EXIT_ON_PIXEL_UNDERRUN (1 << 15) /* SKL+ */ |
4200 | 4205 | ||
4201 | #define EDP_PSR2_CTL _MMIO(0x6f900) | 4206 | #define EDP_PSR2_CTL _MMIO(0x6f900) |
@@ -4232,7 +4237,7 @@ enum { | |||
4232 | #define PSR_EVENT_FRONT_BUFFER_MODIFY (1 << 9) | 4237 | #define PSR_EVENT_FRONT_BUFFER_MODIFY (1 << 9) |
4233 | #define PSR_EVENT_WD_TIMER_EXPIRE (1 << 8) | 4238 | #define PSR_EVENT_WD_TIMER_EXPIRE (1 << 8) |
4234 | #define PSR_EVENT_PIPE_REGISTERS_UPDATE (1 << 6) | 4239 | #define PSR_EVENT_PIPE_REGISTERS_UPDATE (1 << 6) |
4235 | #define PSR_EVENT_REGISTER_UPDATE (1 << 5) | 4240 | #define PSR_EVENT_REGISTER_UPDATE (1 << 5) /* Reserved in ICL+ */ |
4236 | #define PSR_EVENT_HDCP_ENABLE (1 << 4) | 4241 | #define PSR_EVENT_HDCP_ENABLE (1 << 4) |
4237 | #define PSR_EVENT_KVMR_SESSION_ENABLE (1 << 3) | 4242 | #define PSR_EVENT_KVMR_SESSION_ENABLE (1 << 3) |
4238 | #define PSR_EVENT_VBI_ENABLE (1 << 2) | 4243 | #define PSR_EVENT_VBI_ENABLE (1 << 2) |
@@ -4584,6 +4589,15 @@ enum { | |||
4584 | #define VIDEO_DIP_FREQ_2VSYNC (2 << 16) | 4589 | #define VIDEO_DIP_FREQ_2VSYNC (2 << 16) |
4585 | #define VIDEO_DIP_FREQ_MASK (3 << 16) | 4590 | #define VIDEO_DIP_FREQ_MASK (3 << 16) |
4586 | /* HSW and later: */ | 4591 | /* HSW and later: */ |
4592 | #define DRM_DIP_ENABLE (1 << 28) | ||
4593 | #define PSR_VSC_BIT_7_SET (1 << 27) | ||
4594 | #define VSC_SELECT_MASK (0x3 << 25) | ||
4595 | #define VSC_SELECT_SHIFT 25 | ||
4596 | #define VSC_DIP_HW_HEA_DATA (0 << 25) | ||
4597 | #define VSC_DIP_HW_HEA_SW_DATA (1 << 25) | ||
4598 | #define VSC_DIP_HW_DATA_SW_HEA (2 << 25) | ||
4599 | #define VSC_DIP_SW_HEA_DATA (3 << 25) | ||
4600 | #define VDIP_ENABLE_PPS (1 << 24) | ||
4587 | #define VIDEO_DIP_ENABLE_VSC_HSW (1 << 20) | 4601 | #define VIDEO_DIP_ENABLE_VSC_HSW (1 << 20) |
4588 | #define VIDEO_DIP_ENABLE_GCP_HSW (1 << 16) | 4602 | #define VIDEO_DIP_ENABLE_GCP_HSW (1 << 16) |
4589 | #define VIDEO_DIP_ENABLE_AVI_HSW (1 << 12) | 4603 | #define VIDEO_DIP_ENABLE_AVI_HSW (1 << 12) |
@@ -4591,16 +4605,6 @@ enum { | |||
4591 | #define VIDEO_DIP_ENABLE_GMP_HSW (1 << 4) | 4605 | #define VIDEO_DIP_ENABLE_GMP_HSW (1 << 4) |
4592 | #define VIDEO_DIP_ENABLE_SPD_HSW (1 << 0) | 4606 | #define VIDEO_DIP_ENABLE_SPD_HSW (1 << 0) |
4593 | 4607 | ||
4594 | #define DRM_DIP_ENABLE (1 << 28) | ||
4595 | #define PSR_VSC_BIT_7_SET (1 << 27) | ||
4596 | #define VSC_SELECT_MASK (0x3 << 26) | ||
4597 | #define VSC_SELECT_SHIFT 26 | ||
4598 | #define VSC_DIP_HW_HEA_DATA (0 << 26) | ||
4599 | #define VSC_DIP_HW_HEA_SW_DATA (1 << 26) | ||
4600 | #define VSC_DIP_HW_DATA_SW_HEA (2 << 26) | ||
4601 | #define VSC_DIP_SW_HEA_DATA (3 << 26) | ||
4602 | #define VDIP_ENABLE_PPS (1 << 24) | ||
4603 | |||
4604 | /* Panel power sequencing */ | 4608 | /* Panel power sequencing */ |
4605 | #define PPS_BASE 0x61200 | 4609 | #define PPS_BASE 0x61200 |
4606 | #define VLV_PPS_BASE (VLV_DISPLAY_BASE + PPS_BASE) | 4610 | #define VLV_PPS_BASE (VLV_DISPLAY_BASE + PPS_BASE) |
@@ -5636,9 +5640,9 @@ enum { | |||
5636 | */ | 5640 | */ |
5637 | #define PIPE_EDP_OFFSET 0x7f000 | 5641 | #define PIPE_EDP_OFFSET 0x7f000 |
5638 | 5642 | ||
5639 | #define _MMIO_PIPE2(pipe, reg) _MMIO(dev_priv->info.pipe_offsets[pipe] - \ | 5643 | /* ICL DSI 0 and 1 */ |
5640 | dev_priv->info.pipe_offsets[PIPE_A] + (reg) + \ | 5644 | #define PIPE_DSI0_OFFSET 0x7b000 |
5641 | dev_priv->info.display_mmio_offset) | 5645 | #define PIPE_DSI1_OFFSET 0x7b800 |
5642 | 5646 | ||
5643 | #define PIPECONF(pipe) _MMIO_PIPE2(pipe, _PIPEACONF) | 5647 | #define PIPECONF(pipe) _MMIO_PIPE2(pipe, _PIPEACONF) |
5644 | #define PIPEDSL(pipe) _MMIO_PIPE2(pipe, _PIPEADSL) | 5648 | #define PIPEDSL(pipe) _MMIO_PIPE2(pipe, _PIPEADSL) |
@@ -6087,10 +6091,6 @@ enum { | |||
6087 | #define _CURBBASE_IVB 0x71084 | 6091 | #define _CURBBASE_IVB 0x71084 |
6088 | #define _CURBPOS_IVB 0x71088 | 6092 | #define _CURBPOS_IVB 0x71088 |
6089 | 6093 | ||
6090 | #define _CURSOR2(pipe, reg) _MMIO(dev_priv->info.cursor_offsets[(pipe)] - \ | ||
6091 | dev_priv->info.cursor_offsets[PIPE_A] + (reg) + \ | ||
6092 | dev_priv->info.display_mmio_offset) | ||
6093 | |||
6094 | #define CURCNTR(pipe) _CURSOR2(pipe, _CURACNTR) | 6094 | #define CURCNTR(pipe) _CURSOR2(pipe, _CURACNTR) |
6095 | #define CURBASE(pipe) _CURSOR2(pipe, _CURABASE) | 6095 | #define CURBASE(pipe) _CURSOR2(pipe, _CURABASE) |
6096 | #define CURPOS(pipe) _CURSOR2(pipe, _CURAPOS) | 6096 | #define CURPOS(pipe) _CURSOR2(pipe, _CURAPOS) |
@@ -6224,6 +6224,10 @@ enum { | |||
6224 | #define _DSPBOFFSET (dev_priv->info.display_mmio_offset + 0x711A4) | 6224 | #define _DSPBOFFSET (dev_priv->info.display_mmio_offset + 0x711A4) |
6225 | #define _DSPBSURFLIVE (dev_priv->info.display_mmio_offset + 0x711AC) | 6225 | #define _DSPBSURFLIVE (dev_priv->info.display_mmio_offset + 0x711AC) |
6226 | 6226 | ||
6227 | /* ICL DSI 0 and 1 */ | ||
6228 | #define _PIPEDSI0CONF 0x7b008 | ||
6229 | #define _PIPEDSI1CONF 0x7b808 | ||
6230 | |||
6227 | /* Sprite A control */ | 6231 | /* Sprite A control */ |
6228 | #define _DVSACNTR 0x72180 | 6232 | #define _DVSACNTR 0x72180 |
6229 | #define DVS_ENABLE (1 << 31) | 6233 | #define DVS_ENABLE (1 << 31) |
@@ -6511,6 +6515,7 @@ enum { | |||
6511 | #define PLANE_CTL_KEY_ENABLE_DESTINATION (2 << 21) | 6515 | #define PLANE_CTL_KEY_ENABLE_DESTINATION (2 << 21) |
6512 | #define PLANE_CTL_ORDER_BGRX (0 << 20) | 6516 | #define PLANE_CTL_ORDER_BGRX (0 << 20) |
6513 | #define PLANE_CTL_ORDER_RGBX (1 << 20) | 6517 | #define PLANE_CTL_ORDER_RGBX (1 << 20) |
6518 | #define PLANE_CTL_YUV420_Y_PLANE (1 << 19) | ||
6514 | #define PLANE_CTL_YUV_TO_RGB_CSC_FORMAT_BT709 (1 << 18) | 6519 | #define PLANE_CTL_YUV_TO_RGB_CSC_FORMAT_BT709 (1 << 18) |
6515 | #define PLANE_CTL_YUV422_ORDER_MASK (0x3 << 16) | 6520 | #define PLANE_CTL_YUV422_ORDER_MASK (0x3 << 16) |
6516 | #define PLANE_CTL_YUV422_YUYV (0 << 16) | 6521 | #define PLANE_CTL_YUV422_YUYV (0 << 16) |
@@ -6554,17 +6559,33 @@ enum { | |||
6554 | #define _PLANE_KEYVAL_2_A 0x70294 | 6559 | #define _PLANE_KEYVAL_2_A 0x70294 |
6555 | #define _PLANE_KEYMSK_1_A 0x70198 | 6560 | #define _PLANE_KEYMSK_1_A 0x70198 |
6556 | #define _PLANE_KEYMSK_2_A 0x70298 | 6561 | #define _PLANE_KEYMSK_2_A 0x70298 |
6562 | #define PLANE_KEYMSK_ALPHA_ENABLE (1 << 31) | ||
6557 | #define _PLANE_KEYMAX_1_A 0x701a0 | 6563 | #define _PLANE_KEYMAX_1_A 0x701a0 |
6558 | #define _PLANE_KEYMAX_2_A 0x702a0 | 6564 | #define _PLANE_KEYMAX_2_A 0x702a0 |
6565 | #define PLANE_KEYMAX_ALPHA(a) ((a) << 24) | ||
6559 | #define _PLANE_AUX_DIST_1_A 0x701c0 | 6566 | #define _PLANE_AUX_DIST_1_A 0x701c0 |
6560 | #define _PLANE_AUX_DIST_2_A 0x702c0 | 6567 | #define _PLANE_AUX_DIST_2_A 0x702c0 |
6561 | #define _PLANE_AUX_OFFSET_1_A 0x701c4 | 6568 | #define _PLANE_AUX_OFFSET_1_A 0x701c4 |
6562 | #define _PLANE_AUX_OFFSET_2_A 0x702c4 | 6569 | #define _PLANE_AUX_OFFSET_2_A 0x702c4 |
6570 | #define _PLANE_CUS_CTL_1_A 0x701c8 | ||
6571 | #define _PLANE_CUS_CTL_2_A 0x702c8 | ||
6572 | #define PLANE_CUS_ENABLE (1 << 31) | ||
6573 | #define PLANE_CUS_PLANE_6 (0 << 30) | ||
6574 | #define PLANE_CUS_PLANE_7 (1 << 30) | ||
6575 | #define PLANE_CUS_HPHASE_SIGN_NEGATIVE (1 << 19) | ||
6576 | #define PLANE_CUS_HPHASE_0 (0 << 16) | ||
6577 | #define PLANE_CUS_HPHASE_0_25 (1 << 16) | ||
6578 | #define PLANE_CUS_HPHASE_0_5 (2 << 16) | ||
6579 | #define PLANE_CUS_VPHASE_SIGN_NEGATIVE (1 << 15) | ||
6580 | #define PLANE_CUS_VPHASE_0 (0 << 12) | ||
6581 | #define PLANE_CUS_VPHASE_0_25 (1 << 12) | ||
6582 | #define PLANE_CUS_VPHASE_0_5 (2 << 12) | ||
6563 | #define _PLANE_COLOR_CTL_1_A 0x701CC /* GLK+ */ | 6583 | #define _PLANE_COLOR_CTL_1_A 0x701CC /* GLK+ */ |
6564 | #define _PLANE_COLOR_CTL_2_A 0x702CC /* GLK+ */ | 6584 | #define _PLANE_COLOR_CTL_2_A 0x702CC /* GLK+ */ |
6565 | #define _PLANE_COLOR_CTL_3_A 0x703CC /* GLK+ */ | 6585 | #define _PLANE_COLOR_CTL_3_A 0x703CC /* GLK+ */ |
6566 | #define PLANE_COLOR_PIPE_GAMMA_ENABLE (1 << 30) /* Pre-ICL */ | 6586 | #define PLANE_COLOR_PIPE_GAMMA_ENABLE (1 << 30) /* Pre-ICL */ |
6567 | #define PLANE_COLOR_YUV_RANGE_CORRECTION_DISABLE (1 << 28) | 6587 | #define PLANE_COLOR_YUV_RANGE_CORRECTION_DISABLE (1 << 28) |
6588 | #define PLANE_COLOR_INPUT_CSC_ENABLE (1 << 20) /* ICL+ */ | ||
6568 | #define PLANE_COLOR_PIPE_CSC_ENABLE (1 << 23) /* Pre-ICL */ | 6589 | #define PLANE_COLOR_PIPE_CSC_ENABLE (1 << 23) /* Pre-ICL */ |
6569 | #define PLANE_COLOR_CSC_MODE_BYPASS (0 << 17) | 6590 | #define PLANE_COLOR_CSC_MODE_BYPASS (0 << 17) |
6570 | #define PLANE_COLOR_CSC_MODE_YUV601_TO_RGB709 (1 << 17) | 6591 | #define PLANE_COLOR_CSC_MODE_YUV601_TO_RGB709 (1 << 17) |
@@ -6581,6 +6602,55 @@ enum { | |||
6581 | #define _PLANE_NV12_BUF_CFG_1_A 0x70278 | 6602 | #define _PLANE_NV12_BUF_CFG_1_A 0x70278 |
6582 | #define _PLANE_NV12_BUF_CFG_2_A 0x70378 | 6603 | #define _PLANE_NV12_BUF_CFG_2_A 0x70378 |
6583 | 6604 | ||
6605 | /* Input CSC Register Definitions */ | ||
6606 | #define _PLANE_INPUT_CSC_RY_GY_1_A 0x701E0 | ||
6607 | #define _PLANE_INPUT_CSC_RY_GY_2_A 0x702E0 | ||
6608 | |||
6609 | #define _PLANE_INPUT_CSC_RY_GY_1_B 0x711E0 | ||
6610 | #define _PLANE_INPUT_CSC_RY_GY_2_B 0x712E0 | ||
6611 | |||
6612 | #define _PLANE_INPUT_CSC_RY_GY_1(pipe) \ | ||
6613 | _PIPE(pipe, _PLANE_INPUT_CSC_RY_GY_1_A, \ | ||
6614 | _PLANE_INPUT_CSC_RY_GY_1_B) | ||
6615 | #define _PLANE_INPUT_CSC_RY_GY_2(pipe) \ | ||
6616 | _PIPE(pipe, _PLANE_INPUT_CSC_RY_GY_2_A, \ | ||
6617 | _PLANE_INPUT_CSC_RY_GY_2_B) | ||
6618 | |||
6619 | #define PLANE_INPUT_CSC_COEFF(pipe, plane, index) \ | ||
6620 | _MMIO_PLANE(plane, _PLANE_INPUT_CSC_RY_GY_1(pipe) + (index) * 4, \ | ||
6621 | _PLANE_INPUT_CSC_RY_GY_2(pipe) + (index) * 4) | ||
6622 | |||
6623 | #define _PLANE_INPUT_CSC_PREOFF_HI_1_A 0x701F8 | ||
6624 | #define _PLANE_INPUT_CSC_PREOFF_HI_2_A 0x702F8 | ||
6625 | |||
6626 | #define _PLANE_INPUT_CSC_PREOFF_HI_1_B 0x711F8 | ||
6627 | #define _PLANE_INPUT_CSC_PREOFF_HI_2_B 0x712F8 | ||
6628 | |||
6629 | #define _PLANE_INPUT_CSC_PREOFF_HI_1(pipe) \ | ||
6630 | _PIPE(pipe, _PLANE_INPUT_CSC_PREOFF_HI_1_A, \ | ||
6631 | _PLANE_INPUT_CSC_PREOFF_HI_1_B) | ||
6632 | #define _PLANE_INPUT_CSC_PREOFF_HI_2(pipe) \ | ||
6633 | _PIPE(pipe, _PLANE_INPUT_CSC_PREOFF_HI_2_A, \ | ||
6634 | _PLANE_INPUT_CSC_PREOFF_HI_2_B) | ||
6635 | #define PLANE_INPUT_CSC_PREOFF(pipe, plane, index) \ | ||
6636 | _MMIO_PLANE(plane, _PLANE_INPUT_CSC_PREOFF_HI_1(pipe) + (index) * 4, \ | ||
6637 | _PLANE_INPUT_CSC_PREOFF_HI_2(pipe) + (index) * 4) | ||
6638 | |||
6639 | #define _PLANE_INPUT_CSC_POSTOFF_HI_1_A 0x70204 | ||
6640 | #define _PLANE_INPUT_CSC_POSTOFF_HI_2_A 0x70304 | ||
6641 | |||
6642 | #define _PLANE_INPUT_CSC_POSTOFF_HI_1_B 0x71204 | ||
6643 | #define _PLANE_INPUT_CSC_POSTOFF_HI_2_B 0x71304 | ||
6644 | |||
6645 | #define _PLANE_INPUT_CSC_POSTOFF_HI_1(pipe) \ | ||
6646 | _PIPE(pipe, _PLANE_INPUT_CSC_POSTOFF_HI_1_A, \ | ||
6647 | _PLANE_INPUT_CSC_POSTOFF_HI_1_B) | ||
6648 | #define _PLANE_INPUT_CSC_POSTOFF_HI_2(pipe) \ | ||
6649 | _PIPE(pipe, _PLANE_INPUT_CSC_POSTOFF_HI_2_A, \ | ||
6650 | _PLANE_INPUT_CSC_POSTOFF_HI_2_B) | ||
6651 | #define PLANE_INPUT_CSC_POSTOFF(pipe, plane, index) \ | ||
6652 | _MMIO_PLANE(plane, _PLANE_INPUT_CSC_POSTOFF_HI_1(pipe) + (index) * 4, \ | ||
6653 | _PLANE_INPUT_CSC_POSTOFF_HI_2(pipe) + (index) * 4) | ||
6584 | 6654 | ||
6585 | #define _PLANE_CTL_1_B 0x71180 | 6655 | #define _PLANE_CTL_1_B 0x71180 |
6586 | #define _PLANE_CTL_2_B 0x71280 | 6656 | #define _PLANE_CTL_2_B 0x71280 |
@@ -6697,6 +6767,15 @@ enum { | |||
6697 | #define PLANE_AUX_OFFSET(pipe, plane) \ | 6767 | #define PLANE_AUX_OFFSET(pipe, plane) \ |
6698 | _MMIO_PLANE(plane, _PLANE_AUX_OFFSET_1(pipe), _PLANE_AUX_OFFSET_2(pipe)) | 6768 | _MMIO_PLANE(plane, _PLANE_AUX_OFFSET_1(pipe), _PLANE_AUX_OFFSET_2(pipe)) |
6699 | 6769 | ||
6770 | #define _PLANE_CUS_CTL_1_B 0x711c8 | ||
6771 | #define _PLANE_CUS_CTL_2_B 0x712c8 | ||
6772 | #define _PLANE_CUS_CTL_1(pipe) \ | ||
6773 | _PIPE(pipe, _PLANE_CUS_CTL_1_A, _PLANE_CUS_CTL_1_B) | ||
6774 | #define _PLANE_CUS_CTL_2(pipe) \ | ||
6775 | _PIPE(pipe, _PLANE_CUS_CTL_2_A, _PLANE_CUS_CTL_2_B) | ||
6776 | #define PLANE_CUS_CTL(pipe, plane) \ | ||
6777 | _MMIO_PLANE(plane, _PLANE_CUS_CTL_1(pipe), _PLANE_CUS_CTL_2(pipe)) | ||
6778 | |||
6700 | #define _PLANE_COLOR_CTL_1_B 0x711CC | 6779 | #define _PLANE_COLOR_CTL_1_B 0x711CC |
6701 | #define _PLANE_COLOR_CTL_2_B 0x712CC | 6780 | #define _PLANE_COLOR_CTL_2_B 0x712CC |
6702 | #define _PLANE_COLOR_CTL_3_B 0x713CC | 6781 | #define _PLANE_COLOR_CTL_3_B 0x713CC |
@@ -6850,11 +6929,12 @@ enum { | |||
6850 | #define _PS_2B_CTRL 0x68A80 | 6929 | #define _PS_2B_CTRL 0x68A80 |
6851 | #define _PS_1C_CTRL 0x69180 | 6930 | #define _PS_1C_CTRL 0x69180 |
6852 | #define PS_SCALER_EN (1 << 31) | 6931 | #define PS_SCALER_EN (1 << 31) |
6853 | #define PS_SCALER_MODE_MASK (3 << 28) | 6932 | #define SKL_PS_SCALER_MODE_MASK (3 << 28) |
6854 | #define PS_SCALER_MODE_DYN (0 << 28) | 6933 | #define SKL_PS_SCALER_MODE_DYN (0 << 28) |
6855 | #define PS_SCALER_MODE_HQ (1 << 28) | 6934 | #define SKL_PS_SCALER_MODE_HQ (1 << 28) |
6856 | #define SKL_PS_SCALER_MODE_NV12 (2 << 28) | 6935 | #define SKL_PS_SCALER_MODE_NV12 (2 << 28) |
6857 | #define PS_SCALER_MODE_PLANAR (1 << 29) | 6936 | #define PS_SCALER_MODE_PLANAR (1 << 29) |
6937 | #define PS_SCALER_MODE_NORMAL (0 << 29) | ||
6858 | #define PS_PLANE_SEL_MASK (7 << 25) | 6938 | #define PS_PLANE_SEL_MASK (7 << 25) |
6859 | #define PS_PLANE_SEL(plane) (((plane) + 1) << 25) | 6939 | #define PS_PLANE_SEL(plane) (((plane) + 1) << 25) |
6860 | #define PS_FILTER_MASK (3 << 23) | 6940 | #define PS_FILTER_MASK (3 << 23) |
@@ -6871,6 +6951,8 @@ enum { | |||
6871 | #define PS_VADAPT_MODE_LEAST_ADAPT (0 << 5) | 6951 | #define PS_VADAPT_MODE_LEAST_ADAPT (0 << 5) |
6872 | #define PS_VADAPT_MODE_MOD_ADAPT (1 << 5) | 6952 | #define PS_VADAPT_MODE_MOD_ADAPT (1 << 5) |
6873 | #define PS_VADAPT_MODE_MOST_ADAPT (3 << 5) | 6953 | #define PS_VADAPT_MODE_MOST_ADAPT (3 << 5) |
6954 | #define PS_PLANE_Y_SEL_MASK (7 << 5) | ||
6955 | #define PS_PLANE_Y_SEL(plane) (((plane) + 1) << 5) | ||
6874 | 6956 | ||
6875 | #define _PS_PWR_GATE_1A 0x68160 | 6957 | #define _PS_PWR_GATE_1A 0x68160 |
6876 | #define _PS_PWR_GATE_2A 0x68260 | 6958 | #define _PS_PWR_GATE_2A 0x68260 |
@@ -7317,9 +7399,10 @@ enum { | |||
7317 | #define BDW_DPRS_MASK_VBLANK_SRD (1 << 0) | 7399 | #define BDW_DPRS_MASK_VBLANK_SRD (1 << 0) |
7318 | #define CHICKEN_PIPESL_1(pipe) _MMIO_PIPE(pipe, _CHICKEN_PIPESL_1_A, _CHICKEN_PIPESL_1_B) | 7400 | #define CHICKEN_PIPESL_1(pipe) _MMIO_PIPE(pipe, _CHICKEN_PIPESL_1_A, _CHICKEN_PIPESL_1_B) |
7319 | 7401 | ||
7320 | #define CHICKEN_TRANS_A 0x420c0 | 7402 | #define CHICKEN_TRANS_A _MMIO(0x420c0) |
7321 | #define CHICKEN_TRANS_B 0x420c4 | 7403 | #define CHICKEN_TRANS_B _MMIO(0x420c4) |
7322 | #define CHICKEN_TRANS(trans) _MMIO_TRANS(trans, CHICKEN_TRANS_A, CHICKEN_TRANS_B) | 7404 | #define CHICKEN_TRANS_C _MMIO(0x420c8) |
7405 | #define CHICKEN_TRANS_EDP _MMIO(0x420cc) | ||
7323 | #define VSC_DATA_SEL_SOFTWARE_CONTROL (1 << 25) /* GLK and CNL+ */ | 7406 | #define VSC_DATA_SEL_SOFTWARE_CONTROL (1 << 25) /* GLK and CNL+ */ |
7324 | #define DDI_TRAINING_OVERRIDE_ENABLE (1 << 19) | 7407 | #define DDI_TRAINING_OVERRIDE_ENABLE (1 << 19) |
7325 | #define DDI_TRAINING_OVERRIDE_VALUE (1 << 18) | 7408 | #define DDI_TRAINING_OVERRIDE_VALUE (1 << 18) |
@@ -7409,6 +7492,10 @@ enum { | |||
7409 | #define GEN9_SLICE_COMMON_ECO_CHICKEN1 _MMIO(0x731c) | 7492 | #define GEN9_SLICE_COMMON_ECO_CHICKEN1 _MMIO(0x731c) |
7410 | #define GEN11_STATE_CACHE_REDIRECT_TO_CS (1 << 11) | 7493 | #define GEN11_STATE_CACHE_REDIRECT_TO_CS (1 << 11) |
7411 | 7494 | ||
7495 | #define GEN7_SARCHKMD _MMIO(0xB000) | ||
7496 | #define GEN7_DISABLE_DEMAND_PREFETCH (1 << 31) | ||
7497 | #define GEN7_DISABLE_SAMPLER_PREFETCH (1 << 30) | ||
7498 | |||
7412 | #define GEN7_L3SQCREG1 _MMIO(0xB010) | 7499 | #define GEN7_L3SQCREG1 _MMIO(0xB010) |
7413 | #define VLV_B0_WA_L3SQCREG1_VALUE 0x00D30000 | 7500 | #define VLV_B0_WA_L3SQCREG1_VALUE 0x00D30000 |
7414 | 7501 | ||
@@ -7824,8 +7911,7 @@ enum { | |||
7824 | #define CNP_RAWCLK_DIV_MASK (0x3ff << 16) | 7911 | #define CNP_RAWCLK_DIV_MASK (0x3ff << 16) |
7825 | #define CNP_RAWCLK_DIV(div) ((div) << 16) | 7912 | #define CNP_RAWCLK_DIV(div) ((div) << 16) |
7826 | #define CNP_RAWCLK_FRAC_MASK (0xf << 26) | 7913 | #define CNP_RAWCLK_FRAC_MASK (0xf << 26) |
7827 | #define CNP_RAWCLK_FRAC(frac) ((frac) << 26) | 7914 | #define CNP_RAWCLK_DEN(den) ((den) << 26) |
7828 | #define ICP_RAWCLK_DEN(den) ((den) << 26) | ||
7829 | #define ICP_RAWCLK_NUM(num) ((num) << 11) | 7915 | #define ICP_RAWCLK_NUM(num) ((num) << 11) |
7830 | 7916 | ||
7831 | #define PCH_DPLL_TMR_CFG _MMIO(0xc6208) | 7917 | #define PCH_DPLL_TMR_CFG _MMIO(0xc6208) |
@@ -8625,8 +8711,7 @@ enum { | |||
8625 | #define GEN11_LSN_UNSLCVC_GAFS_HALF_CL2_MAXALLOC (1 << 9) | 8711 | #define GEN11_LSN_UNSLCVC_GAFS_HALF_CL2_MAXALLOC (1 << 9) |
8626 | #define GEN11_LSN_UNSLCVC_GAFS_HALF_SF_MAXALLOC (1 << 7) | 8712 | #define GEN11_LSN_UNSLCVC_GAFS_HALF_SF_MAXALLOC (1 << 7) |
8627 | 8713 | ||
8628 | #define GAMW_ECO_DEV_RW_IA_REG _MMIO(0x4080) | 8714 | #define GEN10_SAMPLER_MODE _MMIO(0xE18C) |
8629 | #define GAMW_ECO_DEV_CTX_RELOAD_DISABLE (1 << 7) | ||
8630 | 8715 | ||
8631 | /* IVYBRIDGE DPF */ | 8716 | /* IVYBRIDGE DPF */ |
8632 | #define GEN7_L3CDERRST1(slice) _MMIO(0xB008 + (slice) * 0x200) /* L3CD Error Status 1 */ | 8717 | #define GEN7_L3CDERRST1(slice) _MMIO(0xB008 + (slice) * 0x200) /* L3CD Error Status 1 */ |
@@ -8927,6 +9012,15 @@ enum skl_power_gate { | |||
8927 | #define CNL_AUX_ANAOVRD1_ENABLE (1 << 16) | 9012 | #define CNL_AUX_ANAOVRD1_ENABLE (1 << 16) |
8928 | #define CNL_AUX_ANAOVRD1_LDO_BYPASS (1 << 23) | 9013 | #define CNL_AUX_ANAOVRD1_LDO_BYPASS (1 << 23) |
8929 | 9014 | ||
9015 | #define _ICL_AUX_REG_IDX(pw_idx) ((pw_idx) - ICL_PW_CTL_IDX_AUX_A) | ||
9016 | #define _ICL_AUX_ANAOVRD1_A 0x162398 | ||
9017 | #define _ICL_AUX_ANAOVRD1_B 0x6C398 | ||
9018 | #define ICL_AUX_ANAOVRD1(pw_idx) _MMIO(_PICK(_ICL_AUX_REG_IDX(pw_idx), \ | ||
9019 | _ICL_AUX_ANAOVRD1_A, \ | ||
9020 | _ICL_AUX_ANAOVRD1_B)) | ||
9021 | #define ICL_AUX_ANAOVRD1_LDO_BYPASS (1 << 7) | ||
9022 | #define ICL_AUX_ANAOVRD1_ENABLE (1 << 0) | ||
9023 | |||
8930 | /* HDCP Key Registers */ | 9024 | /* HDCP Key Registers */ |
8931 | #define HDCP_KEY_CONF _MMIO(0x66c00) | 9025 | #define HDCP_KEY_CONF _MMIO(0x66c00) |
8932 | #define HDCP_AKSV_SEND_TRIGGER BIT(31) | 9026 | #define HDCP_AKSV_SEND_TRIGGER BIT(31) |
@@ -9009,11 +9103,45 @@ enum skl_power_gate { | |||
9009 | #define HDCP_STATUS_CIPHER BIT(16) | 9103 | #define HDCP_STATUS_CIPHER BIT(16) |
9010 | #define HDCP_STATUS_FRAME_CNT(x) (((x) >> 8) & 0xff) | 9104 | #define HDCP_STATUS_FRAME_CNT(x) (((x) >> 8) & 0xff) |
9011 | 9105 | ||
9106 | /* HDCP2.2 Registers */ | ||
9107 | #define _PORTA_HDCP2_BASE 0x66800 | ||
9108 | #define _PORTB_HDCP2_BASE 0x66500 | ||
9109 | #define _PORTC_HDCP2_BASE 0x66600 | ||
9110 | #define _PORTD_HDCP2_BASE 0x66700 | ||
9111 | #define _PORTE_HDCP2_BASE 0x66A00 | ||
9112 | #define _PORTF_HDCP2_BASE 0x66900 | ||
9113 | #define _PORT_HDCP2_BASE(port, x) _MMIO(_PICK((port), \ | ||
9114 | _PORTA_HDCP2_BASE, \ | ||
9115 | _PORTB_HDCP2_BASE, \ | ||
9116 | _PORTC_HDCP2_BASE, \ | ||
9117 | _PORTD_HDCP2_BASE, \ | ||
9118 | _PORTE_HDCP2_BASE, \ | ||
9119 | _PORTF_HDCP2_BASE) + (x)) | ||
9120 | |||
9121 | #define HDCP2_AUTH_DDI(port) _PORT_HDCP2_BASE(port, 0x98) | ||
9122 | #define AUTH_LINK_AUTHENTICATED BIT(31) | ||
9123 | #define AUTH_LINK_TYPE BIT(30) | ||
9124 | #define AUTH_FORCE_CLR_INPUTCTR BIT(19) | ||
9125 | #define AUTH_CLR_KEYS BIT(18) | ||
9126 | |||
9127 | #define HDCP2_CTL_DDI(port) _PORT_HDCP2_BASE(port, 0xB0) | ||
9128 | #define CTL_LINK_ENCRYPTION_REQ BIT(31) | ||
9129 | |||
9130 | #define HDCP2_STATUS_DDI(port) _PORT_HDCP2_BASE(port, 0xB4) | ||
9131 | #define STREAM_ENCRYPTION_STATUS_A BIT(31) | ||
9132 | #define STREAM_ENCRYPTION_STATUS_B BIT(30) | ||
9133 | #define STREAM_ENCRYPTION_STATUS_C BIT(29) | ||
9134 | #define LINK_TYPE_STATUS BIT(22) | ||
9135 | #define LINK_AUTH_STATUS BIT(21) | ||
9136 | #define LINK_ENCRYPTION_STATUS BIT(20) | ||
9137 | |||
9012 | /* Per-pipe DDI Function Control */ | 9138 | /* Per-pipe DDI Function Control */ |
9013 | #define _TRANS_DDI_FUNC_CTL_A 0x60400 | 9139 | #define _TRANS_DDI_FUNC_CTL_A 0x60400 |
9014 | #define _TRANS_DDI_FUNC_CTL_B 0x61400 | 9140 | #define _TRANS_DDI_FUNC_CTL_B 0x61400 |
9015 | #define _TRANS_DDI_FUNC_CTL_C 0x62400 | 9141 | #define _TRANS_DDI_FUNC_CTL_C 0x62400 |
9016 | #define _TRANS_DDI_FUNC_CTL_EDP 0x6F400 | 9142 | #define _TRANS_DDI_FUNC_CTL_EDP 0x6F400 |
9143 | #define _TRANS_DDI_FUNC_CTL_DSI0 0x6b400 | ||
9144 | #define _TRANS_DDI_FUNC_CTL_DSI1 0x6bc00 | ||
9017 | #define TRANS_DDI_FUNC_CTL(tran) _MMIO_TRANS2(tran, _TRANS_DDI_FUNC_CTL_A) | 9145 | #define TRANS_DDI_FUNC_CTL(tran) _MMIO_TRANS2(tran, _TRANS_DDI_FUNC_CTL_A) |
9018 | 9146 | ||
9019 | #define TRANS_DDI_FUNC_ENABLE (1 << 31) | 9147 | #define TRANS_DDI_FUNC_ENABLE (1 << 31) |
@@ -9051,6 +9179,19 @@ enum skl_power_gate { | |||
9051 | | TRANS_DDI_HDMI_SCRAMBLER_RESET_FREQ \ | 9179 | | TRANS_DDI_HDMI_SCRAMBLER_RESET_FREQ \ |
9052 | | TRANS_DDI_HDMI_SCRAMBLING) | 9180 | | TRANS_DDI_HDMI_SCRAMBLING) |
9053 | 9181 | ||
9182 | #define _TRANS_DDI_FUNC_CTL2_A 0x60404 | ||
9183 | #define _TRANS_DDI_FUNC_CTL2_B 0x61404 | ||
9184 | #define _TRANS_DDI_FUNC_CTL2_C 0x62404 | ||
9185 | #define _TRANS_DDI_FUNC_CTL2_EDP 0x6f404 | ||
9186 | #define _TRANS_DDI_FUNC_CTL2_DSI0 0x6b404 | ||
9187 | #define _TRANS_DDI_FUNC_CTL2_DSI1 0x6bc04 | ||
9188 | #define TRANS_DDI_FUNC_CTL2(tran) _MMIO_TRANS2(tran, \ | ||
9189 | _TRANS_DDI_FUNC_CTL2_A) | ||
9190 | #define PORT_SYNC_MODE_ENABLE (1 << 4) | ||
9191 | #define PORT_SYNC_MODE_MASTER_SELECT(x) ((x) < 0) | ||
9192 | #define PORT_SYNC_MODE_MASTER_SELECT_MASK (0x7 << 0) | ||
9193 | #define PORT_SYNC_MODE_MASTER_SELECT_SHIFT 0 | ||
9194 | |||
9054 | /* DisplayPort Transport Control */ | 9195 | /* DisplayPort Transport Control */ |
9055 | #define _DP_TP_CTL_A 0x64040 | 9196 | #define _DP_TP_CTL_A 0x64040 |
9056 | #define _DP_TP_CTL_B 0x64140 | 9197 | #define _DP_TP_CTL_B 0x64140 |
@@ -9222,6 +9363,8 @@ enum skl_power_gate { | |||
9222 | #define TRANS_MSA_MISC(tran) _MMIO_TRANS2(tran, _TRANSA_MSA_MISC) | 9363 | #define TRANS_MSA_MISC(tran) _MMIO_TRANS2(tran, _TRANSA_MSA_MISC) |
9223 | 9364 | ||
9224 | #define TRANS_MSA_SYNC_CLK (1 << 0) | 9365 | #define TRANS_MSA_SYNC_CLK (1 << 0) |
9366 | #define TRANS_MSA_SAMPLING_444 (2 << 1) | ||
9367 | #define TRANS_MSA_CLRSP_YCBCR (2 << 3) | ||
9225 | #define TRANS_MSA_6_BPC (0 << 5) | 9368 | #define TRANS_MSA_6_BPC (0 << 5) |
9226 | #define TRANS_MSA_8_BPC (1 << 5) | 9369 | #define TRANS_MSA_8_BPC (1 << 5) |
9227 | #define TRANS_MSA_10_BPC (2 << 5) | 9370 | #define TRANS_MSA_10_BPC (2 << 5) |
@@ -9789,6 +9932,10 @@ enum skl_power_gate { | |||
9789 | #define _MIPI_PORT(port, a, c) (((port) == PORT_A) ? a : c) /* ports A and C only */ | 9932 | #define _MIPI_PORT(port, a, c) (((port) == PORT_A) ? a : c) /* ports A and C only */ |
9790 | #define _MMIO_MIPI(port, a, c) _MMIO(_MIPI_PORT(port, a, c)) | 9933 | #define _MMIO_MIPI(port, a, c) _MMIO(_MIPI_PORT(port, a, c)) |
9791 | 9934 | ||
9935 | /* Gen11 DSI */ | ||
9936 | #define _MMIO_DSI(tc, dsi0, dsi1) _MMIO_TRANS((tc) - TRANSCODER_DSI_0, \ | ||
9937 | dsi0, dsi1) | ||
9938 | |||
9792 | #define MIPIO_TXESC_CLK_DIV1 _MMIO(0x160004) | 9939 | #define MIPIO_TXESC_CLK_DIV1 _MMIO(0x160004) |
9793 | #define GLK_TX_ESC_CLK_DIV1_MASK 0x3FF | 9940 | #define GLK_TX_ESC_CLK_DIV1_MASK 0x3FF |
9794 | #define MIPIO_TXESC_CLK_DIV2 _MMIO(0x160008) | 9941 | #define MIPIO_TXESC_CLK_DIV2 _MMIO(0x160008) |
@@ -9952,6 +10099,39 @@ enum skl_power_gate { | |||
9952 | _ICL_DSI_IO_MODECTL_1) | 10099 | _ICL_DSI_IO_MODECTL_1) |
9953 | #define COMBO_PHY_MODE_DSI (1 << 0) | 10100 | #define COMBO_PHY_MODE_DSI (1 << 0) |
9954 | 10101 | ||
10102 | /* Display Stream Splitter Control */ | ||
10103 | #define DSS_CTL1 _MMIO(0x67400) | ||
10104 | #define SPLITTER_ENABLE (1 << 31) | ||
10105 | #define JOINER_ENABLE (1 << 30) | ||
10106 | #define DUAL_LINK_MODE_INTERLEAVE (1 << 24) | ||
10107 | #define DUAL_LINK_MODE_FRONTBACK (0 << 24) | ||
10108 | #define OVERLAP_PIXELS_MASK (0xf << 16) | ||
10109 | #define OVERLAP_PIXELS(pixels) ((pixels) << 16) | ||
10110 | #define LEFT_DL_BUF_TARGET_DEPTH_MASK (0xfff << 0) | ||
10111 | #define LEFT_DL_BUF_TARGET_DEPTH(pixels) ((pixels) << 0) | ||
10112 | #define MAX_DL_BUFFER_TARGET_DEPTH 0x5a0 | ||
10113 | |||
10114 | #define DSS_CTL2 _MMIO(0x67404) | ||
10115 | #define LEFT_BRANCH_VDSC_ENABLE (1 << 31) | ||
10116 | #define RIGHT_BRANCH_VDSC_ENABLE (1 << 15) | ||
10117 | #define RIGHT_DL_BUF_TARGET_DEPTH_MASK (0xfff << 0) | ||
10118 | #define RIGHT_DL_BUF_TARGET_DEPTH(pixels) ((pixels) << 0) | ||
10119 | |||
10120 | #define _ICL_PIPE_DSS_CTL1_PB 0x78200 | ||
10121 | #define _ICL_PIPE_DSS_CTL1_PC 0x78400 | ||
10122 | #define ICL_PIPE_DSS_CTL1(pipe) _MMIO_PIPE((pipe) - PIPE_B, \ | ||
10123 | _ICL_PIPE_DSS_CTL1_PB, \ | ||
10124 | _ICL_PIPE_DSS_CTL1_PC) | ||
10125 | #define BIG_JOINER_ENABLE (1 << 29) | ||
10126 | #define MASTER_BIG_JOINER_ENABLE (1 << 28) | ||
10127 | #define VGA_CENTERING_ENABLE (1 << 27) | ||
10128 | |||
10129 | #define _ICL_PIPE_DSS_CTL2_PB 0x78204 | ||
10130 | #define _ICL_PIPE_DSS_CTL2_PC 0x78404 | ||
10131 | #define ICL_PIPE_DSS_CTL2(pipe) _MMIO_PIPE((pipe) - PIPE_B, \ | ||
10132 | _ICL_PIPE_DSS_CTL2_PB, \ | ||
10133 | _ICL_PIPE_DSS_CTL2_PC) | ||
10134 | |||
9955 | #define BXT_P_DSI_REGULATOR_CFG _MMIO(0x160020) | 10135 | #define BXT_P_DSI_REGULATOR_CFG _MMIO(0x160020) |
9956 | #define STAP_SELECT (1 << 0) | 10136 | #define STAP_SELECT (1 << 0) |
9957 | 10137 | ||
@@ -10288,6 +10468,235 @@ enum skl_power_gate { | |||
10288 | _ICL_DSI_T_INIT_MASTER_0,\ | 10468 | _ICL_DSI_T_INIT_MASTER_0,\ |
10289 | _ICL_DSI_T_INIT_MASTER_1) | 10469 | _ICL_DSI_T_INIT_MASTER_1) |
10290 | 10470 | ||
10471 | #define _DPHY_CLK_TIMING_PARAM_0 0x162180 | ||
10472 | #define _DPHY_CLK_TIMING_PARAM_1 0x6c180 | ||
10473 | #define DPHY_CLK_TIMING_PARAM(port) _MMIO_PORT(port, \ | ||
10474 | _DPHY_CLK_TIMING_PARAM_0,\ | ||
10475 | _DPHY_CLK_TIMING_PARAM_1) | ||
10476 | #define _DSI_CLK_TIMING_PARAM_0 0x6b080 | ||
10477 | #define _DSI_CLK_TIMING_PARAM_1 0x6b880 | ||
10478 | #define DSI_CLK_TIMING_PARAM(port) _MMIO_PORT(port, \ | ||
10479 | _DSI_CLK_TIMING_PARAM_0,\ | ||
10480 | _DSI_CLK_TIMING_PARAM_1) | ||
10481 | #define CLK_PREPARE_OVERRIDE (1 << 31) | ||
10482 | #define CLK_PREPARE(x) ((x) << 28) | ||
10483 | #define CLK_PREPARE_MASK (0x7 << 28) | ||
10484 | #define CLK_PREPARE_SHIFT 28 | ||
10485 | #define CLK_ZERO_OVERRIDE (1 << 27) | ||
10486 | #define CLK_ZERO(x) ((x) << 20) | ||
10487 | #define CLK_ZERO_MASK (0xf << 20) | ||
10488 | #define CLK_ZERO_SHIFT 20 | ||
10489 | #define CLK_PRE_OVERRIDE (1 << 19) | ||
10490 | #define CLK_PRE(x) ((x) << 16) | ||
10491 | #define CLK_PRE_MASK (0x3 << 16) | ||
10492 | #define CLK_PRE_SHIFT 16 | ||
10493 | #define CLK_POST_OVERRIDE (1 << 15) | ||
10494 | #define CLK_POST(x) ((x) << 8) | ||
10495 | #define CLK_POST_MASK (0x7 << 8) | ||
10496 | #define CLK_POST_SHIFT 8 | ||
10497 | #define CLK_TRAIL_OVERRIDE (1 << 7) | ||
10498 | #define CLK_TRAIL(x) ((x) << 0) | ||
10499 | #define CLK_TRAIL_MASK (0xf << 0) | ||
10500 | #define CLK_TRAIL_SHIFT 0 | ||
10501 | |||
10502 | #define _DPHY_DATA_TIMING_PARAM_0 0x162184 | ||
10503 | #define _DPHY_DATA_TIMING_PARAM_1 0x6c184 | ||
10504 | #define DPHY_DATA_TIMING_PARAM(port) _MMIO_PORT(port, \ | ||
10505 | _DPHY_DATA_TIMING_PARAM_0,\ | ||
10506 | _DPHY_DATA_TIMING_PARAM_1) | ||
10507 | #define _DSI_DATA_TIMING_PARAM_0 0x6B084 | ||
10508 | #define _DSI_DATA_TIMING_PARAM_1 0x6B884 | ||
10509 | #define DSI_DATA_TIMING_PARAM(port) _MMIO_PORT(port, \ | ||
10510 | _DSI_DATA_TIMING_PARAM_0,\ | ||
10511 | _DSI_DATA_TIMING_PARAM_1) | ||
10512 | #define HS_PREPARE_OVERRIDE (1 << 31) | ||
10513 | #define HS_PREPARE(x) ((x) << 24) | ||
10514 | #define HS_PREPARE_MASK (0x7 << 24) | ||
10515 | #define HS_PREPARE_SHIFT 24 | ||
10516 | #define HS_ZERO_OVERRIDE (1 << 23) | ||
10517 | #define HS_ZERO(x) ((x) << 16) | ||
10518 | #define HS_ZERO_MASK (0xf << 16) | ||
10519 | #define HS_ZERO_SHIFT 16 | ||
10520 | #define HS_TRAIL_OVERRIDE (1 << 15) | ||
10521 | #define HS_TRAIL(x) ((x) << 8) | ||
10522 | #define HS_TRAIL_MASK (0x7 << 8) | ||
10523 | #define HS_TRAIL_SHIFT 8 | ||
10524 | #define HS_EXIT_OVERRIDE (1 << 7) | ||
10525 | #define HS_EXIT(x) ((x) << 0) | ||
10526 | #define HS_EXIT_MASK (0x7 << 0) | ||
10527 | #define HS_EXIT_SHIFT 0 | ||
10528 | |||
10529 | #define _DPHY_TA_TIMING_PARAM_0 0x162188 | ||
10530 | #define _DPHY_TA_TIMING_PARAM_1 0x6c188 | ||
10531 | #define DPHY_TA_TIMING_PARAM(port) _MMIO_PORT(port, \ | ||
10532 | _DPHY_TA_TIMING_PARAM_0,\ | ||
10533 | _DPHY_TA_TIMING_PARAM_1) | ||
10534 | #define _DSI_TA_TIMING_PARAM_0 0x6b098 | ||
10535 | #define _DSI_TA_TIMING_PARAM_1 0x6b898 | ||
10536 | #define DSI_TA_TIMING_PARAM(port) _MMIO_PORT(port, \ | ||
10537 | _DSI_TA_TIMING_PARAM_0,\ | ||
10538 | _DSI_TA_TIMING_PARAM_1) | ||
10539 | #define TA_SURE_OVERRIDE (1 << 31) | ||
10540 | #define TA_SURE(x) ((x) << 16) | ||
10541 | #define TA_SURE_MASK (0x1f << 16) | ||
10542 | #define TA_SURE_SHIFT 16 | ||
10543 | #define TA_GO_OVERRIDE (1 << 15) | ||
10544 | #define TA_GO(x) ((x) << 8) | ||
10545 | #define TA_GO_MASK (0xf << 8) | ||
10546 | #define TA_GO_SHIFT 8 | ||
10547 | #define TA_GET_OVERRIDE (1 << 7) | ||
10548 | #define TA_GET(x) ((x) << 0) | ||
10549 | #define TA_GET_MASK (0xf << 0) | ||
10550 | #define TA_GET_SHIFT 0 | ||
10551 | |||
10552 | /* DSI transcoder configuration */ | ||
10553 | #define _DSI_TRANS_FUNC_CONF_0 0x6b030 | ||
10554 | #define _DSI_TRANS_FUNC_CONF_1 0x6b830 | ||
10555 | #define DSI_TRANS_FUNC_CONF(tc) _MMIO_DSI(tc, \ | ||
10556 | _DSI_TRANS_FUNC_CONF_0,\ | ||
10557 | _DSI_TRANS_FUNC_CONF_1) | ||
10558 | #define OP_MODE_MASK (0x3 << 28) | ||
10559 | #define OP_MODE_SHIFT 28 | ||
10560 | #define CMD_MODE_NO_GATE (0x0 << 28) | ||
10561 | #define CMD_MODE_TE_GATE (0x1 << 28) | ||
10562 | #define VIDEO_MODE_SYNC_EVENT (0x2 << 28) | ||
10563 | #define VIDEO_MODE_SYNC_PULSE (0x3 << 28) | ||
10564 | #define LINK_READY (1 << 20) | ||
10565 | #define PIX_FMT_MASK (0x3 << 16) | ||
10566 | #define PIX_FMT_SHIFT 16 | ||
10567 | #define PIX_FMT_RGB565 (0x0 << 16) | ||
10568 | #define PIX_FMT_RGB666_PACKED (0x1 << 16) | ||
10569 | #define PIX_FMT_RGB666_LOOSE (0x2 << 16) | ||
10570 | #define PIX_FMT_RGB888 (0x3 << 16) | ||
10571 | #define PIX_FMT_RGB101010 (0x4 << 16) | ||
10572 | #define PIX_FMT_RGB121212 (0x5 << 16) | ||
10573 | #define PIX_FMT_COMPRESSED (0x6 << 16) | ||
10574 | #define BGR_TRANSMISSION (1 << 15) | ||
10575 | #define PIX_VIRT_CHAN(x) ((x) << 12) | ||
10576 | #define PIX_VIRT_CHAN_MASK (0x3 << 12) | ||
10577 | #define PIX_VIRT_CHAN_SHIFT 12 | ||
10578 | #define PIX_BUF_THRESHOLD_MASK (0x3 << 10) | ||
10579 | #define PIX_BUF_THRESHOLD_SHIFT 10 | ||
10580 | #define PIX_BUF_THRESHOLD_1_4 (0x0 << 10) | ||
10581 | #define PIX_BUF_THRESHOLD_1_2 (0x1 << 10) | ||
10582 | #define PIX_BUF_THRESHOLD_3_4 (0x2 << 10) | ||
10583 | #define PIX_BUF_THRESHOLD_FULL (0x3 << 10) | ||
10584 | #define CONTINUOUS_CLK_MASK (0x3 << 8) | ||
10585 | #define CONTINUOUS_CLK_SHIFT 8 | ||
10586 | #define CLK_ENTER_LP_AFTER_DATA (0x0 << 8) | ||
10587 | #define CLK_HS_OR_LP (0x2 << 8) | ||
10588 | #define CLK_HS_CONTINUOUS (0x3 << 8) | ||
10589 | #define LINK_CALIBRATION_MASK (0x3 << 4) | ||
10590 | #define LINK_CALIBRATION_SHIFT 4 | ||
10591 | #define CALIBRATION_DISABLED (0x0 << 4) | ||
10592 | #define CALIBRATION_ENABLED_INITIAL_ONLY (0x2 << 4) | ||
10593 | #define CALIBRATION_ENABLED_INITIAL_PERIODIC (0x3 << 4) | ||
10594 | #define S3D_ORIENTATION_LANDSCAPE (1 << 1) | ||
10595 | #define EOTP_DISABLED (1 << 0) | ||
10596 | |||
10597 | #define _DSI_CMD_RXCTL_0 0x6b0d4 | ||
10598 | #define _DSI_CMD_RXCTL_1 0x6b8d4 | ||
10599 | #define DSI_CMD_RXCTL(tc) _MMIO_DSI(tc, \ | ||
10600 | _DSI_CMD_RXCTL_0,\ | ||
10601 | _DSI_CMD_RXCTL_1) | ||
10602 | #define READ_UNLOADS_DW (1 << 16) | ||
10603 | #define RECEIVED_UNASSIGNED_TRIGGER (1 << 15) | ||
10604 | #define RECEIVED_ACKNOWLEDGE_TRIGGER (1 << 14) | ||
10605 | #define RECEIVED_TEAR_EFFECT_TRIGGER (1 << 13) | ||
10606 | #define RECEIVED_RESET_TRIGGER (1 << 12) | ||
10607 | #define RECEIVED_PAYLOAD_WAS_LOST (1 << 11) | ||
10608 | #define RECEIVED_CRC_WAS_LOST (1 << 10) | ||
10609 | #define NUMBER_RX_PLOAD_DW_MASK (0xff << 0) | ||
10610 | #define NUMBER_RX_PLOAD_DW_SHIFT 0 | ||
10611 | |||
10612 | #define _DSI_CMD_TXCTL_0 0x6b0d0 | ||
10613 | #define _DSI_CMD_TXCTL_1 0x6b8d0 | ||
10614 | #define DSI_CMD_TXCTL(tc) _MMIO_DSI(tc, \ | ||
10615 | _DSI_CMD_TXCTL_0,\ | ||
10616 | _DSI_CMD_TXCTL_1) | ||
10617 | #define KEEP_LINK_IN_HS (1 << 24) | ||
10618 | #define FREE_HEADER_CREDIT_MASK (0x1f << 8) | ||
10619 | #define FREE_HEADER_CREDIT_SHIFT 0x8 | ||
10620 | #define FREE_PLOAD_CREDIT_MASK (0xff << 0) | ||
10621 | #define FREE_PLOAD_CREDIT_SHIFT 0 | ||
10622 | #define MAX_HEADER_CREDIT 0x10 | ||
10623 | #define MAX_PLOAD_CREDIT 0x40 | ||
10624 | |||
10625 | #define _DSI_CMD_TXHDR_0 0x6b100 | ||
10626 | #define _DSI_CMD_TXHDR_1 0x6b900 | ||
10627 | #define DSI_CMD_TXHDR(tc) _MMIO_DSI(tc, \ | ||
10628 | _DSI_CMD_TXHDR_0,\ | ||
10629 | _DSI_CMD_TXHDR_1) | ||
10630 | #define PAYLOAD_PRESENT (1 << 31) | ||
10631 | #define LP_DATA_TRANSFER (1 << 30) | ||
10632 | #define VBLANK_FENCE (1 << 29) | ||
10633 | #define PARAM_WC_MASK (0xffff << 8) | ||
10634 | #define PARAM_WC_LOWER_SHIFT 8 | ||
10635 | #define PARAM_WC_UPPER_SHIFT 16 | ||
10636 | #define VC_MASK (0x3 << 6) | ||
10637 | #define VC_SHIFT 6 | ||
10638 | #define DT_MASK (0x3f << 0) | ||
10639 | #define DT_SHIFT 0 | ||
10640 | |||
10641 | #define _DSI_CMD_TXPYLD_0 0x6b104 | ||
10642 | #define _DSI_CMD_TXPYLD_1 0x6b904 | ||
10643 | #define DSI_CMD_TXPYLD(tc) _MMIO_DSI(tc, \ | ||
10644 | _DSI_CMD_TXPYLD_0,\ | ||
10645 | _DSI_CMD_TXPYLD_1) | ||
10646 | |||
10647 | #define _DSI_LP_MSG_0 0x6b0d8 | ||
10648 | #define _DSI_LP_MSG_1 0x6b8d8 | ||
10649 | #define DSI_LP_MSG(tc) _MMIO_DSI(tc, \ | ||
10650 | _DSI_LP_MSG_0,\ | ||
10651 | _DSI_LP_MSG_1) | ||
10652 | #define LPTX_IN_PROGRESS (1 << 17) | ||
10653 | #define LINK_IN_ULPS (1 << 16) | ||
10654 | #define LINK_ULPS_TYPE_LP11 (1 << 8) | ||
10655 | #define LINK_ENTER_ULPS (1 << 0) | ||
10656 | |||
10657 | /* DSI timeout registers */ | ||
10658 | #define _DSI_HSTX_TO_0 0x6b044 | ||
10659 | #define _DSI_HSTX_TO_1 0x6b844 | ||
10660 | #define DSI_HSTX_TO(tc) _MMIO_DSI(tc, \ | ||
10661 | _DSI_HSTX_TO_0,\ | ||
10662 | _DSI_HSTX_TO_1) | ||
10663 | #define HSTX_TIMEOUT_VALUE_MASK (0xffff << 16) | ||
10664 | #define HSTX_TIMEOUT_VALUE_SHIFT 16 | ||
10665 | #define HSTX_TIMEOUT_VALUE(x) ((x) << 16) | ||
10666 | #define HSTX_TIMED_OUT (1 << 0) | ||
10667 | |||
10668 | #define _DSI_LPRX_HOST_TO_0 0x6b048 | ||
10669 | #define _DSI_LPRX_HOST_TO_1 0x6b848 | ||
10670 | #define DSI_LPRX_HOST_TO(tc) _MMIO_DSI(tc, \ | ||
10671 | _DSI_LPRX_HOST_TO_0,\ | ||
10672 | _DSI_LPRX_HOST_TO_1) | ||
10673 | #define LPRX_TIMED_OUT (1 << 16) | ||
10674 | #define LPRX_TIMEOUT_VALUE_MASK (0xffff << 0) | ||
10675 | #define LPRX_TIMEOUT_VALUE_SHIFT 0 | ||
10676 | #define LPRX_TIMEOUT_VALUE(x) ((x) << 0) | ||
10677 | |||
10678 | #define _DSI_PWAIT_TO_0 0x6b040 | ||
10679 | #define _DSI_PWAIT_TO_1 0x6b840 | ||
10680 | #define DSI_PWAIT_TO(tc) _MMIO_DSI(tc, \ | ||
10681 | _DSI_PWAIT_TO_0,\ | ||
10682 | _DSI_PWAIT_TO_1) | ||
10683 | #define PRESET_TIMEOUT_VALUE_MASK (0xffff << 16) | ||
10684 | #define PRESET_TIMEOUT_VALUE_SHIFT 16 | ||
10685 | #define PRESET_TIMEOUT_VALUE(x) ((x) << 16) | ||
10686 | #define PRESPONSE_TIMEOUT_VALUE_MASK (0xffff << 0) | ||
10687 | #define PRESPONSE_TIMEOUT_VALUE_SHIFT 0 | ||
10688 | #define PRESPONSE_TIMEOUT_VALUE(x) ((x) << 0) | ||
10689 | |||
10690 | #define _DSI_TA_TO_0 0x6b04c | ||
10691 | #define _DSI_TA_TO_1 0x6b84c | ||
10692 | #define DSI_TA_TO(tc) _MMIO_DSI(tc, \ | ||
10693 | _DSI_TA_TO_0,\ | ||
10694 | _DSI_TA_TO_1) | ||
10695 | #define TA_TIMED_OUT (1 << 16) | ||
10696 | #define TA_TIMEOUT_VALUE_MASK (0xffff << 0) | ||
10697 | #define TA_TIMEOUT_VALUE_SHIFT 0 | ||
10698 | #define TA_TIMEOUT_VALUE(x) ((x) << 0) | ||
10699 | |||
10291 | /* bits 31:0 */ | 10700 | /* bits 31:0 */ |
10292 | #define _MIPIA_DBI_BW_CTRL (dev_priv->mipi_mmio_base + 0xb084) | 10701 | #define _MIPIA_DBI_BW_CTRL (dev_priv->mipi_mmio_base + 0xb084) |
10293 | #define _MIPIC_DBI_BW_CTRL (dev_priv->mipi_mmio_base + 0xb884) | 10702 | #define _MIPIC_DBI_BW_CTRL (dev_priv->mipi_mmio_base + 0xb884) |
@@ -10400,10 +10809,6 @@ enum skl_power_gate { | |||
10400 | #define MIPI_READ_DATA_VALID(port) _MMIO_MIPI(port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID) | 10809 | #define MIPI_READ_DATA_VALID(port) _MMIO_MIPI(port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID) |
10401 | #define READ_DATA_VALID(n) (1 << (n)) | 10810 | #define READ_DATA_VALID(n) (1 << (n)) |
10402 | 10811 | ||
10403 | /* For UMS only (deprecated): */ | ||
10404 | #define _PALETTE_A (dev_priv->info.display_mmio_offset + 0xa000) | ||
10405 | #define _PALETTE_B (dev_priv->info.display_mmio_offset + 0xa800) | ||
10406 | |||
10407 | /* MOCS (Memory Object Control State) registers */ | 10812 | /* MOCS (Memory Object Control State) registers */ |
10408 | #define GEN9_LNCFCMOCS(i) _MMIO(0xb020 + (i) * 4) /* L3 Cache Control */ | 10813 | #define GEN9_LNCFCMOCS(i) _MMIO(0xb020 + (i) * 4) /* L3 Cache Control */ |
10409 | 10814 | ||
@@ -10689,6 +11094,7 @@ enum skl_power_gate { | |||
10689 | #define ICL_DSC1_PICTURE_PARAMETER_SET_16(pipe) _MMIO_PIPE((pipe) - PIPE_B, \ | 11094 | #define ICL_DSC1_PICTURE_PARAMETER_SET_16(pipe) _MMIO_PIPE((pipe) - PIPE_B, \ |
10690 | _ICL_DSC1_PICTURE_PARAMETER_SET_16_PB, \ | 11095 | _ICL_DSC1_PICTURE_PARAMETER_SET_16_PB, \ |
10691 | _ICL_DSC1_PICTURE_PARAMETER_SET_16_PC) | 11096 | _ICL_DSC1_PICTURE_PARAMETER_SET_16_PC) |
11097 | #define DSC_SLICE_ROW_PER_FRAME(slice_row_per_frame) ((slice_row_per_frame) << 20) | ||
10692 | #define DSC_SLICE_PER_LINE(slice_per_line) ((slice_per_line) << 16) | 11098 | #define DSC_SLICE_PER_LINE(slice_per_line) ((slice_per_line) << 16) |
10693 | #define DSC_SLICE_CHUNK_SIZE(slice_chunk_size) ((slice_chunk_size) << 0) | 11099 | #define DSC_SLICE_CHUNK_SIZE(slice_chunk_size) ((slice_chunk_size) << 0) |
10694 | 11100 | ||
@@ -10743,17 +11149,17 @@ enum skl_power_gate { | |||
10743 | _ICL_DSC1_RC_BUF_THRESH_1_UDW_PB, \ | 11149 | _ICL_DSC1_RC_BUF_THRESH_1_UDW_PB, \ |
10744 | _ICL_DSC1_RC_BUF_THRESH_1_UDW_PC) | 11150 | _ICL_DSC1_RC_BUF_THRESH_1_UDW_PC) |
10745 | 11151 | ||
10746 | #define PORT_TX_DFLEXDPSP _MMIO(0x1638A0) | 11152 | #define PORT_TX_DFLEXDPSP _MMIO(FIA1_BASE + 0x008A0) |
10747 | #define TC_LIVE_STATE_TBT(tc_port) (1 << ((tc_port) * 8 + 6)) | 11153 | #define TC_LIVE_STATE_TBT(tc_port) (1 << ((tc_port) * 8 + 6)) |
10748 | #define TC_LIVE_STATE_TC(tc_port) (1 << ((tc_port) * 8 + 5)) | 11154 | #define TC_LIVE_STATE_TC(tc_port) (1 << ((tc_port) * 8 + 5)) |
10749 | #define DP_LANE_ASSIGNMENT_SHIFT(tc_port) ((tc_port) * 8) | 11155 | #define DP_LANE_ASSIGNMENT_SHIFT(tc_port) ((tc_port) * 8) |
10750 | #define DP_LANE_ASSIGNMENT_MASK(tc_port) (0xf << ((tc_port) * 8)) | 11156 | #define DP_LANE_ASSIGNMENT_MASK(tc_port) (0xf << ((tc_port) * 8)) |
10751 | #define DP_LANE_ASSIGNMENT(tc_port, x) ((x) << ((tc_port) * 8)) | 11157 | #define DP_LANE_ASSIGNMENT(tc_port, x) ((x) << ((tc_port) * 8)) |
10752 | 11158 | ||
10753 | #define PORT_TX_DFLEXDPPMS _MMIO(0x163890) | 11159 | #define PORT_TX_DFLEXDPPMS _MMIO(FIA1_BASE + 0x00890) |
10754 | #define DP_PHY_MODE_STATUS_COMPLETED(tc_port) (1 << (tc_port)) | 11160 | #define DP_PHY_MODE_STATUS_COMPLETED(tc_port) (1 << (tc_port)) |
10755 | 11161 | ||
10756 | #define PORT_TX_DFLEXDPCSSS _MMIO(0x163894) | 11162 | #define PORT_TX_DFLEXDPCSSS _MMIO(FIA1_BASE + 0x00894) |
10757 | #define DP_PHY_MODE_STATUS_NOT_SAFE(tc_port) (1 << (tc_port)) | 11163 | #define DP_PHY_MODE_STATUS_NOT_SAFE(tc_port) (1 << (tc_port)) |
10758 | 11164 | ||
10759 | #endif /* _I915_REG_H_ */ | 11165 | #endif /* _I915_REG_H_ */ |