* [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'
@ 2023-08-28 22:35 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-08-28 22:35 UTC (permalink / raw)
To: Max Filippov; +Cc: oe-kbuild-all
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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-08-28 22:36 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-28 22:35 [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' kernel test robot
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.