Re: [PATCH] pinctrl-baytrail: fix for irq descriptor conflict on ASUS T100TA

From: Jin, Yao
Date: Fri Apr 25 2014 - 03:28:21 EST




On 2014/4/25 5:33, Adam Williamson wrote:
> On Thu, 2014-04-24 at 21:30 +0800, Jin, Yao wrote:
>
>>> Jin, do you have any idea what is going on?
>>>
>>
>> Maybe neither the patch (http://dougvj.net/baytrail_gpio_quirk_v3.patch)
>> nor my patch breaks the touch screen.
>>
>> I have tried the clean 3.15-rc2 with following patch which just adds
>> back the ACPIID "INT33FC", but the touch screen still doesn't work (To
>> avoid the i915 crash issue, I use with the boot option "nomodeset" in test).
>>
>> diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
>> index 69e29f4..d79c6d7 100644
>> --- a/drivers/acpi/acpi_lpss.c
>> +++ b/drivers/acpi/acpi_lpss.c
>> @@ -180,6 +180,7 @@ static const struct acpi_device_id
>> acpi_lpss_device_ids[] = {
>> { "80860F14", (unsigned long)&byt_sdio_dev_desc },
>> { "80860F41", (unsigned long)&byt_i2c_dev_desc },
>> { "INT33B2", },
>> + { "INT33FC", },
>>
>> { "INT3430", (unsigned long)&lpt_dev_desc },
>> { "INT3431", (unsigned long)&lpt_dev_desc },
>> diff --git a/drivers/pinctrl/pinctrl-baytrail.c
>> b/drivers/pinctrl/pinctrl-baytrail.c
>> index 6e8301f..447f1dc 100644
>> --- a/drivers/pinctrl/pinctrl-baytrail.c
>> +++ b/drivers/pinctrl/pinctrl-baytrail.c
>> @@ -572,6 +572,7 @@ static const struct dev_pm_ops byt_gpio_pm_ops = {
>>
>> static const struct acpi_device_id byt_gpio_acpi_match[] = {
>> { "INT33B2", 0 },
>> + { "INT33FC", 0 },
>> { }
>> };
>> MODULE_DEVICE_TABLE(acpi, byt_gpio_acpi_match);
>>
>> Since the clean 3.15-rc2 doesn't contain "INT33FC", so the baytrail gpio
>> doesn't actually go into effect.
>
> Well, I just ran another test too. I built a kernel (3.15rc2) with both
> v3 of Doug's SDIO device enumeration patch -
> http://dougvj.net/baytrail_gpio_quirk_v3.patch - and the new patch for
> the IRQ allocation issue by Thomas Gleixner,
> https://patchwork.kernel.org/patch/4051581/ . That kernel gives me a
> working touchscreen. Note that
> http://dougvj.net/baytrail_gpio_quirk_v3.patch includes both the blocks
> you mention (i.e. it adds INT33FC in both places).
>
> So, it really seems like for me at least, it's the combination of Doug's
> patch and your approach to fixing the IRQ allocation issue that breaks
> the touchscreen. Thomas' approach, even combined with Doug's patch,
> seems to work fine.
>

I'm trying the clean upstream 3.15-rc2 with the patch by Thomas Gleixner
(https://patchwork.kernel.org/patch/4051581/) and the patch as following
which only adds INT33FC, the touch screen doesn't work. I didn't add
Doug's SDIO device enumeration patch in this test.

diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
index 69e29f4..d79c6d7 100644
--- a/drivers/acpi/acpi_lpss.c
+++ b/drivers/acpi/acpi_lpss.c
@@ -180,6 +180,7 @@ static const struct acpi_device_id
acpi_lpss_device_ids[] = {
{ "80860F14", (unsigned long)&byt_sdio_dev_desc },
{ "80860F41", (unsigned long)&byt_i2c_dev_desc },
{ "INT33B2", },
+ { "INT33FC", },

{ "INT3430", (unsigned long)&lpt_dev_desc },
{ "INT3431", (unsigned long)&lpt_dev_desc },
diff --git a/drivers/pinctrl/pinctrl-baytrail.c
b/drivers/pinctrl/pinctrl-baytrail.c
index 6e8301f..447f1dc 100644
--- a/drivers/pinctrl/pinctrl-baytrail.c
+++ b/drivers/pinctrl/pinctrl-baytrail.c
@@ -572,6 +572,7 @@ static const struct dev_pm_ops byt_gpio_pm_ops = {

static const struct acpi_device_id byt_gpio_acpi_match[] = {
{ "INT33B2", 0 },
+ { "INT33FC", 0 },
{ }
};
MODULE_DEVICE_TABLE(acpi, byt_gpio_acpi_match);

It's still not clear to me why the touch screen doesn't work. As above
test, my patch is not added in.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/