Re: [PATCH V2 2/2] ASoC: codecs: Add aw88083 amplifier driver

From: kernel test robot
Date: Fri Dec 20 2024 - 05:19:03 EST


Hi,

kernel test robot noticed the following build errors:

[auto build test ERROR on eabcdba3ad4098460a376538df2ae36500223c1e]

url: https://github.com/intel-lab-lkp/linux/commits/wangweidong-a-awinic-com/ASoC-dt-bindings-Add-schema-for-awinic-aw88083/20241219-203933
base: eabcdba3ad4098460a376538df2ae36500223c1e
patch link: https://lore.kernel.org/r/20241219123047.33330-3-wangweidong.a%40awinic.com
patch subject: [PATCH V2 2/2] ASoC: codecs: Add aw88083 amplifier driver
config: arc-randconfig-002-20241220 (https://download.01.org/0day-ci/archive/20241220/202412201745.fBpf3Ui5-lkp@xxxxxxxxx/config)
compiler: arc-elf-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241220/202412201745.fBpf3Ui5-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412201745.fBpf3Ui5-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

In file included from include/linux/device.h:15,
from include/linux/acpi.h:14,
from include/linux/i2c.h:13,
from sound/soc/codecs/aw88081.c:11:
sound/soc/codecs/aw88081.c: In function 'aw8808x_reg_value_check':
>> sound/soc/codecs/aw88081.c:407:25: error: passing argument 1 of '_dev_err' from incompatible pointer type [-Werror=incompatible-pointer-types]
407 | dev_err(aw_dev, "unsupported this device\n");
| ^~~~~~
| |
| struct aw_device *
include/linux/dev_printk.h:110:25: note: in definition of macro 'dev_printk_index_wrap'
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ^~~
sound/soc/codecs/aw88081.c:407:17: note: in expansion of macro 'dev_err'
407 | dev_err(aw_dev, "unsupported this device\n");
| ^~~~~~~
include/linux/dev_printk.h:50:36: note: expected 'const struct device *' but argument is of type 'struct aw_device *'
50 | void _dev_err(const struct device *dev, const char *fmt, ...);
| ~~~~~~~~~~~~~~~~~~~~~^~~
sound/soc/codecs/aw88081.c: In function 'aw88081_dev_reg_update':
>> sound/soc/codecs/aw88081.c:442:66: error: passing argument 3 of 'aw8808x_reg_value_check' from incompatible pointer type [-Werror=incompatible-pointer-types]
442 | ret = aw8808x_reg_value_check(aw88081, reg_addr, &reg_val);
| ^~~~~~~~
| |
| u16 * {aka short unsigned int *}
sound/soc/codecs/aw88081.c:394:78: note: expected 'unsigned int *' but argument is of type 'u16 *' {aka 'short unsigned int *'}
394 | unsigned int reg_addr, unsigned int *reg_val)
| ~~~~~~~~~~~~~~^~~~~~~
cc1: some warnings being treated as errors


vim +/_dev_err +407 sound/soc/codecs/aw88081.c

392
393 static int aw8808x_reg_value_check(struct aw88081 *aw88081,
394 unsigned int reg_addr, unsigned int *reg_val)
395 {
396 struct aw_device *aw_dev = aw88081->aw_pa;
397 int ret;
398
399 switch (aw88081->devtype) {
400 case AW88081:
401 ret = aw88081_dev_reg_value_check(aw_dev, reg_addr, reg_val);
402 break;
403 case AW88083:
404 ret = aw88083_dev_reg_value_check(aw_dev, reg_addr, reg_val);
405 break;
406 default:
> 407 dev_err(aw_dev, "unsupported this device\n");
408 ret = -EINVAL;
409 break;
410 }
411
412 return ret;
413 }
414
415 static int aw88081_dev_reg_update(struct aw88081 *aw88081,
416 unsigned char *data, unsigned int len)
417 {
418 struct aw_device *aw_dev = aw88081->aw_pa;
419 struct aw_volume_desc *vol_desc = &aw_dev->volume_desc;
420 int data_len, i, ret;
421 int16_t *reg_data;
422 u16 reg_val;
423 u8 reg_addr;
424
425 if (!len || !data) {
426 dev_err(aw_dev->dev, "reg data is null or len is 0");
427 return -EINVAL;
428 }
429
430 reg_data = (int16_t *)data;
431 data_len = len >> 1;
432
433 if (data_len & 0x1) {
434 dev_err(aw_dev->dev, "data len:%d unsupported", data_len);
435 return -EINVAL;
436 }
437
438 for (i = 0; i < data_len; i += 2) {
439 reg_addr = reg_data[i];
440 reg_val = reg_data[i + 1];
441
> 442 ret = aw8808x_reg_value_check(aw88081, reg_addr, &reg_val);
443 if (ret)
444 return ret;
445
446 ret = regmap_write(aw_dev->regmap, reg_addr, reg_val);
447 if (ret)
448 return ret;
449 }
450
451 if (aw_dev->prof_cur != aw_dev->prof_index)
452 vol_desc->ctl_volume = 0;
453
454 /* keep min volume */
455 aw88081_dev_set_volume(aw_dev, vol_desc->mute_volume);
456
457 return 0;
458 }
459

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki