Re: [PATCH] Bluetooth: hci_bcm: Add the Asus TF103C to the bcm_broken_irq_dmi_table

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

 



Hi Marcel,

On 1/19/22 20:39, Marcel Holtmann wrote:
> Hi Hans,
> 
>>>> The DSDT for the Asus TF103C specifies a IOAPIC IRQ for the HCI -> host IRQ
>>>> but this is not correct. Unlike the previous entries in the table, this
>>>> time the correct GPIO to use instead is known; and the TF103C is battery
>>>> powered making runtime-pm support more important.
>>>>
>>>> Extend the bcm_broken_irq_dmi_table mechanism to allow specifying the right
>>>> GPIO instead of just always disabling runtime-pm and add an entry to it for
>>>> the Asus TF103C.
>>>>
>>>> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
>>>> ---
>>>> drivers/bluetooth/hci_bcm.c | 44 ++++++++++++++++++++++++++++++-------
>>>> 1 file changed, 36 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
>>>> index ef54afa29357..c6ac4aa994af 100644
>>>> --- a/drivers/bluetooth/hci_bcm.c
>>>> +++ b/drivers/bluetooth/hci_bcm.c
>>>> @@ -20,6 +20,7 @@
>>>> #include <linux/regulator/consumer.h>
>>>> #include <linux/clk.h>
>>>> #include <linux/gpio/consumer.h>
>>>> +#include <linux/gpio/machine.h>
>>>> #include <linux/tty.h>
>>>> #include <linux/interrupt.h>
>>>> #include <linux/dmi.h>
>>>> @@ -870,7 +871,23 @@ static int bcm_resume(struct device *dev)
>>>> #endif
>>>>
>>>> /* Some firmware reports an IRQ which does not work (wrong pin in fw table?) */
>>>> +static struct gpiod_lookup_table asus_tf103c_irq_gpios = {
>>>> +	.dev_id = "serial0-0",
>>>
>>> do you need this one? I assume it could be easily enumerated as serial1-0 if you are unlucky.
>>
>> Yes there can be multiple global gpiod_lookup_table-s registered
>> and the gpiolib code finds the one to use be matching this field
>> to the dev_name() for the device passed to gpiod_get().
>>
>> I'm not worried about this getting enumerated with another dev_name(),
>> this is a tablet with no ways to add extra serial-bus devices and
>> there is only the 1 serial-bus device.
> 
> is there no other way to match this device?

I'm not sure what you mean ny "matching this device" ?  Since the ACPI
tables on this tablet contain the wrong GPIO, we need a gpio-lookup
table override and the gpio cores checks for a lookup table to use with
a specific struct device * based on dev_name() and only based on that,
there are no other matching options in the gpio-lookup mechanism.

Regards,

Hans




[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