summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-09-06Merge cherrypicks of ['partner-android-review.googlesource.com/2609338'] ↵android-wear-13.0.0_r0.8android-wear-13.0.0_r0.6android-wear-13.0.0_r0.4android-wear-13.0.0_r0.14android-wear-13.0.0_r0.12android-wear-13.0.0_r0.10android-msm-eos-android13-wear-kr3-pixel-watchandroid-msm-eos-5.15-tm-wear-kr3-pixel-watchAndroid Build Coastguard Worker
into android13-msm-pixelwatch-5.15-eos-release. Change-Id: Idf17f87d95556227fdf726c0c0b6c7a6ed21cfba
2023-09-06petc_input_filter: Limit PETC input filter to non-PnP devicesJosh Thielen
Bug: 298090082 (cherry picked from https://partner-android-review.googlesource.com/q/commit:72cf9042983141acac115c63ab181eb8b6e011cf) Merged-In: Ic58eb5d5a95e1984c9d54fc68cc739e4eabe34c5 Change-Id: Ic58eb5d5a95e1984c9d54fc68cc739e4eabe34c5
2023-08-11Snap for 10648389 from 231943956f92c731269622d66ea9020116a9ad5e to ↵Android Build Coastguard Worker
android13-msm-pixelwatch-5.15-eos-release Change-Id: I49f28c5c4f61ea3d38c582a8ac97dd93ccb8a5c7
2023-07-27pat9126: Change distance returned after RSB-to-wakeAmit Bhanagay
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
2023-07-21PETC: Fix RSB scroll in false interactiveJosh Thielen
* 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
2023-07-13pat9126: ensure ordering of pm_suspend and panel_notifier_callbackZabi Khadri
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>
2023-07-10Add PETC input filter driverJosh Thielen
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>
2023-06-20Fix unintentional wake on RSB in suitable modesAlex Careja
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
2023-05-09pat9126: Lower sampling frequency in sleep modeandroid-wear-13.0.0_r0.3android-msm-eos-5.15-tm-wear-kr3-dr-eosAmit Bhanagay
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>
2023-05-09pat9126: Add timestamp to WHEEL eventAmit Bhanagay
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>
2023-04-07Set up OWNERSAndrew Evans
Point to kernel/private/msm-google:OWNERS_pixelwatchbsp Bug: 247160135 Change-Id: I42f6b83769e4699c6972ef31fc182bd1c74e672e Signed-off-by: Andrew Evans <andrewevans@google.com>
2023-02-16Merge branch 'partner/android-msm-eos-5.4' into android13-msm-pixelwatch-5.15Amit Bhanagay
Bug: 268415090 Signed-off-by: Amit Bhanagay <amitbhanagay@google.com> Change-Id: Ifb33fb155c94c986b3c8bb43e5faba3833b3d859
2023-01-19pat9126: add PM suspend / resume supportAmit Bhanagay
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>
2023-01-19Revert^2 "Add RSB-to-wake functionality"Amit Bhanagay
This reverts commit 63b1c28565a3a7fc78196fae2463e19a0bde9665. Reason for revert: Reconfigured IRQ and added PM suspend / resume in follow-up. Change-Id: I6e399ce9ab081d11516bda15d432151f3f431c1b
2023-01-10Revert "Add RSB-to-wake functionality"Amit Bhanagay
This reverts commit 1c5cb2428c043f524d5deaa9e7cb2f4521b5de87. Reason for revert: High RSB wake events seen when device is idle. Change-Id: I860815692a095e44cb87e698ec7de640047a1682
2022-12-14Update to qcom drm framework for 5.15Ben Fennema
panel_notifier_callback updated to take a struct panel_event_notification. Bug: 262578089 Change-Id: Ief7d29938a1e5c996b67a63eb41dc306779ecefc Signed-off-by: Ben Fennema <fennema@google.com>
2022-12-09Add RSB-to-wake functionalityAmit Bhanagay
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
2022-11-13pat9126: Use DRM suspend/resume notifiersAmit Bhanagay
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
2022-10-20Crown - SW Vote for LDO20 and L28Josh Thielen
- 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>
2022-07-19Fix unintended sign extension in RSB driverMatthew Bouyack
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
2022-07-01Fix the probing when the crown chip is disconnectedHarry Pan
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
2022-03-09Remove RSB Bank1 switching logicAlice Sheng
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
2022-03-09Fully disable RSB on suspendMatthew Bouyack
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
2022-03-09Suspend/resume RSB based on display modeMatthew Bouyack
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
2022-03-09Re-enable rotating side button power managementMatthew Bouyack
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
2022-03-09Revert "Wake on RSB rotation"Matthew Bouyack
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
2022-03-09Wake on RSB rotationMatthew Bouyack
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
2022-03-09Disable PM ops on RSBMatthew Bouyack
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
2022-03-09Delay RSB resume to reduce wake latencyMatthew Bouyack
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
2022-03-09Minor pat9126 driver refactorMatthew Bouyack
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
2022-03-09Avoid changing pinctrl states for pat9126 on suspend/resumeMatthew Bouyack
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
2022-03-09Add diag to power down r11 crownMatthew Bouyack
'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
2022-03-09Add sysfs diags for RSB sleep modesMatthew Bouyack
Bug: 173175887 Change-Id: I0e08477d567b6c61fdc940ef8cc3151e9afb1765
2022-03-09Add crown ID to sysfsMatthew Bouyack
Bug: 173175887 Change-Id: Id2d367f35a77df4f28e408aacb51a8e2cc53bbdd
2022-03-09Remove always-false calibration checkMatthew Bouyack
Don't check for calibration before registering interrupt. This was causing us to skip interrupt registration. Bug: 168725669 Change-Id: I55085bd3f7e6613cd3737c6172cd7610ee8924f7
2022-03-09Pixart 9126 driver integrationMatthew Bouyack
Bug: 168725669 Change-Id: I934c3793cb2f494a21ed88e3f85dd22d96aa79e2
2022-03-03Initial empty repositoryInna Palant