diff mbox series

soc: rockchip: Fix compile-testing SoC drivers

Message ID 20220422111914.1.Id5f16dec920f620120c0a143a97a12e16d401760@changeid (mailing list archive)
State New, archived
Headers show
Series soc: rockchip: Fix compile-testing SoC drivers | expand

Commit Message

Brian Norris April 22, 2022, 6:19 p.m. UTC
Similar to commit 7f94b69ece51 ("ARM: ixp4xx: fix compile-testing soc
drivers").

drivers/soc/rockchip/Kconfig makes plenty of provision for configuring
drivers either for ARCH_ROCKCHIP or for COMPILE_TEST. But
drivers/soc/Makefile pulls the rug out from under us, by refusing to
build anything if we specified COMPILE_TEST but not ARCH_ROCKCHIP.

Currently, I'm not aware of anything that breaks without this patch, but
it certainly makes for confusing builds (CONFIG_ROCKCHIP_PM_DOMAINS=y,
but we didn't actually compile the driver?) and leaves room for future
error (I have pending patches that break confusingly with COMPILE_TEST=y
even though their Kconfig dependencies seem correct [1]).

Defer to drivers/soc/rockchip/{Makefile,Kconfig} to do the right thing.

[1] e.g.,
https://lore.kernel.org/linux-rockchip/20220405184816.RFC.2.I2d73b403944f0b8b5871a77585b73f31ccc62999@changeid/
[RFC PATCH 2/2] PM / devfreq: rk3399_dmc: Block PMU during transitions

Signed-off-by: Brian Norris <briannorris@chromium.org>
---

 drivers/soc/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

kernel test robot April 23, 2022, 3:45 a.m. UTC | #1
Hi Brian,

I love your patch! Yet something to improve:

[auto build test ERROR on rockchip/for-next]
[also build test ERROR on soc/for-next linus/master v5.18-rc3 next-20220422]
[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/intel-lab-lkp/linux/commits/Brian-Norris/soc-rockchip-Fix-compile-testing-SoC-drivers/20220423-022353
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next
config: sh-allmodconfig (https://download.01.org/0day-ci/archive/20220423/202204231158.8u0SOzm6-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 11.2.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/intel-lab-lkp/linux/commit/bb37a0dd33d08baf273f38dbea4951d50f020588
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Brian-Norris/soc-rockchip-Fix-compile-testing-SoC-drivers/20220423-022353
        git checkout bb37a0dd33d08baf273f38dbea4951d50f020588
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross W=1 O=build_dir ARCH=sh SHELL=/bin/bash drivers/soc/

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/rockchip/pm_domains.c: In function 'rockchip_pmu_set_idle_request':
>> drivers/soc/rockchip/pm_domains.c:181:9: error: implicit declaration of function 'dsb' [-Werror=implicit-function-declaration]
     181 |         dsb(sy);
         |         ^~~
>> drivers/soc/rockchip/pm_domains.c:181:13: error: 'sy' undeclared (first use in this function); did you mean 's8'?
     181 |         dsb(sy);
         |             ^~
         |             s8
   drivers/soc/rockchip/pm_domains.c:181:13: note: each undeclared identifier is reported only once for each function it appears in
   drivers/soc/rockchip/pm_domains.c: In function 'rockchip_do_pmu_set_power_domain':
   drivers/soc/rockchip/pm_domains.c:288:13: error: 'sy' undeclared (first use in this function); did you mean 's8'?
     288 |         dsb(sy);
         |             ^~
         |             s8
   cc1: some warnings being treated as errors


vim +/dsb +181 drivers/soc/rockchip/pm_domains.c

e4c8cd82d5e114 Caesar Wang  2016-10-13  159  
7c696693a4f54d Caesar Wang  2015-09-08  160  static int rockchip_pmu_set_idle_request(struct rockchip_pm_domain *pd,
7c696693a4f54d Caesar Wang  2015-09-08  161  					 bool idle)
7c696693a4f54d Caesar Wang  2015-09-08  162  {
7c696693a4f54d Caesar Wang  2015-09-08  163  	const struct rockchip_domain_info *pd_info = pd->info;
e4c8cd82d5e114 Caesar Wang  2016-10-13  164  	struct generic_pm_domain *genpd = &pd->genpd;
7c696693a4f54d Caesar Wang  2015-09-08  165  	struct rockchip_pmu *pmu = pd->pmu;
e4c8cd82d5e114 Caesar Wang  2016-10-13  166  	unsigned int target_ack;
7c696693a4f54d Caesar Wang  2015-09-08  167  	unsigned int val;
e4c8cd82d5e114 Caesar Wang  2016-10-13  168  	bool is_idle;
e4c8cd82d5e114 Caesar Wang  2016-10-13  169  	int ret;
7c696693a4f54d Caesar Wang  2015-09-08  170  
6aa841c8097fee Elaine Zhang 2016-03-10  171  	if (pd_info->req_mask == 0)
6aa841c8097fee Elaine Zhang 2016-03-10  172  		return 0;
79bb17ce8edb31 Elaine Zhang 2016-12-23  173  	else if (pd_info->req_w_mask)
79bb17ce8edb31 Elaine Zhang 2016-12-23  174  		regmap_write(pmu->regmap, pmu->info->req_offset,
79bb17ce8edb31 Elaine Zhang 2016-12-23  175  			     idle ? (pd_info->req_mask | pd_info->req_w_mask) :
79bb17ce8edb31 Elaine Zhang 2016-12-23  176  			     pd_info->req_w_mask);
79bb17ce8edb31 Elaine Zhang 2016-12-23  177  	else
7c696693a4f54d Caesar Wang  2015-09-08  178  		regmap_update_bits(pmu->regmap, pmu->info->req_offset,
7c696693a4f54d Caesar Wang  2015-09-08  179  				   pd_info->req_mask, idle ? -1U : 0);
7c696693a4f54d Caesar Wang  2015-09-08  180  
7c696693a4f54d Caesar Wang  2015-09-08 @181  	dsb(sy);
7c696693a4f54d Caesar Wang  2015-09-08  182  
e4c8cd82d5e114 Caesar Wang  2016-10-13  183  	/* Wait util idle_ack = 1 */
e4c8cd82d5e114 Caesar Wang  2016-10-13  184  	target_ack = idle ? pd_info->ack_mask : 0;
e4c8cd82d5e114 Caesar Wang  2016-10-13  185  	ret = readx_poll_timeout_atomic(rockchip_pmu_read_ack, pmu, val,
e4c8cd82d5e114 Caesar Wang  2016-10-13  186  					(val & pd_info->ack_mask) == target_ack,
e4c8cd82d5e114 Caesar Wang  2016-10-13  187  					0, 10000);
e4c8cd82d5e114 Caesar Wang  2016-10-13  188  	if (ret) {
e4c8cd82d5e114 Caesar Wang  2016-10-13  189  		dev_err(pmu->dev,
e4c8cd82d5e114 Caesar Wang  2016-10-13  190  			"failed to get ack on domain '%s', val=0x%x\n",
e4c8cd82d5e114 Caesar Wang  2016-10-13  191  			genpd->name, val);
e4c8cd82d5e114 Caesar Wang  2016-10-13  192  		return ret;
e4c8cd82d5e114 Caesar Wang  2016-10-13  193  	}
7c696693a4f54d Caesar Wang  2015-09-08  194  
e4c8cd82d5e114 Caesar Wang  2016-10-13  195  	ret = readx_poll_timeout_atomic(rockchip_pmu_domain_is_idle, pd,
e4c8cd82d5e114 Caesar Wang  2016-10-13  196  					is_idle, is_idle == idle, 0, 10000);
e4c8cd82d5e114 Caesar Wang  2016-10-13  197  	if (ret) {
e4c8cd82d5e114 Caesar Wang  2016-10-13  198  		dev_err(pmu->dev,
e4c8cd82d5e114 Caesar Wang  2016-10-13  199  			"failed to set idle on domain '%s', val=%d\n",
e4c8cd82d5e114 Caesar Wang  2016-10-13  200  			genpd->name, is_idle);
e4c8cd82d5e114 Caesar Wang  2016-10-13  201  		return ret;
e4c8cd82d5e114 Caesar Wang  2016-10-13  202  	}
7c696693a4f54d Caesar Wang  2015-09-08  203  
7c696693a4f54d Caesar Wang  2015-09-08  204  	return 0;
7c696693a4f54d Caesar Wang  2015-09-08  205  }
7c696693a4f54d Caesar Wang  2015-09-08  206
diff mbox series

Patch

diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
index fd7717d597fc..4c91705a8bb3 100644
--- a/drivers/soc/Makefile
+++ b/drivers/soc/Makefile
@@ -23,7 +23,7 @@  obj-y				+= pxa/
 obj-y				+= amlogic/
 obj-y				+= qcom/
 obj-y				+= renesas/
-obj-$(CONFIG_ARCH_ROCKCHIP)	+= rockchip/
+obj-y				+= rockchip/
 obj-$(CONFIG_SOC_SAMSUNG)	+= samsung/
 obj-$(CONFIG_SOC_SIFIVE)	+= sifive/
 obj-y				+= sunxi/