diff options
author | Sean Wang <sean.wang@mediatek.com> | 2019-04-18 05:08:00 -0400 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2019-04-23 12:36:20 -0400 |
commit | 2e47cc2b3a7dcef7deab3301796f21f80e161b13 (patch) | |
tree | c90d6a7f502575ea4e5cf19d2da4bb1f564859c4 /drivers/bluetooth | |
parent | e1052fb282a4e44d990e857c18edbd943d9ecdaf (diff) |
Bluetooth: btmtksdio: Add a bit definition for CHLPCR
Add a register bit definition about CHLPCR bit 8 because the bit is quite
different in the meaning between reading and writing that bit.
The patch adds a definition particularly for the bit read to avoid the
confusion about using write definition to read the bit.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth')
-rw-r--r-- | drivers/bluetooth/btmtksdio.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c index 681e3e34977e..9c123a9de673 100644 --- a/drivers/bluetooth/btmtksdio.c +++ b/drivers/bluetooth/btmtksdio.c | |||
@@ -56,7 +56,8 @@ static const struct sdio_device_id btmtksdio_table[] = { | |||
56 | #define MTK_REG_CHLPCR 0x4 /* W1S */ | 56 | #define MTK_REG_CHLPCR 0x4 /* W1S */ |
57 | #define C_INT_EN_SET BIT(0) | 57 | #define C_INT_EN_SET BIT(0) |
58 | #define C_INT_EN_CLR BIT(1) | 58 | #define C_INT_EN_CLR BIT(1) |
59 | #define C_FW_OWN_REQ_SET BIT(8) | 59 | #define C_FW_OWN_REQ_SET BIT(8) /* For write */ |
60 | #define C_COM_DRV_OWN BIT(8) /* For read */ | ||
60 | #define C_FW_OWN_REQ_CLR BIT(9) | 61 | #define C_FW_OWN_REQ_CLR BIT(9) |
61 | 62 | ||
62 | #define MTK_REG_CSDIOCSR 0x8 | 63 | #define MTK_REG_CSDIOCSR 0x8 |
@@ -526,7 +527,7 @@ static int btmtksdio_open(struct hci_dev *hdev) | |||
526 | goto err_disable_func; | 527 | goto err_disable_func; |
527 | 528 | ||
528 | err = readx_poll_timeout(btmtksdio_drv_own_query, bdev, status, | 529 | err = readx_poll_timeout(btmtksdio_drv_own_query, bdev, status, |
529 | status & C_FW_OWN_REQ_SET, 2000, 1000000); | 530 | status & C_COM_DRV_OWN, 2000, 1000000); |
530 | if (err < 0) { | 531 | if (err < 0) { |
531 | bt_dev_err(bdev->hdev, "Cannot get ownership from device"); | 532 | bt_dev_err(bdev->hdev, "Cannot get ownership from device"); |
532 | goto err_disable_func; | 533 | goto err_disable_func; |
@@ -606,7 +607,7 @@ static int btmtksdio_close(struct hci_dev *hdev) | |||
606 | sdio_writel(bdev->func, C_FW_OWN_REQ_SET, MTK_REG_CHLPCR, NULL); | 607 | sdio_writel(bdev->func, C_FW_OWN_REQ_SET, MTK_REG_CHLPCR, NULL); |
607 | 608 | ||
608 | err = readx_poll_timeout(btmtksdio_drv_own_query, bdev, status, | 609 | err = readx_poll_timeout(btmtksdio_drv_own_query, bdev, status, |
609 | !(status & C_FW_OWN_REQ_SET), 2000, 1000000); | 610 | !(status & C_COM_DRV_OWN), 2000, 1000000); |
610 | if (err < 0) | 611 | if (err < 0) |
611 | bt_dev_err(bdev->hdev, "Cannot return ownership to device"); | 612 | bt_dev_err(bdev->hdev, "Cannot return ownership to device"); |
612 | 613 | ||