summaryrefslogtreecommitdiffstats
path: root/sound/pci/hda
diff options
context:
space:
mode:
authorMohan Kumar <mkumard@nvidia.com>2016-08-19 07:01:38 -0400
committerSameer Pujar <spujar@nvidia.com>2017-08-07 05:26:22 -0400
commit91432f1ab73f6b61fcf14fae501275517302eb45 (patch)
tree398912baff0e89534347442e879ad423e3ad8fe0 /sound/pci/hda
parente30f930b06b19f045bd7cddc12122072556bd584 (diff)
ALSA: HDA: avoid hda resets in hda driver
As hda resets will be handled during display partition power gate/ungate, avoid unnecessary call for reset in other places else SOR will lose sync with AZA controller. Bug 200216738 Bug 200215591 Change-Id: Iccd845c3aa46880c60e56f9ba926cd7e5ae75de3 Signed-off-by: Mohan Kumar <mkumard@nvidia.com> Reviewed-on: http://git-master/r/1205044 GVS: Gerrit_Virtual_Submit Reviewed-by: Diwakar Paliwal <dpaliwal@nvidia.com> Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com>
Diffstat (limited to 'sound/pci/hda')
-rw-r--r--sound/pci/hda/hda_tegra.c39
1 files changed, 0 insertions, 39 deletions
diff --git a/sound/pci/hda/hda_tegra.c b/sound/pci/hda/hda_tegra.c
index 203edce64..a5d0e357d 100644
--- a/sound/pci/hda/hda_tegra.c
+++ b/sound/pci/hda/hda_tegra.c
@@ -36,7 +36,6 @@
36#include <linux/pm_runtime.h> 36#include <linux/pm_runtime.h>
37#include <linux/tegra-powergate.h> 37#include <linux/tegra-powergate.h>
38#include <linux/tegra_pm_domains.h> 38#include <linux/tegra_pm_domains.h>
39#include <linux/reset.h>
40 39
41#include <sound/core.h> 40#include <sound/core.h>
42#include <sound/initval.h> 41#include <sound/initval.h>
@@ -90,11 +89,6 @@ struct hda_tegra {
90 int partition_id; 89 int partition_id;
91 void __iomem *regs; 90 void __iomem *regs;
92 struct work_struct probe_work; 91 struct work_struct probe_work;
93#if defined(CONFIG_COMMON_CLK)
94 struct reset_control *hda_rst;
95 struct reset_control *hda2codec_2x_rst;
96 struct reset_control *hda2hdmi_rst;
97#endif
98 bool is_power_on; 92 bool is_power_on;
99}; 93};
100 94
@@ -246,12 +240,6 @@ static int hda_tegra_enable_clocks(struct hda_tegra *hda)
246 hda->is_power_on = true; 240 hda->is_power_on = true;
247 } 241 }
248 242
249#if defined(CONFIG_COMMON_CLK)
250 reset_control_reset(hda->hda_rst);
251 reset_control_reset(hda->hda2codec_2x_rst);
252 reset_control_reset(hda->hda2hdmi_rst);
253#endif
254
255 rc = clk_prepare_enable(hda->hda_clk); 243 rc = clk_prepare_enable(hda->hda_clk);
256 if (rc) 244 if (rc)
257 return rc; 245 return rc;
@@ -417,33 +405,6 @@ static int hda_tegra_init_clk(struct azx *chip, struct platform_device *pdev)
417 struct hda_tegra *hda = container_of(chip, struct hda_tegra, chip); 405 struct hda_tegra *hda = container_of(chip, struct hda_tegra, chip);
418 struct device *dev = hda->dev; 406 struct device *dev = hda->dev;
419 407
420#if defined(CONFIG_COMMON_CLK)
421 hda->hda_rst = devm_reset_control_get(&pdev->dev, "hda_rst");
422 if (IS_ERR(hda->hda_rst)) {
423 dev_err(dev, "hda_rst reset control not found, err: %ld\n",
424 PTR_ERR(hda->hda_rst));
425 return PTR_ERR(hda->hda_rst);
426 }
427
428 hda->hda2codec_2x_rst =
429 devm_reset_control_get(&pdev->dev, "hda2codec_2x_rst");
430 if (IS_ERR(hda->hda2codec_2x_rst)) {
431 dev_err(dev,
432 "hda2codec_2x reset control not found, err: %ld\n",
433 PTR_ERR(hda->hda2codec_2x_rst));
434 return PTR_ERR(hda->hda2codec_2x_rst);
435 }
436
437 hda->hda2hdmi_rst =
438 devm_reset_control_get(&pdev->dev, "hda2hdmi_rst");
439 if (IS_ERR(hda->hda2hdmi_rst)) {
440 dev_err(dev,
441 "hda2hdmi_rst reset control not found, err: %ld\n",
442 PTR_ERR(hda->hda2hdmi_rst));
443 return PTR_ERR(hda->hda2hdmi_rst);
444 }
445#endif
446
447 hda->hda_clk = devm_clk_get(dev, "hda"); 408 hda->hda_clk = devm_clk_get(dev, "hda");
448 if (IS_ERR(hda->hda_clk)) { 409 if (IS_ERR(hda->hda_clk)) {
449 dev_err(dev, "hda clock handle not found\n"); 410 dev_err(dev, "hda clock handle not found\n");