| From foo@baz Mon Apr 9 17:09:24 CEST 2018 |
| From: Pardha Saradhi K <pardha.saradhi.kesapragada@intel.com> |
| Date: Tue, 2 Jan 2018 14:59:57 +0530 |
| Subject: ASoC: Intel: Skylake: Disable clock gating during firmware and library download |
| |
| From: Pardha Saradhi K <pardha.saradhi.kesapragada@intel.com> |
| |
| |
| [ Upstream commit d5cc0a1fcbb5ddbef9fdd4c4a978da3254ddbf37 ] |
| |
| During firmware and library download, sometimes it is observed that |
| firmware and library download is timed-out resulting into probe failure. |
| |
| This patch disables dynamic clock gating while firmware and library |
| download. |
| |
| Signed-off-by: Pardha Saradhi K <pardha.saradhi.kesapragada@intel.com> |
| Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com> |
| Signed-off-by: Guneshwor Singh <guneshwor.o.singh@intel.com> |
| Acked-By: Vinod Koul <vinod.koul@intel.com> |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| sound/soc/intel/skylake/skl-messages.c | 4 ++++ |
| sound/soc/intel/skylake/skl-pcm.c | 4 ++++ |
| 2 files changed, 8 insertions(+) |
| |
| --- a/sound/soc/intel/skylake/skl-messages.c |
| +++ b/sound/soc/intel/skylake/skl-messages.c |
| @@ -331,7 +331,11 @@ int skl_resume_dsp(struct skl *skl) |
| if (skl->skl_sst->is_first_boot == true) |
| return 0; |
| |
| + /* disable dynamic clock gating during fw and lib download */ |
| + ctx->enable_miscbdcge(ctx->dev, false); |
| + |
| ret = skl_dsp_wake(ctx->dsp); |
| + ctx->enable_miscbdcge(ctx->dev, true); |
| if (ret < 0) |
| return ret; |
| |
| --- a/sound/soc/intel/skylake/skl-pcm.c |
| +++ b/sound/soc/intel/skylake/skl-pcm.c |
| @@ -1191,7 +1191,11 @@ static int skl_platform_soc_probe(struct |
| return -EIO; |
| } |
| |
| + /* disable dynamic clock gating during fw and lib download */ |
| + skl->skl_sst->enable_miscbdcge(platform->dev, false); |
| + |
| ret = ops->init_fw(platform->dev, skl->skl_sst); |
| + skl->skl_sst->enable_miscbdcge(platform->dev, true); |
| if (ret < 0) { |
| dev_err(platform->dev, "Failed to boot first fw: %d\n", ret); |
| return ret; |