Skip to contentSkip to conversation

drivers//devfreq/tegra30-devfreq.c:478:8: error: implicit declaration of function 'clk_set_min_rate'; did you mean 'clk_set_rate'?

PATCH Dmitry Osipenko 3 participants 5 messages Apr 24, 2019 – Apr 25, 2019 1 message not in the archive Common clk

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): 201904242234.3ZpDzMBq%[email protected]

#1 lore raw

24.04.2019 17:22, kbuild test robot пишет:

Quoted 67 lines

Hi Dmitry,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git devfreq-testing
head:   6b3a07e6458befbb8b90010e92d578b08678e5ce
commit: d2a110d18c755979bffa07f45d3b4ff89e420954 [15/16] PM / devfreq: tegra: Rename tegra-devfreq.c to tegra30-devfreq.c
config: sparc64-allmodconfig (attached as .config)
compiler: sparc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0

reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
git checkout d2a110d18c755979bffa07f45d3b4ff89e420954
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=sparc64

If you fix the issue, kindly add following tag

All errors (new ones prefixed by >>):

drivers//devfreq/tegra30-devfreq.c: In function 'tegra_devfreq_target':

Quoted 1 line
Quoted 1 line

drivers//devfreq/tegra30-devfreq.c:478:8: error: implicit declaration of function 'clk_set_min_rate'; did you mean 'clk_set_rate'? [-Werror=implicit-function-declaration]

     err = clk_set_min_rate(tegra->emc_clock, rate);
           ^~~~~~~~~~~~~~~~
           clk_set_rate

cc1: some warnings being treated as errors

vim +478 drivers//devfreq/tegra30-devfreq.c

6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  460  
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  461  static int tegra_devfreq_target(struct device *dev, unsigned long *freq,
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  462  				u32 flags)
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  463  {
11573e913 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2015-03-17  464  	struct tegra_devfreq *tegra = dev_get_drvdata(dev);
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  465  	struct devfreq *devfreq = tegra->devfreq;
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  466  	struct dev_pm_opp *opp;
e76bb6df1 drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  467  	unsigned long rate;
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  468  	int err;
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  469  
e76bb6df1 drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  470  	opp = devfreq_recommended_opp(dev, freq, flags);
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  471  	if (IS_ERR(opp)) {
e76bb6df1 drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  472  		dev_err(dev, "Failed to find opp for %lu Hz\n", *freq);
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  473  		return PTR_ERR(opp);
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  474  	}
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  475  	rate = dev_pm_opp_get_freq(opp);
8a31d9d94 drivers/devfreq/tegra-devfreq.c Viresh Kumar    2017-01-23  476  	dev_pm_opp_put(opp);
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  477  
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18 @478  	err = clk_set_min_rate(tegra->emc_clock, rate);
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  479  	if (err)
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  480  		return err;
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  481  
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  482  	err = clk_set_rate(tegra->emc_clock, 0);
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  483  	if (err)
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  484  		goto restore_min_rate;
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  485  
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  486  	return 0;
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  487  
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  488  restore_min_rate:
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  489  	clk_set_min_rate(tegra->emc_clock, devfreq->previous_freq);
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  490  
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  491  	return err;
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  492  }
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  493  

:::::: The code at line 478 was first introduced by commit
:::::: 7f2e3eb6fa764bb003164c331c93306a8e1223c3 PM / devfreq: tegra: Don't ignore clk errors

Quoted 7 lines

:::::: TO: Dmitry Osipenko <[email protected]>
:::::: CC: Chanwoo Choi <[email protected]>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Oh, there is no declaration for clk_set_min_rate() when CONFIG_COMMON_CLK=n. Either driver should be made dependent on CONFIG_COMMON_CLK or the declaration should be added to include/linux/clk.h (the same applies to tegra20-devfreq).

Chanwoo, what will we do?

maintainer
#2 lore raw

Quoting Dmitry Osipenko (2019-04-24 07:41:56)

Quoted 4 lines

Oh, there is no declaration for clk_set_min_rate() when CONFIG_COMMON_CLK=n. Either driver should be made dependent on CONFIG_COMMON_CLK or the declaration should be added to include/linux/clk.h (the same applies to tegra20-devfreq).

Chanwoo, what will we do?

Send a patch to add the empty wrappers to clk.h please.

#3 lore raw

25.04.2019 2:23, Stephen Boyd пишет:

Quoted 8 lines

Quoting Dmitry Osipenko (2019-04-24 07:41:56)

Quoted 4 lines

Oh, there is no declaration for clk_set_min_rate() when CONFIG_COMMON_CLK=n. Either driver should be made dependent on CONFIG_COMMON_CLK or the declaration should be added to include/linux/clk.h (the same applies to tegra20-devfreq).

Chanwoo, what will we do?

Send a patch to add the empty wrappers to clk.h please.

All right!

#4 lore raw
In reply to Dmitry Osipenko

Hi Dmitry,

Quoted 71 lines · Dmitry Osipenko

24.04.2019 17:22, kbuild test robot пишет:

Quoted 70 lines

Hi Dmitry,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git devfreq-testing
head:   6b3a07e6458befbb8b90010e92d578b08678e5ce
commit: d2a110d18c755979bffa07f45d3b4ff89e420954 [15/16] PM / devfreq: tegra: Rename tegra-devfreq.c to tegra30-devfreq.c
config: sparc64-allmodconfig (attached as .config)
compiler: sparc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0

reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
git checkout d2a110d18c755979bffa07f45d3b4ff89e420954
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=sparc64

If you fix the issue, kindly add following tag

All errors (new ones prefixed by >>):

drivers//devfreq/tegra30-devfreq.c: In function 'tegra_devfreq_target':

Quoted 1 line
Quoted 1 line

drivers//devfreq/tegra30-devfreq.c:478:8: error: implicit declaration of function 'clk_set_min_rate'; did you mean 'clk_set_rate'? [-Werror=implicit-function-declaration]

     err = clk_set_min_rate(tegra->emc_clock, rate);
           ^~~~~~~~~~~~~~~~
           clk_set_rate

cc1: some warnings being treated as errors

vim +478 drivers//devfreq/tegra30-devfreq.c

6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  460  
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  461  static int tegra_devfreq_target(struct device *dev, unsigned long *freq,
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  462  				u32 flags)
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  463  {
11573e913 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2015-03-17  464  	struct tegra_devfreq *tegra = dev_get_drvdata(dev);
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  465  	struct devfreq *devfreq = tegra->devfreq;
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  466  	struct dev_pm_opp *opp;
e76bb6df1 drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  467  	unsigned long rate;
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  468  	int err;
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  469  
e76bb6df1 drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  470  	opp = devfreq_recommended_opp(dev, freq, flags);
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  471  	if (IS_ERR(opp)) {
e76bb6df1 drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  472  		dev_err(dev, "Failed to find opp for %lu Hz\n", *freq);
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  473  		return PTR_ERR(opp);
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  474  	}
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  475  	rate = dev_pm_opp_get_freq(opp);
8a31d9d94 drivers/devfreq/tegra-devfreq.c Viresh Kumar    2017-01-23  476  	dev_pm_opp_put(opp);
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  477  
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18 @478  	err = clk_set_min_rate(tegra->emc_clock, rate);
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  479  	if (err)
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  480  		return err;
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  481  
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  482  	err = clk_set_rate(tegra->emc_clock, 0);
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  483  	if (err)
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  484  		goto restore_min_rate;
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  485  
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  486  	return 0;
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  487  
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  488  restore_min_rate:
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  489  	clk_set_min_rate(tegra->emc_clock, devfreq->previous_freq);
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  490  
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  491  	return err;
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  492  }
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  493  

:::::: The code at line 478 was first introduced by commit
:::::: 7f2e3eb6fa764bb003164c331c93306a8e1223c3 PM / devfreq: tegra: Don't ignore clk errors

:::::: TO: Dmitry Osipenko <[email protected]>
:::::: CC: Chanwoo Choi <[email protected]>

Quoted 10 lines
Quoted 4 lines

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Oh, there is no declaration for clk_set_min_rate() when CONFIG_COMMON_CLK=n. Either driver should be made dependent on CONFIG_COMMON_CLK or the declaration should be added to include/linux/clk.h (the same applies to tegra20-devfreq).

Chanwoo, what will we do?

I applied your patches to my testing branch for build test. It is not applied to official branch.

As the Stephen comments, please resend it after fixing this issue.

Signature · 3 lines
Best Regards,
Chanwoo Choi
Samsung Electronics
#5 lore raw

25.04.2019 3:03, Chanwoo Choi пишет:

Quoted 81 lines

Hi Dmitry,

Quoted 78 lines · Dmitry Osipenko

24.04.2019 17:22, kbuild test robot пишет:

Quoted 67 lines

Hi Dmitry,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git devfreq-testing
head:   6b3a07e6458befbb8b90010e92d578b08678e5ce
commit: d2a110d18c755979bffa07f45d3b4ff89e420954 [15/16] PM / devfreq: tegra: Rename tegra-devfreq.c to tegra30-devfreq.c
config: sparc64-allmodconfig (attached as .config)
compiler: sparc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0

reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
git checkout d2a110d18c755979bffa07f45d3b4ff89e420954
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=sparc64

If you fix the issue, kindly add following tag

All errors (new ones prefixed by >>):

drivers//devfreq/tegra30-devfreq.c: In function 'tegra_devfreq_target':

Quoted 1 line
Quoted 1 line

drivers//devfreq/tegra30-devfreq.c:478:8: error: implicit declaration of function 'clk_set_min_rate'; did you mean 'clk_set_rate'? [-Werror=implicit-function-declaration]

     err = clk_set_min_rate(tegra->emc_clock, rate);
           ^~~~~~~~~~~~~~~~
           clk_set_rate

cc1: some warnings being treated as errors

vim +478 drivers//devfreq/tegra30-devfreq.c

6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  460  
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  461  static int tegra_devfreq_target(struct device *dev, unsigned long *freq,
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  462  				u32 flags)
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  463  {
11573e913 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2015-03-17  464  	struct tegra_devfreq *tegra = dev_get_drvdata(dev);
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  465  	struct devfreq *devfreq = tegra->devfreq;
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  466  	struct dev_pm_opp *opp;
e76bb6df1 drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  467  	unsigned long rate;
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  468  	int err;
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  469  
e76bb6df1 drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  470  	opp = devfreq_recommended_opp(dev, freq, flags);
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  471  	if (IS_ERR(opp)) {
e76bb6df1 drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  472  		dev_err(dev, "Failed to find opp for %lu Hz\n", *freq);
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  473  		return PTR_ERR(opp);
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  474  	}
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  475  	rate = dev_pm_opp_get_freq(opp);
8a31d9d94 drivers/devfreq/tegra-devfreq.c Viresh Kumar    2017-01-23  476  	dev_pm_opp_put(opp);
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  477  
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18 @478  	err = clk_set_min_rate(tegra->emc_clock, rate);
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  479  	if (err)
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  480  		return err;
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  481  
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  482  	err = clk_set_rate(tegra->emc_clock, 0);
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  483  	if (err)
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  484  		goto restore_min_rate;
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  485  
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  486  	return 0;
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  487  
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  488  restore_min_rate:
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  489  	clk_set_min_rate(tegra->emc_clock, devfreq->previous_freq);
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  490  
7f2e3eb6f drivers/devfreq/tegra-devfreq.c Dmitry Osipenko 2019-04-18  491  	return err;
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  492  }
6234f3801 drivers/devfreq/tegra-devfreq.c Tomeu Vizoso    2014-11-24  493  

:::::: The code at line 478 was first introduced by commit
:::::: 7f2e3eb6fa764bb003164c331c93306a8e1223c3 PM / devfreq: tegra: Don't ignore clk errors

Quoted 7 lines

:::::: TO: Dmitry Osipenko <[email protected]>
:::::: CC: Chanwoo Choi <[email protected]>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Oh, there is no declaration for clk_set_min_rate() when CONFIG_COMMON_CLK=n. Either driver should be made dependent on CONFIG_COMMON_CLK or the declaration should be added to include/linux/clk.h (the same applies to tegra20-devfreq).

Quoted 10 lines
Quoted 3 lines

Chanwoo, what will we do?

I applied your patches to my testing branch for build test. It is not applied to official branch.

As the Stephen comments, please resend it after fixing this issue.

I sent out the the patch to fix the issue and will resend the devfreq series after the clk patch will get applied.