From: wsa@the-dreams.de (Wolfram Sang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/4] clk: shmobile: add CPG driver for rz-platforms
Date: Mon, 3 Mar 2014 10:19:04 +0100 [thread overview]
Message-ID: <20140303091903.GA6531@katana> (raw)
In-Reply-To: <1569751.q5lJmQcb3K@avalon>
> > drivers/clk/shmobile/Makefile | 1 +
> > drivers/clk/shmobile/clk-rz.c | 112 +++++++++++++++++++++++++++++++++++++++
>
> There's one large missing piece here: the DT bindings documentation.
Yes, noticed that, too. Added already.
> > + u32 val;
> > + unsigned mult, frqcr_tab[4] = { 3, 2, 0, 1 };
>
> I would declare the table as static const outside of this function.
Yup.
> > + if (strcmp(name, "pll") == 0) {
> > + /* FIXME: cpg_mode should be read from GPIO. But no GPIO support yet
> */
> > + unsigned cpg_mode = 0; /* hardcoded to EXTAL for now */
>
> It won't make a difference yet, but shouldn't this be moved to
> rz_cpg_clocks_init() ?
This is going to be a gpio_get_value() later and I'd prefer it in the
place where the value is needed.
>
> > + const char *parent_name = of_clk_get_parent_name(np, 0);
>
> You should select the parent depending on the mode (again it won't make any
> difference yet, but the code will be ready, and DT bindings should document
> two parents).
Two parents? Yet, CPG only needs one as input. Either XTAL or USB_X1
which is board dependent. What I should do IMO is to put the parent
property for CPG from the dtsi to the board dts. Because this is
describing hardware. And from that parent, I can simply get its name
like above.
> > + int num_clks;
> > +
> > + num_clks = of_property_count_strings(np, "clock-output-names");
> > + if (WARN(num_clks < 0, "can't count CPG clocks\n"))
>
> Do such failures really deserve a WARN ? Isn't a pr_err() enough ?
Since the system won't probably boot, I'd think so. Also, it makes the
code more concise, no?
> What if num_clks == 0 ?
Good question.
>
> > + goto out;
> > +
> > + cpg = kzalloc(sizeof(*cpg), GFP_KERNEL);
> > + if (WARN(!cpg, "out of memory!\n"))
> > + goto out;
> > +
> > + clks = kzalloc(num_clks * sizeof(*clks), GFP_KERNEL);
> > + if (WARN(!clks, "out of memory!\n"))
> > + goto free_cpg;
>
> Does kzalloc alloc warn internally when it fails to allocate memory ?
Ehrm, why don't you simply look this up instead of asking me? :)
> you could remove the error message. You could also perform the two allocations
> and check the result once only.
What is the gain? Code savings?
> > +free_clks:
> > + kfree(clks);
> > +free_cpg:
> > + kfree(cpg);
>
> I would remove that as done in the other CPG drivers, given that a small
> memory leak when the system will anyway fail to boot isn't really an issue.
Again, now that I already coded it, what is the gain to remove it? The
drawback is that other people might get encouraged to find reasons to
allow them sloppy practices.
Thanks,
Wolfram
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140303/aee9a2b4/attachment.sig>
next prev parent reply other threads:[~2014-03-03 9:19 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-28 21:09 [PATCH 0/4] CCF support for Renesas r7s72100 Wolfram Sang
2014-02-28 21:09 ` [PATCH 1/4] ARM: r7s72100: add clock nodes to dtsi Wolfram Sang
2014-02-28 21:09 ` [PATCH 2/4] ARM: r7s72100: genmai: populate extal clock node Wolfram Sang
2014-02-28 21:09 ` [PATCH 3/4] clk: shmobile: add CPG driver for rz-platforms Wolfram Sang
2014-03-02 22:15 ` Laurent Pinchart
2014-03-03 9:19 ` Wolfram Sang [this message]
2014-03-03 10:59 ` Laurent Pinchart
2014-03-03 16:27 ` Wolfram Sang
2014-03-04 11:02 ` Laurent Pinchart
2014-03-04 11:07 ` Wolfram Sang
2014-03-04 11:13 ` Laurent Pinchart
2014-03-04 11:56 ` Wolfram Sang
2014-03-05 13:54 ` Wolfram Sang
2014-03-05 13:59 ` Laurent Pinchart
2014-03-05 15:07 ` Wolfram Sang
2014-02-28 21:09 ` [PATCH 4/4] ARM: shmobile: r7s72100: use workaround for non DT-clocks Wolfram Sang
2014-03-02 22:21 ` Laurent Pinchart
2014-03-03 9:22 ` Wolfram Sang
2014-03-03 11:00 ` Laurent Pinchart
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=20140303091903.GA6531@katana \
--to=wsa@the-dreams.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).