Lines Matching refs:hdev
37 static int rtl_read_rom_version(struct hci_dev *hdev, u8 *version) in rtl_read_rom_version() argument
43 skb = __hci_cmd_sync(hdev, 0xfc6d, 0, NULL, HCI_INIT_TIMEOUT); in rtl_read_rom_version()
46 hdev->name, PTR_ERR(skb)); in rtl_read_rom_version()
51 BT_ERR("%s: RTL version event length mismatch", hdev->name); in rtl_read_rom_version()
58 hdev->name, rom_version->status, rom_version->version); in rtl_read_rom_version()
66 static int rtl8723b_parse_firmware(struct hci_dev *hdev, u16 lmp_subver, in rtl8723b_parse_firmware() argument
88 ret = rtl_read_rom_version(hdev, &rom_version); in rtl8723b_parse_firmware()
98 BT_ERR("%s: extension section signature mismatch", hdev->name); in rtl8723b_parse_firmware()
120 hdev->name); in rtl8723b_parse_firmware()
133 BT_ERR("%s: failed to find version instruction", hdev->name); in rtl8723b_parse_firmware()
138 BT_ERR("%s: unknown project id %d", hdev->name, project_id); in rtl8723b_parse_firmware()
143 BT_ERR("%s: firmware is for %x but this is a %x", hdev->name, in rtl8723b_parse_firmware()
150 BT_ERR("%s: bad EPATCH signature", hdev->name); in rtl8723b_parse_firmware()
185 hdev->name, rom_version); in rtl8723b_parse_firmware()
208 static int rtl_download_firmware(struct hci_dev *hdev, in rtl_download_firmware() argument
234 skb = __hci_cmd_sync(hdev, 0xfc20, frag_len + 1, dl_cmd, in rtl_download_firmware()
238 hdev->name, PTR_ERR(skb)); in rtl_download_firmware()
245 hdev->name); in rtl_download_firmware()
260 static int btrtl_setup_rtl8723a(struct hci_dev *hdev) in btrtl_setup_rtl8723a() argument
265 BT_INFO("%s: rtl: loading rtl_bt/rtl8723a_fw.bin", hdev->name); in btrtl_setup_rtl8723a()
266 ret = request_firmware(&fw, "rtl_bt/rtl8723a_fw.bin", &hdev->dev); in btrtl_setup_rtl8723a()
268 BT_ERR("%s: Failed to load rtl_bt/rtl8723a_fw.bin", hdev->name); in btrtl_setup_rtl8723a()
281 BT_ERR("%s: unexpected EPATCH signature!", hdev->name); in btrtl_setup_rtl8723a()
286 ret = rtl_download_firmware(hdev, fw->data, fw->size); in btrtl_setup_rtl8723a()
293 static int btrtl_setup_rtl8723b(struct hci_dev *hdev, u16 lmp_subver, in btrtl_setup_rtl8723b() argument
300 BT_INFO("%s: rtl: loading %s", hdev->name, fw_name); in btrtl_setup_rtl8723b()
301 ret = request_firmware(&fw, fw_name, &hdev->dev); in btrtl_setup_rtl8723b()
303 BT_ERR("%s: Failed to load %s", hdev->name, fw_name); in btrtl_setup_rtl8723b()
307 ret = rtl8723b_parse_firmware(hdev, lmp_subver, fw, &fw_data); in btrtl_setup_rtl8723b()
311 ret = rtl_download_firmware(hdev, fw_data, ret); in btrtl_setup_rtl8723b()
321 static struct sk_buff *btrtl_read_local_version(struct hci_dev *hdev) in btrtl_read_local_version() argument
325 skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_VERSION, 0, NULL, in btrtl_read_local_version()
329 hdev->name, PTR_ERR(skb)); in btrtl_read_local_version()
335 hdev->name); in btrtl_read_local_version()
343 int btrtl_setup_realtek(struct hci_dev *hdev) in btrtl_setup_realtek() argument
349 skb = btrtl_read_local_version(hdev); in btrtl_setup_realtek()
355 "lmp_subver=%04x", hdev->name, resp->hci_ver, resp->hci_rev, in btrtl_setup_realtek()
370 return btrtl_setup_rtl8723a(hdev); in btrtl_setup_realtek()
372 return btrtl_setup_rtl8723b(hdev, lmp_subver, in btrtl_setup_realtek()
375 return btrtl_setup_rtl8723b(hdev, lmp_subver, in btrtl_setup_realtek()
378 return btrtl_setup_rtl8723b(hdev, lmp_subver, in btrtl_setup_realtek()