Age | Commit message (Collapse) | Author |
|
into android13-msm-pixelwatch-5.15-eos-release.
Change-Id: Idf17f87d95556227fdf726c0c0b6c7a6ed21cfba
|
|
Bug: 298090082
(cherry picked from https://partner-android-review.googlesource.com/q/commit:72cf9042983141acac115c63ab181eb8b6e011cf)
Merged-In: Ic58eb5d5a95e1984c9d54fc68cc739e4eabe34c5
Change-Id: Ic58eb5d5a95e1984c9d54fc68cc739e4eabe34c5
|
|
android13-msm-pixelwatch-5.15-eos-release
Change-Id: I49f28c5c4f61ea3d38c582a8ac97dd93ccb8a5c7
|
|
Platform implements RSB slop that ignores certain ticks
at the start of a new scroll gesture. It helps address
screen remaining on with unintended RSB events.
This does have an adverse effect on event returned right
after RSB-to-wake which is smaller than the slop (due to
low sensitivity) causing it to be dropped. This CL fixes
it by returning bigger distance than slop to avoid
getting ignored.
Bug: 282538776
Bug: 289413692
Change-Id: If8a839f78aedb4a8abe6c7a462ae75344a5cfb66
|
|
* Change clone device name to match source device name
* Change clone device bustype to BUS_VIRTUAL virtual (6)
* Add rotary encoder to PETC input filter
* Apply timestamp of original source events to queued events
* Set wakeup key timestamp to timestamp of first queued events
* Replace wheel event with key up/down in false interactive
* Apply clang-format to petc_input_filter.c
Test: Manual. Verified RSB scroll, power key, and side
button in false interactive, interactive, and ambient.
Bug: b/290072121
Change-Id: I70bb6607c2dd3e12c9dd0d8454a12d4e82eee75d
|
|
panel_event_notification_trigger is scheduled from sde_kms_pm_suspend
flow. Moving pat9126 pm_ops to late/early stages, will ensure the
panel_notifier_cb invocation happens prior to pat9126 pm_ops.
Bug: 290232008
Test: repeated suspend enter + exit via RSB/touch/key press
Change-Id: I2347fc5ec8f44f6d9d7bb23ff7f688e868d67a13
Signed-off-by: Zabi Khadri <zkhadri@google.com>
|
|
This driver:
* Finds input (source) devices that have the power key set
as a capability (excluding touch devices)
* Creates clones of the matching input devices
* Filters input events on the source device and
forwards the events on the clone device
* Detects when the system is in false interactive
(MCU display state is On, while AP display state is Off)
* Injects a wakeup key event on the clone device when an
input event occurs while the system is in false interactive
* When in false interactive, queues source events until the
display is on or a timeout occurs
Test: Manual.
* Verified crown button press in ambient transitions Android to
interactive.
* Verified crown button press in false interactive and interactive
launches app list.
* Verified successful removal of device with rmmod.
Bug: b/285402950
Change-Id: I3adc8b3015866220c21fac7a58c4e830c9ecbbdb
Signed-off-by: Josh Thielen <jtln@google.com>
|
|
Implemented input_device-> open and close functions. Open enables the device while close disables wake interrupts and puts pat9126 in sleep mode. The call function is called when the very last call to close_input_device is made for the pat9126 device and therefore the watch isn't listening to the RSB input device (e.g. Rotate-crown-to-wake Off, BTM, Theater Mode)
Bug: 287028296
Test: Manual - rotate crown and observe AP doesn't wake (using Kibbles)
Change-Id: I57760cad6a9a696b232142a448ed7e410e780f05
|
|
Given the high sensitivity of the RSB, set sampling
frequency in sleep mode to 1024ms thereby delaying
the occurance of the wake IRQ.
Bug: 278747973
Change-Id: I95f21d6b941a37cb174067b659f343e77b4d64b1
Signed-off-by: Amit Bhanagay <amitbhanagay@google.com>
|
|
Add timstamp to the WHEEL event that was first
received from the RSB IC and acquired in its ISR
Bug: 274451410
Change-Id: I6b47d346330f627c57e7cd89ff8512e6fec57d6d
Signed-off-by: Amit Bhanagay <amitbhanagay@google.com>
|
|
Point to kernel/private/msm-google:OWNERS_pixelwatchbsp
Bug: 247160135
Change-Id: I42f6b83769e4699c6972ef31fc182bd1c74e672e
Signed-off-by: Andrew Evans <andrewevans@google.com>
|
|
Bug: 268415090
Signed-off-by: Amit Bhanagay <amitbhanagay@google.com>
Change-Id: Ifb33fb155c94c986b3c8bb43e5faba3833b3d859
|
|
Lock / unlock mutex on SoC suspend / resume. This method
is adopted to avoid potential race condition where the IRQ
handler schedules a delayed workload and processes it post
suspend. This delayed workload now remains blocked on the
mutex.
Bug: 263755257
Change-Id: I5ea36157df880195e46d2bf288032a57a3f719fd
Signed-off-by: Amit Bhanagay <amitbhanagay@google.com>
|
|
This reverts commit 63b1c28565a3a7fc78196fae2463e19a0bde9665.
Reason for revert: Reconfigured IRQ and added PM suspend / resume in follow-up.
Change-Id: I6e399ce9ab081d11516bda15d432151f3f431c1b
|
|
This reverts commit 1c5cb2428c043f524d5deaa9e7cb2f4521b5de87.
Reason for revert: High RSB wake events seen when device is idle.
Change-Id: I860815692a095e44cb87e698ec7de640047a1682
|
|
panel_notifier_callback updated to take a
struct panel_event_notification.
Bug: 262578089
Change-Id: Ief7d29938a1e5c996b67a63eb41dc306779ecefc
Signed-off-by: Ben Fennema <fennema@google.com>
|
|
Add support to wake AP with RSB scroll when display off.
Sensitivity is set to a very low value when display is
off and restored back to normal when on. This ensures a
deliberate long scroll to wake AP.
Bug: 196046174
Signed-off-by: Amit Bhanagay <amitbhanagay@google.com>
Change-Id: Iacd9ed909974c32b73c895d40afab215cd2c6dcd
|
|
Integrate DRM suspend/resume with crown low power/normal modes. These
replace the framebuffer hooks that no longer exist in 5.4.
Bug: 254115794
Signed-off-by: Amit Bhanagay <amitbhanagay@google.com>
Change-Id: I48355ac8d40274e88938b81ab6dd4edf03ccfd37
|
|
- Add regulator votes and loads for Crown sensor VLD (L28) and VDD (L20)
- Regulators are voted on during probe and voted off during remove
- Active/sleep load set in resume/suspend for Run/Low-frequency mode.
Test:
Verified expected load and regulator mode for L20 and L28 using:
cat /sys/class/regulator/regulator.27/requested_microamps
cat /sys/class/regulator/regulator.35/requested_microamps
cat /sys/class/regulator/regulator.27/opmode
cat /sys/class/regulator/regulator.35/opmode
With sensor in Power Down:
echo 1 > /sys/devices/platform/soc/4a80000.i2c/i2c-0/0-0075/pd
And active:
echo 0 > /sys/devices/platform/soc/4a80000.i2c/i2c-0/0-0075/pd
Bug: 239047870
Change-Id: I62c93ea5ce876a17c7e3465389b55c312c5cd03f
Signed-off-by: Josh Thielen <jtln@google.com>
|
|
The magnitude of RSB rotation is a 12-bit value which is read from the
hardware as 8 low bit and 4 high bits. Because the 8 low bits were
being stored in an int8_t, casting that value to int16_t was producing
unintended sign extension. This caused very large values to become
negative.
Also, there is no reason to cast the rotation magnitude to 's8' before
calling input_report_rel. That API accepts a 32-bit integer.
This was also causing issues with overflow.
Signed-off-by: Matthew Bouyack <mbouyack@google.com>
Bug: 234361169
Change-Id: I3ea53ffd392a11ecc6c8bb6ac8cca49d54fc0df7
|
|
A bunch of i2c errors along with pat9126_read failure spam
when it comes to device without crown chip mounted, this could
happen during manufacturing tests in partially assembled devices.
To address this odd, refine the probing to align with the interface
call.
Bug: 237238777
Test: Emulate P11 as Eos, examine probing failed, no lot of i2c spam.
Signed-off-by: Harry Pan <gspj@google.com>
Change-Id: I7afd8263cfbc3f77cc3f23de35e1841409662c34
|
|
If the device reboots when the RSB is in bank1, the RSB can get stuck in
a bad state. Also, the vendor recommends to not use those settings as
they were inherited from an older project.
Bug: 213228468
Change-Id: I17263dfbe023adedbca8a43cadf4d6c381470445
|
|
Previously we were just setting the "power down" bit.
This puts RSB into a very low power state, but is reportedly not as
efficient as disabling the part entirely.
Signed-off-by: Matthew Bouyack <mbouyack@google.com>
Bug: 192268197
Change-Id: I0a9c167d595ffa8cbe3db99a0d8c0c475ddd4c17
|
|
Previously using Linux power management to determine when to
suspend and resume the rotating side button. But since we
don't need to wake-on-scroll we can save power by only enabling
RSB when the display is active.
Signed-off-by: Matthew Bouyack <mbouyack@google.com>
Bug: 192268197
Change-Id: Id485f80bf55af06f0a8c0eea635219713e14b201
|
|
We had previously disabled PM ops to enable wake-on-scroll. Later it was
discovered that this feature (wake-on-scroll) led to a poor user
experience and so was disabled.
Re-enabling RSB PM ops should reduce idle power.
This change also cleans up the interaction between the main thread and
the worker threads to make sure we don't have any race conditions.
Signed-off-by: Matthew Bouyack <mbouyack@google.com>
Bug: 192268197
Change-Id: Ie63a50895e5b2c24e296e1b7e59e516b1f3e6447
|
|
This reverts commit 24d26144d2f876cfc32a7b942101b6ecd6ca1a01.
The interaction between wake-on-RSB rotation and pressing crown to
wake / sleep has undesirable UX implications.
That is, sometimes pressing crown to sleep will also cause RSB
rotation which will immediately wake the device again.
Alternatively, pressing the crown to wake may also cause a small
RSB rotation. If the RSB rotation is handled first the crown press
will cause the device to immediately sleep again.
Signed-off-by: Matthew Bouyack <mbouyack@google.com>
Bug: 181563147
Change-Id: I4df71e13dae14f89efda589fa8b3c2a42ee1c247
|
|
Set the RSB IRQ as a wake interrupt and keep the system
awake until the event can be passed to userspace.
Signed-off-by: Matthew Bouyack <mbouyack@google.com>
Bug: 181563147
Change-Id: Ibf9f28bedecdb9abf309b1193beb2931a6d1a11c
|
|
pat9126_suspend calls flush_scheduled_work which is suspected to
cause deadlocks. Since we want to wake on RSB events anyway
we can safely disable power management operations.
Signed-off-by: Matthew Bouyack <mbouyack@google.com>
Bug: 189872758
Change-Id: Ia82c383185ce7135808f632d7a6309c8388908bc
|
|
Waking the Pixart 9126 (rotating side-button) from suspend involves
i2c transactions which contribute significantly to wake latency.
Instead of performing the transactions immediately, this change
schedules the transactions to be performed later. This reduces
wake latency by 30-40ms.
Also, use the power-down bit to suspend rather than forcing "sleep2".
Note that power-down is reported to draw 5uA instead of 10uA.
Signed-off-by: Matthew Bouyack <mbouyack@google.com>
Bug: 178634752
Change-Id: Ia660c76d5f2ba7167315eb0214f280177e534755
|
|
Re-organized the suspend / resume methods to clarify what happens
in the initialized vs uninitialized cases. Also factored out the
code in 'write_pd' so we can use the power-down bit elsewhere in
the driver.
Signed-off-by: Matthew Bouyack <mbouyack@google.com>
Bug: 178634752
Change-Id: I079bc34792ed598df7d8043e386de2a2e94bf30f
|
|
Even though the two pinctrl states are identical, changing pinctrl
states for the pat9126 (rotating side button) on suspend/resume
puts the part into a bad state (requires a reboot). We can work
around this issue by only using one pinctrl state.
Bug: 186166014
Signed-off-by: Matthew Bouyack <mbouyack@google.com>
Change-Id: Ie0fdf41e79ca262d4a8b66234716133485d837e9
|
|
'echo 1 > pd' to power down crown
'echo 0 > pd' to restore crown
'cat pd' to check current power down status
Bug: 173175887
Change-Id: I9f57eb0412ac39a5b32fcd9d1f6c5351a23bed1d
|
|
Bug: 173175887
Change-Id: I0e08477d567b6c61fdc940ef8cc3151e9afb1765
|
|
Bug: 173175887
Change-Id: Id2d367f35a77df4f28e408aacb51a8e2cc53bbdd
|
|
Don't check for calibration before registering interrupt.
This was causing us to skip interrupt registration.
Bug: 168725669
Change-Id: I55085bd3f7e6613cd3737c6172cd7610ee8924f7
|
|
Bug: 168725669
Change-Id: I934c3793cb2f494a21ed88e3f85dd22d96aa79e2
|
|
|