Skip to content
Linux 6.11.2 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.11.2.

Thanks to Joel and Pan, support for the Pixel 3a rear camera was added. The
IMX363 driver was originally made by Joel for the Pocophone F1 (SDM845) and
added by Pan along with the nodes in the device tree.

Thanks to Robert Mader, resetting was added to the IMX355 startup sequence.

Thanks to Arnaud Ferarris, the chassis type property was added to the Pixel 3a
device tree. This makes the information about the form factor available to
userspace.

Support for q6voice audio calibration was added. This consists of a q6core
patch to register topologies from the global ACDB and a q6voice patch to add an
ALSA control. The known use case for this is calling newer phones over VoLTE.

The VoiceMMode1 support was re-added from msm8953-mainline. The new patch from
Affe Null has no merge conflicts with the up-to-date q6voice patches in
msm8916-mainline. This resulted in an authorship change.

The Tianma panel for the Pixel 3a XL was added along with its corresponding
device tree, due to confirmation that this panel is in production devices.

The camera subsystem patches were sent upstream and their review comments were
applied.

The sdm845-mainline patches were re-picked from the new sdm845-6.11_rc2 release.
Some GPU patches were re-picked from linux-next because they were applied.

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

linux-next (4):
 25f18cb1b673 media: qcom: camss: Remove use_count guard in stop_streaming
 c80bbd7fcdb2 drm/msm/adreno: add a615 support
 7f58b336f3e0 dt-bindings: i2c: qcom-cci: Document SDM670 compatible
 7271bbc86008 i2c: qcom-cci: Stop complaining about DT set clock rate

sdm670-staging (14):
 [PATCH 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 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 (4):
  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):
 0657b041b01d ASoC: qdsp6: Add shared session management for q6voice services
 ce271548066b ASoC: qdsp6: Add driver for Q6 Multimode Voice Manager (q6mvm)
 54cd4da67fda ASoC: qdsp6: Add driver for Q6 Core Voice Processor (q6cvp)
 a48b89fc4700 ASoC: qdsp6: Add driver for Q6 Core Voice Stream (q6cvs)
 cf125cf6d114 ASoC: qdsp6: Add voice call functionality in Q6 Voice driver
 6e92cab0d653 ASoC: qdsp6: Add Q6 Voice DAI driver (v2.1)
 fcccc6de448f ASoC: qdsp6: q6voice: Add getter/setter for rx and tx ports
 b14a3a0a40de ASoC: qdsp6: q6voice-dai: Add controls for voice rx and tx ports

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

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

sdm845-mainline (14):
 4dd200ff441b arm64: configs: add sdm845 config fragment
 74f705c9798c power: supply: Add driver for Qualcomm PMIC fuel gauge
 73ac38f91793 q6voice: use strscpy()
 6fef8a13c70d sdm845.config: enable some more qcom drivers
 eca0f4c53401 Add back TEXT_OFFSET in the built image...
 a0683761d669 sdm845.config: p3 panel
 16df76f34dae sdm845.config: add missing ASCII encoding option
 e9948567a61f sdm845.config: enable vbus regulator
 b69db2f58595 sdm845.config: enable fw compression + kconfig fix
 3593062acd11 configs: smd845: group libcamera requirements and add missing ones
 b193c2044526 configs: sdm845: BT_BNEP and BT_RFCOMM must be module
 d38f36430bd6 media: i2c: Add imx363 image sensor driver
 4a3f00c99e4d sdm845.config: enable imx363 camera driver
 0b84a696fca8 sdm845.config: enable pixel downstream touchscreen driver

sdm670-downstream (86):
 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 charging support
 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
 dt-bindings: leds: qcom,spmi-flash-led: add pm660l compatible
 arm64: dts: qcom: pm660l: add flash leds
 arm64: dts: qcom: sdm670-google: add flash leds
 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
 media: i2c: imx355: Parse and register properties
 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
 power: supply: qcom-fg: use remove_new callback
 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 (3):
 soc: qcom: modemsmem: convert remove callback to return void
 ASoC: qcom: sdm660-internal: convert remove callback to return void
 Merge remote-tracking branch 'stable/linux-rolling-stable' into on-stable

 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                   |  264 +++
 arch/arm64/configs/sdm845.config                   | 1010 ++++++++++
 arch/arm64/kernel/head.S                           |    2 +-
 arch/arm64/kernel/image.h                          |    1 +
 drivers/gpu/drm/msm/adreno/a6xx_catalog.c          |   27 +
 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                         |  131 +-
 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                      |    6 +
 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 ++++
 88 files changed, 15081 insertions(+), 602 deletions(-)