Lines Matching refs:hdev
48 struct hci_dev *hdev; member
57 static int vhci_open_dev(struct hci_dev *hdev) in vhci_open_dev() argument
59 set_bit(HCI_RUNNING, &hdev->flags); in vhci_open_dev()
64 static int vhci_close_dev(struct hci_dev *hdev) in vhci_close_dev() argument
66 struct vhci_data *data = hci_get_drvdata(hdev); in vhci_close_dev()
68 if (!test_and_clear_bit(HCI_RUNNING, &hdev->flags)) in vhci_close_dev()
76 static int vhci_flush(struct hci_dev *hdev) in vhci_flush() argument
78 struct vhci_data *data = hci_get_drvdata(hdev); in vhci_flush()
85 static int vhci_send_frame(struct hci_dev *hdev, struct sk_buff *skb) in vhci_send_frame() argument
87 struct vhci_data *data = hci_get_drvdata(hdev); in vhci_send_frame()
89 if (!test_bit(HCI_RUNNING, &hdev->flags)) in vhci_send_frame()
101 struct hci_dev *hdev; in __vhci_create_device() local
105 if (data->hdev) in __vhci_create_device()
122 hdev = hci_alloc_dev(); in __vhci_create_device()
123 if (!hdev) { in __vhci_create_device()
128 data->hdev = hdev; in __vhci_create_device()
130 hdev->bus = HCI_VIRTUAL; in __vhci_create_device()
131 hdev->dev_type = dev_type; in __vhci_create_device()
132 hci_set_drvdata(hdev, data); in __vhci_create_device()
134 hdev->open = vhci_open_dev; in __vhci_create_device()
135 hdev->close = vhci_close_dev; in __vhci_create_device()
136 hdev->flush = vhci_flush; in __vhci_create_device()
137 hdev->send = vhci_send_frame; in __vhci_create_device()
141 set_bit(HCI_QUIRK_EXTERNAL_CONFIG, &hdev->quirks); in __vhci_create_device()
145 set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks); in __vhci_create_device()
147 if (hci_register_dev(hdev) < 0) { in __vhci_create_device()
149 hci_free_dev(hdev); in __vhci_create_device()
150 data->hdev = NULL; in __vhci_create_device()
159 put_unaligned_le16(hdev->id, skb_put(skb, 2)); in __vhci_create_device()
204 if (!data->hdev) { in vhci_get_user()
211 ret = hci_recv_frame(data->hdev, skb); in vhci_get_user()
250 if (!data->hdev) in vhci_put_user()
253 data->hdev->stat.byte_tx += len; in vhci_put_user()
257 data->hdev->stat.cmd_tx++; in vhci_put_user()
260 data->hdev->stat.acl_tx++; in vhci_put_user()
263 data->hdev->stat.sco_tx++; in vhci_put_user()
355 struct hci_dev *hdev; in vhci_release() local
359 hdev = data->hdev; in vhci_release()
361 if (hdev) { in vhci_release()
362 hci_unregister_dev(hdev); in vhci_release()
363 hci_free_dev(hdev); in vhci_release()