Linux 6.16.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.16.3. Some video acceleration issues were addressed in this release. One of the fixes is for video encoding, where the driver would allocate 3/4 of the required output buffer. Another fix is when the driver needs to send an end of stream (when seeking or closing a video), it would normally send the pointer 0xdeadb000, which confuses the firmware's CP (Content Protection) code. There are still clock scaling issues when decoding. An issue with disconnecting from WiFi was discovered, where the driver would be stuck for 3 seconds trying to remove a WPA key. This makes it a little more reliable to roam between WiFi access points, or between different frequencies of the same access point. The fuel gauge driver was updated, fixing expectations by UPower about how the kernel reports the direction of electrical current. Some review messages for the front camera were addressed. SDM660 is anticipated to have working audio with the sound card driver. This makes it more important to upstream, so some changes have been applied to make it more upstreamable. I added sign-offs to commits that I wrote and didn't sign-off already. Bluetooth, call audio, display, USB, I2C, eMMC, modem, haptics, NFC, sensors, touchscreen, and thermals should work and be slightly broken like before. linux-patches.git commits since previous release (50): 9f383eb patches: add review tags for camss power management patch e8d7bc7 ASoC: qdsp6: q6cvp: use common channel mappings for cvd 2.3 commands 5614ef8 media: i2c: imx355: make regulator names more const ab113dd arm64: dts: qcom: sdm670-google: rearrange pinctrl props for front cam 18e3d52 arm64: dts: qcom: sdm670-google: add camss regulator and empty line 0eca773 arm64: dts: qcom: sdm670-google: assign mclk2 to 19.2 MHz 00c9d35 arm64: dts: qcom: sdm670-google: remove nesting of mclk d5d3703 arm64: dts: qcom: sdm670-google: move front cam endpoint to camss fixup b173431 arm64: dts: qcom: sdm670-google: move rear cam endpoint to camss fixup 96c6d86 arm64: dts: qcom: sdm670: remove camss endpoint nodes cab693b patches: squash Robert's front camera orientation patch b9c1d64 media: i2c: imx355: Get clock frequency from devicetree-defined clock 0f66414 arm64: dts: qcom: sdm670-google: remove imx355 clock-frequency property 087e07f dt-bindings: media: i2c: imx355: Remove clock-frequency property ae8bc3a dt-bindings: media: i2c: imx355: Be more strict with port child node 9f59aaa dt-bindings: media: i2c: imx355: Remove assigned-clocks properties 3669e87 media: i2c: imx355: Use common power on and off functions 8ef94e8 dt-bindings: media: i2c: imx355: rename regulator names 503cbc6 media: i2c: imx355: Rename regulators to avdd, dvdd, and dovdd e9fa14e arm64: dts: qcom: sdm670-google: rename imx355 regulators 29fa424 patches: re-pick sdm845 patches from sdm845-6.16-rc2-3 150b5f2 sdm845.config: enable ROHM BU64748 camera lens actuator 4e63842 arch: arm64: configs: sdm845: enable LG SW49410 panel driver 97b487d power: supply: qcom_fg: dont put battery info on remove f809d92 power: supply: qcom_fg: invert charging current 5907117 sdm845.config: replace with upstream yoga c630 battery driver 452265b patches: remove original commit message b823827 media: i2c: imx355: Bring init sequence closer to other upstream drivers e0bd0c8 patches: re-pick camss power management fix from linux-next 7654527 patches: add reviewed-by from Konrad for charger patch bb8437b media: i2c: imx355: Use devm_clk_get_optional for clocks db548b1 arm64: dts: qcom: sdm670-google: use 0 in front cam gpio pin power 7a6c77e media: i2c: imx355: Disable clocks as last power-off action bf6fd09 dt-bindings: media: i2c: imx355: Move unevaluatedProperties down dd267b3 dt-bindings: media: i2c: imx355: Require supplies and clock-names 215f51a patches: stage wifi fix 03c33e3 arm64: dts: qcom: sdm670-google: mark protected lpi pins as reserved fe526d3 media: venus: increase compressed frame size 9786b15 media: venus: use a null pointer on HFI 4xx 126bfa9 dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl dd982e2 ASoC: qcom: sdm660-internal: use 6.144 MHz for internal microphone 1a485b0 wifi: ath10k: only wait for response to SET_KEY 6366054 patches: move venus driver fixes before dts patches c51e48d patches: separate adsp dts patch into SoC and device patches d82ca40 patches: sign-off ath10k install_key patch 825b35a patches: sign off other patches that I wrote e30abd7 arm64: configs: sdm670.config: support zswap 95e3ff5 patches: move camss pm patch to linux-next group 7386b7a patches: re-pick charger patch from linux-next a84c871 patches: rebase onto v6.16.2 linux-next (2): 164202f68203 media: qcom: camss: Power pipeline only when streaming 8839b8e6e849 arm64: dts: qcom: sdm670-google-sargo: enable charger sdm670-staging (8): [PATCH v2 1/4] dt-bindings: display/msm/gmu: Add SDM670 compatible [PATCH v2 0/4] media: i2c: IMX355 for the Pixel 3a dt-bindings: media: i2c: Add Sony IMX355 media: i2c: imx355: Support devicetree and power management arm64: dts: qcom: sdm670: remove camss endpoint nodes arm64: dts: qcom: sdm670-google-sargo: add imx355 front camera Not sent yet (2): wifi: ath10k: make in-order rx amsdu buffers persistent wifi: ath10k: only wait for response to SET_KEY 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 (8): 1ce89808be07 arm64: configs: add sdm845 config fragment 06e3b739fad6 power: supply: Add driver for Qualcomm PMIC fuel gauge e93c722859f5 Add back TEXT_OFFSET in the built image... f95a0d6b9100 media: i2c: Add imx363 image sensor driver abd0a0bd8881 sdm845.config: enable ROHM BU64748 camera lens actuator abd0a0bd8881 arch: arm64: configs: sdm845: enable LG SW49410 panel driver 0d82ee4741e0 power: supply: qcom_fg: dont put battery info on remove 80f32ed88cbe power: supply: qcom_fg: invert charging current 7cddcfc12f44 sdm845.config: replace with upstream yoga c630 battery driver sdm670-downstream (92): 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 media: venus: increase compressed frame size media: venus: use a null pointer on HFI 4xx 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 remoteproc: qcom: pas: Add SDM670 ADSP support arm64: dts: qcom: sdm670: add adsp arm64: dts: qcom: sdm670-google: enable adsp dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl 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 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 ASoC: qdsp6: q6core: add support for registering topologies arm64: dts: qcom: sdm670-google: specify acdb path ASoC: qdsp6: q6cvp: add commands in cvd 2.3 ASoC: qdsp6: q6voice: add cvd 2.3 initialization sequence 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 ASoC: qdsp6: q6voice-dai: add internal mi2s ASoC: qdsp6: q6voice-dai: add tdm arm64: dts: qcom: sdm670: add q6voice apr services arm64: dts: qcom: sdm670-google: add voicemmode1 dai 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 drm/panel: Add Novatek/Tianma NT37700F panel arm64: dts: qcom: add support for pixel 3a xl with the tianma panel 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 dt-bindings: thermal: tsens: add SDM670 compatible dt-bindings: mfd: qcom,spmi-pmic: Allow PMIC4 thermal monitor on pm660 thermal: qcom-spmi-adc-tm5: Correct the voltage-code scaling for HC arm64: dts: qcom: sdm670: add thermal zones arm64: dts: qcom: pm660: add thermal monitor arm64: dts: qcom: sdm670-google: add thermal zones dt-bindings: cache: qcom,llcc: Add SDM670 compatible soc: qcom: llcc: Add configuration data for SDM670 arm64: dts: qcom: sdm670: add llcc arm64: dts: sdm670-google-common: add IMX363 rear camera arm64: dts: qcom: sdm670-google: model imx363 analog pin as regulator 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 arm64: dts: qcom: sdm670-google: switch polarity for rear camera reset 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 arm64: dts: qcom: sdm670: add cdsp arm64: dts: qcom: sdm670-google: enable cdsp Documentation/devicetree/bindings/arm/qcom.yaml | 1 + .../devicetree/bindings/cache/qcom,llcc.yaml | 2 + .../devicetree/bindings/display/msm/gmu.yaml | 1 + .../bindings/mailbox/qcom,apcs-kpss-global.yaml | 1 + .../devicetree/bindings/media/i2c/sony,imx355.yaml | 112 ++ .../devicetree/bindings/mfd/qcom,spmi-pmic.yaml | 1 + .../devicetree/bindings/net/qcom,ipa.yaml | 1 + .../pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml | 79 + .../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 | 42 + .../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 | 1553 ++++++++++++++++++ arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts | 599 +------ arch/arm64/boot/dts/qcom/sdm670.dtsi | 1696 +++++++++++++++++++- arch/arm64/configs/sdm670.config | 331 ++++ arch/arm64/configs/sdm845.config | 1165 ++++++++++++++ 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 | 153 +- drivers/media/i2c/imx363.c | 1474 +++++++++++++++++ drivers/media/platform/qcom/camss/camss-video.c | 39 +- drivers/media/platform/qcom/venus/helpers.c | 2 +- drivers/media/platform/qcom/venus/vdec.c | 3 +- drivers/media/platform/qcom/venus/venc.c | 5 +- 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/net/wireless/ath/ath10k/mac.c | 8 +- drivers/pinctrl/qcom/Kconfig | 10 + drivers/pinctrl/qcom/Makefile | 1 + drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c | 172 ++ drivers/power/supply/Kconfig | 8 + drivers/power/supply/Makefile | 1 + drivers/power/supply/qcom_fg.c | 1322 +++++++++++++++ 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 ++ drivers/thermal/qcom/qcom-spmi-adc-tm5.c | 2 +- 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 | 47 + 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 | 331 ++++ 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, 14829 insertions(+), 649 deletions(-)