diff options
author | Guneshwor Singh <guneshwor.o.singh@intel.com> | 2016-08-04 06:16:03 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2016-08-09 02:53:56 -0400 |
commit | 50279d9b5facde811280afe13dd8c79f0e7b21ed (patch) | |
tree | 42bd30d815d8e3c67c4e96c41e38e083004445f8 /include/sound | |
parent | 404735c9fd8adff8e5ad11e1f9f8db069d865698 (diff) |
ALSA - hda: Add support for parsing new HDA capabilities
Skylake onwards HDA controller supports new capabilities like
Global Time Stamping (GTS) capability. So add support to parse
these new capabilities.
Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com>
Signed-off-by: Hardik T Shah <hardik.t.shah@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'include/sound')
-rw-r--r-- | include/sound/hda_register.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/include/sound/hda_register.h b/include/sound/hda_register.h index ff1aecf325e8..0013063db7f2 100644 --- a/include/sound/hda_register.h +++ b/include/sound/hda_register.h | |||
@@ -89,6 +89,19 @@ enum { SDI0, SDI1, SDI2, SDI3, SDO0, SDO1, SDO2, SDO3 }; | |||
89 | #define AZX_REG_SD_BDLPL 0x18 | 89 | #define AZX_REG_SD_BDLPL 0x18 |
90 | #define AZX_REG_SD_BDLPU 0x1c | 90 | #define AZX_REG_SD_BDLPU 0x1c |
91 | 91 | ||
92 | /* GTS registers */ | ||
93 | #define AZX_REG_LLCH 0x14 | ||
94 | |||
95 | #define AZX_REG_GTS_BASE 0x520 | ||
96 | |||
97 | #define AZX_REG_GTSCC (AZX_REG_GTS_BASE + 0x00) | ||
98 | #define AZX_REG_WALFCC (AZX_REG_GTS_BASE + 0x04) | ||
99 | #define AZX_REG_TSCCL (AZX_REG_GTS_BASE + 0x08) | ||
100 | #define AZX_REG_TSCCU (AZX_REG_GTS_BASE + 0x0C) | ||
101 | #define AZX_REG_LLPFOC (AZX_REG_GTS_BASE + 0x14) | ||
102 | #define AZX_REG_LLPCL (AZX_REG_GTS_BASE + 0x18) | ||
103 | #define AZX_REG_LLPCU (AZX_REG_GTS_BASE + 0x1C) | ||
104 | |||
92 | /* Haswell/Broadwell display HD-A controller Extended Mode registers */ | 105 | /* Haswell/Broadwell display HD-A controller Extended Mode registers */ |
93 | #define AZX_REG_HSW_EM4 0x100c | 106 | #define AZX_REG_HSW_EM4 0x100c |
94 | #define AZX_REG_HSW_EM5 0x1010 | 107 | #define AZX_REG_HSW_EM5 0x1010 |
@@ -242,6 +255,29 @@ enum { SDI0, SDI1, SDI2, SDI3, SDO0, SDO1, SDO2, SDO3 }; | |||
242 | /* Interval used to calculate the iterating register offset */ | 255 | /* Interval used to calculate the iterating register offset */ |
243 | #define AZX_DRSM_INTERVAL 0x08 | 256 | #define AZX_DRSM_INTERVAL 0x08 |
244 | 257 | ||
258 | /* Global time synchronization registers */ | ||
259 | #define GTSCC_TSCCD_MASK 0x80000000 | ||
260 | #define GTSCC_TSCCD_SHIFT BIT(31) | ||
261 | #define GTSCC_TSCCI_MASK 0x20 | ||
262 | #define GTSCC_CDMAS_DMA_DIR_SHIFT 4 | ||
263 | |||
264 | #define WALFCC_CIF_MASK 0x1FF | ||
265 | #define WALFCC_FN_SHIFT 9 | ||
266 | #define HDA_CLK_CYCLES_PER_FRAME 512 | ||
267 | |||
268 | /* | ||
269 | * An error occurs near frame "rollover". The clocks in frame value indicates | ||
270 | * whether this error may have occurred. Here we use the value of 10. Please | ||
271 | * see the errata for the right number [<10] | ||
272 | */ | ||
273 | #define HDA_MAX_CYCLE_VALUE 499 | ||
274 | #define HDA_MAX_CYCLE_OFFSET 10 | ||
275 | #define HDA_MAX_CYCLE_READ_RETRY 10 | ||
276 | |||
277 | #define TSCCU_CCU_SHIFT 32 | ||
278 | #define LLPC_CCU_SHIFT 32 | ||
279 | |||
280 | |||
245 | /* | 281 | /* |
246 | * helpers to read the stream position | 282 | * helpers to read the stream position |
247 | */ | 283 | */ |