From: Krzysztof Kozlowski <k.kozlowski@samsung.com> To: Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@codeaurora.org>, Stephen Warren <swarren@wwwdotorg.org>, Lee Jones <lee@kernel.org>, Eric Anholt <eric@anholt.net>, Florian Fainelli <f.fainelli@gmail.com>, Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, bcm-kernel-feedback-list@broadcom.com, Krzysztof Kozlowski <k.kozlowski@samsung.com>, Sylwester Nawrocki <s.nawrocki@samsung.com>, Tomasz Figa <tomasz.figa@gmail.com>, Kukjin Kim <kgene@kernel.org>, Russell King <linux@armlinux.org.uk>, Mark Brown <broonie@kernel.org>, linux-clk@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-i2c@vger.kernel.org, alsa-devel@alsa-project.org Cc: Marek Szyprowski <m.szyprowski@samsung.com>, Charles Keepax <ckeepax@opensource.wolfsonmicro.com>, Javier Martinez Canillas <javier@osg.samsung.com>, a.hajda@samsung.com, Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Subject: [RFC 12/17] ASoC: samsung: Switch to new clock controller API Date: Tue, 16 Aug 2016 15:35:09 +0200 [thread overview] Message-ID: <1471354514-24224-13-git-send-email-k.kozlowski@samsung.com> (raw) In-Reply-To: <1471354514-24224-1-git-send-email-k.kozlowski@samsung.com> Allocate a clock controller and use new clk_register_with_ctrl() API. Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> --- sound/soc/samsung/i2s.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index fa3ff03d97d5..1ec90daa4df4 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -104,6 +104,7 @@ struct i2s_dai { /* Below fields are only valid if this is the primary FIFO */ struct clk *clk_table[3]; struct clk_onecell_data clk_data; + struct clk_ctrl *clk_ctrl; }; /* Lock for cross i/f checks */ @@ -1148,6 +1149,7 @@ static void i2s_unregister_clock_provider(struct platform_device *pdev) of_clk_del_provider(pdev->dev.of_node); i2s_unregister_clocks(i2s); + clk_ctrl_unregister(i2s->clk_ctrl); } static int i2s_register_clock_provider(struct platform_device *pdev) @@ -1164,6 +1166,10 @@ static int i2s_register_clock_provider(struct platform_device *pdev) if (!of_find_property(dev->of_node, "#clock-cells", NULL)) return 0; + i2s->clk_ctrl = clk_ctrl_register(dev); + if (IS_ERR(i2s->clk_ctrl)) + return PTR_ERR(i2s->clk_ctrl); + /* Get the RCLKSRC mux clock parent clock names */ for (i = 0; i < ARRAY_SIZE(p_names); i++) { rclksrc = clk_get(dev, clk_name[i]); @@ -1179,13 +1185,14 @@ static int i2s_register_clock_provider(struct platform_device *pdev) writel(val | PSR_PSREN, i2s->addr + I2SPSR); i2s->clk_table[CLK_I2S_RCLK_SRC] = clk_register_mux(NULL, + i2s->clk_ctrl, "i2s_rclksrc", p_names, ARRAY_SIZE(p_names), CLK_SET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT, i2s->addr + I2SMOD, reg_info->rclksrc_off, 1, 0, i2s->lock); i2s->clk_table[CLK_I2S_RCLK_PSR] = clk_register_divider(NULL, - "i2s_presc", "i2s_rclksrc", + i2s->clk_ctrl, "i2s_presc", "i2s_rclksrc", CLK_SET_RATE_PARENT, i2s->addr + I2SPSR, 8, 6, 0, i2s->lock); @@ -1195,8 +1202,8 @@ static int i2s_register_clock_provider(struct platform_device *pdev) of_property_read_string_index(dev->of_node, "clock-output-names", 0, &clk_name[0]); - i2s->clk_table[CLK_I2S_CDCLK] = clk_register_gate(NULL, clk_name[0], - p_names[0], CLK_SET_RATE_PARENT, + i2s->clk_table[CLK_I2S_CDCLK] = clk_register_gate(NULL, i2s->clk_ctrl, + clk_name[0], p_names[0], CLK_SET_RATE_PARENT, i2s->addr + I2SMOD, reg_info->cdclkcon_off, CLK_GATE_SET_TO_DISABLE, i2s->lock); -- 1.9.1
WARNING: multiple messages have this Message-ID (diff)
From: k.kozlowski@samsung.com (Krzysztof Kozlowski) To: linux-arm-kernel@lists.infradead.org Subject: [RFC 12/17] ASoC: samsung: Switch to new clock controller API Date: Tue, 16 Aug 2016 15:35:09 +0200 [thread overview] Message-ID: <1471354514-24224-13-git-send-email-k.kozlowski@samsung.com> (raw) In-Reply-To: <1471354514-24224-1-git-send-email-k.kozlowski@samsung.com> Allocate a clock controller and use new clk_register_with_ctrl() API. Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> --- sound/soc/samsung/i2s.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index fa3ff03d97d5..1ec90daa4df4 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -104,6 +104,7 @@ struct i2s_dai { /* Below fields are only valid if this is the primary FIFO */ struct clk *clk_table[3]; struct clk_onecell_data clk_data; + struct clk_ctrl *clk_ctrl; }; /* Lock for cross i/f checks */ @@ -1148,6 +1149,7 @@ static void i2s_unregister_clock_provider(struct platform_device *pdev) of_clk_del_provider(pdev->dev.of_node); i2s_unregister_clocks(i2s); + clk_ctrl_unregister(i2s->clk_ctrl); } static int i2s_register_clock_provider(struct platform_device *pdev) @@ -1164,6 +1166,10 @@ static int i2s_register_clock_provider(struct platform_device *pdev) if (!of_find_property(dev->of_node, "#clock-cells", NULL)) return 0; + i2s->clk_ctrl = clk_ctrl_register(dev); + if (IS_ERR(i2s->clk_ctrl)) + return PTR_ERR(i2s->clk_ctrl); + /* Get the RCLKSRC mux clock parent clock names */ for (i = 0; i < ARRAY_SIZE(p_names); i++) { rclksrc = clk_get(dev, clk_name[i]); @@ -1179,13 +1185,14 @@ static int i2s_register_clock_provider(struct platform_device *pdev) writel(val | PSR_PSREN, i2s->addr + I2SPSR); i2s->clk_table[CLK_I2S_RCLK_SRC] = clk_register_mux(NULL, + i2s->clk_ctrl, "i2s_rclksrc", p_names, ARRAY_SIZE(p_names), CLK_SET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT, i2s->addr + I2SMOD, reg_info->rclksrc_off, 1, 0, i2s->lock); i2s->clk_table[CLK_I2S_RCLK_PSR] = clk_register_divider(NULL, - "i2s_presc", "i2s_rclksrc", + i2s->clk_ctrl, "i2s_presc", "i2s_rclksrc", CLK_SET_RATE_PARENT, i2s->addr + I2SPSR, 8, 6, 0, i2s->lock); @@ -1195,8 +1202,8 @@ static int i2s_register_clock_provider(struct platform_device *pdev) of_property_read_string_index(dev->of_node, "clock-output-names", 0, &clk_name[0]); - i2s->clk_table[CLK_I2S_CDCLK] = clk_register_gate(NULL, clk_name[0], - p_names[0], CLK_SET_RATE_PARENT, + i2s->clk_table[CLK_I2S_CDCLK] = clk_register_gate(NULL, i2s->clk_ctrl, + clk_name[0], p_names[0], CLK_SET_RATE_PARENT, i2s->addr + I2SMOD, reg_info->cdclkcon_off, CLK_GATE_SET_TO_DISABLE, i2s->lock); -- 1.9.1
next prev parent reply other threads:[~2016-08-16 13:38 UTC|newest] Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-08-16 13:34 [RFC 00/17] clk: Add per-controller locks to fix deadlocks Krzysztof Kozlowski 2016-08-16 13:34 ` Krzysztof Kozlowski 2016-08-16 13:34 ` [RFC 01/17] clk: bcm2835: Rename clk_register to avoid name conflict Krzysztof Kozlowski 2016-08-16 13:34 ` Krzysztof Kozlowski 2016-08-16 13:34 ` Krzysztof Kozlowski 2016-08-16 13:34 ` [RFC 02/17] clk: Add clock controller to fine-grain the prepare lock Krzysztof Kozlowski 2016-08-16 13:34 ` Krzysztof Kozlowski 2016-08-16 13:34 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 03/17] clk: s2mps11: Switch to new clock controller API Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 04/17] clk: samsung: Allocate a clock controller in context Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 05/17] clk: fixed-rate: Switch to new clock controller API Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 06/17] clk: gate: " Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 07/17] clk: mux: " Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 08/17] clk: fixed-factor: " Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 09/17] clk: divider: " Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 10/17] clk: composite: " Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 11/17] clk: gpio: " Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski [this message] 2016-08-16 13:35 ` [RFC 12/17] ASoC: samsung: " Krzysztof Kozlowski 2016-08-16 14:13 ` Mark Brown 2016-08-16 14:13 ` Mark Brown 2016-08-16 14:13 ` Mark Brown 2016-08-16 16:41 ` Krzysztof Kozlowski 2016-08-16 16:41 ` Krzysztof Kozlowski 2016-08-16 16:41 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 13/17] clk: samsung: audss: " Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 14/17] clk: samsung: clkout: " Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 15/17] clk: Use per-controller locking Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 16/17] Revert "i2c: exynos5: Fix possible ABBA deadlock by keeping I2C clock prepared" Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:35 ` [RFC 17/17] Revert "i2c: s3c2410: fix ABBA deadlock by keeping " Krzysztof Kozlowski 2016-08-16 13:35 ` Krzysztof Kozlowski 2016-08-16 13:51 ` [RFC 00/17] clk: Add per-controller locks to fix deadlocks Krzysztof Kozlowski 2016-08-16 13:51 ` Krzysztof Kozlowski 2016-08-19 14:46 ` Charles Keepax 2016-08-19 14:46 ` Charles Keepax 2016-08-19 14:46 ` Charles Keepax 2016-08-19 16:58 ` Krzysztof Kozlowski 2016-08-19 16:58 ` Krzysztof Kozlowski 2016-08-19 16:58 ` Krzysztof Kozlowski 2016-08-19 19:31 ` Javier Martinez Canillas 2016-08-19 19:31 ` Javier Martinez Canillas 2016-08-19 19:31 ` Javier Martinez Canillas 2016-08-20 16:03 ` Krzysztof Kozlowski 2016-08-20 16:03 ` Krzysztof Kozlowski 2016-08-20 16:03 ` Krzysztof Kozlowski 2016-09-09 0:24 ` Stephen Boyd 2016-09-09 0:24 ` Stephen Boyd 2016-09-09 0:24 ` Stephen Boyd [not found] ` <CGME20161104105318eucas1p2e9458dbe7039f2a81419fae8cf6bc4c8@eucas1p2.samsung.com> 2016-11-04 10:53 ` Marek Szyprowski 2016-11-04 10:53 ` Marek Szyprowski 2016-11-04 10:53 ` Marek Szyprowski 2016-11-12 2:38 ` Stephen Boyd 2016-11-12 2:38 ` Stephen Boyd 2016-11-12 2:38 ` Stephen Boyd
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=1471354514-24224-13-git-send-email-k.kozlowski@samsung.com \ --to=k.kozlowski@samsung.com \ --cc=a.hajda@samsung.com \ --cc=alsa-devel@alsa-project.org \ --cc=b.zolnierkie@samsung.com \ --cc=bcm-kernel-feedback-list@broadcom.com \ --cc=broonie@kernel.org \ --cc=ckeepax@opensource.wolfsonmicro.com \ --cc=eric@anholt.net \ --cc=f.fainelli@gmail.com \ --cc=javier@osg.samsung.com \ --cc=kgene@kernel.org \ --cc=lee@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-i2c@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-rpi-kernel@lists.infradead.org \ --cc=linux-samsung-soc@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=m.szyprowski@samsung.com \ --cc=mturquette@baylibre.com \ --cc=rjui@broadcom.com \ --cc=s.nawrocki@samsung.com \ --cc=sboyd@codeaurora.org \ --cc=sbranden@broadcom.com \ --cc=swarren@wwwdotorg.org \ --cc=tomasz.figa@gmail.com \ /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: linkBe 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.