mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-03 17:14:14 +08:00
Bluetooth: hci_sync: Remove remaining dependencies of hci_request
This removes the dependencies of hci_req_init and hci_request_cancel_all from hci_sync.c. Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
parent
8bedf130c2
commit
f2d8977535
@ -8,6 +8,23 @@
|
|||||||
#define UINT_PTR(_handle) ((void *)((uintptr_t)_handle))
|
#define UINT_PTR(_handle) ((void *)((uintptr_t)_handle))
|
||||||
#define PTR_UINT(_ptr) ((uintptr_t)((void *)_ptr))
|
#define PTR_UINT(_ptr) ((uintptr_t)((void *)_ptr))
|
||||||
|
|
||||||
|
#define HCI_REQ_DONE 0
|
||||||
|
#define HCI_REQ_PEND 1
|
||||||
|
#define HCI_REQ_CANCELED 2
|
||||||
|
|
||||||
|
#define hci_req_sync_lock(hdev) mutex_lock(&hdev->req_lock)
|
||||||
|
#define hci_req_sync_unlock(hdev) mutex_unlock(&hdev->req_lock)
|
||||||
|
|
||||||
|
struct hci_request {
|
||||||
|
struct hci_dev *hdev;
|
||||||
|
struct sk_buff_head cmd_q;
|
||||||
|
|
||||||
|
/* If something goes wrong when building the HCI request, the error
|
||||||
|
* value is stored in this field.
|
||||||
|
*/
|
||||||
|
int err;
|
||||||
|
};
|
||||||
|
|
||||||
typedef int (*hci_cmd_sync_work_func_t)(struct hci_dev *hdev, void *data);
|
typedef int (*hci_cmd_sync_work_func_t)(struct hci_dev *hdev, void *data);
|
||||||
typedef void (*hci_cmd_sync_work_destroy_t)(struct hci_dev *hdev, void *data,
|
typedef void (*hci_cmd_sync_work_destroy_t)(struct hci_dev *hdev, void *data,
|
||||||
int err);
|
int err);
|
||||||
|
@ -22,23 +22,6 @@
|
|||||||
|
|
||||||
#include <asm/unaligned.h>
|
#include <asm/unaligned.h>
|
||||||
|
|
||||||
#define HCI_REQ_DONE 0
|
|
||||||
#define HCI_REQ_PEND 1
|
|
||||||
#define HCI_REQ_CANCELED 2
|
|
||||||
|
|
||||||
#define hci_req_sync_lock(hdev) mutex_lock(&hdev->req_lock)
|
|
||||||
#define hci_req_sync_unlock(hdev) mutex_unlock(&hdev->req_lock)
|
|
||||||
|
|
||||||
struct hci_request {
|
|
||||||
struct hci_dev *hdev;
|
|
||||||
struct sk_buff_head cmd_q;
|
|
||||||
|
|
||||||
/* If something goes wrong when building the HCI request, the error
|
|
||||||
* value is stored in this field.
|
|
||||||
*/
|
|
||||||
int err;
|
|
||||||
};
|
|
||||||
|
|
||||||
void hci_req_init(struct hci_request *req, struct hci_dev *hdev);
|
void hci_req_init(struct hci_request *req, struct hci_dev *hdev);
|
||||||
void hci_req_purge(struct hci_request *req);
|
void hci_req_purge(struct hci_request *req);
|
||||||
bool hci_req_status_pend(struct hci_dev *hdev);
|
bool hci_req_status_pend(struct hci_dev *hdev);
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
#include <net/bluetooth/hci_core.h>
|
#include <net/bluetooth/hci_core.h>
|
||||||
#include <net/bluetooth/mgmt.h>
|
#include <net/bluetooth/mgmt.h>
|
||||||
|
|
||||||
#include "hci_request.h"
|
|
||||||
#include "hci_codec.h"
|
#include "hci_codec.h"
|
||||||
#include "hci_debugfs.h"
|
#include "hci_debugfs.h"
|
||||||
#include "smp.h"
|
#include "smp.h"
|
||||||
@ -146,6 +145,13 @@ static int hci_cmd_sync_run(struct hci_request *req)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void hci_request_init(struct hci_request *req, struct hci_dev *hdev)
|
||||||
|
{
|
||||||
|
skb_queue_head_init(&req->cmd_q);
|
||||||
|
req->hdev = hdev;
|
||||||
|
req->err = 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* This function requires the caller holds hdev->req_lock. */
|
/* This function requires the caller holds hdev->req_lock. */
|
||||||
struct sk_buff *__hci_cmd_sync_sk(struct hci_dev *hdev, u16 opcode, u32 plen,
|
struct sk_buff *__hci_cmd_sync_sk(struct hci_dev *hdev, u16 opcode, u32 plen,
|
||||||
const void *param, u8 event, u32 timeout,
|
const void *param, u8 event, u32 timeout,
|
||||||
@ -157,7 +163,7 @@ struct sk_buff *__hci_cmd_sync_sk(struct hci_dev *hdev, u16 opcode, u32 plen,
|
|||||||
|
|
||||||
bt_dev_dbg(hdev, "Opcode 0x%4.4x", opcode);
|
bt_dev_dbg(hdev, "Opcode 0x%4.4x", opcode);
|
||||||
|
|
||||||
hci_req_init(&req, hdev);
|
hci_request_init(&req, hdev);
|
||||||
|
|
||||||
hci_cmd_sync_add(&req, opcode, plen, param, event, sk);
|
hci_cmd_sync_add(&req, opcode, plen, param, event, sk);
|
||||||
|
|
||||||
@ -5056,7 +5062,9 @@ int hci_dev_close_sync(struct hci_dev *hdev)
|
|||||||
cancel_delayed_work(&hdev->ncmd_timer);
|
cancel_delayed_work(&hdev->ncmd_timer);
|
||||||
cancel_delayed_work(&hdev->le_scan_disable);
|
cancel_delayed_work(&hdev->le_scan_disable);
|
||||||
|
|
||||||
hci_request_cancel_all(hdev);
|
hci_cmd_sync_cancel_sync(hdev, ENODEV);
|
||||||
|
|
||||||
|
cancel_interleave_scan(hdev);
|
||||||
|
|
||||||
if (hdev->adv_instance_timeout) {
|
if (hdev->adv_instance_timeout) {
|
||||||
cancel_delayed_work_sync(&hdev->adv_instance_expire);
|
cancel_delayed_work_sync(&hdev->adv_instance_expire);
|
||||||
|
Loading…
Reference in New Issue
Block a user