<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pm24.git/drivers/hid/i2c-hid, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>https://git.kobert.dev/pm24.git/atom/drivers/hid/i2c-hid?h=master</id>
<link rel='self' href='https://git.kobert.dev/pm24.git/atom/drivers/hid/i2c-hid?h=master'/>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/'/>
<updated>2024-11-28T10:18:14Z</updated>
<entry>
<title>HID: i2c-hid: Revert to using power commands to wake on resume</title>
<updated>2024-11-28T10:18:14Z</updated>
<author>
<name>Kenny Levinsen</name>
<email>kl@kl.wtf</email>
</author>
<published>2024-11-19T23:53:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=34851431ceca1bf457d85895bd38a4e7967e2055'/>
<id>urn:sha1:34851431ceca1bf457d85895bd38a4e7967e2055</id>
<content type='text'>
commit 7d6f065de37c ("HID: i2c-hid: Use address probe to wake on resume")
replaced the retry of power commands with the dummy read "bus probe" we
use on boot which accounts for a necessary delay before retry.

This made at least one Weida device (2575:0910 in an ASUS Vivobook S14)
very unhappy, as the bus probe despite being successful somehow lead to
the following power command failing so hard that the device never lets
go of the bus. This means that even retries of the power command would
fail on a timeout as the bus remains busy.

Remove the bus probe on resume and instead reintroduce retry of the
power command for wake-up purposes while respecting the newly
established wake-up retry timings.

Fixes: 7d6f065de37c ("HID: i2c-hid: Use address probe to wake on resume")
Cc: stable@vger.kernel.org
Reported-by: Michael &lt;auslands-kv@gmx.de&gt;
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219440
Link: https://lore.kernel.org/r/d5acb485-7377-4139-826d-4df04d21b5ed@leemhuis.info/
Signed-off-by: Kenny Levinsen &lt;kl@kl.wtf&gt;
Link: https://patch.msgid.link/20241119235615.23902-1-kl@kl.wtf
Signed-off-by: Benjamin Tissoires &lt;bentiss@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-6.13/i2c-hid' into for-linus</title>
<updated>2024-11-18T20:56:39Z</updated>
<author>
<name>Jiri Kosina</name>
<email>jkosina@suse.com</email>
</author>
<published>2024-11-18T20:56:39Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=d273b820f71146aa30aa48f77ba1996b0ff2c7c5'/>
<id>urn:sha1:d273b820f71146aa30aa48f77ba1996b0ff2c7c5</id>
<content type='text'>
- code cleanup (Uwe Kleine-König)
</content>
</entry>
<entry>
<title>Merge branch 'for-6.13/wacom' into for-linus</title>
<updated>2024-11-18T20:29:33Z</updated>
<author>
<name>Jiri Kosina</name>
<email>jkosina@suse.com</email>
</author>
<published>2024-11-18T20:29:33Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=f33e46a0c6bddd341d0989484a2546bba7ac4a3c'/>
<id>urn:sha1:f33e46a0c6bddd341d0989484a2546bba7ac4a3c</id>
<content type='text'>
- Sanitization of BTN_TOOL_RUBBER handling (Jason Gerecke)
</content>
</entry>
<entry>
<title>HID: i2c-hid: Delayed i2c resume wakeup for 0x0d42 Goodix touchpad</title>
<updated>2024-10-18T10:32:06Z</updated>
<author>
<name>Bartłomiej Maryńczak</name>
<email>marynczakbartlomiej@gmail.com</email>
</author>
<published>2024-10-07T22:25:42Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=293c485cbac2607595fdaae2b1fb390fc7b2d014'/>
<id>urn:sha1:293c485cbac2607595fdaae2b1fb390fc7b2d014</id>
<content type='text'>
Patch for Goodix 27c6:0d42 touchpads found in Inspiron 5515 laptops.

After resume from suspend, one can communicate with this device just fine.
We can read data from it or request a reset,
but for some reason the interrupt line will not go up
when new events are available.
(it can correctly respond to a reset with an interrupt tho)

The only way I found to wake this device up
is to send anything to it after ~1.5s mark,
for example a simple read request, or power mode change.

In this patch, I simply delay the resume steps with msleep,
this will cause the set_power request to happen after
the ~1.5s barrier causing the device to resume its event interrupts.

Sleep was used rather than delayed_work
to make this workaround as non-invasive as possible.

[jkosina@suse.com: shortlog update]
Signed-off-by: Bartłomiej Maryńczak &lt;marynczakbartlomiej@gmail.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.com&gt;
</content>
</entry>
<entry>
<title>HID: i2c-hid-of: Drop explicit initialization of struct i2c_device_id::driver_data to 0</title>
<updated>2024-10-08T06:51:10Z</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@baylibre.com</email>
</author>
<published>2024-09-20T15:34:28Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=4005667d3a09d832236c8d0ba598e510b6a20560'/>
<id>urn:sha1:4005667d3a09d832236c8d0ba598e510b6a20560</id>
<content type='text'>
These drivers don't use the driver_data member of struct i2c_device_id,
so don't explicitly initialize this member.

This prepares putting driver_data in an anonymous union which requires
either no initialization or named designators. But it's also a nice
cleanup on its own.

While touching the initializer, also remove the comma after the sentinel
entry.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@baylibre.com&gt;
Reviewed-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.com&gt;
</content>
</entry>
<entry>
<title>move asm/unaligned.h to linux/unaligned.h</title>
<updated>2024-10-02T21:23:23Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2024-10-01T19:35:57Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=5f60d5f6bbc12e782fac78110b0ee62698f3b576'/>
<id>urn:sha1:5f60d5f6bbc12e782fac78110b0ee62698f3b576</id>
<content type='text'>
asm/unaligned.h is always an include of asm-generic/unaligned.h;
might as well move that thing to linux/unaligned.h and include
that - there's nothing arch-specific in that header.

auto-generated by the following:

for i in `git grep -l -w asm/unaligned.h`; do
	sed -i -e "s/asm\/unaligned.h/linux\/unaligned.h/" $i
done
for i in `git grep -l -w asm-generic/unaligned.h`; do
	sed -i -e "s/asm-generic\/unaligned.h/linux\/unaligned.h/" $i
done
git mv include/asm-generic/unaligned.h include/linux/unaligned.h
git mv tools/include/asm-generic/unaligned.h tools/include/linux/unaligned.h
sed -i -e "/unaligned.h/d" include/asm-generic/Kbuild
sed -i -e "s/__ASM_GENERIC/__LINUX/" include/linux/unaligned.h tools/include/linux/unaligned.h
</content>
</entry>
<entry>
<title>Merge branch 'for-6.12/elan' into for-linus</title>
<updated>2024-09-13T13:27:27Z</updated>
<author>
<name>Benjamin Tissoires</name>
<email>bentiss@kernel.org</email>
</author>
<published>2024-09-13T13:27:27Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=c9ce59650e5d57b986fdd4a599a46e28ccabb4d6'/>
<id>urn:sha1:c9ce59650e5d57b986fdd4a599a46e28ccabb4d6</id>
<content type='text'>
- Add support for one new Elan device (ekth6a12nay) (Zhaoxiong Lv)
</content>
</entry>
<entry>
<title>HID: i2c-hid: ensure various commands do not interfere with each other</title>
<updated>2024-09-12T12:11:36Z</updated>
<author>
<name>Dmitry Torokhov</name>
<email>dmitry.torokhov@gmail.com</email>
</author>
<published>2024-09-09T20:37:40Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=b4ed18a3d56eabd18cfd9841ff05111e3cfbe8f9'/>
<id>urn:sha1:b4ed18a3d56eabd18cfd9841ff05111e3cfbe8f9</id>
<content type='text'>
i2c-hid uses 2 shared buffers: command and "raw" input buffer for
sending requests to peripherals and read data from peripherals when
executing variety of commands. Such commands include reading of HID
registers, requesting particular power mode, getting and setting
reports and so on. Because all such requests use the same 2 buffers
they should not execute simultaneously.

Fix this by introducing "cmd_lock" mutex and acquire it whenever
we needs to access ihid-&gt;cmdbuf or idid-&gt;rawbuf.

Signed-off-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Reviewed-by: Hans de Goede &lt;hdegoede@redhat.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.com&gt;
</content>
</entry>
<entry>
<title>HID: i2c-hid: elan: Add elan-ekth6a12nay timing</title>
<updated>2024-09-03T11:21:21Z</updated>
<author>
<name>Zhaoxiong Lv</name>
<email>lvzhaoxiong@huaqin.corp-partner.google.com</email>
</author>
<published>2024-07-22T07:31:36Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=d06651bebf99e51259ecfe9e63c42179abc1288c'/>
<id>urn:sha1:d06651bebf99e51259ecfe9e63c42179abc1288c</id>
<content type='text'>
Elan-ekth6a12nay requires reset to pull down time greater than 10ms,
so the configuration post_power_delay_ms is 10, and the chipset
initial time is required to be greater than 300ms,
so the post_gpio_reset_on_delay_ms is set to 300.

Reviewed-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Zhaoxiong Lv &lt;lvzhaoxiong@huaqin.corp-partner.google.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.com&gt;
</content>
</entry>
<entry>
<title>HID: i2c-hid: elan: fix reset suspend current leakage</title>
<updated>2024-06-07T09:18:11Z</updated>
<author>
<name>Johan Hovold</name>
<email>johan+linaro@kernel.org</email>
</author>
<published>2024-05-07T14:48:18Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=0eafc58f2194dbd01d4be40f99a697681171995b'/>
<id>urn:sha1:0eafc58f2194dbd01d4be40f99a697681171995b</id>
<content type='text'>
The Elan eKTH5015M touch controller found on the Lenovo ThinkPad X13s
shares the VCC33 supply with other peripherals that may remain powered
during suspend (e.g. when enabled as wakeup sources).

The reset line is also wired so that it can be left deasserted when the
supply is off.

This is important as it avoids holding the controller in reset for
extended periods of time when it remains powered, which can lead to
increased power consumption, and also avoids leaking current through the
X13s reset circuitry during suspend (and after driver unbind).

Use the new 'no-reset-on-power-off' devicetree property to determine
when reset needs to be asserted on power down.

Notably this also avoids wasting power on machine variants without a
touchscreen for which the driver would otherwise exit probe with reset
asserted.

Fixes: bd3cba00dcc6 ("HID: i2c-hid: elan: Add support for Elan eKTH6915 i2c-hid touchscreens")
Cc: &lt;stable@vger.kernel.org&gt;	# 6.0
Cc: Douglas Anderson &lt;dianders@chromium.org&gt;
Tested-by: Steev Klimaszewski &lt;steev@kali.org&gt;
Signed-off-by: Johan Hovold &lt;johan+linaro@kernel.org&gt;
Reviewed-by: Douglas Anderson &lt;dianders@chromium.org&gt;
Link: https://lore.kernel.org/r/20240507144821.12275-5-johan+linaro@kernel.org
Signed-off-by: Benjamin Tissoires &lt;bentiss@kernel.org&gt;
</content>
</entry>
</feed>
