Bluetooth: btmtksdio: Add a bit definition for CHLPCR
authorSean Wang <sean.wang@mediatek.com>
Thu, 18 Apr 2019 09:08:00 +0000 (17:08 +0800)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 23 Apr 2019 16:36:20 +0000 (18:36 +0200)
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>
drivers/bluetooth/btmtksdio.c

index 681e3e34977e6e14cec695b86bca3bf2664c8aed..9c123a9de673ad10a1e07d3af4797d1a7b36c2c6 100644 (file)
@@ -56,7 +56,8 @@ static const struct sdio_device_id btmtksdio_table[] = {
 #define MTK_REG_CHLPCR         0x4     /* W1S */
 #define C_INT_EN_SET           BIT(0)
 #define C_INT_EN_CLR           BIT(1)
-#define C_FW_OWN_REQ_SET       BIT(8)
+#define C_FW_OWN_REQ_SET       BIT(8)  /* For write */
+#define C_COM_DRV_OWN          BIT(8)  /* For read */
 #define C_FW_OWN_REQ_CLR       BIT(9)
 
 #define MTK_REG_CSDIOCSR       0x8
@@ -526,7 +527,7 @@ static int btmtksdio_open(struct hci_dev *hdev)
                goto err_disable_func;
 
        err = readx_poll_timeout(btmtksdio_drv_own_query, bdev, status,
-                                status & C_FW_OWN_REQ_SET, 2000, 1000000);
+                                status & C_COM_DRV_OWN, 2000, 1000000);
        if (err < 0) {
                bt_dev_err(bdev->hdev, "Cannot get ownership from device");
                goto err_disable_func;
@@ -606,7 +607,7 @@ static int btmtksdio_close(struct hci_dev *hdev)
        sdio_writel(bdev->func, C_FW_OWN_REQ_SET, MTK_REG_CHLPCR, NULL);
 
        err = readx_poll_timeout(btmtksdio_drv_own_query, bdev, status,
-                                !(status & C_FW_OWN_REQ_SET), 2000, 1000000);
+                                !(status & C_COM_DRV_OWN), 2000, 1000000);
        if (err < 0)
                bt_dev_err(bdev->hdev, "Cannot return ownership to device");