All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1496049309.7514.3.camel@baylibre.com>

diff --git a/a/1.txt b/N1/1.txt
index 8806d74..bcddc6e 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -7,74 +7,74 @@ On Thu, 2017-05-25 at 13:58 -0700, Michael Turquette wrote:
 > > 
 > > Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
 > > ---
-> >  drivers/clk/clk.c            | 207
+> > ?drivers/clk/clk.c????????????| 207
 > > +++++++++++++++++++++++++++++++++++++++++--
-> >  include/linux/clk-provider.h |   1 +
-> >  include/linux/clk.h          |  29 ++++++
-> >  3 files changed, 230 insertions(+), 7 deletions(-)
+> > ?include/linux/clk-provider.h |???1 +
+> > ?include/linux/clk.h??????????|??29 ++++++
+> > ?3 files changed, 230 insertions(+), 7 deletions(-)
 > > 
 > > diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
 > > index 1a8c0d013238..a0524e3bfaca 100644
 > > --- a/drivers/clk/clk.c
 > > +++ b/drivers/clk/clk.c
 > > @@ -60,6 +60,7 @@ struct clk_core {
-> >         bool                    orphan;
-> >         unsigned int            enable_count;
-> >         unsigned int            prepare_count;
-> > +       unsigned int            protect_count;
-> >         unsigned long           min_rate;
-> >         unsigned long           max_rate;
-> >         unsigned long           accuracy;
+> > ????????bool????????????????????orphan;
+> > ????????unsigned int????????????enable_count;
+> > ????????unsigned int????????????prepare_count;
+> > +???????unsigned int????????????protect_count;
+> > ????????unsigned long???????????min_rate;
+> > ????????unsigned long???????????max_rate;
+> > ????????unsigned long???????????accuracy;
 > > @@ -84,6 +85,7 @@ struct clk {
-> >         const char *con_id;
-> >         unsigned long min_rate;
-> >         unsigned long max_rate;
-> > +       unsigned long protect_count;
-> >         struct hlist_node clks_node;
-> >  };
-> >  
+> > ????????const char *con_id;
+> > ????????unsigned long min_rate;
+> > ????????unsigned long max_rate;
+> > +???????unsigned long protect_count;
+> > ????????struct hlist_node clks_node;
+> > ?};
+> > ?
 > > @@ -160,6 +162,11 @@ static bool clk_core_is_prepared(struct clk_core *core)
-> >         return core->ops->is_prepared(core->hw);
-> >  }
-> >  
+> > ????????return core->ops->is_prepared(core->hw);
+> > ?}
+> > ?
 > > +static bool clk_core_rate_is_protected(struct clk_core *core)
 > > +{
-> > +       return core->protect_count;
+> > +???????return core->protect_count;
 > > +}
 > > +
-> >  static bool clk_core_is_enabled(struct clk_core *core)
-> >  {
-> >         /*
+> > ?static bool clk_core_is_enabled(struct clk_core *core)
+> > ?{
+> > ????????/*
 > > @@ -328,6 +335,11 @@ bool clk_hw_is_prepared(const struct clk_hw *hw)
-> >         return clk_core_is_prepared(hw->core);
-> >  }
-> >  
+> > ????????return clk_core_is_prepared(hw->core);
+> > ?}
+> > ?
 > > +bool clk_hw_rate_is_protected(const struct clk_hw *hw)
 > > +{
-> > +       return clk_core_rate_is_protected(hw->core);
+> > +???????return clk_core_rate_is_protected(hw->core);
 > > +}
 > > +
-> >  bool clk_hw_is_enabled(const struct clk_hw *hw)
-> >  {
-> >         return clk_core_is_enabled(hw->core);
+> > ?bool clk_hw_is_enabled(const struct clk_hw *hw)
+> > ?{
+> > ????????return clk_core_is_enabled(hw->core);
 > > @@ -584,6 +596,102 @@ int clk_prepare(struct clk *clk)
-> >  }
-> >  EXPORT_SYMBOL_GPL(clk_prepare);
-> >  
+> > ?}
+> > ?EXPORT_SYMBOL_GPL(clk_prepare);
+> > ?
 > > +static void clk_core_rate_unprotect(struct clk_core *core)
 > > +{
-> > +       lockdep_assert_held(&prepare_lock);
+> > +???????lockdep_assert_held(&prepare_lock);
 > > +
-> > +       if (!core)
-> > +               return;
+> > +???????if (!core)
+> > +???????????????return;
 > > +
-> > +       if (WARN_ON(core->protect_count == 0))
-> > +               return;
+> > +???????if (WARN_ON(core->protect_count == 0))
+> > +???????????????return;
 > > +
-> > +       if (--core->protect_count > 0)
-> > +               return;
+> > +???????if (--core->protect_count > 0)
+> > +???????????????return;
 > > +
-> > +       clk_core_rate_unprotect(core->parent);
+> > +???????clk_core_rate_unprotect(core->parent);
 > > +}
 > > +
 > > +/**
@@ -97,37 +97,37 @@ On Thu, 2017-05-25 at 13:58 -0700, Michael Turquette wrote:
 > > + */
 > > +void clk_rate_unprotect(struct clk *clk)
 > > +{
-> > +       if (!clk)
-> > +               return;
+> > +???????if (!clk)
+> > +???????????????return;
 > > +
-> > +       clk_prepare_lock();
+> > +???????clk_prepare_lock();
 > > +
-> > +       /*
-> > +        * if there is something wrong with this consumer protect count,
+> > +???????/*
+> > +????????* if there is something wrong with this consumer protect count,
 > > stop
-> > +        * here before messing with the provider
-> > +        */
-> > +       if (WARN_ON(clk->protect_count <= 0))
-> > +               goto out;
+> > +????????* here before messing with the provider
+> > +????????*/
+> > +???????if (WARN_ON(clk->protect_count <= 0))
+> > +???????????????goto out;
 > > +
-> > +       clk_core_rate_unprotect(clk->core);
-> > +       clk->protect_count--;
+> > +???????clk_core_rate_unprotect(clk->core);
+> > +???????clk->protect_count--;
 > > +out:
-> > +       clk_prepare_unlock();
+> > +???????clk_prepare_unlock();
 > > +}
 > > +EXPORT_SYMBOL_GPL(clk_rate_unprotect);
 > > +
 > > +static void clk_core_rate_protect(struct clk_core *core)
 > > +{
-> > +       lockdep_assert_held(&prepare_lock);
+> > +???????lockdep_assert_held(&prepare_lock);
 > > +
-> > +       if (!core)
-> > +               return;
+> > +???????if (!core)
+> > +???????????????return;
 > > +
-> > +       if (core->protect_count == 0)
-> > +               clk_core_rate_protect(core->parent);
+> > +???????if (core->protect_count == 0)
+> > +???????????????clk_core_rate_protect(core->parent);
 > > +
-> > +       core->protect_count++;
+> > +???????core->protect_count++;
 > > +}
 > > +
 > > +/**
@@ -148,56 +148,56 @@ On Thu, 2017-05-25 at 13:58 -0700, Michael Turquette wrote:
 > > + */
 > > +void clk_rate_protect(struct clk *clk)
 > > +{
-> > +       if (!clk)
-> > +               return;
+> > +???????if (!clk)
+> > +???????????????return;
 > > +
-> > +       clk_prepare_lock();
-> > +       clk_core_rate_protect(clk->core);
-> > +       clk->protect_count++;
-> > +       clk_prepare_unlock();
+> > +???????clk_prepare_lock();
+> > +???????clk_core_rate_protect(clk->core);
+> > +???????clk->protect_count++;
+> > +???????clk_prepare_unlock();
 > > +}
 > > +EXPORT_SYMBOL_GPL(clk_rate_protect);
 > > +
-> >  static void clk_core_disable(struct clk_core *core)
-> >  {
-> >         lockdep_assert_held(&enable_lock);
+> > ?static void clk_core_disable(struct clk_core *core)
+> > ?{
+> > ????????lockdep_assert_held(&enable_lock);
 > > @@ -838,7 +946,15 @@ static int clk_core_determine_round(struct clk_core
 > > *core,
-> >  {
-> >         long rate;
-> >  
-> > -       if (core->ops->determine_rate) {
-> > +       /*
-> > +        * At this point, core protection will be disabled if
-> > +        * - if the provider is not protected at all
-> > +        * - if the calling consumer is the only one protecting the
-> > +        *   provider (and only once)
-> > +        */
-> > +       if (clk_core_rate_is_protected(core)) {
-> > +               req->rate = core->rate;
-> > +       } else if (core->ops->determine_rate) {
-> >                 return core->ops->determine_rate(core->hw, req);
-> >         } else if (core->ops->round_rate) {
-> >                 rate = core->ops->round_rate(core->hw, req->rate,
+> > ?{
+> > ????????long rate;
+> > ?
+> > -???????if (core->ops->determine_rate) {
+> > +???????/*
+> > +????????* At this point, core protection will be disabled if
+> > +????????* - if the provider is not protected at all
+> > +????????* - if the calling consumer is the only one protecting the
+> > +????????*???provider (and only once)
+> > +????????*/
+> > +???????if (clk_core_rate_is_protected(core)) {
+> > +???????????????req->rate = core->rate;
+> > +???????} else if (core->ops->determine_rate) {
+> > ????????????????return core->ops->determine_rate(core->hw, req);
+> > ????????} else if (core->ops->round_rate) {
+> > ????????????????rate = core->ops->round_rate(core->hw, req->rate,
 > > @@ -944,10 +1060,17 @@ long clk_round_rate(struct clk *clk, unsigned long
 > > rate)
-> >  
-> >         clk_prepare_lock();
-> >  
-> > +       if (clk->protect_count)
-> > +               clk_core_rate_unprotect(clk->core);
-> > +
-> >         clk_core_get_boundaries(clk->core, &req.min_rate, &req.max_rate);
-> >         req.rate = rate;
-> >  
-> >         ret = clk_core_round_rate_nolock(clk->core, &req);
-> > +
-> > +       if (clk->protect_count)
-> > +               clk_core_rate_protect(clk->core);
-> > +
-> >         clk_prepare_unlock();
-> >  
-> >         if (ret)
+> > ?
+> > ????????clk_prepare_lock();
+> > ?
+> > +???????if (clk->protect_count)
+> > +???????????????clk_core_rate_unprotect(clk->core);
+> > +
+> > ????????clk_core_get_boundaries(clk->core, &req.min_rate, &req.max_rate);
+> > ????????req.rate = rate;
+> > ?
+> > ????????ret = clk_core_round_rate_nolock(clk->core, &req);
+> > +
+> > +???????if (clk->protect_count)
+> > +???????????????clk_core_rate_protect(clk->core);
+> > +
+> > ????????clk_prepare_unlock();
+> > ?
+> > ????????if (ret)
 > > @@ -1575,15 +1698,24 @@ static unsigned long
 > > clk_core_req_round_rate_nolock(struct clk_core *core,
 > 
@@ -206,11 +206,11 @@ On Thu, 2017-05-25 at 13:58 -0700, Michael Turquette wrote:
 > Here is a list of round_rate and determine_rate "helpers":
 > 
 > static int clk_core_determine_round(struct clk_core *core,
->                                     struct clk_rate_request *req)
+> ????????????????????????????????????struct clk_rate_request *req)
 > (called by clk_core_round_rate_nolock and clk_calc_new_rates)
 > 
 > static int clk_core_round_rate_nolock(struct clk_core *core,
->                                       struct clk_rate_request *req)
+> ??????????????????????????????????????struct clk_rate_request *req)
 > (called in several places)
 > 
 > int __clk_determine_rate(struct clk_hw *hw, struct clk_rate_request *req)
@@ -221,24 +221,24 @@ On Thu, 2017-05-25 at 13:58 -0700, Michael Turquette wrote:
 > (used a whole lot)
 > 
 > static unsigned long clk_core_req_round_rate_nolock(struct clk_core *core,
->                                                      unsigned long req_rate)
+> ?????????????????????????????????????????????????????unsigned long req_rate)
 > (only called by clk_core_set_rate_nolock. Can we replace with one of the
 > options above? Probably clk_core_round_rate_nolock)
 
 Agreed, we could clean this a bit I suppose
 
 > 
-> >  {
-> >         int ret;
-> >         struct clk_rate_request req;
-> > +       unsigned int cnt = core->protect_count;
-> >  
-> >         if (!core)
-> >                 return 0;
-> >  
-> > +       /* simulate what the rate would be if it could be freely set */
-> > +       while (core->protect_count)
-> > +               clk_core_rate_unprotect(core);
+> > ?{
+> > ????????int ret;
+> > ????????struct clk_rate_request req;
+> > +???????unsigned int cnt = core->protect_count;
+> > ?
+> > ????????if (!core)
+> > ????????????????return 0;
+> > ?
+> > +???????/* simulate what the rate would be if it could be freely set */
+> > +???????while (core->protect_count)
+> > +???????????????clk_core_rate_unprotect(core);
 > 
 > Gross. Why do this here and not in similar functions like
 > clk_core_round_rate_nolock?
@@ -248,7 +248,7 @@ When a provider is protected, all you are going to get from round_rate is the
 current rate - which is the expected result.
 
 At this point, we are trying to figure out if the request of the consumer would
-require the provider to change its settings, whether it is protected or not. 
+require the provider to change its settings, whether it is protected or not.?
 
 In order to get that, we need to unroll the protection applied to this provider
 along the tree. This why I needed a specific helper, otherwise there is no
@@ -259,26 +259,26 @@ constraints on the clock tree and it is fine.
 
 > 
 > > +
-> >         clk_core_get_boundaries(core, &req.min_rate, &req.max_rate);
-> >         req.rate = req_rate;
-> >  
-> >         ret = clk_core_round_rate_nolock(core, &req);
-> >  
-> > +       /* restore the protection */
-> > +       while (core->protect_count < cnt)
-> > +               clk_core_rate_protect(core);
-> > +
-> >         return ret ? 0 : req.rate;
-> >  }
-> >  
+> > ????????clk_core_get_boundaries(core, &req.min_rate, &req.max_rate);
+> > ????????req.rate = req_rate;
+> > ?
+> > ????????ret = clk_core_round_rate_nolock(core, &req);
+> > ?
+> > +???????/* restore the protection */
+> > +???????while (core->protect_count < cnt)
+> > +???????????????clk_core_rate_protect(core);
+> > +
+> > ????????return ret ? 0 : req.rate;
+> > ?}
+> > ?
 > > @@ -1602,6 +1734,10 @@ static int clk_core_set_rate_nolock(struct clk_core
 > > *core,
-> >         if (rate == clk_core_get_rate_nolock(core))
-> >                 return 0;
-> >  
-> > +       /* fail on a direct rate set of a protected provider */
-> > +       if (clk_core_rate_is_protected(core))
-> > +               return -EBUSY;
+> > ????????if (rate == clk_core_get_rate_nolock(core))
+> > ????????????????return 0;
+> > ?
+> > +???????/* fail on a direct rate set of a protected provider */
+> > +???????if (clk_core_rate_is_protected(core))
+> > +???????????????return -EBUSY;
 > 
 > Again, why bother unrolling the protected clocks in
 > clk_core_req_round_rate_nolock if any protection will cause the
@@ -286,7 +286,7 @@ constraints on the clock tree and it is fine.
 
 If we don't unroll the protection on a protected clock:
 (round_rate(requested_rate) == clk_core_get_rate_nolock(core)) would always be
-true and we would never get to this check. 
+true and we would never get to this check.?
 
 We should get to this point only if the request requires a change of the
 settings. If the clock is protected, we should tell the consumer its request
@@ -315,214 +315,214 @@ view, I think this is more coherent.
 > Mike
 > 
 > > +
-> >         if ((core->flags & CLK_SET_RATE_GATE) && core->prepare_count)
-> >                 return -EBUSY;
-> >  
+> > ????????if ((core->flags & CLK_SET_RATE_GATE) && core->prepare_count)
+> > ????????????????return -EBUSY;
+> > ?
 > > @@ -1658,8 +1794,14 @@ int clk_set_rate(struct clk *clk, unsigned long rate)
-> >         /* prevent racing with updates to the clock topology */
-> >         clk_prepare_lock();
-> >  
-> > +       if (clk->protect_count)
-> > +               clk_core_rate_unprotect(clk->core);
-> > +
-> >         ret = clk_core_set_rate_nolock(clk->core, rate);
-> >  
-> > +       if (clk->protect_count)
-> > +               clk_core_rate_protect(clk->core);
-> > +
-> >         clk_prepare_unlock();
-> >  
-> >         return ret;
+> > ????????/* prevent racing with updates to the clock topology */
+> > ????????clk_prepare_lock();
+> > ?
+> > +???????if (clk->protect_count)
+> > +???????????????clk_core_rate_unprotect(clk->core);
+> > +
+> > ????????ret = clk_core_set_rate_nolock(clk->core, rate);
+> > ?
+> > +???????if (clk->protect_count)
+> > +???????????????clk_core_rate_protect(clk->core);
+> > +
+> > ????????clk_prepare_unlock();
+> > ?
+> > ????????return ret;
 > > @@ -1690,12 +1832,18 @@ int clk_set_rate_range(struct clk *clk, unsigned
 > > long min, unsigned long max)
-> >  
-> >         clk_prepare_lock();
-> >  
-> > +       if (clk->protect_count)
-> > +               clk_core_rate_unprotect(clk->core);
-> > +
-> >         if (min != clk->min_rate || max != clk->max_rate) {
-> >                 clk->min_rate = min;
-> >                 clk->max_rate = max;
-> >                 ret = clk_core_set_rate_nolock(clk->core, clk->core-
+> > ?
+> > ????????clk_prepare_lock();
+> > ?
+> > +???????if (clk->protect_count)
+> > +???????????????clk_core_rate_unprotect(clk->core);
+> > +
+> > ????????if (min != clk->min_rate || max != clk->max_rate) {
+> > ????????????????clk->min_rate = min;
+> > ????????????????clk->max_rate = max;
+> > ????????????????ret = clk_core_set_rate_nolock(clk->core, clk->core-
 > > >req_rate);
-> >         }
-> >  
-> > +       if (clk->protect_count)
-> > +               clk_core_rate_protect(clk->core);
-> > +
-> >         clk_prepare_unlock();
-> >  
-> >         return ret;
+> > ????????}
+> > ?
+> > +???????if (clk->protect_count)
+> > +???????????????clk_core_rate_protect(clk->core);
+> > +
+> > ????????clk_prepare_unlock();
+> > ?
+> > ????????return ret;
 > > @@ -1837,6 +1985,9 @@ static int clk_core_set_parent_nolock(struct clk_core
 > > *core,
-> >         if ((core->flags & CLK_SET_PARENT_GATE) && core->prepare_count)
-> >                 return -EBUSY;
-> >  
-> > +       if (clk_core_rate_is_protected(core))
-> > +               return -EBUSY;
-> > +
-> >         /* try finding the new parent index */
-> >         if (parent) {
-> >                 p_index = clk_fetch_parent_index(core, parent);
+> > ????????if ((core->flags & CLK_SET_PARENT_GATE) && core->prepare_count)
+> > ????????????????return -EBUSY;
+> > ?
+> > +???????if (clk_core_rate_is_protected(core))
+> > +???????????????return -EBUSY;
+> > +
+> > ????????/* try finding the new parent index */
+> > ????????if (parent) {
+> > ????????????????p_index = clk_fetch_parent_index(core, parent);
 > > @@ -1894,8 +2045,16 @@ int clk_set_parent(struct clk *clk, struct clk
 > > *parent)
-> >                 return 0;
-> >  
-> >         clk_prepare_lock();
+> > ????????????????return 0;
+> > ?
+> > ????????clk_prepare_lock();
 > > +
-> > +       if (clk->protect_count)
-> > +               clk_core_rate_unprotect(clk->core);
+> > +???????if (clk->protect_count)
+> > +???????????????clk_core_rate_unprotect(clk->core);
 > > +
-> >         ret = clk_core_set_parent_nolock(clk->core,
-> >                                          parent ? parent->core : NULL);
+> > ????????ret = clk_core_set_parent_nolock(clk->core,
+> > ?????????????????????????????????????????parent ? parent->core : NULL);
 > > +
-> > +       if (clk->protect_count)
-> > +               clk_core_rate_protect(clk->core);
+> > +???????if (clk->protect_count)
+> > +???????????????clk_core_rate_protect(clk->core);
 > > +
-> >         clk_prepare_unlock();
-> >  
-> >         return ret;
+> > ????????clk_prepare_unlock();
+> > ?
+> > ????????return ret;
 > > @@ -1909,7 +2068,10 @@ static int clk_core_set_phase_nolock(struct clk_core
 > > *core, int degrees)
-> >         if (!core)
-> >                 return 0;
-> >  
-> > -       trace_clk_set_phase(clk->core, degrees);
-> > +       if (clk_core_rate_is_protected(core))
-> > +               return -EBUSY;
-> > +
-> > +       trace_clk_set_phase(core, degrees);
-> >  
-> >         if (core->ops->set_phase)
-> >                 ret = core->ops->set_phase(core->hw, degrees);
+> > ????????if (!core)
+> > ????????????????return 0;
+> > ?
+> > -???????trace_clk_set_phase(clk->core, degrees);
+> > +???????if (clk_core_rate_is_protected(core))
+> > +???????????????return -EBUSY;
+> > +
+> > +???????trace_clk_set_phase(core, degrees);
+> > ?
+> > ????????if (core->ops->set_phase)
+> > ????????????????ret = core->ops->set_phase(core->hw, degrees);
 > > @@ -1952,7 +2114,15 @@ int clk_set_phase(struct clk *clk, int degrees)
-> >                 degrees += 360;
-> >  
-> >         clk_prepare_lock();
+> > ????????????????degrees += 360;
+> > ?
+> > ????????clk_prepare_lock();
 > > +
-> > +       if (clk->protect_count)
-> > +               clk_core_rate_unprotect(clk->core);
+> > +???????if (clk->protect_count)
+> > +???????????????clk_core_rate_unprotect(clk->core);
 > > +
-> >         ret = clk_core_set_phase_nolock(clk->core, degrees);
+> > ????????ret = clk_core_set_phase_nolock(clk->core, degrees);
 > > +
-> > +       if (clk->protect_count)
-> > +               clk_core_rate_protect(clk->core);
+> > +???????if (clk->protect_count)
+> > +???????????????clk_core_rate_protect(clk->core);
 > > +
-> >         clk_prepare_unlock();
-> >  
-> >         return ret;
+> > ????????clk_prepare_unlock();
+> > ?
+> > ????????return ret;
 > > @@ -2039,11 +2209,12 @@ static void clk_summary_show_one(struct seq_file *s,
 > > struct clk_core *c,
-> >         if (!c)
-> >                 return;
-> >  
-> > -       seq_printf(s, "%*s%-*s %11d %12d %11lu %10lu %-3d\n",
-> > +       seq_printf(s, "%*s%-*s %11d %12d %12d %11lu %10lu %-3d\n",
-> >                    level * 3 + 1, "",
-> >                    30 - level * 3, c->name,
-> > -                  c->enable_count, c->prepare_count, clk_core_get_rate(c),
-> > -                  clk_core_get_accuracy(c), clk_core_get_phase(c));
-> > +                  c->enable_count, c->prepare_count, c->protect_count,
-> > +                  clk_core_get_rate(c), clk_core_get_accuracy(c),
-> > +                  clk_core_get_phase(c));
-> >  }
-> >  
-> >  static void clk_summary_show_subtree(struct seq_file *s, struct clk_core
+> > ????????if (!c)
+> > ????????????????return;
+> > ?
+> > -???????seq_printf(s, "%*s%-*s %11d %12d %11lu %10lu %-3d\n",
+> > +???????seq_printf(s, "%*s%-*s %11d %12d %12d %11lu %10lu %-3d\n",
+> > ???????????????????level * 3 + 1, "",
+> > ???????????????????30 - level * 3, c->name,
+> > -??????????????????c->enable_count, c->prepare_count, clk_core_get_rate(c),
+> > -??????????????????clk_core_get_accuracy(c), clk_core_get_phase(c));
+> > +??????????????????c->enable_count, c->prepare_count, c->protect_count,
+> > +??????????????????clk_core_get_rate(c), clk_core_get_accuracy(c),
+> > +??????????????????clk_core_get_phase(c));
+> > ?}
+> > ?
+> > ?static void clk_summary_show_subtree(struct seq_file *s, struct clk_core
 > > *c,
 > > @@ -2065,8 +2236,8 @@ static int clk_summary_show(struct seq_file *s, void
 > > *data)
-> >         struct clk_core *c;
-> >         struct hlist_head **lists = (struct hlist_head **)s->private;
-> >  
-> > -       seq_puts(s,
-> > "   clock                         enable_cnt  prepare_cnt        rate   accu
-> > racy   phase\n");
-> > -       seq_puts(s, "-------------------------------------------------------
+> > ????????struct clk_core *c;
+> > ????????struct hlist_head **lists = (struct hlist_head **)s->private;
+> > ?
+> > -???????seq_puts(s,
+> > "???clock?????????????????????????enable_cnt??prepare_cnt????????rate???accu
+> > racy???phase\n");
+> > -???????seq_puts(s, "-------------------------------------------------------
 > > ---------------------------------\n");
-> > +       seq_puts(s,
-> > "   clock                         enable_cnt  prepare_cnt  protect_cnt      
-> >   rate   accuracy   phase\n");
-> > +       seq_puts(s, "-------------------------------------------------------
+> > +???????seq_puts(s,
+> > "???clock?????????????????????????enable_cnt??prepare_cnt??protect_cnt??????
+> > ??rate???accuracy???phase\n");
+> > +???????seq_puts(s, "-------------------------------------------------------
 > > ---------------------------------------------\n");
-> >  
-> >         clk_prepare_lock();
-> >  
+> > ?
+> > ????????clk_prepare_lock();
+> > ?
 > > @@ -2101,6 +2272,7 @@ static void clk_dump_one(struct seq_file *s, struct
 > > clk_core *c, int level)
-> >         seq_printf(s, "\"%s\": { ", c->name);
-> >         seq_printf(s, "\"enable_count\": %d,", c->enable_count);
-> >         seq_printf(s, "\"prepare_count\": %d,", c->prepare_count);
-> > +       seq_printf(s, "\"protect_count\": %d,", c->protect_count);
-> >         seq_printf(s, "\"rate\": %lu,", clk_core_get_rate(c));
-> >         seq_printf(s, "\"accuracy\": %lu,", clk_core_get_accuracy(c));
-> >         seq_printf(s, "\"phase\": %d", clk_core_get_phase(c));
+> > ????????seq_printf(s, "\"%s\": { ", c->name);
+> > ????????seq_printf(s, "\"enable_count\": %d,", c->enable_count);
+> > ????????seq_printf(s, "\"prepare_count\": %d,", c->prepare_count);
+> > +???????seq_printf(s, "\"protect_count\": %d,", c->protect_count);
+> > ????????seq_printf(s, "\"rate\": %lu,", clk_core_get_rate(c));
+> > ????????seq_printf(s, "\"accuracy\": %lu,", clk_core_get_accuracy(c));
+> > ????????seq_printf(s, "\"phase\": %d", clk_core_get_phase(c));
 > > @@ -2231,6 +2403,11 @@ static int clk_debug_create_one(struct clk_core
 > > *core, struct dentry *pdentry)
-> >         if (!d)
-> >                 goto err_out;
-> >  
-> > +       d = debugfs_create_u32("clk_protect_count", S_IRUGO, core->dentry,
-> > +                       (u32 *)&core->protect_count);
-> > +       if (!d)
-> > +               goto err_out;
-> > +
-> >         d = debugfs_create_u32("clk_notifier_count", S_IRUGO, core->dentry,
-> >                         (u32 *)&core->notifier_count);
-> >         if (!d)
+> > ????????if (!d)
+> > ????????????????goto err_out;
+> > ?
+> > +???????d = debugfs_create_u32("clk_protect_count", S_IRUGO, core->dentry,
+> > +???????????????????????(u32 *)&core->protect_count);
+> > +???????if (!d)
+> > +???????????????goto err_out;
+> > +
+> > ????????d = debugfs_create_u32("clk_notifier_count", S_IRUGO, core->dentry,
+> > ????????????????????????(u32 *)&core->notifier_count);
+> > ????????if (!d)
 > > @@ -2794,6 +2971,11 @@ void clk_unregister(struct clk *clk)
-> >         if (clk->core->prepare_count)
-> >                 pr_warn("%s: unregistering prepared clock: %s\n",
-> >                                         __func__, clk->core->name);
+> > ????????if (clk->core->prepare_count)
+> > ????????????????pr_warn("%s: unregistering prepared clock: %s\n",
+> > ????????????????????????????????????????__func__, clk->core->name);
 > > +
-> > +       if (clk->core->protect_count)
-> > +               pr_warn("%s: unregistering protected clock: %s\n",
-> > +                                       __func__, clk->core->name);
+> > +???????if (clk->core->protect_count)
+> > +???????????????pr_warn("%s: unregistering protected clock: %s\n",
+> > +???????????????????????????????????????__func__, clk->core->name);
 > > +
-> >         kref_put(&clk->core->ref, __clk_release);
-> >  unlock:
-> >         clk_prepare_unlock();
+> > ????????kref_put(&clk->core->ref, __clk_release);
+> > ?unlock:
+> > ????????clk_prepare_unlock();
 > > @@ -2952,6 +3134,17 @@ void __clk_put(struct clk *clk)
-> >  
-> >         clk_prepare_lock();
-> >  
-> > +       /*
-> > +        * Before calling clk_put, all calls to clk_rate_protect from a
+> > ?
+> > ????????clk_prepare_lock();
+> > ?
+> > +???????/*
+> > +????????* Before calling clk_put, all calls to clk_rate_protect from a
 > > given
-> > +        * user must be balanced with calls to clk_rate_unprotect and by
+> > +????????* user must be balanced with calls to clk_rate_unprotect and by
 > > that
-> > +        * same user
-> > +        */
-> > +       WARN_ON(clk->protect_count);
+> > +????????* same user
+> > +????????*/
+> > +???????WARN_ON(clk->protect_count);
 > > +
-> > +       /* We voiced our concern, let's sanitize the situation */
-> > +       for (; clk->protect_count; clk->protect_count--)
-> > +               clk_core_rate_unprotect(clk->core);
+> > +???????/* We voiced our concern, let's sanitize the situation */
+> > +???????for (; clk->protect_count; clk->protect_count--)
+> > +???????????????clk_core_rate_unprotect(clk->core);
 > > +
-> >         hlist_del(&clk->clks_node);
-> >         if (clk->min_rate > clk->core->req_rate ||
-> >             clk->max_rate < clk->core->req_rate)
+> > ????????hlist_del(&clk->clks_node);
+> > ????????if (clk->min_rate > clk->core->req_rate ||
+> > ????????????clk->max_rate < clk->core->req_rate)
 > > diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
 > > index a428aec36ace..ebd7df5f375f 100644
 > > --- a/include/linux/clk-provider.h
 > > +++ b/include/linux/clk-provider.h
 > > @@ -739,6 +739,7 @@ unsigned long clk_hw_get_rate(const struct clk_hw *hw);
-> >  unsigned long __clk_get_flags(struct clk *clk);
-> >  unsigned long clk_hw_get_flags(const struct clk_hw *hw);
-> >  bool clk_hw_is_prepared(const struct clk_hw *hw);
+> > ?unsigned long __clk_get_flags(struct clk *clk);
+> > ?unsigned long clk_hw_get_flags(const struct clk_hw *hw);
+> > ?bool clk_hw_is_prepared(const struct clk_hw *hw);
 > > +bool clk_hw_rate_is_protected(const struct clk_hw *hw);
-> >  bool clk_hw_is_enabled(const struct clk_hw *hw);
-> >  bool __clk_is_enabled(struct clk *clk);
-> >  struct clk *__clk_lookup(const char *name);
+> > ?bool clk_hw_is_enabled(const struct clk_hw *hw);
+> > ?bool __clk_is_enabled(struct clk *clk);
+> > ?struct clk *__clk_lookup(const char *name);
 > > diff --git a/include/linux/clk.h b/include/linux/clk.h
 > > index 024cd07870d0..85d73e02df40 100644
 > > --- a/include/linux/clk.h
 > > +++ b/include/linux/clk.h
 > > @@ -265,6 +265,30 @@ struct clk *devm_clk_get(struct device *dev, const char
 > > *id);
-> >   */
-> >  struct clk *devm_get_clk_from_child(struct device *dev,
-> >                                     struct device_node *np, const char
+> > ? */
+> > ?struct clk *devm_get_clk_from_child(struct device *dev,
+> > ????????????????????????????????????struct device_node *np, const char
 > > *con_id);
 > > +/**
 > > + * clk_rate_protect - inform the system when the clock rate must be
@@ -553,25 +553,25 @@ view, I think this is more coherent.
 > > + * Must not be called from within atomic context.
 > > + */
 > > +void clk_rate_unprotect(struct clk *clk);
-> >  
-> >  /**
-> >   * clk_enable - inform the system when the clock source should be running.
+> > ?
+> > ?/**
+> > ? * clk_enable - inform the system when the clock source should be running.
 > > @@ -460,6 +484,11 @@ static inline void clk_put(struct clk *clk) {}
-> >  
-> >  static inline void devm_clk_put(struct device *dev, struct clk *clk) {}
-> >  
+> > ?
+> > ?static inline void devm_clk_put(struct device *dev, struct clk *clk) {}
+> > ?
 > > +
 > > +static inline void clk_protect(struct clk *clk) {}
 > > +
 > > +static inline void clk_unprotect(struct clk *clk) {}
 > > +
-> >  static inline int clk_enable(struct clk *clk)
-> >  {
-> >         return 0;
-> > -- 
+> > ?static inline int clk_enable(struct clk *clk)
+> > ?{
+> > ????????return 0;
+> > --?
 > > 2.9.4
 > > 
 > > --
 > > To unsubscribe from this list: send the line "unsubscribe linux-clk" in
-> > the body of a message to majordomo@vger.kernel.org
-> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
\ No newline at end of file
+> > the body of a message to majordomo at vger.kernel.org
+> > More majordomo info at??http://vger.kernel.org/majordomo-info.html
\ No newline at end of file
diff --git a/a/content_digest b/N1/content_digest
index 6440276..65d398a 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -8,25 +8,16 @@
   "ref\000149574593212.52617.14333843834487739920\@resonance\0"
 ]
 [
-  "From\0Jerome Brunet <jbrunet\@baylibre.com>\0"
+  "From\0jbrunet\@baylibre.com (Jerome Brunet)\0"
 ]
 [
-  "Subject\0Re: [PATCH v2 05/11] clk: add support for clock protection\0"
+  "Subject\0[PATCH v2 05/11] clk: add support for clock protection\0"
 ]
 [
   "Date\0Mon, 29 May 2017 11:15:09 +0200\0"
 ]
 [
-  "To\0Michael Turquette <mturquette\@baylibre.com>",
-  " Stephen Boyd <sboyd\@codeaurora.org>",
-  " Kevin Hilman <khilman\@baylibre.com>\0"
-]
-[
-  "Cc\0linux-clk\@vger.kernel.org",
-  " linux-amlogic\@lists.infradead.org",
-  " Russell King <linux\@armlinux.org.uk>",
-  " Linus Walleij <linus.walleij\@linaro.org>",
-  " Boris Brezillon <boris.brezillon\@free-electrons.com>\0"
+  "To\0linus-amlogic\@lists.infradead.org\0"
 ]
 [
   "\0000:1\0"
@@ -44,74 +35,74 @@
   "> > \n",
   "> > Signed-off-by: Jerome Brunet <jbrunet\@baylibre.com>\n",
   "> > ---\n",
-  "> > \302\240drivers/clk/clk.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 207\n",
+  "> > ?drivers/clk/clk.c????????????| 207\n",
   "> > +++++++++++++++++++++++++++++++++++++++++--\n",
-  "> > \302\240include/linux/clk-provider.h |\302\240\302\240\302\2401 +\n",
-  "> > \302\240include/linux/clk.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\24029 ++++++\n",
-  "> > \302\2403 files changed, 230 insertions(+), 7 deletions(-)\n",
+  "> > ?include/linux/clk-provider.h |???1 +\n",
+  "> > ?include/linux/clk.h??????????|??29 ++++++\n",
+  "> > ?3 files changed, 230 insertions(+), 7 deletions(-)\n",
   "> > \n",
   "> > diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c\n",
   "> > index 1a8c0d013238..a0524e3bfaca 100644\n",
   "> > --- a/drivers/clk/clk.c\n",
   "> > +++ b/drivers/clk/clk.c\n",
   "> > \@\@ -60,6 +60,7 \@\@ struct clk_core {\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240bool\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240orphan;\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned int\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240enable_count;\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned int\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240prepare_count;\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned int\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240protect_count;\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned long\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240min_rate;\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned long\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240max_rate;\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned long\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240accuracy;\n",
+  "> > ????????bool????????????????????orphan;\n",
+  "> > ????????unsigned int????????????enable_count;\n",
+  "> > ????????unsigned int????????????prepare_count;\n",
+  "> > +???????unsigned int????????????protect_count;\n",
+  "> > ????????unsigned long???????????min_rate;\n",
+  "> > ????????unsigned long???????????max_rate;\n",
+  "> > ????????unsigned long???????????accuracy;\n",
   "> > \@\@ -84,6 +85,7 \@\@ struct clk {\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240const char *con_id;\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned long min_rate;\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned long max_rate;\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned long protect_count;\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240struct hlist_node clks_node;\n",
-  "> > \302\240};\n",
-  "> > \302\240\n",
+  "> > ????????const char *con_id;\n",
+  "> > ????????unsigned long min_rate;\n",
+  "> > ????????unsigned long max_rate;\n",
+  "> > +???????unsigned long protect_count;\n",
+  "> > ????????struct hlist_node clks_node;\n",
+  "> > ?};\n",
+  "> > ?\n",
   "> > \@\@ -160,6 +162,11 \@\@ static bool clk_core_is_prepared(struct clk_core *core)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return core->ops->is_prepared(core->hw);\n",
-  "> > \302\240}\n",
-  "> > \302\240\n",
+  "> > ????????return core->ops->is_prepared(core->hw);\n",
+  "> > ?}\n",
+  "> > ?\n",
   "> > +static bool clk_core_rate_is_protected(struct clk_core *core)\n",
   "> > +{\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240return core->protect_count;\n",
+  "> > +???????return core->protect_count;\n",
   "> > +}\n",
   "> > +\n",
-  "> > \302\240static bool clk_core_is_enabled(struct clk_core *core)\n",
-  "> > \302\240{\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240/*\n",
+  "> > ?static bool clk_core_is_enabled(struct clk_core *core)\n",
+  "> > ?{\n",
+  "> > ????????/*\n",
   "> > \@\@ -328,6 +335,11 \@\@ bool clk_hw_is_prepared(const struct clk_hw *hw)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return clk_core_is_prepared(hw->core);\n",
-  "> > \302\240}\n",
-  "> > \302\240\n",
+  "> > ????????return clk_core_is_prepared(hw->core);\n",
+  "> > ?}\n",
+  "> > ?\n",
   "> > +bool clk_hw_rate_is_protected(const struct clk_hw *hw)\n",
   "> > +{\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240return clk_core_rate_is_protected(hw->core);\n",
+  "> > +???????return clk_core_rate_is_protected(hw->core);\n",
   "> > +}\n",
   "> > +\n",
-  "> > \302\240bool clk_hw_is_enabled(const struct clk_hw *hw)\n",
-  "> > \302\240{\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return clk_core_is_enabled(hw->core);\n",
+  "> > ?bool clk_hw_is_enabled(const struct clk_hw *hw)\n",
+  "> > ?{\n",
+  "> > ????????return clk_core_is_enabled(hw->core);\n",
   "> > \@\@ -584,6 +596,102 \@\@ int clk_prepare(struct clk *clk)\n",
-  "> > \302\240}\n",
-  "> > \302\240EXPORT_SYMBOL_GPL(clk_prepare);\n",
-  "> > \302\240\n",
+  "> > ?}\n",
+  "> > ?EXPORT_SYMBOL_GPL(clk_prepare);\n",
+  "> > ?\n",
   "> > +static void clk_core_rate_unprotect(struct clk_core *core)\n",
   "> > +{\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240lockdep_assert_held(&prepare_lock);\n",
+  "> > +???????lockdep_assert_held(&prepare_lock);\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!core)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return;\n",
+  "> > +???????if (!core)\n",
+  "> > +???????????????return;\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (WARN_ON(core->protect_count == 0))\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return;\n",
+  "> > +???????if (WARN_ON(core->protect_count == 0))\n",
+  "> > +???????????????return;\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (--core->protect_count > 0)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return;\n",
+  "> > +???????if (--core->protect_count > 0)\n",
+  "> > +???????????????return;\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_unprotect(core->parent);\n",
+  "> > +???????clk_core_rate_unprotect(core->parent);\n",
   "> > +}\n",
   "> > +\n",
   "> > +/**\n",
@@ -134,37 +125,37 @@
   "> > + */\n",
   "> > +void clk_rate_unprotect(struct clk *clk)\n",
   "> > +{\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!clk)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return;\n",
+  "> > +???????if (!clk)\n",
+  "> > +???????????????return;\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_lock();\n",
+  "> > +???????clk_prepare_lock();\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240/*\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240* if there is something wrong with this consumer protect count,\n",
+  "> > +???????/*\n",
+  "> > +????????* if there is something wrong with this consumer protect count,\n",
   "> > stop\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240* here before messing with the provider\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240*/\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (WARN_ON(clk->protect_count <= 0))\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240goto out;\n",
+  "> > +????????* here before messing with the provider\n",
+  "> > +????????*/\n",
+  "> > +???????if (WARN_ON(clk->protect_count <= 0))\n",
+  "> > +???????????????goto out;\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_unprotect(clk->core);\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk->protect_count--;\n",
+  "> > +???????clk_core_rate_unprotect(clk->core);\n",
+  "> > +???????clk->protect_count--;\n",
   "> > +out:\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_unlock();\n",
+  "> > +???????clk_prepare_unlock();\n",
   "> > +}\n",
   "> > +EXPORT_SYMBOL_GPL(clk_rate_unprotect);\n",
   "> > +\n",
   "> > +static void clk_core_rate_protect(struct clk_core *core)\n",
   "> > +{\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240lockdep_assert_held(&prepare_lock);\n",
+  "> > +???????lockdep_assert_held(&prepare_lock);\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!core)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return;\n",
+  "> > +???????if (!core)\n",
+  "> > +???????????????return;\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (core->protect_count == 0)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_protect(core->parent);\n",
+  "> > +???????if (core->protect_count == 0)\n",
+  "> > +???????????????clk_core_rate_protect(core->parent);\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240core->protect_count++;\n",
+  "> > +???????core->protect_count++;\n",
   "> > +}\n",
   "> > +\n",
   "> > +/**\n",
@@ -185,56 +176,56 @@
   "> > + */\n",
   "> > +void clk_rate_protect(struct clk *clk)\n",
   "> > +{\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!clk)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return;\n",
+  "> > +???????if (!clk)\n",
+  "> > +???????????????return;\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_lock();\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_protect(clk->core);\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk->protect_count++;\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_unlock();\n",
+  "> > +???????clk_prepare_lock();\n",
+  "> > +???????clk_core_rate_protect(clk->core);\n",
+  "> > +???????clk->protect_count++;\n",
+  "> > +???????clk_prepare_unlock();\n",
   "> > +}\n",
   "> > +EXPORT_SYMBOL_GPL(clk_rate_protect);\n",
   "> > +\n",
-  "> > \302\240static void clk_core_disable(struct clk_core *core)\n",
-  "> > \302\240{\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240lockdep_assert_held(&enable_lock);\n",
+  "> > ?static void clk_core_disable(struct clk_core *core)\n",
+  "> > ?{\n",
+  "> > ????????lockdep_assert_held(&enable_lock);\n",
   "> > \@\@ -838,7 +946,15 \@\@ static int clk_core_determine_round(struct clk_core\n",
   "> > *core,\n",
-  "> > \302\240{\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240long rate;\n",
-  "> > \302\240\n",
-  "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (core->ops->determine_rate) {\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240/*\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240* At this point, core protection will be disabled if\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240* - if the provider is not protected at all\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240* - if the calling consumer is the only one protecting the\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240*\302\240\302\240\302\240provider (and only once)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240*/\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk_core_rate_is_protected(core)) {\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240req->rate = core->rate;\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240} else if (core->ops->determine_rate) {\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return core->ops->determine_rate(core->hw, req);\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240} else if (core->ops->round_rate) {\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240rate = core->ops->round_rate(core->hw, req->rate,\n",
+  "> > ?{\n",
+  "> > ????????long rate;\n",
+  "> > ?\n",
+  "> > -???????if (core->ops->determine_rate) {\n",
+  "> > +???????/*\n",
+  "> > +????????* At this point, core protection will be disabled if\n",
+  "> > +????????* - if the provider is not protected at all\n",
+  "> > +????????* - if the calling consumer is the only one protecting the\n",
+  "> > +????????*???provider (and only once)\n",
+  "> > +????????*/\n",
+  "> > +???????if (clk_core_rate_is_protected(core)) {\n",
+  "> > +???????????????req->rate = core->rate;\n",
+  "> > +???????} else if (core->ops->determine_rate) {\n",
+  "> > ????????????????return core->ops->determine_rate(core->hw, req);\n",
+  "> > ????????} else if (core->ops->round_rate) {\n",
+  "> > ????????????????rate = core->ops->round_rate(core->hw, req->rate,\n",
   "> > \@\@ -944,10 +1060,17 \@\@ long clk_round_rate(struct clk *clk, unsigned long\n",
   "> > rate)\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_lock();\n",
-  "> > \302\240\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->protect_count)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_unprotect(clk->core);\n",
-  "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_get_boundaries(clk->core, &req.min_rate, &req.max_rate);\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240req.rate = rate;\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = clk_core_round_rate_nolock(clk->core, &req);\n",
-  "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->protect_count)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_protect(clk->core);\n",
-  "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_unlock();\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (ret)\n",
+  "> > ?\n",
+  "> > ????????clk_prepare_lock();\n",
+  "> > ?\n",
+  "> > +???????if (clk->protect_count)\n",
+  "> > +???????????????clk_core_rate_unprotect(clk->core);\n",
+  "> > +\n",
+  "> > ????????clk_core_get_boundaries(clk->core, &req.min_rate, &req.max_rate);\n",
+  "> > ????????req.rate = rate;\n",
+  "> > ?\n",
+  "> > ????????ret = clk_core_round_rate_nolock(clk->core, &req);\n",
+  "> > +\n",
+  "> > +???????if (clk->protect_count)\n",
+  "> > +???????????????clk_core_rate_protect(clk->core);\n",
+  "> > +\n",
+  "> > ????????clk_prepare_unlock();\n",
+  "> > ?\n",
+  "> > ????????if (ret)\n",
   "> > \@\@ -1575,15 +1698,24 \@\@ static unsigned long\n",
   "> > clk_core_req_round_rate_nolock(struct clk_core *core,\n",
   "> \n",
@@ -243,11 +234,11 @@
   "> Here is a list of round_rate and determine_rate \"helpers\":\n",
   "> \n",
   "> static int clk_core_determine_round(struct clk_core *core,\n",
-  "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240struct clk_rate_request *req)\n",
+  "> ????????????????????????????????????struct clk_rate_request *req)\n",
   "> (called by clk_core_round_rate_nolock and clk_calc_new_rates)\n",
   "> \n",
   "> static int clk_core_round_rate_nolock(struct clk_core *core,\n",
-  "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240struct clk_rate_request *req)\n",
+  "> ??????????????????????????????????????struct clk_rate_request *req)\n",
   "> (called in several places)\n",
   "> \n",
   "> int __clk_determine_rate(struct clk_hw *hw, struct clk_rate_request *req)\n",
@@ -258,24 +249,24 @@
   "> (used a whole lot)\n",
   "> \n",
   "> static unsigned long clk_core_req_round_rate_nolock(struct clk_core *core,\n",
-  "> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned long req_rate)\n",
+  "> ?????????????????????????????????????????????????????unsigned long req_rate)\n",
   "> (only called by clk_core_set_rate_nolock. Can we replace with one of the\n",
   "> options above? Probably clk_core_round_rate_nolock)\n",
   "\n",
   "Agreed, we could clean this a bit I suppose\n",
   "\n",
   "> \n",
-  "> > \302\240{\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240int ret;\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240struct clk_rate_request req;\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned int cnt = core->protect_count;\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!core)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return 0;\n",
-  "> > \302\240\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* simulate what the rate would be if it could be freely set */\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240while (core->protect_count)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_unprotect(core);\n",
+  "> > ?{\n",
+  "> > ????????int ret;\n",
+  "> > ????????struct clk_rate_request req;\n",
+  "> > +???????unsigned int cnt = core->protect_count;\n",
+  "> > ?\n",
+  "> > ????????if (!core)\n",
+  "> > ????????????????return 0;\n",
+  "> > ?\n",
+  "> > +???????/* simulate what the rate would be if it could be freely set */\n",
+  "> > +???????while (core->protect_count)\n",
+  "> > +???????????????clk_core_rate_unprotect(core);\n",
   "> \n",
   "> Gross. Why do this here and not in similar functions like\n",
   "> clk_core_round_rate_nolock?\n",
@@ -285,7 +276,7 @@
   "current rate - which is the expected result.\n",
   "\n",
   "At this point, we are trying to figure out if the request of the consumer would\n",
-  "require the provider to change its settings, whether it is protected or not.\302\240\n",
+  "require the provider to change its settings, whether it is protected or not.?\n",
   "\n",
   "In order to get that, we need to unroll the protection applied to this provider\n",
   "along the tree. This why I needed a specific helper, otherwise there is no\n",
@@ -296,26 +287,26 @@
   "\n",
   "> \n",
   "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_get_boundaries(core, &req.min_rate, &req.max_rate);\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240req.rate = req_rate;\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = clk_core_round_rate_nolock(core, &req);\n",
-  "> > \302\240\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* restore the protection */\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240while (core->protect_count < cnt)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_protect(core);\n",
-  "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return ret ? 0 : req.rate;\n",
-  "> > \302\240}\n",
-  "> > \302\240\n",
+  "> > ????????clk_core_get_boundaries(core, &req.min_rate, &req.max_rate);\n",
+  "> > ????????req.rate = req_rate;\n",
+  "> > ?\n",
+  "> > ????????ret = clk_core_round_rate_nolock(core, &req);\n",
+  "> > ?\n",
+  "> > +???????/* restore the protection */\n",
+  "> > +???????while (core->protect_count < cnt)\n",
+  "> > +???????????????clk_core_rate_protect(core);\n",
+  "> > +\n",
+  "> > ????????return ret ? 0 : req.rate;\n",
+  "> > ?}\n",
+  "> > ?\n",
   "> > \@\@ -1602,6 +1734,10 \@\@ static int clk_core_set_rate_nolock(struct clk_core\n",
   "> > *core,\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (rate == clk_core_get_rate_nolock(core))\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return 0;\n",
-  "> > \302\240\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* fail on a direct rate set of a protected provider */\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk_core_rate_is_protected(core))\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return -EBUSY;\n",
+  "> > ????????if (rate == clk_core_get_rate_nolock(core))\n",
+  "> > ????????????????return 0;\n",
+  "> > ?\n",
+  "> > +???????/* fail on a direct rate set of a protected provider */\n",
+  "> > +???????if (clk_core_rate_is_protected(core))\n",
+  "> > +???????????????return -EBUSY;\n",
   "> \n",
   "> Again, why bother unrolling the protected clocks in\n",
   "> clk_core_req_round_rate_nolock if any protection will cause the\n",
@@ -323,7 +314,7 @@
   "\n",
   "If we don't unroll the protection on a protected clock:\n",
   "(round_rate(requested_rate) == clk_core_get_rate_nolock(core)) would always be\n",
-  "true and we would never get to this check.\302\240\n",
+  "true and we would never get to this check.?\n",
   "\n",
   "We should get to this point only if the request requires a change of the\n",
   "settings. If the clock is protected, we should tell the consumer its request\n",
@@ -352,214 +343,214 @@
   "> Mike\n",
   "> \n",
   "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if ((core->flags & CLK_SET_RATE_GATE) && core->prepare_count)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return -EBUSY;\n",
-  "> > \302\240\n",
+  "> > ????????if ((core->flags & CLK_SET_RATE_GATE) && core->prepare_count)\n",
+  "> > ????????????????return -EBUSY;\n",
+  "> > ?\n",
   "> > \@\@ -1658,8 +1794,14 \@\@ int clk_set_rate(struct clk *clk, unsigned long rate)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* prevent racing with updates to the clock topology */\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_lock();\n",
-  "> > \302\240\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->protect_count)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_unprotect(clk->core);\n",
-  "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = clk_core_set_rate_nolock(clk->core, rate);\n",
-  "> > \302\240\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->protect_count)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_protect(clk->core);\n",
-  "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_unlock();\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return ret;\n",
+  "> > ????????/* prevent racing with updates to the clock topology */\n",
+  "> > ????????clk_prepare_lock();\n",
+  "> > ?\n",
+  "> > +???????if (clk->protect_count)\n",
+  "> > +???????????????clk_core_rate_unprotect(clk->core);\n",
+  "> > +\n",
+  "> > ????????ret = clk_core_set_rate_nolock(clk->core, rate);\n",
+  "> > ?\n",
+  "> > +???????if (clk->protect_count)\n",
+  "> > +???????????????clk_core_rate_protect(clk->core);\n",
+  "> > +\n",
+  "> > ????????clk_prepare_unlock();\n",
+  "> > ?\n",
+  "> > ????????return ret;\n",
   "> > \@\@ -1690,12 +1832,18 \@\@ int clk_set_rate_range(struct clk *clk, unsigned\n",
   "> > long min, unsigned long max)\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_lock();\n",
-  "> > \302\240\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->protect_count)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_unprotect(clk->core);\n",
-  "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (min != clk->min_rate || max != clk->max_rate) {\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk->min_rate = min;\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk->max_rate = max;\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = clk_core_set_rate_nolock(clk->core, clk->core-\n",
+  "> > ?\n",
+  "> > ????????clk_prepare_lock();\n",
+  "> > ?\n",
+  "> > +???????if (clk->protect_count)\n",
+  "> > +???????????????clk_core_rate_unprotect(clk->core);\n",
+  "> > +\n",
+  "> > ????????if (min != clk->min_rate || max != clk->max_rate) {\n",
+  "> > ????????????????clk->min_rate = min;\n",
+  "> > ????????????????clk->max_rate = max;\n",
+  "> > ????????????????ret = clk_core_set_rate_nolock(clk->core, clk->core-\n",
   "> > >req_rate);\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240}\n",
-  "> > \302\240\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->protect_count)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_protect(clk->core);\n",
-  "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_unlock();\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return ret;\n",
+  "> > ????????}\n",
+  "> > ?\n",
+  "> > +???????if (clk->protect_count)\n",
+  "> > +???????????????clk_core_rate_protect(clk->core);\n",
+  "> > +\n",
+  "> > ????????clk_prepare_unlock();\n",
+  "> > ?\n",
+  "> > ????????return ret;\n",
   "> > \@\@ -1837,6 +1985,9 \@\@ static int clk_core_set_parent_nolock(struct clk_core\n",
   "> > *core,\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if ((core->flags & CLK_SET_PARENT_GATE) && core->prepare_count)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return -EBUSY;\n",
-  "> > \302\240\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk_core_rate_is_protected(core))\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return -EBUSY;\n",
-  "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* try finding the new parent index */\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (parent) {\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240p_index = clk_fetch_parent_index(core, parent);\n",
+  "> > ????????if ((core->flags & CLK_SET_PARENT_GATE) && core->prepare_count)\n",
+  "> > ????????????????return -EBUSY;\n",
+  "> > ?\n",
+  "> > +???????if (clk_core_rate_is_protected(core))\n",
+  "> > +???????????????return -EBUSY;\n",
+  "> > +\n",
+  "> > ????????/* try finding the new parent index */\n",
+  "> > ????????if (parent) {\n",
+  "> > ????????????????p_index = clk_fetch_parent_index(core, parent);\n",
   "> > \@\@ -1894,8 +2045,16 \@\@ int clk_set_parent(struct clk *clk, struct clk\n",
   "> > *parent)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return 0;\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_lock();\n",
+  "> > ????????????????return 0;\n",
+  "> > ?\n",
+  "> > ????????clk_prepare_lock();\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->protect_count)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_unprotect(clk->core);\n",
+  "> > +???????if (clk->protect_count)\n",
+  "> > +???????????????clk_core_rate_unprotect(clk->core);\n",
   "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = clk_core_set_parent_nolock(clk->core,\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240parent ? parent->core : NULL);\n",
+  "> > ????????ret = clk_core_set_parent_nolock(clk->core,\n",
+  "> > ?????????????????????????????????????????parent ? parent->core : NULL);\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->protect_count)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_protect(clk->core);\n",
+  "> > +???????if (clk->protect_count)\n",
+  "> > +???????????????clk_core_rate_protect(clk->core);\n",
   "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_unlock();\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return ret;\n",
+  "> > ????????clk_prepare_unlock();\n",
+  "> > ?\n",
+  "> > ????????return ret;\n",
   "> > \@\@ -1909,7 +2068,10 \@\@ static int clk_core_set_phase_nolock(struct clk_core\n",
   "> > *core, int degrees)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!core)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return 0;\n",
-  "> > \302\240\n",
-  "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240trace_clk_set_phase(clk->core, degrees);\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk_core_rate_is_protected(core))\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return -EBUSY;\n",
-  "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240trace_clk_set_phase(core, degrees);\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (core->ops->set_phase)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = core->ops->set_phase(core->hw, degrees);\n",
+  "> > ????????if (!core)\n",
+  "> > ????????????????return 0;\n",
+  "> > ?\n",
+  "> > -???????trace_clk_set_phase(clk->core, degrees);\n",
+  "> > +???????if (clk_core_rate_is_protected(core))\n",
+  "> > +???????????????return -EBUSY;\n",
+  "> > +\n",
+  "> > +???????trace_clk_set_phase(core, degrees);\n",
+  "> > ?\n",
+  "> > ????????if (core->ops->set_phase)\n",
+  "> > ????????????????ret = core->ops->set_phase(core->hw, degrees);\n",
   "> > \@\@ -1952,7 +2114,15 \@\@ int clk_set_phase(struct clk *clk, int degrees)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240degrees += 360;\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_lock();\n",
+  "> > ????????????????degrees += 360;\n",
+  "> > ?\n",
+  "> > ????????clk_prepare_lock();\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->protect_count)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_unprotect(clk->core);\n",
+  "> > +???????if (clk->protect_count)\n",
+  "> > +???????????????clk_core_rate_unprotect(clk->core);\n",
   "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240ret = clk_core_set_phase_nolock(clk->core, degrees);\n",
+  "> > ????????ret = clk_core_set_phase_nolock(clk->core, degrees);\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->protect_count)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_protect(clk->core);\n",
+  "> > +???????if (clk->protect_count)\n",
+  "> > +???????????????clk_core_rate_protect(clk->core);\n",
   "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_unlock();\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return ret;\n",
+  "> > ????????clk_prepare_unlock();\n",
+  "> > ?\n",
+  "> > ????????return ret;\n",
   "> > \@\@ -2039,11 +2209,12 \@\@ static void clk_summary_show_one(struct seq_file *s,\n",
   "> > struct clk_core *c,\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!c)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return;\n",
-  "> > \302\240\n",
-  "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_printf(s, \"%*s%-*s %11d %12d %11lu %10lu %-3d\\n\",\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_printf(s, \"%*s%-*s %11d %12d %12d %11lu %10lu %-3d\\n\",\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240level * 3 + 1, \"\",\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\24030 - level * 3, c->name,\n",
-  "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240c->enable_count, c->prepare_count, clk_core_get_rate(c),\n",
-  "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_get_accuracy(c), clk_core_get_phase(c));\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240c->enable_count, c->prepare_count, c->protect_count,\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_get_rate(c), clk_core_get_accuracy(c),\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_get_phase(c));\n",
-  "> > \302\240}\n",
-  "> > \302\240\n",
-  "> > \302\240static void clk_summary_show_subtree(struct seq_file *s, struct clk_core\n",
+  "> > ????????if (!c)\n",
+  "> > ????????????????return;\n",
+  "> > ?\n",
+  "> > -???????seq_printf(s, \"%*s%-*s %11d %12d %11lu %10lu %-3d\\n\",\n",
+  "> > +???????seq_printf(s, \"%*s%-*s %11d %12d %12d %11lu %10lu %-3d\\n\",\n",
+  "> > ???????????????????level * 3 + 1, \"\",\n",
+  "> > ???????????????????30 - level * 3, c->name,\n",
+  "> > -??????????????????c->enable_count, c->prepare_count, clk_core_get_rate(c),\n",
+  "> > -??????????????????clk_core_get_accuracy(c), clk_core_get_phase(c));\n",
+  "> > +??????????????????c->enable_count, c->prepare_count, c->protect_count,\n",
+  "> > +??????????????????clk_core_get_rate(c), clk_core_get_accuracy(c),\n",
+  "> > +??????????????????clk_core_get_phase(c));\n",
+  "> > ?}\n",
+  "> > ?\n",
+  "> > ?static void clk_summary_show_subtree(struct seq_file *s, struct clk_core\n",
   "> > *c,\n",
   "> > \@\@ -2065,8 +2236,8 \@\@ static int clk_summary_show(struct seq_file *s, void\n",
   "> > *data)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240struct clk_core *c;\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240struct hlist_head **lists = (struct hlist_head **)s->private;\n",
-  "> > \302\240\n",
-  "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_puts(s,\n",
-  "> > \"\302\240\302\240\302\240clock\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240enable_cnt\302\240\302\240prepare_cnt\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240rate\302\240\302\240\302\240accu\n",
-  "> > racy\302\240\302\240\302\240phase\\n\");\n",
-  "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_puts(s, \"-------------------------------------------------------\n",
+  "> > ????????struct clk_core *c;\n",
+  "> > ????????struct hlist_head **lists = (struct hlist_head **)s->private;\n",
+  "> > ?\n",
+  "> > -???????seq_puts(s,\n",
+  "> > \"???clock?????????????????????????enable_cnt??prepare_cnt????????rate???accu\n",
+  "> > racy???phase\\n\");\n",
+  "> > -???????seq_puts(s, \"-------------------------------------------------------\n",
   "> > ---------------------------------\\n\");\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_puts(s,\n",
-  "> > \"\302\240\302\240\302\240clock\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240enable_cnt\302\240\302\240prepare_cnt\302\240\302\240protect_cnt\302\240\302\240\302\240\302\240\302\240\302\240\n",
-  "> > \302\240\302\240rate\302\240\302\240\302\240accuracy\302\240\302\240\302\240phase\\n\");\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_puts(s, \"-------------------------------------------------------\n",
+  "> > +???????seq_puts(s,\n",
+  "> > \"???clock?????????????????????????enable_cnt??prepare_cnt??protect_cnt??????\n",
+  "> > ??rate???accuracy???phase\\n\");\n",
+  "> > +???????seq_puts(s, \"-------------------------------------------------------\n",
   "> > ---------------------------------------------\\n\");\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_lock();\n",
-  "> > \302\240\n",
+  "> > ?\n",
+  "> > ????????clk_prepare_lock();\n",
+  "> > ?\n",
   "> > \@\@ -2101,6 +2272,7 \@\@ static void clk_dump_one(struct seq_file *s, struct\n",
   "> > clk_core *c, int level)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_printf(s, \"\\\"%s\\\": { \", c->name);\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_printf(s, \"\\\"enable_count\\\": %d,\", c->enable_count);\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_printf(s, \"\\\"prepare_count\\\": %d,\", c->prepare_count);\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_printf(s, \"\\\"protect_count\\\": %d,\", c->protect_count);\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_printf(s, \"\\\"rate\\\": %lu,\", clk_core_get_rate(c));\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_printf(s, \"\\\"accuracy\\\": %lu,\", clk_core_get_accuracy(c));\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240seq_printf(s, \"\\\"phase\\\": %d\", clk_core_get_phase(c));\n",
+  "> > ????????seq_printf(s, \"\\\"%s\\\": { \", c->name);\n",
+  "> > ????????seq_printf(s, \"\\\"enable_count\\\": %d,\", c->enable_count);\n",
+  "> > ????????seq_printf(s, \"\\\"prepare_count\\\": %d,\", c->prepare_count);\n",
+  "> > +???????seq_printf(s, \"\\\"protect_count\\\": %d,\", c->protect_count);\n",
+  "> > ????????seq_printf(s, \"\\\"rate\\\": %lu,\", clk_core_get_rate(c));\n",
+  "> > ????????seq_printf(s, \"\\\"accuracy\\\": %lu,\", clk_core_get_accuracy(c));\n",
+  "> > ????????seq_printf(s, \"\\\"phase\\\": %d\", clk_core_get_phase(c));\n",
   "> > \@\@ -2231,6 +2403,11 \@\@ static int clk_debug_create_one(struct clk_core\n",
   "> > *core, struct dentry *pdentry)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!d)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240goto err_out;\n",
-  "> > \302\240\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240d = debugfs_create_u32(\"clk_protect_count\", S_IRUGO, core->dentry,\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240(u32 *)&core->protect_count);\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!d)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240goto err_out;\n",
-  "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240d = debugfs_create_u32(\"clk_notifier_count\", S_IRUGO, core->dentry,\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240(u32 *)&core->notifier_count);\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!d)\n",
+  "> > ????????if (!d)\n",
+  "> > ????????????????goto err_out;\n",
+  "> > ?\n",
+  "> > +???????d = debugfs_create_u32(\"clk_protect_count\", S_IRUGO, core->dentry,\n",
+  "> > +???????????????????????(u32 *)&core->protect_count);\n",
+  "> > +???????if (!d)\n",
+  "> > +???????????????goto err_out;\n",
+  "> > +\n",
+  "> > ????????d = debugfs_create_u32(\"clk_notifier_count\", S_IRUGO, core->dentry,\n",
+  "> > ????????????????????????(u32 *)&core->notifier_count);\n",
+  "> > ????????if (!d)\n",
   "> > \@\@ -2794,6 +2971,11 \@\@ void clk_unregister(struct clk *clk)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->core->prepare_count)\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240pr_warn(\"%s: unregistering prepared clock: %s\\n\",\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240__func__, clk->core->name);\n",
+  "> > ????????if (clk->core->prepare_count)\n",
+  "> > ????????????????pr_warn(\"%s: unregistering prepared clock: %s\\n\",\n",
+  "> > ????????????????????????????????????????__func__, clk->core->name);\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->core->protect_count)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240pr_warn(\"%s: unregistering protected clock: %s\\n\",\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240__func__, clk->core->name);\n",
+  "> > +???????if (clk->core->protect_count)\n",
+  "> > +???????????????pr_warn(\"%s: unregistering protected clock: %s\\n\",\n",
+  "> > +???????????????????????????????????????__func__, clk->core->name);\n",
   "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240kref_put(&clk->core->ref, __clk_release);\n",
-  "> > \302\240unlock:\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_unlock();\n",
+  "> > ????????kref_put(&clk->core->ref, __clk_release);\n",
+  "> > ?unlock:\n",
+  "> > ????????clk_prepare_unlock();\n",
   "> > \@\@ -2952,6 +3134,17 \@\@ void __clk_put(struct clk *clk)\n",
-  "> > \302\240\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_prepare_lock();\n",
-  "> > \302\240\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240/*\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240* Before calling clk_put, all calls to clk_rate_protect from a\n",
+  "> > ?\n",
+  "> > ????????clk_prepare_lock();\n",
+  "> > ?\n",
+  "> > +???????/*\n",
+  "> > +????????* Before calling clk_put, all calls to clk_rate_protect from a\n",
   "> > given\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240* user must be balanced with calls to clk_rate_unprotect and by\n",
+  "> > +????????* user must be balanced with calls to clk_rate_unprotect and by\n",
   "> > that\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240* same user\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240*/\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240WARN_ON(clk->protect_count);\n",
+  "> > +????????* same user\n",
+  "> > +????????*/\n",
+  "> > +???????WARN_ON(clk->protect_count);\n",
   "> > +\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240/* We voiced our concern, let's sanitize the situation */\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240for (; clk->protect_count; clk->protect_count--)\n",
-  "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk_core_rate_unprotect(clk->core);\n",
+  "> > +???????/* We voiced our concern, let's sanitize the situation */\n",
+  "> > +???????for (; clk->protect_count; clk->protect_count--)\n",
+  "> > +???????????????clk_core_rate_unprotect(clk->core);\n",
   "> > +\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240hlist_del(&clk->clks_node);\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (clk->min_rate > clk->core->req_rate ||\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240clk->max_rate < clk->core->req_rate)\n",
+  "> > ????????hlist_del(&clk->clks_node);\n",
+  "> > ????????if (clk->min_rate > clk->core->req_rate ||\n",
+  "> > ????????????clk->max_rate < clk->core->req_rate)\n",
   "> > diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h\n",
   "> > index a428aec36ace..ebd7df5f375f 100644\n",
   "> > --- a/include/linux/clk-provider.h\n",
   "> > +++ b/include/linux/clk-provider.h\n",
   "> > \@\@ -739,6 +739,7 \@\@ unsigned long clk_hw_get_rate(const struct clk_hw *hw);\n",
-  "> > \302\240unsigned long __clk_get_flags(struct clk *clk);\n",
-  "> > \302\240unsigned long clk_hw_get_flags(const struct clk_hw *hw);\n",
-  "> > \302\240bool clk_hw_is_prepared(const struct clk_hw *hw);\n",
+  "> > ?unsigned long __clk_get_flags(struct clk *clk);\n",
+  "> > ?unsigned long clk_hw_get_flags(const struct clk_hw *hw);\n",
+  "> > ?bool clk_hw_is_prepared(const struct clk_hw *hw);\n",
   "> > +bool clk_hw_rate_is_protected(const struct clk_hw *hw);\n",
-  "> > \302\240bool clk_hw_is_enabled(const struct clk_hw *hw);\n",
-  "> > \302\240bool __clk_is_enabled(struct clk *clk);\n",
-  "> > \302\240struct clk *__clk_lookup(const char *name);\n",
+  "> > ?bool clk_hw_is_enabled(const struct clk_hw *hw);\n",
+  "> > ?bool __clk_is_enabled(struct clk *clk);\n",
+  "> > ?struct clk *__clk_lookup(const char *name);\n",
   "> > diff --git a/include/linux/clk.h b/include/linux/clk.h\n",
   "> > index 024cd07870d0..85d73e02df40 100644\n",
   "> > --- a/include/linux/clk.h\n",
   "> > +++ b/include/linux/clk.h\n",
   "> > \@\@ -265,6 +265,30 \@\@ struct clk *devm_clk_get(struct device *dev, const char\n",
   "> > *id);\n",
-  "> > \302\240 */\n",
-  "> > \302\240struct clk *devm_get_clk_from_child(struct device *dev,\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240struct device_node *np, const char\n",
+  "> > ? */\n",
+  "> > ?struct clk *devm_get_clk_from_child(struct device *dev,\n",
+  "> > ????????????????????????????????????struct device_node *np, const char\n",
   "> > *con_id);\n",
   "> > +/**\n",
   "> > + * clk_rate_protect - inform the system when the clock rate must be\n",
@@ -590,28 +581,28 @@
   "> > + * Must not be called from within atomic context.\n",
   "> > + */\n",
   "> > +void clk_rate_unprotect(struct clk *clk);\n",
-  "> > \302\240\n",
-  "> > \302\240/**\n",
-  "> > \302\240 * clk_enable - inform the system when the clock source should be running.\n",
+  "> > ?\n",
+  "> > ?/**\n",
+  "> > ? * clk_enable - inform the system when the clock source should be running.\n",
   "> > \@\@ -460,6 +484,11 \@\@ static inline void clk_put(struct clk *clk) {}\n",
-  "> > \302\240\n",
-  "> > \302\240static inline void devm_clk_put(struct device *dev, struct clk *clk) {}\n",
-  "> > \302\240\n",
+  "> > ?\n",
+  "> > ?static inline void devm_clk_put(struct device *dev, struct clk *clk) {}\n",
+  "> > ?\n",
   "> > +\n",
   "> > +static inline void clk_protect(struct clk *clk) {}\n",
   "> > +\n",
   "> > +static inline void clk_unprotect(struct clk *clk) {}\n",
   "> > +\n",
-  "> > \302\240static inline int clk_enable(struct clk *clk)\n",
-  "> > \302\240{\n",
-  "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240return 0;\n",
-  "> > --\302\240\n",
+  "> > ?static inline int clk_enable(struct clk *clk)\n",
+  "> > ?{\n",
+  "> > ????????return 0;\n",
+  "> > --?\n",
   "> > 2.9.4\n",
   "> > \n",
   "> > --\n",
   "> > To unsubscribe from this list: send the line \"unsubscribe linux-clk\" in\n",
-  "> > the body of a message to majordomo\@vger.kernel.org\n",
-  "> > More majordomo info at\302\240\302\240http://vger.kernel.org/majordomo-info.html"
+  "> > the body of a message to majordomo at vger.kernel.org\n",
+  "> > More majordomo info at??http://vger.kernel.org/majordomo-info.html"
 ]
 
-4c0c260d02b1f0ea340c3cbd77d63b95fffbacd0cb6454f893cb1c0c634052c6
+c723b6ecda265c9ae1a61c4362dfbaf0d596bb9815ca7353a4537df5de100e4a

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.