Lines Matching defs:hdev
33 struct hci_dev *hdev;
42 static int vhci_open_dev(struct hci_dev *hdev)
47 static int vhci_close_dev(struct hci_dev *hdev)
49 struct vhci_data *data = hci_get_drvdata(hdev);
56 static int vhci_flush(struct hci_dev *hdev)
58 struct vhci_data *data = hci_get_drvdata(hdev);
65 static int vhci_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
67 struct vhci_data *data = hci_get_drvdata(hdev);
81 struct hci_dev *hdev;
85 if (data->hdev)
102 hdev = hci_alloc_dev();
103 if (!hdev) {
108 data->hdev = hdev;
110 hdev->bus = HCI_VIRTUAL;
111 hdev->dev_type = dev_type;
112 hci_set_drvdata(hdev, data);
114 hdev->open = vhci_open_dev;
115 hdev->close = vhci_close_dev;
116 hdev->flush = vhci_flush;
117 hdev->send = vhci_send_frame;
121 set_bit(HCI_QUIRK_EXTERNAL_CONFIG, &hdev->quirks);
125 set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks);
127 set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
129 if (hci_register_dev(hdev) < 0) {
131 hci_free_dev(hdev);
132 data->hdev = NULL;
141 put_unaligned_le16(hdev->id, skb_put(skb, 2));
187 if (!data->hdev) {
194 ret = hci_recv_frame(data->hdev, skb);
233 if (!data->hdev)
236 data->hdev->stat.byte_tx += len;
240 data->hdev->stat.cmd_tx++;
243 data->hdev->stat.acl_tx++;
246 data->hdev->stat.sco_tx++;
338 struct hci_dev *hdev;
342 hdev = data->hdev;
344 if (hdev) {
345 hci_unregister_dev(hdev);
346 hci_free_dev(hdev);