From: Mike Turquette <mturquette-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: Vincent Yang
<vincent.yang.fujitsu-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Cc: arnd-r2nGTMty4D4@public.gmane.org,
olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org,
arm-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
pawel.moll-5wv7dgnIgG8@public.gmane.org,
mark.rutland-5wv7dgnIgG8@public.gmane.org,
ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org,
galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
andy.green-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
jaswinder.singh-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
Vincent Yang
<Vincent.Yang-l16TxrwUIHTQFUHtdCDX3A@public.gmane.org>,
Tetsuya Nuriya
<nuriya.tetsuya-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
Subject: Re: [PATCH v6 4/7] clk: Add clock driver for mb86s7x
Date: Wed, 25 Feb 2015 11:59:12 -0800 [thread overview]
Message-ID: <20150225195912.421.69267@quantum> (raw)
In-Reply-To: <1423188649-17216-1-git-send-email-Vincent.Yang-l16TxrwUIHTQFUHtdCDX3A@public.gmane.org>
Quoting Vincent Yang (2015-02-05 18:10:49)
> +static struct clk *crg11_get(struct of_phandle_args *clkspec, void *data)
> +{
> + struct mb86s70_crg11 *crg11 = data;
> + struct clk_init_data init;
> + u32 cntrlr, domain, port;
> + struct crg_clk *crgclk;
> + struct clk *clk;
> + char clkp[20];
> +
> + if (clkspec->args_count != 3)
> + return ERR_PTR(-EINVAL);
> +
> + cntrlr = clkspec->args[0];
> + domain = clkspec->args[1];
> + port = clkspec->args[2];
> +
> + if (port > 7)
> + snprintf(clkp, 20, "UngatedCLK%d_%X", cntrlr, domain);
> + else
> + snprintf(clkp, 20, "CLK%d_%X_%d", cntrlr, domain, port);
> +
> + mutex_lock(&crg11->lock);
> +
> + clk = __clk_lookup(clkp);
> + if (clk) {
> + mutex_unlock(&crg11->lock);
> + return clk;
> + }
What is the above code doing? It looks like you are checking to see if
you are trying to register a clock that is already registered. Why do
you need this?
> +
> + crgclk = kzalloc(sizeof(*crgclk), GFP_KERNEL);
> + if (!crgclk) {
> + mutex_unlock(&crg11->lock);
> + return ERR_PTR(-ENOMEM);
> + }
> +
> + init.name = clkp;
> + init.num_parents = 0;
> + init.ops = &crg_port_ops;
> + init.flags = CLK_IS_ROOT;
> + crgclk->hw.init = &init;
> + crgclk->cntrlr = cntrlr;
> + crgclk->domain = domain;
> + crgclk->port = port;
> + clk = clk_register(NULL, &crgclk->hw);
> + if (IS_ERR(clk))
> + pr_err("%s:%d Error!\n", __func__, __LINE__);
> + else
> + pr_debug("Registered %s\n", clkp);
> +
> + clk_register_clkdev(clk, clkp, NULL);
> + mutex_unlock(&crg11->lock);
> + return clk;
> +}
> +
> +static void __init crg_port_init(struct device_node *node)
> +{
> + struct mb86s70_crg11 *crg11;
> +
> + crg11 = kzalloc(sizeof(*crg11), GFP_KERNEL);
> + if (!crg11)
> + return;
> +
> + mutex_init(&crg11->lock);
> +
> + of_clk_add_provider(node, crg11_get, crg11);
> +}
> +CLK_OF_DECLARE(crg11_gate, "fujitsu,mb86s70-crg11", crg_port_init);
> +
> +struct cl_clk {
> + struct clk_hw hw;
> + int cluster;
> +};
> +
> +struct mb86s7x_cpu_freq {
> + u32 payload_size;
> + u32 cluster_class;
> + u32 cluster_id;
> + u32 cpu_id;
> + u64 freqency;
s/freqency/frequency/
> +};
> +
> +static void mhu_cluster_rate(struct clk_hw *hw, unsigned long *rate, int get)
> +{
> + struct cl_clk *clc = to_clc_clk(hw);
> + struct mb86s7x_cpu_freq cmd;
> + int code, ret;
> +
> + cmd.payload_size = sizeof(cmd);
> + cmd.cluster_class = 0;
> + cmd.cluster_id = clc->cluster;
> + cmd.cpu_id = 0;
> + cmd.freqency = *rate;
> +
> + if (get)
> + code = CMD_CPU_CLOCK_RATE_GET_REQ;
> + else
> + code = CMD_CPU_CLOCK_RATE_SET_REQ;
> +
> + pr_debug("%s:%d CMD Cl_Class-%u CL_ID-%u CPU_ID-%u Freq-%llu}\n",
> + __func__, __LINE__, cmd.cluster_class,
> + cmd.cluster_id, cmd.cpu_id, cmd.freqency);
> +
> + ret = mb86s7x_send_packet(code, &cmd, sizeof(cmd));
> + if (ret < 0) {
> + pr_err("%s:%d failed!\n", __func__, __LINE__);
> + return;
> + }
> +
> + pr_debug("%s:%d REP Cl_Class-%u CL_ID-%u CPU_ID-%u Freq-%llu}\n",
> + __func__, __LINE__, cmd.cluster_class,
> + cmd.cluster_id, cmd.cpu_id, cmd.freqency);
> +
> + *rate = cmd.freqency;
Also why is this frequency u64 when all of the uses of it are unsigned
long?
Regards,
Mike
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-02-25 19:59 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-06 2:00 [PATCH v6 0/7] Support for Fujitsu MB86S7X SoCs Vincent Yang
[not found] ` <1423188007-17047-1-git-send-email-Vincent.Yang-l16TxrwUIHTQFUHtdCDX3A@public.gmane.org>
2015-02-06 2:07 ` [PATCH v6 1/7] ARM: Add platform support " Vincent Yang
2015-02-06 2:08 ` [PATCH v6 2/7] mailbox: arm_mhu: add driver for ARM MHU controller Vincent Yang
[not found] ` <1423188528-17134-1-git-send-email-Vincent.Yang-l16TxrwUIHTQFUHtdCDX3A@public.gmane.org>
2015-02-18 10:37 ` Sudeep Holla
[not found] ` <54E46B77.4060803-5wv7dgnIgG8@public.gmane.org>
2015-02-19 16:10 ` Jassi Brar
[not found] ` <CAJe_ZhcejiQ-EJubbxJoPu8kOwB0CPpxmWJyHZcwGNRzXtbNzw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-19 17:17 ` Sudeep Holla
2015-02-06 2:10 ` [PATCH v6 4/7] clk: Add clock driver for mb86s7x Vincent Yang
[not found] ` <1423188649-17216-1-git-send-email-Vincent.Yang-l16TxrwUIHTQFUHtdCDX3A@public.gmane.org>
2015-02-25 19:59 ` Mike Turquette [this message]
2015-02-26 6:06 ` Jassi Brar
2015-02-27 1:28 ` Mike Turquette
2015-03-03 6:40 ` Jassi Brar
2015-02-06 2:13 ` [PATCH v6 5/7] dt: mb86s7x: add dt files for MB86S7x evbs Vincent Yang
2015-02-06 2:15 ` [PATCH v6 6/7] of: add Fujitsu vendor prefix Vincent Yang
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=20150225195912.421.69267@quantum \
--to=mturquette-qsej5fyqhm4dnm+yrofe0a@public.gmane.org \
--cc=Vincent.Yang-l16TxrwUIHTQFUHtdCDX3A@public.gmane.org \
--cc=andy.green-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=arm-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
--cc=jaswinder.singh-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=nuriya.tetsuya-+CUm20s59erQFUHtdCDX3A@public.gmane.org \
--cc=olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org \
--cc=patches-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=vincent.yang.fujitsu-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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).