* [PATCH RESEND] Bluetooth: btmtksdio: Lookup device node only as fallback
@ 2024-10-08 8:27 Chen-Yu Tsai
2024-10-08 13:39 ` Luiz Augusto von Dentz
2024-10-15 16:30 ` patchwork-bot+bluetooth
0 siblings, 2 replies; 4+ messages in thread
From: Chen-Yu Tsai @ 2024-10-08 8:27 UTC (permalink / raw)
To: Marcel Holtmann, Luiz Augusto von Dentz, Sean Wang
Cc: Chen-Yu Tsai, linux-bluetooth, linux-mediatek
If the device tree is properly written, the SDIO function device node
should be correctly defined, and the mmc core in Linux should correctly
tie it to the device being probed.
Only fall back to searching for the device node by compatible if the
original device node tied to the device is incorrect, as seen in older
device trees.
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
---
Resending after three and a half months.
This follows up on the MT7921S bluetooth binding and DT fixup patches [1].
This should not be backported.
[1] https://lore.kernel.org/linux-bluetooth/20240412073046.1192744-1-wenst@chromium.org/
drivers/bluetooth/btmtksdio.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c
index cc097aedc1e1..a1dfcfe43d3a 100644
--- a/drivers/bluetooth/btmtksdio.c
+++ b/drivers/bluetooth/btmtksdio.c
@@ -1328,6 +1328,8 @@ static int btmtksdio_probe(struct sdio_func *func,
{
struct btmtksdio_dev *bdev;
struct hci_dev *hdev;
+ struct device_node *old_node;
+ bool restore_node;
int err;
bdev = devm_kzalloc(&func->dev, sizeof(*bdev), GFP_KERNEL);
@@ -1411,13 +1413,24 @@ static int btmtksdio_probe(struct sdio_func *func,
if (err)
bt_dev_err(hdev, "failed to initialize device wakeup");
- bdev->dev->of_node = of_find_compatible_node(NULL, NULL,
- "mediatek,mt7921s-bluetooth");
+ restore_node = false;
+ if (!of_device_is_compatible(bdev->dev->of_node, "mediatek,mt7921s-bluetooth")) {
+ restore_node = true;
+ old_node = bdev->dev->of_node;
+ bdev->dev->of_node = of_find_compatible_node(NULL, NULL,
+ "mediatek,mt7921s-bluetooth");
+ }
+
bdev->reset = devm_gpiod_get_optional(bdev->dev, "reset",
GPIOD_OUT_LOW);
if (IS_ERR(bdev->reset))
err = PTR_ERR(bdev->reset);
+ if (restore_node) {
+ of_node_put(bdev->dev->of_node);
+ bdev->dev->of_node = old_node;
+ }
+
return err;
}
--
2.47.0.rc0.187.ge670bccf7e-goog
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH RESEND] Bluetooth: btmtksdio: Lookup device node only as fallback
2024-10-08 8:27 [PATCH RESEND] Bluetooth: btmtksdio: Lookup device node only as fallback Chen-Yu Tsai
@ 2024-10-08 13:39 ` Luiz Augusto von Dentz
2024-10-15 8:46 ` AngeloGioacchino Del Regno
2024-10-15 16:30 ` patchwork-bot+bluetooth
1 sibling, 1 reply; 4+ messages in thread
From: Luiz Augusto von Dentz @ 2024-10-08 13:39 UTC (permalink / raw)
To: Chen-Yu Tsai; +Cc: Marcel Holtmann, Sean Wang, linux-bluetooth, linux-mediatek
Hi,
On Tue, Oct 8, 2024 at 4:27 AM Chen-Yu Tsai <wenst@chromium.org> wrote:
>
> If the device tree is properly written, the SDIO function device node
> should be correctly defined, and the mmc core in Linux should correctly
> tie it to the device being probed.
>
> Only fall back to searching for the device node by compatible if the
> original device node tied to the device is incorrect, as seen in older
> device trees.
>
> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
I was hoping to see some Reviewed-by/Tested-by here, were the mediatek
made aware of these changes?
> ---
> Resending after three and a half months.
>
> This follows up on the MT7921S bluetooth binding and DT fixup patches [1].
> This should not be backported.
>
> [1] https://lore.kernel.org/linux-bluetooth/20240412073046.1192744-1-wenst@chromium.org/
>
> drivers/bluetooth/btmtksdio.c | 17 +++++++++++++++--
> 1 file changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c
> index cc097aedc1e1..a1dfcfe43d3a 100644
> --- a/drivers/bluetooth/btmtksdio.c
> +++ b/drivers/bluetooth/btmtksdio.c
> @@ -1328,6 +1328,8 @@ static int btmtksdio_probe(struct sdio_func *func,
> {
> struct btmtksdio_dev *bdev;
> struct hci_dev *hdev;
> + struct device_node *old_node;
> + bool restore_node;
> int err;
>
> bdev = devm_kzalloc(&func->dev, sizeof(*bdev), GFP_KERNEL);
> @@ -1411,13 +1413,24 @@ static int btmtksdio_probe(struct sdio_func *func,
> if (err)
> bt_dev_err(hdev, "failed to initialize device wakeup");
>
> - bdev->dev->of_node = of_find_compatible_node(NULL, NULL,
> - "mediatek,mt7921s-bluetooth");
> + restore_node = false;
> + if (!of_device_is_compatible(bdev->dev->of_node, "mediatek,mt7921s-bluetooth")) {
> + restore_node = true;
> + old_node = bdev->dev->of_node;
> + bdev->dev->of_node = of_find_compatible_node(NULL, NULL,
> + "mediatek,mt7921s-bluetooth");
> + }
> +
> bdev->reset = devm_gpiod_get_optional(bdev->dev, "reset",
> GPIOD_OUT_LOW);
> if (IS_ERR(bdev->reset))
> err = PTR_ERR(bdev->reset);
>
> + if (restore_node) {
> + of_node_put(bdev->dev->of_node);
> + bdev->dev->of_node = old_node;
> + }
> +
> return err;
> }
>
> --
> 2.47.0.rc0.187.ge670bccf7e-goog
>
--
Luiz Augusto von Dentz
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH RESEND] Bluetooth: btmtksdio: Lookup device node only as fallback
2024-10-08 13:39 ` Luiz Augusto von Dentz
@ 2024-10-15 8:46 ` AngeloGioacchino Del Regno
0 siblings, 0 replies; 4+ messages in thread
From: AngeloGioacchino Del Regno @ 2024-10-15 8:46 UTC (permalink / raw)
To: Luiz Augusto von Dentz, Chen-Yu Tsai
Cc: Marcel Holtmann, Sean Wang, linux-bluetooth, linux-mediatek
Il 08/10/24 15:39, Luiz Augusto von Dentz ha scritto:
> Hi,
>
> On Tue, Oct 8, 2024 at 4:27 AM Chen-Yu Tsai <wenst@chromium.org> wrote:
>>
>> If the device tree is properly written, the SDIO function device node
>> should be correctly defined, and the mmc core in Linux should correctly
>> tie it to the device being probed.
>>
>> Only fall back to searching for the device node by compatible if the
>> original device node tied to the device is incorrect, as seen in older
>> device trees.
>>
>> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
>
> I was hoping to see some Reviewed-by/Tested-by here, were the mediatek
> made aware of these changes?
>
Sorry I didn't see this patch in my .. rather big .. stack of patches :-D
I can confirm
Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> #
MT8186 Corsola
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cheers,
Angelo
>> ---
>> Resending after three and a half months.
>>
>> This follows up on the MT7921S bluetooth binding and DT fixup patches [1].
>> This should not be backported.
>>
>> [1] https://lore.kernel.org/linux-bluetooth/20240412073046.1192744-1-wenst@chromium.org/
>>
>> drivers/bluetooth/btmtksdio.c | 17 +++++++++++++++--
>> 1 file changed, 15 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c
>> index cc097aedc1e1..a1dfcfe43d3a 100644
>> --- a/drivers/bluetooth/btmtksdio.c
>> +++ b/drivers/bluetooth/btmtksdio.c
>> @@ -1328,6 +1328,8 @@ static int btmtksdio_probe(struct sdio_func *func,
>> {
>> struct btmtksdio_dev *bdev;
>> struct hci_dev *hdev;
>> + struct device_node *old_node;
>> + bool restore_node;
>> int err;
>>
>> bdev = devm_kzalloc(&func->dev, sizeof(*bdev), GFP_KERNEL);
>> @@ -1411,13 +1413,24 @@ static int btmtksdio_probe(struct sdio_func *func,
>> if (err)
>> bt_dev_err(hdev, "failed to initialize device wakeup");
>>
>> - bdev->dev->of_node = of_find_compatible_node(NULL, NULL,
>> - "mediatek,mt7921s-bluetooth");
>> + restore_node = false;
>> + if (!of_device_is_compatible(bdev->dev->of_node, "mediatek,mt7921s-bluetooth")) {
>> + restore_node = true;
>> + old_node = bdev->dev->of_node;
>> + bdev->dev->of_node = of_find_compatible_node(NULL, NULL,
>> + "mediatek,mt7921s-bluetooth");
>> + }
>> +
>> bdev->reset = devm_gpiod_get_optional(bdev->dev, "reset",
>> GPIOD_OUT_LOW);
>> if (IS_ERR(bdev->reset))
>> err = PTR_ERR(bdev->reset);
>>
>> + if (restore_node) {
>> + of_node_put(bdev->dev->of_node);
>> + bdev->dev->of_node = old_node;
>> + }
>> +
>> return err;
>> }
>>
>> --
>> 2.47.0.rc0.187.ge670bccf7e-goog
>>
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH RESEND] Bluetooth: btmtksdio: Lookup device node only as fallback
2024-10-08 8:27 [PATCH RESEND] Bluetooth: btmtksdio: Lookup device node only as fallback Chen-Yu Tsai
2024-10-08 13:39 ` Luiz Augusto von Dentz
@ 2024-10-15 16:30 ` patchwork-bot+bluetooth
1 sibling, 0 replies; 4+ messages in thread
From: patchwork-bot+bluetooth @ 2024-10-15 16:30 UTC (permalink / raw)
To: Chen-Yu Tsai
Cc: marcel, luiz.dentz, sean.wang, linux-bluetooth, linux-mediatek
Hello:
This patch was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:
On Tue, 8 Oct 2024 16:27:20 +0800 you wrote:
> If the device tree is properly written, the SDIO function device node
> should be correctly defined, and the mmc core in Linux should correctly
> tie it to the device being probed.
>
> Only fall back to searching for the device node by compatible if the
> original device node tied to the device is incorrect, as seen in older
> device trees.
>
> [...]
Here is the summary with links:
- [RESEND] Bluetooth: btmtksdio: Lookup device node only as fallback
https://git.kernel.org/bluetooth/bluetooth-next/c/cbb516bbcdfd
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-10-15 16:30 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-08 8:27 [PATCH RESEND] Bluetooth: btmtksdio: Lookup device node only as fallback Chen-Yu Tsai
2024-10-08 13:39 ` Luiz Augusto von Dentz
2024-10-15 8:46 ` AngeloGioacchino Del Regno
2024-10-15 16:30 ` patchwork-bot+bluetooth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox