[PATCH 5/8] clocksource: allow to have multiple device from clock source

Sascha Hauer s.hauer at pengutronix.de
Mon Feb 27 23:09:01 PST 2017


On Mon, Feb 27, 2017 at 11:19:27AM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> use the one with the most priority.
> 
> We can not select the clocksource at user level.
> 
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> ---
>  common/clock.c  | 11 +++++++++++
>  include/clock.h |  3 ++-
>  2 files changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/common/clock.c b/common/clock.c
> index 2c5dd91cc..d99d06853 100644
> --- a/common/clock.c
> +++ b/common/clock.c
> @@ -213,6 +213,17 @@ EXPORT_SYMBOL(mdelay_non_interruptible);
>  
>  int init_clock(struct clocksource *cs)
>  {
> +	if (current_clock && cs->priority < current_clock->priority)
> +		return -EBUSY;

You should return successfully here. Otherwise driver probe functions
return -EBUSY for something which is not the drivers fault. In fact,
it's not an error, it's just that we currently don't have any use for an
additional clock. Also consider testing for <= current_clock->priority
instead of <. All current clocks have priority 0 and we want to
initialize only the first one.

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 |



More information about the barebox mailing list