Skip to content
Linux 6.12.3 with patches for Snapdragon 670

This is a collection of patches that are useful for devices with the
Qualcomm Snapdragon 670, applied on top of Linux 6.12.3.

This release cycle was very quiet with small fixes.

The ttynull driver was enabled in the configuration to fix a bug where
userspace would start with no stdio open.

A patch that made the fuel gauge driver compatible with v6.10 was dropped.

Patches from MSM8916 and MSM8953 were re-picked, to include the change from
strlcpy to strscpy and to remove duplicate q6voice entries in a Makefile.

Some flashlight and charging patches were staged.

The thermal nodes were sorted by the thermal sensor to match other platforms.

Bluetooth, camera, call audio, display, USB, I2C, eMMC, modem,
video acceleration, WiFi, haptics, NFC, sensors, and touchscreen
should work and be slightly broken like before.

linux-patches.git commits since previous release (23):
 a5356a1 patches: stage flash led patches
 0085b1c arm64: dts: qcom: sdm670: sort thermal nodes by thermal sensor
 991d37a Revert "power: supply: qcom-fg: use remove_new callback"
 c475338 sdm845.config: enable CS35L36 speaker amp codec
 86a75a6 patches: re-pick patches from sdm845-6.11
 7a19824 patches: stage charging support patch
 a10328c patches: explain need for specific compatible in iommu driver patch
 827498a patches: move flashlight and charging support closer in queue
 c63f8d1 patches: add reviewed-by from Rob for the flashlight dt-bindings patch
 6a7a7c5 patches: add reviewed-by from Dmitry for smmu v2 driver patch
 6284518 patches: add acked-by from Rob for smmu v2 dt-bindings patch
 98f0864 arm64: configs: sdm670.config: enable null tty
 bee3d97 ASoC: qdsp6: Add driver for Q6 Multimode Voice Manager (q6mvm) (v6.12.1-msm8916)
 3e5cfd2 ASoC: qdsp6: Add driver for Q6 Core Voice Processor (q6cvp) (v6.12.1-msm8916)
 5eb36a4 ASoC: qdsp6: Add driver for Q6 Core Voice Stream (q6cvs) (v6.12.1-msm8916)
 5847ed2 patches: re-pick msm8916 patches from v6.12.1-msm8916
 b37c144 patches: add reviewed-by from Konrad for flash leds patch in sargo dts
 df50d2b patches: re-pick voicemmode1 patch from msm8953 v6.12.0-r0
 10ae3ef patches: rebase on v6.12.2
 66588e0 patches: rebase on v6.12.3
 1a7610a media: i2c: imx363: move asm/unaligned.h to linux/unaligned.h
 cb09087 arm64: configs: sdm670.config: re-enable module compression
 fed176a arm64: configs: sdm670.config: re-enable zstd for zram

linux-next (2):
 7f58b336f3e0 dt-bindings: i2c: qcom-cci: Document SDM670 compatible
 7271bbc86008 i2c: qcom-cci: Stop complaining about DT set clock rate

sdm670-staging (18):
 [PATCH v2 0/2] iommu/arm-smmu-qcom: Add SDM670 SMMU v2
  dt-bindings: iommu: arm,smmu: add sdm670 adreno iommu compatible
  iommu/arm-smmu-qcom: add sdm670 adreno iommu compatible
 [PATCH v2 0/4] drm/msm/adreno: Add A615 GPU for SDM670 and Pixel 3a
  dt-bindings: display/msm/gmu: Add SDM670 compatible
  arm64: dts: qcom: sdm670: add gpu
  arm64: dts: qcom: sdm670-google-sargo: enable gpu
 [PATCH 0/3] arm64: dts: qcom: Pixel 3a Flash LEDs
  dt-bindings: leds: qcom,spmi-flash-led: add pm660l compatible
  arm64: dts: qcom: pm660l: add flash leds
  arm64: dts: qcom: sdm670-google-sargo: add flash leds
 [PATCH v6 0/5] Add SDM670 camera subsystem
  dt-bindings: clock: qcom,sdm845-camcc: add sdm670 compatible
  dt-bindings: media: camss: Add qcom,sdm670-camss
  media: qcom: camss: add support for SDM670 camss
  arm64: dts: qcom: sdm670: add camcc
  arm64: dts: qcom: sdm670: add camss and cci
 Not sent yet (5):
  arm64: dts: qcom: sdm670-google-sargo: enable charger
  dt-bindings: media: i2c: Add Sony IMX355
  media: i2c: imx355: Support device tree probing and resource management
  media: i2c: imx355: Add power management for managed resources
  arm64: dts: qcom: sdm670-google-sargo: add imx355 front camera

msm8916-mainline (8):
 a7f55b13fcdd ASoC: qdsp6: Add shared session management for q6voice services
 eb82ba2c4229 ASoC: qdsp6: Add driver for Q6 Multimode Voice Manager (q6mvm)
 d04fd7b3a873 ASoC: qdsp6: Add driver for Q6 Core Voice Processor (q6cvp)
 ba9cd1dac6c7 ASoC: qdsp6: Add driver for Q6 Core Voice Stream (q6cvs)
 e49b67185e83 ASoC: qdsp6: Add voice call functionality in Q6 Voice driver
 fe7841409608 ASoC: qdsp6: Add Q6 Voice DAI driver (v2.1)
 6599fc6fa4ac ASoC: qdsp6: q6voice: Add getter/setter for rx and tx ports
 0f3005393555 ASoC: qdsp6: q6voice-dai: Add controls for voice rx and tx ports

msm8953-mainline (1):
 e20f01b4df65 ASoC: qdsp6: q6voice-dai: Add VoiceMMode1 DAI

msm8996-mainline (1):
 c444d999d4e7 dt-bindings: power: supply: Add DT schema for qcom,fg

sdm845-mainline (14):
 452a442d7ff5 arm64: configs: add sdm845 config fragment
 fbcc76b92b6d power: supply: Add driver for Qualcomm PMIC fuel gauge
 1f3ce62bdb95 sdm845.config: enable some more qcom drivers
 0914742a7036 Add back TEXT_OFFSET in the built image...
 472a92600f23 sdm845.config: p3 panel
 3e87b306feff sdm845.config: add missing ASCII encoding option
 389bb187aff2 sdm845.config: enable vbus regulator
 e9c8d3e5ea3d sdm845.config: enable fw compression + kconfig fix
 01e6be168d58 configs: smd845: group libcamera requirements and add missing ones
 945f6c39f41f configs: sdm845: BT_BNEP and BT_RFCOMM must be module
 8c59c71f057f media: i2c: Add imx363 image sensor driver
 deb66c5c71a8 sdm845.config: enable imx363 camera driver
 0e883317014d sdm845.config: enable pixel downstream touchscreen driver
 9bd98192e0a2 sdm845.config: enable CS35L36 speaker amp codec

sdm670-downstream (81):
 arm64: configs: add sdm670 config fragment
 arm64: dts: qcom: sdm670-google-sargo: mask the dtbo
 arm64: dts: qcom: sdm670-google-sargo: add touchscreen and display labels
 arm64: dts: qcom: sdm670-google: add common device tree include
 arm64: dts: qcom: pm660: add fuel gauge
 arm64: dts: qcom: sdm670-google: enable fuel gauge
 Input: add ti drv2624 haptics driver
 arm64: dts: qcom: sdm670-google: add haptics node
 arm64: dts: qcom: sdm670: add video codec
 arm64: dts: qcom: sdm670-google: enable venus video codec
 arm64: dts: qcom: drop-in bluetooth support
 arm64: dts: qcom: sdm670-google: add nfc support
 dt-bindings: soc: qcom: add modemsmem
 soc: qcom: add modemsmem
 arm64: dts: qcom: sdm670-google: add modemsmem
 dt-bindings: mailbox: qcom: Add SDM670 APCS compatible
 dt-bindings: soc: qcom: aoss: Add compatible for SDM670
 remoteproc: qcom_q6v5_mss: Add modem support for SDM670
 arm64: dts: qcom: sdm670: add modem
 dt-bindings: net: qcom,ipa: Add SDM670 compatible
 net: ipa: add sdm670 compatible
 arm64: dts: qcom: sdm670: add ipa
 arm64: dts: qcom: sdm670: add wifi
 dt-bindings: soc: qcom,smp2p: add sleepstate support
 arm64: dts: qcom: sdm670: add and enable adsp
 remoteproc: qcom: pas: Add SDM670 ADSP support
 wifi: ath10k: make in-order rx amsdu buffers persistent
 pinctrl: qcom: add sdm670 lpi tlmm
 ASoC: dt-bindings: qcom: q6dsp: add internal mi2s support
 ASoC: qdsp6: q6dsp-lpass-ports: add internal mi2s support
 ASoC: qdsp6: q6afe: add internal mi2s support
 ASoC: qdsp6: q6afe-dai: add internal mi2s support
 ASoC: qdsp6: q6routing: add internal mi2s support
 ASoC: qcom: add sdm660 internal sound card support
 ASoC: msm8916-wcd-analog: add quirk for cajon 2.0
 arm64: dts: qcom: sdm670: add lpi pinctrl
 arm64: dts: qcom: sdm670-google: add sound card
 arm64: dts: qcom: sdm670-google: add cs35l36 codecs
 arm64: dts: qcom: pm660l: add analog audio codec
 arm64: dts: qcom: sdm670: add digital audio codec
 arm64: dts: qcom: sdm670-google: configure analog and digital codecs
 drm/panel: add sofef00 panel for bonito
 drm/panel: samsung-sofef00-bonito: move dsi commands to disable function
 drm/panel: samsung-sofef00-bonito: move dsi commands to enable function
 dt-bindings: arm: qcom: document google,bonito-sdc board
 arm64: dts: qcom: sdm670-google: add bonito sdc
 dt-bindings: power: supply: qcom,fg: correct compatibles in allOf
 dt-bindings: power: supply: qcom,fg: allow interrupt properties
 dt-bindings: power: supply: qcom,fg: Document power-supplies property
 ASoC: qdsp6: q6voice-dai: add internal mi2s
 ASoC: qdsp6: q6voice-dai: add tdm
 ASoC: qdsp6: q6cvp: add commands in cvd 2.3
 ASoC: qdsp6: q6voice: add cvd 2.3 initialization sequence
 arm64: dts: qcom: sdm670: add q6voice apr services
 arm64: dts: qcom: sdm670-google: add voicemmode1 dai
 dt-bindings: thermal: tsens: add SDM670 compatible
 dt-bindings: mfd: qcom,spmi-pmic: Allow PMIC4 thermal monitor on pm660
 arm64: dts: qcom: sdm670: add thermal zones
 arm64: dts: qcom: pm660: add thermal monitor
 arm64: dts: qcom: sdm670-google: add thermal zones
 ASoC: qdsp6: q6afe: pass tdm ctrl_sync_data_delay from config
 ASoC: qdsp6: q6afe-dai: configure tdm data delay from device tree
 ASoC: codecs: rt5514: allow codec to be enabled manually
 arm64: dts: qcom: sdm670: add support for geni spi
 arm64: dts: qcom: sdm670-google: add rt5514 microphone codec
 arm64: dts: qcom: sdm670-google: Add front camera rotation/orientation
 dt-bindings: cache: qcom,llcc: Add SDM670 compatible
 soc: qcom: llcc: Add configuration data for SDM670
 arm64: dts: qcom: sdm670: add llcc
 drm/panel: Add Novatek/Tianma NT37700F panel
 arm64: dts: qcom: add support for pixel 3a xl with the tianma panel
 arm64: dts: sdm670-google-common: add IMX363 rear camera
 pmdomain: core: Defer probe again when power domain is not found
 media: i2c: imx355: Port imx258/imx363 stream startup fixes
 media: i2c: imx363: Remove 1920_1080 mode
 arm64: dts: sdm670-google-common: set chassis-type property
 ASoC: qdsp6: q6core: add support for registering topologies
 arm64: dts: qcom: sdm670-google: specify acdb path
 ASoC: qdsp6: q6cvp: add topology ID parameters to session functions
 ASoC: qdsp6: q6voice: pass new topology property to q6cvp
 ASoC: qdsp6: q6voice-dai: add ALSA controls for the topology ID

sdm670-fixup (4):
 Merge branch 'linux-rolling-stable' of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux into on-stable
 media: i2c: imx363: move asm/unaligned.h to linux/unaligned.h
 arm64: configs: sdm670.config: re-enable module compression
 arm64: configs: sdm670.config: re-enable zstd for zram

 Documentation/devicetree/bindings/arm/qcom.yaml    |    1 +
 .../devicetree/bindings/cache/qcom,llcc.yaml       |    2 +
 .../bindings/clock/qcom,sdm845-camcc.yaml          |    6 +-
 .../devicetree/bindings/display/msm/gmu.yaml       |    1 +
 .../devicetree/bindings/i2c/qcom,i2c-cci.yaml      |   19 +
 .../devicetree/bindings/iommu/arm,smmu.yaml        |    1 +
 .../bindings/leds/qcom,spmi-flash-led.yaml         |    1 +
 .../bindings/mailbox/qcom,apcs-kpss-global.yaml    |    1 +
 .../devicetree/bindings/media/i2c/sony,imx355.yaml |  117 ++
 .../bindings/media/qcom,sdm670-camss.yaml          |  318 ++++
 .../devicetree/bindings/mfd/qcom,spmi-pmic.yaml    |    1 +
 .../devicetree/bindings/net/qcom,ipa.yaml          |    1 +
 .../devicetree/bindings/power/supply/qcom,fg.yaml  |  115 ++
 .../bindings/soc/qcom/google,modemsmem.yaml        |   40 +
 .../bindings/soc/qcom/qcom,aoss-qmp.yaml           |    1 +
 .../devicetree/bindings/soc/qcom/qcom,smp2p.yaml   |    2 +-
 .../bindings/sound/qcom,q6dsp-lpass-ports.yaml     |    5 +-
 .../devicetree/bindings/thermal/qcom-tsens.yaml    |    1 +
 arch/arm64/boot/dts/qcom/Makefile                  |    2 +
 arch/arm64/boot/dts/qcom/pm660.dtsi                |   18 +
 arch/arm64/boot/dts/qcom/pm660l.dtsi               |   48 +
 .../boot/dts/qcom/sdm670-google-bonito-sdc.dts     |   42 +
 .../boot/dts/qcom/sdm670-google-bonito-tianma.dts  |   42 +
 .../dts/qcom/sdm670-google-common-dtbo-mask.dtsi   |  483 +++++
 arch/arm64/boot/dts/qcom/sdm670-google-common.dtsi | 1489 +++++++++++++++
 arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts   |  590 +-----
 arch/arm64/boot/dts/qcom/sdm670.dtsi               | 1953 ++++++++++++++++++++
 arch/arm64/configs/sdm670.config                   |  273 +++
 arch/arm64/configs/sdm845.config                   | 1011 ++++++++++
 arch/arm64/kernel/head.S                           |    2 +-
 arch/arm64/kernel/image.h                          |    1 +
 drivers/gpu/drm/panel/Kconfig                      |   18 +
 drivers/gpu/drm/panel/Makefile                     |    2 +
 drivers/gpu/drm/panel/panel-novatek-nt37700f.c     |  319 ++++
 .../gpu/drm/panel/panel-samsung-sofef00-bonito.c   |  297 +++
 drivers/i2c/busses/i2c-qcom-cci.c                  |    8 -
 drivers/input/misc/Kconfig                         |   12 +
 drivers/input/misc/Makefile                        |    1 +
 drivers/input/misc/drv2624.c                       |  950 ++++++++++
 drivers/input/misc/drv2624.h                       |  290 +++
 drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c         |    1 +
 drivers/media/i2c/Kconfig                          |   10 +
 drivers/media/i2c/Makefile                         |    1 +
 drivers/media/i2c/imx355.c                         |  119 ++
 drivers/media/i2c/imx363.c                         | 1475 +++++++++++++++
 drivers/media/platform/qcom/camss/camss.c          |  191 ++
 drivers/net/ipa/ipa_main.c                         |    4 +
 drivers/net/wireless/ath/ath10k/htt.h              |    4 +
 drivers/net/wireless/ath/ath10k/htt_rx.c           |   45 +-
 drivers/pinctrl/qcom/Kconfig                       |   10 +
 drivers/pinctrl/qcom/Makefile                      |    1 +
 drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c    |  172 ++
 drivers/pmdomain/core.c                            |    2 +-
 drivers/power/supply/Kconfig                       |    8 +
 drivers/power/supply/Makefile                      |    1 +
 drivers/power/supply/qcom_fg.c                     | 1318 +++++++++++++
 drivers/remoteproc/qcom_q6v5_mss.c                 |    1 +
 drivers/remoteproc/qcom_q6v5_pas.c                 |    1 +
 drivers/soc/qcom/Kconfig                           |   11 +
 drivers/soc/qcom/Makefile                          |    1 +
 drivers/soc/qcom/llcc-qcom.c                       |   28 +
 drivers/soc/qcom/modemsmem.c                       |  107 ++
 include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h |   14 +
 include/dt-bindings/sound/qcom,q6voice.h           |    8 +
 sound/soc/codecs/Kconfig                           |    9 +-
 sound/soc/codecs/msm8916-wcd-analog.c              |   63 +-
 sound/soc/qcom/Kconfig                             |   20 +
 sound/soc/qcom/Makefile                            |    2 +
 sound/soc/qcom/qdsp6/Makefile                      |    3 +
 sound/soc/qcom/qdsp6/q6afe-dai.c                   |   46 +
 sound/soc/qcom/qdsp6/q6afe.c                       |   57 +
 sound/soc/qcom/qdsp6/q6afe.h                       |    3 +-
 sound/soc/qcom/qdsp6/q6core.c                      |  148 +-
 sound/soc/qcom/qdsp6/q6cvp.c                       |  350 ++++
 sound/soc/qcom/qdsp6/q6cvp.h                       |   20 +
 sound/soc/qcom/qdsp6/q6cvs.c                       |   36 +
 sound/soc/qcom/qdsp6/q6cvs.h                       |    9 +
 sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c           |  200 ++
 sound/soc/qcom/qdsp6/q6mvm.c                       |  174 ++
 sound/soc/qcom/qdsp6/q6mvm.h                       |   15 +
 sound/soc/qcom/qdsp6/q6routing.c                   |   78 +-
 sound/soc/qcom/qdsp6/q6voice-common.c              |  272 +++
 sound/soc/qcom/qdsp6/q6voice-common.h              |   44 +
 sound/soc/qcom/qdsp6/q6voice-dai.c                 | 1320 +++++++++++++
 sound/soc/qcom/qdsp6/q6voice.c                     |  333 ++++
 sound/soc/qcom/qdsp6/q6voice.h                     |   33 +
 sound/soc/qcom/sdm660-internal.c                   |  399 ++++
 87 files changed, 15050 insertions(+), 601 deletions(-)