[xilinx-xlnx:master 269/326] include/linux/firmware/xlnx-zynqmp.h:1244:5: warning: no previous prototype for function 'zynqmp_pm_get_meta_header'
by kernel test robot
tree: https://github.com/Xilinx/linux-xlnx master
head: 6a698dbaaf0e6caa053476c2f661b36885a0ce30
commit: 22272cc48b5399af99792722fa7004735b769e0a [269/326] firmware: xilinx: Add support to get the image meta-header info
config: hexagon-randconfig-r041-20220112 (https://download.01.org/0day-ci/archive/20220113/202201130455.ASiUDDqB-lk...)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 244dd2913a43a200f5a6544d424cdc37b771028b)
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/Xilinx/linux-xlnx/commit/22272cc48b5399af99792722fa700...
git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xilinx-xlnx master
git checkout 22272cc48b5399af99792722fa7004735b769e0a
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash
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 drivers/fpga/zynqmp-fpga.c:14:
>> include/linux/firmware/xlnx-zynqmp.h:1244:5: warning: no previous prototype for function 'zynqmp_pm_get_meta_header' [-Wmissing-prototypes]
int zynqmp_pm_get_meta_header(const u64 src, const u64 dst,
^
include/linux/firmware/xlnx-zynqmp.h:1244:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int zynqmp_pm_get_meta_header(const u64 src, const u64 dst,
^
static
include/linux/firmware/xlnx-zynqmp.h:1212:12: warning: unused function 'zynqmp_pm_sec_read_reg' [-Wunused-function]
static int zynqmp_pm_sec_read_reg(u32 node_id, u32 offset, u32 *ret_value)
^
include/linux/firmware/xlnx-zynqmp.h:1217:12: warning: unused function 'zynqmp_pm_sec_mask_write_reg' [-Wunused-function]
static int zynqmp_pm_sec_mask_write_reg(const u32 node_id, const u32 offset,
^
3 warnings generated.
vim +/zynqmp_pm_get_meta_header +1244 include/linux/firmware/xlnx-zynqmp.h
1243
> 1244 int zynqmp_pm_get_meta_header(const u64 src, const u64 dst,
1245 const u32 size, u32 *count)
1246 {
1247 return -ENODEV;
1248 }
1249 #endif
1250
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months, 1 week
Re: [wpan-next v2 19/27] net: ieee802154: Full PAN management
by kernel test robot
Hi Miquel,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v5.16 next-20220112]
[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/Miquel-Raynal/IEEE-802-15-4-scan...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git daadb3bd0e8d3e317e36bc2c1542e86c528665e5
config: alpha-randconfig-r006-20220112 (https://download.01.org/0day-ci/archive/20220113/202201130312.AD3Sqi9A-lk...)
compiler: alpha-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/0day-ci/linux/commit/9c8fbd918a704432bbf6cdce1d111e900...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Miquel-Raynal/IEEE-802-15-4-scan-support/20220113-013731
git checkout 9c8fbd918a704432bbf6cdce1d111e9002c756b4
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=alpha SHELL=/bin/bash net/ieee802154/
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 >>):
net/ieee802154/nl802154.c: In function 'nl802154_dump_pans':
>> net/ieee802154/nl802154.c:1613:15: error: implicit declaration of function 'nl802154_prepare_wpan_dev_dump' [-Werror=implicit-function-declaration]
1613 | err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> net/ieee802154/nl802154.c:1637:9: error: implicit declaration of function 'nl802154_finish_wpan_dev_dump' [-Werror=implicit-function-declaration]
1637 | nl802154_finish_wpan_dev_dump(rdev);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/nl802154_prepare_wpan_dev_dump +1613 net/ieee802154/nl802154.c
1605
1606 static int nl802154_dump_pans(struct sk_buff *skb, struct netlink_callback *cb)
1607 {
1608 struct cfg802154_registered_device *rdev;
1609 struct cfg802154_internal_pan *pan;
1610 struct wpan_dev *wpan_dev;
1611 int err;
1612
> 1613 err = nl802154_prepare_wpan_dev_dump(skb, cb, &rdev, &wpan_dev);
1614 if (err)
1615 return err;
1616
1617 spin_lock_bh(&rdev->pan_lock);
1618
1619 if (cb->args[2])
1620 goto out;
1621
1622 cb->seq = rdev->pan_generation;
1623
1624 ieee802154_for_each_pan(pan, rdev) {
1625 err = nl802154_send_pan_info(skb, cb, cb->nlh->nlmsg_seq,
1626 NLM_F_MULTI, rdev, wpan_dev, pan);
1627 if (err < 0)
1628 goto out_err;
1629 }
1630
1631 cb->args[2] = 1;
1632 out:
1633 err = skb->len;
1634 out_err:
1635 spin_unlock_bh(&rdev->pan_lock);
1636
> 1637 nl802154_finish_wpan_dev_dump(rdev);
1638
1639 return err;
1640 }
1641
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months, 1 week
[xilinx-xlnx:master 173/326] drivers/clk/clk-xlnx-clock-wizard.c:324:8: error: implicit declaration of function 'FIELD_PREP'
by kernel test robot
Hi Shubhrajyoti,
FYI, the error/warning still remains.
tree: https://github.com/Xilinx/linux-xlnx master
head: 6a698dbaaf0e6caa053476c2f661b36885a0ce30
commit: bf7387ee9a75c2a390b19f63c47076344e664b86 [173/326] clocking-wizard: Support higher frequency accuracy
config: riscv-randconfig-r042-20220112 (https://download.01.org/0day-ci/archive/20220113/202201130302.pmg1cg7e-lk...)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 244dd2913a43a200f5a6544d424cdc37b771028b)
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 riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://github.com/Xilinx/linux-xlnx/commit/bf7387ee9a75c2a390b19f63c4707...
git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xilinx-xlnx master
git checkout bf7387ee9a75c2a390b19f63c47076344e664b86
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash drivers/clk/
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/clk/clk-xlnx-clock-wizard.c:324:8: error: implicit declaration of function 'FIELD_PREP' [-Werror,-Wimplicit-function-declaration]
reg = FIELD_PREP(WZRD_CLKOUT_DIVIDE_MASK, clockout0_div) |
^
>> drivers/clk/clk-xlnx-clock-wizard.c:392:6: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
d = FIELD_GET(WZRD_DIVCLK_DIVIDE_MASK, reg);
^
2 errors generated.
vim +/FIELD_PREP +324 drivers/clk/clk-xlnx-clock-wizard.c
301
302 static int clk_wzrd_dynamic_all_nolock(struct clk_hw *hw, unsigned long rate,
303 unsigned long parent_rate)
304 {
305 struct clk_wzrd_divider *divider = to_clk_wzrd_divider(hw);
306 u32 reg, pre;
307 u16 retries;
308 int err;
309 u64 vco_freq, rate_div, f, clockout0_div;
310
311 err = clk_wzrd_get_divisors(hw, rate, parent_rate);
312 if (err)
313 pr_err("failed to get divisors\n");
314
315 vco_freq = DIV_ROUND_CLOSEST((parent_rate * divider->valuem), divider->valued);
316 rate_div = DIV_ROUND_CLOSEST((vco_freq * WZRD_FRAC_POINTS), rate);
317
318 clockout0_div = rate_div / WZRD_FRAC_POINTS;
319
320 pre = DIV_ROUND_CLOSEST((vco_freq * WZRD_FRAC_POINTS), rate);
321 f = (u32)(pre - (clockout0_div * WZRD_FRAC_POINTS));
322 f = f & WZRD_CLKOUT_FRAC_MASK;
323
> 324 reg = FIELD_PREP(WZRD_CLKOUT_DIVIDE_MASK, clockout0_div) |
325 FIELD_PREP(WZRD_CLKOUT0_FRAC_MASK, f);
326
327 writel(reg, divider->base + WZRD_CLK_CFG_REG(2));
328 /* Set divisor and clear phase offset */
329 reg = FIELD_PREP(WZRD_CLKFBOUT_MULT_MASK, divider->valuem) |
330 FIELD_PREP(WZRD_DIVCLK_DIVIDE_MASK, divider->valued);
331 writel(reg, divider->base + WZRD_CLK_CFG_REG(0));
332 writel(divider->valueo, divider->base + WZRD_CLK_CFG_REG(2));
333 writel(0, divider->base + WZRD_CLK_CFG_REG(3));
334 /* Check status register */
335 retries = WZRD_DR_NUM_RETRIES;
336 while (retries--) {
337 if (readl(divider->base + WZRD_DR_STATUS_REG_OFFSET) &
338 WZRD_DR_LOCK_BIT_MASK)
339 break;
340 }
341
342 if (!retries)
343 return -ETIMEDOUT;
344
345 /* Initiate reconfiguration */
346 writel(WZRD_DR_BEGIN_DYNA_RECONF,
347 divider->base + WZRD_DR_INIT_REG_OFFSET);
348
349 /* Check status register */
350 retries = WZRD_DR_NUM_RETRIES;
351 while (retries--) {
352 if (readl(divider->base + WZRD_DR_STATUS_REG_OFFSET) &
353 WZRD_DR_LOCK_BIT_MASK)
354 break;
355 }
356
357 if (!retries)
358 return -ETIMEDOUT;
359
360 return 0;
361 }
362
363 static int clk_wzrd_dynamic_all(struct clk_hw *hw, unsigned long rate,
364 unsigned long parent_rate)
365 {
366 struct clk_wzrd_divider *divider = to_clk_wzrd_divider(hw);
367 unsigned long flags = 0;
368 int ret;
369
370 if (divider->lock)
371 spin_lock_irqsave(divider->lock, flags);
372 else
373 __acquire(divider->lock);
374
375 ret = clk_wzrd_dynamic_all_nolock(hw, rate, parent_rate);
376
377 if (divider->lock)
378 spin_unlock_irqrestore(divider->lock, flags);
379 else
380 __release(divider->lock);
381
382 return ret;
383 }
384
385 static unsigned long clk_wzrd_recalc_rate_all(struct clk_hw *hw,
386 unsigned long parent_rate)
387 {
388 struct clk_wzrd_divider *divider = to_clk_wzrd_divider(hw);
389 u32 m, d, o, div, reg, f;
390
391 reg = readl(divider->base + WZRD_CLK_CFG_REG(0));
> 392 d = FIELD_GET(WZRD_DIVCLK_DIVIDE_MASK, reg);
393 m = FIELD_GET(WZRD_CLKFBOUT_MULT_MASK, reg);
394 reg = readl(divider->base + WZRD_CLK_CFG_REG(2));
395 o = FIELD_GET(WZRD_DIVCLK_DIVIDE_MASK, reg);
396 f = FIELD_GET(WZRD_CLKOUT0_FRAC_MASK, reg);
397
398 div = DIV_ROUND_CLOSEST(d * (WZRD_FRAC_POINTS * o + f), WZRD_FRAC_POINTS);
399 return divider_recalc_rate(hw, parent_rate * m, div, divider->table,
400 divider->flags, divider->width);
401 }
402
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months, 1 week
Re: [PATCH v1 2/2] media: staging: tegra-vde: Support V4L stateless video decoder API
by kernel test robot
Hi Dmitry,
I love your patch! Perhaps something to improve:
[auto build test WARNING on media-tree/master]
[also build test WARNING on next-20220112]
[cannot apply to v5.16]
[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/Add-V4L-stateles...
base: git://linuxtv.org/media_tree.git master
config: powerpc-randconfig-s031-20220112 (https://download.01.org/0day-ci/archive/20220113/202201130310.BFtsDEXe-lk...)
compiler: powerpc-linux-gcc (GCC) 11.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://github.com/0day-ci/linux/commit/3b11791070fd9de6cd368f28578ebab73...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Dmitry-Osipenko/Add-V4L-stateless-video-decoder-API-support-to-NVIDIA-Tegra-driver/20220112-234115
git checkout 3b11791070fd9de6cd368f28578ebab731386a83
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=powerpc SHELL=/bin/bash drivers/staging/media/tegra-vde/
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/staging/media/tegra-vde/h264_reader.c:57:15: sparse: sparse: cast to restricted __be32
>> drivers/staging/media/tegra-vde/h264_reader.c:57:15: sparse: sparse: cast to restricted __be32
>> drivers/staging/media/tegra-vde/h264_reader.c:57:15: sparse: sparse: cast to restricted __be32
>> drivers/staging/media/tegra-vde/h264_reader.c:57:15: sparse: sparse: cast to restricted __be32
vim +57 drivers/staging/media/tegra-vde/h264_reader.c
44
45 static inline u8 emulation_escape(struct bitstream_reader *reader, u32 offset,
46 u8 data, bool inc_offset, bool *escaped)
47 {
48 u32 seq;
49
50 if (data != 0x03 || !reader->rbsp_mode)
51 return data;
52
53 if (offset < 2 || offset == reader->bitstream_end)
54 return data;
55
56 seq = *((u32 *)(reader->data_ptr + offset - 2));
> 57 seq = be32_to_cpu(seq);
58
59 switch (seq) {
60 case 0x00000300:
61 case 0x00000301:
62 case 0x00000302:
63 case 0x00000303:
64 if (inc_offset)
65 reader->data_offset++;
66
67 if (escaped)
68 *escaped = true;
69
70 return seq & 0xFF;
71 default:
72 break;
73 }
74
75 return data;
76 }
77
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months, 1 week
[xilinx-xlnx:master 173/326] drivers/clk/clk-xlnx-clock-wizard.c:324:15: error: implicit declaration of function 'FIELD_PREP'
by kernel test robot
Hi Shubhrajyoti,
FYI, the error/warning still remains.
tree: https://github.com/Xilinx/linux-xlnx master
head: 6a698dbaaf0e6caa053476c2f661b36885a0ce30
commit: bf7387ee9a75c2a390b19f63c47076344e664b86 [173/326] clocking-wizard: Support higher frequency accuracy
config: arc-randconfig-r043-20220112 (https://download.01.org/0day-ci/archive/20220113/202201130305.ViNXFidF-lk...)
compiler: arceb-elf-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/Xilinx/linux-xlnx/commit/bf7387ee9a75c2a390b19f63c4707...
git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xilinx-xlnx master
git checkout bf7387ee9a75c2a390b19f63c47076344e664b86
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash drivers/clk/ drivers/spi/
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/clk/clk-xlnx-clock-wizard.c: In function 'clk_wzrd_dynamic_all_nolock':
>> drivers/clk/clk-xlnx-clock-wizard.c:324:15: error: implicit declaration of function 'FIELD_PREP' [-Werror=implicit-function-declaration]
324 | reg = FIELD_PREP(WZRD_CLKOUT_DIVIDE_MASK, clockout0_div) |
| ^~~~~~~~~~
drivers/clk/clk-xlnx-clock-wizard.c: In function 'clk_wzrd_recalc_rate_all':
>> drivers/clk/clk-xlnx-clock-wizard.c:392:13: error: implicit declaration of function 'FIELD_GET' [-Werror=implicit-function-declaration]
392 | d = FIELD_GET(WZRD_DIVCLK_DIVIDE_MASK, reg);
| ^~~~~~~~~
cc1: some warnings being treated as errors
vim +/FIELD_PREP +324 drivers/clk/clk-xlnx-clock-wizard.c
301
302 static int clk_wzrd_dynamic_all_nolock(struct clk_hw *hw, unsigned long rate,
303 unsigned long parent_rate)
304 {
305 struct clk_wzrd_divider *divider = to_clk_wzrd_divider(hw);
306 u32 reg, pre;
307 u16 retries;
308 int err;
309 u64 vco_freq, rate_div, f, clockout0_div;
310
311 err = clk_wzrd_get_divisors(hw, rate, parent_rate);
312 if (err)
313 pr_err("failed to get divisors\n");
314
315 vco_freq = DIV_ROUND_CLOSEST((parent_rate * divider->valuem), divider->valued);
316 rate_div = DIV_ROUND_CLOSEST((vco_freq * WZRD_FRAC_POINTS), rate);
317
318 clockout0_div = rate_div / WZRD_FRAC_POINTS;
319
320 pre = DIV_ROUND_CLOSEST((vco_freq * WZRD_FRAC_POINTS), rate);
321 f = (u32)(pre - (clockout0_div * WZRD_FRAC_POINTS));
322 f = f & WZRD_CLKOUT_FRAC_MASK;
323
> 324 reg = FIELD_PREP(WZRD_CLKOUT_DIVIDE_MASK, clockout0_div) |
325 FIELD_PREP(WZRD_CLKOUT0_FRAC_MASK, f);
326
327 writel(reg, divider->base + WZRD_CLK_CFG_REG(2));
328 /* Set divisor and clear phase offset */
329 reg = FIELD_PREP(WZRD_CLKFBOUT_MULT_MASK, divider->valuem) |
330 FIELD_PREP(WZRD_DIVCLK_DIVIDE_MASK, divider->valued);
331 writel(reg, divider->base + WZRD_CLK_CFG_REG(0));
332 writel(divider->valueo, divider->base + WZRD_CLK_CFG_REG(2));
333 writel(0, divider->base + WZRD_CLK_CFG_REG(3));
334 /* Check status register */
335 retries = WZRD_DR_NUM_RETRIES;
336 while (retries--) {
337 if (readl(divider->base + WZRD_DR_STATUS_REG_OFFSET) &
338 WZRD_DR_LOCK_BIT_MASK)
339 break;
340 }
341
342 if (!retries)
343 return -ETIMEDOUT;
344
345 /* Initiate reconfiguration */
346 writel(WZRD_DR_BEGIN_DYNA_RECONF,
347 divider->base + WZRD_DR_INIT_REG_OFFSET);
348
349 /* Check status register */
350 retries = WZRD_DR_NUM_RETRIES;
351 while (retries--) {
352 if (readl(divider->base + WZRD_DR_STATUS_REG_OFFSET) &
353 WZRD_DR_LOCK_BIT_MASK)
354 break;
355 }
356
357 if (!retries)
358 return -ETIMEDOUT;
359
360 return 0;
361 }
362
363 static int clk_wzrd_dynamic_all(struct clk_hw *hw, unsigned long rate,
364 unsigned long parent_rate)
365 {
366 struct clk_wzrd_divider *divider = to_clk_wzrd_divider(hw);
367 unsigned long flags = 0;
368 int ret;
369
370 if (divider->lock)
371 spin_lock_irqsave(divider->lock, flags);
372 else
373 __acquire(divider->lock);
374
375 ret = clk_wzrd_dynamic_all_nolock(hw, rate, parent_rate);
376
377 if (divider->lock)
378 spin_unlock_irqrestore(divider->lock, flags);
379 else
380 __release(divider->lock);
381
382 return ret;
383 }
384
385 static unsigned long clk_wzrd_recalc_rate_all(struct clk_hw *hw,
386 unsigned long parent_rate)
387 {
388 struct clk_wzrd_divider *divider = to_clk_wzrd_divider(hw);
389 u32 m, d, o, div, reg, f;
390
391 reg = readl(divider->base + WZRD_CLK_CFG_REG(0));
> 392 d = FIELD_GET(WZRD_DIVCLK_DIVIDE_MASK, reg);
393 m = FIELD_GET(WZRD_CLKFBOUT_MULT_MASK, reg);
394 reg = readl(divider->base + WZRD_CLK_CFG_REG(2));
395 o = FIELD_GET(WZRD_DIVCLK_DIVIDE_MASK, reg);
396 f = FIELD_GET(WZRD_CLKOUT0_FRAC_MASK, reg);
397
398 div = DIV_ROUND_CLOSEST(d * (WZRD_FRAC_POINTS * o + f), WZRD_FRAC_POINTS);
399 return divider_recalc_rate(hw, parent_rate * m, div, divider->table,
400 divider->flags, divider->width);
401 }
402
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months, 1 week
Re: [PATCH v2 6/7] sched/fair: Remove task_util from effective utilization in feec()
by kernel test robot
Hi Vincent,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on tip/sched/core]
[also build test WARNING on next-20220112]
[cannot apply to rafael-pm/linux-next rafael-pm/thermal v5.16]
[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/Vincent-Donnefort/feec-energy-ma...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 82762d2af31a60081162890983a83499c9c7dd74
config: hexagon-randconfig-r045-20220112 (https://download.01.org/0day-ci/archive/20220113/202201130354.S8Z1unuB-lk...)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 244dd2913a43a200f5a6544d424cdc37b771028b)
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/ce70047d014b32af0102fca5681c1e8ae...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Vincent-Donnefort/feec-energy-margin-removal/20220113-002104
git checkout ce70047d014b32af0102fca5681c1e8aebc4b7ae
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash kernel/sched/
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 >>):
>> kernel/sched/fair.c:6738:4: warning: variable 'pd_cap' is uninitialized when used here [-Wuninitialized]
pd_cap += cpu_thermal_cap;
^~~~~~
kernel/sched/fair.c:6693:58: note: initialize the variable 'pd_cap' to silence this warning
unsigned long busy_time, tsk_busy_time, max_util, pd_cap;
^
= 0
1 warning generated.
vim +/pd_cap +6738 kernel/sched/fair.c
6649
6650 /*
6651 * find_energy_efficient_cpu(): Find most energy-efficient target CPU for the
6652 * waking task. find_energy_efficient_cpu() looks for the CPU with maximum
6653 * spare capacity in each performance domain and uses it as a potential
6654 * candidate to execute the task. Then, it uses the Energy Model to figure
6655 * out which of the CPU candidates is the most energy-efficient.
6656 *
6657 * The rationale for this heuristic is as follows. In a performance domain,
6658 * all the most energy efficient CPU candidates (according to the Energy
6659 * Model) are those for which we'll request a low frequency. When there are
6660 * several CPUs for which the frequency request will be the same, we don't
6661 * have enough data to break the tie between them, because the Energy Model
6662 * only includes active power costs. With this model, if we assume that
6663 * frequency requests follow utilization (e.g. using schedutil), the CPU with
6664 * the maximum spare capacity in a performance domain is guaranteed to be among
6665 * the best candidates of the performance domain.
6666 *
6667 * In practice, it could be preferable from an energy standpoint to pack
6668 * small tasks on a CPU in order to let other CPUs go in deeper idle states,
6669 * but that could also hurt our chances to go cluster idle, and we have no
6670 * ways to tell with the current Energy Model if this is actually a good
6671 * idea or not. So, find_energy_efficient_cpu() basically favors
6672 * cluster-packing, and spreading inside a cluster. That should at least be
6673 * a good thing for latency, and this is consistent with the idea that most
6674 * of the energy savings of EAS come from the asymmetry of the system, and
6675 * not so much from breaking the tie between identical CPUs. That's also the
6676 * reason why EAS is enabled in the topology code only for systems where
6677 * SD_ASYM_CPUCAPACITY is set.
6678 *
6679 * NOTE: Forkees are not accepted in the energy-aware wake-up path because
6680 * they don't have any useful utilization data yet and it's not possible to
6681 * forecast their impact on energy consumption. Consequently, they will be
6682 * placed by find_idlest_cpu() on the least loaded CPU, which might turn out
6683 * to be energy-inefficient in some use-cases. The alternative would be to
6684 * bias new tasks towards specific types of CPUs first, or to try to infer
6685 * their util_avg from the parent task, but those heuristics could hurt
6686 * other use-cases too. So, until someone finds a better way to solve this,
6687 * let's keep things simple by re-using the existing slow path.
6688 */
6689 static int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu)
6690 {
6691 struct cpumask *cpus = this_cpu_cpumask_var_ptr(select_rq_mask);
6692 unsigned long prev_delta = ULONG_MAX, best_delta = ULONG_MAX;
6693 unsigned long busy_time, tsk_busy_time, max_util, pd_cap;
6694 struct root_domain *rd = cpu_rq(smp_processor_id())->rd;
6695 int cpu, best_energy_cpu = prev_cpu, target = -1;
6696 unsigned long cpu_cap, cpu_thermal_cap, util;
6697 unsigned long base_energy = 0;
6698 struct sched_domain *sd;
6699 struct perf_domain *pd;
6700
6701 rcu_read_lock();
6702 pd = rcu_dereference(rd->pd);
6703 if (!pd || READ_ONCE(rd->overutilized))
6704 goto unlock;
6705
6706 /*
6707 * Energy-aware wake-up happens on the lowest sched_domain starting
6708 * from sd_asym_cpucapacity spanning over this_cpu and prev_cpu.
6709 */
6710 sd = rcu_dereference(*this_cpu_ptr(&sd_asym_cpucapacity));
6711 while (sd && !cpumask_test_cpu(prev_cpu, sched_domain_span(sd)))
6712 sd = sd->parent;
6713 if (!sd)
6714 goto unlock;
6715
6716 target = prev_cpu;
6717
6718 sync_entity_load_avg(&p->se);
6719 if (!task_util_est(p))
6720 goto unlock;
6721
6722 tsk_busy_time = get_task_busy_time(p, prev_cpu);
6723
6724 for (; pd; pd = pd->next) {
6725 unsigned long cur_delta, spare_cap, max_spare_cap = 0;
6726 bool compute_prev_delta = false;
6727 unsigned long base_energy_pd;
6728 int max_spare_cap_cpu = -1;
6729
6730 cpumask_and(cpus, perf_domain_span(pd), cpu_online_mask);
6731
6732 /* Account thermal pressure for the energy estimation */
6733 cpu = cpumask_first(cpus);
6734 cpu_thermal_cap = arch_scale_cpu_capacity(cpu);
6735 cpu_thermal_cap -= arch_scale_thermal_pressure(cpu);
6736
6737 for_each_cpu(cpu, cpus) {
> 6738 pd_cap += cpu_thermal_cap;
6739
6740 if (!cpumask_test_cpu(cpu, sched_domain_span(sd)))
6741 continue;
6742
6743 if (!cpumask_test_cpu(cpu, p->cpus_ptr))
6744 continue;
6745
6746 util = cpu_util_next(cpu, p, cpu);
6747 cpu_cap = capacity_of(cpu);
6748 spare_cap = cpu_cap;
6749 lsub_positive(&spare_cap, util);
6750
6751 /*
6752 * Skip CPUs that cannot satisfy the capacity request.
6753 * IOW, placing the task there would make the CPU
6754 * overutilized. Take uclamp into account to see how
6755 * much capacity we can get out of the CPU; this is
6756 * aligned with sched_cpu_util().
6757 */
6758 util = uclamp_rq_util_with(cpu_rq(cpu), util, p);
6759 if (!fits_capacity(util, cpu_cap))
6760 continue;
6761
6762 if (cpu == prev_cpu) {
6763 /* Always use prev_cpu as a candidate. */
6764 compute_prev_delta = true;
6765 } else if (spare_cap > max_spare_cap) {
6766 /*
6767 * Find the CPU with the maximum spare capacity
6768 * in the performance domain.
6769 */
6770 max_spare_cap = spare_cap;
6771 max_spare_cap_cpu = cpu;
6772 }
6773 }
6774
6775 if (max_spare_cap_cpu < 0 && !compute_prev_delta)
6776 continue;
6777
6778 /* Compute the 'base' energy of the pd, without @p */
6779 busy_time = get_pd_busy_time(p, cpus, pd_cap);
6780 max_util = get_pd_max_util(p, -1, cpus, cpu_thermal_cap);
6781 base_energy_pd = compute_energy(pd, max_util, busy_time,
6782 cpu_thermal_cap);
6783 base_energy += base_energy_pd;
6784
6785 /* Take task into account for the next energy computations */
6786 busy_time = min(pd_cap, busy_time + tsk_busy_time);
6787
6788 /* Evaluate the energy impact of using prev_cpu. */
6789 if (compute_prev_delta) {
6790 max_util = get_pd_max_util(p, prev_cpu, cpus,
6791 cpu_thermal_cap);
6792 prev_delta = compute_energy(pd, max_util, busy_time,
6793 cpu_thermal_cap);
6794 if (prev_delta < base_energy_pd)
6795 goto unlock;
6796 prev_delta -= base_energy_pd;
6797 best_delta = min(best_delta, prev_delta);
6798 }
6799
6800 /* Evaluate the energy impact of using max_spare_cap_cpu. */
6801 if (max_spare_cap_cpu >= 0) {
6802 max_util = get_pd_max_util(p, max_spare_cap_cpu, cpus,
6803 cpu_thermal_cap);
6804 cur_delta = compute_energy(pd, max_util, busy_time,
6805 cpu_thermal_cap);
6806 if (cur_delta < base_energy_pd)
6807 goto unlock;
6808 cur_delta -= base_energy_pd;
6809 if (cur_delta < best_delta) {
6810 best_delta = cur_delta;
6811 best_energy_cpu = max_spare_cap_cpu;
6812 }
6813 }
6814 }
6815 rcu_read_unlock();
6816
6817 /*
6818 * Pick the best CPU if prev_cpu cannot be used, or if it saves at
6819 * least 6% of the energy used by prev_cpu.
6820 */
6821 if ((prev_delta == ULONG_MAX) ||
6822 (prev_delta - best_delta) > ((prev_delta + base_energy) >> 4))
6823 target = best_energy_cpu;
6824
6825 return target;
6826
6827 unlock:
6828 rcu_read_unlock();
6829
6830 return target;
6831 }
6832
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months, 1 week
Re: [Intel-gfx] [PATCH 2/2] drm/i915/gt: make a gt sysfs group and move power management files
by kernel test robot
Hi Andi,
I love your patch! Perhaps something to improve:
[auto build test WARNING on drm-tip/drm-tip]
[cannot apply to drm-intel/for-linux-next drm-exynos/exynos-drm-next drm/drm-next tegra-drm/drm/tegra/for-next airlied/drm-next v5.16 next-20220112]
[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/Andi-Shyti/Introduce-multitile-s...
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20220113/202201130337.jfFCSP6H-lk...)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://github.com/0day-ci/linux/commit/67f2b5659689154c03d9cc34cbf167367...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Andi-Shyti/Introduce-multitile-support/20220111-201712
git checkout 67f2b5659689154c03d9cc34cbf167367c4da39e
# save the config file to linux build tree
mkdir build_dir
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash
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 >>)
vim +/dev_attr_rps_act_freq_mhz +303 drivers/gpu/drm/i915/gt/sysfs_gt_pm.c
293
294 #define INTEL_GT_RPS_SYSFS_ATTR(_name, _mode, _show, _store) \
295 struct device_attribute dev_attr_gt_##_name = __ATTR(gt_##_name, _mode, _show, _store); \
296 struct device_attribute dev_attr_rps_##_name = __ATTR(rps_##_name, _mode, _show, _store)
297
298 #define INTEL_GT_RPS_SYSFS_ATTR_RO(_name) \
299 INTEL_GT_RPS_SYSFS_ATTR(_name, 0444, _name##_show, NULL)
300 #define INTEL_GT_RPS_SYSFS_ATTR_RW(_name) \
301 INTEL_GT_RPS_SYSFS_ATTR(_name, 0644, _name##_show, _name##_store)
302
> 303 static INTEL_GT_RPS_SYSFS_ATTR_RO(act_freq_mhz);
> 304 static INTEL_GT_RPS_SYSFS_ATTR_RO(cur_freq_mhz);
> 305 static INTEL_GT_RPS_SYSFS_ATTR_RW(boost_freq_mhz);
> 306 static INTEL_GT_RPS_SYSFS_ATTR_RW(max_freq_mhz);
> 307 static INTEL_GT_RPS_SYSFS_ATTR_RW(min_freq_mhz);
308
309 static DEVICE_ATTR_RO(vlv_rpe_freq_mhz);
310
311 static ssize_t rps_rp_mhz_show(struct device *dev,
312 struct device_attribute *attr,
313 char *buff);
314
> 315 static INTEL_GT_RPS_SYSFS_ATTR(RP0_freq_mhz, 0444, rps_rp_mhz_show, NULL);
> 316 static INTEL_GT_RPS_SYSFS_ATTR(RP1_freq_mhz, 0444, rps_rp_mhz_show, NULL);
> 317 static INTEL_GT_RPS_SYSFS_ATTR(RPn_freq_mhz, 0444, rps_rp_mhz_show, NULL);
318
319
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months, 1 week
Re: [PATCH 1/1] ceph: add getvxattr op
by kernel test robot
Hi Milind,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on ceph-client/for-linus]
[also build test WARNING on v5.16 next-20220112]
[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/Milind-Changire/ceph-add-getvxat...
base: https://github.com/ceph/ceph-client.git for-linus
config: i386-randconfig-a006 (https://download.01.org/0day-ci/archive/20220113/202201130325.UBjYGkoh-lk...)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 244dd2913a43a200f5a6544d424cdc37b771028b)
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/9e670d02ce9f9d6e1ac3e234a89d305c8...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Milind-Changire/ceph-add-getvxattr-support/20220111-202533
git checkout 9e670d02ce9f9d6e1ac3e234a89d305c85302338
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash fs/ceph/
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 >>):
>> fs/ceph/inode.c:2326:55: warning: format specifies type 'unsigned long' but the argument has type 'size_t' (aka 'unsigned int') [-Wformat]
dout("do_getvxattr xattr_value_len:%lu, size:%lu\n", xattr_value_len, size);
~~~ ^~~~~~~~~~~~~~~
%u
include/linux/ceph/ceph_debug.h:35:45: note: expanded from macro 'dout'
# define dout(fmt, ...) pr_debug(" " fmt, ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
include/linux/printk.h:580:38: note: expanded from macro 'pr_debug'
no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
include/linux/printk.h:132:17: note: expanded from macro 'no_printk'
printk(fmt, ##__VA_ARGS__); \
~~~ ^~~~~~~~~~~
include/linux/printk.h:450:60: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
include/linux/printk.h:422:19: note: expanded from macro 'printk_index_wrap'
_p_func(_fmt, ##__VA_ARGS__); \
~~~~ ^~~~~~~~~~~
fs/ceph/inode.c:2326:72: warning: format specifies type 'unsigned long' but the argument has type 'size_t' (aka 'unsigned int') [-Wformat]
dout("do_getvxattr xattr_value_len:%lu, size:%lu\n", xattr_value_len, size);
~~~ ^~~~
%u
include/linux/ceph/ceph_debug.h:35:45: note: expanded from macro 'dout'
# define dout(fmt, ...) pr_debug(" " fmt, ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
include/linux/printk.h:580:38: note: expanded from macro 'pr_debug'
no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
include/linux/printk.h:132:17: note: expanded from macro 'no_printk'
printk(fmt, ##__VA_ARGS__); \
~~~ ^~~~~~~~~~~
include/linux/printk.h:450:60: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
include/linux/printk.h:422:19: note: expanded from macro 'printk_index_wrap'
_p_func(_fmt, ##__VA_ARGS__); \
~~~~ ^~~~~~~~~~~
2 warnings generated.
vim +2326 fs/ceph/inode.c
2293
2294 int ceph_do_getvxattr(struct inode *inode, const char *name, void *value,
2295 size_t size)
2296 {
2297 struct ceph_fs_client *fsc = ceph_sb_to_client(inode->i_sb);
2298 struct ceph_mds_client *mdsc = fsc->mdsc;
2299 struct ceph_mds_request *req;
2300 int mode = USE_AUTH_MDS;
2301 int err;
2302 char *xattr_value;
2303 size_t xattr_value_len;
2304
2305 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_GETVXATTR, mode);
2306 if (IS_ERR(req)) {
2307 err = -ENOMEM;
2308 goto out;
2309 }
2310
2311 req->r_path2 = kstrdup(name, GFP_NOFS);
2312 if (!req->r_path2) {
2313 err = -ENOMEM;
2314 goto put;
2315 }
2316
2317 ihold(inode);
2318 req->r_inode = inode;
2319 err = ceph_mdsc_do_request(mdsc, NULL, req);
2320 if (err < 0)
2321 goto put;
2322
2323 xattr_value = req->r_reply_info.xattr_info.xattr_value;
2324 xattr_value_len = req->r_reply_info.xattr_info.xattr_value_len;
2325
> 2326 dout("do_getvxattr xattr_value_len:%lu, size:%lu\n", xattr_value_len, size);
2327
2328 err = xattr_value_len;
2329 if (size == 0)
2330 goto put;
2331
2332 if (xattr_value_len > size) {
2333 err = -ERANGE;
2334 goto put;
2335 }
2336
2337 memcpy(value, xattr_value, xattr_value_len);
2338 put:
2339 ceph_mdsc_put_request(req);
2340 out:
2341 dout("do_getvxattr result=%d\n", err);
2342 return err;
2343 }
2344
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months, 1 week
[xilinx-xlnx:master 324/326] drivers/usb/misc/usb5744.c:35:62: warning: format '%d' expects argument of type 'int', but argument 4 has type 'long int'
by kernel test robot
tree: https://github.com/Xilinx/linux-xlnx master
head: 6a698dbaaf0e6caa053476c2f661b36885a0ce30
commit: 6ca1f4cd372fb97452dda4dfe6e79e285d604776 [324/326] usb: misc: usb5744: fix error handling for reset-gpio
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20220113/202201130345.WgSNJfhS-lk...)
compiler: m68k-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/Xilinx/linux-xlnx/commit/6ca1f4cd372fb97452dda4dfe6e79...
git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xilinx-xlnx master
git checkout 6ca1f4cd372fb97452dda4dfe6e79e285d604776
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=m68k SHELL=/bin/bash drivers/usb/misc/
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/usb/misc/usb5744.c: In function 'usb5744_init_hw':
>> drivers/usb/misc/usb5744.c:35:62: warning: format '%d' expects argument of type 'int', but argument 4 has type 'long int' [-Wformat=]
35 | "Failed to request reset GPIO %d, errcode",
| ~^
| |
| int
| %ld
36 | PTR_ERR(data->reset_gpio));
| ~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| long int
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for DRM_PANEL_SIMPLE
Depends on HAS_IOMEM && DRM && DRM_PANEL && OF && BACKLIGHT_CLASS_DEVICE && PM
Selected by
- DRM_XLNX_DSI && HAS_IOMEM && DRM_XLNX
vim +35 drivers/usb/misc/usb5744.c
25
26 static int usb5744_init_hw(struct device *dev, struct usb5744 *data)
27 {
28 data = devm_kzalloc(dev, sizeof(struct usb5744), GFP_KERNEL);
29 if (!data)
30 return -ENOMEM;
31
32 data->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
33 if (IS_ERR(data->reset_gpio)) {
34 dev_err_probe(dev, PTR_ERR(data->reset_gpio),
> 35 "Failed to request reset GPIO %d, errcode",
36 PTR_ERR(data->reset_gpio));
37 return PTR_ERR(data->reset_gpio);
38 }
39
40 if (data->reset_gpio) {
41 /* Toggle RESET_N to reset the hub. */
42 if (dev_is_platform(dev))
43 gpiod_set_value(data->reset_gpio, 0);
44 else
45 gpiod_set_value_cansleep(data->reset_gpio, 0);
46
47 /* Delay - Sleep for an approximate time 5 to 20 usecs */
48 usleep_range(5, 20);
49
50 if (dev_is_platform(dev))
51 gpiod_set_value(data->reset_gpio, 1);
52 else
53 gpiod_set_value_cansleep(data->reset_gpio, 1);
54
55 msleep(5);
56 }
57
58 return 0;
59 }
60
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
8 months, 1 week