Hi Shenghao,
kernel test robot noticed the following build warnings:
[auto build test WARNING on broonie-sound/for-next] [also build test WARNING on tiwai-sound/for-next tiwai-sound/for-linus linus/master v6.4-rc2 next-20230519] [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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Shenghao-Ding/ASoC-tas2781-fi... base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next patch link: https://lore.kernel.org/r/20230519080211.20205-1-13916275206%40139.com patch subject: [PATCH v3 3/5] ASoC: tas2781: Add tas2781 driver config: arm64-randconfig-s033-20230518 compiler: aarch64-linux-gcc (GCC) 12.1.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-39-gce1a6720-dirty # https://github.com/intel-lab-lkp/linux/commit/1138e1878d682a13d5ba424d90bb89... git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Shenghao-Ding/ASoC-tas2781-firmware-lib/20230519-160451 git checkout 1138e1878d682a13d5ba424d90bb89dd7a05b637 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm64 olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm64 SHELL=/bin/bash sound/soc/codecs/
If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot lkp@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202305192322.gBZ4JIyr-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
sound/soc/codecs/tas2781-i2c.c:585:66: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected restricted __be32 const [usertype] *cell @@ got unsigned int const *[assigned] reg @@
sound/soc/codecs/tas2781-i2c.c:585:66: sparse: expected restricted __be32 const [usertype] *cell sound/soc/codecs/tas2781-i2c.c:585:66: sparse: got unsigned int const *[assigned] reg
vim +585 sound/soc/codecs/tas2781-i2c.c
549 550 static void tasdevice_parse_dt(struct tasdevice_priv *tas_priv) 551 { 552 struct i2c_client *client = (struct i2c_client *)tas_priv->client; 553 unsigned int dev_addrs[max_chn]; 554 int rc, i, ndev = 0; 555 556 if (tas_priv->isacpi) { 557 ndev = device_property_read_u32_array(&client->dev, 558 "ti,audio-slots", NULL, 0); 559 if (ndev <= 0) { 560 ndev = 1; 561 dev_addrs[0] = client->addr; 562 } else { 563 ndev = (ndev < ARRAY_SIZE(dev_addrs)) 564 ? ndev : ARRAY_SIZE(dev_addrs); 565 ndev = device_property_read_u32_array(&client->dev, 566 "ti,audio-slots", dev_addrs, ndev); 567 } 568 569 tas_priv->irq_info.irq_gpio = 570 acpi_dev_gpio_irq_get(ACPI_COMPANION(&client->dev), 0); 571 } else { 572 struct device_node *np = tas_priv->dev->of_node; 573 #ifdef CONFIG_OF 574 const unsigned int *reg, *reg_end; 575 int len, sw, aw; 576 577 aw = of_n_addr_cells(np); 578 sw = of_n_size_cells(np); 579 if (sw == 0) { 580 reg = (const unsigned int *)of_get_property(np, 581 "reg", &len); 582 reg_end = reg + len/sizeof(*reg); 583 ndev = 0; 584 do {
585 dev_addrs[ndev] = of_read_number(reg, aw);
586 reg += aw; 587 ndev++; 588 } while (reg < reg_end); 589 } else { 590 ndev = 1; 591 dev_addrs[0] = client->addr; 592 } 593 #else 594 ndev = 1; 595 dev_addrs[0] = client->addr; 596 #endif 597 tas_priv->irq_info.irq_gpio = of_irq_get(np, 0); 598 } 599 tas_priv->ndev = ndev; 600 for (i = 0; i < ndev; i++) 601 tas_priv->tasdevice[i].dev_addr = dev_addrs[i]; 602 603 if (ndev > 1) { 604 rc = device_property_read_u32(&client->dev, 605 "ti,broadcast-addr", 606 &(tas_priv->glb_addr.dev_addr)); 607 if (rc) { 608 dev_err(tas_priv->dev, 609 "Looking up broadcast-addr failed %d\n", rc); 610 tas_priv->glb_addr.dev_addr = 0; 611 } 612 } 613 614 tas_priv->reset = devm_gpiod_get_optional(&client->dev, 615 "reset-gpios", GPIOD_OUT_HIGH); 616 if (IS_ERR(tas_priv->reset)) 617 dev_err(tas_priv->dev, "%s Can't get reset GPIO\n", 618 __func__); 619 620 strcpy(tas_priv->dev_name, tasdevice_id[tas_priv->chip_id].name); 621 622 if (gpio_is_valid(tas_priv->irq_info.irq_gpio)) { 623 rc = gpio_request(tas_priv->irq_info.irq_gpio, 624 "AUDEV-IRQ"); 625 if (!rc) { 626 gpio_direction_input( 627 tas_priv->irq_info.irq_gpio); 628 629 tas_priv->irq_info.irq = 630 gpio_to_irq(tas_priv->irq_info.irq_gpio); 631 } else 632 dev_err(tas_priv->dev, "%s: GPIO %d request error\n", 633 __func__, tas_priv->irq_info.irq_gpio); 634 } else 635 dev_err(tas_priv->dev, 636 "Looking up irq-gpio property failed %d\n", 637 tas_priv->irq_info.irq_gpio); 638 } 639