From: "Heiko Stübner" <heiko@sntech.de>
To: Tomasz Figa <t.figa@samsung.com>
Cc: linux-samsung-soc@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Kukjin Kim <kgene.kim@samsung.com>,
Mike Turquette <mturquette@linaro.org>,
Rahul Sharma <r.sh.open@gmail.com>,
Thomas Abraham <thomas.abraham@linaro.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Kyungmin Park <kyungmin.park@samsung.com>
Subject: Re: [PATCH v2 2/9] clk: samsung: Provide common helpers for register save/restore
Date: Fri, 07 Feb 2014 10:48:50 +0100 [thread overview]
Message-ID: <2606603.5bd5KzPH1f@phil> (raw)
In-Reply-To: <1391710616-14226-3-git-send-email-t.figa@samsung.com>
Am Donnerstag, 6. Februar 2014, 19:16:49 schrieb Tomasz Figa:
> As suspend/resume handlers are being moved to SoC specific code, due to
> differencies in suspend/resume handling of particular SoCs, to minimize
> code duplication this patch provides common register save/restore
> helpers that save/restore given list of registers of clock controller.
>
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
> ---
> drivers/clk/samsung/clk.c | 32 ++++++++++++++++++++++++++++++++
> drivers/clk/samsung/clk.h | 10 ++++++++++
> 2 files changed, 42 insertions(+)
>
> diff --git a/drivers/clk/samsung/clk.c b/drivers/clk/samsung/clk.c
> index f503f32..c0a716b 100644
> --- a/drivers/clk/samsung/clk.c
> +++ b/drivers/clk/samsung/clk.c
> @@ -22,6 +22,38 @@ static struct clk_onecell_data clk_data;
> #endif
>
> #ifdef CONFIG_PM_SLEEP
> +void samsung_clk_save(void __iomem *base,
> + struct samsung_clk_reg_dump *rd,
> + unsigned int num_regs)
> +{
> + for (; num_regs > 0; --num_regs, ++rd)
> + rd->value = readl(base + rd->offset);
> +}
> +
> +void samsung_clk_restore(void __iomem *base,
> + const struct samsung_clk_reg_dump *rd,
> + unsigned int num_regs)
> +{
> + for (; num_regs > 0; --num_regs, ++rd)
> + writel(rd->value, base + rd->offset);
> +}
> +
> +struct samsung_clk_reg_dump *samsung_clk_alloc_reg_dump(unsigned long
> *rdump, + unsigned long nr_rdump)
> +{
> + struct samsung_clk_reg_dump *rd;
> + unsigned int i;
> +
> + rd = kcalloc(nr_rdump, sizeof(*rd), GFP_KERNEL);
> + if (!rd)
> + return NULL;
> +
> + for (i = 0; i < nr_rdump; ++i)
> + rd[i].offset = rdump[i];
> +
> + return rd;
> +}
> +
> static struct samsung_clk_reg_dump *reg_dump;
> static unsigned long nr_reg_dump;
>
> diff --git a/drivers/clk/samsung/clk.h b/drivers/clk/samsung/clk.h
> index 31b4174..ec8d46b 100644
> --- a/drivers/clk/samsung/clk.h
> +++ b/drivers/clk/samsung/clk.h
> @@ -340,4 +340,14 @@ extern void __init samsung_clk_register_pll(struct
> samsung_pll_clock *pll_list,
>
> extern unsigned long _get_rate(const char *clk_name);
>
> +extern void samsung_clk_save(void __iomem *base,
> + struct samsung_clk_reg_dump *rd,
> + unsigned int num_regs);
> +extern void samsung_clk_restore(void __iomem *base,
> + const struct samsung_clk_reg_dump *rd,
> + unsigned int num_regs);
> +extern struct samsung_clk_reg_dump *samsung_clk_alloc_reg_dump(
> + unsigned long *rdump,
> + unsigned long nr_rdump);
> +
> #endif /* __SAMSUNG_CLK_H */
WARNING: multiple messages have this Message-ID (diff)
From: heiko@sntech.de (Heiko Stübner)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 2/9] clk: samsung: Provide common helpers for register save/restore
Date: Fri, 07 Feb 2014 10:48:50 +0100 [thread overview]
Message-ID: <2606603.5bd5KzPH1f@phil> (raw)
In-Reply-To: <1391710616-14226-3-git-send-email-t.figa@samsung.com>
Am Donnerstag, 6. Februar 2014, 19:16:49 schrieb Tomasz Figa:
> As suspend/resume handlers are being moved to SoC specific code, due to
> differencies in suspend/resume handling of particular SoCs, to minimize
> code duplication this patch provides common register save/restore
> helpers that save/restore given list of registers of clock controller.
>
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
> ---
> drivers/clk/samsung/clk.c | 32 ++++++++++++++++++++++++++++++++
> drivers/clk/samsung/clk.h | 10 ++++++++++
> 2 files changed, 42 insertions(+)
>
> diff --git a/drivers/clk/samsung/clk.c b/drivers/clk/samsung/clk.c
> index f503f32..c0a716b 100644
> --- a/drivers/clk/samsung/clk.c
> +++ b/drivers/clk/samsung/clk.c
> @@ -22,6 +22,38 @@ static struct clk_onecell_data clk_data;
> #endif
>
> #ifdef CONFIG_PM_SLEEP
> +void samsung_clk_save(void __iomem *base,
> + struct samsung_clk_reg_dump *rd,
> + unsigned int num_regs)
> +{
> + for (; num_regs > 0; --num_regs, ++rd)
> + rd->value = readl(base + rd->offset);
> +}
> +
> +void samsung_clk_restore(void __iomem *base,
> + const struct samsung_clk_reg_dump *rd,
> + unsigned int num_regs)
> +{
> + for (; num_regs > 0; --num_regs, ++rd)
> + writel(rd->value, base + rd->offset);
> +}
> +
> +struct samsung_clk_reg_dump *samsung_clk_alloc_reg_dump(unsigned long
> *rdump, + unsigned long nr_rdump)
> +{
> + struct samsung_clk_reg_dump *rd;
> + unsigned int i;
> +
> + rd = kcalloc(nr_rdump, sizeof(*rd), GFP_KERNEL);
> + if (!rd)
> + return NULL;
> +
> + for (i = 0; i < nr_rdump; ++i)
> + rd[i].offset = rdump[i];
> +
> + return rd;
> +}
> +
> static struct samsung_clk_reg_dump *reg_dump;
> static unsigned long nr_reg_dump;
>
> diff --git a/drivers/clk/samsung/clk.h b/drivers/clk/samsung/clk.h
> index 31b4174..ec8d46b 100644
> --- a/drivers/clk/samsung/clk.h
> +++ b/drivers/clk/samsung/clk.h
> @@ -340,4 +340,14 @@ extern void __init samsung_clk_register_pll(struct
> samsung_pll_clock *pll_list,
>
> extern unsigned long _get_rate(const char *clk_name);
>
> +extern void samsung_clk_save(void __iomem *base,
> + struct samsung_clk_reg_dump *rd,
> + unsigned int num_regs);
> +extern void samsung_clk_restore(void __iomem *base,
> + const struct samsung_clk_reg_dump *rd,
> + unsigned int num_regs);
> +extern struct samsung_clk_reg_dump *samsung_clk_alloc_reg_dump(
> + unsigned long *rdump,
> + unsigned long nr_rdump);
> +
> #endif /* __SAMSUNG_CLK_H */
next prev parent reply other threads:[~2014-02-07 9:49 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-06 18:16 [PATCH v2 0/9] Samsung PM consolidation part 1 (clocks) Tomasz Figa
2014-02-06 18:16 ` Tomasz Figa
2014-02-06 18:16 ` [PATCH v2 1/9] clk: exynos4: Remove remnants of non-DT support Tomasz Figa
2014-02-06 18:16 ` Tomasz Figa
2014-02-07 11:32 ` Sylwester Nawrocki
2014-02-07 11:32 ` Sylwester Nawrocki
2014-02-06 18:16 ` [PATCH v2 2/9] clk: samsung: Provide common helpers for register save/restore Tomasz Figa
2014-02-06 18:16 ` Tomasz Figa
2014-02-07 9:48 ` Heiko Stübner [this message]
2014-02-07 9:48 ` Heiko Stübner
2014-02-07 11:41 ` Sylwester Nawrocki
2014-02-07 11:41 ` Sylwester Nawrocki
2014-02-06 18:16 ` [PATCH v2 3/9] clk: samsung: exynos4: Move suspend/resume handling to SoC driver Tomasz Figa
2014-02-06 18:16 ` Tomasz Figa
2014-02-06 18:16 ` [PATCH v2 4/9] clk: samsung: exynos5250: " Tomasz Figa
2014-02-06 18:16 ` Tomasz Figa
2014-02-06 18:16 ` [PATCH v2 5/9] clk: samsung: exynos5420: " Tomasz Figa
2014-02-06 18:16 ` Tomasz Figa
2014-02-06 18:16 ` [PATCH v2 6/9] clk: samsung: s3c64xx: " Tomasz Figa
2014-02-06 18:16 ` Tomasz Figa
2014-02-06 18:16 ` [PATCH v2 7/9] clk: samsung: Drop old suspend/resume code Tomasz Figa
2014-02-06 18:16 ` Tomasz Figa
2014-02-07 9:50 ` Heiko Stübner
2014-02-07 9:50 ` Heiko Stübner
2014-02-13 23:07 ` Kukjin Kim
2014-02-13 23:07 ` Kukjin Kim
2014-02-06 18:16 ` [PATCH v2 8/9] clk: samsung: exynos4: Add remaining suspend/resume handling Tomasz Figa
2014-02-06 18:16 ` Tomasz Figa
2014-02-06 18:16 ` [PATCH v2 9/9] ARM: EXYNOS: pm: Drop legacy Exynos4 clock suspend/resume code Tomasz Figa
2014-02-06 18:16 ` Tomasz Figa
2014-02-07 3:45 ` [PATCH v2 0/9] Samsung PM consolidation part 1 (clocks) Thomas Abraham
2014-02-07 3:45 ` Thomas Abraham
2014-02-07 11:55 ` Sylwester Nawrocki
2014-02-07 11:55 ` Sylwester Nawrocki
2014-02-13 23:17 ` Kukjin Kim
2014-02-13 23:17 ` Kukjin Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2606603.5bd5KzPH1f@phil \
--to=heiko@sntech.de \
--cc=kgene.kim@samsung.com \
--cc=kyungmin.park@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=mturquette@linaro.org \
--cc=r.sh.open@gmail.com \
--cc=t.figa@samsung.com \
--cc=thomas.abraham@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.