From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrice CHOTARD Date: Thu, 1 Jun 2017 07:56:54 +0000 Subject: [U-Boot] [PATCH v4 04/11] clk: add clk_count() In-Reply-To: References: <1495630917-25272-1-git-send-email-patrice.chotard@st.com> <1495630917-25272-5-git-send-email-patrice.chotard@st.com> Message-ID: <38dde972-06c6-6d6c-8de3-cd8b8e668a92@st.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Simon On 06/01/2017 05:10 AM, Simon Glass wrote: > Hi Patrice, > > On 24 May 2017 at 07:01, wrote: >> From: Patrice Chotard >> >> Add clk_count() method to be able to get the number >> of clocks contained into a clock property. This will allow >> to allocate the right amount of memory in order to keep clock >> reference. These clock reference can be used later on error path >> or in .remove callback to release these clocks. >> >> Signed-off-by: Patrice Chotard >> --- >> >> v4: _ add clk_count() method >> >> drivers/clk/clk-uclass.c | 12 ++++++++++++ >> include/clk.h | 12 ++++++++++++ >> 2 files changed, 24 insertions(+) >> >> diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c >> index 6fcfd69..5c4dd19 100644 >> --- a/drivers/clk/clk-uclass.c >> +++ b/drivers/clk/clk-uclass.c >> @@ -96,8 +96,20 @@ int clk_get_by_index(struct udevice *dev, int index, struct clk *clk) >> >> return clk_request(dev_clk, clk); >> } >> + >> # endif /* OF_PLATDATA */ >> >> +int clk_count(struct udevice *dev) >> +{ >> + int count; >> + struct clk clk; >> + >> + for (count = 0; ; count++) { >> + if (clk_get_by_index(dev, count, &clk)) >> + return count; >> + } >> +} >> + >> int clk_get_by_name(struct udevice *dev, const char *name, struct clk *clk) >> { >> int index; >> diff --git a/include/clk.h b/include/clk.h >> index 5a5c2ff..801920c 100644 >> --- a/include/clk.h >> +++ b/include/clk.h >> @@ -98,6 +98,18 @@ int clk_get_by_index(struct udevice *dev, int index, struct clk *clk); >> * @return 0 if OK, or a negative error code. >> */ >> int clk_get_by_name(struct udevice *dev, const char *name, struct clk *clk); >> + >> +/** >> + * clk_count - Get clock count contained in the "clocks" property. >> + * >> + * This returns the count of clock found into the "clocks" property. This >> + * allows to allocate the right amount of memory to keep clock reference. > > Can you document here that it 'gets' each clock and the clocks should > be freed? Or do you prefer to free the clocks within the function. It don't 'gets' each clock, it just returns the number of "clocks" declared into the clocks property Patrice > >> + * >> + * @dev: The client device. >> + * @return number of clocks found. >> + */ >> +int clk_count(struct udevice *dev); >> + >> #else >> static inline int clk_get_by_index(struct udevice *dev, int index, >> struct clk *clk) >> -- >> 1.9.1 >> > > Regards, > Simon >