Hi, Thank you for the patch! Yet something to improve: [auto build test ERROR on bluetooth-next/master] [also build test ERROR on net-next/master net/master v5.12-rc3 next-20210315] [cannot apply to sparc-next/master] [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/hildawu-realtek-com/Bluetooth-hci_h5-btrtl-Add-quirk-for-keep-power-during-suspend-resume-for-specific-devices/20210315-170101 base: https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git master config: powerpc64-randconfig-r016-20210315 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project a28facba1ccdc957f386b7753f4958307f1bfde8) 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 powerpc64 cross compiling tool for clang build # apt-get install binutils-powerpc64-linux-gnu # https://github.com/0day-ci/linux/commit/c97383d88c50364f4451a74ac4d3ad7b3605c20b git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review hildawu-realtek-com/Bluetooth-hci_h5-btrtl-Add-quirk-for-keep-power-during-suspend-resume-for-specific-devices/20210315-170101 git checkout c97383d88c50364f4451a74ac4d3ad7b3605c20b # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): In file included from drivers/bluetooth/btrtl.c:11: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:33:1: note: expanded from here __do_insw ^ arch/powerpc/include/asm/io.h:557:56: note: expanded from macro '__do_insw' #define __do_insw(p, b, n) readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n)) ~~~~~~~~~~~~~~~~~~~~~^ In file included from drivers/bluetooth/btrtl.c:11: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:35:1: note: expanded from here __do_insl ^ arch/powerpc/include/asm/io.h:558:56: note: expanded from macro '__do_insl' #define __do_insl(p, b, n) readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n)) ~~~~~~~~~~~~~~~~~~~~~^ In file included from drivers/bluetooth/btrtl.c:11: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:37:1: note: expanded from here __do_outsb ^ arch/powerpc/include/asm/io.h:559:58: note: expanded from macro '__do_outsb' #define __do_outsb(p, b, n) writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n)) ~~~~~~~~~~~~~~~~~~~~~^ In file included from drivers/bluetooth/btrtl.c:11: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:39:1: note: expanded from here __do_outsw ^ arch/powerpc/include/asm/io.h:560:58: note: expanded from macro '__do_outsw' #define __do_outsw(p, b, n) writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n)) ~~~~~~~~~~~~~~~~~~~~~^ In file included from drivers/bluetooth/btrtl.c:11: In file included from include/linux/usb.h:16: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:10: In file included from arch/powerpc/include/asm/hardirq.h:6: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:13: In file included from arch/powerpc/include/asm/io.h:619: arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET' __do_##name al; \ ^~~~~~~~~~~~~~ <scratch space>:41:1: note: expanded from here __do_outsl ^ arch/powerpc/include/asm/io.h:561:58: note: expanded from macro '__do_outsl' #define __do_outsl(p, b, n) writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n)) ~~~~~~~~~~~~~~~~~~~~~^ >> drivers/bluetooth/btrtl.c:556:14: error: no member named 'drop_fw' in 'struct btrtl_device_info' btrtl_dev->drop_fw = true; ~~~~~~~~~ ^ drivers/bluetooth/btrtl.c:558:17: error: no member named 'drop_fw' in 'struct btrtl_device_info' if (btrtl_dev->drop_fw) { ~~~~~~~~~ ^ 12 warnings and 2 errors generated. vim +556 drivers/bluetooth/btrtl.c 26503ad25de8c7 Martin Blumenstingl 2018-08-02 519 1cc194caaffbe0 Hans de Goede 2018-08-02 520 struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev, 1cc194caaffbe0 Hans de Goede 2018-08-02 521 const char *postfix) db33c77dddc2ed Carlo Caione 2015-05-14 522 { 26503ad25de8c7 Martin Blumenstingl 2018-08-02 523 struct btrtl_device_info *btrtl_dev; db33c77dddc2ed Carlo Caione 2015-05-14 524 struct sk_buff *skb; db33c77dddc2ed Carlo Caione 2015-05-14 525 struct hci_rp_read_local_version *resp; 1cc194caaffbe0 Hans de Goede 2018-08-02 526 char cfg_name[40]; 907f84990924bf Alex Lu 2018-02-11 527 u16 hci_rev, lmp_subver; c50903e3ee1b55 Martin Blumenstingl 2018-08-02 528 u8 hci_ver; 26503ad25de8c7 Martin Blumenstingl 2018-08-02 529 int ret; 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 530 u16 opcode; 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 531 u8 cmd[2]; 26503ad25de8c7 Martin Blumenstingl 2018-08-02 532 26503ad25de8c7 Martin Blumenstingl 2018-08-02 533 btrtl_dev = kzalloc(sizeof(*btrtl_dev), GFP_KERNEL); 26503ad25de8c7 Martin Blumenstingl 2018-08-02 534 if (!btrtl_dev) { 26503ad25de8c7 Martin Blumenstingl 2018-08-02 535 ret = -ENOMEM; 26503ad25de8c7 Martin Blumenstingl 2018-08-02 536 goto err_alloc; 26503ad25de8c7 Martin Blumenstingl 2018-08-02 537 } db33c77dddc2ed Carlo Caione 2015-05-14 538 db33c77dddc2ed Carlo Caione 2015-05-14 539 skb = btrtl_read_local_version(hdev); 26503ad25de8c7 Martin Blumenstingl 2018-08-02 540 if (IS_ERR(skb)) { 26503ad25de8c7 Martin Blumenstingl 2018-08-02 541 ret = PTR_ERR(skb); 26503ad25de8c7 Martin Blumenstingl 2018-08-02 542 goto err_free; 26503ad25de8c7 Martin Blumenstingl 2018-08-02 543 } db33c77dddc2ed Carlo Caione 2015-05-14 544 db33c77dddc2ed Carlo Caione 2015-05-14 545 resp = (struct hci_rp_read_local_version *)skb->data; f1300c0340872d Alex Lu 2019-08-31 546 rtl_dev_info(hdev, "examining hci_ver=%02x hci_rev=%04x lmp_ver=%02x lmp_subver=%04x", 2064ee332e4c1b Marcel Holtmann 2017-10-30 547 resp->hci_ver, resp->hci_rev, db33c77dddc2ed Carlo Caione 2015-05-14 548 resp->lmp_ver, resp->lmp_subver); db33c77dddc2ed Carlo Caione 2015-05-14 549 c50903e3ee1b55 Martin Blumenstingl 2018-08-02 550 hci_ver = resp->hci_ver; 907f84990924bf Alex Lu 2018-02-11 551 hci_rev = le16_to_cpu(resp->hci_rev); db33c77dddc2ed Carlo Caione 2015-05-14 552 lmp_subver = le16_to_cpu(resp->lmp_subver); 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 553 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 554 if (resp->hci_ver == 0x8 && le16_to_cpu(resp->hci_rev) == 0x826c && 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 555 resp->lmp_ver == 0x8 && le16_to_cpu(resp->lmp_subver) == 0xa99e) 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 @556 btrtl_dev->drop_fw = true; 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 557 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 558 if (btrtl_dev->drop_fw) { 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 559 opcode = hci_opcode_pack(0x3f, 0x66); 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 560 cmd[0] = opcode & 0xff; 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 561 cmd[1] = opcode >> 8; 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 562 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 563 skb = bt_skb_alloc(sizeof(cmd), GFP_KERNEL); f5e8e215869eed Colin Ian King 2020-11-10 564 if (!skb) 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 565 goto out_free; 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 566 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 567 skb_put_data(skb, cmd, sizeof(cmd)); 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 568 hci_skb_pkt_type(skb) = HCI_COMMAND_PKT; 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 569 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 570 hdev->send(hdev, skb); 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 571 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 572 /* Ensure the above vendor command is sent to controller and 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 573 * process has done. 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 574 */ 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 575 msleep(200); 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 576 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 577 /* Read the local version again. Expect to have the vanilla 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 578 * version as cold boot. 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 579 */ 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 580 skb = btrtl_read_local_version(hdev); 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 581 if (IS_ERR(skb)) { 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 582 ret = PTR_ERR(skb); 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 583 goto err_free; 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 584 } 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 585 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 586 resp = (struct hci_rp_read_local_version *)skb->data; 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 587 rtl_dev_info(hdev, "examining hci_ver=%02x hci_rev=%04x lmp_ver=%02x lmp_subver=%04x", 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 588 resp->hci_ver, resp->hci_rev, 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 589 resp->lmp_ver, resp->lmp_subver); 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 590 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 591 hci_ver = resp->hci_ver; 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 592 hci_rev = le16_to_cpu(resp->hci_rev); 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 593 lmp_subver = le16_to_cpu(resp->lmp_subver); 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 594 } 1996d9cad6ad48 Kai-Heng Feng 2020-10-26 595 out_free: db33c77dddc2ed Carlo Caione 2015-05-14 596 kfree_skb(skb); db33c77dddc2ed Carlo Caione 2015-05-14 597 c50903e3ee1b55 Martin Blumenstingl 2018-08-02 598 btrtl_dev->ic_info = btrtl_match_ic(lmp_subver, hci_rev, hci_ver, c50903e3ee1b55 Martin Blumenstingl 2018-08-02 599 hdev->bus); c50903e3ee1b55 Martin Blumenstingl 2018-08-02 600 26503ad25de8c7 Martin Blumenstingl 2018-08-02 601 if (!btrtl_dev->ic_info) { d182215d2fb9e5 Alex Lu 2019-08-31 602 rtl_dev_info(hdev, "unknown IC info, lmp subver %04x, hci rev %04x, hci ver %04x", c50903e3ee1b55 Martin Blumenstingl 2018-08-02 603 lmp_subver, hci_rev, hci_ver); 00df214b1faae5 Kai-Heng Feng 2019-01-27 604 return btrtl_dev; 26503ad25de8c7 Martin Blumenstingl 2018-08-02 605 } 26503ad25de8c7 Martin Blumenstingl 2018-08-02 606 26503ad25de8c7 Martin Blumenstingl 2018-08-02 607 if (btrtl_dev->ic_info->has_rom_version) { 26503ad25de8c7 Martin Blumenstingl 2018-08-02 608 ret = rtl_read_rom_version(hdev, &btrtl_dev->rom_version); 26503ad25de8c7 Martin Blumenstingl 2018-08-02 609 if (ret) 26503ad25de8c7 Martin Blumenstingl 2018-08-02 610 goto err_free; 26503ad25de8c7 Martin Blumenstingl 2018-08-02 611 } 26503ad25de8c7 Martin Blumenstingl 2018-08-02 612 26503ad25de8c7 Martin Blumenstingl 2018-08-02 613 btrtl_dev->fw_len = rtl_load_file(hdev, btrtl_dev->ic_info->fw_name, 26503ad25de8c7 Martin Blumenstingl 2018-08-02 614 &btrtl_dev->fw_data); 26503ad25de8c7 Martin Blumenstingl 2018-08-02 615 if (btrtl_dev->fw_len < 0) { f1300c0340872d Alex Lu 2019-08-31 616 rtl_dev_err(hdev, "firmware file %s not found", 26503ad25de8c7 Martin Blumenstingl 2018-08-02 617 btrtl_dev->ic_info->fw_name); 26503ad25de8c7 Martin Blumenstingl 2018-08-02 618 ret = btrtl_dev->fw_len; 26503ad25de8c7 Martin Blumenstingl 2018-08-02 619 goto err_free; 26503ad25de8c7 Martin Blumenstingl 2018-08-02 620 } 26503ad25de8c7 Martin Blumenstingl 2018-08-02 621 26503ad25de8c7 Martin Blumenstingl 2018-08-02 622 if (btrtl_dev->ic_info->cfg_name) { 1cc194caaffbe0 Hans de Goede 2018-08-02 623 if (postfix) { 1cc194caaffbe0 Hans de Goede 2018-08-02 624 snprintf(cfg_name, sizeof(cfg_name), "%s-%s.bin", 1cc194caaffbe0 Hans de Goede 2018-08-02 625 btrtl_dev->ic_info->cfg_name, postfix); 1cc194caaffbe0 Hans de Goede 2018-08-02 626 } else { 1cc194caaffbe0 Hans de Goede 2018-08-02 627 snprintf(cfg_name, sizeof(cfg_name), "%s.bin", 1cc194caaffbe0 Hans de Goede 2018-08-02 628 btrtl_dev->ic_info->cfg_name); 1cc194caaffbe0 Hans de Goede 2018-08-02 629 } 1cc194caaffbe0 Hans de Goede 2018-08-02 630 btrtl_dev->cfg_len = rtl_load_file(hdev, cfg_name, 26503ad25de8c7 Martin Blumenstingl 2018-08-02 631 &btrtl_dev->cfg_data); 26503ad25de8c7 Martin Blumenstingl 2018-08-02 632 if (btrtl_dev->ic_info->config_needed && 26503ad25de8c7 Martin Blumenstingl 2018-08-02 633 btrtl_dev->cfg_len <= 0) { f1300c0340872d Alex Lu 2019-08-31 634 rtl_dev_err(hdev, "mandatory config file %s not found", 26503ad25de8c7 Martin Blumenstingl 2018-08-02 635 btrtl_dev->ic_info->cfg_name); 26503ad25de8c7 Martin Blumenstingl 2018-08-02 636 ret = btrtl_dev->cfg_len; 26503ad25de8c7 Martin Blumenstingl 2018-08-02 637 goto err_free; 26503ad25de8c7 Martin Blumenstingl 2018-08-02 638 } 26503ad25de8c7 Martin Blumenstingl 2018-08-02 639 } 26503ad25de8c7 Martin Blumenstingl 2018-08-02 640 673fae14f24052 Miao-chen Chou 2020-12-17 641 /* RTL8822CE supports the Microsoft vendor extension and uses 0xFCF0 673fae14f24052 Miao-chen Chou 2020-12-17 642 * for VsMsftOpCode. 673fae14f24052 Miao-chen Chou 2020-12-17 643 */ 673fae14f24052 Miao-chen Chou 2020-12-17 644 if (lmp_subver == RTL_ROM_LMP_8822B) 673fae14f24052 Miao-chen Chou 2020-12-17 645 hci_set_msft_opcode(hdev, 0xFCF0); 673fae14f24052 Miao-chen Chou 2020-12-17 646 26503ad25de8c7 Martin Blumenstingl 2018-08-02 647 return btrtl_dev; 26503ad25de8c7 Martin Blumenstingl 2018-08-02 648 26503ad25de8c7 Martin Blumenstingl 2018-08-02 649 err_free: 26503ad25de8c7 Martin Blumenstingl 2018-08-02 650 btrtl_free(btrtl_dev); 26503ad25de8c7 Martin Blumenstingl 2018-08-02 651 err_alloc: 26503ad25de8c7 Martin Blumenstingl 2018-08-02 652 return ERR_PTR(ret); 26503ad25de8c7 Martin Blumenstingl 2018-08-02 653 } 26503ad25de8c7 Martin Blumenstingl 2018-08-02 654 EXPORT_SYMBOL_GPL(btrtl_initialize); 26503ad25de8c7 Martin Blumenstingl 2018-08-02 655 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip