Hi Jacek,

On Tue, Jul 8, 2014 at 6:33 PM, Jacek Anaszewski
<j.anaszew...@samsung.com> wrote:
> fc906b6d "Remove special clock usage in driver" removed
> initialization of MFC special clock, arguing that there's
> no need to do it explicitly, since it's one of MFC gate clock's
> dependencies and gets enabled along with it. However, there's
> no promise of keeping this hierarchy across Exynos SoC
> releases, therefore this approach fails to provide a stable,
> portable solution.
>
> Out of all MFC versions, only v6 doesn't use special clock at all.
>
> Signed-off-by: Mateusz Zalega <m.zal...@samsung.com>
> Signed-off-by: Seung-Woo Kim <sw0312....@samsung.com>
> Signed-off-by: Jacek Anaszewski <j.anaszew...@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.p...@samsung.com>
> ---
>  drivers/media/platform/s5p-mfc/s5p_mfc_pm.c |   26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
>
> diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_pm.c 
> b/drivers/media/platform/s5p-mfc/s5p_mfc_pm.c
> index 11d5f1d..cc562fc 100644
> --- a/drivers/media/platform/s5p-mfc/s5p_mfc_pm.c
> +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_pm.c
> @@ -21,6 +21,8 @@
>  #include "s5p_mfc_pm.h"
>
>  #define MFC_GATE_CLK_NAME      "mfc"
> +#define MFC_CLK_NAME           "sclk-mfc"
> +#define MFC_CLK_RATE           (200 * 1000000)
>
>  #define CLK_DEBUG
>
> @@ -50,6 +52,23 @@ int s5p_mfc_init_pm(struct s5p_mfc_dev *dev)
>                 goto err_p_ip_clk;
>         }
>
> +       if (dev->variant->version != MFC_VERSION_V6) {
> +               pm->clock = clk_get(&dev->plat_dev->dev, MFC_CLK_NAME);
> +               if (IS_ERR(pm->clock)) {
> +                       mfc_err("Failed to get gating clock control\n");
> +                       ret = PTR_ERR(pm->clock);
> +                       goto err_s_clk;

Shouldn't this be err_p_ip_clk?

> +               }
> +
> +               clk_set_rate(pm->clock, MFC_CLK_RATE);
> +               ret = clk_prepare_enable(pm->clock);
> +               if (ret) {
> +                       mfc_err("Failed to enable MFC core operating 
> clock\n");
> +                       ret = PTR_ERR(pm->clock);

Why are you doing this (re-assigning)?

> +                       goto err_s_clk;
> +               }
> +       }
> +
>         atomic_set(&pm->power, 0);
>  #ifdef CONFIG_PM_RUNTIME
>         pm->device = &dev->plat_dev->dev;
> @@ -59,6 +78,9 @@ int s5p_mfc_init_pm(struct s5p_mfc_dev *dev)
>         atomic_set(&clk_ref, 0);
>  #endif
>         return 0;
> +
> +err_s_clk:
> +       clk_put(pm->clock);
>  err_p_ip_clk:
>         clk_put(pm->clock_gate);
>  err_g_ip_clk:
> @@ -67,6 +89,10 @@ err_g_ip_clk:
>
>  void s5p_mfc_final_pm(struct s5p_mfc_dev *dev)
>  {
> +       if (dev->variant->version != MFC_VERSION_V6) {
> +               clk_disable_unprepare(pm->clock);
> +               clk_put(pm->clock);
> +       }
>         clk_unprepare(pm->clock_gate);
>         clk_put(pm->clock_gate);
>  #ifdef CONFIG_PM_RUNTIME
> --
> 1.7.9.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Regards,
Sachin.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to