Merge tag 'clk-for-linus-20151104' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 5 Nov 2015 20:59:36 +0000 (12:59 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 5 Nov 2015 20:59:36 +0000 (12:59 -0800)
Pull clk updates from Stephen Boyd:
 "The majority of the changes are driver updates and new device support.
  The core framework is mostly unchanged this time around, with only a
  couple patches to expose a clk provider API and make getting clk
  parent names from DT more robust.

  Driver updates:

   - Support for clock controllers found on Broadcom Northstar SoCs and
     bcm2835 SoC

   - Support for Allwinner audio clocks

   - A few cleanup patches for Tegra drivers and support for the highest
     DFLL frequencies on Tegra124

   - Samsung exynos7 fixes and improvements

   - i.Mx SoC updates to add a few missing clocks and keep debug uart
     clocks on during kernel intialization

   - Some mediatek cleanups and support for more subsystem clocks

   - Support for msm8916 gpu/audio clocks and qcom's GDSC power domain
     controllers

   - A new driver for the Silabs si514 clock chip"

* tag 'clk-for-linus-20151104' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (143 commits)
  clk: qcom: msm8960: Fix dsi1/2 halt bits
  clk: lpc18xx-cgu: fix potential system hang when disabling unused clocks
  clk: lpc18xx-ccu: fix potential system hang when disabling unused clocks
  clk: Add clk_hw_is_enabled() for use by clk providers
  clk: Add stubs for of_clk_*() APIs when CONFIG_OF=n
  clk: versatile-icst: fix memory leak
  clk: Remove clk_{register,unregister}_multiplier()
  clk: iproc: define Broadcom NS2 iProc clock binding
  clk: iproc: define Broadcom NSP iProc clock binding
  clk: ns2: add clock support for Broadcom Northstar 2 SoC
  clk: iproc: Separate status and control variables
  clk: iproc: Split off dig_filter
  clk: iproc: Add PLL base write function
  clk: nsp: add clock support for Broadcom Northstar Plus SoC
  clk: iproc: Add PWRCTRL support
  clk: cygnus: Convert all macros to all caps
  ARM: cygnus: fix link failures when CONFIG_COMMON_CLK_IPROC is disabled
  clk: imx31: add missing of_node_put
  clk: imx27: add missing of_node_put
  clk: si5351: add missing of_node_put
  ...

1  2 
drivers/base/power/domain.c
drivers/clk/rockchip/clk-mmc-phase.c
drivers/tty/serial/8250/8250_dw.c

@@@ -1353,7 -1427,37 +1353,8 @@@ int pm_genpd_add_subdomain(struct gener
  
        return ret;
  }
+ EXPORT_SYMBOL_GPL(pm_genpd_add_subdomain);
  
 -/**
 - * pm_genpd_add_subdomain_names - Add a subdomain to an I/O PM domain.
 - * @master_name: Name of the master PM domain to add the subdomain to.
 - * @subdomain_name: Name of the subdomain to be added.
 - */
 -int pm_genpd_add_subdomain_names(const char *master_name,
 -                               const char *subdomain_name)
 -{
 -      struct generic_pm_domain *master = NULL, *subdomain = NULL, *gpd;
 -
 -      if (IS_ERR_OR_NULL(master_name) || IS_ERR_OR_NULL(subdomain_name))
 -              return -EINVAL;
 -
 -      mutex_lock(&gpd_list_lock);
 -      list_for_each_entry(gpd, &gpd_list, gpd_list_node) {
 -              if (!master && !strcmp(gpd->name, master_name))
 -                      master = gpd;
 -
 -              if (!subdomain && !strcmp(gpd->name, subdomain_name))
 -                      subdomain = gpd;
 -
 -              if (master && subdomain)
 -                      break;
 -      }
 -      mutex_unlock(&gpd_list_lock);
 -
 -      return pm_genpd_add_subdomain(master, subdomain);
 -}
 -
  /**
   * pm_genpd_remove_subdomain - Remove a subdomain from an I/O PM domain.
   * @genpd: Master PM domain to remove the subdomain from.
  
        return ret;
  }
+ EXPORT_SYMBOL_GPL(pm_genpd_remove_subdomain);
  
 -/**
 - * pm_genpd_attach_cpuidle - Connect the given PM domain with cpuidle.
 - * @genpd: PM domain to be connected with cpuidle.
 - * @state: cpuidle state this domain can disable/enable.
 - *
 - * Make a PM domain behave as though it contained a CPU core, that is, instead
 - * of calling its power down routine it will enable the given cpuidle state so
 - * that the cpuidle subsystem can power it down (if possible and desirable).
 - */
 -int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state)
 -{
 -      struct cpuidle_driver *cpuidle_drv;
 -      struct gpd_cpuidle_data *cpuidle_data;
 -      struct cpuidle_state *idle_state;
 -      int ret = 0;
 -
 -      if (IS_ERR_OR_NULL(genpd) || state < 0)
 -              return -EINVAL;
 -
 -      mutex_lock(&genpd->lock);
 -
 -      if (genpd->cpuidle_data) {
 -              ret = -EEXIST;
 -              goto out;
 -      }
 -      cpuidle_data = kzalloc(sizeof(*cpuidle_data), GFP_KERNEL);
 -      if (!cpuidle_data) {
 -              ret = -ENOMEM;
 -              goto out;
 -      }
 -      cpuidle_drv = cpuidle_driver_ref();
 -      if (!cpuidle_drv) {
 -              ret = -ENODEV;
 -              goto err_drv;
 -      }
 -      if (cpuidle_drv->state_count <= state) {
 -              ret = -EINVAL;
 -              goto err;
 -      }
 -      idle_state = &cpuidle_drv->states[state];
 -      if (!idle_state->disabled) {
 -              ret = -EAGAIN;
 -              goto err;
 -      }
 -      cpuidle_data->idle_state = idle_state;
 -      cpuidle_data->saved_exit_latency = idle_state->exit_latency;
 -      genpd->cpuidle_data = cpuidle_data;
 -      genpd_recalc_cpu_exit_latency(genpd);
 -
 - out:
 -      mutex_unlock(&genpd->lock);
 -      return ret;
 -
 - err:
 -      cpuidle_driver_unref();
 -
 - err_drv:
 -      kfree(cpuidle_data);
 -      goto out;
 -}
 -
 -/**
 - * pm_genpd_name_attach_cpuidle - Find PM domain and connect cpuidle to it.
 - * @name: Name of the domain to connect to cpuidle.
 - * @state: cpuidle state this domain can manipulate.
 - */
 -int pm_genpd_name_attach_cpuidle(const char *name, int state)
 -{
 -      return pm_genpd_attach_cpuidle(pm_genpd_lookup_name(name), state);
 -}
 -
 -/**
 - * pm_genpd_detach_cpuidle - Remove the cpuidle connection from a PM domain.
 - * @genpd: PM domain to remove the cpuidle connection from.
 - *
 - * Remove the cpuidle connection set up by pm_genpd_attach_cpuidle() from the
 - * given PM domain.
 - */
 -int pm_genpd_detach_cpuidle(struct generic_pm_domain *genpd)
 -{
 -      struct gpd_cpuidle_data *cpuidle_data;
 -      struct cpuidle_state *idle_state;
 -      int ret = 0;
 -
 -      if (IS_ERR_OR_NULL(genpd))
 -              return -EINVAL;
 -
 -      mutex_lock(&genpd->lock);
 -
 -      cpuidle_data = genpd->cpuidle_data;
 -      if (!cpuidle_data) {
 -              ret = -ENODEV;
 -              goto out;
 -      }
 -      idle_state = cpuidle_data->idle_state;
 -      if (!idle_state->disabled) {
 -              ret = -EAGAIN;
 -              goto out;
 -      }
 -      idle_state->exit_latency = cpuidle_data->saved_exit_latency;
 -      cpuidle_driver_unref();
 -      genpd->cpuidle_data = NULL;
 -      kfree(cpuidle_data);
 -
 - out:
 -      mutex_unlock(&genpd->lock);
 -      return ret;
 -}
 -
 -/**
 - * pm_genpd_name_detach_cpuidle - Find PM domain and disconnect cpuidle from it.
 - * @name: Name of the domain to disconnect cpuidle from.
 - */
 -int pm_genpd_name_detach_cpuidle(const char *name)
 -{
 -      return pm_genpd_detach_cpuidle(pm_genpd_lookup_name(name));
 -}
 -
  /* Default device callbacks for generic PM domains. */
  
  /**
Simple merge
Simple merge