Qualcomm Snapdragon 450/625/626/632 (MSM8953)
Manufacturer | Qualcomm |
---|---|
Name | MSM8953 |
Codenames | msmtitanium/apqtitanium |
Architecture | aarch64 |
CPU |
8x 1.8/2.0/2.2 GHz ARM Cortex-A53 (SDM450/625/626) 4x 1.8 GHz Kryo250 Gold + 4x 1.8 GHz Kryo250 Silver (SDM632) |
GPU | Adreno 506 |
Year | 2016 |
Process | 14nm |
Mainline | partial |
Community Page | https://github.com/msm8953-mainline |
Components | |
CPU |
Works |
UART |
Works |
Storage |
Works |
USB |
Works |
Display |
Works |
GPU |
Works |
Pinctrl |
Works |
I²C |
Works |
SPI |
Works |
Audio |
Works |
Video |
Works |
Thermal |
Works |
WiFi |
Works |
Bluetooth |
Works |
Modem |
Partial |
GPS |
Partial |
Camera |
Partial |
NPU | |
Suspend |
Partial |
Ethernet | |
SDM450/SDM625/SDM626/SDM632/APQ8053 are Qualcomm SoCs released from 2016. According to Wikipedia, SDM450/625/626/632 are all pin and software compatible. Qualcomm Snapdragon 425/427/430/435 (MSM8917/MSM8920/MSM8937/MSM8940) are software compatible with them.
Devices
Snapdragon 450
Device | Codename | Mainline | Category |
---|---|---|---|
Motorola Moto G6 | motorola-ali | Y | testing |
Samsung Galaxy A6+ (2018) | samsung-a6plte | Y | testing |
Samsung Galaxy J8 (2018) | samsung-j8y18lte | N | testing |
Xiaomi Redmi 5 | xiaomi-rosy | Y | testing |
ZTE Blade V9 | zte-p450f10 | testing |
Snapdragon 625
Device | Codename | Mainline | Category |
---|---|---|---|
Asus Zenfone 3 | asus-zenfone3 | Y | testing |
Huawei Maimang 5 | huawei-milan | Y | testing |
Lenovo P2 | lenovo-kuntao | Y | testing |
Motorola Moto G5 Plus | motorola-potter | Y | testing |
Motorola Moto Z Play | motorola-addison | testing | |
Qualcomm Snapdragon 625 | qcom-msm8953 | Y | community |
Xiaomi Mi A1 | xiaomi-tissot | Y | community |
Xiaomi Mi A2 Lite | xiaomi-daisy | Y | community |
Xiaomi Redmi 4 Prime | xiaomi-markw | Y | community |
Xiaomi Redmi 5 Plus | xiaomi-vince | Y | community |
Xiaomi Redmi Note 4 / 4X | xiaomi-mido | Y | community |
Xiaomi Redmi S2 / Redmi Y2 | xiaomi-ysl | Y | community |
Snapdragon 626
Device | Codename | Mainline | Category |
---|---|---|---|
BQ Aquaris X / Aquaris X Pro | bq-bardock / bq-bardockpro | Y | testing |
Snapdragon 632
Device | Codename | Mainline | Category |
---|---|---|---|
Fairphone 3 | fairphone-fp3 | Y | testing |
Motorola Moto G7 | motorola-river | testing | |
Motorola Moto G7 Play / Moto G7 Optimo | motorola-channel | testing | |
Motorola Moto G7 Power | motorola-ocean | Y | testing |
Xiaomi Redmi 7 | xiaomi-onclite | Y | testing |
APQ8053
Device | Codename | Mainline | Category |
---|---|---|---|
Lenovo TAB4 10 Plus | lenovo-tb-x704f | N | testing |
Lenovo ThinkSmart View | lenovo-cd-18781y | Y |
Camera
Camera is able to perform RAW capture. It can be used with megapixels or libcamera based applications like kamoso or gnome-snapshot.
GPU
GPU preemption (only supported on some 5xx GPUs) is disabled because of deadlock problem in msm drm driver.
Audio
Audio works. MSM8953 uses an updated codec from as MSM8916 (cajon-v2). Each device needs its own alsa ucm conf file, you can find examples from MSM8916 here: https://github.com/msm8916-mainline/alsa-ucm-conf or MSM8953 https://github.com/msm8953-mainline/alsa-ucm-conf
Video Encoder / Decoder (Venus)
Venus works. It exposes 2 v4l2 devices, one for encode and one for decode. They can be used via gstreamer, or mpv. For mpv, you need to add hwdec=auto
to your ~/.config/mpv/mpv.conf
. Sample files can be obtained from http://samplemedia.linaro.org/ SDM450 based devices are limited by the firmware to 1080p encode/decode, while SDM625/632 based devices are able to do 4Kp30 decode, and 1080p encode. Supported formats are: VP8, VP9, MPEG2, H.264 and H.265.
Alternatively, gstreamer can be used to test v4l2:
$ # test h264
$ gst-launch-1.0 -e filesrc location="/path/to/video.mp4" ! qtdemux name=d d.video_0 ! h264parse ! v4l2h264dec capture-io-mode=dmabuf ! kmssink d.audio_0 ! queue ! aacparse ! faad ! autoaudiosink
$ # test h265
$ gst-launch-1.0 filesrc location=big_buck_bunny.mp4 ! qtdemux ! queue ! h265parse ! v4l2h265dec ! imxvideoconvert_g2d ! queue ! autovideosink
Modem
Note: Mobile data not works on every device. |
Modem works since 6.7.2. To configure the mobile network settings, use NetworkManger (mobile network menu on phosh settings) so it sets up the network interface and IP routing.
After that, two new network interfaces should appear. The rmnet one is the connection to the modem, and the other one is virtual and the one that is used to transmit mobile data.
Phone calls require q6voiced
, with the following in /etc/conf.d/q6voiced
q6voice_card=0
q6voice_device=4
For dual sim devices, these instructions may be needed : https://wiki.postmarketos.org/wiki/User:TravMurav/Dual-Sim_QMI_draft#Now_you_can_try_to_select_an_application_on_your_SIM .
Motorola devices need IPA support for the modem to work. They also need a patched tqftpserv
: https://github.com/sirSireesh/tqftpserv . Modem related firmware files need to be copied into /tmp
as done by this script. Other device quirks will be listed here as they are discovered.
GPS
GPS can be used through ModemManager a working SIM card will be needed for it.
It can be used with pure-maps, gnome-maps and with satellite.
Sometimes it does not report values then you will need qmicli -d qrtr://0 --loc-set-engine-lock=none
See also GPS
Mainlining
MSM8953 is almost as great platform to get started with mainlining as MSM8916! The MSM8916 Mainlining guide is quite relevant to it.