]> Git Repo - linux.git/commitdiff
Merge branches 'clk-samsung', 'clk-imx', 'clk-rockchip', 'clk-clkdev' and 'clk-rate...
authorStephen Boyd <[email protected]>
Wed, 13 Mar 2024 19:36:21 +0000 (12:36 -0700)
committerStephen Boyd <[email protected]>
Wed, 13 Mar 2024 19:36:21 +0000 (12:36 -0700)
 - Increase dev_id len for clkdev lookups

* clk-samsung: (25 commits)
  clk: samsung: Add CPU clock support for Exynos850
  clk: samsung: Pass mask to wait_until_mux_stable()
  clk: samsung: Keep register offsets in chip specific structure
  clk: samsung: Keep CPU clock chip specific data in a dedicated struct
  clk: samsung: Pass register layout type explicitly to CLK_CPU()
  clk: samsung: Pass actual CPU clock registers base to CPU_CLK()
  clk: samsung: Group CPU clock functions by chip
  clk: samsung: Use single CPU clock notifier callback for all chips
  clk: samsung: Reduce params count in exynos_register_cpu_clock()
  clk: samsung: Pull struct exynos_cpuclk into clk-cpu.c
  clk: samsung: Improve clk-cpu.c style
  dt-bindings: clock: exynos850: Add CMU_CPUCLK0 and CMU_CPUCL1
  clk: samsung: gs101: add support for cmu_peric1
  clk: samsung: gs101: drop extra empty line
  dt-bindings: clock: google,gs101-clock: add PERIC1 clock management unit
  clk: samsung: exynos850: Propagate SPI IPCLK rate change
  clk: samsung: gs101: gpio_peric0_pclk needs to be kept on
  clk: samsung: exynos850: Add PDMA clocks
  dt-bindings: clock: tesla,fsd: Fix spelling mistake
  clk: samsung: gs101: add support for cmu_peric0
  ...

* clk-imx:
  clk: imx: imx8mp: Fix SAI_MCLK_SEL definition
  clk: imx: scu: Use common error handling code in imx_clk_scu_alloc_dev()
  clk: imx: composite-8m: Delete two unnecessary initialisations in __imx8m_clk_hw_composite()
  clk: imx: composite-8m: Less function calls in __imx8m_clk_hw_composite() after error detection

* clk-rockchip:
  clk: rockchip: rk3399: Allow to set rate of clk_i2s0_frac's parent
  clk: rockchip: rk3588: use linked clock ID for GATE_LINK
  clk: rockchip: rk3588: fix indent
  clk: rockchip: rk3588: fix pclk_vo0grf and pclk_vo1grf
  dt-bindings: clock: rk3588: add missing PCLK_VO1GRF
  dt-bindings: clock: rk3588: drop CLK_NR_CLKS
  clk: rockchip: rk3588: fix CLK_NR_CLKS usage
  clk: rockchip: rk3568: Add PLL rate for 128MHz

* clk-clkdev:
  clkdev: Update clkdev id usage to allow for longer names

* clk-rate-exclusive:
  clk: Add a devm variant of clk_rate_exclusive_get()

1  2  3  4  5  6 
drivers/clk/clk.c
include/linux/clk.h

diff --combined drivers/clk/clk.c
index 20c4b28fed0616fe52dd533c21c91ca031266600,2253c154a824834f8e58e9074de6e31a4f548c83,2253c154a824834f8e58e9074de6e31a4f548c83,2253c154a824834f8e58e9074de6e31a4f548c83,2253c154a824834f8e58e9074de6e31a4f548c83,a3bc7fb90d0f2aa8b31d538a95f736a21f6976ce..25371c91a58fe7cc45a0ae681221d25f801cafb7
@@@@@@@ -418,9 -418,6 -418,6 -418,6 -418,6 -418,6 +418,9 @@@@@@@ static struct clk_core *clk_core_get(st
        if (IS_ERR(hw))
                return ERR_CAST(hw);
      
 +++++  if (!hw)
 +++++          return NULL;
 +++++
        return hw->core;
      }
      
@@@@@@@ -942,6 -939,6 -939,6 -939,6 -939,6 -939,25 +942,25 @@@@@@@ int clk_rate_exclusive_get(struct clk *
      }
      EXPORT_SYMBOL_GPL(clk_rate_exclusive_get);
      
+++++ static void devm_clk_rate_exclusive_put(void *data)
+++++ {
+++++   struct clk *clk = data;
+++++ 
+++++   clk_rate_exclusive_put(clk);
+++++ }
+++++ 
+++++ int devm_clk_rate_exclusive_get(struct device *dev, struct clk *clk)
+++++ {
+++++   int ret;
+++++ 
+++++   ret = clk_rate_exclusive_get(clk);
+++++   if (ret)
+++++           return ret;
+++++ 
+++++   return devm_add_action_or_reset(dev, devm_clk_rate_exclusive_put, clk);
+++++ }
+++++ EXPORT_SYMBOL_GPL(devm_clk_rate_exclusive_get);
+++++ 
      static void clk_core_unprepare(struct clk_core *core)
      {
        lockdep_assert_held(&prepare_lock);
diff --combined include/linux/clk.h
index 0f44d3863de2fd4d17f760e2f5dcca2c5e398ea2,06f1b292f8a00ad8f9221a2672baa71b9b6d41e7,06f1b292f8a00ad8f9221a2672baa71b9b6d41e7,06f1b292f8a00ad8f9221a2672baa71b9b6d41e7,06f1b292f8a00ad8f9221a2672baa71b9b6d41e7,24c49b01c25d26033f7504e519e7dd51a31a026a..00623f4de5e195d5a4b880db633b1bfd335f34fc
@@@@@@@ -201,6 -201,6 -201,6 -201,6 -201,6 -201,18 +201,18 @@@@@@@ bool clk_is_match(const struct clk *p, 
       */
      int clk_rate_exclusive_get(struct clk *clk);
      
+++++ /**
+++++  * devm_clk_rate_exclusive_get - devm variant of clk_rate_exclusive_get
+++++  * @dev: device the exclusivity is bound to
+++++  * @clk: clock source
+++++  *
+++++  * Calls clk_rate_exclusive_get() on @clk and registers a devm cleanup handler
+++++  * on @dev to call clk_rate_exclusive_put().
+++++  *
+++++  * Must not be called from within atomic context.
+++++  */
+++++ int devm_clk_rate_exclusive_get(struct device *dev, struct clk *clk);
+++++ 
      /**
       * clk_rate_exclusive_put - release exclusivity over the rate control of a
       *                          producer
@@@@@@@ -478,22 -478,6 -478,6 -478,6 -478,6 -490,6 +490,22 @@@@@@@ int __must_check devm_clk_bulk_get_opti
      int __must_check devm_clk_bulk_get_all(struct device *dev,
                                       struct clk_bulk_data **clks);
      
 +++++/**
 +++++ * devm_clk_bulk_get_all_enable - Get and enable all clocks of the consumer (managed)
 +++++ * @dev: device for clock "consumer"
 +++++ * @clks: pointer to the clk_bulk_data table of consumer
 +++++ *
 +++++ * Returns success (0) or negative errno.
 +++++ *
 +++++ * This helper function allows drivers to get all clocks of the
 +++++ * consumer and enables them in one operation with management.
 +++++ * The clks will automatically be disabled and freed when the device
 +++++ * is unbound.
 +++++ */
 +++++
 +++++int __must_check devm_clk_bulk_get_all_enable(struct device *dev,
 +++++                                        struct clk_bulk_data **clks);
 +++++
      /**
       * devm_clk_get - lookup and obtain a managed reference to a clock producer.
       * @dev: device for clock "consumer"
@@@@@@@ -984,12 -968,6 -968,6 -968,6 -968,6 -980,6 +996,12 @@@@@@@ static inline int __must_check devm_clk
        return 0;
      }
      
 +++++static inline int __must_check devm_clk_bulk_get_all_enable(struct device *dev,
 +++++                                          struct clk_bulk_data **clks)
 +++++{
 +++++  return 0;
 +++++}
 +++++
      static inline struct clk *devm_get_clk_from_child(struct device *dev,
                                struct device_node *np, const char *con_id)
      {
This page took 0.102586 seconds and 4 git commands to generate.