bpa10x.c (95a0c7c2d6cfde3fb5fdb713428ed0df4d6bdd58) | bpa10x.c (2064ee332e4c1b7495cf68b84355c213d8fe71fd) |
---|---|
1/* 2 * 3 * Digianswer Bluetooth USB driver 4 * 5 * Copyright (C) 2004-2007 Marcel Holtmann <marcel@holtmann.org> 6 * 7 * 8 * This program is free software; you can redistribute it and/or modify --- 103 unchanged lines hidden (view full) --- 112 bool idx = usb_pipebulk(urb->pipe); 113 114 data->rx_skb[idx] = h4_recv_buf(hdev, data->rx_skb[idx], 115 urb->transfer_buffer, 116 urb->actual_length, 117 bpa10x_recv_pkts, 118 ARRAY_SIZE(bpa10x_recv_pkts)); 119 if (IS_ERR(data->rx_skb[idx])) { | 1/* 2 * 3 * Digianswer Bluetooth USB driver 4 * 5 * Copyright (C) 2004-2007 Marcel Holtmann <marcel@holtmann.org> 6 * 7 * 8 * This program is free software; you can redistribute it and/or modify --- 103 unchanged lines hidden (view full) --- 112 bool idx = usb_pipebulk(urb->pipe); 113 114 data->rx_skb[idx] = h4_recv_buf(hdev, data->rx_skb[idx], 115 urb->transfer_buffer, 116 urb->actual_length, 117 bpa10x_recv_pkts, 118 ARRAY_SIZE(bpa10x_recv_pkts)); 119 if (IS_ERR(data->rx_skb[idx])) { |
120 BT_ERR("%s corrupted event packet", hdev->name); | 120 bt_dev_err(hdev, "corrupted event packet"); |
121 hdev->stat.err_rx++; 122 data->rx_skb[idx] = NULL; 123 } 124 } 125 126 usb_anchor_urb(urb, &data->rx_anchor); 127 128 err = usb_submit_urb(urb, GFP_ATOMIC); 129 if (err < 0) { | 121 hdev->stat.err_rx++; 122 data->rx_skb[idx] = NULL; 123 } 124 } 125 126 usb_anchor_urb(urb, &data->rx_anchor); 127 128 err = usb_submit_urb(urb, GFP_ATOMIC); 129 if (err < 0) { |
130 BT_ERR("%s urb %p failed to resubmit (%d)", 131 hdev->name, urb, -err); | 130 bt_dev_err(hdev, "urb %p failed to resubmit (%d)", urb, -err); |
132 usb_unanchor_urb(urb); 133 } 134} 135 136static inline int bpa10x_submit_intr_urb(struct hci_dev *hdev) 137{ 138 struct bpa10x_data *data = hci_get_drvdata(hdev); 139 struct urb *urb; --- 19 unchanged lines hidden (view full) --- 159 bpa10x_rx_complete, hdev, 1); 160 161 urb->transfer_flags |= URB_FREE_BUFFER; 162 163 usb_anchor_urb(urb, &data->rx_anchor); 164 165 err = usb_submit_urb(urb, GFP_KERNEL); 166 if (err < 0) { | 131 usb_unanchor_urb(urb); 132 } 133} 134 135static inline int bpa10x_submit_intr_urb(struct hci_dev *hdev) 136{ 137 struct bpa10x_data *data = hci_get_drvdata(hdev); 138 struct urb *urb; --- 19 unchanged lines hidden (view full) --- 158 bpa10x_rx_complete, hdev, 1); 159 160 urb->transfer_flags |= URB_FREE_BUFFER; 161 162 usb_anchor_urb(urb, &data->rx_anchor); 163 164 err = usb_submit_urb(urb, GFP_KERNEL); 165 if (err < 0) { |
167 BT_ERR("%s urb %p submission failed (%d)", 168 hdev->name, urb, -err); | 166 bt_dev_err(hdev, "urb %p submission failed (%d)", urb, -err); |
169 usb_unanchor_urb(urb); 170 } 171 172 usb_free_urb(urb); 173 174 return err; 175} 176 --- 23 unchanged lines hidden (view full) --- 200 buf, size, bpa10x_rx_complete, hdev); 201 202 urb->transfer_flags |= URB_FREE_BUFFER; 203 204 usb_anchor_urb(urb, &data->rx_anchor); 205 206 err = usb_submit_urb(urb, GFP_KERNEL); 207 if (err < 0) { | 167 usb_unanchor_urb(urb); 168 } 169 170 usb_free_urb(urb); 171 172 return err; 173} 174 --- 23 unchanged lines hidden (view full) --- 198 buf, size, bpa10x_rx_complete, hdev); 199 200 urb->transfer_flags |= URB_FREE_BUFFER; 201 202 usb_anchor_urb(urb, &data->rx_anchor); 203 204 err = usb_submit_urb(urb, GFP_KERNEL); 205 if (err < 0) { |
208 BT_ERR("%s urb %p submission failed (%d)", 209 hdev->name, urb, -err); | 206 bt_dev_err(hdev, "urb %p submission failed (%d)", urb, -err); |
210 usb_unanchor_urb(urb); 211 } 212 213 usb_free_urb(urb); 214 215 return err; 216} 217 --- 49 unchanged lines hidden (view full) --- 267 268 BT_DBG("%s", hdev->name); 269 270 /* Read revision string */ 271 skb = __hci_cmd_sync(hdev, 0xfc0e, sizeof(req), req, HCI_INIT_TIMEOUT); 272 if (IS_ERR(skb)) 273 return PTR_ERR(skb); 274 | 207 usb_unanchor_urb(urb); 208 } 209 210 usb_free_urb(urb); 211 212 return err; 213} 214 --- 49 unchanged lines hidden (view full) --- 264 265 BT_DBG("%s", hdev->name); 266 267 /* Read revision string */ 268 skb = __hci_cmd_sync(hdev, 0xfc0e, sizeof(req), req, HCI_INIT_TIMEOUT); 269 if (IS_ERR(skb)) 270 return PTR_ERR(skb); 271 |
275 BT_INFO("%s: %s", hdev->name, (char *)(skb->data + 1)); | 272 bt_dev_info(hdev, "%s", (char *)(skb->data + 1)); |
276 277 hci_set_fw_info(hdev, "%s", skb->data + 1); 278 279 kfree_skb(skb); 280 return 0; 281} 282 283static int bpa10x_send_frame(struct hci_dev *hdev, struct sk_buff *skb) --- 59 unchanged lines hidden (view full) --- 343 usb_free_urb(urb); 344 return -EILSEQ; 345 } 346 347 usb_anchor_urb(urb, &data->tx_anchor); 348 349 err = usb_submit_urb(urb, GFP_ATOMIC); 350 if (err < 0) { | 273 274 hci_set_fw_info(hdev, "%s", skb->data + 1); 275 276 kfree_skb(skb); 277 return 0; 278} 279 280static int bpa10x_send_frame(struct hci_dev *hdev, struct sk_buff *skb) --- 59 unchanged lines hidden (view full) --- 340 usb_free_urb(urb); 341 return -EILSEQ; 342 } 343 344 usb_anchor_urb(urb, &data->tx_anchor); 345 346 err = usb_submit_urb(urb, GFP_ATOMIC); 347 if (err < 0) { |
351 BT_ERR("%s urb %p submission failed", hdev->name, urb); | 348 bt_dev_err(hdev, "urb %p submission failed", urb); |
352 kfree(urb->setup_packet); 353 usb_unanchor_urb(urb); 354 } 355 356 usb_free_urb(urb); 357 358 return 0; 359} --- 103 unchanged lines hidden --- | 349 kfree(urb->setup_packet); 350 usb_unanchor_urb(urb); 351 } 352 353 usb_free_urb(urb); 354 355 return 0; 356} --- 103 unchanged lines hidden --- |