]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/bluetooth/btwilink.c
Merge remote-tracking branch 'mips/mips-for-linux-next'
[karo-tx-linux.git] / drivers / bluetooth / btwilink.c
index 7a722df97343ee6f25fb4c02959b8d64bacc4449..57eb935aedc73b4a782d42f676ec06a0ad5bed5a 100644 (file)
@@ -155,9 +155,6 @@ static int ti_st_open(struct hci_dev *hdev)
 
        BT_DBG("%s %p", hdev->name, hdev);
 
-       if (test_and_set_bit(HCI_RUNNING, &hdev->flags))
-               return -EBUSY;
-
        /* provide contexts for callbacks from ST */
        hst = hci_get_drvdata(hdev);
 
@@ -181,7 +178,6 @@ static int ti_st_open(struct hci_dev *hdev)
                        goto done;
 
                if (err != -EINPROGRESS) {
-                       clear_bit(HCI_RUNNING, &hdev->flags);
                        BT_ERR("st_register failed %d", err);
                        return err;
                }
@@ -195,7 +191,6 @@ static int ti_st_open(struct hci_dev *hdev)
                        (&hst->wait_reg_completion,
                         msecs_to_jiffies(BT_REGISTER_TIMEOUT));
                if (!timeleft) {
-                       clear_bit(HCI_RUNNING, &hdev->flags);
                        BT_ERR("Timeout(%d sec),didn't get reg "
                                        "completion signal from ST",
                                        BT_REGISTER_TIMEOUT / 1000);
@@ -205,7 +200,6 @@ static int ti_st_open(struct hci_dev *hdev)
                /* Is ST registration callback
                 * called with ERROR status? */
                if (hst->reg_status != 0) {
-                       clear_bit(HCI_RUNNING, &hdev->flags);
                        BT_ERR("ST registration completed with invalid "
                                        "status %d", hst->reg_status);
                        return -EAGAIN;
@@ -215,7 +209,6 @@ done:
                hst->st_write = ti_st_proto[i].write;
                if (!hst->st_write) {
                        BT_ERR("undefined ST write function");
-                       clear_bit(HCI_RUNNING, &hdev->flags);
                        for (i = 0; i < MAX_BT_CHNL_IDS; i++) {
                                /* Undo registration with ST */
                                err = st_unregister(&ti_st_proto[i]);
@@ -236,9 +229,6 @@ static int ti_st_close(struct hci_dev *hdev)
        int err, i;
        struct ti_st *hst = hci_get_drvdata(hdev);
 
-       if (!test_and_clear_bit(HCI_RUNNING, &hdev->flags))
-               return 0;
-
        for (i = MAX_BT_CHNL_IDS-1; i >= 0; i--) {
                err = st_unregister(&ti_st_proto[i]);
                if (err)
@@ -256,9 +246,6 @@ static int ti_st_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
        struct ti_st *hst;
        long len;
 
-       if (!test_bit(HCI_RUNNING, &hdev->flags))
-               return -EBUSY;
-
        hst = hci_get_drvdata(hdev);
 
        /* Prepend skb with frame type */