linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] soc/tegra: Add devm_tegra_core_dev_init_opp_table()
@ 2021-01-21 19:01 Dmitry Osipenko
  2021-01-22  3:38 ` kernel test robot
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Dmitry Osipenko @ 2021-01-21 19:01 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Peter Geis, Nicolas Chauvet,
	Viresh Kumar, Stephen Boyd, Nishanth Menon, Matt Merhar
  Cc: linux-kernel, linux-tegra, linux-pm

Add common helper which initializes OPP table for Tegra SoC core devices.

Tested-by: Peter Geis <pgwipeout@gmail.com> # Ouya T30
Tested-by: Dmitry Osipenko <digetx@gmail.com> # A500 T20 and Nexus7 T30
Tested-by: Nicolas Chauvet <kwizart@gmail.com> # PAZ00 T20 and TK1 T124
Tested-by: Matt Merhar <mattmerhar@protonmail.com> # Ouya T30
[tested on some other non-upstreamed-yet T20/30/114 devices as well]
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---

Changelog:

v3: - This patch is factored out from [1] to ease merging of the patches
      that will use the new helper. The goal is to get this new helper
      into 5.12, this should remove dependency on this patch for a several
      patchsets of a different subsystems (DRM, media, memory, etc) that
      will target 5.13.

      @Thierry/Jon, please review and apply this patch for 5.12!

      [1] https://patchwork.ozlabs.org/project/linux-tegra/list/?series=221130

    - The v3 got couple very minor cleanup improvements in comparison to [1],
      like a removed unused variable and improved comments in the code.

 drivers/soc/tegra/common.c | 137 +++++++++++++++++++++++++++++++++++++
 include/soc/tegra/common.h |  30 ++++++++
 2 files changed, 167 insertions(+)

diff --git a/drivers/soc/tegra/common.c b/drivers/soc/tegra/common.c
index 3dc54f59cafe..6b965471db30 100644
--- a/drivers/soc/tegra/common.c
+++ b/drivers/soc/tegra/common.c
@@ -3,9 +3,16 @@
  * Copyright (C) 2014 NVIDIA CORPORATION.  All rights reserved.
  */
 
+#define dev_fmt(fmt)	"tegra-soc: " fmt
+
+#include <linux/clk.h>
+#include <linux/device.h>
+#include <linux/export.h>
 #include <linux/of.h>
+#include <linux/pm_opp.h>
 
 #include <soc/tegra/common.h>
+#include <soc/tegra/fuse.h>
 
 static const struct of_device_id tegra_machine_match[] = {
 	{ .compatible = "nvidia,tegra20", },
@@ -31,3 +38,133 @@ bool soc_is_tegra(void)
 
 	return match != NULL;
 }
+
+static int tegra_core_dev_init_opp_state(struct device *dev)
+{
+	struct dev_pm_opp *opp;
+	unsigned long rate;
+	struct clk *clk;
+	int err;
+
+	clk = devm_clk_get(dev, NULL);
+	if (IS_ERR(clk)) {
+		dev_err(dev, "failed to get clk: %pe\n", clk);
+		return PTR_ERR(clk);
+	}
+
+	/*
+	 * If voltage regulator presents, then we could select the fastest
+	 * clock rate, but driver doesn't support power management and
+	 * frequency scaling yet, hence the top freq OPP will vote for a
+	 * very high voltage that will produce lot's of heat.  Let's select
+	 * OPP for the current/default rate for now.
+	 *
+	 * Clock rate should be pre-initialized (i.e. it's non-zero) either
+	 * by clock driver or by assigned clocks in a device-tree.
+	 */
+	rate = clk_get_rate(clk);
+	if (!rate) {
+		dev_err(dev, "failed to get clk rate\n");
+		return -EINVAL;
+	}
+
+	/* find suitable OPP for the clock rate and supportable by hardware */
+	opp = dev_pm_opp_find_freq_ceil(dev, &rate);
+
+	/*
+	 * dev_pm_opp_set_rate() doesn't search for a floor clock rate and it
+	 * will error out if default clock rate is too high, i.e. unsupported
+	 * by a SoC hardware version.  Hence will find floor rate by ourselves.
+	 */
+	if (opp == ERR_PTR(-ERANGE))
+		opp = dev_pm_opp_find_freq_floor(dev, &rate);
+
+	err = PTR_ERR_OR_ZERO(opp);
+	if (err) {
+		dev_err(dev, "failed to get OPP for %ld Hz: %d\n",
+			rate, err);
+		return err;
+	}
+
+	dev_pm_opp_put(opp);
+
+	/*
+	 * First dummy rate-set initializes voltage vote by setting voltage
+	 * in accordance to the clock rate.  We need to do this because some
+	 * drivers currently don't support power management and clock is
+	 * permanently enabled.
+	 */
+	err = dev_pm_opp_set_rate(dev, rate);
+	if (err) {
+		dev_err(dev, "failed to initialize OPP clock: %d\n", err);
+		return err;
+	}
+
+	return 0;
+}
+
+/**
+ * devm_tegra_core_dev_init_opp_table() - initialize OPP table
+ * @cfg: pointer to the OPP table configuration
+ *
+ * This function will initialize OPP table and sync OPP state of a Tegra SoC
+ * core device.
+ *
+ * Return: 0 on success or errorno.
+ */
+int devm_tegra_core_dev_init_opp_table(struct device *dev,
+				       struct tegra_core_opp_params *params)
+{
+	struct opp_table *opp_table;
+	u32 hw_version;
+	int err;
+
+	opp_table = devm_pm_opp_set_clkname(dev, NULL);
+	if (IS_ERR(opp_table)) {
+		dev_err(dev, "failed to set OPP clk %pe\n", opp_table);
+		return PTR_ERR(opp_table);
+	}
+
+	/* Tegra114+ doesn't support OPP yet */
+	if (!of_machine_is_compatible("nvidia,tegra20") &&
+	    !of_machine_is_compatible("nvidia,tegra30"))
+		return -ENODEV;
+
+	if (of_machine_is_compatible("nvidia,tegra20"))
+		hw_version = BIT(tegra_sku_info.soc_process_id);
+	else
+		hw_version = BIT(tegra_sku_info.soc_speedo_id);
+
+	opp_table = devm_pm_opp_set_supported_hw(dev, &hw_version, 1);
+	if (IS_ERR(opp_table)) {
+		dev_err(dev, "failed to set OPP supported HW: %pe\n", opp_table);
+		return PTR_ERR(opp_table);
+	}
+
+	/*
+	 * Older device-trees have an empty OPP table, hence we will get
+	 * -ENODEV from devm_pm_opp_of_add_table() for the older DTBs.
+	 *
+	 * The OPP table presence also varies per-device and depending
+	 * on a SoC generation, hence -ENODEV is expected to happen for
+	 * the newer DTs as well.
+	 */
+	err = devm_pm_opp_of_add_table(dev);
+	if (err) {
+		if (err == -ENODEV)
+			dev_err_once(dev, "OPP table not found, please update device-tree\n");
+		else
+			dev_err(dev, "failed to add OPP table: %d\n", err);
+
+		return err;
+	}
+
+	if (params->init_state) {
+		err = tegra_core_dev_init_opp_state(dev);
+		if (err)
+			return err;
+	}
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(devm_tegra_core_dev_init_opp_table);
diff --git a/include/soc/tegra/common.h b/include/soc/tegra/common.h
index 98027a76ce3d..18e562496f2a 100644
--- a/include/soc/tegra/common.h
+++ b/include/soc/tegra/common.h
@@ -6,6 +6,36 @@
 #ifndef __SOC_TEGRA_COMMON_H__
 #define __SOC_TEGRA_COMMON_H__
 
+#include <linux/errno.h>
+#include <linux/types.h>
+
+struct device;
+
+/**
+ * Tegra SoC core device OPP table configuration
+ *
+ * @init_state: pre-initialize OPP state of a device
+ */
+struct tegra_core_opp_params {
+	bool init_state;
+};
+
+#ifdef CONFIG_ARCH_TEGRA
 bool soc_is_tegra(void);
+int devm_tegra_core_dev_init_opp_table(struct device *dev,
+				       struct tegra_core_opp_params *cfg);
+#else
+static inline bool soc_is_tegra(void)
+{
+	return false;
+}
+
+static inline int
+devm_tegra_core_dev_init_opp_table(struct device *dev,
+				   struct tegra_core_opp_params *cfg)
+{
+	return -ENODEV;
+}
+#endif
 
 #endif /* __SOC_TEGRA_COMMON_H__ */
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] soc/tegra: Add devm_tegra_core_dev_init_opp_table()
  2021-01-21 19:01 [PATCH v3] soc/tegra: Add devm_tegra_core_dev_init_opp_table() Dmitry Osipenko
@ 2021-01-22  3:38 ` kernel test robot
  2021-01-22  6:29 ` kernel test robot
  2021-01-22  6:35 ` Viresh Kumar
  2 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2021-01-22  3:38 UTC (permalink / raw)
  To: Dmitry Osipenko, Thierry Reding, Jonathan Hunter, Peter Geis,
	Nicolas Chauvet, Viresh Kumar, Stephen Boyd, Nishanth Menon,
	Matt Merhar
  Cc: kbuild-all, linux-kernel, linux-tegra

[-- Attachment #1: Type: text/plain, Size: 3852 bytes --]

Hi Dmitry,

I love your patch! Perhaps something to improve:

[auto build test WARNING on tegra/for-next]
[also build test WARNING on v5.11-rc4 next-20210121]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Dmitry-Osipenko/soc-tegra-Add-devm_tegra_core_dev_init_opp_table/20210122-032018
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git for-next
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/d506fc2521a717df9b74b7106dbc8f2912b39e05
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Dmitry-Osipenko/soc-tegra-Add-devm_tegra_core_dev_init_opp_table/20210122-032018
        git checkout d506fc2521a717df9b74b7106dbc8f2912b39e05
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/soc/tegra/common.c: In function 'devm_tegra_core_dev_init_opp_table':
   drivers/soc/tegra/common.c:122:14: error: implicit declaration of function 'devm_pm_opp_set_clkname'; did you mean 'dev_pm_opp_set_clkname'? [-Werror=implicit-function-declaration]
     122 |  opp_table = devm_pm_opp_set_clkname(dev, NULL);
         |              ^~~~~~~~~~~~~~~~~~~~~~~
         |              dev_pm_opp_set_clkname
>> drivers/soc/tegra/common.c:122:12: warning: assignment to 'struct opp_table *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     122 |  opp_table = devm_pm_opp_set_clkname(dev, NULL);
         |            ^
   drivers/soc/tegra/common.c:138:14: error: implicit declaration of function 'devm_pm_opp_set_supported_hw'; did you mean 'dev_pm_opp_set_supported_hw'? [-Werror=implicit-function-declaration]
     138 |  opp_table = devm_pm_opp_set_supported_hw(dev, &hw_version, 1);
         |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |              dev_pm_opp_set_supported_hw
   drivers/soc/tegra/common.c:138:12: warning: assignment to 'struct opp_table *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     138 |  opp_table = devm_pm_opp_set_supported_hw(dev, &hw_version, 1);
         |            ^
   drivers/soc/tegra/common.c:152:8: error: implicit declaration of function 'devm_pm_opp_of_add_table'; did you mean 'dev_pm_opp_of_add_table'? [-Werror=implicit-function-declaration]
     152 |  err = devm_pm_opp_of_add_table(dev);
         |        ^~~~~~~~~~~~~~~~~~~~~~~~
         |        dev_pm_opp_of_add_table
   cc1: some warnings being treated as errors


vim +122 drivers/soc/tegra/common.c

   105	
   106	/**
   107	 * devm_tegra_core_dev_init_opp_table() - initialize OPP table
   108	 * @cfg: pointer to the OPP table configuration
   109	 *
   110	 * This function will initialize OPP table and sync OPP state of a Tegra SoC
   111	 * core device.
   112	 *
   113	 * Return: 0 on success or errorno.
   114	 */
   115	int devm_tegra_core_dev_init_opp_table(struct device *dev,
   116					       struct tegra_core_opp_params *params)
   117	{
   118		struct opp_table *opp_table;
   119		u32 hw_version;
   120		int err;
   121	
 > 122		opp_table = devm_pm_opp_set_clkname(dev, NULL);

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 54193 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] soc/tegra: Add devm_tegra_core_dev_init_opp_table()
  2021-01-21 19:01 [PATCH v3] soc/tegra: Add devm_tegra_core_dev_init_opp_table() Dmitry Osipenko
  2021-01-22  3:38 ` kernel test robot
@ 2021-01-22  6:29 ` kernel test robot
  2021-01-22  6:35 ` Viresh Kumar
  2 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2021-01-22  6:29 UTC (permalink / raw)
  To: Dmitry Osipenko, Thierry Reding, Jonathan Hunter, Peter Geis,
	Nicolas Chauvet, Viresh Kumar, Stephen Boyd, Nishanth Menon,
	Matt Merhar
  Cc: kbuild-all, linux-kernel, linux-tegra

[-- Attachment #1: Type: text/plain, Size: 5016 bytes --]

Hi Dmitry,

I love your patch! Yet something to improve:

[auto build test ERROR on tegra/for-next]
[also build test ERROR on v5.11-rc4 next-20210121]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Dmitry-Osipenko/soc-tegra-Add-devm_tegra_core_dev_init_opp_table/20210122-032018
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git for-next
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/d506fc2521a717df9b74b7106dbc8f2912b39e05
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Dmitry-Osipenko/soc-tegra-Add-devm_tegra_core_dev_init_opp_table/20210122-032018
        git checkout d506fc2521a717df9b74b7106dbc8f2912b39e05
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/soc/tegra/common.c: In function 'devm_tegra_core_dev_init_opp_table':
>> drivers/soc/tegra/common.c:122:14: error: implicit declaration of function 'devm_pm_opp_set_clkname'; did you mean 'dev_pm_opp_set_clkname'? [-Werror=implicit-function-declaration]
     122 |  opp_table = devm_pm_opp_set_clkname(dev, NULL);
         |              ^~~~~~~~~~~~~~~~~~~~~~~
         |              dev_pm_opp_set_clkname
   drivers/soc/tegra/common.c:122:12: warning: assignment to 'struct opp_table *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     122 |  opp_table = devm_pm_opp_set_clkname(dev, NULL);
         |            ^
>> drivers/soc/tegra/common.c:138:14: error: implicit declaration of function 'devm_pm_opp_set_supported_hw'; did you mean 'dev_pm_opp_set_supported_hw'? [-Werror=implicit-function-declaration]
     138 |  opp_table = devm_pm_opp_set_supported_hw(dev, &hw_version, 1);
         |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |              dev_pm_opp_set_supported_hw
   drivers/soc/tegra/common.c:138:12: warning: assignment to 'struct opp_table *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     138 |  opp_table = devm_pm_opp_set_supported_hw(dev, &hw_version, 1);
         |            ^
>> drivers/soc/tegra/common.c:152:8: error: implicit declaration of function 'devm_pm_opp_of_add_table'; did you mean 'dev_pm_opp_of_add_table'? [-Werror=implicit-function-declaration]
     152 |  err = devm_pm_opp_of_add_table(dev);
         |        ^~~~~~~~~~~~~~~~~~~~~~~~
         |        dev_pm_opp_of_add_table
   cc1: some warnings being treated as errors


vim +122 drivers/soc/tegra/common.c

   105	
   106	/**
   107	 * devm_tegra_core_dev_init_opp_table() - initialize OPP table
   108	 * @cfg: pointer to the OPP table configuration
   109	 *
   110	 * This function will initialize OPP table and sync OPP state of a Tegra SoC
   111	 * core device.
   112	 *
   113	 * Return: 0 on success or errorno.
   114	 */
   115	int devm_tegra_core_dev_init_opp_table(struct device *dev,
   116					       struct tegra_core_opp_params *params)
   117	{
   118		struct opp_table *opp_table;
   119		u32 hw_version;
   120		int err;
   121	
 > 122		opp_table = devm_pm_opp_set_clkname(dev, NULL);
   123		if (IS_ERR(opp_table)) {
   124			dev_err(dev, "failed to set OPP clk %pe\n", opp_table);
   125			return PTR_ERR(opp_table);
   126		}
   127	
   128		/* Tegra114+ doesn't support OPP yet */
   129		if (!of_machine_is_compatible("nvidia,tegra20") &&
   130		    !of_machine_is_compatible("nvidia,tegra30"))
   131			return -ENODEV;
   132	
   133		if (of_machine_is_compatible("nvidia,tegra20"))
   134			hw_version = BIT(tegra_sku_info.soc_process_id);
   135		else
   136			hw_version = BIT(tegra_sku_info.soc_speedo_id);
   137	
 > 138		opp_table = devm_pm_opp_set_supported_hw(dev, &hw_version, 1);
   139		if (IS_ERR(opp_table)) {
   140			dev_err(dev, "failed to set OPP supported HW: %pe\n", opp_table);
   141			return PTR_ERR(opp_table);
   142		}
   143	
   144		/*
   145		 * Older device-trees have an empty OPP table, hence we will get
   146		 * -ENODEV from devm_pm_opp_of_add_table() for the older DTBs.
   147		 *
   148		 * The OPP table presence also varies per-device and depending
   149		 * on a SoC generation, hence -ENODEV is expected to happen for
   150		 * the newer DTs as well.
   151		 */
 > 152		err = devm_pm_opp_of_add_table(dev);

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 54193 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] soc/tegra: Add devm_tegra_core_dev_init_opp_table()
  2021-01-21 19:01 [PATCH v3] soc/tegra: Add devm_tegra_core_dev_init_opp_table() Dmitry Osipenko
  2021-01-22  3:38 ` kernel test robot
  2021-01-22  6:29 ` kernel test robot
@ 2021-01-22  6:35 ` Viresh Kumar
  2021-01-22 14:41   ` Dmitry Osipenko
  2 siblings, 1 reply; 7+ messages in thread
From: Viresh Kumar @ 2021-01-22  6:35 UTC (permalink / raw)
  To: Dmitry Osipenko
  Cc: Thierry Reding, Jonathan Hunter, Peter Geis, Nicolas Chauvet,
	Viresh Kumar, Stephen Boyd, Nishanth Menon, Matt Merhar,
	linux-kernel, linux-tegra, linux-pm

On 21-01-21, 22:01, Dmitry Osipenko wrote:
> Add common helper which initializes OPP table for Tegra SoC core devices.
> 
> Tested-by: Peter Geis <pgwipeout@gmail.com> # Ouya T30
> Tested-by: Dmitry Osipenko <digetx@gmail.com> # A500 T20 and Nexus7 T30
> Tested-by: Nicolas Chauvet <kwizart@gmail.com> # PAZ00 T20 and TK1 T124
> Tested-by: Matt Merhar <mattmerhar@protonmail.com> # Ouya T30
> [tested on some other non-upstreamed-yet T20/30/114 devices as well]
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
> 
> Changelog:
> 
> v3: - This patch is factored out from [1] to ease merging of the patches
>       that will use the new helper. The goal is to get this new helper
>       into 5.12, this should remove dependency on this patch for a several
>       patchsets of a different subsystems (DRM, media, memory, etc) that
>       will target 5.13.
> 
>       @Thierry/Jon, please review and apply this patch for 5.12!

This is not how stuff works in kernel Dmitry, every commit in the
kernel tree should build(at least)/boot fine. Your patch can only be
applied once your base tree has all the patches on which your work is
based of, otherwise this will lead to build failure (stuff like git
bisect breaks with that). It would be better if you take this patch in
5.13, or after 5.12-rc2 once all other stuff lands.

-- 
viresh

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] soc/tegra: Add devm_tegra_core_dev_init_opp_table()
  2021-01-22  6:35 ` Viresh Kumar
@ 2021-01-22 14:41   ` Dmitry Osipenko
  2021-01-25  3:07     ` Viresh Kumar
  0 siblings, 1 reply; 7+ messages in thread
From: Dmitry Osipenko @ 2021-01-22 14:41 UTC (permalink / raw)
  To: Viresh Kumar
  Cc: Thierry Reding, Jonathan Hunter, Peter Geis, Nicolas Chauvet,
	Viresh Kumar, Stephen Boyd, Nishanth Menon, Matt Merhar,
	linux-kernel, linux-tegra, linux-pm, Yangtao Li

22.01.2021 09:35, Viresh Kumar пишет:
> On 21-01-21, 22:01, Dmitry Osipenko wrote:
>> Add common helper which initializes OPP table for Tegra SoC core devices.
>>
>> Tested-by: Peter Geis <pgwipeout@gmail.com> # Ouya T30
>> Tested-by: Dmitry Osipenko <digetx@gmail.com> # A500 T20 and Nexus7 T30
>> Tested-by: Nicolas Chauvet <kwizart@gmail.com> # PAZ00 T20 and TK1 T124
>> Tested-by: Matt Merhar <mattmerhar@protonmail.com> # Ouya T30
>> [tested on some other non-upstreamed-yet T20/30/114 devices as well]
>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>> ---
>>
>> Changelog:
>>
>> v3: - This patch is factored out from [1] to ease merging of the patches
>>       that will use the new helper. The goal is to get this new helper
>>       into 5.12, this should remove dependency on this patch for a several
>>       patchsets of a different subsystems (DRM, media, memory, etc) that
>>       will target 5.13.
>>
>>       @Thierry/Jon, please review and apply this patch for 5.12!
> 
> This is not how stuff works in kernel Dmitry, every commit in the
> kernel tree should build(at least)/boot fine. Your patch can only be
> applied once your base tree has all the patches on which your work is
> based of, otherwise this will lead to build failure (stuff like git
> bisect breaks with that). It would be better if you take this patch in
> 5.13, or after 5.12-rc2 once all other stuff lands.
> 

OMG, I completely missed that the devm series from Yangtao Li isn't
merged yet.

Viresh / Yangtao, will be it be okay if I'll collect all the
prerequisite devm patches from Yangtao + add this patch into a single
series that could be merged via the OPP tree for 5.12?

Of course Thierry or Jon will need to give the ack for the Tegra changes
in that case.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] soc/tegra: Add devm_tegra_core_dev_init_opp_table()
  2021-01-22 14:41   ` Dmitry Osipenko
@ 2021-01-25  3:07     ` Viresh Kumar
  2021-01-25 17:23       ` Dmitry Osipenko
  0 siblings, 1 reply; 7+ messages in thread
From: Viresh Kumar @ 2021-01-25  3:07 UTC (permalink / raw)
  To: Dmitry Osipenko
  Cc: Thierry Reding, Jonathan Hunter, Peter Geis, Nicolas Chauvet,
	Viresh Kumar, Stephen Boyd, Nishanth Menon, Matt Merhar,
	linux-kernel, linux-tegra, linux-pm, Yangtao Li

On 22-01-21, 17:41, Dmitry Osipenko wrote:
> 22.01.2021 09:35, Viresh Kumar пишет:
> > On 21-01-21, 22:01, Dmitry Osipenko wrote:
> >> Add common helper which initializes OPP table for Tegra SoC core devices.
> >>
> >> Tested-by: Peter Geis <pgwipeout@gmail.com> # Ouya T30
> >> Tested-by: Dmitry Osipenko <digetx@gmail.com> # A500 T20 and Nexus7 T30
> >> Tested-by: Nicolas Chauvet <kwizart@gmail.com> # PAZ00 T20 and TK1 T124
> >> Tested-by: Matt Merhar <mattmerhar@protonmail.com> # Ouya T30
> >> [tested on some other non-upstreamed-yet T20/30/114 devices as well]
> >> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> >> ---
> >>
> >> Changelog:
> >>
> >> v3: - This patch is factored out from [1] to ease merging of the patches
> >>       that will use the new helper. The goal is to get this new helper
> >>       into 5.12, this should remove dependency on this patch for a several
> >>       patchsets of a different subsystems (DRM, media, memory, etc) that
> >>       will target 5.13.
> >>
> >>       @Thierry/Jon, please review and apply this patch for 5.12!
> > 
> > This is not how stuff works in kernel Dmitry, every commit in the
> > kernel tree should build(at least)/boot fine. Your patch can only be
> > applied once your base tree has all the patches on which your work is
> > based of, otherwise this will lead to build failure (stuff like git
> > bisect breaks with that). It would be better if you take this patch in
> > 5.13, or after 5.12-rc2 once all other stuff lands.
> > 
> 
> OMG, I completely missed that the devm series from Yangtao Li isn't
> merged yet.
> 
> Viresh / Yangtao, will be it be okay if I'll collect all the
> prerequisite devm patches from Yangtao + add this patch into a single
> series that could be merged via the OPP tree for 5.12?
> 
> Of course Thierry or Jon will need to give the ack for the Tegra changes
> in that case.

I haven't heard back from Yangtao since his last post, not sure what's going on.
It is normally better if he keeps posting his series, unless he is busy and will
not be able to do it.

-- 
viresh

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v3] soc/tegra: Add devm_tegra_core_dev_init_opp_table()
  2021-01-25  3:07     ` Viresh Kumar
@ 2021-01-25 17:23       ` Dmitry Osipenko
  0 siblings, 0 replies; 7+ messages in thread
From: Dmitry Osipenko @ 2021-01-25 17:23 UTC (permalink / raw)
  To: Viresh Kumar
  Cc: Thierry Reding, Jonathan Hunter, Peter Geis, Nicolas Chauvet,
	Viresh Kumar, Stephen Boyd, Nishanth Menon, Matt Merhar,
	linux-kernel, linux-tegra, linux-pm, Yangtao Li

25.01.2021 06:07, Viresh Kumar пишет:
> On 22-01-21, 17:41, Dmitry Osipenko wrote:
>> 22.01.2021 09:35, Viresh Kumar пишет:
>>> On 21-01-21, 22:01, Dmitry Osipenko wrote:
>>>> Add common helper which initializes OPP table for Tegra SoC core devices.
>>>>
>>>> Tested-by: Peter Geis <pgwipeout@gmail.com> # Ouya T30
>>>> Tested-by: Dmitry Osipenko <digetx@gmail.com> # A500 T20 and Nexus7 T30
>>>> Tested-by: Nicolas Chauvet <kwizart@gmail.com> # PAZ00 T20 and TK1 T124
>>>> Tested-by: Matt Merhar <mattmerhar@protonmail.com> # Ouya T30
>>>> [tested on some other non-upstreamed-yet T20/30/114 devices as well]
>>>> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
>>>> ---
>>>>
>>>> Changelog:
>>>>
>>>> v3: - This patch is factored out from [1] to ease merging of the patches
>>>>       that will use the new helper. The goal is to get this new helper
>>>>       into 5.12, this should remove dependency on this patch for a several
>>>>       patchsets of a different subsystems (DRM, media, memory, etc) that
>>>>       will target 5.13.
>>>>
>>>>       @Thierry/Jon, please review and apply this patch for 5.12!
>>>
>>> This is not how stuff works in kernel Dmitry, every commit in the
>>> kernel tree should build(at least)/boot fine. Your patch can only be
>>> applied once your base tree has all the patches on which your work is
>>> based of, otherwise this will lead to build failure (stuff like git
>>> bisect breaks with that). It would be better if you take this patch in
>>> 5.13, or after 5.12-rc2 once all other stuff lands.
>>>
>>
>> OMG, I completely missed that the devm series from Yangtao Li isn't
>> merged yet.
>>
>> Viresh / Yangtao, will be it be okay if I'll collect all the
>> prerequisite devm patches from Yangtao + add this patch into a single
>> series that could be merged via the OPP tree for 5.12?
>>
>> Of course Thierry or Jon will need to give the ack for the Tegra changes
>> in that case.
> 
> I haven't heard back from Yangtao since his last post, not sure what's going on.
> It is normally better if he keeps posting his series, unless he is busy and will
> not be able to do it.
> 

Indeed, it will be much better if Yangtao could make the update, no
doubt about this.

If devm_tegra_core_dev_init_opp_table() will miss 5.12, then it will
likely put on hold couple Tegra patches for a another 2+ months, which
isn't critical, but it's a bit difficult to accept morally :)

Yangtao, could you please let us know the current status of yours
series? If you don't have spare time right now to finish v2, then I'd
like to pick up couple patches from yours v1 which add the devm_*
helpers that are used by this patch to make a small patchset that could
go into 5.12.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-01-25 17:26 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-21 19:01 [PATCH v3] soc/tegra: Add devm_tegra_core_dev_init_opp_table() Dmitry Osipenko
2021-01-22  3:38 ` kernel test robot
2021-01-22  6:29 ` kernel test robot
2021-01-22  6:35 ` Viresh Kumar
2021-01-22 14:41   ` Dmitry Osipenko
2021-01-25  3:07     ` Viresh Kumar
2021-01-25 17:23       ` Dmitry Osipenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).