arm64: dts: qcom: add support for Asus ZenFone 4 Max (x00id) - #59
arm64: dts: qcom: add support for Asus ZenFone 4 Max (x00id)#59AmLeS-08 wants to merge 10 commits into
Conversation
|
Can this device be merged into the mainline? @barni2000 |
After review, maybe |
|
Please remove the panel driver from this PR, you should open a PR for panel driver config repo. |
|
|
||
| irled { | ||
| compatible = "gpio-ir-tx"; | ||
| gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>; |
There was a problem hiding this comment.
please define pinctrl for every gpios
| }; | ||
|
|
||
| &sound { | ||
| model = "xiaomi-land"; |
There was a problem hiding this comment.
No, definitely no you should recheck the whole sound node for your device, and you should set the model for your device.
Add device tree for the Asus ZenFone 4 Max (ZC554KL, codename x00id), based on the MSM8937/PMI8950 platform. - CPU: 8x Cortex-A53 (4x 1.4GHz + 4x 1.0GHz clusters) - GPU: Adreno 505 - Display: 720x1280 ILI9881C DSI panel (driver follows in a separate PR) - Wi-Fi/Bluetooth: WCN3620 (wcn3660) - Audio: WCD9335 codec + WSA8815 smart amp - Camera: Samsung S5K3L8 (rear), OV5670 (front) - Touchscreen: EDT FT5406 - USB: OTG Tested on device: boots, WiFi connects, display works. Signed-off-by: Alex Chen <chenshuli2010@gmail.com>
3bc9472 to
5936c9d
Compare
|
Thank you for the thorough review @barni2000! I've pushed updates addressing all comments:
Please take another look when you have time. Thanks! |
Add a small driver that exposes the touch status of a Goodix fingerprint sensor (connected via reset and interrupt GPIOs) as a plain input device. This allows the fingerprint pad on the Asus ZenFone 4 Max (x00id) to be used as a hardware key (home button). Signed-off-by: Alex Chen <chenshuli2010@gmail.com>
Update: Goodix fingerprint driver addedRegarding your comment about
This allows the fingerprint pad to be used as a home button. The commit is separate from the DTS commit for easier review. Please let me know if this is the right approach or if you'd prefer it submitted differently. |
The MODULE_LICENSE("GPL-2.0") string causes modpost to reject the
module as GPL-incompatible. Change to "GPL" to fix the build error.
Tested: module compiles cleanly, loads on device, creates input device.
…_LEFTMETA Phosh/GNOME does not recognize KEY_HOMEPAGE (0xac) as a home action. Change the key code to KEY_LEFTMETA (Super, 0x7d) so the fingerprint sensor triggers the Phosh overview/home screen when touched.
The PM8916 analog codec is identical to xiaomi-land and postmarketOS ships a UCM profile keyed by that machine name. Using 'ZenFone 4 Max' as the sound model left PulseAudio with no matching UCM (Dummy Output).
The fingerprint sensor INT line emits a ~100Hz signal until the sensor is initialized. The debounce prevents the driver from reporting floods of KEY_LEFTMETA events while probing the touch behaviour.
The fingerprint sensor on the X00ID requires proprietary SPI firmware initialization before its INT line responds to touch. Without that the line emits a ~100 Hz heartbeat and touching the pad has no electrical effect, so a GPIO-based button driver cannot work (verified by direct measurement). The driver (including WIP debounce and KEY_LEFTMETA binding) is preserved under the 'goodix-fp-button/final' tag. The DTS goodix-fp node and its pinctrl states are removed.
Remove the accidental boot.img from the tree (kept in archive under archive/boot-images/) and ignore root-level boot images / build scripts so the fork stays source-only and clean.
This will allow us to use common functions soon. Note this generates the following warnings from scripts/checkpatch.pl --quiet: WARNING: quoted string split across lines msm89x7-mainline#59: FILE: fs/smb/client/cifs_debug.c:481: + seq_printf(m, "\nDebug count_get_receive_buffer: %llu " + "count_put_receive_buffer: %llu count_send_empty: %llu", WARNING: quoted string split across lines msm8916-mainline#66: FILE: fs/smb/client/cifs_debug.c:486: seq_printf(m, "\nRead Queue " + "count_enqueue_reassembly_queue: %llu " WARNING: quoted string split across lines msm8916-mainline#67: FILE: fs/smb/client/cifs_debug.c:487: + "count_enqueue_reassembly_queue: %llu " + "count_dequeue_reassembly_queue: %llu " total: 0 errors, 3 warnings, 83 lines checked scripts/checkpatch.pl: FAILED But I left them in there, because it matches the code arround it... Cc: Steve French <smfrench@gmail.com> Cc: Tom Talpey <tom@talpey.com> Cc: Long Li <longli@microsoft.com> Cc: linux-cifs@vger.kernel.org Cc: samba-technical@lists.samba.org Acked-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Stefan Metzmacher <metze@samba.org> Signed-off-by: Steve French <stfrench@microsoft.com>
The xfstests' test-case generic/062 fails to execute correctly: FSTYP -- hfsplus PLATFORM -- Linux/x86_64 hfsplus-testing-0001 6.15.0-rc4+ msm89x7-mainline#8 SMP PREEMPT_DYNAMIC Thu May 1 16:43:22 PDT 2025 MKFS_OPTIONS -- /dev/loop51 MOUNT_OPTIONS -- /dev/loop51 /mnt/scratch generic/062 - output mismatch (see xfstests-dev/results//generic/062.out.bad) The generic/062 test tries to set and get xattrs for various types of objects (regular file, folder, block device, character device, pipe, etc) with the goal to check that xattr operations works correctly for all possible types of file system objects. But current HFS+ implementation somehow hasn't support of xattr operatioons for the case of block device, character device, and pipe objects. Also, it has not completely correct set of operations for the case symlinks. This patch implements proper declaration of xattrs operations hfsplus_special_inode_operations and hfsplus_symlink_inode_operations. Also, it slightly corrects the logic of hfsplus_listxattr() method. sudo ./check generic/062 FSTYP -- hfsplus PLATFORM -- Linux/x86_64 hfsplus-testing-0001 6.19.0-rc1+ msm89x7-mainline#59 SMP PREEMPT_DYNAMIC Mon Jan 19 16:26:21 PST 2026 MKFS_OPTIONS -- /dev/loop51 MOUNT_OPTIONS -- /dev/loop51 /mnt/scratch generic/062 20s ... 20s Ran: generic/062 Passed all 1 tests [1] hfs-linux-kernel#93 Signed-off-by: Viacheslav Dubeyko <slava@dubeyko.com> cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> cc: Yangtao Li <frank.li@vivo.com> cc: linux-fsdevel@vger.kernel.org Link: https://lore.kernel.org/r/20260120041937.3450928-1-slava@dubeyko.com Signed-off-by: Viacheslav Dubeyko <slava@dubeyko.com>
…abled When the Remote System Update (RSU) isn't enabled in the First Stage Boot Loader (FSBL), the driver encounters a NULL pointer dereference when excute svc_normal_to_secure_thread() thread, resulting in a kernel panic: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008 Mem abort info: ... Data abort info: ... [0000000000000008] user address but active_mm is swapper Internal error: Oops: 0000000096000004 [msm89x7-mainline#1] SMP Modules linked in: CPU: 0 UID: 0 PID: 79 Comm: svc_smc_hvc_thr Not tainted 6.19.0-rc8-yocto-standard+ msm89x7-mainline#59 PREEMPT Hardware name: SoCFPGA Stratix 10 SoCDK (DT) pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : svc_normal_to_secure_thread+0x38c/0x990 lr : svc_normal_to_secure_thread+0x144/0x990 ... Call trace: svc_normal_to_secure_thread+0x38c/0x990 (P) kthread+0x150/0x210 ret_from_fork+0x10/0x20 Code: 97cfc11 f9400260 aa1403e1 f9400400 (f9400402) ---[ end trace 0000000000000000 ]--- The issue occurs because rsu_send_async_msg() fails when RSU is not enabled in firmware, causing the channel to be freed via stratix10_svc_free_channel(). However, the probe function continues execution and registers svc_normal_to_secure_thread(), which subsequently attempts to access the already-freed channel, triggering the NULL pointer dereference. Fix this by properly cleaning up the async client and returning early on failure, preventing the thread from being used with an invalid channel. Fixes: 1584753 ("firmware: stratix10-rsu: Migrate RSU driver to use stratix10 asynchronous framework.") Cc: stable@kernel.org Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
Match the distinctive compatible suggested in review so the generated panel driver binds to the DTS and to distinguish from other x00id panel variants (e.g. hx8394f).
Add device tree and panel driver support for the Asus ZenFone 4 Max
(ZC554KL, codename x00id), based on the MSM8937/PMI8950 platform.
Highlights:
linux-mdss-dsi-panel-driver-generator)
Tested on device: boots, WiFi connects, display works.