Re: [PATCH] Bluetooth: qca: set power_ctrl_enabled on NULL returned by gpiod_get_optional()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/24/24 6:53 AM, Bartosz Golaszewski wrote:
On Wed, 24 Apr 2024 at 15:26, Wren Turkal <wt@xxxxxxxxxxxxxxxx> wrote:

On 4/24/24 6:12 AM, quic_zijuhu wrote:
On 4/24/2024 8:27 PM, Bartosz Golaszewski wrote:
On Wed, Apr 24, 2024 at 2:24 PM Wren Turkal <wt@xxxxxxxxxxxxxxxx> wrote:

That's OK, we have the first part right. Let's now see if we can reuse
patch 2/2 from Zijun.

I'm compiling it right now. Be back soon.


Well I doubt it's correct as it removed Krzysztof's fix which looks
right. If I were to guess I'd say we need some mix of both.

Patch 2/2 remove K's fix? I thought only 1/2 did that.

To be specific, I have applied your patch and Zijun's 2/2 only.


No, patch 1/2 from Zijun reverted my changes. Patch 2/2 removes
Krzysztof's changes and replaces them with a different if else. This
patch is a better alternative to Zijun's patch 1/2. For 2/2, I'll let
Krzysztof handle it.

do you really realize what do you talk about?
do you really listen what do @Wren says?

he says that my patch 2/2 is right based on several verification results.

she, not he

BTW, my 2/2 fix don't have anything about DTS usage.

I think the problem with your 2/2 patch is that it removes the
conditional bailing if the device is shutdown or not open.

Maybe this patch instead?

diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index 2f7ae38d85eb..fcac44ae7898 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -2456,6 +2456,10 @@ static void qca_serdev_shutdown(struct device *dev)
                      !test_bit(HCI_RUNNING, &hdev->flags))
                          return;

+               if (test_bit(HCI_QUIRK_NON_PERSISTENT_SETUP,
&hdev->quirks) ||
+                   hci_dev_test_flag(hdev, HCI_SETUP))
+                       return;
+
                  serdev_device_write_flush(serdev);
                  ret = serdev_device_write_buf(serdev, ibs_wake_cmd,
                                                sizeof(ibs_wake_cmd));

he maybe be a DTS expert but not BT from his present fix history for
bluetooth system.



Did you test it? Does it work? If so, please consider sending it
upstream for review.

You can keep Zijun's authorship but add your own SoB tag at the end
and mention what you did. Something like this:

[Wren: kept Krzysztof's fix]
Signed-off-by: Wren...

Bartosz

@Bartosz, I have tested this, and it works functionally for my setup. I cannot detect a difference between this and Zijun's logic when I compile a kernel with this patch.

@Zijun, I think you have objections to this patch. I would like to make sure I hear your concern. Can you please take through it like I'm a 5 year old who barely knows C? In retrospect, I guess that I would be a pretty precocious 5 year old. LOL.

In all seriousness, @Zijun, I really appreciate the work you did on this. I would like to understand why you assert that removing the logic of Krzysztof is appropriate. Again, I am not a kernel developer, so this stuff is really outside my wheelhouse. Having said that, by my reading, which may very well be worng, it seems like you are just adding another case that is orthogonal to K's conditions. I'd like to truly understand you position to know if the patch I am suggesting is somehow harmful. This is an earnest question. I really want to respect your expertise here, and I really want you to know how much I appreciate your work.

wt
--
You're more amazing than you think!




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux