[PATCH v3 8/9] ASoC: tegra: add clk_prepare/clk_unprepare

Prashant Gaikwad pgaikwad at nvidia.com
Fri Jun 8 00:54:30 EDT 2012


Hi Pankaj,

Thanks for pointing error. I will send another patch to fix the error
since this patch set is sent to multiple subsystems and I will have to
spam them for this fix.

Right now it won’t break anything since generic clock framework for
Tegra is not enabled yet. I will make sure this gets fixed before that.

Thanks & Regards,
Prashant G

On Fri, 2012-06-08 at 10:13 +0530, Pankaj Jangra wrote:
> Hi Prashant,
> 
> On Tue, Jun 5, 2012 at 9:59 AM, Prashant Gaikwad <pgaikwad at nvidia.com>
> wrote:
>         Use clk_prepare/clk_unprepare as required by the generic clk
>         framework.
>         
>         Signed-off-by: Prashant Gaikwad <pgaikwad at nvidia.com>
>         ---
>         Please ignore previous versions. Updated commit message and
>         maintainers properly in this version. No other change.
>         
>         This patch should go through Tegra tree since other patches to
>         port Tegra
>         to generic clock framework are dependent on it. Posting here
>         to get ack from
>         the maintainers.
>         
>          sound/soc/tegra/tegra20_i2s.c      |    4 ++--
>          sound/soc/tegra/tegra20_spdif.c    |    4 ++--
>          sound/soc/tegra/tegra30_ahub.c     |    8 ++++----
>          sound/soc/tegra/tegra30_i2s.c      |    4 ++--
>          sound/soc/tegra/tegra_asoc_utils.c |   12 ++++++------
>          5 files changed, 16 insertions(+), 16 deletions(-)
>         
>         diff --git a/sound/soc/tegra/tegra20_i2s.c
>         b/sound/soc/tegra/tegra20_i2s.c
>         index 0c7af63..1647dbf 100644
>         --- a/sound/soc/tegra/tegra20_i2s.c
>         +++ b/sound/soc/tegra/tegra20_i2s.c
>         @@ -62,7 +62,7 @@ static int
>         tegra20_i2s_runtime_suspend(struct device *dev)
>          {
>                struct tegra20_i2s *i2s = dev_get_drvdata(dev);
>         
>         -       clk_disable(i2s->clk_i2s);
>         +       clk_disable_unprepare(i2s->clk_i2s);
>         
>                return 0;
>          }
>         @@ -72,7 +72,7 @@ static int tegra20_i2s_runtime_resume(struct
>         device *dev)
>                struct tegra20_i2s *i2s = dev_get_drvdata(dev);
>                int ret;
>         
>         -       ret = clk_enable(i2s->clk_i2s);
>         +       ret = clk_prepare_enable(i2s->clk_i2s);
>                if (ret) {
>                        dev_err(dev, "clk_enable failed: %d\n", ret);
>                        return ret;
>         diff --git a/sound/soc/tegra/tegra20_spdif.c
>         b/sound/soc/tegra/tegra20_spdif.c
>         index f9b5741..2262e4f 100644
>         --- a/sound/soc/tegra/tegra20_spdif.c
>         +++ b/sound/soc/tegra/tegra20_spdif.c
>         @@ -54,7 +54,7 @@ static int
>         tegra20_spdif_runtime_suspend(struct device *dev)
>          {
>                struct tegra20_spdif *spdif = dev_get_drvdata(dev);
>         
>         -       clk_disable(spdif->clk_spdif_out);
>         +       clk_disable_unprepare(spdif->clk_spdif_out);
>         
>                return 0;
>          }
>         @@ -64,7 +64,7 @@ static int
>         tegra20_spdif_runtime_resume(struct device *dev)
>                struct tegra20_spdif *spdif = dev_get_drvdata(dev);
>                int ret;
>         
>         -       ret = clk_enable(spdif->clk_spdif_out);
>         +       ret = clk_prepare_enable(spdif->clk_spdif_out);
>                if (ret) {
>                        dev_err(dev, "clk_enable failed: %d\n", ret);
>                        return ret;
>         diff --git a/sound/soc/tegra/tegra30_ahub.c
>         b/sound/soc/tegra/tegra30_ahub.c
>         index 57cd419..1efb822 100644
>         --- a/sound/soc/tegra/tegra30_ahub.c
>         +++ b/sound/soc/tegra/tegra30_ahub.c
>         @@ -56,8 +56,8 @@ static int
>         tegra30_ahub_runtime_suspend(struct device *dev)
>                regcache_cache_only(ahub->regmap_apbif, true);
>                regcache_cache_only(ahub->regmap_ahub, true);
>         
>         -       clk_disable(ahub->clk_apbif);
>         -       clk_disable(ahub->clk_d_audio);
>         +       clk_disable_unprepare(ahub->clk_apbif);
>         +       clk_disable_unprepare(ahub->clk_d_audio);
>         
>                return 0;
>          }
>         @@ -77,12 +77,12 @@ static int
>         tegra30_ahub_runtime_resume(struct device *dev)
>          {
>                int ret;
>         
>         -       ret = clk_enable(ahub->clk_d_audio);
>         +       ret = clk_prepare_enable(ahub->clk_d_audio);
>                if (ret) {
>                        dev_err(dev, "clk_enable d_audio failed: %d\n",
>         ret);
>                        return ret;
>                }
>         -       ret = clk_enable(ahub->clk_apbif);
>         +       ret = clk_prepare_enable(ahub->clk_apbif);
>                if (ret) {
>                        dev_err(dev, "clk_enable apbif failed: %d\n",
>         ret);
>                        clk_disable(ahub->clk_d_audio);
>  
> Don't you need to make change here to "clk_disable_unprepare" ??
>  
>         diff --git a/sound/soc/tegra/tegra30_i2s.c
>         b/sound/soc/tegra/tegra30_i2s.c
>         index 8596032..d308faa 100644
>         --- a/sound/soc/tegra/tegra30_i2s.c
>         +++ b/sound/soc/tegra/tegra30_i2s.c
>         @@ -62,7 +62,7 @@ static int
>         tegra30_i2s_runtime_suspend(struct device *dev)
>         
>                regcache_cache_only(i2s->regmap, true);
>         
>         -       clk_disable(i2s->clk_i2s);
>         +       clk_disable_unprepare(i2s->clk_i2s);
>         
>                return 0;
>          }
>         @@ -72,7 +72,7 @@ static int tegra30_i2s_runtime_resume(struct
>         device *dev)
>                struct tegra30_i2s *i2s = dev_get_drvdata(dev);
>                int ret;
>         
>         -       ret = clk_enable(i2s->clk_i2s);
>         +       ret = clk_prepare_enable(i2s->clk_i2s);
>                if (ret) {
>                        dev_err(dev, "clk_enable failed: %d\n", ret);
>                        return ret;
>         diff --git a/sound/soc/tegra/tegra_asoc_utils.c
>         b/sound/soc/tegra/tegra_asoc_utils.c
>         index 9515ce5..6872c77 100644
>         --- a/sound/soc/tegra/tegra_asoc_utils.c
>         +++ b/sound/soc/tegra/tegra_asoc_utils.c
>         @@ -69,9 +69,9 @@ int tegra_asoc_utils_set_rate(struct
>         tegra_asoc_utils_data *data, int srate,
>                data->set_baseclock = 0;
>                data->set_mclk = 0;
>         
>         -       clk_disable(data->clk_cdev1);
>         -       clk_disable(data->clk_pll_a_out0);
>         -       clk_disable(data->clk_pll_a);
>         +       clk_disable_unprepare(data->clk_cdev1);
>         +       clk_disable_unprepare(data->clk_pll_a_out0);
>         +       clk_disable_unprepare(data->clk_pll_a);
>         
>                err = clk_set_rate(data->clk_pll_a, new_baseclock);
>                if (err) {
>         @@ -87,19 +87,19 @@ int tegra_asoc_utils_set_rate(struct
>         tegra_asoc_utils_data *data, int srate,
>         
>                /* Don't set cdev1/extern1 rate; it's locked to
>         pll_a_out0 */
>         
>         -       err = clk_enable(data->clk_pll_a);
>         +       err = clk_prepare_enable(data->clk_pll_a);
>                if (err) {
>                        dev_err(data->dev, "Can't enable pll_a: %d\n",
>         err);
>                        return err;
>                }
>         
>         -       err = clk_enable(data->clk_pll_a_out0);
>         +       err = clk_prepare_enable(data->clk_pll_a_out0);
>                if (err) {
>                        dev_err(data->dev, "Can't enable pll_a_out0: %d
>         \n", err);
>                        return err;
>                }
>         
>         -       err = clk_enable(data->clk_cdev1);
>         +       err = clk_prepare_enable(data->clk_cdev1);
>                if (err) {
>                        dev_err(data->dev, "Can't enable cdev1: %d\n",
>         err);
>                        return err;
>         --
>         1.7.4.1
>         
>         
>         _______________________________________________
>         linux-arm-kernel mailing list
>         linux-arm-kernel at lists.infradead.org
>         http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 





More information about the linux-arm-kernel mailing list