Re: [PATCH v3 5/7] drivers: thermal: tsens: add interrupt support for 9860 driver
by kernel test robot
Hi Ansuel,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on robh/for-next]
[also build test WARNING on clk/clk-next linus/master v5.8-rc5 next-20200715]
[cannot apply to thermal/next]
[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/Ansuel-Smith/Add-support-for-ipq...
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: riscv-allyesconfig (attached as .config)
compiler: riscv64-linux-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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/dev_printk.h:14,
from include/linux/device.h:15,
from include/linux/platform_device.h:13,
from drivers/thermal/qcom/tsens-8960.c:6:
drivers/thermal/qcom/tsens-8960.c: In function 'tsens_scheduler_fn':
drivers/thermal/qcom/tsens-8960.c:124:41: error: 'struct tsens_priv' has no member named 'tsens_work'; did you mean 'sensor'?
124 | container_of(work, struct tsens_priv, tsens_work);
| ^~~~~~~~~~
include/linux/compiler.h:372:9: note: in definition of macro '__compiletime_assert'
372 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler.h:392:2: note: in expansion of macro '_compiletime_assert'
392 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/kernel.h:1003:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
1003 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~~~~~~
include/linux/kernel.h:1003:20: note: in expansion of macro '__same_type'
1003 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~
drivers/thermal/qcom/tsens-8960.c:124:3: note: in expansion of macro 'container_of'
124 | container_of(work, struct tsens_priv, tsens_work);
| ^~~~~~~~~~~~
In file included from <command-line>:
drivers/thermal/qcom/tsens-8960.c:124:41: error: 'struct tsens_priv' has no member named 'tsens_work'; did you mean 'sensor'?
124 | container_of(work, struct tsens_priv, tsens_work);
| ^~~~~~~~~~
include/linux/compiler_types.h:133:57: note: in definition of macro '__compiler_offsetof'
133 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^
include/linux/kernel.h:1006:21: note: in expansion of macro 'offsetof'
1006 | ((type *)(__mptr - offsetof(type, member))); })
| ^~~~~~~~
drivers/thermal/qcom/tsens-8960.c:124:3: note: in expansion of macro 'container_of'
124 | container_of(work, struct tsens_priv, tsens_work);
| ^~~~~~~~~~~~
>> drivers/thermal/qcom/tsens-8960.c:137:9: warning: conversion from 'long unsigned int' to 'unsigned int' changes value from '18446744073709551609' to '4294967289' [-Woverflow]
137 | mask = ~(LOWER_STATUS_CLR | UPPER_STATUS_CLR);
| ^
drivers/thermal/qcom/tsens-8960.c: In function 'tsens_isr':
drivers/thermal/qcom/tsens-8960.c:187:23: error: 'struct tsens_priv' has no member named 'tsens_work'; did you mean 'sensor'?
187 | schedule_work(&priv->tsens_work);
| ^~~~~~~~~~
| sensor
drivers/thermal/qcom/tsens-8960.c: In function 'hw_init':
drivers/thermal/qcom/tsens-8960.c:225:40: error: 'struct tsens_priv' has no member named 'tsens_irq'
225 | ret = devm_request_irq(priv->dev, priv->tsens_irq, tsens_isr,
| ^~
In file included from include/linux/rhashtable-types.h:15,
from include/linux/ipc.h:7,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/sched.h:15,
from include/linux/ratelimit.h:6,
from include/linux/dev_printk.h:16,
from include/linux/device.h:15,
from include/linux/platform_device.h:13,
from drivers/thermal/qcom/tsens-8960.c:6:
drivers/thermal/qcom/tsens-8960.c:232:19: error: 'struct tsens_priv' has no member named 'tsens_work'; did you mean 'sensor'?
232 | INIT_WORK(&priv->tsens_work, tsens_scheduler_fn);
| ^~~~~~~~~~
include/linux/workqueue.h:242:16: note: in definition of macro '__INIT_WORK'
242 | __init_work((_work), _onstack); \
| ^~~~~
drivers/thermal/qcom/tsens-8960.c:232:2: note: in expansion of macro 'INIT_WORK'
232 | INIT_WORK(&priv->tsens_work, tsens_scheduler_fn);
| ^~~~~~~~~
drivers/thermal/qcom/tsens-8960.c:232:19: error: 'struct tsens_priv' has no member named 'tsens_work'; did you mean 'sensor'?
232 | INIT_WORK(&priv->tsens_work, tsens_scheduler_fn);
| ^~~~~~~~~~
include/linux/workqueue.h:243:4: note: in definition of macro '__INIT_WORK'
243 | (_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
| ^~~~~
drivers/thermal/qcom/tsens-8960.c:232:2: note: in expansion of macro 'INIT_WORK'
232 | INIT_WORK(&priv->tsens_work, tsens_scheduler_fn);
| ^~~~~~~~~
drivers/thermal/qcom/tsens-8960.c:232:19: error: 'struct tsens_priv' has no member named 'tsens_work'; did you mean 'sensor'?
232 | INIT_WORK(&priv->tsens_work, tsens_scheduler_fn);
| ^~~~~~~~~~
include/linux/workqueue.h:244:20: note: in definition of macro '__INIT_WORK'
244 | INIT_LIST_HEAD(&(_work)->entry); \
| ^~~~~
drivers/thermal/qcom/tsens-8960.c:232:2: note: in expansion of macro 'INIT_WORK'
232 | INIT_WORK(&priv->tsens_work, tsens_scheduler_fn);
| ^~~~~~~~~
drivers/thermal/qcom/tsens-8960.c:232:19: error: 'struct tsens_priv' has no member named 'tsens_work'; did you mean 'sensor'?
232 | INIT_WORK(&priv->tsens_work, tsens_scheduler_fn);
| ^~~~~~~~~~
include/linux/workqueue.h:245:4: note: in definition of macro '__INIT_WORK'
245 | (_work)->func = (_func); \
| ^~~~~
drivers/thermal/qcom/tsens-8960.c:232:2: note: in expansion of macro 'INIT_WORK'
232 | INIT_WORK(&priv->tsens_work, tsens_scheduler_fn);
| ^~~~~~~~~
In file included from include/linux/bits.h:23,
from include/linux/bitops.h:5,
from include/linux/kernel.h:12,
from include/asm-generic/bug.h:19,
from arch/riscv/include/asm/bug.h:83,
from include/linux/bug.h:5,
from arch/riscv/include/asm/current.h:13,
from include/linux/sched.h:12,
from include/linux/ratelimit.h:6,
from include/linux/dev_printk.h:16,
from include/linux/device.h:15,
from include/linux/platform_device.h:13,
from drivers/thermal/qcom/tsens-8960.c:6:
drivers/thermal/qcom/tsens-8960.c: In function 'disable_8960':
include/linux/bits.h:26:28: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 | __builtin_constant_p((l) > (h)), (l) > (h), 0)))
| ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
| ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~~~~~~~~~~~
drivers/thermal/qcom/tsens-8960.c:323:9: note: in expansion of macro 'GENMASK'
323 | mask = GENMASK(priv->num_sensors - 1, 0);
| ^~~~~~~
include/linux/bits.h:26:40: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 | __builtin_constant_p((l) > (h)), (l) > (h), 0)))
| ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
16 | #define BUILD_BUG_ON_ZERO(e) ((int)(sizeof(struct { int:(-!!(e)); })))
| ^
include/linux/bits.h:39:3: note: in expansion of macro 'GENMASK_INPUT_CHECK'
39 | (GENMASK_INPUT_CHECK(h, l) + __GENMASK(h, l))
| ^~~~~~~~~~~~~~~~~~~
drivers/thermal/qcom/tsens-8960.c:323:9: note: in expansion of macro 'GENMASK'
323 | mask = GENMASK(priv->num_sensors - 1, 0);
| ^~~~~~~
drivers/thermal/qcom/tsens-8960.c: In function 'init_8960':
include/linux/bits.h:26:28: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
26 | __builtin_constant_p((l) > (h)), (l) > (h), 0)))
| ^
include/linux/build_bug.h:16:62: note: in definition of macro 'BUILD_BUG_ON_ZERO'
vim +137 drivers/thermal/qcom/tsens-8960.c
120
121 static void tsens_scheduler_fn(struct work_struct *work)
122 {
123 struct tsens_priv *priv =
> 124 container_of(work, struct tsens_priv, tsens_work);
125 unsigned int threshold, threshold_low, code, reg, sensor, mask;
126 bool upper_th_x, lower_th_x;
127 int ret;
128
129 ret = regmap_read(priv->tm_map, STATUS_CNTL_ADDR_8064, ®);
130 if (ret)
131 return;
132 reg = reg | LOWER_STATUS_CLR | UPPER_STATUS_CLR;
133 ret = regmap_write(priv->tm_map, STATUS_CNTL_ADDR_8064, reg);
134 if (ret)
135 return;
136
> 137 mask = ~(LOWER_STATUS_CLR | UPPER_STATUS_CLR);
138 ret = regmap_read(priv->tm_map, THRESHOLD_ADDR, &threshold);
139 if (ret)
140 return;
141 threshold_low = (threshold & THRESHOLD_LOWER_LIMIT_MASK) >>
142 THRESHOLD_LOWER_LIMIT_SHIFT;
143 threshold = (threshold & THRESHOLD_UPPER_LIMIT_MASK) >>
144 THRESHOLD_UPPER_LIMIT_SHIFT;
145
146 ret = regmap_read(priv->tm_map, STATUS_CNTL_ADDR_8064, ®);
147 if (ret)
148 return;
149
150 ret = regmap_read(priv->tm_map, CNTL_ADDR, &sensor);
151 if (ret)
152 return;
153 sensor &= (uint32_t)TSENS_8064_SENSORS_EN;
154 sensor >>= SENSOR0_SHIFT;
155
156 /* Constraint: There is only 1 interrupt control register for all
157 * 11 temperature sensor. So monitoring more than 1 sensor based
158 * on interrupts will yield inconsistent result. To overcome this
159 * issue we will monitor only sensor 0 which is the master sensor.
160 */
161
162 /* Skip if the sensor is disabled */
163 if (sensor & 1) {
164 ret = regmap_read(priv->tm_map, priv->sensor[0].status, &code);
165 if (ret)
166 return;
167 upper_th_x = code >= threshold;
168 lower_th_x = code <= threshold_low;
169 if (upper_th_x)
170 mask |= UPPER_STATUS_CLR;
171 if (lower_th_x)
172 mask |= LOWER_STATUS_CLR;
173 if (upper_th_x || lower_th_x) {
174 /* Notify user space */
175 schedule_work(&priv->sensor[0].notify_work);
176 pr_debug("Trigger (%d degrees) for sensor %d\n",
177 code_to_mdegC(code, &priv->sensor[0]), 0);
178 }
179 }
180 regmap_write(priv->tm_map, STATUS_CNTL_ADDR_8064, reg & mask);
181 }
182
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[nbdd0121:asid_v2 1/4] arch/riscv/mm/tlbflush.c:18:15: warning: variable 'cpuid' set but not used
by kernel test robot
tree: https://github.com/nbdd0121/linux asid_v2
head: f0255ecda85bc7e1f7ccf0f315a7d160c88103cf
commit: dadefe2159c1a1d30dc1057d5d4d3bef73ea5702 [1/4] riscv: rewrite tlb flush for performance
config: riscv-randconfig-r003-20200715 (attached as .config)
compiler: riscv32-linux-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
git checkout dadefe2159c1a1d30dc1057d5d4d3bef73ea5702
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
arch/riscv/mm/tlbflush.c: In function '__sbi_tlb_flush_range':
>> arch/riscv/mm/tlbflush.c:18:15: warning: variable 'cpuid' set but not used [-Wunused-but-set-variable]
18 | unsigned int cpuid;
| ^~~~~
vim +/cpuid +18 arch/riscv/mm/tlbflush.c
95594cb40c6e01 Christoph Hellwig 2019-08-21 12
dadefe2159c1a1 Gary Guo 2019-10-04 13 static void __sbi_tlb_flush_range(struct mm_struct *mm, unsigned long start,
95594cb40c6e01 Christoph Hellwig 2019-08-21 14 unsigned long size)
95594cb40c6e01 Christoph Hellwig 2019-08-21 15 {
dadefe2159c1a1 Gary Guo 2019-10-04 16 struct cpumask *cmask = mm_cpumask(mm);
95594cb40c6e01 Christoph Hellwig 2019-08-21 17 struct cpumask hmask;
31738ede9b339c Atish Patra 2019-08-22 @18 unsigned int cpuid;
95594cb40c6e01 Christoph Hellwig 2019-08-21 19
6384423f49c804 Atish Patra 2019-08-22 20 if (cpumask_empty(cmask))
6384423f49c804 Atish Patra 2019-08-22 21 return;
6384423f49c804 Atish Patra 2019-08-22 22
31738ede9b339c Atish Patra 2019-08-22 23 cpuid = get_cpu();
31738ede9b339c Atish Patra 2019-08-22 24
95594cb40c6e01 Christoph Hellwig 2019-08-21 25 riscv_cpuid_to_hartid_mask(cmask, &hmask);
dadefe2159c1a1 Gary Guo 2019-10-04 26 sbi_remote_sfence_vma_asid(cpumask_bits(&hmask), start, size, 0);
31738ede9b339c Atish Patra 2019-08-22 27
31738ede9b339c Atish Patra 2019-08-22 28 put_cpu();
95594cb40c6e01 Christoph Hellwig 2019-08-21 29 }
95594cb40c6e01 Christoph Hellwig 2019-08-21 30
:::::: The code at line 18 was first introduced by commit
:::::: 31738ede9b339c90216b8fd10da0b1567a041f06 RISC-V: Issue a local tlbflush if possible.
:::::: TO: Atish Patra <atish.patra(a)wdc.com>
:::::: CC: Paul Walmsley <paul.walmsley(a)sifive.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH v5 06/11] remoteproc: stm32: Properly set co-processor state when attaching
by kernel test robot
Hi Mathieu,
I love your patch! Yet something to improve:
[auto build test ERROR on linux/master]
[also build test ERROR on linus/master v5.8-rc5 next-20200714]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Mathieu-Poirier/remoteproc-stm32...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 9ebcfadb0610322ac537dd7aa5d9cbc2b2894c68
config: arm-randconfig-r011-20200714 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 02946de3802d3bc65bc9f2eb9b8d4969b5a7add8)
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
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> drivers/remoteproc/stm32_rproc.c:697:18: error: use of undeclared identifier 'RPROC_DETACHED'
rproc->state = RPROC_DETACHED;
^
1 error generated.
vim +/RPROC_DETACHED +697 drivers/remoteproc/stm32_rproc.c
661
662
663 static int stm32_rproc_probe(struct platform_device *pdev)
664 {
665 struct device *dev = &pdev->dev;
666 struct stm32_rproc *ddata;
667 struct device_node *np = dev->of_node;
668 struct rproc *rproc;
669 unsigned int state;
670 int ret;
671
672 ret = dma_coerce_mask_and_coherent(dev, DMA_BIT_MASK(32));
673 if (ret)
674 return ret;
675
676 rproc = rproc_alloc(dev, np->name, &st_rproc_ops, NULL, sizeof(*ddata));
677 if (!rproc)
678 return -ENOMEM;
679
680 ddata = rproc->priv;
681
682 rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE);
683
684 ret = stm32_rproc_parse_dt(pdev, ddata, &rproc->auto_boot);
685 if (ret)
686 goto free_rproc;
687
688 ret = stm32_rproc_of_memory_translations(pdev, ddata);
689 if (ret)
690 goto free_rproc;
691
692 ret = stm32_rproc_get_m4_status(ddata, &state);
693 if (ret)
694 goto free_rproc;
695
696 if (state == M4_STATE_CRUN)
> 697 rproc->state = RPROC_DETACHED;
698
699 rproc->has_iommu = false;
700 ddata->workqueue = create_workqueue(dev_name(dev));
701 if (!ddata->workqueue) {
702 dev_err(dev, "cannot create workqueue\n");
703 ret = -ENOMEM;
704 goto free_rproc;
705 }
706
707 platform_set_drvdata(pdev, rproc);
708
709 ret = stm32_rproc_request_mbox(rproc);
710 if (ret)
711 goto free_wkq;
712
713 ret = rproc_add(rproc);
714 if (ret)
715 goto free_mb;
716
717 return 0;
718
719 free_mb:
720 stm32_rproc_free_mbox(rproc);
721 free_wkq:
722 destroy_workqueue(ddata->workqueue);
723 free_rproc:
724 if (device_may_wakeup(dev)) {
725 dev_pm_clear_wake_irq(dev);
726 device_init_wakeup(dev, false);
727 }
728 rproc_free(rproc);
729 return ret;
730 }
731
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[rcar:gmsl/dev 21/24] drivers/media/i2c/max9286.c:1478:13: warning: data argument not used by format string
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/kbingham/rcar.git gmsl/dev
head: 73e3ee66deb28072d44a06d4996854442f049d23
commit: 58ed6203d791f921181ae16427b60c208b2ce26d [21/24] DNI: max9286 of_ref_read debug
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 02946de3802d3bc65bc9f2eb9b8d4969b5a7add8)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git checkout 58ed6203d791f921181ae16427b60c208b2ce26d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/media/i2c/max9286.c:1478:13: warning: data argument not used by format string [-Wformat-extra-args]
__LINE__, of_ref_read(client->dev.of_node));
^
include/linux/dev_printk.h:104:32: note: expanded from macro 'dev_err'
_dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
~~~ ^
drivers/media/i2c/max9286.c:1485:13: warning: data argument not used by format string [-Wformat-extra-args]
__LINE__, of_ref_read(client->dev.of_node));
^
include/linux/dev_printk.h:104:32: note: expanded from macro 'dev_err'
_dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
~~~ ^
drivers/media/i2c/max9286.c:1516:13: warning: data argument not used by format string [-Wformat-extra-args]
__LINE__, of_ref_read(client->dev.of_node));
^
include/linux/dev_printk.h:104:32: note: expanded from macro 'dev_err'
_dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
~~~ ^
3 warnings generated.
vim +1478 drivers/media/i2c/max9286.c
1409
1410 static int max9286_probe(struct i2c_client *client)
1411 {
1412 struct max9286_priv *priv;
1413 int ret;
1414
1415 priv = devm_kzalloc(&client->dev, sizeof(*priv), GFP_KERNEL);
1416 if (!priv)
1417 return -ENOMEM;
1418
1419 mutex_init(&priv->mutex);
1420
1421 priv->client = client;
1422 i2c_set_clientdata(client, priv);
1423
1424 priv->gpiod_pwdn = devm_gpiod_get_optional(&client->dev, "enable",
1425 GPIOD_OUT_HIGH);
1426 if (IS_ERR(priv->gpiod_pwdn))
1427 return PTR_ERR(priv->gpiod_pwdn);
1428
1429 gpiod_set_consumer_name(priv->gpiod_pwdn, "max9286-pwdn");
1430 gpiod_set_value_cansleep(priv->gpiod_pwdn, 1);
1431
1432 /* Wait at least 4ms before the I2C lines latch to the address */
1433 if (priv->gpiod_pwdn)
1434 usleep_range(4000, 5000);
1435
1436 /*
1437 * We can have multiple MAX9286 instances on the same physical I2C
1438 * bus, and I2C children behind ports of separate MAX9286 instances
1439 * having the same I2C address. As the MAX9286 starts by default with
1440 * all ports enabled, we need to disable all ports on all MAX9286
1441 * instances before proceeding to further initialize the devices and
1442 * instantiate children.
1443 *
1444 * Start by just disabling all channels on the current device. Then,
1445 * if all other MAX9286 on the parent bus have been probed, proceed
1446 * to initialize them all, including the current one.
1447 */
1448 max9286_i2c_mux_close(priv);
1449
1450 /*
1451 * The MAX9286 initialises with auto-acknowledge enabled by default.
1452 * This means that if multiple MAX9286 devices are connected to an I2C
1453 * bus, another MAX9286 could ack I2C transfers meant for a device on
1454 * the other side of the GMSL links for this MAX9286 (such as a
1455 * MAX9271). To prevent that disable auto-acknowledge early on; it
1456 * will be enabled later as needed.
1457 */
1458 max9286_configure_i2c(priv, false);
1459
1460 ret = max9286_register_gpio(priv);
1461 if (ret)
1462 goto err_powerdown;
1463
1464 priv->regulator = devm_regulator_get(&client->dev, "poc");
1465 if (IS_ERR(priv->regulator)) {
1466 if (PTR_ERR(priv->regulator) != -EPROBE_DEFER)
1467 dev_err(&client->dev,
1468 "Unable to get PoC regulator (%ld)\n",
1469 PTR_ERR(priv->regulator));
1470 else
1471 dev_err(&client->dev, "Regulator not yet available -EPROBE_DEFER...\n");
1472
1473 ret = PTR_ERR(priv->regulator);
1474 goto err_powerdown;
1475 }
1476
1477 dev_err(&client->dev, "A) of_node pre parse_dt %d.\n",
> 1478 __LINE__, of_ref_read(client->dev.of_node));
1479
1480 ret = max9286_parse_dt(priv);
1481 if (ret)
1482 goto err_powerdown;
1483
1484 dev_err(&client->dev, "B) of_node post parse_dt %d.\n",
1485 __LINE__, of_ref_read(client->dev.of_node));
1486
1487 /* Add any userspace support before we return early. */
1488 max9286_debugfs_init(priv);
1489
1490 dev_err(&client->dev, "Pre-init");
1491
1492 ret = device_for_each_child(client->dev.parent, &client->dev,
1493 max9286_is_bound);
1494 if (ret)
1495 return 0;
1496
1497 dev_dbg(&client->dev,
1498 "All max9286 probed: start initialization sequence\n");
1499 ret = device_for_each_child(client->dev.parent, NULL,
1500 max9286_init);
1501 if (ret < 0)
1502 goto err_cleanup_dt;
1503
1504 /* Leave the mux channels disabled until they are selected. */
1505 max9286_i2c_mux_close(priv);
1506
1507 return 0;
1508
1509 err_cleanup_dt:
1510 max9286_cleanup_dt(priv);
1511 max9286_debugfs_remove(priv);
1512 err_powerdown:
1513 gpiod_set_value_cansleep(priv->gpiod_pwdn, 0);
1514
1515 dev_err(&client->dev, "C) of_node post parse_dt %d.\n",
1516 __LINE__, of_ref_read(client->dev.of_node));
1517
1518 return ret;
1519 }
1520
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[clk:clk-qcom 13/14] drivers/clk/qcom/gcc-ipq8074.c:4610:30: warning: initializer overrides prior initialization of this subobject
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-qcom
head: b4297844995f380588e6f935a2f98c399129a9b2
commit: f0cfcf1ade201dcfd3365f231efc90e846fa46df [13/14] clk: qcom: ipq8074: Add missing clocks for pcie
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 02946de3802d3bc65bc9f2eb9b8d4969b5a7add8)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git checkout f0cfcf1ade201dcfd3365f231efc90e846fa46df
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/clk/qcom/gcc-ipq8074.c:4610:30: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
[GCC_PCIE0_RCHNG_CLK_SRC] = &pcie0_rchng_clk_src.clkr,
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/qcom/gcc-ipq8074.c:4519:29: note: previous initialization is here
[GCC_USB1_MOCK_UTMI_CLK] = &gcc_usb1_mock_utmi_clk.clkr,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/qcom/gcc-ipq8074.c:4611:26: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
[GCC_PCIE0_RCHNG_CLK] = &gcc_pcie0_rchng_clk.clkr,
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/qcom/gcc-ipq8074.c:4520:31: note: previous initialization is here
[GCC_USB1_PHY_CFG_AHB_CLK] = &gcc_usb1_phy_cfg_ahb_clk.clkr,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/qcom/gcc-ipq8074.c:4612:33: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
[GCC_PCIE0_AXI_S_BRIDGE_CLK] = &gcc_pcie0_axi_s_bridge_clk.clkr,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/clk/qcom/gcc-ipq8074.c:4518:26: note: previous initialization is here
[GCC_USB1_MASTER_CLK] = &gcc_usb1_master_clk.clkr,
^~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings generated.
vim +4610 drivers/clk/qcom/gcc-ipq8074.c
4384
4385 static struct clk_regmap *gcc_ipq8074_clks[] = {
4386 [GPLL0_MAIN] = &gpll0_main.clkr,
4387 [GPLL0] = &gpll0.clkr,
4388 [GPLL2_MAIN] = &gpll2_main.clkr,
4389 [GPLL2] = &gpll2.clkr,
4390 [GPLL4_MAIN] = &gpll4_main.clkr,
4391 [GPLL4] = &gpll4.clkr,
4392 [GPLL6_MAIN] = &gpll6_main.clkr,
4393 [GPLL6] = &gpll6.clkr,
4394 [UBI32_PLL_MAIN] = &ubi32_pll_main.clkr,
4395 [UBI32_PLL] = &ubi32_pll.clkr,
4396 [NSS_CRYPTO_PLL_MAIN] = &nss_crypto_pll_main.clkr,
4397 [NSS_CRYPTO_PLL] = &nss_crypto_pll.clkr,
4398 [PCNOC_BFDCD_CLK_SRC] = &pcnoc_bfdcd_clk_src.clkr,
4399 [GCC_SLEEP_CLK_SRC] = &gcc_sleep_clk_src.clkr,
4400 [BLSP1_QUP1_I2C_APPS_CLK_SRC] = &blsp1_qup1_i2c_apps_clk_src.clkr,
4401 [BLSP1_QUP1_SPI_APPS_CLK_SRC] = &blsp1_qup1_spi_apps_clk_src.clkr,
4402 [BLSP1_QUP2_I2C_APPS_CLK_SRC] = &blsp1_qup2_i2c_apps_clk_src.clkr,
4403 [BLSP1_QUP2_SPI_APPS_CLK_SRC] = &blsp1_qup2_spi_apps_clk_src.clkr,
4404 [BLSP1_QUP3_I2C_APPS_CLK_SRC] = &blsp1_qup3_i2c_apps_clk_src.clkr,
4405 [BLSP1_QUP3_SPI_APPS_CLK_SRC] = &blsp1_qup3_spi_apps_clk_src.clkr,
4406 [BLSP1_QUP4_I2C_APPS_CLK_SRC] = &blsp1_qup4_i2c_apps_clk_src.clkr,
4407 [BLSP1_QUP4_SPI_APPS_CLK_SRC] = &blsp1_qup4_spi_apps_clk_src.clkr,
4408 [BLSP1_QUP5_I2C_APPS_CLK_SRC] = &blsp1_qup5_i2c_apps_clk_src.clkr,
4409 [BLSP1_QUP5_SPI_APPS_CLK_SRC] = &blsp1_qup5_spi_apps_clk_src.clkr,
4410 [BLSP1_QUP6_I2C_APPS_CLK_SRC] = &blsp1_qup6_i2c_apps_clk_src.clkr,
4411 [BLSP1_QUP6_SPI_APPS_CLK_SRC] = &blsp1_qup6_spi_apps_clk_src.clkr,
4412 [BLSP1_UART1_APPS_CLK_SRC] = &blsp1_uart1_apps_clk_src.clkr,
4413 [BLSP1_UART2_APPS_CLK_SRC] = &blsp1_uart2_apps_clk_src.clkr,
4414 [BLSP1_UART3_APPS_CLK_SRC] = &blsp1_uart3_apps_clk_src.clkr,
4415 [BLSP1_UART4_APPS_CLK_SRC] = &blsp1_uart4_apps_clk_src.clkr,
4416 [BLSP1_UART5_APPS_CLK_SRC] = &blsp1_uart5_apps_clk_src.clkr,
4417 [BLSP1_UART6_APPS_CLK_SRC] = &blsp1_uart6_apps_clk_src.clkr,
4418 [PCIE0_AXI_CLK_SRC] = &pcie0_axi_clk_src.clkr,
4419 [PCIE0_AUX_CLK_SRC] = &pcie0_aux_clk_src.clkr,
4420 [PCIE0_PIPE_CLK_SRC] = &pcie0_pipe_clk_src.clkr,
4421 [PCIE1_AXI_CLK_SRC] = &pcie1_axi_clk_src.clkr,
4422 [PCIE1_AUX_CLK_SRC] = &pcie1_aux_clk_src.clkr,
4423 [PCIE1_PIPE_CLK_SRC] = &pcie1_pipe_clk_src.clkr,
4424 [SDCC1_APPS_CLK_SRC] = &sdcc1_apps_clk_src.clkr,
4425 [SDCC1_ICE_CORE_CLK_SRC] = &sdcc1_ice_core_clk_src.clkr,
4426 [SDCC2_APPS_CLK_SRC] = &sdcc2_apps_clk_src.clkr,
4427 [USB0_MASTER_CLK_SRC] = &usb0_master_clk_src.clkr,
4428 [USB0_AUX_CLK_SRC] = &usb0_aux_clk_src.clkr,
4429 [USB0_MOCK_UTMI_CLK_SRC] = &usb0_mock_utmi_clk_src.clkr,
4430 [USB0_PIPE_CLK_SRC] = &usb0_pipe_clk_src.clkr,
4431 [USB1_MASTER_CLK_SRC] = &usb1_master_clk_src.clkr,
4432 [USB1_AUX_CLK_SRC] = &usb1_aux_clk_src.clkr,
4433 [USB1_MOCK_UTMI_CLK_SRC] = &usb1_mock_utmi_clk_src.clkr,
4434 [USB1_PIPE_CLK_SRC] = &usb1_pipe_clk_src.clkr,
4435 [GCC_XO_CLK_SRC] = &gcc_xo_clk_src.clkr,
4436 [SYSTEM_NOC_BFDCD_CLK_SRC] = &system_noc_bfdcd_clk_src.clkr,
4437 [NSS_CE_CLK_SRC] = &nss_ce_clk_src.clkr,
4438 [NSS_NOC_BFDCD_CLK_SRC] = &nss_noc_bfdcd_clk_src.clkr,
4439 [NSS_CRYPTO_CLK_SRC] = &nss_crypto_clk_src.clkr,
4440 [NSS_UBI0_CLK_SRC] = &nss_ubi0_clk_src.clkr,
4441 [NSS_UBI0_DIV_CLK_SRC] = &nss_ubi0_div_clk_src.clkr,
4442 [NSS_UBI1_CLK_SRC] = &nss_ubi1_clk_src.clkr,
4443 [NSS_UBI1_DIV_CLK_SRC] = &nss_ubi1_div_clk_src.clkr,
4444 [UBI_MPT_CLK_SRC] = &ubi_mpt_clk_src.clkr,
4445 [NSS_IMEM_CLK_SRC] = &nss_imem_clk_src.clkr,
4446 [NSS_PPE_CLK_SRC] = &nss_ppe_clk_src.clkr,
4447 [NSS_PORT1_RX_CLK_SRC] = &nss_port1_rx_clk_src.clkr,
4448 [NSS_PORT1_RX_DIV_CLK_SRC] = &nss_port1_rx_div_clk_src.clkr,
4449 [NSS_PORT1_TX_CLK_SRC] = &nss_port1_tx_clk_src.clkr,
4450 [NSS_PORT1_TX_DIV_CLK_SRC] = &nss_port1_tx_div_clk_src.clkr,
4451 [NSS_PORT2_RX_CLK_SRC] = &nss_port2_rx_clk_src.clkr,
4452 [NSS_PORT2_RX_DIV_CLK_SRC] = &nss_port2_rx_div_clk_src.clkr,
4453 [NSS_PORT2_TX_CLK_SRC] = &nss_port2_tx_clk_src.clkr,
4454 [NSS_PORT2_TX_DIV_CLK_SRC] = &nss_port2_tx_div_clk_src.clkr,
4455 [NSS_PORT3_RX_CLK_SRC] = &nss_port3_rx_clk_src.clkr,
4456 [NSS_PORT3_RX_DIV_CLK_SRC] = &nss_port3_rx_div_clk_src.clkr,
4457 [NSS_PORT3_TX_CLK_SRC] = &nss_port3_tx_clk_src.clkr,
4458 [NSS_PORT3_TX_DIV_CLK_SRC] = &nss_port3_tx_div_clk_src.clkr,
4459 [NSS_PORT4_RX_CLK_SRC] = &nss_port4_rx_clk_src.clkr,
4460 [NSS_PORT4_RX_DIV_CLK_SRC] = &nss_port4_rx_div_clk_src.clkr,
4461 [NSS_PORT4_TX_CLK_SRC] = &nss_port4_tx_clk_src.clkr,
4462 [NSS_PORT4_TX_DIV_CLK_SRC] = &nss_port4_tx_div_clk_src.clkr,
4463 [NSS_PORT5_RX_CLK_SRC] = &nss_port5_rx_clk_src.clkr,
4464 [NSS_PORT5_RX_DIV_CLK_SRC] = &nss_port5_rx_div_clk_src.clkr,
4465 [NSS_PORT5_TX_CLK_SRC] = &nss_port5_tx_clk_src.clkr,
4466 [NSS_PORT5_TX_DIV_CLK_SRC] = &nss_port5_tx_div_clk_src.clkr,
4467 [NSS_PORT6_RX_CLK_SRC] = &nss_port6_rx_clk_src.clkr,
4468 [NSS_PORT6_RX_DIV_CLK_SRC] = &nss_port6_rx_div_clk_src.clkr,
4469 [NSS_PORT6_TX_CLK_SRC] = &nss_port6_tx_clk_src.clkr,
4470 [NSS_PORT6_TX_DIV_CLK_SRC] = &nss_port6_tx_div_clk_src.clkr,
4471 [CRYPTO_CLK_SRC] = &crypto_clk_src.clkr,
4472 [GP1_CLK_SRC] = &gp1_clk_src.clkr,
4473 [GP2_CLK_SRC] = &gp2_clk_src.clkr,
4474 [GP3_CLK_SRC] = &gp3_clk_src.clkr,
4475 [GCC_BLSP1_AHB_CLK] = &gcc_blsp1_ahb_clk.clkr,
4476 [GCC_BLSP1_QUP1_I2C_APPS_CLK] = &gcc_blsp1_qup1_i2c_apps_clk.clkr,
4477 [GCC_BLSP1_QUP1_SPI_APPS_CLK] = &gcc_blsp1_qup1_spi_apps_clk.clkr,
4478 [GCC_BLSP1_QUP2_I2C_APPS_CLK] = &gcc_blsp1_qup2_i2c_apps_clk.clkr,
4479 [GCC_BLSP1_QUP2_SPI_APPS_CLK] = &gcc_blsp1_qup2_spi_apps_clk.clkr,
4480 [GCC_BLSP1_QUP3_I2C_APPS_CLK] = &gcc_blsp1_qup3_i2c_apps_clk.clkr,
4481 [GCC_BLSP1_QUP3_SPI_APPS_CLK] = &gcc_blsp1_qup3_spi_apps_clk.clkr,
4482 [GCC_BLSP1_QUP4_I2C_APPS_CLK] = &gcc_blsp1_qup4_i2c_apps_clk.clkr,
4483 [GCC_BLSP1_QUP4_SPI_APPS_CLK] = &gcc_blsp1_qup4_spi_apps_clk.clkr,
4484 [GCC_BLSP1_QUP5_I2C_APPS_CLK] = &gcc_blsp1_qup5_i2c_apps_clk.clkr,
4485 [GCC_BLSP1_QUP5_SPI_APPS_CLK] = &gcc_blsp1_qup5_spi_apps_clk.clkr,
4486 [GCC_BLSP1_QUP6_I2C_APPS_CLK] = &gcc_blsp1_qup6_i2c_apps_clk.clkr,
4487 [GCC_BLSP1_QUP6_SPI_APPS_CLK] = &gcc_blsp1_qup6_spi_apps_clk.clkr,
4488 [GCC_BLSP1_UART1_APPS_CLK] = &gcc_blsp1_uart1_apps_clk.clkr,
4489 [GCC_BLSP1_UART2_APPS_CLK] = &gcc_blsp1_uart2_apps_clk.clkr,
4490 [GCC_BLSP1_UART3_APPS_CLK] = &gcc_blsp1_uart3_apps_clk.clkr,
4491 [GCC_BLSP1_UART4_APPS_CLK] = &gcc_blsp1_uart4_apps_clk.clkr,
4492 [GCC_BLSP1_UART5_APPS_CLK] = &gcc_blsp1_uart5_apps_clk.clkr,
4493 [GCC_BLSP1_UART6_APPS_CLK] = &gcc_blsp1_uart6_apps_clk.clkr,
4494 [GCC_PRNG_AHB_CLK] = &gcc_prng_ahb_clk.clkr,
4495 [GCC_QPIC_AHB_CLK] = &gcc_qpic_ahb_clk.clkr,
4496 [GCC_QPIC_CLK] = &gcc_qpic_clk.clkr,
4497 [GCC_PCIE0_AHB_CLK] = &gcc_pcie0_ahb_clk.clkr,
4498 [GCC_PCIE0_AUX_CLK] = &gcc_pcie0_aux_clk.clkr,
4499 [GCC_PCIE0_AXI_M_CLK] = &gcc_pcie0_axi_m_clk.clkr,
4500 [GCC_PCIE0_AXI_S_CLK] = &gcc_pcie0_axi_s_clk.clkr,
4501 [GCC_PCIE0_PIPE_CLK] = &gcc_pcie0_pipe_clk.clkr,
4502 [GCC_SYS_NOC_PCIE0_AXI_CLK] = &gcc_sys_noc_pcie0_axi_clk.clkr,
4503 [GCC_PCIE1_AHB_CLK] = &gcc_pcie1_ahb_clk.clkr,
4504 [GCC_PCIE1_AUX_CLK] = &gcc_pcie1_aux_clk.clkr,
4505 [GCC_PCIE1_AXI_M_CLK] = &gcc_pcie1_axi_m_clk.clkr,
4506 [GCC_PCIE1_AXI_S_CLK] = &gcc_pcie1_axi_s_clk.clkr,
4507 [GCC_PCIE1_PIPE_CLK] = &gcc_pcie1_pipe_clk.clkr,
4508 [GCC_SYS_NOC_PCIE1_AXI_CLK] = &gcc_sys_noc_pcie1_axi_clk.clkr,
4509 [GCC_USB0_AUX_CLK] = &gcc_usb0_aux_clk.clkr,
4510 [GCC_SYS_NOC_USB0_AXI_CLK] = &gcc_sys_noc_usb0_axi_clk.clkr,
4511 [GCC_USB0_MASTER_CLK] = &gcc_usb0_master_clk.clkr,
4512 [GCC_USB0_MOCK_UTMI_CLK] = &gcc_usb0_mock_utmi_clk.clkr,
4513 [GCC_USB0_PHY_CFG_AHB_CLK] = &gcc_usb0_phy_cfg_ahb_clk.clkr,
4514 [GCC_USB0_PIPE_CLK] = &gcc_usb0_pipe_clk.clkr,
4515 [GCC_USB0_SLEEP_CLK] = &gcc_usb0_sleep_clk.clkr,
4516 [GCC_USB1_AUX_CLK] = &gcc_usb1_aux_clk.clkr,
4517 [GCC_SYS_NOC_USB1_AXI_CLK] = &gcc_sys_noc_usb1_axi_clk.clkr,
4518 [GCC_USB1_MASTER_CLK] = &gcc_usb1_master_clk.clkr,
4519 [GCC_USB1_MOCK_UTMI_CLK] = &gcc_usb1_mock_utmi_clk.clkr,
4520 [GCC_USB1_PHY_CFG_AHB_CLK] = &gcc_usb1_phy_cfg_ahb_clk.clkr,
4521 [GCC_USB1_PIPE_CLK] = &gcc_usb1_pipe_clk.clkr,
4522 [GCC_USB1_SLEEP_CLK] = &gcc_usb1_sleep_clk.clkr,
4523 [GCC_SDCC1_AHB_CLK] = &gcc_sdcc1_ahb_clk.clkr,
4524 [GCC_SDCC1_APPS_CLK] = &gcc_sdcc1_apps_clk.clkr,
4525 [GCC_SDCC1_ICE_CORE_CLK] = &gcc_sdcc1_ice_core_clk.clkr,
4526 [GCC_SDCC2_AHB_CLK] = &gcc_sdcc2_ahb_clk.clkr,
4527 [GCC_SDCC2_APPS_CLK] = &gcc_sdcc2_apps_clk.clkr,
4528 [GCC_MEM_NOC_NSS_AXI_CLK] = &gcc_mem_noc_nss_axi_clk.clkr,
4529 [GCC_NSS_CE_APB_CLK] = &gcc_nss_ce_apb_clk.clkr,
4530 [GCC_NSS_CE_AXI_CLK] = &gcc_nss_ce_axi_clk.clkr,
4531 [GCC_NSS_CFG_CLK] = &gcc_nss_cfg_clk.clkr,
4532 [GCC_NSS_CRYPTO_CLK] = &gcc_nss_crypto_clk.clkr,
4533 [GCC_NSS_CSR_CLK] = &gcc_nss_csr_clk.clkr,
4534 [GCC_NSS_EDMA_CFG_CLK] = &gcc_nss_edma_cfg_clk.clkr,
4535 [GCC_NSS_EDMA_CLK] = &gcc_nss_edma_clk.clkr,
4536 [GCC_NSS_IMEM_CLK] = &gcc_nss_imem_clk.clkr,
4537 [GCC_NSS_NOC_CLK] = &gcc_nss_noc_clk.clkr,
4538 [GCC_NSS_PPE_BTQ_CLK] = &gcc_nss_ppe_btq_clk.clkr,
4539 [GCC_NSS_PPE_CFG_CLK] = &gcc_nss_ppe_cfg_clk.clkr,
4540 [GCC_NSS_PPE_CLK] = &gcc_nss_ppe_clk.clkr,
4541 [GCC_NSS_PPE_IPE_CLK] = &gcc_nss_ppe_ipe_clk.clkr,
4542 [GCC_NSS_PTP_REF_CLK] = &gcc_nss_ptp_ref_clk.clkr,
4543 [GCC_NSSNOC_CE_APB_CLK] = &gcc_nssnoc_ce_apb_clk.clkr,
4544 [GCC_NSSNOC_CE_AXI_CLK] = &gcc_nssnoc_ce_axi_clk.clkr,
4545 [GCC_NSSNOC_CRYPTO_CLK] = &gcc_nssnoc_crypto_clk.clkr,
4546 [GCC_NSSNOC_PPE_CFG_CLK] = &gcc_nssnoc_ppe_cfg_clk.clkr,
4547 [GCC_NSSNOC_PPE_CLK] = &gcc_nssnoc_ppe_clk.clkr,
4548 [GCC_NSSNOC_QOSGEN_REF_CLK] = &gcc_nssnoc_qosgen_ref_clk.clkr,
4549 [GCC_NSSNOC_SNOC_CLK] = &gcc_nssnoc_snoc_clk.clkr,
4550 [GCC_NSSNOC_TIMEOUT_REF_CLK] = &gcc_nssnoc_timeout_ref_clk.clkr,
4551 [GCC_NSSNOC_UBI0_AHB_CLK] = &gcc_nssnoc_ubi0_ahb_clk.clkr,
4552 [GCC_NSSNOC_UBI1_AHB_CLK] = &gcc_nssnoc_ubi1_ahb_clk.clkr,
4553 [GCC_UBI0_AHB_CLK] = &gcc_ubi0_ahb_clk.clkr,
4554 [GCC_UBI0_AXI_CLK] = &gcc_ubi0_axi_clk.clkr,
4555 [GCC_UBI0_NC_AXI_CLK] = &gcc_ubi0_nc_axi_clk.clkr,
4556 [GCC_UBI0_CORE_CLK] = &gcc_ubi0_core_clk.clkr,
4557 [GCC_UBI0_MPT_CLK] = &gcc_ubi0_mpt_clk.clkr,
4558 [GCC_UBI1_AHB_CLK] = &gcc_ubi1_ahb_clk.clkr,
4559 [GCC_UBI1_AXI_CLK] = &gcc_ubi1_axi_clk.clkr,
4560 [GCC_UBI1_NC_AXI_CLK] = &gcc_ubi1_nc_axi_clk.clkr,
4561 [GCC_UBI1_CORE_CLK] = &gcc_ubi1_core_clk.clkr,
4562 [GCC_UBI1_MPT_CLK] = &gcc_ubi1_mpt_clk.clkr,
4563 [GCC_CMN_12GPLL_AHB_CLK] = &gcc_cmn_12gpll_ahb_clk.clkr,
4564 [GCC_CMN_12GPLL_SYS_CLK] = &gcc_cmn_12gpll_sys_clk.clkr,
4565 [GCC_MDIO_AHB_CLK] = &gcc_mdio_ahb_clk.clkr,
4566 [GCC_UNIPHY0_AHB_CLK] = &gcc_uniphy0_ahb_clk.clkr,
4567 [GCC_UNIPHY0_SYS_CLK] = &gcc_uniphy0_sys_clk.clkr,
4568 [GCC_UNIPHY1_AHB_CLK] = &gcc_uniphy1_ahb_clk.clkr,
4569 [GCC_UNIPHY1_SYS_CLK] = &gcc_uniphy1_sys_clk.clkr,
4570 [GCC_UNIPHY2_AHB_CLK] = &gcc_uniphy2_ahb_clk.clkr,
4571 [GCC_UNIPHY2_SYS_CLK] = &gcc_uniphy2_sys_clk.clkr,
4572 [GCC_NSS_PORT1_RX_CLK] = &gcc_nss_port1_rx_clk.clkr,
4573 [GCC_NSS_PORT1_TX_CLK] = &gcc_nss_port1_tx_clk.clkr,
4574 [GCC_NSS_PORT2_RX_CLK] = &gcc_nss_port2_rx_clk.clkr,
4575 [GCC_NSS_PORT2_TX_CLK] = &gcc_nss_port2_tx_clk.clkr,
4576 [GCC_NSS_PORT3_RX_CLK] = &gcc_nss_port3_rx_clk.clkr,
4577 [GCC_NSS_PORT3_TX_CLK] = &gcc_nss_port3_tx_clk.clkr,
4578 [GCC_NSS_PORT4_RX_CLK] = &gcc_nss_port4_rx_clk.clkr,
4579 [GCC_NSS_PORT4_TX_CLK] = &gcc_nss_port4_tx_clk.clkr,
4580 [GCC_NSS_PORT5_RX_CLK] = &gcc_nss_port5_rx_clk.clkr,
4581 [GCC_NSS_PORT5_TX_CLK] = &gcc_nss_port5_tx_clk.clkr,
4582 [GCC_NSS_PORT6_RX_CLK] = &gcc_nss_port6_rx_clk.clkr,
4583 [GCC_NSS_PORT6_TX_CLK] = &gcc_nss_port6_tx_clk.clkr,
4584 [GCC_PORT1_MAC_CLK] = &gcc_port1_mac_clk.clkr,
4585 [GCC_PORT2_MAC_CLK] = &gcc_port2_mac_clk.clkr,
4586 [GCC_PORT3_MAC_CLK] = &gcc_port3_mac_clk.clkr,
4587 [GCC_PORT4_MAC_CLK] = &gcc_port4_mac_clk.clkr,
4588 [GCC_PORT5_MAC_CLK] = &gcc_port5_mac_clk.clkr,
4589 [GCC_PORT6_MAC_CLK] = &gcc_port6_mac_clk.clkr,
4590 [GCC_UNIPHY0_PORT1_RX_CLK] = &gcc_uniphy0_port1_rx_clk.clkr,
4591 [GCC_UNIPHY0_PORT1_TX_CLK] = &gcc_uniphy0_port1_tx_clk.clkr,
4592 [GCC_UNIPHY0_PORT2_RX_CLK] = &gcc_uniphy0_port2_rx_clk.clkr,
4593 [GCC_UNIPHY0_PORT2_TX_CLK] = &gcc_uniphy0_port2_tx_clk.clkr,
4594 [GCC_UNIPHY0_PORT3_RX_CLK] = &gcc_uniphy0_port3_rx_clk.clkr,
4595 [GCC_UNIPHY0_PORT3_TX_CLK] = &gcc_uniphy0_port3_tx_clk.clkr,
4596 [GCC_UNIPHY0_PORT4_RX_CLK] = &gcc_uniphy0_port4_rx_clk.clkr,
4597 [GCC_UNIPHY0_PORT4_TX_CLK] = &gcc_uniphy0_port4_tx_clk.clkr,
4598 [GCC_UNIPHY0_PORT5_RX_CLK] = &gcc_uniphy0_port5_rx_clk.clkr,
4599 [GCC_UNIPHY0_PORT5_TX_CLK] = &gcc_uniphy0_port5_tx_clk.clkr,
4600 [GCC_UNIPHY1_PORT5_RX_CLK] = &gcc_uniphy1_port5_rx_clk.clkr,
4601 [GCC_UNIPHY1_PORT5_TX_CLK] = &gcc_uniphy1_port5_tx_clk.clkr,
4602 [GCC_UNIPHY2_PORT6_RX_CLK] = &gcc_uniphy2_port6_rx_clk.clkr,
4603 [GCC_UNIPHY2_PORT6_TX_CLK] = &gcc_uniphy2_port6_tx_clk.clkr,
4604 [GCC_CRYPTO_AHB_CLK] = &gcc_crypto_ahb_clk.clkr,
4605 [GCC_CRYPTO_AXI_CLK] = &gcc_crypto_axi_clk.clkr,
4606 [GCC_CRYPTO_CLK] = &gcc_crypto_clk.clkr,
4607 [GCC_GP1_CLK] = &gcc_gp1_clk.clkr,
4608 [GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
4609 [GCC_GP3_CLK] = &gcc_gp3_clk.clkr,
> 4610 [GCC_PCIE0_RCHNG_CLK_SRC] = &pcie0_rchng_clk_src.clkr,
4611 [GCC_PCIE0_RCHNG_CLK] = &gcc_pcie0_rchng_clk.clkr,
4612 [GCC_PCIE0_AXI_S_BRIDGE_CLK] = &gcc_pcie0_axi_s_bridge_clk.clkr,
4613 };
4614
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH 8/8] drm/mgag200: Add support for G200 desktop cards
by kernel test robot
Hi Thomas,
I love your patch! Perhaps something to improve:
[auto build test WARNING on drm-tip/drm-tip]
[also build test WARNING on next-20200715]
[cannot apply to drm-intel/for-linux-next drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next linus/master drm/drm-next v5.8-rc5]
[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/Thomas-Zimmermann/drm-mgag200-Su...
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: i386-randconfig-s002-20200715 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-49-g707c5017-dirty
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/mgag200/mgag200_drv.c:143:17: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:143:36: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:143:55: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:144:17: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:144:36: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:144:55: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:147:23: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:147:57: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:153:17: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:153:36: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:154:31: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:155:32: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:158:32: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:158:43: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:179:27: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:179:39: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:184:25: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:185:58: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:188:25: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:189:58: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:190:25: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:194:25: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:195:57: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:196:25: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:200:27: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:201:25: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:202:57: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:203:25: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:204:57: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:205:25: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:227:30: sparse: sparse: dereference of noderef expression
drivers/gpu/drm/mgag200/mgag200_drv.c:227:49: sparse: sparse: dereference of noderef expression
vim +143 drivers/gpu/drm/mgag200/mgag200_drv.c
125
126 static void mgag200_g200_interpret_bios(struct mga_device *mdev,
127 unsigned char __iomem *bios,
128 size_t size)
129 {
130 static const unsigned int expected_length[6] = {
131 0, 64, 64, 64, 128, 128
132 };
133
134 struct drm_device *dev = &mdev->base;
135 unsigned char __iomem *pins;
136 unsigned int pins_len, version;
137 int offset;
138 int tmp;
139
140 if (size < MGA_BIOS_OFFSET + 1)
141 return;
142
> 143 if (bios[45] != 'M' || bios[46] != 'A' || bios[47] != 'T' ||
144 bios[48] != 'R' || bios[49] != 'O' || bios[50] != 'X')
145 return;
146
147 offset = (bios[MGA_BIOS_OFFSET + 1] << 8) | bios[MGA_BIOS_OFFSET];
148
149 if (offset + 5 > size)
150 return;
151
152 pins = bios + offset;
153 if (pins[0] == 0x2e && pins[1] == 0x41) {
154 version = pins[5];
155 pins_len = pins[2];
156 } else {
157 version = 1;
158 pins_len = pins[0] + (pins[1] << 8);
159 }
160
161 if (version < 1 || version > 5) {
162 drm_warn(dev, "Unknown BIOS PInS version: %d\n", version);
163 return;
164 }
165 if (pins_len != expected_length[version]) {
166 drm_warn(dev, "Unexpected BIOS PInS size: %d expeced: %d\n",
167 pins_len, expected_length[version]);
168 return;
169 }
170
171 if (offset + pins_len > size)
172 return;
173
174 drm_dbg_kms(dev, "MATROX BIOS PInS version %d size: %d found\n",
175 version, pins_len);
176
177 switch (version) {
178 case 1:
179 tmp = pins[24] + (pins[25] << 8);
180 if (tmp)
181 mdev->model.g200.pclk_max = tmp * 10;
182 break;
183 case 2:
184 if (pins[41] != 0xff)
185 mdev->model.g200.pclk_max = (pins[41] + 100) * 1000;
186 break;
187 case 3:
188 if (pins[36] != 0xff)
189 mdev->model.g200.pclk_max = (pins[36] + 100) * 1000;
190 if (pins[52] & 0x20)
191 mdev->model.g200.ref_clk = 14318;
192 break;
193 case 4:
194 if (pins[39] != 0xff)
195 mdev->model.g200.pclk_max = pins[39] * 4 * 1000;
196 if (pins[92] & 0x01)
197 mdev->model.g200.ref_clk = 14318;
198 break;
199 case 5:
200 tmp = pins[4] ? 8000 : 6000;
201 if (pins[123] != 0xff)
202 mdev->model.g200.pclk_min = pins[123] * tmp;
203 if (pins[38] != 0xff)
204 mdev->model.g200.pclk_max = pins[38] * tmp;
205 if (pins[110] & 0x01)
206 mdev->model.g200.ref_clk = 14318;
207 break;
208 default:
209 break;
210 }
211 }
212
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH 1/5] iommu/arm-smmu: Make all valid stream mappings BYPASS
by kernel test robot
Hi Bjorn,
I love your patch! Perhaps something to improve:
[auto build test WARNING on iommu/next]
[also build test WARNING on arm-perf/for-next/perf v5.8-rc5 next-20200715]
[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/Bjorn-Andersson/iommu-arm-smmu-S...
base: https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git next
config: arm64-randconfig-r022-20200715 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 02946de3802d3bc65bc9f2eb9b8d4969b5a7add8)
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
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/iommu/arm-smmu.c:1927:5: warning: no previous prototype for function 'arm_smmu_setup_identity' [-Wmissing-prototypes]
int arm_smmu_setup_identity(struct arm_smmu_device *smmu)
^
drivers/iommu/arm-smmu.c:1927:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int arm_smmu_setup_identity(struct arm_smmu_device *smmu)
^
static
1 warning generated.
vim +/arm_smmu_setup_identity +1927 drivers/iommu/arm-smmu.c
1926
> 1927 int arm_smmu_setup_identity(struct arm_smmu_device *smmu)
1928 {
1929 int i;
1930
1931 for (i = 0; i < smmu->num_mapping_groups; i++) {
1932 if (smmu->smrs[i].valid) {
1933 smmu->s2crs[i].type = S2CR_TYPE_BYPASS;
1934 smmu->s2crs[i].privcfg = S2CR_PRIVCFG_DEFAULT;
1935 smmu->s2crs[i].cbndx = 0xff;
1936 smmu->s2crs[i].count++;
1937 }
1938 }
1939
1940 return 0;
1941 }
1942
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months