Linux 6.13.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.13.3. Thermal mitigation for charging has been added and the 5 Watt limit was lifted. The Pixel 3a will now typically charge at 6.5 Watts due to the lack of support for some USB-C protocols. Power management for cameras with libcamera was fixed. A VIDIOC_STREAMOFF ioctl will now allow the pipeline to turn off, without closing the /dev/videoX file. Power management for the Pixel 3a rear camera was also fixed, and the analog GPIO will now turn off when the camera is not in use. The IMX355 driver was made more reliable with a 12 ms delay when starting. There is still another 12 ms delay when starting the camera, after a reset command. Clock controllers have all been configured as built-in to allow dependent devices to be probed correctly. Consequently, panel drivers are also configured as built-in. Support for the SDM670 camera subsystem has been mostly upstreamed, except for some device tree patches. This is not to be confused with the Pixel 3a camera sensors, the IMX355 and IMX363, which are still not upstream. The device tree definition for the Pixel 3a flashlight has been upstreamed. The thermal sensors have been changed to use PDC interrupts. The scaling factor for a PMIC thermal sensor was corrected. Bluetooth, 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 (66): b438587 dt-bindings: media: camss: sdm670: Use correct unit address 34d694d arm64: dts: qcom: sdm670: set correct unit address for camss 3aea8c4 pinctrl: qcom: sdm670-lpass-lpi: convert to remove callback returning void abc7547 media: qcom: camss: move sdm670 regulators from csid to csiphy fc1cf89 dt-bindings: media: camss: sdm670: match property order with example 363d4fe dt-bindings: media: camss: sdm670: reorder clocks 7f82986 media: qcom: camss: prefix sdm670 csid clocks with vfe 4589f5e arm64: dts: qcom: sdm670: sort clocks and rename csid clocks 0f8f9ea dt-bindings: media: camss: sdm670: move interrupts after clocks f70b656 arm64: dts: qcom: sdm670: move camss interrupts after clocks property 21069db dt-bindings: media: camss: sdm670: rename example node to generic name 73aa45e Revert "media: qcom: camss: prefix sdm670 csid clocks with vfe" 0cf00dc dt-bindings: media: camss: sdm670: rename csid clocks back to csiX d9cfcd8 arm64: dts: qcom: sdm670: rename camss csid clocks back to csiX 3230200 arm64: configs: sdm670.config: configure clocks and drm as built-in ef8e402 patches: re-pick flash led dt-bindings patch from linux-next 966f961 patches: move camss dt-bindings amendments to dt-bindings patch 95b233f arm64: dts: qcom: sdm670: rename camss node to isp 3645ce9 dt-bindings: media: camss: sdm670: rename camss node to isp f0e6645 patches: remove review patches for camss driver patch b58a945 Revert "arm64: dts: qcom: sdm670: move camss interrupts after clocks property" c9047a1 Revert "dt-bindings: media: camss: sdm670: move interrupts after clocks" d451dc1 arm64: dts: qcom: sdm670: add labelled endpoint nodes 124402e arm64: dts: qcom: sdm670-google: use labelled endpoint node f57f025 arm64: dts: qcom: sdm670-google: use labelled endpoint node for rear cam 5d3e336 patches: add reviewed-by from Krzysztof for camss dt-bindings patch dbf4b2d arm64: configs: add sdm845 config fragment (sdm845-6.13-rc2-r2) 44c3285 sdm845.config: ZRAM zstd and modules compression 508b5e2 patches: re-pick patches from sdm845-6.13-rc2-r2 c851fc4 Revert "media: i2c: imx363: move asm/unaligned.h to linux/unaligned.h" a62312e arm64: dts: qcom: sdm670: rename camss endpoint node labels 4adc351 arm64: dts: qcom: sdm670-google: enable front camera endpoint node 784c125 arm64: dts: qcom: sdm670-google: enable rear camera endpoint node e166a81 patches: add reviewed-by from Vladimir for camss dtsi patch d926e31 arm64: configs: sdm670.config: compile panels as built-in c56bc4e ASoC: qdsp6: q6cvp: accept configurable number of channels 072cbfc ASoC: qdsp6: q6voice: configure number of channels 0c6f483 media: qcom: camss: fix indentation for SDM670 clocks c555a12 arm64: configs: sdm670.config: remove configs repeating sdm845 3d3b59b patches: add reviewed-by from Konrad for camcc dts patch 8a8e753 Revert "ASoC: qdsp6: q6voice: configure number of channels" b16da21 Revert "ASoC: qdsp6: q6cvp: accept configurable number of channels" 448720d arm64: dts: qcom: sdm670-google: correct xo temp scaling factor 7de09cf patches: re-pick December 2024 commits from linux-next 50133e3 power: supply: qcom_pmi8998_charger: add charger enable and disable 42c0bd0 arm64: configs: sdm670.config: remove unused drivers as of next-20250108 d05a3f5 patches: re-pick camcc bindings patch from linux-next 604f681 power: supply: qcom_pmi8998_charger: add passive cooling support dd4d629 arm64: dts: qcom: pm660: add cooling for charger 5029c70 arm64: dts: qcom: sdm670-google: add battery thermal zones 2da59db power: supply: qcom_pmi8998_charger: increase default current to 3 Amps 9dfaac4 arm64: configs: sdm670.config: update for linux-next and pmOS changes df05f9f arm64: dts: qcom: sdm670: use pdc for thermal zones 501d9c8 media: i2c: imx355: Add delay after clock enable ed5abef media: qcom: camss: Power pipeline only when streaming abf2a0f patches: add Reviewed-by from Konrad for camss dts patch 79b5f33 media: qcom: camss: add management of supply regulators to CSIPHY 7d159f0 arm64: dts: qcom: sdm670-google: model imx363 analog pin as regulator 0e44e20 patches: re-pick camss patches from linux-next 522b3f6 patches: re-pick sdm845 patches from latest sdm845-6.13.0 9a692a6 patches: re-pick camcc dts patch from linux-next 3c91930 patches: re-pick voicemmode1 patch from msm8953-mainline v6.13.0-r0 4229ae8 patches: rebase on v6.13.3 fbef2e5 soc: qcom: llcc: stop using macro for sdm670 config a5419ea arm64: dts: qcom: sdm670: update cpu labels for thermal zones 9010e44 arm64: dts: qcom: sdm670-google: update cpu labels in thermal zones linux-next (14): 7f58b336f3e0 dt-bindings: i2c: qcom-cci: Document SDM670 compatible 7271bbc86008 i2c: qcom-cci: Stop complaining about DT set clock rate 44fdbb9d1a38 media: qcom: camss: add management of supply regulators to CSIPHY a1234b215538 dt-bindings: leds: qcom,spmi-flash-led: Add pm660l compatible 87cafa082ce3 dt-bindings: iommu: arm,smmu: add sdm670 adreno iommu compatible 423147389063 iommu/arm-smmu-qcom: add sdm670 adreno iommu compatible 9b2955bae702 arm64: dts: qcom: pm660l: add flash leds 44d2a252698e arm64: dts: qcom: sdm670-google-sargo: add flash leds cd89483a1327 arm64: dts: qcom: sdm670: add gpu fbf7cfa3ea98 arm64: dts: qcom: sdm670-google-sargo: enable gpu 9620f5484424 arm64: dts: qcom: sdm670: add camcc bf6aa2d6935c dt-bindings: clock: qcom,sdm845-camcc: add sdm670 compatible 0274ea59f83e dt-bindings: media: camss: Add qcom,sdm670-camss c52643b24152 media: qcom: camss: add support for SDM670 camss sdm670-staging (7): [PATCH v2 1/4] dt-bindings: display/msm/gmu: Add SDM670 compatible [PATCH v10 3/3] 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): e191c0d08488 ASoC: qdsp6: q6voice-dai: Add VoiceMMode1 DAI msm8996-mainline (1): c444d999d4e7 dt-bindings: power: supply: Add DT schema for qcom,fg sdm845-mainline (5): 0140a4392bb8 arm64: configs: add sdm845 config fragment c21551fc9899 power: supply: Add driver for Qualcomm PMIC fuel gauge a2397a64ed83 Add back TEXT_OFFSET in the built image... 7e49235bf391 media: i2c: Add imx363 image sensor driver 63247f12e2b8 sdm845.config: ZRAM zstd and modules compression sdm670-downstream (89): 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 arm64: dts: qcom: sdm670-google: model imx363 analog pin as regulator 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 arm64: dts: qcom: sdm670-google: use labelled endpoint node for rear cam power: supply: qcom_pmi8998_charger: add charger enable and disable power: supply: qcom_pmi8998_charger: add passive cooling support arm64: dts: qcom: pm660: add cooling for charger arm64: dts: qcom: sdm670-google: add battery thermal zones power: supply: qcom_pmi8998_charger: increase default current to 3 Amps media: qcom: camss: Power pipeline only when streaming sdm670-fixup (3): soc: qcom: llcc: stop using macro for sdm670 config arm64: dts: qcom: sdm670: update cpu labels for thermal zones arm64: dts: qcom: sdm670-google: update cpu labels in thermal zones 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/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 | 20 + 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 | 1563 ++++++++++++++++ arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts | 590 +----- arch/arm64/boot/dts/qcom/sdm670.dtsi | 1965 ++++++++++++++++++++ arch/arm64/configs/sdm670.config | 424 +++++ arch/arm64/configs/sdm845.config | 1032 ++++++++++ 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/input/misc/Kconfig | 12 + drivers/input/misc/Makefile | 1 + drivers/input/misc/drv2624.c | 950 ++++++++++ drivers/input/misc/drv2624.h | 290 +++ drivers/media/i2c/Kconfig | 10 + drivers/media/i2c/Makefile | 1 + drivers/media/i2c/imx355.c | 120 ++ drivers/media/i2c/imx363.c | 1474 +++++++++++++++ drivers/media/platform/qcom/camss/camss-video.c | 39 +- 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/power/supply/qcom_pmi8998_charger.c | 121 +- 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 | 105 ++ 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 ++++ 86 files changed, 15512 insertions(+), 608 deletions(-)