From: s.hauer@pengutronix.de (Sascha Hauer)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 09/13] SPEAr: clk: Add Auxiliary Synthesizer clock
Date: Tue, 17 Apr 2012 20:51:11 +0200 [thread overview]
Message-ID: <20120417185111.GH3852@pengutronix.de> (raw)
In-Reply-To: <e5ea0b5c1511fe29d1b452fb3095f4380db58455.1334660432.git.viresh.kumar@st.com>
On Tue, Apr 17, 2012 at 04:45:41PM +0530, Viresh Kumar wrote:
> All SPEAr SoC's contain Auxiliary Synthesizers. Their Fout is derived based on
> values of eq, x and y.
>
> +static unsigned long clk_aux_recalc_rate(struct clk_hw *hw,
> + unsigned long parent_rate)
> +{
> + struct clk_aux *aux = to_clk_aux(hw);
> + unsigned int num = 1, den = 1, val, eqn;
> + unsigned long flags = 0;
> +
> + if (aux->lock)
> + spin_lock_irqsave(aux->lock, flags);
> +
> + val = readl_relaxed(aux->reg);
> +
> + if (aux->lock)
> + spin_unlock_irqrestore(aux->lock, flags);
> +
A single read is atomic and needs no lock.
> +struct clk *clk_register_aux(const char *aux_name, const char *gate_name,
> + const char *parent_name, unsigned long flags, void __iomem *reg,
> + struct aux_clk_masks *masks, struct aux_rate_tbl *rtbl,
> + u8 rtbl_cnt, spinlock_t *lock, struct clk **gate_clk)
> +{
> + struct clk_aux *aux;
> + struct clk *clk, *tgate_clk;
> +
> + if (!aux_name || !gate_name || !parent_name || !reg || !rtbl ||
> + !rtbl_cnt) {
> + pr_err("Invalid arguments passed");
> + return ERR_PTR(-EINVAL);
> + }
> +
> + aux = kzalloc(sizeof(*aux), GFP_KERNEL);
> + if (!aux) {
> + pr_err("could not allocate aux clk\n");
> + return NULL;
> + }
This PTR_ERR stuff really is a pain in the ass, it's way too easy to get
it wrong. IS_ERR_OR_NULL might be a good idea, but IS_ERR is just
insane.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
next prev parent reply other threads:[~2012-04-17 18:51 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-17 11:15 [PATCH 00/13] SPEAr: Move to common clock framework Viresh Kumar
2012-04-17 11:15 ` [PATCH 01/13] CLKDEV: Add helper routines to allocate and add clkdevs for given struct clk * Viresh Kumar
2012-04-17 11:15 ` [PATCH 02/13] clk: Fix typo in comment Viresh Kumar
2012-04-18 21:04 ` Turquette, Mike
2012-04-17 11:15 ` [PATCH 03/13] " Viresh Kumar
2012-04-17 11:15 ` [PATCH 04/13] clk: clk-private: Add DEFINE_CLK macro Viresh Kumar
2012-04-18 21:01 ` Turquette, Mike
2012-04-17 11:15 ` [PATCH 05/13] clk: clk-gate: Create clk_gate_endisable() Viresh Kumar
2012-04-18 21:02 ` Turquette, Mike
2012-04-17 11:15 ` [PATCH 06/13] clk: Don't set clk->new_rate twice Viresh Kumar
2012-04-18 21:08 ` Turquette, Mike
2012-04-17 11:15 ` [PATCH 07/13] clk: clk_set_rate() must fail if CLK_SET_RATE_GATE is set and clk is enabled Viresh Kumar
2012-04-17 11:15 ` [PATCH 08/13] SPEAr: clk: Add VCO-PLL Synthesizer clock Viresh Kumar
2012-04-17 11:15 ` [PATCH 09/13] SPEAr: clk: Add Auxiliary " Viresh Kumar
2012-04-17 18:51 ` Sascha Hauer [this message]
2012-04-17 20:30 ` Arnd Bergmann
2012-04-18 20:01 ` Sascha Hauer
2012-04-17 11:15 ` [PATCH 10/13] SPEAr: clk: Add Fractional " Viresh Kumar
2012-04-17 11:15 ` [PATCH 11/13] SPEAr: clk: Add General Purpose Timer " Viresh Kumar
2012-04-17 11:15 ` [PATCH 13/13] SPEAr: Call clk_prepare() before calling clk_enable Viresh Kumar
2012-04-17 17:46 ` Sergei Shtylyov
2012-04-18 21:17 ` Turquette, Mike
[not found] ` <CAOh2x=maawrRjHhE3oGXfMOvsUbCkp9gWA_Kq-S0Dh7r6co6VA@mail.gmail.com>
2012-04-19 18:56 ` Turquette, Mike
2012-04-17 14:34 ` [PATCH 00/13] SPEAr: Move to common clock framework Arnd Bergmann
2012-04-17 14:57 ` Shawn Guo
2012-04-18 20:49 ` Turquette, Mike
2012-04-18 20:45 ` Turquette, Mike
2012-04-18 21:13 ` Sascha Hauer
2012-04-18 21:22 ` Turquette, Mike
2012-04-18 21:25 ` Turquette, Mike
[not found] ` <CAOh2x=nhZLQejWJb1Wdv=G9vU0hq+8CO0SSx95qQUJogL5ftNQ@mail.gmail.com>
2012-04-19 0:17 ` Turquette, Mike
2012-04-19 8:57 ` Arnd Bergmann
2012-04-19 9:16 ` Viresh Kumar
2012-04-19 10:53 ` Arnd Bergmann
2012-04-19 19:01 ` Turquette, Mike
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=20120417185111.GH3852@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).