diff options
-rw-r--r-- | drivers/sh/clk/core.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/sh/clk/core.c b/drivers/sh/clk/core.c index 6bf973bd9654..92863e3818e5 100644 --- a/drivers/sh/clk/core.c +++ b/drivers/sh/clk/core.c | |||
@@ -469,6 +469,9 @@ void clk_enable_init_clocks(void) | |||
469 | 469 | ||
470 | unsigned long clk_get_rate(struct clk *clk) | 470 | unsigned long clk_get_rate(struct clk *clk) |
471 | { | 471 | { |
472 | if (!clk) | ||
473 | return 0; | ||
474 | |||
472 | return clk->rate; | 475 | return clk->rate; |
473 | } | 476 | } |
474 | EXPORT_SYMBOL_GPL(clk_get_rate); | 477 | EXPORT_SYMBOL_GPL(clk_get_rate); |
@@ -478,6 +481,9 @@ int clk_set_rate(struct clk *clk, unsigned long rate) | |||
478 | int ret = -EOPNOTSUPP; | 481 | int ret = -EOPNOTSUPP; |
479 | unsigned long flags; | 482 | unsigned long flags; |
480 | 483 | ||
484 | if (!clk) | ||
485 | return 0; | ||
486 | |||
481 | spin_lock_irqsave(&clock_lock, flags); | 487 | spin_lock_irqsave(&clock_lock, flags); |
482 | 488 | ||
483 | if (likely(clk->ops && clk->ops->set_rate)) { | 489 | if (likely(clk->ops && clk->ops->set_rate)) { |
@@ -535,12 +541,18 @@ EXPORT_SYMBOL_GPL(clk_set_parent); | |||
535 | 541 | ||
536 | struct clk *clk_get_parent(struct clk *clk) | 542 | struct clk *clk_get_parent(struct clk *clk) |
537 | { | 543 | { |
544 | if (!clk) | ||
545 | return NULL; | ||
546 | |||
538 | return clk->parent; | 547 | return clk->parent; |
539 | } | 548 | } |
540 | EXPORT_SYMBOL_GPL(clk_get_parent); | 549 | EXPORT_SYMBOL_GPL(clk_get_parent); |
541 | 550 | ||
542 | long clk_round_rate(struct clk *clk, unsigned long rate) | 551 | long clk_round_rate(struct clk *clk, unsigned long rate) |
543 | { | 552 | { |
553 | if (!clk) | ||
554 | return 0; | ||
555 | |||
544 | if (likely(clk->ops && clk->ops->round_rate)) { | 556 | if (likely(clk->ops && clk->ops->round_rate)) { |
545 | unsigned long flags, rounded; | 557 | unsigned long flags, rounded; |
546 | 558 | ||