]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/bluetooth/btmrvl_main.c
Merge remote-tracking branch 'omap/for-next'
[karo-tx-linux.git] / drivers / bluetooth / btmrvl_main.c
index bc110f61c8b18c661f58a83882df6c3ddb039221..6af917331962409dded11034273af84e98905313 100644 (file)
@@ -184,7 +184,7 @@ static int btmrvl_send_sync_cmd(struct btmrvl_private *priv, u16 opcode,
        }
 
        skb = bt_skb_alloc(HCI_COMMAND_HDR_SIZE + len, GFP_ATOMIC);
-       if (skb == NULL) {
+       if (!skb) {
                BT_ERR("No free skb");
                return -ENOMEM;
        }
@@ -436,13 +436,6 @@ static int btmrvl_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
 
        BT_DBG("type=%d, len=%d", skb->pkt_type, skb->len);
 
-       if (!test_bit(HCI_RUNNING, &hdev->flags)) {
-               BT_ERR("Failed testing HCI_RUNING, flags=%lx", hdev->flags);
-               print_hex_dump_bytes("data: ", DUMP_PREFIX_OFFSET,
-                                                       skb->data, skb->len);
-               return -EBUSY;
-       }
-
        switch (bt_cb(skb)->pkt_type) {
        case HCI_COMMAND_PKT:
                hdev->stat.cmd_tx++;
@@ -477,9 +470,6 @@ static int btmrvl_close(struct hci_dev *hdev)
 {
        struct btmrvl_private *priv = hci_get_drvdata(hdev);
 
-       if (!test_and_clear_bit(HCI_RUNNING, &hdev->flags))
-               return 0;
-
        skb_queue_purge(&priv->adapter->tx_queue);
 
        return 0;
@@ -487,8 +477,6 @@ static int btmrvl_close(struct hci_dev *hdev)
 
 static int btmrvl_open(struct hci_dev *hdev)
 {
-       set_bit(HCI_RUNNING, &hdev->flags);
-
        return 0;
 }
 
@@ -528,14 +516,17 @@ static int btmrvl_check_device_tree(struct btmrvl_private *priv)
                ret = of_property_read_u8_array(dt_node, "btmrvl,cal-data",
                                                cal_data + BT_CAL_HDR_LEN,
                                                BT_CAL_DATA_SIZE);
-               if (ret)
+               if (ret) {
+                       of_node_put(dt_node);
                        return ret;
+               }
 
                BT_DBG("Use cal data from device tree");
                ret = btmrvl_download_cal_data(priv, cal_data,
                                               BT_CAL_DATA_SIZE);
                if (ret) {
                        BT_ERR("Fail to download calibrate data");
+                       of_node_put(dt_node);
                        return ret;
                }
        }