diff options
author | Guneshwor Singh <guneshwor.o.singh@intel.com> | 2016-08-04 15:46:03 +0530 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2016-08-09 08:53:56 +0200 |
commit | 50279d9b5facde811280afe13dd8c79f0e7b21ed (patch) | |
tree | 42bd30d815d8e3c67c4e96c41e38e083004445f8 /sound/pci/hda/hda_intel.c | |
parent | 404735c9fd8adff8e5ad11e1f9f8db069d865698 (diff) | |
download | linux-50279d9b5facde811280afe13dd8c79f0e7b21ed.tar.gz linux-50279d9b5facde811280afe13dd8c79f0e7b21ed.tar.bz2 linux-50279d9b5facde811280afe13dd8c79f0e7b21ed.zip |
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 'sound/pci/hda/hda_intel.c')
-rw-r--r-- | sound/pci/hda/hda_intel.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 89dacf9b4e6c..4786f435eb64 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -54,6 +54,7 @@ /* for snoop control */ #include <asm/pgtable.h> #include <asm/cacheflush.h> +#include <asm/cpufeature.h> #endif #include <sound/core.h> #include <sound/initval.h> @@ -1655,6 +1656,22 @@ static int azx_first_init(struct azx *chip) return -ENXIO; } + if (IS_SKL_PLUS(pci)) + snd_hdac_bus_parse_capabilities(bus); + + /* + * Some Intel CPUs has always running timer (ART) feature and + * controller may have Global time sync reporting capability, so + * check both of these before declaring synchronized time reporting + * capability SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME + */ + chip->gts_present = false; + +#ifdef CONFIG_X86 + if (bus->ppcap && boot_cpu_has(X86_FEATURE_ART)) + chip->gts_present = true; +#endif + if (chip->msi) { if (chip->driver_caps & AZX_DCAPS_NO_MSI64) { dev_dbg(card->dev, "Disabling 64bit MSI\n"); |