Re: PROBLEM: ASUS GU501GM Elantech touchpad not detected

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

 



> I would expect 4.18 given that 4.17 is more or less a done deal, but
> once the patch is out I expect it to also be cherry-picked as a bug-fix
> to the stable releases of older kernels.

Sounds great!  Thanks, Hans!  And thank you, to all of you!

On Mon, May 21, 2018 at 11:12 AM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
> Hi,
>
>
> On 21-05-18 19:02, wereturtle wrote:
>>
>> Hi Hans,
>>
>>> Have you tried turning off the computer and removing the battery,
>>> then wait 5 minutes and put the battery back again?
>>
>>
>> OK, I had to run to the store to get the right size Torx screwdriver,
>> but I removed the battery and waited 15 minutes before putting it back
>> in.  Unfortunately, that didn't help.
>>
>>> Likely having the touchpad properly working results in either the
>>> touchpad
>>> or the i2c controller firing an interrupt at boot because of state left
>>> over from the previous boot with working touchpad. Since you now lack
>>> a working driver, nothing acks the interrupt and it keeps firing.
>>
>>
>> Interesting!  Thanks for teaching me!
>>
>>> The proper solution here would be to build 4.15 with the fix, or
>>> see if there are some patches to the nvidia driver to make it build
>>> with 4.17, which avoids the need for another kernel build.
>>
>>
>> Alas, I've had too much difficulty with the latter solutions.  4.17
>> vanilla (no patch) seems to ack it already.  4.15 would need something
>> else to ack it in the first place, and I'm not sure where to patch
>> that.  I couldn't find any Nvidia patches for 4.17.
>>
>> Fortunately, Best Buy let me return the laptop without any fuss.  They
>> were even offering to exchange it.  I declined, but I might try again
>> and live without the touchpad for a time since the laptop just went on
>> sale this morning.
>>
>> As such, when, roughly, do you think the official patch will land?
>> Kernel 4.17 or 4.18?  (Supposedly Ubuntu 18.10 will have 4.18, if the
>> stars align.)
>
>
> I would expect 4.18 given that 4.17 is more or less a done deal, but
> once the patch is out I expect it to also be cherry-picked as a bug-fix
> to the stable releases of older kernels.
>
> Jarkko, I did not see an official patch for this yet, I'm not on the
> list though, so I don't know if was not posted at all, or if you did
> not Cc me?  (not Cc-ing me is fine I'm only sideways involved).
>
> Regards,
>
> Hans
>
>
>
>
>
>>
>> Thanks!
>>
>> On Sun, May 20, 2018 at 3:13 AM, Hans de Goede <hdegoede@xxxxxxxxxx>
>> wrote:
>>>
>>> Hi,
>>>
>>>
>>> On 20-05-18 04:34, wereturtle wrote:
>>>>
>>>>
>>>> Some bad news to follow up the good news.
>>>>
>>>> Installing the patched Kernel for my touchpad had a negative side
>>>> effect.  While running the patched Kernel, I didn't have any issues.
>>>> However, I couldn't get the Nvidia driver to install with this Kernel.
>>>> As such, I tried rebooting into my old 4.15 Kernel.  Even after
>>>> removing the patched Kernel and reinstalling the Nvidia driver several
>>>> times for 4.15, my computer became sluggish during browsing, typing,
>>>> etc.  Games were locking up or else having a huge framerate drop.  My
>>>> CPU cores were spinning like crazy without even any processes taking
>>>> up CPU.
>>>>
>>>> Further investigation revealed a an "unexpected IRQ trap at vector 9a"
>>>> error message at startup and shutdown in the console.  The message
>>>> fires constantly.  Under /proc/interrupts, it was listing intel-gpio
>>>> (i2c) for 9a.  It was firing off like crazy.  I think that's for my
>>>> touchpad?
>>>>
>>>> I tried reinstalling Kubuntu altogether, twice, and it wouldn't stop.
>>>> It's like that patch permanently wrote something to my hardware?  I
>>>> tried installing 4.17 RC5 with Ukuu without the touchpad patch built
>>>> in.  The intel-gpio interrupts went away, and the computer is snappy
>>>> and responsive again.  However, rebooting back into 4.15 resulted in
>>>> the interrupts returning.
>>>>
>>>> How did this patch end up doing something permanently to my computer,
>>>> and what can I do to undo it for Kernel 4.15 so that I can use my
>>>> Nvidia drivers again?
>>>
>>>
>>>
>>> Have you tried turning off the computer and removing the battery,
>>> then wait 5 minutes and put the battery back again?
>>>
>>> Likely having the touchpad properly working results in either the
>>> touchpad
>>> or the i2c controller firing an interrupt at boot because of state left
>>> over from the previous boot with working touchpad. Since you now lack
>>> a working driver, nothing acks the interrupt and it keeps firing.
>>>
>>> The proper solution here would be to build 4.15 with the fix, or
>>> see if there are some patches to the nvidia driver to make it build
>>> with 4.17, which avoids the need for another kernel build.
>>>
>>> Regards,
>>>
>>> Hans
>>>
>>>
>>>
>>>
>>>>
>>>> Also, I don't notice this same sluggishness with Windows 10.  Windows
>>>> is snappy regardless of the Kernel.
>>>>
>>>> On Sat, May 19, 2018 at 12:42 PM, wereturtle <wereturtledev@xxxxxxxxx>
>>>> wrote:
>>>>>
>>>>>
>>>>> Hi everyone!
>>>>>
>>>>> I set the clk_rate to be 216000000 in my own patched Kernel 4.17. RC
>>>>> 5, and my touchpad now works!
>>>>>
>>>>> Thank you so much!
>>>>>
>>>>> On Fri, May 18, 2018 at 12:39 AM, Hans de Goede <hdegoede@xxxxxxxxxx>
>>>>> wrote:
>>>>>>
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>>
>>>>>> On 18-05-18 09:32, Hans de Goede wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> On 17-05-18 20:14, Dmitry Torokhov wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, May 17, 2018 at 2:36 AM, Benjamin Tissoires
>>>>>>>> <benjamin.tissoires@xxxxxxxxx> wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>        Scope (_SB.PCI0.I2C1)
>>>>>>>>>        {
>>>>>>>>>            Device (ETPD)
>>>>>>>>>            {
>>>>>>>>>                Name (SBFB, ResourceTemplate ()
>>>>>>>>>                {
>>>>>>>>>                    I2cSerialBusV2 (0x004C, ControllerInitiated,
>>>>>>>>> 0x00061A80,
>>>>>>>>>                        AddressingMode7Bit, "\\_SB.PCI0.I2C1",
>>>>>>>>>                        0x00, ResourceConsumer, _Y34, Exclusive,
>>>>>>>>>                        )
>>>>>>>>>                })
>>>>>>>>>                Name (SBFI, ResourceTemplate ()
>>>>>>>>>                {
>>>>>>>>>                    Interrupt (ResourceConsumer, Level, ActiveHigh,
>>>>>>>>> Exclusive, ,, )
>>>>>>>>>                    {
>>>>>>>>>                        0x0000005F,
>>>>>>>>>                    }
>>>>>>>>>                })
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> So nothing scary, the interrupt is a plain interrupt, not a GPIO. I
>>>>>>>>> guess the issue lies in i2c-designware and the AMD
>>>>>>>>> implementation...
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Also, in dmesg we have:
>>>>>>>>
>>>>>>>> [   25.020612] cannonlake-pinctrl INT3450:00: pin 26 cannot be used
>>>>>>>> as
>>>>>>>> IRQ
>>>>>>>> [   25.020615] genirq: Setting trigger mode 3 for irq 137 failed
>>>>>>>> (intel_gpio_irq_type+0x0/0x140)
>>>>>>>> [   25.023113] intel-lpss 0000:00:15.1: enabling device (0000 ->
>>>>>>>> 0002)
>>>>>>>> [   25.023336] idma64 idma64.1: Found Intel integrated DMA 64-bit
>>>>>>>> [   25.025326] i2c_hid i2c-ELAN1201:00: i2c-ELAN1201:00 supply vdd
>>>>>>>> not
>>>>>>>> found, using dummy regulator
>>>>>>>> [   25.025494] i2c_designware i2c_designware.1:
>>>>>>>> i2c_dw_handle_tx_abort: lost arbitration
>>>>>>>> [   25.025652] i2c_designware i2c_designware.1:
>>>>>>>> i2c_dw_handle_tx_abort: lost arbitration
>>>>>>>> [   25.025811] i2c_designware i2c_designware.1:
>>>>>>>> i2c_dw_handle_tx_abort: lost arbitration
>>>>>>>> [   25.025970] i2c_designware i2c_designware.1:
>>>>>>>> i2c_dw_handle_tx_abort: lost arbitration
>>>>>>>> [   25.025972] i2c_hid i2c-ELAN1201:00: hid_descr_cmd failed
>>>>>>>>
>>>>>>>> 0x5F is kind of high for a plain interrupt; I wonder if ACPI table
>>>>>>>> relies on static gpio->virq mapping that could be different on
>>>>>>>> Linux... Also I am surprised the IRQ is active-HIGH, normally it is
>>>>>>>> active low. Might want to try and hack the driver to force it to low
>>>>>>>> and see what happens...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Yes the interrupt is definitely suspect. Actually using plain
>>>>>>> interrupts
>>>>>>> rather then a GpioInt is something which I would only expect to see
>>>>>>> in
>>>>>>> old DSDTs and not in recent ones, because for i2c devices there is
>>>>>>> no clear parent interrupt controller and as such no well defined way
>>>>>>> to
>>>>>>> properly interpret a raw Interrupt number.
>>>>>>>
>>>>>>> What is with the AMD reference btw, the above dmesg snippet looks
>>>>>>> to be about an Intel system? I would not expect cannonlake-pinctrl
>>>>>>> to be used on an AMD system...
>>>>>>>
>>>>>>> If this indeed is an Intel system one thing worth trying is
>>>>>>> changing the clk_freq we use in the i2c-designware driver to
>>>>>>> calculate clk high and low counts. There are some reports from
>>>>>>> people attaching scopes to the i2c wires that on kabylake at
>>>>>>> least the driver is driving the bus about 1.5 times the
>>>>>>> expected rate (so 600KHz instead of 400KHz).
>>>>>>>
>>>>>>> A workaround for now would be to edit:
>>>>>>>
>>>>>>> drivers/mfd/intel-lpss-pci.c
>>>>>>>
>>>>>>> And change clk_rate in:
>>>>>>>
>>>>>>> static const struct intel_lpss_platform_info spt_i2c_info = {
>>>>>>>            .clk_rate = 120000000,
>>>>>>>            .properties = spt_i2c_properties,
>>>>>>> };
>>>>>>>
>>>>>>>    From 120000000 to 180000000, people are still working on getting
>>>>>>> to the bottom of this but it is worth a shot. The clk_rate
>>>>>>> value here is only used to calculate i2c timings and does
>>>>>>> not actually program a clock, it only specifies the frequency
>>>>>>> the clock is expected to be running at. So changing this should
>>>>>>> be safe.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Ok, so I just read the new mails in the threads where this is being
>>>>>> discussed and it has been confirmed by Intel that for all Canon Lake
>>>>>> devices the correct clk_rate is 216000000 .  Which likely explains
>>>>>> the i2c errors here. Jarkko (added to the Cc) is working on a patch
>>>>>> for this.
>>>>>>
>>>>>> For now if you can build your own kernels you can make the change I
>>>>>> suggested above, but that will also change the clock-rate on other
>>>>>> machines, so that is just for testing on Canon Lake hardware!
>>>>>>
>>>>>> The way the Interrupt is specified is still suspicious btw, but
>>>>>> we'll cross that bridge when we get there.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux