mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
ASoC: tegra-alt: ASRC_INT_CLEAR_WAR config cleanup
- CONFIG_TEGRA186_ASRC_INT_CLEAR_WAR is removed. - Int clear war is disabled for platforms >= t194 as the related h/w issue is resolved with the help of compatible string match Bug 200540133 Change-Id: I48677f17278f0451c67fa2b9232b9e960bf8a34f Signed-off-by: Asha Talambedu <atalambedu@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2233940 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
Sameer Pujar
parent
7a56385cb5
commit
14ccf06582
@@ -41,10 +41,6 @@ config SND_SOC_TEGRA186_ASRC_WAR
|
|||||||
depends on SND_SOC_TEGRA186_ASRC_ALT
|
depends on SND_SOC_TEGRA186_ASRC_ALT
|
||||||
depends on SND_SOC_TEGRA186_ARAD_WAR
|
depends on SND_SOC_TEGRA186_ARAD_WAR
|
||||||
|
|
||||||
config TEGRA186_ASRC_INT_CLEAR_WAR
|
|
||||||
def_bool y
|
|
||||||
depends on SND_SOC_TEGRA186_ASRC_ALT
|
|
||||||
|
|
||||||
config SND_SOC_TEGRA_ALT
|
config SND_SOC_TEGRA_ALT
|
||||||
tristate "Alternative DAPM-based SoC audio support for the Tegra System-on-Chip"
|
tristate "Alternative DAPM-based SoC audio support for the Tegra System-on-Chip"
|
||||||
depends on ARCH_TEGRA
|
depends on ARCH_TEGRA
|
||||||
|
|||||||
@@ -192,11 +192,13 @@ static int tegra186_asrc_runtime_resume(struct device *dev)
|
|||||||
|
|
||||||
regmap_write(asrc->regmap, TEGRA186_ASRC_GLOBAL_INT_CLEAR,
|
regmap_write(asrc->regmap, TEGRA186_ASRC_GLOBAL_INT_CLEAR,
|
||||||
0x01);
|
0x01);
|
||||||
#if defined(CONFIG_TEGRA186_ASRC_INT_CLEAR_WAR)
|
/**
|
||||||
/* Hw Bug:200208400 - asrc interrupt status gets cleared when
|
* Hw Bug:200208400 - asrc interrupt status gets cleared when
|
||||||
it is cleared twice */
|
* it is cleared twice. This WAR is only applicable for T186
|
||||||
|
*/
|
||||||
|
if (of_machine_is_compatible("nvidia,tegra186-asrc"))
|
||||||
regmap_write(asrc->regmap, TEGRA186_ASRC_GLOBAL_INT_CLEAR, 0x1);
|
regmap_write(asrc->regmap, TEGRA186_ASRC_GLOBAL_INT_CLEAR, 0x1);
|
||||||
#endif
|
|
||||||
for (lane_id = 0; lane_id < 6; lane_id++) {
|
for (lane_id = 0; lane_id < 6; lane_id++) {
|
||||||
if (asrc->lane[lane_id].ratio_source == RATIO_SW) {
|
if (asrc->lane[lane_id].ratio_source == RATIO_SW) {
|
||||||
regmap_write(asrc->regmap,
|
regmap_write(asrc->regmap,
|
||||||
@@ -1059,11 +1061,14 @@ static void tegra186_asrc_ahc_cb(void *data)
|
|||||||
|
|
||||||
regcache_cache_bypass(asrc->regmap, true);
|
regcache_cache_bypass(asrc->regmap, true);
|
||||||
regmap_write(asrc->regmap, TEGRA186_ASRC_GLOBAL_INT_CLEAR, 0x1);
|
regmap_write(asrc->regmap, TEGRA186_ASRC_GLOBAL_INT_CLEAR, 0x1);
|
||||||
#if defined(CONFIG_TEGRA186_ASRC_INT_CLEAR_WAR)
|
|
||||||
/* Hw Bug:200208400 - asrc interrupt status gets cleared when
|
/**
|
||||||
it is cleared twice */
|
* Hw Bug:200208400 - asrc interrupt status gets cleared when
|
||||||
|
* it is cleared twice. This WAR is only applicable for T186
|
||||||
|
*/
|
||||||
|
if (of_machine_is_compatible("nvidia,tegra186-asrc"))
|
||||||
regmap_write(asrc->regmap, TEGRA186_ASRC_GLOBAL_INT_CLEAR, 0x1);
|
regmap_write(asrc->regmap, TEGRA186_ASRC_GLOBAL_INT_CLEAR, 0x1);
|
||||||
#endif
|
|
||||||
regmap_write(asrc->regmap, TEGRA186_ASRC_GLOBAL_ENB, 0x0);
|
regmap_write(asrc->regmap, TEGRA186_ASRC_GLOBAL_ENB, 0x0);
|
||||||
udelay(100);
|
udelay(100);
|
||||||
regmap_write(asrc->regmap, TEGRA186_ASRC_GLOBAL_ENB, 0x1);
|
regmap_write(asrc->regmap, TEGRA186_ASRC_GLOBAL_ENB, 0x1);
|
||||||
@@ -1073,6 +1078,7 @@ static void tegra186_asrc_ahc_cb(void *data)
|
|||||||
|
|
||||||
static const struct of_device_id tegra186_asrc_of_match[] = {
|
static const struct of_device_id tegra186_asrc_of_match[] = {
|
||||||
{ .compatible = "nvidia,tegra186-asrc" },
|
{ .compatible = "nvidia,tegra186-asrc" },
|
||||||
|
{ .compatible = "nvidia,tegra194-asrc" },
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
static int tegra186_asrc_platform_probe(struct platform_device *pdev)
|
static int tegra186_asrc_platform_probe(struct platform_device *pdev)
|
||||||
|
|||||||
Reference in New Issue
Block a user