Skip to content

arm64: dts: qcom: add support for Asus ZenFone 4 Max (x00id) - #59

Open
AmLeS-08 wants to merge 10 commits into
msm89x7-mainline:msm89x7/7.1.3from
AmLeS-08:asus-x00id-mainline-port
Open

arm64: dts: qcom: add support for Asus ZenFone 4 Max (x00id)#59
AmLeS-08 wants to merge 10 commits into
msm89x7-mainline:msm89x7/7.1.3from
AmLeS-08:asus-x00id-mainline-port

Conversation

@AmLeS-08

Copy link
Copy Markdown

Add device tree and panel driver support for the Asus ZenFone 4 Max
(ZC554KL, codename x00id), based on the MSM8937/PMI8950 platform.

Highlights:

  • CPU: 8x Cortex-A53 (4x 1.4GHz + 4x 1.0GHz clusters)
  • GPU: Adreno 505
  • Display: 720x1280 ILI9881C DSI panel (driver generated with
    linux-mdss-dsi-panel-driver-generator)
  • 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.

@msm89x7-mainline msm89x7-mainline deleted a comment from AmLeS-08 Aug 22, 2026
@AmLeS-08

Copy link
Copy Markdown
Author

Can this device be merged into the mainline? @barni2000

@barni2000

Copy link
Copy Markdown
Collaborator

Can this device be merged into the mainline? @barni2000

After review, maybe

@barni2000

Copy link
Copy Markdown
Collaborator

Please remove the panel driver from this PR, you should open a PR for panel driver config repo.

Comment thread arch/arm64/boot/dts/qcom/msm8937-asus-x00id.dts Outdated
Comment thread arch/arm64/boot/dts/qcom/msm8937-asus-x00id.dts Outdated
Comment thread arch/arm64/boot/dts/qcom/msm8937-asus-x00id.dts Outdated

irled {
compatible = "gpio-ir-tx";
gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please define pinctrl for every gpios

Comment thread arch/arm64/boot/dts/qcom/msm8937-asus-x00id.dts Outdated
Comment thread arch/arm64/boot/dts/qcom/msm8937-asus-x00id.dts
};

&sound {
model = "xiaomi-land";

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, definitely no you should recheck the whole sound node for your device, and you should set the model for your device.

Comment thread arch/arm64/boot/dts/qcom/msm8937-asus-x00id.dts Outdated
Comment thread arch/arm64/boot/dts/qcom/msm8937-asus-x00id.dts
Comment thread arch/arm64/boot/dts/qcom/msm8937-asus-x00id.dts
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>
@AmLeS-08
AmLeS-08 force-pushed the asus-x00id-mainline-port branch from 3bc9472 to 5936c9d Compare August 23, 2026 03:37
@AmLeS-08

Copy link
Copy Markdown
Author

Thank you for the thorough review @barni2000! I've pushed updates addressing all comments:

  • Removed the panel driver from this PR (it will be submitted separately to the panel config repo as requested)
  • chosen framebuffer: switched to memory-region + status = "disabled"
  • Removed key-camera-focus and key-camera-snapshot
  • irled: added pinctrl
  • Renamed reserved@84a00000qseecom@84a00000
  • Renamed framebuffer memory node to framebuffer_mem
  • Removed goodix_fp (no driver in this repo)
  • Changed sound model to "ZenFone 4 Max"
  • Ordered all tlmm pinctrl pins in ascending order

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>
@AmLeS-08

Copy link
Copy Markdown
Author

Update: Goodix fingerprint driver added

Regarding your comment about goodix,fp-button having no driver in the repository - I found that the driver source drivers/input/misc/goodix-fp-button.c was already present in my working tree (authored by you, @barni2000) but had not been committed. I've now:

  1. Added goodix-fp-button.c as a proper commit (with correct Kconfig + Makefile entries)
  2. Restored the goodix node in the DTS (since the driver now exists)

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.
@AmLeS-08
AmLeS-08 requested a review from barni2000 August 25, 2026 04:29
ylecuyer pushed a commit to ylecuyer/linux that referenced this pull request Aug 27, 2026
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>
ylecuyer pushed a commit to ylecuyer/linux that referenced this pull request Aug 27, 2026
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>
ylecuyer pushed a commit to ylecuyer/linux that referenced this pull request Aug 27, 2026
…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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants