* [PATCH v2] Bluetooth: btmtksdio: Add in-band wakeup support
@ 2022-06-22 21:56 sean.wang
2022-06-22 23:01 ` [v2] " bluez.test.bot
2022-06-23 8:42 ` [PATCH v2] " AngeloGioacchino Del Regno
0 siblings, 2 replies; 3+ messages in thread
From: sean.wang @ 2022-06-22 21:56 UTC (permalink / raw)
To: marcel, johan.hedberg
Cc: sean.wang, Soul.Huang, YN.Chen, Leon.Yen, Eric-SY.Chang,
Deren.Wu, km.lin, robin.chiu, Eddie.Chen, ch.yeh, posh.sun,
ted.huang, Eric.Liang, Stella.Chang, Tom.Chou, steve.lee, jsiuda,
frankgor, abhishekpandit, michaelfsun, mcchou, shawnku,
linux-bluetooth, linux-mediatek, linux-kernel, Yake Yang
From: Sean Wang <sean.wang@mediatek.com>
Commit ce64b3e94919 ("Bluetooth: mt7921s: Support wake on bluetooth")
adds the wake on bluethooth via a dedicated GPIO.
Extend the wake-on-bluetooth to use the SDIO DAT1 pin (in-band wakeup),
when supported by the SDIO host driver.
Co-developed-by: Yake Yang <yake.yang@mediatek.com>
Signed-off-by: Yake Yang <yake.yang@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
v2: enhance the patch description and comments
---
drivers/bluetooth/btmtksdio.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c
index d6700efcfe8c..9d79c9107b3a 100644
--- a/drivers/bluetooth/btmtksdio.c
+++ b/drivers/bluetooth/btmtksdio.c
@@ -118,6 +118,7 @@ MODULE_DEVICE_TABLE(sdio, btmtksdio_table);
#define BTMTKSDIO_FUNC_ENABLED 3
#define BTMTKSDIO_PATCH_ENABLED 4
#define BTMTKSDIO_HW_RESET_ACTIVE 5
+#define BTMTKSDIO_INBAND_WAKEUP 6
struct mtkbtsdio_hdr {
__le16 len;
@@ -1294,6 +1295,9 @@ static bool btmtksdio_sdio_wakeup(struct hci_dev *hdev)
.wakeup_delay = cpu_to_le16(0x20),
};
+ if (test_bit(BTMTKSDIO_INBAND_WAKEUP, &bdev->tx_state))
+ return may_wakeup;
+
if (may_wakeup && bdev->data->chipid == 0x7921) {
struct sk_buff *skb;
@@ -1384,6 +1388,10 @@ static int btmtksdio_probe(struct sdio_func *func,
*/
pm_runtime_put_noidle(bdev->dev);
+ /* Mark if MMC host supports wake on bluetooth by SDIO */
+ if (device_can_wakeup(func->card->host->parent))
+ set_bit(BTMTKSDIO_INBAND_WAKEUP, &bdev->tx_state);
+
err = device_init_wakeup(bdev->dev, true);
if (err)
bt_dev_err(hdev, "failed to initialize device wakeup");
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* RE: [v2] Bluetooth: btmtksdio: Add in-band wakeup support
2022-06-22 21:56 [PATCH v2] Bluetooth: btmtksdio: Add in-band wakeup support sean.wang
@ 2022-06-22 23:01 ` bluez.test.bot
2022-06-23 8:42 ` [PATCH v2] " AngeloGioacchino Del Regno
1 sibling, 0 replies; 3+ messages in thread
From: bluez.test.bot @ 2022-06-22 23:01 UTC (permalink / raw)
To: linux-bluetooth, sean.wang
[-- Attachment #1: Type: text/plain, Size: 1096 bytes --]
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=652944
---Test result---
Test Summary:
CheckPatch PASS 0.90 seconds
GitLint PASS 0.56 seconds
SubjectPrefix PASS 0.42 seconds
BuildKernel PASS 30.71 seconds
BuildKernel32 PASS 27.17 seconds
Incremental Build with patchesPASS 37.53 seconds
TestRunner: Setup PASS 464.66 seconds
TestRunner: l2cap-tester PASS 16.55 seconds
TestRunner: bnep-tester PASS 5.60 seconds
TestRunner: mgmt-tester PASS 97.86 seconds
TestRunner: rfcomm-tester PASS 8.98 seconds
TestRunner: sco-tester PASS 8.81 seconds
TestRunner: smp-tester PASS 8.87 seconds
TestRunner: userchan-tester PASS 5.78 seconds
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] Bluetooth: btmtksdio: Add in-band wakeup support
2022-06-22 21:56 [PATCH v2] Bluetooth: btmtksdio: Add in-band wakeup support sean.wang
2022-06-22 23:01 ` [v2] " bluez.test.bot
@ 2022-06-23 8:42 ` AngeloGioacchino Del Regno
1 sibling, 0 replies; 3+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-06-23 8:42 UTC (permalink / raw)
To: sean.wang, marcel, johan.hedberg
Cc: Soul.Huang, YN.Chen, Leon.Yen, Eric-SY.Chang, Deren.Wu, km.lin,
robin.chiu, Eddie.Chen, ch.yeh, posh.sun, ted.huang, Eric.Liang,
Stella.Chang, Tom.Chou, steve.lee, jsiuda, frankgor,
abhishekpandit, michaelfsun, mcchou, shawnku, linux-bluetooth,
linux-mediatek, linux-kernel, Yake Yang
Il 22/06/22 23:56, sean.wang@mediatek.com ha scritto:
> From: Sean Wang <sean.wang@mediatek.com>
>
> Commit ce64b3e94919 ("Bluetooth: mt7921s: Support wake on bluetooth")
> adds the wake on bluethooth via a dedicated GPIO.
>
> Extend the wake-on-bluetooth to use the SDIO DAT1 pin (in-band wakeup),
> when supported by the SDIO host driver.
>
> Co-developed-by: Yake Yang <yake.yang@mediatek.com>
> Signed-off-by: Yake Yang <yake.yang@mediatek.com>
> Signed-off-by: Sean Wang <sean.wang@mediatek.com>
> ---
> v2: enhance the patch description and comments
> ---
> drivers/bluetooth/btmtksdio.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c
> index d6700efcfe8c..9d79c9107b3a 100644
> --- a/drivers/bluetooth/btmtksdio.c
> +++ b/drivers/bluetooth/btmtksdio.c
> @@ -118,6 +118,7 @@ MODULE_DEVICE_TABLE(sdio, btmtksdio_table);
> #define BTMTKSDIO_FUNC_ENABLED 3
> #define BTMTKSDIO_PATCH_ENABLED 4
> #define BTMTKSDIO_HW_RESET_ACTIVE 5
> +#define BTMTKSDIO_INBAND_WAKEUP 6
>
> struct mtkbtsdio_hdr {
> __le16 len;
> @@ -1294,6 +1295,9 @@ static bool btmtksdio_sdio_wakeup(struct hci_dev *hdev)
> .wakeup_delay = cpu_to_le16(0x20),
> };
>
> + if (test_bit(BTMTKSDIO_INBAND_WAKEUP, &bdev->tx_state))
> + return may_wakeup;
> +
Uhm... this flag is either *always* set, or *always not set*... and we decide that
during probe time... and we use it in just one function as well.
At this point, I would just avoid the addition of the BTMTKSDIO_INBAND_WAKEUP flag
and add a new function for handling the .wakeup() callback - something like:
static bool btmtksdio_sdio_inband_wakeup(struct hci_dev *hdev)
{
struct btmtksdio_dev *bdev = hci_get_drvdata(hdev);
return device_may_wakeup(bdev->dev);
}
static int btmtksdio_probe(...)
{
.... code ....
/*
* If SDIO controller supports wake on Bluetooth, sending a wakeon
* command is not necessary.
*/
if (device_can_wakeup(func->card->host->parent))
hdev->wakeup = btmtksdio_sdio_inband_wakeup;
else
hdev->wakeup = btmtksdio_sdio_wakeup;
.... etc ....
}
Regards,
Angelo
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-06-23 8:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-22 21:56 [PATCH v2] Bluetooth: btmtksdio: Add in-band wakeup support sean.wang
2022-06-22 23:01 ` [v2] " bluez.test.bot
2022-06-23 8:42 ` [PATCH v2] " AngeloGioacchino Del Regno
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).