All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Max Filippov <jcmvbkbc@gmail.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [jcmvbkbc-xtensa:xtensa-6.5-esp32 17/34] drivers/net/wireless/espressif/esp32-ng/esp_bt.c:14:6: warning: no previous prototype for 'esp_hci_update_tx_counter'
Date: Tue, 29 Aug 2023 06:35:47 +0800	[thread overview]
Message-ID: <202308290610.2RYHjh31-lkp@intel.com> (raw)

tree:   https://github.com/jcmvbkbc/linux-xtensa xtensa-6.5-esp32
head:   edbe560c2ce9974f4b2e47ca13050e6a62d604b3
commit: d586e36f903e8850fab9955cb3b39cc72da8f733 [17/34] drivers/net/wireless/espressif/esp32-ng: initial import
config: sparc-allyesconfig (https://download.01.org/0day-ci/archive/20230829/202308290610.2RYHjh31-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230829/202308290610.2RYHjh31-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308290610.2RYHjh31-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/net/wireless/espressif/esp32-ng/esp_bt.c:14:6: warning: no previous prototype for 'esp_hci_update_tx_counter' [-Wmissing-prototypes]
      14 | void esp_hci_update_tx_counter(struct hci_dev *hdev, u8 pkt_type, size_t len)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/espressif/esp32-ng/esp_bt.c:29:6: warning: no previous prototype for 'esp_hci_update_rx_counter' [-Wmissing-prototypes]
      29 | void esp_hci_update_rx_counter(struct hci_dev *hdev, u8 pkt_type, size_t len)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/espressif/esp32-ng/esp_bt.c:167:5: warning: no previous prototype for 'esp_deinit_bt' [-Wmissing-prototypes]
     167 | int esp_deinit_bt(struct esp_adapter *adapter)
         |     ^~~~~~~~~~~~~
>> drivers/net/wireless/espressif/esp32-ng/esp_bt.c:184:5: warning: no previous prototype for 'esp_init_bt' [-Wmissing-prototypes]
     184 | int esp_init_bt(struct esp_adapter *adapter)
         |     ^~~~~~~~~~~
--
>> drivers/net/wireless/espressif/esp32-ng/esp_cmd.c:414:22: warning: no previous prototype for 'prepare_command_request' [-Wmissing-prototypes]
     414 | struct command_node *prepare_command_request(struct esp_adapter *adapter, u8 cmd_code, u16 len)
         |                      ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/wireless/espressif/esp32-ng/esp_cmd.c: In function 'cmd_assoc_request':
>> drivers/net/wireless/espressif/esp32-ng/esp_cmd.c:847:30: warning: variable 'bss' set but not used [-Wunused-but-set-variable]
     847 |         struct cfg80211_bss *bss;
         |                              ^~~
--
>> drivers/net/wireless/espressif/esp32-ng/esp_wpa_utils.c:34:5: warning: no previous prototype for 'wpa_cipher_key_len' [-Wmissing-prototypes]
      34 | int wpa_cipher_key_len(int cipher)
         |     ^~~~~~~~~~~~~~~~~~
--
>> drivers/net/wireless/espressif/esp32-ng/esp_stats.c:182:6: warning: no previous prototype for 'process_test_capabilities' [-Wmissing-prototypes]
     182 | void process_test_capabilities(u8 cap)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~
--
>> drivers/net/wireless/espressif/esp32-ng/esp_cfg80211.c:16: warning: Cannot understand   * @brief WiFi PHY rate encodings
    on line 16 - I thought it was a doc line


vim +/esp_hci_update_tx_counter +14 drivers/net/wireless/espressif/esp32-ng/esp_bt.c

    13	
  > 14	void esp_hci_update_tx_counter(struct hci_dev *hdev, u8 pkt_type, size_t len)
    15	{
    16		if (!hdev)
    17			return;
    18		if (pkt_type == HCI_COMMAND_PKT) {
    19			hdev->stat.cmd_tx++;
    20		} else if (pkt_type == HCI_ACLDATA_PKT) {
    21			hdev->stat.acl_tx++;
    22		} else if (pkt_type == HCI_SCODATA_PKT) {
    23			hdev->stat.sco_tx++;
    24		}
    25	
    26		hdev->stat.byte_tx += len;
    27	}
    28	
  > 29	void esp_hci_update_rx_counter(struct hci_dev *hdev, u8 pkt_type, size_t len)
    30	{
    31		if (!hdev)
    32			return;
    33	
    34		if (pkt_type == HCI_EVENT_PKT) {
    35			hdev->stat.evt_rx++;
    36		} else if (pkt_type == HCI_ACLDATA_PKT) {
    37			hdev->stat.acl_rx++;
    38		} else if (pkt_type == HCI_SCODATA_PKT) {
    39			hdev->stat.sco_rx++;
    40		}
    41	
    42		hdev->stat.byte_rx += len;
    43	}
    44	
    45	static int esp_bt_open(struct hci_dev *hdev)
    46	{
    47		return 0;
    48	}
    49	
    50	static int esp_bt_close(struct hci_dev *hdev)
    51	{
    52		return 0;
    53	}
    54	
    55	static int esp_bt_flush(struct hci_dev *hdev)
    56	{
    57		return 0;
    58	}
    59	
    60	static ESP_BT_SEND_FRAME_PROTOTYPE()
    61	{
    62		struct esp_payload_header *hdr;
    63		size_t total_len, len = skb->len;
    64		int ret = 0;
    65	#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0))
    66		struct hci_dev *hdev = (struct hci_dev *)(skb->dev);
    67	#endif
    68		struct esp_adapter *adapter = hci_get_drvdata(hdev);
    69		struct sk_buff *new_skb;
    70		u8 pad_len = 0, realloc_skb = 0;
    71		u8 *pos = NULL;
    72		u8 pkt_type;
    73	
    74		if (!adapter) {
    75			esp_err("Invalid args");
    76			return -EINVAL;
    77		}
    78		//print_hex_dump(KERN_INFO, "bt_tx: ", DUMP_PREFIX_ADDRESS, 16, 1, skb->data, len, 1  );
    79	
    80		/* Create space for payload header */
    81		pad_len = sizeof(struct esp_payload_header);
    82		total_len = len + sizeof(struct esp_payload_header);
    83	
    84		/* Align buffer len */
    85		pad_len += SKB_DATA_ADDR_ALIGNMENT - (total_len % SKB_DATA_ADDR_ALIGNMENT);
    86	
    87		pkt_type = hci_skb_pkt_type(skb);
    88	
    89		if (skb_headroom(skb) < pad_len) {
    90			/* Headroom is not sufficient */
    91			realloc_skb = 1;
    92		}
    93	
    94		if (realloc_skb || !IS_ALIGNED((unsigned long) skb->data, SKB_DATA_ADDR_ALIGNMENT)) {
    95			/* Realloc SKB */
    96			if (skb_linearize(skb)) {
    97				hdev->stat.err_tx++;
    98				return -EINVAL;
    99			}
   100	
   101			new_skb = esp_alloc_skb(skb->len + pad_len);
   102	
   103			if (!new_skb) {
   104				esp_err("Failed to allocate SKB");
   105				hdev->stat.err_tx++;
   106				return -ENOMEM;
   107			}
   108	
   109			pos = new_skb->data;
   110	
   111			pos += pad_len;
   112	
   113			/* Populate new SKB */
   114			skb_copy_from_linear_data(skb, pos, skb->len);
   115			skb_put(new_skb, skb->len);
   116	
   117			/* Replace old SKB */
   118			dev_kfree_skb_any(skb);
   119			skb = new_skb;
   120		} else {
   121			/* Realloc is not needed, Make space for interface header */
   122			skb_push(skb, pad_len);
   123		}
   124	
   125		hdr = (struct esp_payload_header *) skb->data;
   126	
   127		memset(hdr, 0, sizeof(struct esp_payload_header));
   128	
   129		hdr->if_type = ESP_HCI_IF;
   130		hdr->if_num = 0;
   131		hdr->len = cpu_to_le16(len);
   132		hdr->offset = cpu_to_le16(pad_len);
   133		pos = skb->data;
   134	
   135		/* set HCI packet type */
   136		*(pos + pad_len - 1) = pkt_type;
   137	
   138		if (adapter->capabilities & ESP_CHECKSUM_ENABLED)
   139			hdr->checksum = cpu_to_le16(compute_checksum(skb->data, (len + pad_len)));
   140	
   141		ret = esp_send_packet(adapter, skb);
   142	
   143		if (ret) {
   144			hdev->stat.err_tx++;
   145			return ret;
   146		} else {
   147			esp_hci_update_tx_counter(hdev, hdr->hci_pkt_type, skb->len);
   148		}
   149	
   150		return 0;
   151	}
   152	
   153	#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0))
   154	static int esp_bt_setup(struct hci_dev *hdev)
   155	{
   156		return 0;
   157	}
   158	#endif
   159	
   160	#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0))
   161	static int esp_bt_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr)
   162	{
   163		return 0;
   164	}
   165	#endif
   166	
 > 167	int esp_deinit_bt(struct esp_adapter *adapter)
   168	{
   169		struct hci_dev *hdev = NULL;
   170	
   171		if (!adapter || !adapter->hcidev)
   172			return 0;
   173	
   174		hdev = adapter->hcidev;
   175	
   176		hci_unregister_dev(hdev);
   177		hci_free_dev(hdev);
   178	
   179		adapter->hcidev = NULL;
   180	
   181		return 0;
   182	}
   183	
 > 184	int esp_init_bt(struct esp_adapter *adapter)
   185	{
   186		int ret = 0;
   187		struct hci_dev *hdev = NULL;
   188	
   189		if (!adapter) {
   190			return -EINVAL;
   191		}
   192	
   193		if (adapter->hcidev) {
   194			return -EEXIST;
   195		}
   196	
   197		hdev = hci_alloc_dev();
   198	
   199		if (!hdev) {
   200			BT_ERR("Can not allocate HCI device");
   201			return -ENOMEM;
   202		}
   203	
   204		adapter->hcidev = hdev;
   205		hci_set_drvdata(hdev, adapter);
   206	
   207		hdev->bus = INVALID_HDEV_BUS;
   208	
   209		if (adapter->if_type == ESP_IF_TYPE_SDIO)
   210			hdev->bus   = HCI_SDIO;
   211	    #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0))
   212		else if (adapter->if_type == ESP_IF_TYPE_SPI)
   213			hdev->bus   = HCI_SPI;
   214	    #endif
   215	
   216		if (hdev->bus == INVALID_HDEV_BUS) {
   217	
   218			if (adapter->if_type == ESP_IF_TYPE_SDIO) {
   219				esp_err("Kernel version does not support HCI over SDIO BUS\n");
   220			} else if (adapter->if_type == ESP_IF_TYPE_SPI) {
   221				esp_err("Kernel version does not support HCI over SPI BUS\n");
   222			} else {
   223				esp_err("HCI over expected BUS[%u] is not supported\n", adapter->if_type);
   224			}
   225			hci_free_dev(hdev);
   226			adapter->hcidev = NULL;
   227			return -EINVAL;
   228		}
   229	
   230		hdev->open  = esp_bt_open;
   231		hdev->close = esp_bt_close;
   232		hdev->flush = esp_bt_flush;
   233		hdev->send  = esp_bt_send_frame;
   234	

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

                 reply	other threads:[~2023-08-28 22:36 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202308290610.2RYHjh31-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.