Skip to content
Linux 6.1.14 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.1.14.

Unlike most previous releases, there are no major new features in this release
(unless you count DSP bringup).

There have been some non-functional changes that upstream expects. A compatible
string was added to the documentation. The panel's power supply, the
interconnect macros, and the MDSS node were renamed. Device tree nodes have
been sorted. Some reg properties in the relevant device trees were padded. The
OPP table for DSI was moved. The S6E3FA7 was modified to use the new big endian
16-bit brightness functions instead of performing a byte swap. Some patches
have been applied upstream and their final versions were picked.

CPU frequency scaling should have improved a little, now with correct memory
bandwidths (which was backported to 6.0.11 in postmarketOS), a device tree node
for the OSM L3 cache controller, and some numbers from a benchmark. There was
also an CPU frequency driver that has been disabled in this release to make
dmesg cleaner.

Changes to the SDM845 display and GPU clock controllers were reverted because
the differences between SDM845 and SDM670 are too small to justify submitting
these changes. This should not affect stability because the GMU shouldn't try
to scale to a frequency outside of its OPP table and MDP shouldn't require the
specific 286.7 MHz frequency.

This might not be included in the final release but support for the ADSP was
added. This does not add any audio (a sound card driver, LPI pinctrl driver, and
UCM configuration file are still needed for that) or sensors (an interface that
can be provided by userspace is needed for that), but it can still be brought up
for experimentation. There are also some patches to the newly used FastRPC
driver.

There's still some indecisiveness surrounding the haptics driver. It could
either treat the device as memless and be in RTP mode so there are no
hardware-imposed limits to how long effects can be, or upload effects to
potentially reduce I2C bandwidth usage.

Modem, USB, NFC, GPU, eMMC, video acceleration, and panel should work like
before.

linux-next (37):
 5887bc1ced74 dt-bindings: pinctrl: qcom: add sdm670 pinctrl
 f764b84848e8 pinctrl: qcom: do not reinitialize gpio valid mask
 61164d220f52 pinctrl: qcom: add sdm670 pinctrl
 e7e24786cf90 arm64: dts: qcom: add gpi-dma fallback compatible
 9ba5080e688d dt-bindings: power: rpmpd: add sdm670 power domains
 5faeae4eac74 soc: qcom: rpmhpd: add sdm670 power domains
 3c6bd6fa83bb dt-bindings: dma: qcom: gpi: add fallback compatible
 67fd570d734d dt-bindings: dma: qcom: gpi: add compatible for sdm670
 b4dba2bd3452 dt-bindings: arm: cpus: add qcom kryo 360 compatible
 6c49e41c46a4 dt-bindings: arm: qcom: add sdm670 and pixel 3a compatible
 aa9f474014b1 dt-bindings: firmware: scm: add sdm670 compatible
 07c8ded6e373 arm64: dts: qcom: add sdm670 and pixel 3a device trees
 4529992c9474 interconnect: qcom: osm-l3: Use platform-independent node ids
 d623264f62d4 interconnect: qcom: osm-l3: Squash common descriptors
 9235253ec73d interconnect: qcom: osm-l3: Add per-core EPSS L3 support
 c70edc067739 dt-bindings: interconnect: Add sm8350, sc8280xp and generic OSM L3 compatibles
 8d3a9ec6ae28 dt-bindings: iommu: arm-smmu: add sdm670 compatible
 d6e636787d46 arm64: dts: qcom: msm8996: change order of SMMU clocks on this platform
 dbf88f743583 dt-bindings: arm-smmu: Add missing Qualcomm SMMU compatibles
 982295bfe369 dt-bindings: arm-smmu: fix clocks/clock-names schema
 3a12e8c06536 dt-bindings: arm-smmu: add special case for Google Cheza platform
 6c84bbd103d8 dt-bindings: arm-smmu: Add generic qcom,smmu-500 bindings
 4c1d0ad153f8 iommu/arm-smmu-qcom: Move implementation data into match data
 30b912a03d91 iommu/arm-smmu-qcom: Move the qcom,adreno-smmu check into qcom_smmu_create
 417b76adcf1d iommu/arm-smmu-qcom: provide separate implementation for SDM845-smmu-500
 4172dda2b30a iommu/arm-smmu-qcom: Merge table from arm-smmu-qcom-debug into match data
 b4c6ee515c42 iommu/arm-smmu-qcom: Stop using mmu500 reset for v2 MMUs
 80b71080720e iommu/arm-smmu-qcom: Add generic qcom,smmu-500 match entry
 861b67fbdccd arm64: dts: qcom: sdm670-google-sargo: keep pm660 ldo8 on
 7bff6f4351bf arm64: dts: qcom: sdm670: add qfprom node
 cb98187a6883 arm64: dts: qcom: sdm670: add missing usb hstx nvmem cell
 c9d27c6be518 drm/mipi-dsi: Fix byte order of 16-bit DCS set/get brightness
 81ccf4557105 dt-bindings: interconnect: add sdm670 interconnects
 7e438e18874e interconnect: qcom: add sdm670 interconnects
 c85c191694cb power: supply: remove faulty cooling logic
 a1e63b63763d dt-bindings: nvmem: qfprom: add sdm670 compatible
 0daef104e4b1 arm64: dts: qcom: sdm670: add interconnects

sdm670-staging (17):
 [PATCH v4 2/2] SDM670 Interconnects (now with dts patches only)
  arm64: dts: qcom: sdm670: add icc paths and opps for peripherals
 Not sent yet (14):
  dt-bindings: interconnect: add SDM670 OSM L3 compatible
  arm64: dts: qcom: sdm670: add osm l3
  arm64: dts: qcom: sdm670: add cpu frequency scaling
  arm64: dts: qcom: sdm670: add frequency profile
  drm/msm/dpu: add hw revision 410
  arm64: dts: qcom: sdm670: add mdss
  dt-bindings: display: panel-simple-dsi: add s6e3fa7 compatible
  drm/panel: add samsung s6e3fa7 panel driver
  arm64: dts: qcom: sdm670-google-sargo: add panel
  dt-bindings: iommu: arm,smmu: add sdm670 adreno iommu compatible
  drm/msm/adreno: add a615 support
  drm/msm/a6xx: add a615 speed bins
  arm64: dts: qcom: sdm670: add gpu
  arm64: dts: qcom: sdm670-google-sargo: enable gpu
 [PATCH 0/2] misc: fastrpc: Fixes for issues in userspace
  misc: fastrpc: return -EPIPE to invocations on device removal
  misc: fastrpc: reject new invocations during device removal

sdm845-mainline (7):
 f0347b911947 arm64: configs: add sdm845 config fragment
 752350bd3f7e power: supply: Add driver for Qualcomm PMIC fuel gauge
 1c0fa3c8c4e5 dt-bindings: power: supply: Add DT schema for qcom,fg
 876799103cd4 power: supply: add Qualcomm PMI8998 SMB2 Charger driver
 94a247bdea6a dt-bindings: power: supply: qcom,pmi8998-charger: add bindings for smb2 driver
 6ebe05fc2702 power: supply: qcom: pmi8898-charger: update as per v6 patch
 25988d130b5e Add back TEXT_OFFSET in the built image...

sdm670-downstream (19):
 arm64: configs: add sdm670 config fragment
 arm64: dts: qcom: sdm670-google-sargo: mask the dtbo
 arm64: dts: qcom: pm660: add charging support
 arm64: dts: qcom: sdm670-google-sargo: enable charging support
 Input: add ti drv2624 haptics driver
 arm64: dts: qcom: sdm670-google-sargo: add haptics node
 arm64: dts: qcom: sdm670: add video codec
 arm64: dts: qcom: sdm670-google-sargo: enable venus video codec
 arm64: dts: qcom: drop-in bluetooth support
 arm64: dts: qcom: sdm670: add nfc support
 dt-bindings: soc: qcom: add modemsmem
 soc: qcom: smem: expose socinfo platform device
 soc: qcom: socinfo: expose detailed platform info
 soc: qcom: add modemsmem
 arm64: dts: qcom: sdm670-google-sargo: add modemsmem
 arm64: dts: qcom: sdm670: add modem
 arm64: dts: qcom: sdm670: add ipa
 arm64: dts: qcom: sdm670: add wifi
 arm64: dts: qcom: sdm670: add and enable adsp

 Documentation/devicetree/bindings/arm/cpus.yaml    |    1 +
 Documentation/devicetree/bindings/arm/qcom.yaml    |    6 +
 .../bindings/display/panel/panel-simple-dsi.yaml   |    2 +
 .../devicetree/bindings/dma/qcom,gpi.yaml          |   15 +
 .../devicetree/bindings/firmware/qcom,scm.yaml     |    1 +
 .../bindings/interconnect/qcom,osm-l3.yaml         |   25 +-
 .../bindings/interconnect/qcom,rpmh.yaml           |    8 +
 .../devicetree/bindings/iommu/arm,smmu.yaml        |  174 +-
 .../devicetree/bindings/nvmem/qcom,qfprom.yaml     |    1 +
 .../bindings/pinctrl/qcom,sdm670-tlmm.yaml         |  127 +
 .../devicetree/bindings/power/qcom,rpmpd.yaml      |    1 +
 .../devicetree/bindings/power/supply/qcom,fg.yaml  |  102 +
 .../power/supply/qcom,pmi8998-charger.yaml         |   82 +
 .../bindings/soc/qcom/google,modemsmem.yaml        |   33 +
 arch/arm64/boot/dts/qcom/Makefile                  |    1 +
 arch/arm64/boot/dts/qcom/msm8996.dtsi              |   31 +-
 arch/arm64/boot/dts/qcom/pm660.dtsi                |   35 +
 .../dts/qcom/sdm670-google-sargo-dtbo-mask.dtsi    |  472 ++++
 arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts   |  814 +++++++
 arch/arm64/boot/dts/qcom/sdm670.dtsi               | 2496 ++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sm8150.dtsi               |    6 +-
 arch/arm64/boot/dts/qcom/sm8250.dtsi               |    6 +-
 arch/arm64/configs/sdm670.config                   |   27 +
 arch/arm64/configs/sdm845.config                   |  921 ++++++++
 arch/arm64/kernel/head.S                           |    2 +-
 arch/arm64/kernel/image.h                          |    1 +
 drivers/gpu/drm/drm_mipi_dsi.c                     |   52 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c              |   19 +
 drivers/gpu/drm/msm/adreno/adreno_device.c         |   13 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c     |   67 +
 drivers/gpu/drm/panel/Kconfig                      |    9 +
 drivers/gpu/drm/panel/Makefile                     |    1 +
 drivers/gpu/drm/panel/panel-samsung-s6e3fa7.c      |  297 +++
 drivers/input/misc/Kconfig                         |   12 +
 drivers/input/misc/Makefile                        |    1 +
 drivers/input/misc/drv2624.c                       | 1221 ++++++++++
 drivers/input/misc/drv2624.h                       |  338 +++
 drivers/interconnect/qcom/Kconfig                  |    9 +
 drivers/interconnect/qcom/Makefile                 |    2 +
 drivers/interconnect/qcom/osm-l3.c                 |  116 +-
 drivers/interconnect/qcom/sdm670.c                 |  440 ++++
 drivers/interconnect/qcom/sdm670.h                 |  128 +
 drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c   |   91 -
 drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c         |  154 +-
 drivers/iommu/arm/arm-smmu/arm-smmu-qcom.h         |   21 +-
 drivers/misc/fastrpc.c                             |    7 +-
 drivers/pinctrl/qcom/Kconfig                       |   10 +
 drivers/pinctrl/qcom/Makefile                      |    1 +
 drivers/pinctrl/qcom/pinctrl-msm.c                 |    3 +-
 drivers/pinctrl/qcom/pinctrl-sdm670.c              | 1345 +++++++++++
 drivers/power/supply/Kconfig                       |   17 +
 drivers/power/supply/Makefile                      |    2 +
 drivers/power/supply/power_supply_core.c           |   93 -
 drivers/power/supply/qcom_fg.c                     | 1320 +++++++++++
 drivers/power/supply/qcom_pmi8998_charger.c        | 1082 +++++++++
 drivers/soc/qcom/Kconfig                           |   10 +
 drivers/soc/qcom/Makefile                          |    1 +
 drivers/soc/qcom/modemsmem.c                       |  104 +
 drivers/soc/qcom/rpmhpd.c                          |   18 +
 drivers/soc/qcom/smem.c                            |    7 +
 drivers/soc/qcom/socinfo.c                         |   39 +
 include/drm/drm_mipi_dsi.h                         |    4 +
 .../dt-bindings/interconnect/qcom,sdm670-rpmh.h    |  136 ++
 include/dt-bindings/power/qcom-rpmpd.h             |   10 +
 include/linux/soc/qcom/smem.h                      |   14 +
 include/linux/soc/qcom/socinfo.h                   |   12 +
 66 files changed, 12258 insertions(+), 358 deletions(-)