summaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth/btbcm.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2017-10-30 05:42:59 -0400
committerJohan Hedberg <johan.hedberg@intel.com>2017-10-30 06:25:45 -0400
commit2064ee332e4c1b7495cf68b84355c213d8fe71fd (patch)
tree9bb470d9296dbf14c02a67612fe83c32fec3ba6d /drivers/bluetooth/btbcm.c
parenta9ee77af751f435675054f5a7e2d2e69cbfe9e33 (diff)
Bluetooth: Use bt_dev_err and bt_dev_info when possible
In case of using BT_ERR and BT_INFO, convert to bt_dev_err and bt_dev_info when possible. This allows for controller specific reporting. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'drivers/bluetooth/btbcm.c')
-rw-r--r--drivers/bluetooth/btbcm.c103
1 files changed, 50 insertions, 53 deletions
diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c
index ae1fa390f508..afa4cb3b16e3 100644
--- a/drivers/bluetooth/btbcm.c
+++ b/drivers/bluetooth/btbcm.c
@@ -45,13 +45,12 @@ int btbcm_check_bdaddr(struct hci_dev *hdev)
45 HCI_INIT_TIMEOUT); 45 HCI_INIT_TIMEOUT);
46 if (IS_ERR(skb)) { 46 if (IS_ERR(skb)) {
47 int err = PTR_ERR(skb); 47 int err = PTR_ERR(skb);
48 BT_ERR("%s: BCM: Reading device address failed (%d)", 48 bt_dev_err(hdev, "BCM: Reading device address failed (%d)", err);
49 hdev->name, err);
50 return err; 49 return err;
51 } 50 }
52 51
53 if (skb->len != sizeof(*bda)) { 52 if (skb->len != sizeof(*bda)) {
54 BT_ERR("%s: BCM: Device address length mismatch", hdev->name); 53 bt_dev_err(hdev, "BCM: Device address length mismatch");
55 kfree_skb(skb); 54 kfree_skb(skb);
56 return -EIO; 55 return -EIO;
57 } 56 }
@@ -74,8 +73,8 @@ int btbcm_check_bdaddr(struct hci_dev *hdev)
74 if (!bacmp(&bda->bdaddr, BDADDR_BCM20702A0) || 73 if (!bacmp(&bda->bdaddr, BDADDR_BCM20702A0) ||
75 !bacmp(&bda->bdaddr, BDADDR_BCM4324B3) || 74 !bacmp(&bda->bdaddr, BDADDR_BCM4324B3) ||
76 !bacmp(&bda->bdaddr, BDADDR_BCM4330B1)) { 75 !bacmp(&bda->bdaddr, BDADDR_BCM4330B1)) {
77 BT_INFO("%s: BCM: Using default device address (%pMR)", 76 bt_dev_info(hdev, "BCM: Using default device address (%pMR)",
78 hdev->name, &bda->bdaddr); 77 &bda->bdaddr);
79 set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); 78 set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks);
80 } 79 }
81 80
@@ -93,8 +92,7 @@ int btbcm_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr)
93 skb = __hci_cmd_sync(hdev, 0xfc01, 6, bdaddr, HCI_INIT_TIMEOUT); 92 skb = __hci_cmd_sync(hdev, 0xfc01, 6, bdaddr, HCI_INIT_TIMEOUT);
94 if (IS_ERR(skb)) { 93 if (IS_ERR(skb)) {
95 err = PTR_ERR(skb); 94 err = PTR_ERR(skb);
96 BT_ERR("%s: BCM: Change address command failed (%d)", 95 bt_dev_err(hdev, "BCM: Change address command failed (%d)", err);
97 hdev->name, err);
98 return err; 96 return err;
99 } 97 }
100 kfree_skb(skb); 98 kfree_skb(skb);
@@ -116,8 +114,8 @@ int btbcm_patchram(struct hci_dev *hdev, const struct firmware *fw)
116 skb = __hci_cmd_sync(hdev, 0xfc2e, 0, NULL, HCI_INIT_TIMEOUT); 114 skb = __hci_cmd_sync(hdev, 0xfc2e, 0, NULL, HCI_INIT_TIMEOUT);
117 if (IS_ERR(skb)) { 115 if (IS_ERR(skb)) {
118 err = PTR_ERR(skb); 116 err = PTR_ERR(skb);
119 BT_ERR("%s: BCM: Download Minidrv command failed (%d)", 117 bt_dev_err(hdev, "BCM: Download Minidrv command failed (%d)",
120 hdev->name, err); 118 err);
121 goto done; 119 goto done;
122 } 120 }
123 kfree_skb(skb); 121 kfree_skb(skb);
@@ -136,7 +134,7 @@ int btbcm_patchram(struct hci_dev *hdev, const struct firmware *fw)
136 fw_size -= sizeof(*cmd); 134 fw_size -= sizeof(*cmd);
137 135
138 if (fw_size < cmd->plen) { 136 if (fw_size < cmd->plen) {
139 BT_ERR("%s: BCM: Patch is corrupted", hdev->name); 137 bt_dev_err(hdev, "BCM: Patch is corrupted");
140 err = -EINVAL; 138 err = -EINVAL;
141 goto done; 139 goto done;
142 } 140 }
@@ -151,8 +149,8 @@ int btbcm_patchram(struct hci_dev *hdev, const struct firmware *fw)
151 HCI_INIT_TIMEOUT); 149 HCI_INIT_TIMEOUT);
152 if (IS_ERR(skb)) { 150 if (IS_ERR(skb)) {
153 err = PTR_ERR(skb); 151 err = PTR_ERR(skb);
154 BT_ERR("%s: BCM: Patch command %04x failed (%d)", 152 bt_dev_err(hdev, "BCM: Patch command %04x failed (%d)",
155 hdev->name, opcode, err); 153 opcode, err);
156 goto done; 154 goto done;
157 } 155 }
158 kfree_skb(skb); 156 kfree_skb(skb);
@@ -173,7 +171,7 @@ static int btbcm_reset(struct hci_dev *hdev)
173 skb = __hci_cmd_sync(hdev, HCI_OP_RESET, 0, NULL, HCI_INIT_TIMEOUT); 171 skb = __hci_cmd_sync(hdev, HCI_OP_RESET, 0, NULL, HCI_INIT_TIMEOUT);
174 if (IS_ERR(skb)) { 172 if (IS_ERR(skb)) {
175 int err = PTR_ERR(skb); 173 int err = PTR_ERR(skb);
176 BT_ERR("%s: BCM: Reset failed (%d)", hdev->name, err); 174 bt_dev_err(hdev, "BCM: Reset failed (%d)", err);
177 return err; 175 return err;
178 } 176 }
179 kfree_skb(skb); 177 kfree_skb(skb);
@@ -191,13 +189,13 @@ static struct sk_buff *btbcm_read_local_name(struct hci_dev *hdev)
191 skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_NAME, 0, NULL, 189 skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_NAME, 0, NULL,
192 HCI_INIT_TIMEOUT); 190 HCI_INIT_TIMEOUT);
193 if (IS_ERR(skb)) { 191 if (IS_ERR(skb)) {
194 BT_ERR("%s: BCM: Reading local name failed (%ld)", 192 bt_dev_err(hdev, "BCM: Reading local name failed (%ld)",
195 hdev->name, PTR_ERR(skb)); 193 PTR_ERR(skb));
196 return skb; 194 return skb;
197 } 195 }
198 196
199 if (skb->len != sizeof(struct hci_rp_read_local_name)) { 197 if (skb->len != sizeof(struct hci_rp_read_local_name)) {
200 BT_ERR("%s: BCM: Local name length mismatch", hdev->name); 198 bt_dev_err(hdev, "BCM: Local name length mismatch");
201 kfree_skb(skb); 199 kfree_skb(skb);
202 return ERR_PTR(-EIO); 200 return ERR_PTR(-EIO);
203 } 201 }
@@ -212,13 +210,13 @@ static struct sk_buff *btbcm_read_local_version(struct hci_dev *hdev)
212 skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_VERSION, 0, NULL, 210 skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_VERSION, 0, NULL,
213 HCI_INIT_TIMEOUT); 211 HCI_INIT_TIMEOUT);
214 if (IS_ERR(skb)) { 212 if (IS_ERR(skb)) {
215 BT_ERR("%s: BCM: Reading local version info failed (%ld)", 213 bt_dev_err(hdev, "BCM: Reading local version info failed (%ld)",
216 hdev->name, PTR_ERR(skb)); 214 PTR_ERR(skb));
217 return skb; 215 return skb;
218 } 216 }
219 217
220 if (skb->len != sizeof(struct hci_rp_read_local_version)) { 218 if (skb->len != sizeof(struct hci_rp_read_local_version)) {
221 BT_ERR("%s: BCM: Local version length mismatch", hdev->name); 219 bt_dev_err(hdev, "BCM: Local version length mismatch");
222 kfree_skb(skb); 220 kfree_skb(skb);
223 return ERR_PTR(-EIO); 221 return ERR_PTR(-EIO);
224 } 222 }
@@ -232,13 +230,13 @@ static struct sk_buff *btbcm_read_verbose_config(struct hci_dev *hdev)
232 230
233 skb = __hci_cmd_sync(hdev, 0xfc79, 0, NULL, HCI_INIT_TIMEOUT); 231 skb = __hci_cmd_sync(hdev, 0xfc79, 0, NULL, HCI_INIT_TIMEOUT);
234 if (IS_ERR(skb)) { 232 if (IS_ERR(skb)) {
235 BT_ERR("%s: BCM: Read verbose config info failed (%ld)", 233 bt_dev_err(hdev, "BCM: Read verbose config info failed (%ld)",
236 hdev->name, PTR_ERR(skb)); 234 PTR_ERR(skb));
237 return skb; 235 return skb;
238 } 236 }
239 237
240 if (skb->len != 7) { 238 if (skb->len != 7) {
241 BT_ERR("%s: BCM: Verbose config length mismatch", hdev->name); 239 bt_dev_err(hdev, "BCM: Verbose config length mismatch");
242 kfree_skb(skb); 240 kfree_skb(skb);
243 return ERR_PTR(-EIO); 241 return ERR_PTR(-EIO);
244 } 242 }
@@ -252,14 +250,13 @@ static struct sk_buff *btbcm_read_controller_features(struct hci_dev *hdev)
252 250
253 skb = __hci_cmd_sync(hdev, 0xfc6e, 0, NULL, HCI_INIT_TIMEOUT); 251 skb = __hci_cmd_sync(hdev, 0xfc6e, 0, NULL, HCI_INIT_TIMEOUT);
254 if (IS_ERR(skb)) { 252 if (IS_ERR(skb)) {
255 BT_ERR("%s: BCM: Read controller features failed (%ld)", 253 bt_dev_err(hdev, "BCM: Read controller features failed (%ld)",
256 hdev->name, PTR_ERR(skb)); 254 PTR_ERR(skb));
257 return skb; 255 return skb;
258 } 256 }
259 257
260 if (skb->len != 9) { 258 if (skb->len != 9) {
261 BT_ERR("%s: BCM: Controller features length mismatch", 259 bt_dev_err(hdev, "BCM: Controller features length mismatch");
262 hdev->name);
263 kfree_skb(skb); 260 kfree_skb(skb);
264 return ERR_PTR(-EIO); 261 return ERR_PTR(-EIO);
265 } 262 }
@@ -273,13 +270,13 @@ static struct sk_buff *btbcm_read_usb_product(struct hci_dev *hdev)
273 270
274 skb = __hci_cmd_sync(hdev, 0xfc5a, 0, NULL, HCI_INIT_TIMEOUT); 271 skb = __hci_cmd_sync(hdev, 0xfc5a, 0, NULL, HCI_INIT_TIMEOUT);
275 if (IS_ERR(skb)) { 272 if (IS_ERR(skb)) {
276 BT_ERR("%s: BCM: Read USB product info failed (%ld)", 273 bt_dev_err(hdev, "BCM: Read USB product info failed (%ld)",
277 hdev->name, PTR_ERR(skb)); 274 PTR_ERR(skb));
278 return skb; 275 return skb;
279 } 276 }
280 277
281 if (skb->len != 5) { 278 if (skb->len != 5) {
282 BT_ERR("%s: BCM: USB product length mismatch", hdev->name); 279 bt_dev_err(hdev, "BCM: USB product length mismatch");
283 kfree_skb(skb); 280 kfree_skb(skb);
284 return ERR_PTR(-EIO); 281 return ERR_PTR(-EIO);
285 } 282 }
@@ -296,7 +293,7 @@ static int btbcm_read_info(struct hci_dev *hdev)
296 if (IS_ERR(skb)) 293 if (IS_ERR(skb))
297 return PTR_ERR(skb); 294 return PTR_ERR(skb);
298 295
299 BT_INFO("%s: BCM: chip id %u", hdev->name, skb->data[1]); 296 bt_dev_info(hdev, "BCM: chip id %u", skb->data[1]);
300 kfree_skb(skb); 297 kfree_skb(skb);
301 298
302 /* Read Controller Features */ 299 /* Read Controller Features */
@@ -304,7 +301,7 @@ static int btbcm_read_info(struct hci_dev *hdev)
304 if (IS_ERR(skb)) 301 if (IS_ERR(skb))
305 return PTR_ERR(skb); 302 return PTR_ERR(skb);
306 303
307 BT_INFO("%s: BCM: features 0x%2.2x", hdev->name, skb->data[1]); 304 bt_dev_info(hdev, "BCM: features 0x%2.2x", skb->data[1]);
308 kfree_skb(skb); 305 kfree_skb(skb);
309 306
310 /* Read Local Name */ 307 /* Read Local Name */
@@ -312,7 +309,7 @@ static int btbcm_read_info(struct hci_dev *hdev)
312 if (IS_ERR(skb)) 309 if (IS_ERR(skb))
313 return PTR_ERR(skb); 310 return PTR_ERR(skb);
314 311
315 BT_INFO("%s: %s", hdev->name, (char *)(skb->data + 1)); 312 bt_dev_info(hdev, "%s", (char *)(skb->data + 1));
316 kfree_skb(skb); 313 kfree_skb(skb);
317 314
318 return 0; 315 return 0;
@@ -378,9 +375,9 @@ int btbcm_initialize(struct hci_dev *hdev, char *fw_name, size_t len)
378 return 0; 375 return 0;
379 } 376 }
380 377
381 BT_INFO("%s: %s (%3.3u.%3.3u.%3.3u) build %4.4u", hdev->name, 378 bt_dev_info(hdev, "%s (%3.3u.%3.3u.%3.3u) build %4.4u",
382 hw_name ? : "BCM", (subver & 0xe000) >> 13, 379 hw_name ? : "BCM", (subver & 0xe000) >> 13,
383 (subver & 0x1f00) >> 8, (subver & 0x00ff), rev & 0x0fff); 380 (subver & 0x1f00) >> 8, (subver & 0x00ff), rev & 0x0fff);
384 381
385 return 0; 382 return 0;
386} 383}
@@ -408,9 +405,9 @@ int btbcm_finalize(struct hci_dev *hdev)
408 subver = le16_to_cpu(ver->lmp_subver); 405 subver = le16_to_cpu(ver->lmp_subver);
409 kfree_skb(skb); 406 kfree_skb(skb);
410 407
411 BT_INFO("%s: BCM (%3.3u.%3.3u.%3.3u) build %4.4u", hdev->name, 408 bt_dev_info(hdev, "BCM (%3.3u.%3.3u.%3.3u) build %4.4u",
412 (subver & 0xe000) >> 13, (subver & 0x1f00) >> 8, 409 (subver & 0xe000) >> 13, (subver & 0x1f00) >> 8,
413 (subver & 0x00ff), rev & 0x0fff); 410 (subver & 0x00ff), rev & 0x0fff);
414 411
415 btbcm_check_bdaddr(hdev); 412 btbcm_check_bdaddr(hdev);
416 413
@@ -505,13 +502,13 @@ int btbcm_setup_patchram(struct hci_dev *hdev)
505 return 0; 502 return 0;
506 } 503 }
507 504
508 BT_INFO("%s: %s (%3.3u.%3.3u.%3.3u) build %4.4u", hdev->name, 505 bt_dev_info(hdev, "%s (%3.3u.%3.3u.%3.3u) build %4.4u",
509 hw_name ? : "BCM", (subver & 0xe000) >> 13, 506 hw_name ? : "BCM", (subver & 0xe000) >> 13,
510 (subver & 0x1f00) >> 8, (subver & 0x00ff), rev & 0x0fff); 507 (subver & 0x1f00) >> 8, (subver & 0x00ff), rev & 0x0fff);
511 508
512 err = request_firmware(&fw, fw_name, &hdev->dev); 509 err = request_firmware(&fw, fw_name, &hdev->dev);
513 if (err < 0) { 510 if (err < 0) {
514 BT_INFO("%s: BCM: Patch %s not found", hdev->name, fw_name); 511 bt_dev_info(hdev, "BCM: Patch %s not found", fw_name);
515 goto done; 512 goto done;
516 } 513 }
517 514
@@ -534,16 +531,16 @@ int btbcm_setup_patchram(struct hci_dev *hdev)
534 subver = le16_to_cpu(ver->lmp_subver); 531 subver = le16_to_cpu(ver->lmp_subver);
535 kfree_skb(skb); 532 kfree_skb(skb);
536 533
537 BT_INFO("%s: %s (%3.3u.%3.3u.%3.3u) build %4.4u", hdev->name, 534 bt_dev_info(hdev, "%s (%3.3u.%3.3u.%3.3u) build %4.4u",
538 hw_name ? : "BCM", (subver & 0xe000) >> 13, 535 hw_name ? : "BCM", (subver & 0xe000) >> 13,
539 (subver & 0x1f00) >> 8, (subver & 0x00ff), rev & 0x0fff); 536 (subver & 0x1f00) >> 8, (subver & 0x00ff), rev & 0x0fff);
540 537
541 /* Read Local Name */ 538 /* Read Local Name */
542 skb = btbcm_read_local_name(hdev); 539 skb = btbcm_read_local_name(hdev);
543 if (IS_ERR(skb)) 540 if (IS_ERR(skb))
544 return PTR_ERR(skb); 541 return PTR_ERR(skb);
545 542
546 BT_INFO("%s: %s", hdev->name, (char *)(skb->data + 1)); 543 bt_dev_info(hdev, "%s", (char *)(skb->data + 1));
547 kfree_skb(skb); 544 kfree_skb(skb);
548 545
549done: 546done:
@@ -568,31 +565,31 @@ int btbcm_setup_apple(struct hci_dev *hdev)
568 /* Read Verbose Config Version Info */ 565 /* Read Verbose Config Version Info */
569 skb = btbcm_read_verbose_config(hdev); 566 skb = btbcm_read_verbose_config(hdev);
570 if (!IS_ERR(skb)) { 567 if (!IS_ERR(skb)) {
571 BT_INFO("%s: BCM: chip id %u build %4.4u", hdev->name, 568 bt_dev_info(hdev, "BCM: chip id %u build %4.4u",
572 skb->data[1], get_unaligned_le16(skb->data + 5)); 569 skb->data[1], get_unaligned_le16(skb->data + 5));
573 kfree_skb(skb); 570 kfree_skb(skb);
574 } 571 }
575 572
576 /* Read USB Product Info */ 573 /* Read USB Product Info */
577 skb = btbcm_read_usb_product(hdev); 574 skb = btbcm_read_usb_product(hdev);
578 if (!IS_ERR(skb)) { 575 if (!IS_ERR(skb)) {
579 BT_INFO("%s: BCM: product %4.4x:%4.4x", hdev->name, 576 bt_dev_info(hdev, "BCM: product %4.4x:%4.4x",
580 get_unaligned_le16(skb->data + 1), 577 get_unaligned_le16(skb->data + 1),
581 get_unaligned_le16(skb->data + 3)); 578 get_unaligned_le16(skb->data + 3));
582 kfree_skb(skb); 579 kfree_skb(skb);
583 } 580 }
584 581
585 /* Read Controller Features */ 582 /* Read Controller Features */
586 skb = btbcm_read_controller_features(hdev); 583 skb = btbcm_read_controller_features(hdev);
587 if (!IS_ERR(skb)) { 584 if (!IS_ERR(skb)) {
588 BT_INFO("%s: BCM: features 0x%2.2x", hdev->name, skb->data[1]); 585 bt_dev_info(hdev, "BCM: features 0x%2.2x", skb->data[1]);
589 kfree_skb(skb); 586 kfree_skb(skb);
590 } 587 }
591 588
592 /* Read Local Name */ 589 /* Read Local Name */
593 skb = btbcm_read_local_name(hdev); 590 skb = btbcm_read_local_name(hdev);
594 if (!IS_ERR(skb)) { 591 if (!IS_ERR(skb)) {
595 BT_INFO("%s: %s", hdev->name, (char *)(skb->data + 1)); 592 bt_dev_info(hdev, "%s", (char *)(skb->data + 1));
596 kfree_skb(skb); 593 kfree_skb(skb);
597 } 594 }
598 595