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 <l...@intel.com>

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-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to