hci_qca.c (f730cc9fee2b47c22964b4843a41d723f436b62a) | hci_qca.c (2064ee332e4c1b7495cf68b84355c213d8fe71fd) |
---|---|
1/* 2 * Bluetooth Software UART Qualcomm protocol 3 * 4 * HCI_IBS (HCI In-Band Sleep) is Qualcomm's power management 5 * protocol extension to H4. 6 * 7 * Copyright (C) 2007 Texas Instruments, Inc. 8 * Copyright (c) 2010, 2012 The Linux Foundation. All rights reserved. --- 786 unchanged lines hidden (view full) --- 795 796 if (!test_bit(HCI_UART_REGISTERED, &hu->flags)) 797 return -EUNATCH; 798 799 qca->rx_skb = h4_recv_buf(hu->hdev, qca->rx_skb, data, count, 800 qca_recv_pkts, ARRAY_SIZE(qca_recv_pkts)); 801 if (IS_ERR(qca->rx_skb)) { 802 int err = PTR_ERR(qca->rx_skb); | 1/* 2 * Bluetooth Software UART Qualcomm protocol 3 * 4 * HCI_IBS (HCI In-Band Sleep) is Qualcomm's power management 5 * protocol extension to H4. 6 * 7 * Copyright (C) 2007 Texas Instruments, Inc. 8 * Copyright (c) 2010, 2012 The Linux Foundation. All rights reserved. --- 786 unchanged lines hidden (view full) --- 795 796 if (!test_bit(HCI_UART_REGISTERED, &hu->flags)) 797 return -EUNATCH; 798 799 qca->rx_skb = h4_recv_buf(hu->hdev, qca->rx_skb, data, count, 800 qca_recv_pkts, ARRAY_SIZE(qca_recv_pkts)); 801 if (IS_ERR(qca->rx_skb)) { 802 int err = PTR_ERR(qca->rx_skb); |
803 BT_ERR("%s: Frame reassembly failed (%d)", hu->hdev->name, err); | 803 bt_dev_err(hu->hdev, "Frame reassembly failed (%d)", err); |
804 qca->rx_skb = NULL; 805 return err; 806 } 807 808 return count; 809} 810 811static struct sk_buff *qca_dequeue(struct hci_uart *hu) --- 46 unchanged lines hidden (view full) --- 858 859 if (baudrate > QCA_BAUDRATE_3000000) 860 return -EINVAL; 861 862 cmd[4] = baudrate; 863 864 skb = bt_skb_alloc(sizeof(cmd), GFP_ATOMIC); 865 if (!skb) { | 804 qca->rx_skb = NULL; 805 return err; 806 } 807 808 return count; 809} 810 811static struct sk_buff *qca_dequeue(struct hci_uart *hu) --- 46 unchanged lines hidden (view full) --- 858 859 if (baudrate > QCA_BAUDRATE_3000000) 860 return -EINVAL; 861 862 cmd[4] = baudrate; 863 864 skb = bt_skb_alloc(sizeof(cmd), GFP_ATOMIC); 865 if (!skb) { |
866 BT_ERR("Failed to allocate memory for baudrate packet"); | 866 bt_dev_err(hdev, "Failed to allocate baudrate packet"); |
867 return -ENOMEM; 868 } 869 870 /* Assign commands to change baudrate and packet type. */ 871 skb_put_data(skb, cmd, sizeof(cmd)); 872 hci_skb_pkt_type(skb) = HCI_COMMAND_PKT; 873 874 skb_queue_tail(&qca->txq, skb); --- 12 unchanged lines hidden (view full) --- 887 888static int qca_setup(struct hci_uart *hu) 889{ 890 struct hci_dev *hdev = hu->hdev; 891 struct qca_data *qca = hu->priv; 892 unsigned int speed, qca_baudrate = QCA_BAUDRATE_115200; 893 int ret; 894 | 867 return -ENOMEM; 868 } 869 870 /* Assign commands to change baudrate and packet type. */ 871 skb_put_data(skb, cmd, sizeof(cmd)); 872 hci_skb_pkt_type(skb) = HCI_COMMAND_PKT; 873 874 skb_queue_tail(&qca->txq, skb); --- 12 unchanged lines hidden (view full) --- 887 888static int qca_setup(struct hci_uart *hu) 889{ 890 struct hci_dev *hdev = hu->hdev; 891 struct qca_data *qca = hu->priv; 892 unsigned int speed, qca_baudrate = QCA_BAUDRATE_115200; 893 int ret; 894 |
895 BT_INFO("%s: ROME setup", hdev->name); | 895 bt_dev_info(hdev, "ROME setup"); |
896 897 /* Patch downloading has to be done without IBS mode */ 898 clear_bit(STATE_IN_BAND_SLEEP_ENABLED, &qca->flags); 899 900 /* Setup initial baudrate */ 901 speed = 0; 902 if (hu->init_speed) 903 speed = hu->init_speed; --- 8 unchanged lines hidden (view full) --- 912 if (hu->oper_speed) 913 speed = hu->oper_speed; 914 else if (hu->proto->oper_speed) 915 speed = hu->proto->oper_speed; 916 917 if (speed) { 918 qca_baudrate = qca_get_baudrate_value(speed); 919 | 896 897 /* Patch downloading has to be done without IBS mode */ 898 clear_bit(STATE_IN_BAND_SLEEP_ENABLED, &qca->flags); 899 900 /* Setup initial baudrate */ 901 speed = 0; 902 if (hu->init_speed) 903 speed = hu->init_speed; --- 8 unchanged lines hidden (view full) --- 912 if (hu->oper_speed) 913 speed = hu->oper_speed; 914 else if (hu->proto->oper_speed) 915 speed = hu->proto->oper_speed; 916 917 if (speed) { 918 qca_baudrate = qca_get_baudrate_value(speed); 919 |
920 BT_INFO("%s: Set UART speed to %d", hdev->name, speed); | 920 bt_dev_info(hdev, "Set UART speed to %d", speed); |
921 ret = qca_set_baudrate(hdev, qca_baudrate); 922 if (ret) { | 921 ret = qca_set_baudrate(hdev, qca_baudrate); 922 if (ret) { |
923 BT_ERR("%s: Failed to change the baud rate (%d)", 924 hdev->name, ret); | 923 bt_dev_err(hdev, "Failed to change the baud rate (%d)", 924 ret); |
925 return ret; 926 } 927 hci_uart_set_baudrate(hu, speed); 928 } 929 930 /* Setup patch / NVM configurations */ 931 ret = qca_uart_setup_rome(hdev, qca_baudrate); 932 if (!ret) { --- 34 unchanged lines hidden --- | 925 return ret; 926 } 927 hci_uart_set_baudrate(hu, speed); 928 } 929 930 /* Setup patch / NVM configurations */ 931 ret = qca_uart_setup_rome(hdev, qca_baudrate); 932 if (!ret) { --- 34 unchanged lines hidden --- |