diff --git a/device/community/linux-pine64-pinephonepro/0001-arm64-dts-rk3399-pinephone-pro-Keep-modem-regulators.patch b/device/community/linux-pine64-pinephonepro/0001-arm64-dts-rk3399-pinephone-pro-Keep-modem-regulators.patch index 7e4801921..5596eddc1 100644 --- a/device/community/linux-pine64-pinephonepro/0001-arm64-dts-rk3399-pinephone-pro-Keep-modem-regulators.patch +++ b/device/community/linux-pine64-pinephonepro/0001-arm64-dts-rk3399-pinephone-pro-Keep-modem-regulators.patch @@ -1,5 +1,7 @@ +From aec579307052b49a84960b2570c25f99929a1802 Mon Sep 17 00:00:00 2001 From: Dummy -Subject: [PATCH] arm64: dts: rk3399-pinephone-pro: Keep modem regulators +Date: Thu, 27 Aug 2026 20:07:31 -0700 +Subject: [PATCH 90/90] arm64: dts: rk3399-pinephone-pro: Keep modem regulators always-on The vcc_4g and vcc_4g_5v regulators power the EG25 modem. Mark them @@ -9,14 +11,14 @@ always-on so the modem is powered at boot when using eg25-manager. 1 file changed, 2 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts -index 7a3fa599f541..9afef750bb9b 100644 +index 7a3fa599f541..4d4888812bed 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts @@ -430,6 +430,7 @@ vcc_4g_5v: regulator-vcc-4g-5v { regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; vin-supply = <&vcc5v0_sys>; -+ regulator-always-on; ++ regulator-always-on; }; vcc_4g: regulator-vcc-4g { @@ -24,10 +26,10 @@ index 7a3fa599f541..9afef750bb9b 100644 regulator-min-microvolt = <3800000>; regulator-max-microvolt = <3800000>; vin-supply = <&vcc_sys>; -+ regulator-always-on; ++ regulator-always-on; }; vcc1v8_codec: regulator-vcc1v8-codec { -- -2.39.5 +2.55.0 diff --git a/device/community/linux-pine64-pinephonepro/APKBUILD b/device/community/linux-pine64-pinephonepro/APKBUILD index 09f28111c..d44785cee 100644 --- a/device/community/linux-pine64-pinephonepro/APKBUILD +++ b/device/community/linux-pine64-pinephonepro/APKBUILD @@ -1,7 +1,7 @@ maintainer="Rudraksha Gupta " pkgname=linux-pine64-pinephonepro -pkgver=7.1 -pkgrel=1 +pkgver=7.2 +pkgrel=0 pkgdesc="Mainline kernel for the Pinephone Pro" arch="aarch64" _flavor="${pkgname#linux-}" @@ -41,15 +41,62 @@ case "$CARCH" in arm*) _carch="arm" ;; esac -# Currently, the megi kernel is the most up-to-date pinephone pro kernel. As postmarketOS doesn't want to use the Megi kernel directly, we can strip the Megi kernel down to it's essentials by doing the following: +# Strip down Megi kernel to just the PPP # -# git clone https://codeberg.org/megi/linux.git --branch orange-pi-7.1 -# git switch -c ppp-7.1 -# git reset --hard 8cd9520d35a6c38db6567e97dd93b1f11f185dc6 # v7.1 +# git clone https://codeberg.org/megi/linux.git --branch orange-pi-7.2 +# cd linux +# git switch -c ppp-7.2 +# git reset --hard 8d3ae59288f1e7d58d76558a6ee96d533bc5019f # v7.2 # -# cherry pick and make sure to fix/skip conflicts... +# cherry pick. Two lists: subjects to skip, and the subsystem tokens the pinephone pro +# needs, matched against the second-to-last colon segment of the subject. # -# git cherry-pick $(git log --reverse --format='%H%x09%s' HEAD..orange-pi-7.1 | awk -F'\t' '{n=split($2,a,":"); s=a[n-1]; gsub(/^ +| +$/,"",s); if(s ~/^(arasan|cdn-dp|displayport|dwc3|fusb302|gigadevice|imx258|phy-rockchip-inno-usb2|rk3399|rk3399-pinephone-pro|rk3399-s|rk818|rk818-battery|rk818-charger|rockchip|rockchip-inno-usb2|rt5640|supply|tcpm|typec-extcon|rk8xx|rk818_battery|rockchip-typec)$/) print $1}') +# cat > /tmp/ppp-skip <<'EOF' +# Fix mpu6500 mount matrix +# Drop the redundant CDN DP to Type-C PHY graph link +# Give the rk3399 ISPs their QoS generators +# Add OV8858 power supplies +# Add speaker amplifier supply +# Drop unusable 800 MHz GPU OPP +# Wire up UART DMA channels +# Do not log expected unplug races as errors +# Emit shield-pixel PDAF data +# EOF +# +# cat > /tmp/ppp-keep <<'EOF' +# arasan +# cdn-dp +# displayport +# dwc3 +# fusb302 +# gigadevice +# imx258 +# phy-rockchip-inno-usb2 +# rk3399 +# rk3399-pinephone-pro +# rk3399-s +# rk818 +# rk818-battery +# rk818-charger +# rockchip +# rockchip-inno-usb2 +# rt5640 +# supply +# tcpm +# typec-extcon +# rk8xx +# rk818_battery +# rockchip-typec +# EOF +# +# git log --reverse --format='%H%x09%s' HEAD..orange-pi-7.2 | +# grep -vFf /tmp/ppp-skip | +# awk -F'\t' 'NR==FNR { keep[$0]; next } +# { n = split($2, a, ":"); s = a[n-1]; gsub(/^ +| +$/, "", s) +# if (s in keep) print $1 }' /tmp/ppp-keep - > /tmp/ppp-picks +# +# wc -l < /tmp/ppp-picks +# git cherry-pick $(cat /tmp/ppp-picks) # # keep modem always on... # @@ -88,97 +135,105 @@ esac # Source _config="config-$_flavor.$CARCH" +case $pkgver in + *.*.*) _kernver=${pkgver%.0};; + *.*) _kernver=$pkgver;; +esac source=" - ppp-v7.1.tar.gz::https://github.com/torvalds/linux/archive/refs/tags/v7.1.tar.gz + https://cdn.kernel.org/pub/linux/kernel/v${_kernver%%.*}.x/linux-${pkgver//_/-}.tar.xz config-$_flavor.aarch64 - megi_patches/0001-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch - megi_patches/0002-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch - megi_patches/0003-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch - megi_patches/0004-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch - megi_patches/0005-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch - megi_patches/0006-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch - megi_patches/0007-media-imx258-Add-i2c-supply.patch - megi_patches/0008-media-imx258-Add-reset-gpio.patch - megi_patches/0009-media-imx258-Drop-interface-speed-to-1224-mbps.patch - megi_patches/0010-DEBUG-media-imx258-Add-debug-register-access.patch + megi_patches/0001-media-imx258-Add-i2c-supply.patch + megi_patches/0002-media-imx258-Add-reset-gpio.patch + megi_patches/0003-media-imx258-Drop-interface-speed-to-1224-mbps.patch + megi_patches/0004-media-imx258-Add-debug-register-access.patch + megi_patches/0005-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch + megi_patches/0006-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch + megi_patches/0007-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch + megi_patches/0008-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch + megi_patches/0009-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch + megi_patches/0010-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch megi_patches/0011-ASoC-rockchip-Fix-doubling-of-playback-speed-after-s.patch - megi_patches/0012-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch - megi_patches/0013-thermal-rockchip-Add-support-for-RV1106-SoC.patch - megi_patches/0014-soc-rockchip-Add-support-for-power-monitoring-driver.patch - megi_patches/0015-rtc-rockchip-Add-support-for-RTC-present-in-RV1106-S.patch - megi_patches/0016-thermal-rockchip-Add-support-for-RK3506.patch - megi_patches/0017-mtd-spi-nor-gigadevice-Add-support-for-gd25lq128e.patch - megi_patches/0018-clk-rk3399-Export-SCLK_CIF_OUT_SRC-to-device-tree.patch - megi_patches/0019-clk-rockchip-rk3399-Don-t-allow-to-reparent-dclk_vop.patch - megi_patches/0020-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch - megi_patches/0021-mfd-rk8xx-Enable-rk808-clkout2-function.patch - megi_patches/0022-power-supply-rk818_battery-Add-battery-charger-drive.patch - megi_patches/0023-power-supply-rk818_battery-Add-code-docs-for-the-HW-.patch - megi_patches/0024-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch - megi_patches/0025-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch - megi_patches/0026-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch - megi_patches/0027-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch - megi_patches/0028-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch - megi_patches/0029-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch - megi_patches/0030-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch - megi_patches/0031-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch - megi_patches/0032-usb-typec-fusb302-Add-OF-extcon-support.patch - megi_patches/0033-usb-typec-fusb302-Fix-register-definitions.patch - megi_patches/0034-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch - megi_patches/0035-usb-typec-fusb302-Turn-off-VBUS-and-VCONN-on-shutdow.patch - megi_patches/0036-phy-rockchip-inno-usb2-Add-support-for-RV1106-RV1103.patch - megi_patches/0037-phy-rockchip-inno-usb2-Add-support-for-RK3506.patch - megi_patches/0038-phy-rockchip-inno-usb2-Add-PHY-tuning-for-rk3566-rk3.patch - megi_patches/0039-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch - megi_patches/0040-phy-rockchip-inno-usb2-Decrease-delay-between-port-i.patch - megi_patches/0041-phy-rockchip-inno-usb2-More-robust-charger-detection.patch - megi_patches/0042-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch - megi_patches/0043-usb-dwc3-Always-disable-SUSPHY-when-entering-a-role.patch - megi_patches/0044-usb-dwc3-Track-cable-connection-state-separately-fro.patch - megi_patches/0045-usb-dwc3-Power-cycle-USB3-PHY-on-role-connection-cha.patch - megi_patches/0046-usb-dwc3-Register-the-role-even-when-no-cable-is-con.patch - megi_patches/0047-phy-rockchip-inno-usb2-Set-up-charger-detection-mode.patch - megi_patches/0048-usb-dwc3-Do-not-re-register-the-gadget-on-cable-even.patch - megi_patches/0049-phy-rockchip-typec-Support-a-Type-C-orientation-swit.patch - megi_patches/0050-phy-rockchip-typec-Support-a-Type-C-mode-mux.patch - megi_patches/0051-phy-rockchip-typec-Publish-the-DP-lane-count.patch - megi_patches/0052-drm-rockchip-cdn-dp-Support-ports-driven-by-a-Type-C.patch - megi_patches/0053-phy-rockchip-inno-usb2-Learn-the-host-role-from-phy_.patch - megi_patches/0054-usb-dwc3-Tell-the-UDC-core-when-there-is-no-cable.patch - megi_patches/0055-phy-rockchip-inno-usb2-Do-not-run-charger-detection-.patch - megi_patches/0056-usb-dwc3-Set-the-PHY-mode-before-starting-the-host.patch - megi_patches/0057-usb-dwc3-Do-not-connect-the-gadget-while-no-cable-is.patch - megi_patches/0058-phy-rockchip-inno-usb2-Power-the-PHY-up-before-the-h.patch - megi_patches/0059-usb-dwc3-Require-MPS-aligned-OUT-buffers.patch - megi_patches/0060-usb-typec-displayport-Update-the-mux-before-signalli.patch - megi_patches/0061-arm64-dts-rockchip-rk3399-Disable-debug-nodes.patch - megi_patches/0062-arm64-dts-rockchip-rk3399-Add-reboot-mode-driver.patch - megi_patches/0063-arm64-dts-rockchip-rk3399-Power-cycle-the-USB3-PHY-o.patch - megi_patches/0064-arm64-dts-rockchip-rk3399-Add-dmc_opp_table.patch - megi_patches/0065-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch - megi_patches/0066-arm64-dts-rockchip-rk3399-Number-the-CDN-DP-ports.patch - megi_patches/0067-arm64-dts-rockchip-rk3399-pinephone-pro-Add-Type-C-p.patch - megi_patches/0068-arm64-dts-rockchip-rk3399-pinephone-pro-Add-internal.patch - megi_patches/0069-arm64-dts-rockchip-rk3399-pinephone-pro-Add-battery-.patch - megi_patches/0070-arm64-dts-rockchip-rk3399-pinephone-pro-Add-sound-su.patch - megi_patches/0071-arm64-dts-rockchip-rk3399-pinephone-pro-Add-modem-su.patch - megi_patches/0072-arm64-dts-rockchip-rk3399-pinephone-pro-Change-modem.patch - megi_patches/0073-arm64-dts-rockchip-rk3399-pinephone-pro-Add-light-pr.patch - megi_patches/0074-arm64-dts-rockchip-rk3399-pinephone-pro-Add-I2C-supp.patch - megi_patches/0075-arm64-dts-rockchip-rk3399-pinephone-pro-Add-magnetom.patch - megi_patches/0076-arm64-dts-rockchip-rk3399-pinephone-pro-Add-mount-ma.patch - megi_patches/0077-arm64-dts-rockchip-rk3399-pinephone-pro-Enable-POGO-.patch - megi_patches/0078-arm64-dts-rockchip-rk3399-pinephone-pro-Add-pinephon.patch - megi_patches/0079-arm64-dts-rockchip-rk3399-pinephone-pro-Switch-LED-b.patch - megi_patches/0080-arm64-dts-rockchip-rk3399-pinephone-pro-Pre-configur.patch - megi_patches/0081-arm64-dts-rockchip-rk3399-pinephone-pro-Improve-SPI-.patch - megi_patches/0082-arm64-dts-rockchip-rk3399-pinephone-pro-Assign-power.patch - megi_patches/0083-arm64-dts-rockchip-rk3399-pinephone-pro-Add-camera-f.patch - megi_patches/0084-arm64-dts-rockchip-rk3399-pinephone-pro-Disable-inte.patch + megi_patches/0012-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch + megi_patches/0013-mfd-rk8xx-Enable-rk808-clkout2-function.patch + megi_patches/0014-power-supply-rk818_battery-Add-battery-charger-drive.patch + megi_patches/0015-power-supply-rk818_battery-Add-code-docs-for-the-HW-.patch + megi_patches/0016-power-supply-rk818_battery-Don-t-override-configured.patch + megi_patches/0017-power-supply-rk818_battery-Scale-charge-current-by-t.patch + megi_patches/0018-power-supply-rk818_battery-Scale-termination-current.patch + megi_patches/0019-power-supply-rk818_battery-Compensate-for-IR-drop-wh.patch + megi_patches/0020-power-supply-rk818_battery-Rework-the-low-voltage-mo.patch + megi_patches/0021-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch + megi_patches/0022-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch + megi_patches/0023-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch + megi_patches/0024-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch + megi_patches/0025-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch + megi_patches/0026-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch + megi_patches/0027-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch + megi_patches/0028-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch + megi_patches/0029-usb-typec-fusb302-Add-OF-extcon-support.patch + megi_patches/0030-usb-typec-fusb302-Fix-register-definitions.patch + megi_patches/0031-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch + megi_patches/0032-usb-typec-fusb302-Turn-off-VBUS-and-VCONN-on-shutdow.patch + megi_patches/0033-thermal-rockchip-Add-support-for-RV1106-SoC.patch + megi_patches/0034-soc-rockchip-Add-support-for-power-monitoring-driver.patch + megi_patches/0035-rtc-rockchip-Add-support-for-RTC-present-in-RV1106-S.patch + megi_patches/0036-thermal-rockchip-Add-support-for-RK3506.patch + megi_patches/0037-arm64-dts-rockchip-rk3399-Disable-debug-nodes.patch + megi_patches/0038-arm64-dts-rockchip-rk3399-Add-reboot-mode-driver.patch + megi_patches/0039-arm64-dts-rockchip-rk3399-Power-cycle-the-USB3-PHY-o.patch + megi_patches/0040-arm64-dts-rockchip-rk3399-Add-dmc_opp_table.patch + megi_patches/0041-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch + megi_patches/0042-arm64-dts-rockchip-rk3399-Number-the-CDN-DP-ports.patch + megi_patches/0043-arm64-dts-rockchip-rk3399-pinephone-pro-Add-Type-C-p.patch + megi_patches/0044-arm64-dts-rockchip-rk3399-pinephone-pro-Add-internal.patch + megi_patches/0045-arm64-dts-rockchip-rk3399-pinephone-pro-Add-battery-.patch + megi_patches/0046-arm64-dts-rockchip-rk3399-pinephone-pro-Add-sound-su.patch + megi_patches/0047-arm64-dts-rockchip-rk3399-pinephone-pro-Add-modem-su.patch + megi_patches/0048-arm64-dts-rockchip-rk3399-pinephone-pro-Change-modem.patch + megi_patches/0049-arm64-dts-rockchip-rk3399-pinephone-pro-Add-light-pr.patch + megi_patches/0050-arm64-dts-rockchip-rk3399-pinephone-pro-Add-I2C-supp.patch + megi_patches/0051-arm64-dts-rockchip-rk3399-pinephone-pro-Add-magnetom.patch + megi_patches/0052-arm64-dts-rockchip-rk3399-pinephone-pro-Add-mount-ma.patch + megi_patches/0053-arm64-dts-rockchip-rk3399-pinephone-pro-Enable-POGO-.patch + megi_patches/0054-arm64-dts-rockchip-rk3399-pinephone-pro-Add-pinephon.patch + megi_patches/0055-arm64-dts-rockchip-rk3399-pinephone-pro-Switch-LED-b.patch + megi_patches/0056-arm64-dts-rockchip-rk3399-pinephone-pro-Pre-configur.patch + megi_patches/0057-arm64-dts-rockchip-rk3399-pinephone-pro-Improve-SPI-.patch + megi_patches/0058-arm64-dts-rockchip-rk3399-pinephone-pro-Assign-power.patch + megi_patches/0059-arm64-dts-rockchip-rk3399-pinephone-pro-Add-camera-f.patch + megi_patches/0060-arm64-dts-rockchip-rk3399-pinephone-pro-Disable-inte.patch + megi_patches/0061-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch + megi_patches/0062-phy-rockchip-inno-usb2-Add-support-for-RV1106-RV1103.patch + megi_patches/0063-phy-rockchip-inno-usb2-Add-support-for-RK3506.patch + megi_patches/0064-phy-rockchip-inno-usb2-Add-PHY-tuning-for-rk3566-rk3.patch + megi_patches/0065-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch + megi_patches/0066-phy-rockchip-inno-usb2-Decrease-delay-between-port-i.patch + megi_patches/0067-phy-rockchip-inno-usb2-More-robust-charger-detection.patch + megi_patches/0068-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch + megi_patches/0069-usb-dwc3-Always-disable-SUSPHY-when-entering-a-role.patch + megi_patches/0070-usb-dwc3-Track-cable-connection-state-separately-fro.patch + megi_patches/0071-usb-dwc3-Power-cycle-USB3-PHY-on-role-connection-cha.patch + megi_patches/0072-usb-dwc3-Register-the-role-even-when-no-cable-is-con.patch + megi_patches/0073-phy-rockchip-inno-usb2-Set-up-charger-detection-mode.patch + megi_patches/0074-usb-dwc3-Do-not-re-register-the-gadget-on-cable-even.patch + megi_patches/0075-phy-rockchip-typec-Support-a-Type-C-orientation-swit.patch + megi_patches/0076-phy-rockchip-typec-Support-a-Type-C-mode-mux.patch + megi_patches/0077-phy-rockchip-typec-Publish-the-DP-lane-count.patch + megi_patches/0078-drm-rockchip-cdn-dp-Support-ports-driven-by-a-Type-C.patch + megi_patches/0079-phy-rockchip-inno-usb2-Learn-the-host-role-from-phy_.patch + megi_patches/0080-usb-dwc3-Tell-the-UDC-core-when-there-is-no-cable.patch + megi_patches/0081-phy-rockchip-inno-usb2-Do-not-run-charger-detection-.patch + megi_patches/0082-usb-dwc3-Set-the-PHY-mode-before-starting-the-host.patch + megi_patches/0083-usb-dwc3-Do-not-connect-the-gadget-while-no-cable-is.patch + megi_patches/0084-phy-rockchip-inno-usb2-Power-the-PHY-up-before-the-h.patch + megi_patches/0085-usb-dwc3-Require-MPS-aligned-OUT-buffers.patch + megi_patches/0086-usb-typec-displayport-Update-the-mux-before-signalli.patch + megi_patches/0087-mtd-spi-nor-gigadevice-Add-support-for-gd25lq128e.patch + megi_patches/0088-clk-rk3399-Export-SCLK_CIF_OUT_SRC-to-device-tree.patch + megi_patches/0089-clk-rockchip-rk3399-Don-t-allow-to-reparent-dclk_vop.patch 0001-arm64-dts-rk3399-pinephone-pro-Keep-modem-regulators.patch - BTF-seg-fault.patch " -builddir="$srcdir/linux-$pkgver" +builddir="$srcdir/linux-${_kernver//_/-}" prepare() { default_prepare @@ -209,92 +264,96 @@ package() { sha512sums=" -10c0cfd70a7a5731963cb4c7538396f6ed637d7db532a1c04b00628af47f4b81ffb3d92200e64ba1ce04047e4b2e39e6845c4067762e85ad9df13f2740c10397 ppp-v7.1.tar.gz -a0de9fbc7e532e4783f7d413e8ccef24097bed2f92cd64d7315a6f7df3df89a1832587d61eab1bc428ea587a5018c6140588c46a7a919fba1d0ab6fb69687411 config-pine64-pinephonepro.aarch64 -cafe0f07dab850059475c8f84df0b859d65bedda455517a5996f75d4e5f28c7fe66ac5a2b2e4ee6b46ed173819b899cc37ac08d1106bf635beab018ad636ee1e 0001-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch -5db306c6728666c3e64ca28a3cc330d7452c87c9119aa8cd57a4549cee7aee1c1137dedece8c50bb58d1040bd861d7722c6341112b24699919fb5a3bd816afdb 0002-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch -a734d758f0e84fbd7dd3c8e7daa24ca8778af2d25e8d1df3c7e27978f616428fa57e507dede65f59dab6ce23597380b69d83fde35b549b3c0d8b55a38f58a57b 0003-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch -b7b94b6b2f144932009fa94ad0e5505b5749cea446221ef94e51490117b9a747080a876d7a004a0b0829fba1e3ecbb714f867a3725e40cf51fb90ff49a7c0da9 0004-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch -5c8e63d2e3fe0b4805f74ad0da75159495dd82592e701160d07c4729f00e9c9de7d23dee6250fb62fbbba05c3a0ca42f6495e2f1e51fd1d330f62394003ac222 0005-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch -89c5ecda11e85c795aaf5e718b7c636ed149ca17ca71068cc329abd598edb568584db3b559f9cc4074c8eef4e4e9f749181726e416747ca9b853e6bdd30b4dd1 0006-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch -0a865555b611922507021b262d5ba6f7991ddc0354a440543aa18c2ddc9c47a6807905fd0fcd23e33dfa1f93a337f016114230c472c9ee5f4d56fa45866e828f 0007-media-imx258-Add-i2c-supply.patch -a9feac6a2eaf059699584dab91665a3bcf4afce09dba8c69739c77a1fc3639d01de1dc8fd68d3593afeeac8413a1c1e37d6bf59f272e9f8e504fa67b26d07f76 0008-media-imx258-Add-reset-gpio.patch -50983f8bf418b0b602aa4fedaba273316d13eebff0c4a03f8f680851797a1f28fcf2da0ca98d1fa61cb0e3eb30a36a23b936262f426bfa38a4f43ad64116e307 0009-media-imx258-Drop-interface-speed-to-1224-mbps.patch -a7c6cde4aa77e5df3e464f7eef00859d1ea71f4874f1d447cb78dbc722691380f60aabfef39ce1e740448593a5017b50cb38d01b68ea7c279c808f5043acfce6 0010-DEBUG-media-imx258-Add-debug-register-access.patch -001b8f0c086b24acc5b53f0ce13a10d754903314b21f8fc22c45b5bd6ea719c09c2c2b51a839710e1d2fcff70f7dceeac7ac44a24fd42acb8c99cb1bb3c2023c 0011-ASoC-rockchip-Fix-doubling-of-playback-speed-after-s.patch -f0b43b03a918c66f96d6d2987762eefdd4c5a11f4252a0b977532a17a0d7a24498b10511a059dcb07f7e572cb3864599a31c1fc3ca7505727cf1e08b64a9d614 0012-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch -1bf5e2cef1ecf4d470b6ef0159fce095eee239f4c296c6bbbc14edf510fb9a20b0048ac537876c91e2cc4c0318572c2eaa727ac5ddacf3dbddea2bf0202043e0 0013-thermal-rockchip-Add-support-for-RV1106-SoC.patch -7b0e3cb86ebe501fcf82433c2cc046720f311cdeb423d3191fb472f54501e99eafecaf5da338698453e0feb6c00ed29257ecf1a5765290911d47d77467875f43 0014-soc-rockchip-Add-support-for-power-monitoring-driver.patch -67c5119ae325a9e328e5d9e92690f575d2cfd5c46304c65a4c7966330800fadd7a314fe57ba76c29970ed9afbfebbdf676e95b1a7f3a8b4328ba2dba87d7f2e3 0015-rtc-rockchip-Add-support-for-RTC-present-in-RV1106-S.patch -a9a8aa2da2f503d86681e4b61606db6bfac4622030f05ea081f4d75b05edfcf4794a3a7575de4c1c9a5025aa3f25be6fa348418f97d06c0bed88843fc2aca9c5 0016-thermal-rockchip-Add-support-for-RK3506.patch -96a56ce7aa57c8e1e04892dcf12c043143f6e0dc0affddeb4c565865358d8b51d84fb2e25ef58c9a07a684a8e43058f64dc206c1371b3b07d0e115444885469f 0017-mtd-spi-nor-gigadevice-Add-support-for-gd25lq128e.patch -c7dfed2e10fc2902647134ce09351c2567d04be3d190ecacd09f08130587311553d12831d1b0652b41eb949f0172308efaa65cda0ea0b53aeff92c007b805619 0018-clk-rk3399-Export-SCLK_CIF_OUT_SRC-to-device-tree.patch -1639b72d3552817018fb2811388d30c0c5f958ef0e14dd395962db0394bc8cdd8369d70ca494668cbad0a36e61df60cf508686ac06794639038dbc0d15382477 0019-clk-rockchip-rk3399-Don-t-allow-to-reparent-dclk_vop.patch -247a291979eafbccdfe85c99a569235f7fff860f037e2d47fd76312bb20277c0f0fa3e523be969f977657b602a88b846f2ddc058c243b64828bcca0315fe7386 0020-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch -888dbcd2af60be116391e9464b0915a2468fcb2661803f2df54e9df9b1d38c718eabaf704c0d9c6cbf96f73b115ed14bac0d2bbbb87617cf10181b357a2c719e 0021-mfd-rk8xx-Enable-rk808-clkout2-function.patch -73e2cadbfacb5c8e9547ca410efb6c11a9c87dc8239fd7096f2373d56a7697f19114c08811b8a01b1de5e199cbd20f9a78cc5c4e0db6830b79842a8eede9d079 0022-power-supply-rk818_battery-Add-battery-charger-drive.patch -6d7027d970a389213ef8a233c564df25e854f8635db2dbf4c14f7d29de51ad6d3d9ee61523513be71b382c2ee1d730bd32160b1809ed0dcbfec2c7b24c6547ad 0023-power-supply-rk818_battery-Add-code-docs-for-the-HW-.patch -b443aaa45d2bcb98b2b6c43577722fb718198f06baf126e2c1ea2d636a8874787a972c45d0bf83bdceb783920280a7cfeeb7e8d18b2b2634f685e974cc362e97 0024-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch -db34fb8ee7c4ba3baba480ccbe7df866fe7f5277a80739f7eeeadde80c1a4fa103df4f5995ba9660de725ece6aabeaefc302db39d50b6fa8c7fe3fdb212c6e26 0025-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch -98229ad878e1158c887c63c1cfe72b7ca7084bf6b42f092005ba1e327307c20e7c77246cb9258ad2f0813722a91e6023f45553230bff7d248c1923c1452a94c4 0026-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch -89edc9f8935f6905e37e18a554787cf5262624f4c5b9e4dfaa984022bdfb1e0293e95bf731f27ca7640f352167676924b720d9a6a09bded813c07fd152878f63 0027-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch -196080cfeee98682195153f0918edbd08b302e5bad5afc9860747b0b6b90159a133813e0b6940ffabf9a88be36088a680f647cd5b611083c9139ea123989783f 0028-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch -dc4d378cd114949ad51f47a8da7deb9cda63a75432f6f386086d41fa0ebe126657da270af89df84495c1777be7e5041274a780877b2ce6ca387e35aaaca7a46d 0029-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch -67049fa20660f5924cf06001ac9e55363f337e4cda084f79b828a9863627893c5a3f4d5cc809d613f60d792540eee579097b652bf49dfee8c9840892485beaad 0030-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch -3bf2d0ac9c737eb761461ab5eb5597c05ef8b368a69b9b0c48ae2b68e58da2d432cd9060fea80c2541b7f453c6fc93657ef94aa073a893b48a7407632d46820d 0031-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch -d9b11a9acbbb64668332e202c786457f370c7f9d2bdedf6144b434d992d067ada00ab027067da0a597277c726ccb7ae68d49580848a95ea88775f0a6837586f7 0032-usb-typec-fusb302-Add-OF-extcon-support.patch -4946338c55952347050ac2c3cb814ce778b8c9933a1974ed093daf82e8234b0a2d8ccb808c9beb29451d41c80a6cc03917a9d1a2a72a374a47374d20d3ca460f 0033-usb-typec-fusb302-Fix-register-definitions.patch -f72b87321bb0ff45e58e729587d6edf97604f1cbf3b5c82e9b26289096f752b0725e800a22525ab662f378eca2637463e3ceb7e213b86f6f5293705dd509d119 0034-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch -4ae24e87a3b514a8fbb41cf47d5d00292bc399ed8fd1299ef4dc4990c31143c5c6d3fbc6c6480089c492b3988f743a86b30420c91a1d551968a3758ea9538b03 0035-usb-typec-fusb302-Turn-off-VBUS-and-VCONN-on-shutdow.patch -065427abc79c435762e25a40cc13b35a14feeca318f767d0384970cf57e7c785c796923bd891746edd0497079941313b0b7839c7988f63e243c8166a0c8f3579 0036-phy-rockchip-inno-usb2-Add-support-for-RV1106-RV1103.patch -9115fe459431dac6558d60f9e6ebab1fef726413c8a3bdb88b21e402f2b1ccd0c485ce65aa9feaca948b2ef88bff6ea38973c761bac0f7dccb7b019938c37ae5 0037-phy-rockchip-inno-usb2-Add-support-for-RK3506.patch -2abd784fd1a6abe3ca5da3919f7a9b7617379d06340cc9549dbf3dee2dcf095fb5aa3735d08e93f4363247667ba14d9f6c96e414afa965b65e12fd00af08bd48 0038-phy-rockchip-inno-usb2-Add-PHY-tuning-for-rk3566-rk3.patch -60656a8bdf90e92661d5d2b69aad78489955e5a82edbee67b385a3285bbb59d59c615e47ad83f993ed3c5b4ee6f39958e5199492d41cf652e333473d27136855 0039-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch -a941594dd09c6468c6b89ba56f8ba127aedc15228904667f521cfbf9d25dafac8dc8e8ecddea3c86af2a1305d2fb40035f85bf3b559a5574bad3e0362649f290 0040-phy-rockchip-inno-usb2-Decrease-delay-between-port-i.patch -b0093aec9b85ef54400585c23b9a1cc2b31598c847cb998ae03f277eaa81a0cdf8c979ac7b8d581b4dff7bd70c601d812eb6ef7bff543fbc00f5ba9436cea748 0041-phy-rockchip-inno-usb2-More-robust-charger-detection.patch -32e6b984e14996387c232ac0ac708d7eaf75d1fc6de3ec5df53a110368be270177cd02253523c66163f6d0c227b0b6a18d171411d76c2757bbe4dd13facb8920 0042-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch -7b4ce3f693b3d1731693c79fdf114de0c67b5a74406b3b46b1bd133babb6e5a20c3e2466feb33239dfc9dd08f9db68fc018c8a80a1115dfd2fd8812b7da017fa 0043-usb-dwc3-Always-disable-SUSPHY-when-entering-a-role.patch -302dad47110479739cb5348c938ad9c9c3b41d0ce46c45ee49211cf71578ca2342edaea664b52d3855fd5a7e8ae7fd850d80bd080a43423c349254e47ff79b11 0044-usb-dwc3-Track-cable-connection-state-separately-fro.patch -e08557f8efe8f730d358f247771d32d3001ea3337db950f3a785b632be8098044933276f2b1a5b376270b88bb21345c056ccb818b74e59b93fb291d062edc85c 0045-usb-dwc3-Power-cycle-USB3-PHY-on-role-connection-cha.patch -107bdb8b4d289306b8f4be1f7088a44a239e8e66cc286d9108f14281d7bb64a5defb54909ec9a356b7bf60aa83152e5c9ac9c5aa8f872a69cf201a5b9c8cff69 0046-usb-dwc3-Register-the-role-even-when-no-cable-is-con.patch -46a8452081223bdf5864c86f50e070a796b7d495b77ad861804e862d2659df29f9c17130bc9ff438b5c9a8cb8df4c3c55191eecb339c5691ad6d9c341c1d6293 0047-phy-rockchip-inno-usb2-Set-up-charger-detection-mode.patch -ec262e3094fe7edac553d8b29662182ca9b617bba266c1e959b04fea1c358dc26be123cb0e5e286e08aac5210f8ba26172230bc9508b8685a293d0349276dc6a 0048-usb-dwc3-Do-not-re-register-the-gadget-on-cable-even.patch -3561f087e06bb61eb1f3c10250120bf747e879aa7aebe039f148d20a8960c9b545f90a882960bc91a4eda593092dcf36de34e81074ed2ccbadb37a9cc2c04731 0049-phy-rockchip-typec-Support-a-Type-C-orientation-swit.patch -cf24ee439036f001d66a6c9c8662f8cafcb0e3b068269782de00b8a1fb14a58b39b66a17078bc0d9c22c8e76093633aeae553c3c05aec803e08b96a40134a3f6 0050-phy-rockchip-typec-Support-a-Type-C-mode-mux.patch -5d659877cb2fd5f099eac102ef2f6da7975215bfbf52b8790999cb11a8be06f37c7c87d26e6fa1c38d6c803e6988913bfb91b41948585fca1d3513d2471d0c77 0051-phy-rockchip-typec-Publish-the-DP-lane-count.patch -76d1b5efc343564f7dde1dbcb8f46a564879395aa12b3b6aa21aaf1ea018ee14c5c2a0dea6cb13d5609a716b623bf008aa11e29021363a57dc33fdf762f6fd43 0052-drm-rockchip-cdn-dp-Support-ports-driven-by-a-Type-C.patch -b6f71b575b69b5a44892bfd51253fff8e422d701d95e1b4cf318b1263ed3227a7e861f181458f37af933e26d3756e985646e2b9f9cec654ce0ac419f822d8a04 0053-phy-rockchip-inno-usb2-Learn-the-host-role-from-phy_.patch -cfedc21450d5ac15411f0703179f312dcf1a7d179d8983a269b69e06b2c07d1292abbb9a741caf7e18d091bac47d87bd0be5382a1b0077136ee67e4fa8e25b0e 0054-usb-dwc3-Tell-the-UDC-core-when-there-is-no-cable.patch -c79dc3ff0ad97514df04bb295f1a33d022c3200b02c21162a2cd9c1da453c935be3d49486904741968dfffda18ff7c273b783eac3ccab875ca99964c07b4eacc 0055-phy-rockchip-inno-usb2-Do-not-run-charger-detection-.patch -56f43f4f6448506d7ddce07b5cb0bcfa8a82fd799da17c7be0c9cec0d7194035455b9850a9637ad1226f80fa01b6a6834c33e3bc50da855e5121160eda806a44 0056-usb-dwc3-Set-the-PHY-mode-before-starting-the-host.patch -86a7b1e9f59e1532c985d3a4a1edd196e4ab47b3047627306e9e7fe122bf3f7fa6a2049f9467d30a221c3d65277600e91d71e9fa295c388117b379456adc2970 0057-usb-dwc3-Do-not-connect-the-gadget-while-no-cable-is.patch -9e5ad8a5f08e6419f6bd25162fe4e542b2cc33890ef761e35fac4fb324f10d5df96fe0f5be3458ee636dd57f05f90ced31d01c084a3580beed7c1c71573f7b23 0058-phy-rockchip-inno-usb2-Power-the-PHY-up-before-the-h.patch -2c6d05ddb458189aedb70f8ba6036fadc942f1b2634003c2f2325625a8a1a4afa933c927d893b4fdac406b593cbeb321320be6f835ca7cb0268448738f850ffc 0059-usb-dwc3-Require-MPS-aligned-OUT-buffers.patch -d40ca07d6379fedd78858097c4e57fea2a52a24254be0a534874c641d1e9ed5e1ee96755420fd45bea1ec538b0340f326712230d5fb1377a07521c8c6c93debf 0060-usb-typec-displayport-Update-the-mux-before-signalli.patch -36a5a4ca60c45161e7913edde968d87884d6c552d6f0bc119a9b6ff3c0d0d3e750410df4cd891c0233f56c3a5b80ef7a7aadb34ec4936dce1f399301fa993001 0061-arm64-dts-rockchip-rk3399-Disable-debug-nodes.patch -15998054b6521020e4895c2024ce2ad9db3650220ee0d3eb693fa44c72086520eefa592c824b015d514b593ca7ded1d3c5b6e1f7146b1133598cae13b4994c62 0062-arm64-dts-rockchip-rk3399-Add-reboot-mode-driver.patch -60904d0dd44dd3740991dcdfb752d7d78470a9814414d407e7ca2de0d4061716deb1c70e08ae1937684e05f5ef6ba4fe57fbcdea69374053906ee3753d11fc63 0063-arm64-dts-rockchip-rk3399-Power-cycle-the-USB3-PHY-o.patch -dff55b92a62499fe5c46d68debeac92213038058b8fd19652b4ae7cc5980205bdb560e568cba4c8109ae298fceeb79c7815f0f405501c8fbccdb759d828bd5f5 0064-arm64-dts-rockchip-rk3399-Add-dmc_opp_table.patch -9f8b94efc2d5c0a6602122731e70a29f8439d2b4861211da189cdb845f707530bd7c73956ad85c94aeb94ec8b62918f8f6b17687b84470087580b3a15c4a5a55 0065-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch -9ea12b3c4ccc408cb07116da003186ac2060cece7c4847f55489c6fd0cae6035a2555eebf0bbbb54d674d44fc5db0e1bbe1a2ded48dc5ec2a6a3df4c2e2ca185 0066-arm64-dts-rockchip-rk3399-Number-the-CDN-DP-ports.patch -1ecce40405e69b9fec96d1535622ca71ccb5fc76753b459c9e321c7903178623ddc31f5527ca1949b071d47ce1f73dbce74dea8059bc1b683d253f83d9130c80 0067-arm64-dts-rockchip-rk3399-pinephone-pro-Add-Type-C-p.patch -2f1dcbe2f0538cdc4c01aa2992afc1f26d1599e1505780b286c1e645a81be5ed1f44288bf5024c2e3178e2f438f38b7220c76f1fce842548cdcec37728d18b9f 0068-arm64-dts-rockchip-rk3399-pinephone-pro-Add-internal.patch -479cfb8e65ccd95d656ff0fe212aa31cfdd7f3e298d612da27063dcff7e62324210b627e7ab210a273142d3f15384b5f2cadfb1983f3864145355421f99f0957 0069-arm64-dts-rockchip-rk3399-pinephone-pro-Add-battery-.patch -bdf826beedcfe769acd7475f7a30c3adc8225fa103dd1e37c5a31d750fea3044b077f4903986c0ee3d3102e79948f4375bed7a674498e4c21b34b3ba44e54ba1 0070-arm64-dts-rockchip-rk3399-pinephone-pro-Add-sound-su.patch -443688c9b00de95b9bd23fbc08741ef488c849211151f7f8bae136149e0f0aa562d2353875120333e2e7f3e187abfd0bebdc1b2b006d725d33d638e0e20496f6 0071-arm64-dts-rockchip-rk3399-pinephone-pro-Add-modem-su.patch -eb66518e6876badf3ef3bc766328ff621031194dc067ecea5a0ed629702c08cd5f964d3c25c2a1aae9fc5b13615f212c7150ea0c2afe33b0427a1554a6bd4029 0072-arm64-dts-rockchip-rk3399-pinephone-pro-Change-modem.patch -70f83b6210e991b546c70c594e8d6f28ebc557c301acf1ef9f0d1df625dd709f3744ae1738865626ae7ca5b6ce9682bfbc052766bb6989d67b261abd6606ce85 0073-arm64-dts-rockchip-rk3399-pinephone-pro-Add-light-pr.patch -077deb29bf5182a0f1689bc7e6da41f553cc7a2c8a2ef96a2b111f9d5e9e2ba8f26d3228af20f79d15f45c0a69aa8f60733a422fad1895700a299a8aad7d1e51 0074-arm64-dts-rockchip-rk3399-pinephone-pro-Add-I2C-supp.patch -fbb3e8fa505f8a97d512834dd75b849cad5aed4d357dbbe2904d9b435bb8f19c3863ef7417c4ef4afeefc224bd4ad6eab74f4bc00ac66b69aaccb001c29fba71 0075-arm64-dts-rockchip-rk3399-pinephone-pro-Add-magnetom.patch -2d79639df7928f464217e71e4219a40fa082e36bb410b3d1fa12bb1ab6246199c4976fba84fa32e621939c0c37b08929d2be7380756aec40b8bcaff91298e81d 0076-arm64-dts-rockchip-rk3399-pinephone-pro-Add-mount-ma.patch -e1e1fc09232f21c69b8a2613d3da6063d669f8f97a340954702e7227214f1a6c4adc866420618cd365753767a0da93e52ac40c3575e5beac9dc778c93895b622 0077-arm64-dts-rockchip-rk3399-pinephone-pro-Enable-POGO-.patch -ac1e93b71deb4cf8a070c3380061b46e1e1cea094346d02d5f8ed326d3f0e5316ca4ebdae7677ceea3d4456a580542f0075d29df50d1a37d8817392e59e5d380 0078-arm64-dts-rockchip-rk3399-pinephone-pro-Add-pinephon.patch -8a160ffa6e95afbf58608f030c3ca3a7d7de298f7a20ce8e298eba54576a7f99ffff6389e36a4dc5d8bb1110e112c72e0718e4d8e88fe4049019119ba0c1a8fa 0079-arm64-dts-rockchip-rk3399-pinephone-pro-Switch-LED-b.patch -5308f80bd8fdaa3d76f26bd278f2d027689b5e75a8d0e6a00e13b6c056bdd1b30875105e2afbe4daa47f282ab3312df3747e74368601f745b394f2f5874d018a 0080-arm64-dts-rockchip-rk3399-pinephone-pro-Pre-configur.patch -9f61f0602d232c583ec1e447037e8f69eb89fae674e8e1cf65a187d224bc3eeb5da7ce209045c2a48508d9202b355a3ad001ed9ed365b0afdf5cf7e6b98822d3 0081-arm64-dts-rockchip-rk3399-pinephone-pro-Improve-SPI-.patch -04c6e3f63e897d044945cf05f7a15c3d99ec0889f3518691738e84ffa115532b70215695e9e7c1b6b6c3483b872ed676cefd9cebdcf18f0e83db3d5207045813 0082-arm64-dts-rockchip-rk3399-pinephone-pro-Assign-power.patch -2baa9dc87a0f7d9f60e0f0429c83943dab6edc25e963fe70d5bf322e713217ce8285691ebbc7b6f73fd3d48a0fd36c8053f819af904753898b27cf12e8e1df54 0083-arm64-dts-rockchip-rk3399-pinephone-pro-Add-camera-f.patch -e820d9169b6854832d1a29d0c1925732155afe08e72aa865a6804ee67359137cdcbd967acee41913ef36ff1acae02346c4a5f8b07337ab4f9d56ae45b75b56f3 0084-arm64-dts-rockchip-rk3399-pinephone-pro-Disable-inte.patch -79ac34ea9e3f4e74809c5f30bc90c511a3bf02ed9c00475db2adb0b009c5609b00f14dedccafb0f9f2dea136332df8416b78920807df100faa2ce937484871d3 0001-arm64-dts-rk3399-pinephone-pro-Keep-modem-regulators.patch -e2555390d48cbbdc32a7d3f0c27599ff88f2fe3e786d1d0086caaa5b092cc3edcb6e95e2fb07034edb3793f6dc954da0662c723202eb7e2c4956c99b50919b12 BTF-seg-fault.patch +47e63679363261a864d271277340a6f2d45f544e1a056be4159df081f4f6537d0efa865c4af26611ab33a3079ee65db88ec2f6bc0e5fff43e0c043cde0cd91e1 linux-7.2.tar.xz +7701172077521d6b6a24236f928e40a5d331d8707bb8e2deda67b7a50a084889d8cecc64d6483f0a0f44d273701a0ef7c9dac79c99057a98cb8a40699f5139e4 config-pine64-pinephonepro.aarch64 +3fe0328eb432feb77448edae85aa4949ee320f1cfcd058a76208fffaf1ef50ac7093e4bb9447862e90827a5e4da39fa1dbab510e59f7dd9eb22bad534b6445d5 0001-media-imx258-Add-i2c-supply.patch +f942fccb5ecff5a14ac3c865bac42bf0185155bddd2d9d27c52fe9f68fd190ccde46787260cb2daf45a9b293dd4e4749847766e50e24bd928e1ea8254db32ea4 0002-media-imx258-Add-reset-gpio.patch +b4fc06c4a6cf2283a010e56603264667f46865b2e5347444ab89698ba679934bcd48de6aba8a8a292032c2b6f45cacb88e114dcabf1ffcbc5d1b443f887fec80 0003-media-imx258-Drop-interface-speed-to-1224-mbps.patch +1588865230dbd18c04bfe48ff9bf35e363450bb09744fc743ea5311930d8f9f6e8636f46cff093b48324378dfd665bdfc32164cccbc28caa484c23a3dbdce89f 0004-media-imx258-Add-debug-register-access.patch +32772ab8e99a122ba67b86051db89828529fc8810e5a60617e118e0703b3bda3f8d6169faa1969365c927a86c05f7aacd1d620011cb1602fb324f11a98ecb6d7 0005-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch +76f84a028a7c187ff2c67f9717f623b919e4186d1873577685ce893acfa44a15e76166e0aa064aa64e6bfb2a1cc113f9d9cb1593f4c0653f0867dff70389bb1e 0006-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch +17592c499001aaad022e9c0a5d1d02a5d05846c13b7355e3fd739d2d558339170ea9ae18ba2cb5f2faa8e1a41fad7ee720ea32310835d1065c1d5927eaaf8524 0007-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch +7efe0881006074a1ebac5f1d66293533910d61b2ca6256a0f47508eddf58c5d2e96f7247cd28c79d3c89cee31a44e88d7d27bb4a230559dcfaea299e2fff4dfb 0008-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch +f395aaced4628ab99dc8fec856313e06a7ebcbef34a9e40dfe429f5e7aaf3464c8f80ac0e9baa305f6862757e4218b3a4534f60f25008d727e29cfac41298227 0009-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch +d9c407f0048bd54ba934c77b9ef575c30a24e9a8fe851bffe1c50b04117179099a78510d477feb9714adafa0240670ae90fe6b32e146eea4a02a794465094d3e 0010-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch +8f1b5efd339111608e9fea65dedd6dffdf6afabfab77019ef1b75316de93d41f548c9508f510af9d10639af389d7085e37e766c8fb8b6fd6dcd73b0484f53bf6 0011-ASoC-rockchip-Fix-doubling-of-playback-speed-after-s.patch +6f63cb3667f7e7020d891ce96b9452411df597d6996a56c7c7886897b8a5c665e687360566ea746042b5d72485e1895d448718f532411e5d6ba044c702bcd891 0012-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch +ed02ada1831ec75cb9b101ee64ff4485c1c47bb7f13f754cc719d061597a34eac3eaa7eb3b702d6a4f3193aca883f37a49af086d2f11faa90470e45ad99f5e99 0013-mfd-rk8xx-Enable-rk808-clkout2-function.patch +bcded2851702019ea404dbd95d195d263d8cbaf5c1247b22c4c715361154de3aed4e85a23aef788026e7a2e2f889c4610ff27df7a42e66b753ac1313ae6dca44 0014-power-supply-rk818_battery-Add-battery-charger-drive.patch +32708ed0686ed931533b13ee2be025342c836bf7e4bf307c6f28cb9de8ca5fd009f173cecdfc600780b932a0bbd9d8e1d3e0c26474b6632098ed254165fb5d1a 0015-power-supply-rk818_battery-Add-code-docs-for-the-HW-.patch +e866a65c244d808336ece21cd2a6413b2a1cdaf86dd3958f4e3436f4317d27a320eceb4581c1e647f7bbacdd9adde4cf20c9496680cb9c28bef6c27f10a36469 0016-power-supply-rk818_battery-Don-t-override-configured.patch +434f83be2ba7ebe6909ab86c17444ee4d9319d78f651f3d17db02e0897e22c22b951f58da4ca8f5ce8072829733872bf6b016defe7396a39adc294ab017d8e0c 0017-power-supply-rk818_battery-Scale-charge-current-by-t.patch +be87ad56d477dec0cc27225365f27a5979022e28d56344af5bd69b4fd85723d9c4957318ad3df7c9a94df005cef9b00e5f85525f3a69d1366c6a280db1e2a9ee 0018-power-supply-rk818_battery-Scale-termination-current.patch +7d17f8c3e9d723ce3c1aed85e11ea9d6fdf4790d7f2561802a25a09075be0c98fa9b558f3699c11bae1b86950b1a3b906e964b7d5629529ecf3a3e9b7f117b36 0019-power-supply-rk818_battery-Compensate-for-IR-drop-wh.patch +9dc69c829df77ddc880b0f614e4af9813cfbf00ab9e993e9b2d7b39e8c7616c9c3c73defa8cdd6af8d4a98faf4d912c302c576c48df629b52730b0ecb515c61a 0020-power-supply-rk818_battery-Rework-the-low-voltage-mo.patch +468fb121e18217e9cb3fe9b69087fd4c0369b7efca84bcefdf8c43bff4bbe219dff5bbd798af42f0fab1d86dee897e9d99a40ee1b1046936c6bf4d07524d24eb 0021-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch +3f2d3ca099812693d68c0bff7ca4d2c6ee578f91e0503868563357570e5d5d865ccdb58f6968d2ff1950417ca6b5fee15904e783ffd481c8b6095d4a0fab28f2 0022-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch +60cc0fc8729687e949ddc3ebc6e28aa0f0f235e2702f964555955a48025b7ea40db591535a6462463ed2d1e38aad1ebe205572d376170bb38ecaa42c787739a3 0023-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch +899f1dd1d0819c98308325068c5b99d83affa5bf908ef4aa06ebaa899b06d2c369c2ce9e743226b4f3233562b7531fca55c5741248cc42b220a55362f558ff5d 0024-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch +193a4772ba9be00759c4a80eece4f6c36b69c2b121510ff6b447350e9880db23e790eb5f0d32b9d8660e4a7f49cb0053baade112ea785c5979372f9f25abe785 0025-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch +1b332f698982ff1b336470c158efffb7a62f9cabfbc0f0b761d6813e0da85542182374debb1c6e3ddc68cf496005f9f8005b9fd42125a81e0f0dac8a20b91194 0026-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch +d2599774ef0b9f2894389c7d07c6889687ef6b9759df8a48b2dd7627c7717cc66c1a6363702b0598096241b8e08877aa16b9e9088406155f396e1b9099d88024 0027-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch +6fe4c393bb0b0a92785de0fc3c5e3ce42dabf5f196725b3ae186561a128dfdbaa3495ca41fdf7bc7651bedd726ca33681c556924984e4870c9d89c204a2886fb 0028-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch +8dd5f542c230a7797f4a9d7fda9474f5e351c2f23b2a88b3564bf52e793d9b851bd26793ef6c9343c883c0a4ccbf3f34add25e74044e18d9e8c0a14adeb10088 0029-usb-typec-fusb302-Add-OF-extcon-support.patch +926dd676a37188b5b7d255264521bacc3f025e038b78d375ec3701ff990686b3fb5aa3f63fcb32caffa2389d92abfc71eda4161b579239f2d67a0c08aa10f65e 0030-usb-typec-fusb302-Fix-register-definitions.patch +a674f636e9e10d605e4aa3a13e9f90560bfb4adc47aa3e80929bdc00b1d739bfd562fa6e2c079f1cc6462e07eb0c703ce7b8c68957a875031dba6453c5f15b1e 0031-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch +7b8b64e1e84901f2694e83bb06ae90a55961c0963d6381bed6ebf965a9875a4030d762e93fe6ab34ec49e5c2079fdb58fa548743e57e935c7cefaacef4bbdf7f 0032-usb-typec-fusb302-Turn-off-VBUS-and-VCONN-on-shutdow.patch +80dad32d76fb6d2305a9ac4ee854064bf30c25eb246f82363c95713059d89101dea3b93850502a48942f37ec2ecddec7c1e6509eed4b72875363a434b0489ac2 0033-thermal-rockchip-Add-support-for-RV1106-SoC.patch +02400da9ab40ca90754b587939751a13e2ece25639ab909a2a4715bef8333ec954b7828d945f396549d63dfd3c8a2403fb9d69be049ef0d272d1652b915e81d5 0034-soc-rockchip-Add-support-for-power-monitoring-driver.patch +5c8a7e6e365d90b834895afe267e44f49d050662eb0d415a18f364e4c78f5ac77dcbb1f5fcf82b0b77ba85d924db29df5702445c4468f26606f66e8174fd1532 0035-rtc-rockchip-Add-support-for-RTC-present-in-RV1106-S.patch +7b074cfab6c0f5d75dd484f61083413581e47ca56aa62aa3b19fce057960ab98fcd7a8cb997d41f6cc9b889f141c2fe55de8810e404998ab5704d07ea0147722 0036-thermal-rockchip-Add-support-for-RK3506.patch +a291b35fca5fb4ebfec0a84f0a9765b5108fa2e24b6f59cdf47225fa0bccab7572f7a2b8dabeae9769818bca5e07a019fef9711c07efa0c62490f758e3b0ebdf 0037-arm64-dts-rockchip-rk3399-Disable-debug-nodes.patch +3f8b4f3e1edf582b5e79eb4bea005066c4786c1d556138785361d619fe594b819aa645b90fb15e89cc411abc23566e94973267d1587d873373531eceab3171ce 0038-arm64-dts-rockchip-rk3399-Add-reboot-mode-driver.patch +b4a7bf3c237271bda2c4fad8b0ea15a400d8a2644df9461c9a6eb0b92f22f609a7ae573375549d22445c0962202e2615bed6169383a2cbca8aba7832fdb1cdf0 0039-arm64-dts-rockchip-rk3399-Power-cycle-the-USB3-PHY-o.patch +ae1ae498115fe4ed4dc8edd5e6b41198a79f6bbe8cc140034d5b64b50d184ccb61565ae911ca98005de232850f116bfd8813e720358196bb4bf3c19680893cb0 0040-arm64-dts-rockchip-rk3399-Add-dmc_opp_table.patch +9812081807ff593d9ed87440d9861466dbad983b983c5e507e74f23988cd18d4284d01b4331ae14e633903a5f7b2fccf5bf4f18d750c93a91dfde69b8f3f2aec 0041-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch +2ada12a15783b699c344a76975551fd2e6ee4f16eee8e95b5856f9ad4d906bf5dd86faa7b19ca2d0902f4ea6ede2f62f4e64b9b9206552016d371fd23152536b 0042-arm64-dts-rockchip-rk3399-Number-the-CDN-DP-ports.patch +a38a87f416e163fa27ed9000b9a95765cb5992234983ae90ddba64b1af3d354dea9a78b585a2f9ee7f0b75ed073cbfdf17a4fd496cb8e8249ffb896a37bb0b40 0043-arm64-dts-rockchip-rk3399-pinephone-pro-Add-Type-C-p.patch +b8ac6e5961ec78ed892056340403e031a0e167bdbec4bf5db4f722549d56f15cc5c23b5641519040d8e10fdbc6df2ca4a75fae178cd6feeddc5d535d5f6ee2d1 0044-arm64-dts-rockchip-rk3399-pinephone-pro-Add-internal.patch +189fb869641550ab4309c9835ef2af7569870746a1cf56420b5fbb608477abd5465ebe934be51eb0ac1049eb8199dbcb593f1f4caad7698404e02ca8b5e94a1c 0045-arm64-dts-rockchip-rk3399-pinephone-pro-Add-battery-.patch +d6021113bd4bed4a00865c1099cddaa9586cae3c8c84113ee81b4aecda1e912715068fd56b7b965c586255064961600c5d161ada28409e0b123de540d0956068 0046-arm64-dts-rockchip-rk3399-pinephone-pro-Add-sound-su.patch +56b301d897dee4176409fe41481ae387472c0aa808554c1bf90c8279a347f29305b96f893260a2d903548dee98711eb6e7067249eab1ec4bddba88bdf3c348c1 0047-arm64-dts-rockchip-rk3399-pinephone-pro-Add-modem-su.patch +be7bda6914c8bbdb58443de468b1e4128862262bc4753a34f4687806adb32f4c5fc87f00d724ae3f7c0c38762ff5a4bc1c6c8ed452897941ffdfead69bead8eb 0048-arm64-dts-rockchip-rk3399-pinephone-pro-Change-modem.patch +ab5f0126715a47c135986f708ade3238331022ff606a338f88a42cd1d0a693980e6ccbe4f8ef8252319eb019294798fe8d8bafa7c77d6355521fcf004ba4a17d 0049-arm64-dts-rockchip-rk3399-pinephone-pro-Add-light-pr.patch +13f40e2875d03d92edbb8f94505a47e01554880ee79c420d6ea153e0dd7822df3694b65ce5c7a0f1c388ea7446526c3ca35dff00da2ac68c1a81514fbbf2b612 0050-arm64-dts-rockchip-rk3399-pinephone-pro-Add-I2C-supp.patch +095439b9ab1f805e45322c1f463d7a41fe781d8a62b042b6c84ebde02a36f4900503072050297f0787a150fcbd157a346223e8c940f1f22254b9b8fbe3271f4d 0051-arm64-dts-rockchip-rk3399-pinephone-pro-Add-magnetom.patch +d8f731cb20ab7a347e9ffc4f7909aad6ad756d05ce2c688fe9e20329b65abe3a182a068b847fb3187aa1a949544bb5257323bcfb9248f83fe612b78c44b59e91 0052-arm64-dts-rockchip-rk3399-pinephone-pro-Add-mount-ma.patch +f347e58dc151abc59ac26fbbca6b3caa4a897ee92e1b82edb856929db3fa4dc0dd82d368b7ace4982d89ad53219e54882e5d4b5746c6b3b42562277f1f2e73bd 0053-arm64-dts-rockchip-rk3399-pinephone-pro-Enable-POGO-.patch +3fadc742a0594d3369bd45da603deecbc5394875252cb2797e7b1a22a3b8d1dda70920c373e9978be5fa1784ff13e4dac6070594ff3bf5998fee4e46a874a822 0054-arm64-dts-rockchip-rk3399-pinephone-pro-Add-pinephon.patch +e63ba310ec1863024f79a24aefd38cf8f7c30fea533178623c6e5579ce44ab43895e2a7c3232ef4c5825fbcbc3b2cd3e642f87f8cdd8d52a5238643fabecf4bb 0055-arm64-dts-rockchip-rk3399-pinephone-pro-Switch-LED-b.patch +7071c783e266e36af1453ce8aa09c730b7205bd39ca13f5911d99cae71cbcd9bc10115529b606cbb75948bbf4859f53f497506248466641163fb8dec95b557c7 0056-arm64-dts-rockchip-rk3399-pinephone-pro-Pre-configur.patch +4b7db966c15ece79b681881b33672d43eda2b0996e598f5e25ff5bb7a8220c7f1b33b974cff8b93d71f0aceede40213f9552fc818320c90f19b2608fe8fb2397 0057-arm64-dts-rockchip-rk3399-pinephone-pro-Improve-SPI-.patch +0e3c2334702b9169e752a64f772c18e50ae4d6f6051ba4db20d9a612fca628b3823742480718aa57ca6ac07d4f0e568eab317805fffc45a4f53d6e7c47c2adfe 0058-arm64-dts-rockchip-rk3399-pinephone-pro-Assign-power.patch +f912985de8af6b874ef2de29902d109912fc884e7c3c2d5247d47701f92de9a39a2ecdb211138abe0e4f7d2b12cf8c28cc022d452ad546182fd14310480c3f6f 0059-arm64-dts-rockchip-rk3399-pinephone-pro-Add-camera-f.patch +ae643c26564a1fda4c5961cb755b05be54e8d04926647ec79fa0bb15923f67a4b60c7f52172e01f1263f4b985b13f05409faa42bf4597c3ce25f0cf585912347 0060-arm64-dts-rockchip-rk3399-pinephone-pro-Disable-inte.patch +62214be563115225467f6129e845b75ba9775413f405df15d290acb81de6184eb206c72486286440a4ee3f7c921339670bb421405b9cde1b273e81076bb037b6 0061-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch +2ffebbf8a957a526e69f20483d73c4df69a7c7e75913e49d1969288cfc3e00f44ac07ad4157368acb4de9a56dc04f592bc93e4417203ec3b1fee7421f158c551 0062-phy-rockchip-inno-usb2-Add-support-for-RV1106-RV1103.patch +ebc3f59f96caeab8f6dbf2356b96c5693af4caa906208d578bb18cb64f89b47c91a10be6b59825168014a2ab67b88a7864cb33713b083068e2751f36c51b1c42 0063-phy-rockchip-inno-usb2-Add-support-for-RK3506.patch +01daf6dfbb680b2a30fb1309da6adda06b810458513381b934c6d5fe1e179431b1fa985605a4b37eed33a359f6ea1827008d6489d18bf3b882fb0767f367d2b1 0064-phy-rockchip-inno-usb2-Add-PHY-tuning-for-rk3566-rk3.patch +a8e02a2528690ce0dabe5be811dba32b055c38da4656585a9879a1f33cdaff21b3e1315b39ca34d4148a63b43e502eff2e662c8d09db68e43c0bdd565be2b43c 0065-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch +92d64283d01c6709daecfaec8feac868d81a6e767bea3403d214192a3427ac7284cd9803571fb8ea7bc3bcea6d951fc2a6ed2a3ec50e54048990f468aee854a9 0066-phy-rockchip-inno-usb2-Decrease-delay-between-port-i.patch +3e3a8d983041efef81f687ebf92cb7a78bb52a67a949136387c91bbb6fb24cf382b3c439cfee019ad3d928e960ea736e10201084b303b9c1ac56b18129c77a0c 0067-phy-rockchip-inno-usb2-More-robust-charger-detection.patch +3155debeef4bd6357f6242cb371a62d23308b23028204a9767808c5efaf154b01e8af8804b8dd9699e19bdee8c6de5fff29351eaf58df82d1c4d103ca2bf0859 0068-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch +d61032c6cbe14a01e484feb77e969f1ce349a0be7657f26f8913087c94d755b090ee92a92a405bf320dedc399bcb0c30de5f380c8d3216d73995684a14ea44f6 0069-usb-dwc3-Always-disable-SUSPHY-when-entering-a-role.patch +b84f8d93efb309395e75d0cc92a30856ab296d1026be948b4336a3f972d245f10e5a8724b17f84655ee79e2b81228c201a67bfd2e502512cbd3288f4ff803b4d 0070-usb-dwc3-Track-cable-connection-state-separately-fro.patch +dfa0f68e8ccfef720908ae1980bcf7c9d20de2642b6fb35cb644cd340e491596d84e5084f4610420c94f6cec625892d28965d0bdf0cbf537c666b03e7caeb199 0071-usb-dwc3-Power-cycle-USB3-PHY-on-role-connection-cha.patch +31edf0fa5982c27fea77b90233a3952ff8e47ba12eee1ad0947c6f5cc0197e326d31ca7474aed7908e087a4e6ecabc0f06ba95f35985e2a6e3fc2a01c2bf9992 0072-usb-dwc3-Register-the-role-even-when-no-cable-is-con.patch +770720d8123862ffa2c574256566ef1576d5f103b58ab3239c7d2837d7e6dac8671a9813ccbde86ff66009e1f7dcec60c898125e9da63add3f12098990f3a6b9 0073-phy-rockchip-inno-usb2-Set-up-charger-detection-mode.patch +ab95b686403023563a99deef3f11bb8749dee2981b2333cdcc771f78504682e427b5471344e1c0e69643d8fda93e64d5cfdc229d3564a55400d244bfdf9f6ec2 0074-usb-dwc3-Do-not-re-register-the-gadget-on-cable-even.patch +d33ee67d8340e7883e147f36579c7b62fc70729430d078a79bad763c9a14f4dad566b6c57691846c1de5423c2c20980f4b2c0defe2549c0511f490d2b1c4354e 0075-phy-rockchip-typec-Support-a-Type-C-orientation-swit.patch +ec191971aa105c29259f21f4eff218443652ad43da4b41d09b7341121335ea65f0c2da7fcd5f6f3f2a97d8fe1dd6a8d0e59112dd75ffb5dae466eee0a6cff9ac 0076-phy-rockchip-typec-Support-a-Type-C-mode-mux.patch +180c1ba0fe432ddc6897b127400db1577c4abec8088a16f91d18c1445b582fc0f049ec9359373d7b7f3901b44c1c0976634184261d17f590ef618a865ed88603 0077-phy-rockchip-typec-Publish-the-DP-lane-count.patch +bd5746a1a46800ad4f2c87b956d5679ab0c0a1921be543afec8dc329f64ca01f56f84e53b9162e0837e56c24099ca179c2fce8247f84ba7e1061a396390a0bff 0078-drm-rockchip-cdn-dp-Support-ports-driven-by-a-Type-C.patch +9bd1fe71e606528c679807b9be6df5406bf3762fe1d8f7cc8b648f06ebab8d1a7e774fd642aabd5016124780f3f6999ce04b5d63b897311b04404f11040b7957 0079-phy-rockchip-inno-usb2-Learn-the-host-role-from-phy_.patch +0215e3c74d92868902522adb131a107b31bac794b1aeec2851d730102cac60f835daaad4eec466d06c0f7a6883d42bf30a410f8e3e4a46bf68c74060b424a034 0080-usb-dwc3-Tell-the-UDC-core-when-there-is-no-cable.patch +01b2f9cf641d86a9a9bbb7ae08c3d852427330ac871e69cd091b817eedf95e2d41c7f3d79b3b9113fa703a1e9e3fb786e0d39b3239c2fae1e6621de9325de017 0081-phy-rockchip-inno-usb2-Do-not-run-charger-detection-.patch +95c8adcfdad1b3d0be2dc288e65354ad6b44ea60517b26ddc6b3f5146e9e8233f7bd82449af95b7c2a29c3532c9787d00f7a805aa04a9587ba1813425a58221f 0082-usb-dwc3-Set-the-PHY-mode-before-starting-the-host.patch +32452045d7c52fe0b19c2817777ff361f05c866e8282c500f9169fd76dbef363b0d2fdb9ea5c35031e808dc92cd9bda55e12d473e5383a1eda103a89dcfbe41d 0083-usb-dwc3-Do-not-connect-the-gadget-while-no-cable-is.patch +4ad1747e1f284a2ed17dfa77704e45e010bfc48645e09a338241cbe2d95732f16d69052bb58489f481388a06abf0030f033501be8e367f2b6f31fb8378aa164b 0084-phy-rockchip-inno-usb2-Power-the-PHY-up-before-the-h.patch +204f75e640d56deb76f0207d5fc7320236191b47d07d4f80676aa058a72d6f5643b5df8af825a8c3b14ee7852a6e0272d8fe9726c9beefaac7f285052a8bbe6c 0085-usb-dwc3-Require-MPS-aligned-OUT-buffers.patch +743c3b218c2463af359e5d5371b8db7cde7f4e520ce278168dbfda8afe1461329eb07f6680b5254cfded962359425217e97b3e31a1991c0b5b7edb20fd6c3231 0086-usb-typec-displayport-Update-the-mux-before-signalli.patch +b9c3e073e1f7c7dbcc5e71c4c2004d2f45b825026ec130b72e530a3a5faf3e243c8dbe169f3f9cbf4c9cf5d2f6955fbe8d406fec43ac94e0942d388a0bee2088 0087-mtd-spi-nor-gigadevice-Add-support-for-gd25lq128e.patch +452411c91daea100f66cc389d507a6774c31fd152e57ba9d73eec5e1a244ab989da6de6f159c412cf0c30fa8c7564854bd1cefdf9532b6398804ba1267fd217d 0088-clk-rk3399-Export-SCLK_CIF_OUT_SRC-to-device-tree.patch +10a63a4335e05993f9bc30e60e9fdf0423f613abbede63bee52b9677e936a84cc6036961d28af60d582541847d86ec1e662717222d16fdc1e3e46c634d9f8e44 0089-clk-rockchip-rk3399-Don-t-allow-to-reparent-dclk_vop.patch +a0953345a14bd46197c44dcba70a490da66afbe667e17be6c6b7c97f29d06360fd05a52a98e1467fef068c7bb688a5a45369f5ed9a63e34fd3cd63373c542ac8 0001-arm64-dts-rk3399-pinephone-pro-Keep-modem-regulators.patch " diff --git a/device/community/linux-pine64-pinephonepro/BTF-seg-fault.patch b/device/community/linux-pine64-pinephonepro/BTF-seg-fault.patch deleted file mode 100644 index 1fc18c672..000000000 --- a/device/community/linux-pine64-pinephonepro/BTF-seg-fault.patch +++ /dev/null @@ -1,161 +0,0 @@ -From b23705e6afb6ac4ae6d220dcb35975698667dd76 Mon Sep 17 00:00:00 2001 -From: Carlos Llamas -Date: Sat, 23 May 2026 16:27:21 +0000 -Subject: [PATCH] libbpf: Fix UAF in strset__add_str() - -strset_add_str_mem() might reallocate the strset data buffer in order to -accommodate the provided string 's'. However, if 's' points to a string -already present in the buffer, it becomes dangling after the realloc. -This leads to a use-after-free when attempting to memcpy() the string -into the new buffer. - -One scenario that triggers this problematic path is when resolve_btfids -attempts to patch kfunc prototypes using existing BTF parameter names: - - | resolve_btfids: function bpf_list_push_back_impl already exists in BTF - | Segmentation fault (core dumped) - -Compiling resolve_btfids with fsanitize=address generates a detailed -report of the UAF: - - | ================================================================= - | ERROR: AddressSanitizer: heap-use-after-free on address 0x7f4c4a500bd4 - | ==1507892==ERROR: AddressSanitizer: heap-use-after-free on address 0x7f4c4a500bd4 at pc 0x55d25155a2a8 bp 0x7ffcef879060 sp 0x7ffcef878818 - | READ of size 5 at 0x7f4c4a500bd4 thread T0 - | #0 0x55d25155a2a7 in memcpy (tools/bpf/resolve_btfids/resolve_btfids+0xcf2a7) - | #1 0x55d2515d708e in strset__add_str tools/lib/bpf/strset.c:162:2 - | #2 0x55d2515c730b in btf__add_str tools/lib/bpf/btf.c:2109:8 - | #3 0x55d2515c9020 in btf__add_func_param tools/lib/bpf/btf.c:3108:14 - | #4 0x55d25159f0b5 in process_kfunc_with_implicit_args tools/bpf/resolve_btfids/main.c:1196:9 - | #5 0x55d25159e004 in btf2btf tools/bpf/resolve_btfids/main.c:1229:9 - | #6 0x55d25159cee7 in main tools/bpf/resolve_btfids/main.c:1535:6 - | #7 0x7f4c78e29f76 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16 - | #8 0x7f4c78e2a026 in __libc_start_main csu/../csu/libc-start.c:360:3 - | #9 0x55d2514bb860 in _start (tools/bpf/resolve_btfids/resolve_btfids+0x30860) - | - | 0x7f4c4a500bd4 is located 13268 bytes inside of 2829000-byte region [0x7f4c4a4fd800,0x7f4c4a7b02c8) - | freed by thread T0 here: - | #0 0x55d25155b700 in realloc (tools/bpf/resolve_btfids/resolve_btfids+0xd0700) - | #1 0x55d2515c426c in libbpf_reallocarray tools/lib/bpf/./libbpf_internal.h:220:9 - | #2 0x55d2515c426c in libbpf_add_mem tools/lib/bpf/btf.c:224:13 - | - | previously allocated by thread T0 here: - | #0 0x55d25155b2e3 in malloc (tools/bpf/resolve_btfids/resolve_btfids+0xd02e3) - | #1 0x55d2515d6e7d in strset__new tools/lib/bpf/strset.c:58:20 - -While resolve_btfids could be refactored to avoid this call path, let's -instead fix this issue at the source in strset__add_str() and avoid -similar scenarios. - -Let's check if set->strs_data was reallocated and whether 's' points to -an internal string within the old strset buffer. In such case, 's' is -reconstructed to point to the new buffer. - -While already here, also fix strset__find_str() which suffers from the -same problem by factoring out the common operations into a new helper -function strset_str_append(). - -Fixes: 90d76d3ececc ("libbpf: Extract internal set-of-strings datastructure APIs") -Suggested-by: Andrii Nakryiko -Suggested-by: Mykyta Yatsenko -Signed-off-by: Carlos Llamas -Signed-off-by: Andrii Nakryiko -Link: https://lore.kernel.org/bpf/20260523162722.2718940-1-cmllamas@google.com ---- - tools/lib/bpf/strset.c | 62 ++++++++++++++++++++++++++++-------------- - 1 file changed, 41 insertions(+), 21 deletions(-) - -diff --git a/tools/lib/bpf/strset.c b/tools/lib/bpf/strset.c -index 2464bcbd04e037..ace73c6b3d62b4 100644 ---- a/tools/lib/bpf/strset.c -+++ b/tools/lib/bpf/strset.c -@@ -107,6 +107,41 @@ static void *strset_add_str_mem(struct strset *set, size_t add_sz) - set->strs_data_len, set->strs_data_max_len, add_sz); - } - -+static long strset_str_append(struct strset *set, const char *s) -+{ -+ uintptr_t old_data = (uintptr_t)set->strs_data; -+ size_t old_data_len = set->strs_data_len; -+ uintptr_t old_s = (uintptr_t)s; -+ long len = strlen(s) + 1; -+ void *p; -+ -+ /* -+ * Hashmap keys are always offsets within set->strs_data, so to even -+ * look up some string from the "outside", we need to first append it -+ * at the end, so that it can be addressed with an offset. Luckily, -+ * until set->strs_data_len is incremented, that string is just a piece -+ * of garbage for the rest of the code, so no harm, no foul. On the -+ * other hand, if the string is unique, it's already appended and -+ * ready to be used, only a simple set->strs_data_len increment away. -+ */ -+ p = strset_add_str_mem(set, len); -+ if (!p) -+ return -ENOMEM; -+ -+ /* -+ * The set->strs_data might have reallocated and if 's' pointed -+ * to an internal string within the old buffer, then it became -+ * dangling and needs to be reconstructed before the copy. -+ */ -+ if (old_data && old_data != (uintptr_t)set->strs_data && -+ old_s >= old_data && old_s < old_data + old_data_len) -+ s = set->strs_data + (old_s - old_data); -+ -+ memcpy(p, s, len); -+ -+ return len; -+} -+ - /* Find string offset that corresponds to a given string *s*. - * Returns: - * - >0 offset into string data, if string is found; -@@ -116,16 +151,12 @@ static void *strset_add_str_mem(struct strset *set, size_t add_sz) - int strset__find_str(struct strset *set, const char *s) - { - long old_off, new_off, len; -- void *p; - -- /* see strset__add_str() for why we do this */ -- len = strlen(s) + 1; -- p = strset_add_str_mem(set, len); -- if (!p) -- return -ENOMEM; -+ len = strset_str_append(set, s); -+ if (len < 0) -+ return len; - - new_off = set->strs_data_len; -- memcpy(p, s, len); - - if (hashmap__find(set->strs_hash, new_off, &old_off)) - return old_off; -@@ -142,24 +173,13 @@ int strset__find_str(struct strset *set, const char *s) - int strset__add_str(struct strset *set, const char *s) - { - long old_off, new_off, len; -- void *p; - int err; - -- /* Hashmap keys are always offsets within set->strs_data, so to even -- * look up some string from the "outside", we need to first append it -- * at the end, so that it can be addressed with an offset. Luckily, -- * until set->strs_data_len is incremented, that string is just a piece -- * of garbage for the rest of the code, so no harm, no foul. On the -- * other hand, if the string is unique, it's already appended and -- * ready to be used, only a simple set->strs_data_len increment away. -- */ -- len = strlen(s) + 1; -- p = strset_add_str_mem(set, len); -- if (!p) -- return -ENOMEM; -+ len = strset_str_append(set, s); -+ if (len < 0) -+ return len; - - new_off = set->strs_data_len; -- memcpy(p, s, len); - - /* Now attempt to add the string, but only if the string with the same - * contents doesn't exist already (HASHMAP_ADD strategy). If such diff --git a/device/community/linux-pine64-pinephonepro/config-pine64-pinephonepro.aarch64 b/device/community/linux-pine64-pinephonepro/config-pine64-pinephonepro.aarch64 index acc7c80eb..9def4e952 100644 --- a/device/community/linux-pine64-pinephonepro/config-pine64-pinephonepro.aarch64 +++ b/device/community/linux-pine64-pinephonepro/config-pine64-pinephonepro.aarch64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 7.1.0 Kernel Configuration +# Linux/arm64 7.2.0 Kernel Configuration # CONFIG_CC_VERSION_TEXT="Alpine clang version 22.1.8" CONFIG_GCC_VERSION=0 @@ -22,6 +22,7 @@ CONFIG_CC_HAS_ASSUME=y CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y CONFIG_CC_HAS_COUNTED_BY=y CONFIG_CC_HAS_COUNTED_BY_PTR=y +CONFIG_CC_HAS_ALLOC_TOKEN=y CONFIG_CC_HAS_MULTIDIMENSIONAL_NONSTRING=y CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y CONFIG_PAHOLE_VERSION=131 @@ -76,7 +77,6 @@ CONFIG_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD=y # end of IRQ subsystem -CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_ARCH_HAS_TICK_BROADCAST=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y @@ -196,6 +196,7 @@ CONFIG_GCC10_NO_ARRAY_BOUNDS=y CONFIG_GCC_NO_STRINGOP_OVERFLOW=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_NUMA_BALANCING=y +CONFIG_SCHED_CACHE=y CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_SLAB_OBJ_EXT=y CONFIG_CGROUPS=y @@ -316,6 +317,12 @@ CONFIG_VMCORE_INFO=y # CONFIG_KEXEC is not set # CONFIG_KEXEC_FILE is not set # end of Kexec and crash features + +# +# Live Update and Kexec HandOver +# +# CONFIG_KEXEC_HANDOVER is not set +# end of Live Update and Kexec HandOver # end of General setup CONFIG_ARM64=y @@ -354,6 +361,7 @@ CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y # CONFIG_ARCH_SUNXI is not set # CONFIG_ARCH_ALPINE is not set # CONFIG_ARCH_APPLE is not set +# CONFIG_ARCH_ASPEED is not set # CONFIG_ARCH_AXIADO is not set # CONFIG_ARCH_BCM is not set # CONFIG_ARCH_BERLIN is not set @@ -439,6 +447,7 @@ CONFIG_ARM64_ERRATUM_3117295=y CONFIG_ARM64_ERRATUM_3194386=y CONFIG_ARM64_ERRATUM_4311569=y CONFIG_ARM64_ERRATUM_4193714=y +CONFIG_ARM64_ERRATUM_4118414=y # CONFIG_CAVIUM_ERRATUM_22375 is not set # CONFIG_CAVIUM_ERRATUM_23144 is not set # CONFIG_CAVIUM_ERRATUM_23154 is not set @@ -448,10 +457,12 @@ CONFIG_ARM64_ERRATUM_4193714=y # CONFIG_FUJITSU_ERRATUM_010001 is not set # CONFIG_HISILICON_ERRATUM_161600802 is not set CONFIG_HISILICON_ERRATUM_162100801=y +CONFIG_HISILICON_ERRATUM_162100125=y # CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set # CONFIG_QCOM_FALKOR_ERRATUM_1009 is not set # CONFIG_QCOM_QDF2400_ERRATUM_0065 is not set # CONFIG_QCOM_FALKOR_ERRATUM_E1041 is not set +CONFIG_ARM64_WORKAROUND_DISABLE_CNP=y # CONFIG_NVIDIA_CARMEL_CNP_ERRATUM is not set CONFIG_ROCKCHIP_ERRATUM_3568002=y CONFIG_ROCKCHIP_ERRATUM_3588001=y @@ -578,6 +589,7 @@ CONFIG_ARM64_LSUI=y # end of ARMv9.6 architectural features CONFIG_ARM64_SVE=y +CONFIG_AS_HAS_SME=y CONFIG_ARM64_SME=y # CONFIG_ARM64_PSEUDO_NMI is not set CONFIG_RELOCATABLE=y @@ -808,6 +820,9 @@ CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y CONFIG_HAS_LTO_CLANG=y CONFIG_LTO_NONE=y # CONFIG_LTO_CLANG_THIN is not set +# CONFIG_LTO_CLANG_THIN_DIST is not set +# CONFIG_AUTOFDO_CLANG is not set +# CONFIG_PROPELLER_CLANG is not set CONFIG_ARCH_SUPPORTS_CFI=y CONFIG_CFI=y CONFIG_CFI_ICALL_NORMALIZE_INTEGERS=y @@ -967,6 +982,7 @@ CONFIG_EFI_PARTITION=y CONFIG_BLK_PM=y CONFIG_BLOCK_HOLDER_DEPRECATED=y CONFIG_BLK_MQ_STACKING=y +# CONFIG_BLK_ERROR_INJECTION is not set # # IO Schedulers @@ -1047,7 +1063,7 @@ CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_BUCKETS=y # CONFIG_SLUB_STATS is not set -# CONFIG_RANDOM_KMALLOC_CACHES is not set +# CONFIG_KMALLOC_PARTITION_CACHES is not set # end of Slab allocator options # CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set @@ -1104,7 +1120,6 @@ CONFIG_TRANSPARENT_HUGEPAGE_TMPFS_HUGE_NEVER=y # CONFIG_TRANSPARENT_HUGEPAGE_TMPFS_HUGE_WITHIN_SIZE is not set # CONFIG_TRANSPARENT_HUGEPAGE_TMPFS_HUGE_ADVISE is not set CONFIG_THP_SWAP=y -# CONFIG_READ_ONLY_THP_FOR_FS is not set # CONFIG_NO_PAGE_MAPCOUNT is not set CONFIG_PAGE_MAPCOUNT=y CONFIG_PGTABLE_HAS_HUGE_LEAVES=y @@ -1628,7 +1643,6 @@ CONFIG_VLAN_8021Q=m # CONFIG_VLAN_8021Q_MVRP is not set CONFIG_LLC=m CONFIG_LLC2=m -# CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_PHONET is not set @@ -1986,6 +2000,7 @@ CONFIG_ARM_SCPI_PROTOCOL=m CONFIG_FIRMWARE_MEMMAP=y CONFIG_DMIID=y # CONFIG_DMI_SYSFS is not set +# CONFIG_RASPBERRYPI_FIRMWARE is not set # CONFIG_SYSFB_SIMPLEFB is not set # CONFIG_TH1520_AON_PROTOCOL is not set # CONFIG_TURRIS_MOX_RWTM is not set @@ -2014,6 +2029,7 @@ CONFIG_EFI_EARLYCON=y # CONFIG_EFI_DISABLE_RUNTIME is not set # CONFIG_EFI_COCO_SECRET is not set # CONFIG_OVMF_DEBUG_LOG is not set +CONFIG_EFI_SBAT_FILE="" # end of EFI (Extensible Firmware Interface) Support # CONFIG_IMX_SCMI_CPU_DRV is not set @@ -2100,7 +2116,6 @@ CONFIG_MTD_CFI_I2=y # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_TS5500 is not set # CONFIG_MTD_PLATRAM is not set # end of Mapping drivers for chip access @@ -2173,6 +2188,7 @@ CONFIG_OF_NUMA=y # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y CONFIG_BLK_DEV_NULL_BLK=m +CONFIG_CDROM=m CONFIG_ZRAM=y CONFIG_ZRAM_BACKEND_LZ4=y CONFIG_ZRAM_BACKEND_LZ4HC=y @@ -2235,7 +2251,6 @@ CONFIG_SENSORS_LIS3LV02D=m # CONFIG_ISL29020 is not set # CONFIG_SENSORS_TSL2550 is not set # CONFIG_SENSORS_BH1770 is not set -# CONFIG_SENSORS_APDS990X is not set # CONFIG_HMC6352 is not set # CONFIG_DS1682 is not set # CONFIG_LATTICE_ECP3_CONFIG is not set @@ -2286,7 +2301,7 @@ CONFIG_SCSI_DMA=y # CONFIG_BLK_DEV_SD=m # CONFIG_CHR_DEV_ST is not set -# CONFIG_BLK_DEV_SR is not set +CONFIG_BLK_DEV_SR=m CONFIG_CHR_DEV_SG=m CONFIG_BLK_DEV_BSG=y # CONFIG_CHR_DEV_SCH is not set @@ -2416,6 +2431,7 @@ CONFIG_ETHERNET=y # CONFIG_NET_VENDOR_ACTIONS is not set # CONFIG_NET_VENDOR_AIROHA is not set # CONFIG_NET_VENDOR_ALACRITECH is not set +CONFIG_NET_VENDOR_ALIBABA=y # CONFIG_ALTERA_TSE is not set # CONFIG_NET_VENDOR_AMAZON is not set # CONFIG_NET_VENDOR_AMD is not set @@ -2504,6 +2520,7 @@ CONFIG_FIXED_PHY=y # MII PHY device drivers # # CONFIG_AS21XXX_PHY is not set +# CONFIG_AIR_AN8801_PHY is not set # CONFIG_AIR_EN8811H_PHY is not set # CONFIG_AMD_PHY is not set # CONFIG_MESON_GXL_PHY is not set @@ -2608,6 +2625,7 @@ CONFIG_PPP_DEFLATE=m CONFIG_PPP_FILTER=y CONFIG_PPP_MPPE=m CONFIG_PPP_MULTILINK=y +CONFIG_PPPOX=m CONFIG_PPPOE=m # CONFIG_PPPOE_HASH_BITS_1 is not set # CONFIG_PPPOE_HASH_BITS_2 is not set @@ -2850,6 +2868,7 @@ CONFIG_TOUCHSCREEN_GOODIX=m # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_WACOM_W8001 is not set # CONFIG_TOUCHSCREEN_WACOM_I2C is not set +# CONFIG_TOUCHSCREEN_WACOM_W9000 is not set # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MMS114 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set @@ -3140,6 +3159,7 @@ CONFIG_HW_RANDOM_KEYSTONE=m CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=m # CONFIG_HW_RANDOM_JH7110 is not set CONFIG_HW_RANDOM_ROCKCHIP=m +# CONFIG_HW_RANDOM_XILINX is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y CONFIG_TCG_TPM=y @@ -3224,6 +3244,7 @@ CONFIG_I2C_GPIO=m # CONFIG_I2C_KEBA is not set # CONFIG_I2C_LPC2K is not set # CONFIG_I2C_LS2X is not set +# CONFIG_I2C_LS2X_V2 is not set # CONFIG_I2C_MESON is not set # CONFIG_I2C_MICROCHIP_CORE is not set # CONFIG_I2C_MT65XX is not set @@ -3386,6 +3407,7 @@ CONFIG_SPI_ROCKCHIP=y # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_SN_F_OSPI is not set # CONFIG_SPI_SG2044_NOR is not set +# CONFIG_SPI_SPACEMIT_K1 is not set # CONFIG_SPI_SPRD is not set # CONFIG_SPI_SPRD_ADI is not set # CONFIG_SPI_STM32 is not set @@ -3485,6 +3507,7 @@ CONFIG_GENERIC_PINCONF=y # CONFIG_PINCTRL_EIC7700 is not set # CONFIG_PINCTRL_EQUILIBRIUM is not set # CONFIG_PINCTRL_EYEQ5 is not set +# CONFIG_PINCTRL_GENERIC_MUX is not set # CONFIG_PINCTRL_INGENIC is not set # CONFIG_PINCTRL_K210 is not set # CONFIG_PINCTRL_K230 is not set @@ -3507,9 +3530,18 @@ CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_ZYNQ is not set # CONFIG_PINCTRL_MLXBF3 is not set # CONFIG_PINCTRL_OWL is not set + +# +# Airoha pinctrl drivers +# +# CONFIG_PINCTRL_AIROHA is not set +# end of Airoha pinctrl drivers + # CONFIG_PINCTRL_ASPEED_G4 is not set # CONFIG_PINCTRL_ASPEED_G5 is not set # CONFIG_PINCTRL_ASPEED_G6 is not set +# CONFIG_PINCTRL_ASPEED_G7_SOC0 is not set +# CONFIG_PINCTRL_ASPEED_G7_SOC1 is not set # CONFIG_PINCTRL_BCM281XX is not set # CONFIG_PINCTRL_BCM2835 is not set # CONFIG_PINCTRL_BCM4908 is not set @@ -3593,7 +3625,6 @@ CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_MT7629 is not set # CONFIG_PINCTRL_MT8135 is not set # CONFIG_PINCTRL_MT8127 is not set -# CONFIG_PINCTRL_AIROHA is not set # CONFIG_PINCTRL_MT2712 is not set # CONFIG_PINCTRL_MT6765 is not set # CONFIG_PINCTRL_MT6779 is not set @@ -3633,6 +3664,7 @@ CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_QCOM_SPMI_PMIC is not set # CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set # CONFIG_PINCTRL_LPASS_LPI is not set +# CONFIG_PINCTRL_RTD is not set # # Renesas pinctrl drivers @@ -3712,9 +3744,27 @@ CONFIG_PINCTRL_SINGLE=y # CONFIG_PINCTRL_STM32MP157 is not set # CONFIG_PINCTRL_STM32MP257 is not set # CONFIG_PINCTRL_STM32_HDP is not set +# CONFIG_PINCTRL_TEGRA is not set +# CONFIG_PINCTRL_TEGRA20 is not set +# CONFIG_PINCTRL_TEGRA30 is not set +# CONFIG_PINCTRL_TEGRA114 is not set +# CONFIG_PINCTRL_TEGRA124 is not set +# CONFIG_PINCTRL_TEGRA210 is not set +# CONFIG_PINCTRL_TEGRA186 is not set +# CONFIG_PINCTRL_TEGRA194 is not set +# CONFIG_PINCTRL_TEGRA234 is not set +# CONFIG_PINCTRL_TEGRA238 is not set +# CONFIG_PINCTRL_TEGRA264 is not set +# CONFIG_PINCTRL_TEGRA_XUSB is not set # CONFIG_PINCTRL_TI_IODELAY is not set +# CONFIG_PINCTRL_ULTRARISC_DP1000 is not set # CONFIG_PINCTRL_UNIPHIER is not set # CONFIG_PINCTRL_TMPV7700 is not set +# CONFIG_PINCTRL_VT8500 is not set +# CONFIG_PINCTRL_WM8505 is not set +# CONFIG_PINCTRL_WM8650 is not set +# CONFIG_PINCTRL_WM8750 is not set +# CONFIG_PINCTRL_WM8850 is not set CONFIG_GPIOLIB_LEGACY=y CONFIG_GPIOLIB=y CONFIG_GPIOLIB_FASTPATH_LIMIT=512 @@ -3748,6 +3798,7 @@ CONFIG_GPIO_GENERIC=y # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_EIC_SPRD is not set # CONFIG_GPIO_EM is not set +# CONFIG_GPIO_EN7523 is not set CONFIG_GPIO_EP93XX=y # CONFIG_GPIO_GE_FPGA is not set # CONFIG_GPIO_FTGPIO010 is not set @@ -3783,6 +3834,7 @@ CONFIG_GPIO_RTD=y # CONFIG_GPIO_SIFIVE is not set # CONFIG_GPIO_SNPS_CREG is not set # CONFIG_GPIO_SPACEMIT_K1 is not set +# CONFIG_GPIO_SPEAR_SPICS is not set # CONFIG_GPIO_SPRD is not set # CONFIG_GPIO_STP_XWAY is not set # CONFIG_GPIO_SYSCON is not set @@ -3793,10 +3845,12 @@ CONFIG_GPIO_RTD=y # CONFIG_GPIO_UNIPHIER is not set # CONFIG_GPIO_VF610 is not set # CONFIG_GPIO_VISCONTI is not set +# CONFIG_GPIO_WAVESHARE_DSI_TOUCH is not set # CONFIG_GPIO_XGENE is not set # CONFIG_GPIO_XGENE_SB is not set # CONFIG_GPIO_XILINX is not set # CONFIG_GPIO_XLP is not set +# CONFIG_GPIO_ZEVIO is not set # CONFIG_GPIO_ZYNQ is not set # CONFIG_GPIO_ZYNQMP_MODEPIN is not set # CONFIG_GPIO_LOONGSON1 is not set @@ -3831,6 +3885,11 @@ CONFIG_GPIO_RTD=y # CONFIG_GPIO_TN48M_CPLD is not set # end of MFD GPIO expanders +# +# Auxiliary Bus GPIO drivers +# +# end of Auxiliary Bus GPIO drivers + # # SPI GPIO expanders # @@ -3952,6 +4011,7 @@ CONFIG_CHARGER_GPIO=y # CONFIG_CHARGER_UCS1002 is not set # CONFIG_CHARGER_BD99954 is not set # CONFIG_BATTERY_UG3105 is not set +# CONFIG_BATTERY_CHARGER_SURFACE_RT is not set # CONFIG_FUEL_GAUGE_MM8013 is not set CONFIG_CHARGER_RK818=y CONFIG_HWMON=y @@ -3983,6 +4043,7 @@ CONFIG_HWMON=y # CONFIG_SENSORS_ASC7621 is not set # CONFIG_SENSORS_ASUS_ROG_RYUJIN is not set # CONFIG_SENSORS_AXI_FAN_CONTROL is not set +# CONFIG_SENSORS_ARCTIC_FAN_CONTROLLER is not set CONFIG_SENSORS_ARM_SCMI=y CONFIG_SENSORS_ARM_SCPI=m # CONFIG_SENSORS_ASB100 is not set @@ -4031,6 +4092,7 @@ CONFIG_SENSORS_JC42=m # CONFIG_SENSORS_LTC4260 is not set # CONFIG_SENSORS_LTC4261 is not set # CONFIG_SENSORS_LTC4282 is not set +# CONFIG_SENSORS_LTC4283 is not set # CONFIG_SENSORS_MAX1111 is not set # CONFIG_SENSORS_MAX127 is not set # CONFIG_SENSORS_MAX16065 is not set @@ -4099,6 +4161,7 @@ CONFIG_SENSORS_NTC_THERMISTOR=m # CONFIG_SENSORS_SHTC1 is not set # CONFIG_SENSORS_DME1737 is not set # CONFIG_SENSORS_EMC1403 is not set +# CONFIG_SENSORS_EMC1812 is not set # CONFIG_SENSORS_EMC2103 is not set # CONFIG_SENSORS_EMC2305 is not set # CONFIG_SENSORS_EMC6W201 is not set @@ -4221,6 +4284,12 @@ CONFIG_ROCKCHIP_THERMAL=y # CONFIG_RZG2L_THERMAL is not set # CONFIG_RZG3E_THERMAL is not set +# +# SpacemiT thermal drivers +# +# CONFIG_SPACEMIT_K1_TSENSOR is not set +# end of SpacemiT thermal drivers + # # NVIDIA Tegra thermal drivers # @@ -4339,7 +4408,6 @@ CONFIG_ARM_SMC_WATCHDOG=y # CONFIG_EBC_C384_WDT is not set # CONFIG_EXAR_WDT is not set # CONFIG_F71808E_WDT is not set -# CONFIG_SC520_WDT is not set # CONFIG_SBC_FITPC2_WATCHDOG is not set # CONFIG_EUROTECH_WDT is not set # CONFIG_IB700_WDT is not set @@ -4356,7 +4424,6 @@ CONFIG_ARM_SMC_WATCHDOG=y # CONFIG_W83627HF_WDT is not set # CONFIG_W83877F_WDT is not set # CONFIG_W83977F_WDT is not set -# CONFIG_MACHZ_WDT is not set # CONFIG_SBC_EPX_C3_WATCHDOG is not set # CONFIG_NIC7018_WDT is not set # CONFIG_BCM47XX_WDT is not set @@ -4370,8 +4437,11 @@ CONFIG_ARM_SMC_WATCHDOG=y # CONFIG_LOONGSON1_WDT is not set # CONFIG_GXP_WATCHDOG is not set # CONFIG_MT7621_WDT is not set +# CONFIG_PIC32_WDT is not set +# CONFIG_PIC32_DMT is not set # CONFIG_MPC5200_WDT is not set # CONFIG_MEN_A21_WDT is not set +# CONFIG_ATCWDT200_WATCHDOG is not set # CONFIG_STARFIVE_WATCHDOG is not set # CONFIG_UML_WATCHDOG is not set @@ -4380,6 +4450,7 @@ CONFIG_ARM_SMC_WATCHDOG=y # # CONFIG_USBPCWATCHDOG is not set # CONFIG_KEEMBAY_WATCHDOG is not set +# CONFIG_GUNYAH_WATCHDOG is not set CONFIG_SSB_POSSIBLE=y # CONFIG_SSB is not set CONFIG_BCMA_POSSIBLE=y @@ -4458,7 +4529,6 @@ CONFIG_MFD_CORE=y # CONFIG_MFD_MENF21BMC is not set # CONFIG_MFD_NCT6694 is not set # CONFIG_MFD_OCELOT is not set -# CONFIG_EZX_PCAP is not set # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_VIPERBOARD is not set # CONFIG_MFD_NTXEC is not set @@ -4635,6 +4705,7 @@ CONFIG_REGULATOR_RK808=y # CONFIG_REGULATOR_S2MPS11 is not set # CONFIG_REGULATOR_S5M8767 is not set # CONFIG_REGULATOR_SC2731 is not set +# CONFIG_REGULATOR_SGM3804 is not set # CONFIG_REGULATOR_SLG51000 is not set # CONFIG_REGULATOR_SPACEMIT_P1 is not set # CONFIG_REGULATOR_STM32_BOOSTER is not set @@ -5364,10 +5435,12 @@ CONFIG_DRM_PANEL=y # CONFIG_DRM_PANEL_BOE_TH101MB31UIG002_28A is not set # CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set # CONFIG_DRM_PANEL_BOE_TV101WUM_LL2 is not set +# CONFIG_DRM_PANEL_CHIPWEALTH_CH13726A is not set # CONFIG_DRM_PANEL_EBBG_FT8719 is not set # CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set # CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set # CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set +# CONFIG_DRM_PANEL_FOCALTECH_OTA7290B is not set # CONFIG_DRM_PANEL_DSI_CM is not set # CONFIG_DRM_PANEL_LVDS is not set # CONFIG_DRM_PANEL_HIMAX_HX8279 is not set @@ -5407,6 +5480,7 @@ CONFIG_DRM_PANEL_HIMAX_HX8394=y # CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set # CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set # CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set +# CONFIG_DRM_PANEL_NOVATEK_NT35532 is not set # CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set # CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set # CONFIG_DRM_PANEL_NOVATEK_NT36523 is not set @@ -5546,6 +5620,7 @@ CONFIG_DRM_UDL=m # CONFIG_DRM_VERISILICON_DC is not set CONFIG_DRM_VGEM=m # CONFIG_DRM_VKMS is not set +# CONFIG_DRM_ZYNQMP_DPSUB is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y # @@ -5617,6 +5692,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_KTZ8866 is not set # CONFIG_BACKLIGHT_OMAP1 is not set CONFIG_BACKLIGHT_PWM=y +# CONFIG_BACKLIGHT_MAX25014 is not set # CONFIG_BACKLIGHT_APPLE_DWI is not set # CONFIG_BACKLIGHT_QCOM_WLED is not set # CONFIG_BACKLIGHT_ADP8860 is not set @@ -6089,6 +6165,7 @@ CONFIG_SND_SOC_BT_SCO=m # CONFIG_SND_SOC_CS4270 is not set # CONFIG_SND_SOC_CS4271_I2C is not set # CONFIG_SND_SOC_CS4271_SPI is not set +# CONFIG_SND_SOC_CS42XX8_SPI is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set # CONFIG_SND_SOC_CS43130 is not set # CONFIG_SND_SOC_CS4341 is not set @@ -6160,6 +6237,7 @@ CONFIG_SND_SOC_RL6231=m # CONFIG_SND_SOC_RT5616 is not set # CONFIG_SND_SOC_RT5631 is not set CONFIG_SND_SOC_RT5640=m +# CONFIG_SND_SOC_RT5645 is not set # CONFIG_SND_SOC_RT5659 is not set # CONFIG_SND_SOC_RT9120 is not set # CONFIG_SND_SOC_RT9123 is not set @@ -6193,6 +6271,7 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TAS5720 is not set # CONFIG_SND_SOC_TAS5805M is not set # CONFIG_SND_SOC_TAS6424 is not set +# CONFIG_SND_SOC_TAS675X is not set # CONFIG_SND_SOC_TDA7419 is not set # CONFIG_SND_SOC_TFA9879 is not set # CONFIG_SND_SOC_TFA989X is not set @@ -6354,6 +6433,7 @@ CONFIG_HID_MAGICMOUSE=m CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m CONFIG_HID_MEGAWORLD_FF=m +# CONFIG_HID_RAKK is not set CONFIG_HID_REDRAGON=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m @@ -6365,6 +6445,7 @@ CONFIG_HID_NTRIG=m CONFIG_HID_NVIDIA_SHIELD=m # CONFIG_NVIDIA_SHIELD_FF is not set CONFIG_HID_ORTEK=m +# CONFIG_HID_OXP is not set CONFIG_HID_PANTHERLORD=m CONFIG_PANTHERLORD_FF=y CONFIG_HID_PENMOUNT=m @@ -7016,6 +7097,8 @@ CONFIG_LEDS_SGM3140=m CONFIG_LEDS_GROUP_MULTICOLOR=m # CONFIG_LEDS_KTD202X is not set # CONFIG_LEDS_LP5812 is not set +# CONFIG_LEDS_LP5860_CORE is not set +# CONFIG_LEDS_LP5860_SPI is not set # CONFIG_LEDS_NCP5623 is not set # CONFIG_LEDS_PWM_MULTICOLOR is not set # CONFIG_LEDS_QCOM_LPG is not set @@ -7333,9 +7416,9 @@ CONFIG_SYNC_FILE=y # CONFIG_SW_SYNC is not set CONFIG_UDMABUF=y # CONFIG_DMABUF_DEBUG is not set -# CONFIG_DMABUF_SELFTESTS is not set CONFIG_DMABUF_HEAPS=y CONFIG_DMABUF_HEAPS_SYSTEM=y +# CONFIG_DMABUF_HEAPS_SYSTEM_CC_SHARED is not set CONFIG_DMABUF_HEAPS_CMA=y # end of DMABUF options @@ -7422,6 +7505,7 @@ CONFIG_ARM64_PLATFORM_DEVICES=y # CONFIG_EC_HUAWEI_GAOKUN is not set # CONFIG_EC_LENOVO_YOGA_C630 is not set # CONFIG_EC_LENOVO_THINKPAD_T14S is not set +# CONFIG_EC_QCOM_HAMOA is not set CONFIG_BCM_VIDEOCORE=y # CONFIG_BCM2835_VCHIQ is not set CONFIG_HAVE_CLK=y @@ -7477,6 +7561,7 @@ CONFIG_COMMON_CLK_PWM=y # CONFIG_COMMON_CLK_VC7 is not set # CONFIG_COMMON_CLK_MMP2_AUDIO is not set # CONFIG_COMMON_CLK_FIXED_MMIO is not set +# CONFIG_COMMON_CLK_K230 is not set # CONFIG_COMMON_CLK_SP7021 is not set # CONFIG_COMMON_CLK_RPMI is not set # CONFIG_CLK_ACTIONS is not set @@ -7612,7 +7697,6 @@ CONFIG_CLK_RK3562=y CONFIG_CLK_RK3576=y CONFIG_CLK_RK3588=y # CONFIG_COMMON_CLK_SAMSUNG is not set -# CONFIG_EXYNOS_ACPM_CLK is not set # CONFIG_CLK_SIFIVE is not set # CONFIG_CLK_INTEL_SOCFPGA is not set # CONFIG_CLK_SOPHGO_CV1800 is not set @@ -7802,6 +7886,7 @@ CONFIG_ROCKCHIP_IOMMU=y # CONFIG_MTK_IOMMU_V1 is not set # CONFIG_VIRTIO_IOMMU is not set # CONFIG_SPRD_IOMMU is not set +# CONFIG_VSI_IOMMU is not set # CONFIG_GENERIC_PT is not set # @@ -8159,6 +8244,7 @@ CONFIG_HID_SENSOR_ACCEL_3D=m # CONFIG_AD4130 is not set # CONFIG_AD4134 is not set # CONFIG_AD4170_4 is not set +# CONFIG_AD4691 is not set # CONFIG_AD4695 is not set # CONFIG_AD4851 is not set # CONFIG_AD7091R5 is not set @@ -8379,6 +8465,7 @@ CONFIG_IIO_ST_SENSORS_CORE=m # CONFIG_AD5593R is not set # CONFIG_AD5504 is not set # CONFIG_AD5624R_SPI is not set +# CONFIG_AD5706R is not set # CONFIG_AD9739A is not set # CONFIG_ADI_AXI_DAC is not set # CONFIG_LTC2688 is not set @@ -8548,6 +8635,7 @@ CONFIG_INV_MPU6050_I2C=m # CONFIG_APDS9300 is not set # CONFIG_APDS9306 is not set # CONFIG_APDS9960 is not set +# CONFIG_APDS9999 is not set # CONFIG_AS73211 is not set # CONFIG_BH1745 is not set # CONFIG_BH1750 is not set @@ -8595,6 +8683,7 @@ CONFIG_STK3310=m # CONFIG_VCNL4000 is not set # CONFIG_VCNL4035 is not set # CONFIG_VEML3235 is not set +# CONFIG_VEML3328 is not set # CONFIG_VEML6030 is not set # CONFIG_VEML6040 is not set # CONFIG_VEML6046X00 is not set @@ -8618,6 +8707,7 @@ CONFIG_AK09911=m CONFIG_HID_SENSOR_MAGNETOMETER_3D=m # CONFIG_MMC35240 is not set # CONFIG_MMC5633 is not set +# CONFIG_MMC5983 is not set CONFIG_IIO_ST_MAGN_3AXIS=m CONFIG_IIO_ST_MAGN_I2C_3AXIS=m CONFIG_IIO_ST_MAGN_SPI_3AXIS=m @@ -8648,7 +8738,6 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m # Triggers - standalone # CONFIG_IIO_HRTIMER_TRIGGER=m -CONFIG_IIO_INTERRUPT_TRIGGER=m # CONFIG_IIO_STM32_LPTIMER_TRIGGER is not set # CONFIG_IIO_STM32_TIMER_TRIGGER is not set CONFIG_IIO_TIGHTLOOP_TRIGGER=m @@ -8797,6 +8886,7 @@ CONFIG_PWM=y # CONFIG_PWM_IMX27 is not set # CONFIG_PWM_IMX_TPM is not set # CONFIG_PWM_INTEL_LGM is not set +# CONFIG_PWM_IPQ is not set # CONFIG_PWM_IQS620A is not set # CONFIG_PWM_JZ4740 is not set # CONFIG_PWM_KEEMBAY is not set @@ -8848,6 +8938,7 @@ CONFIG_ARM_GIC_V3_ITS=y CONFIG_ARM_GIC_V5=y CONFIG_IRQ_MSI_LIB=y # CONFIG_AL_FIC is not set +# CONFIG_ASPEED_AST2700_INTC is not set # CONFIG_BCM2712_MIP is not set # CONFIG_BCM7038_L1_IRQ is not set # CONFIG_BCM7120_L2_IRQ is not set @@ -8871,7 +8962,7 @@ CONFIG_PIC32_EVIC=y # CONFIG_IMX_IRQSTEER is not set # CONFIG_IMX_INTMUX is not set # CONFIG_IMX_MU_MSI is not set -# CONFIG_STARFIVE_JH8100_INTC is not set +# CONFIG_STARFIVE_JHB100_INTC is not set # CONFIG_EXYNOS_IRQ_COMBINER is not set # CONFIG_MST_IRQ is not set # CONFIG_APPLE_AIC is not set @@ -8949,10 +9040,13 @@ CONFIG_GENERIC_PHY=y CONFIG_GENERIC_PHY_MIPI_DPHY=y # CONFIG_PHY_AIROHA_PCIE is not set # CONFIG_PHY_CAN_TRANSCEIVER is not set +# CONFIG_PHY_EYEQ5_ETH is not set +# CONFIG_PHY_ECONET_PCIE is not set # CONFIG_PHY_GOOGLE_USB is not set # CONFIG_USB_LGM_PHY is not set # CONFIG_PHY_LPC18XX_USB_OTG is not set # CONFIG_PHY_NXP_PTN3222 is not set +# CONFIG_PHY_NXP_TJA1145 is not set # CONFIG_PHY_PISTACHIO_USB is not set # CONFIG_PHY_SNPS_EUSB2 is not set # CONFIG_PHY_XGENE is not set @@ -8970,6 +9064,7 @@ CONFIG_GENERIC_PHY_MIPI_DPHY=y # CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG is not set # CONFIG_PHY_MESON_AXG_MIPI_DPHY is not set # CONFIG_PHY_APPLE_ATC is not set +# CONFIG_PHY_AX3000_EMMC is not set # # PHY drivers for Broadcom platforms @@ -9000,6 +9095,7 @@ CONFIG_GENERIC_PHY_MIPI_DPHY=y # CONFIG_PHY_FSL_IMX8M_PCIE is not set # CONFIG_PHY_FSL_IMX8QM_HSIO is not set # CONFIG_PHY_FSL_SAMSUNG_HDMI_PHY is not set +# CONFIG_PHY_FSL_LYNX_10G is not set # CONFIG_PHY_FSL_LYNX_28G is not set # CONFIG_PHY_HI6220_USB is not set # CONFIG_PHY_HI3660_USB is not set @@ -9093,6 +9189,7 @@ CONFIG_PHY_ROCKCHIP_USB=y # CONFIG_PHY_SOPHGO_CV1800_USB2 is not set # CONFIG_PHY_SPACEMIT_K1_PCIE is not set # CONFIG_PHY_SPACEMIT_K1_USB2 is not set +# CONFIG_PHY_MIPHY28LP is not set # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_STIH407_USB is not set @@ -9104,14 +9201,15 @@ CONFIG_PHY_ROCKCHIP_USB=y # CONFIG_PHY_STARFIVE_JH7110_USB is not set # CONFIG_PHY_SUNPLUS_USB is not set # CONFIG_PHY_TEGRA194_P2U is not set -# CONFIG_PHY_DA8XX_USB is not set -# CONFIG_PHY_DM816X_USB is not set -# CONFIG_PHY_AM654_SERDES is not set -# CONFIG_PHY_J721E_WIZ is not set # CONFIG_OMAP_CONTROL_PHY is not set # CONFIG_OMAP_USB2 is not set -# CONFIG_TI_PIPE3 is not set +# CONFIG_PHY_AM654_SERDES is not set +# CONFIG_PHY_DA8XX_USB is not set +# CONFIG_PHY_DM816X_USB is not set +# CONFIG_PHY_J721E_WIZ is not set +# CONFIG_PHY_TI_DS125DF111 is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_TI_PIPE3 is not set # CONFIG_PHY_XILINX_ZYNQMP is not set # end of PHY Subsystem @@ -9444,10 +9542,10 @@ CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_BACKED_BY_FILE=y CONFIG_EROFS_FS_ZIP=y CONFIG_EROFS_FS_ZIP_LZMA=y +CONFIG_EROFS_FS_ZIP_LZMA_DEFAULT_MAX_STREAMS=16 CONFIG_EROFS_FS_ZIP_DEFLATE=y CONFIG_EROFS_FS_ZIP_ZSTD=y # CONFIG_EROFS_FS_ZIP_ACCEL is not set -# CONFIG_EROFS_FS_ONDEMAND is not set # CONFIG_EROFS_FS_PCPU_KTHREAD is not set # CONFIG_EROFS_FS_PAGE_CACHE_SHARE is not set CONFIG_NETWORK_FILESYSTEMS=y @@ -9493,9 +9591,6 @@ CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC_BACKCHANNEL=y CONFIG_RPCSEC_GSS_KRB5=m -CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y -CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA=y -CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2=y # CONFIG_SUNRPC_DEBUG is not set # CONFIG_CEPH_FS is not set CONFIG_CIFS=m @@ -9719,7 +9814,6 @@ CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=m -# CONFIG_CRYPTO_FCRYPT is not set CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SM4=y # CONFIG_CRYPTO_SM4_GENERIC is not set @@ -9738,7 +9832,6 @@ CONFIG_CRYPTO_CTS=y CONFIG_CRYPTO_ECB=y # CONFIG_CRYPTO_HCTR2 is not set CONFIG_CRYPTO_LRW=m -# CONFIG_CRYPTO_PCBC is not set CONFIG_CRYPTO_XTS=y # end of Length-preserving ciphers and modes @@ -9789,7 +9882,7 @@ CONFIG_CRYPTO_CRC32=y CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_842 is not set -CONFIG_CRYPTO_LZ4=m +CONFIG_CRYPTO_LZ4=y CONFIG_CRYPTO_LZ4HC=y CONFIG_CRYPTO_ZSTD=y # end of Compression @@ -9797,21 +9890,16 @@ CONFIG_CRYPTO_ZSTD=y # # Random number generation # -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_DRBG_HMAC=y -CONFIG_CRYPTO_DRBG_HASH=y -CONFIG_CRYPTO_DRBG_CTR=y CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_JITTERENTROPY=y CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64 CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32 CONFIG_CRYPTO_JITTERENTROPY_OSR=1 CONFIG_CRYPTO_KDF800108_CTR=y -CONFIG_CRYPTO_DF80090A=y # end of Random number generation # -# Userspace interface +# Userspace interface (deprecated) # CONFIG_CRYPTO_USER_API=m CONFIG_CRYPTO_USER_API_HASH=m @@ -9820,7 +9908,7 @@ CONFIG_CRYPTO_USER_API_RNG=m # CONFIG_CRYPTO_USER_API_RNG_CAVP is not set CONFIG_CRYPTO_USER_API_AEAD=m # CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set -# end of Userspace interface +# end of Userspace interface (deprecated) # # Accelerated Cryptographic Algorithms for CPU (arm64) @@ -9841,7 +9929,7 @@ CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_ALLWINNER is not set # CONFIG_CRYPTO_DEV_SL3516 is not set # CONFIG_CRYPTO_DEV_FSL_CAAM is not set -# CONFIG_CRYPTO_DEV_EXYNOS_RNG is not set +# CONFIG_CRYPTO_DEV_OMAP is not set # CONFIG_CRYPTO_DEV_S5P is not set # CONFIG_CRYPTO_DEV_ATMEL_AES is not set # CONFIG_CRYPTO_DEV_ATMEL_TDES is not set @@ -9857,7 +9945,6 @@ CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_QCOM_RNG is not set # CONFIG_CRYPTO_DEV_IMGTEC_HASH is not set # CONFIG_CRYPTO_DEV_ROCKCHIP is not set -# CONFIG_CRYPTO_DEV_XILINX_TRNG is not set # CONFIG_CRYPTO_DEV_ZYNQMP_AES is not set # CONFIG_CRYPTO_DEV_ZYNQMP_SHA3 is not set CONFIG_CRYPTO_DEV_VIRTIO=m @@ -9907,8 +9994,6 @@ CONFIG_BINARY_PRINTF=y # # Library routines # -CONFIG_RAID6_PQ=y -# CONFIG_RAID6_PQ_BENCHMARK is not set CONFIG_LINEAR_RANGES=y # CONFIG_PACKING is not set CONFIG_BITREVERSE=y @@ -9968,6 +10053,9 @@ CONFIG_CRYPTO_LIB_SHA3=y CONFIG_CRYPTO_LIB_SHA3_ARCH=y CONFIG_XOR_BLOCKS=y CONFIG_XOR_BLOCKS_ARCH=y +CONFIG_RAID6_PQ=y +CONFIG_RAID6_PQ_ARCH=y +# CONFIG_RAID6_PQ_BENCHMARK is not set CONFIG_XXHASH=y CONFIG_AUDIT_GENERIC=y CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y @@ -10150,7 +10238,6 @@ CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y # CONFIG_VMLINUX_MAP is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -CONFIG_WARN_CONTEXT_ANALYSIS=y # end of Compile-time checks and compiler options # @@ -10376,6 +10463,7 @@ CONFIG_SYNTH_EVENTS=y # CONFIG_FTRACE_SORT_STARTUP_TEST is not set # CONFIG_RING_BUFFER_STARTUP_TEST is not set # CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set +# CONFIG_RING_BUFFER_PERSISTENT_INJECT is not set # CONFIG_PREEMPTIRQ_DELAY_TEST is not set # CONFIG_SYNTH_EVENT_GEN_TEST is not set # CONFIG_KPROBE_EVENT_GEN_TEST is not set diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0007-media-imx258-Add-i2c-supply.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0001-media-imx258-Add-i2c-supply.patch similarity index 86% rename from device/community/linux-pine64-pinephonepro/megi_patches/0007-media-imx258-Add-i2c-supply.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0001-media-imx258-Add-i2c-supply.patch index 5fe0e133c..0f5f726af 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0007-media-imx258-Add-i2c-supply.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0001-media-imx258-Add-i2c-supply.patch @@ -1,7 +1,7 @@ -From 5774ba8941ddb45470bfa9cc903d63e52a678b90 Mon Sep 17 00:00:00 2001 +From 17c723a2fae07f0c863db891c8dea023ea13654f Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 22 May 2022 03:25:06 +0200 -Subject: [PATCH 07/84] media: imx258: Add i2c supply +Subject: [PATCH 01/90] media: imx258: Add i2c supply Sensor depends on I2C bus to be powered up to work. diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0008-media-imx258-Add-reset-gpio.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0002-media-imx258-Add-reset-gpio.patch similarity index 93% rename from device/community/linux-pine64-pinephonepro/megi_patches/0008-media-imx258-Add-reset-gpio.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0002-media-imx258-Add-reset-gpio.patch index 22d0d76b8..d8ef2be80 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0008-media-imx258-Add-reset-gpio.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0002-media-imx258-Add-reset-gpio.patch @@ -1,7 +1,7 @@ -From faeafc9db9ac2d7f191c09fe3edfa9891a7ddc2f Mon Sep 17 00:00:00 2001 +From 3cf19a88ab0104cbb71efbd2a841f06d933eb38d Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 9 Sep 2024 16:49:41 +0200 -Subject: [PATCH 08/84] media: imx258: Add reset gpio +Subject: [PATCH 02/90] media: imx258: Add reset gpio IMX258 features a reset input that needs to be controlled when powering up the chip. diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0009-media-imx258-Drop-interface-speed-to-1224-mbps.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0003-media-imx258-Drop-interface-speed-to-1224-mbps.patch similarity index 95% rename from device/community/linux-pine64-pinephonepro/megi_patches/0009-media-imx258-Drop-interface-speed-to-1224-mbps.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0003-media-imx258-Drop-interface-speed-to-1224-mbps.patch index b97a2641b..3fa737403 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0009-media-imx258-Drop-interface-speed-to-1224-mbps.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0003-media-imx258-Drop-interface-speed-to-1224-mbps.patch @@ -1,7 +1,7 @@ -From 9b48bbc02eb1a3ef4a734f64a95c1e843b1192d1 Mon Sep 17 00:00:00 2001 +From e6a595ada31c36293478963a8d4655bdc7b57ae0 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 15 Sep 2024 23:41:50 +0200 -Subject: [PATCH 09/84] media: imx258: Drop interface speed to 1224 mbps +Subject: [PATCH 03/90] media: imx258: Drop interface speed to 1224 mbps Pinephone Pro can't do 1272 mbps. This is just a hack to make the new upstream driver work quickly with the phone. diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0010-DEBUG-media-imx258-Add-debug-register-access.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0004-media-imx258-Add-debug-register-access.patch similarity index 93% rename from device/community/linux-pine64-pinephonepro/megi_patches/0010-DEBUG-media-imx258-Add-debug-register-access.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0004-media-imx258-Add-debug-register-access.patch index e0200fbbe..4bdf8eae5 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0010-DEBUG-media-imx258-Add-debug-register-access.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0004-media-imx258-Add-debug-register-access.patch @@ -1,7 +1,7 @@ -From a14e1b917fd223d3b5063a48c98bd92df1a97c09 Mon Sep 17 00:00:00 2001 +From 6db32e3e7e73983f58719f5f20377391c4f2c2eb Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Thu, 9 Jun 2022 01:04:18 +0200 -Subject: [PATCH 10/84] [DEBUG] media: imx258: Add debug register access +Subject: [PATCH 04/90] media: imx258: Add debug register access This is useful during development. diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0001-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0005-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch similarity index 95% rename from device/community/linux-pine64-pinephonepro/megi_patches/0001-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0005-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch index c6c29cd60..266ee4c12 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0001-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0005-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch @@ -1,7 +1,7 @@ -From 0a07c82cce09160952c41a53f94acb084b8b6a3b Mon Sep 17 00:00:00 2001 +From 40d935a811301fc935a6a57556cff241944b7348 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 19 Aug 2022 22:01:23 +0200 -Subject: [PATCH 01/84] ASoC: codecs: rt5640: Fix output mixer input channel +Subject: [PATCH 05/90] ASoC: codecs: rt5640: Fix output mixer input channel list It did not match the RT5640 datasheet. Now it does. @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c -index f6c6294e1588..e3a90be5294b 100644 +index 74fd05176eff..2c94c81b5b59 100644 --- a/sound/soc/codecs/rt5640.c +++ b/sound/soc/codecs/rt5640.c @@ -651,8 +651,8 @@ static const struct snd_kcontrol_new rt5640_spk_r_mix[] = { diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0002-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0006-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch similarity index 84% rename from device/community/linux-pine64-pinephonepro/megi_patches/0002-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0006-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch index 57a6c27b5..e805c0f8c 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0002-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0006-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch @@ -1,7 +1,7 @@ -From 06cc977b69459292246e9b08dfe433fc43e5d5f3 Mon Sep 17 00:00:00 2001 +From 4c6a567c9db84dbff9c0edbe4fb1fd5e78661367 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 20 Aug 2022 20:32:07 +0200 -Subject: [PATCH 02/84] ASoC: codecs: rt5640: Fix hpout restore when lout is +Subject: [PATCH 06/90] ASoC: codecs: rt5640: Fix hpout restore when lout is enabled When line out and heaphones are enabled, rt5640_lout_event will cause @@ -14,7 +14,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c -index e3a90be5294b..5376206e308b 100644 +index 2c94c81b5b59..bbe83619d940 100644 --- a/sound/soc/codecs/rt5640.c +++ b/sound/soc/codecs/rt5640.c @@ -995,7 +995,8 @@ static int rt5640_lout_event(struct snd_soc_dapm_widget *w, diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0003-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0007-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch similarity index 92% rename from device/community/linux-pine64-pinephonepro/megi_patches/0003-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0007-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch index 3217c7d66..a04054038 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0003-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0007-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch @@ -1,7 +1,7 @@ -From 07c3af029c04522de7b35646a6374b8241fdc28c Mon Sep 17 00:00:00 2001 +From c895605443f2db8864604b771a568aced2252bec Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 14 Apr 2023 22:35:37 +0200 -Subject: [PATCH 03/84] ASoC: codecs: rt5640: Add input mixer input volume +Subject: [PATCH 07/90] ASoC: codecs: rt5640: Add input mixer input volume controls These are useful to attenuate strong signals from analog inputs. @@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 14 insertions(+) diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c -index 5376206e308b..03d8196d218c 100644 +index bbe83619d940..af7395831f89 100644 --- a/sound/soc/codecs/rt5640.c +++ b/sound/soc/codecs/rt5640.c @@ -342,6 +342,7 @@ static const DECLARE_TLV_DB_MINMAX(dac_vol_tlv, -6562, 0); diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0004-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0008-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch similarity index 86% rename from device/community/linux-pine64-pinephonepro/megi_patches/0004-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0008-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch index eae72e075..fde242820 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0004-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0008-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch @@ -1,7 +1,7 @@ -From 68b5fa757087e8fdf3fe6c7bad67c200503946f8 Mon Sep 17 00:00:00 2001 +From cda7bcf085a8869ceb6be8928a286e03cd3ee4b6 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 14 Apr 2023 22:37:02 +0200 -Subject: [PATCH 04/84] ASoC: codecs: rt5640: Allow to control +Subject: [PATCH 08/90] ASoC: codecs: rt5640: Allow to control single-ended/differential mode Not for upstream. This is useful for debugging, trying things without @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 4 insertions(+) diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c -index 03d8196d218c..1553a0b1f936 100644 +index af7395831f89..12943724f653 100644 --- a/sound/soc/codecs/rt5640.c +++ b/sound/soc/codecs/rt5640.c @@ -427,6 +427,10 @@ static const struct snd_kcontrol_new rt5640_snd_controls[] = { diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0005-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0009-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch similarity index 75% rename from device/community/linux-pine64-pinephonepro/megi_patches/0005-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0009-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch index af2e9bdc8..9cac84732 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0005-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0009-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch @@ -1,7 +1,7 @@ -From 801e51af0f5dc01654220afd90a8844c8a7c0a3f Mon Sep 17 00:00:00 2001 +From e479324c6b5d92bfc5b6946226f829af562c2d26 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 29 Jul 2023 17:33:24 +0200 -Subject: [PATCH 05/84] ASoC: codecs: rt5640: Keep the codec enabled when idle +Subject: [PATCH 09/90] ASoC: codecs: rt5640: Keep the codec enabled when idle This makes analog audio work even without any i2s streams being enabled. @@ -11,10 +11,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+) diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c -index 1553a0b1f936..d6859a079538 100644 +index 12943724f653..d48eafb3c243 100644 --- a/sound/soc/codecs/rt5640.c +++ b/sound/soc/codecs/rt5640.c -@@ -2954,6 +2954,8 @@ static const struct snd_soc_component_driver soc_component_dev_rt5640 = { +@@ -2957,6 +2957,8 @@ static const struct snd_soc_component_driver soc_component_dev_rt5640 = { .num_dapm_widgets = ARRAY_SIZE(rt5640_dapm_widgets), .dapm_routes = rt5640_dapm_routes, .num_dapm_routes = ARRAY_SIZE(rt5640_dapm_routes), diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0006-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0010-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch similarity index 85% rename from device/community/linux-pine64-pinephonepro/megi_patches/0006-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0010-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch index 44da1e08b..d3e9f249a 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0006-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0010-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch @@ -1,7 +1,7 @@ -From fc33dcc63c708630afafbc6c0b8541680113c95a Mon Sep 17 00:00:00 2001 +From dac0859ccdddd2b911655774739bdcb7a147cfc0 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Thu, 7 Sep 2023 22:58:22 +0200 -Subject: [PATCH 06/84] ASoC: codecs: rt5640: Add support for power supplies +Subject: [PATCH 10/90] ASoC: codecs: rt5640: Add support for power supplies Signed-off-by: Ondrej Jirman --- @@ -9,7 +9,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 16 insertions(+) diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c -index d6859a079538..7d7dad5ed884 100644 +index d48eafb3c243..8c2444e709d6 100644 --- a/sound/soc/codecs/rt5640.c +++ b/sound/soc/codecs/rt5640.c @@ -17,6 +17,7 @@ @@ -34,7 +34,7 @@ index d6859a079538..7d7dad5ed884 100644 static const struct regmap_range_cfg rt5640_ranges[] = { { .name = "PR", .range_min = RT5640_PR_BASE, .range_max = RT5640_PR_BASE + 0xb4, -@@ -3031,6 +3039,14 @@ static int rt5640_i2c_probe(struct i2c_client *i2c) +@@ -3034,6 +3042,14 @@ static int rt5640_i2c_probe(struct i2c_client *i2c) msleep(400); } diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0011-ASoC-rockchip-Fix-doubling-of-playback-speed-after-s.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0011-ASoC-rockchip-Fix-doubling-of-playback-speed-after-s.patch index f5ab6b5a8..31c58a2ad 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0011-ASoC-rockchip-Fix-doubling-of-playback-speed-after-s.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0011-ASoC-rockchip-Fix-doubling-of-playback-speed-after-s.patch @@ -1,7 +1,7 @@ -From 2cfdbc171b7b0d0d03edd78fae516fa1310fcf17 Mon Sep 17 00:00:00 2001 +From d071ab724dd96ea8c84f72d0b56c4477fcae6248 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 15 Aug 2022 02:23:37 +0200 -Subject: [PATCH 11/84] ASoC: rockchip: Fix doubling of playback speed after +Subject: [PATCH 11/90] ASoC: rockchip: Fix doubling of playback speed after system sleep There is some issue with CRU on RK3399 that can be reproduced by: @@ -24,7 +24,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 7 insertions(+) diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s.c -index 0a0a95b4f520..6dce1db85427 100644 +index 64c90316fa02..8f4ead7a297d 100644 --- a/sound/soc/rockchip/rockchip_i2s.c +++ b/sound/soc/rockchip/rockchip_i2s.c @@ -114,6 +114,13 @@ static int i2s_runtime_resume(struct device *dev) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0020-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0012-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch similarity index 92% rename from device/community/linux-pine64-pinephonepro/megi_patches/0020-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0012-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch index 3909ff4e7..16fac69be 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0020-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0012-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch @@ -1,7 +1,7 @@ -From 2b6b4c84b9ee0ad52817dac708e52962033028bb Mon Sep 17 00:00:00 2001 +From 276d979f4e3524c970fa89361a49cc0f0956cbfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 22 Jun 2020 02:28:01 +0200 -Subject: [PATCH 20/84] power: supply: Add support for USB_BC_ENABLED and +Subject: [PATCH 12/90] power: supply: Add support for USB_BC_ENABLED and USB_DCP_INPUT_CURRENT_LIMIT - USB_BC_ENABLED - enabling/disabling BC 1.2 USB type detection diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0021-mfd-rk8xx-Enable-rk808-clkout2-function.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0013-mfd-rk8xx-Enable-rk808-clkout2-function.patch similarity index 71% rename from device/community/linux-pine64-pinephonepro/megi_patches/0021-mfd-rk8xx-Enable-rk808-clkout2-function.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0013-mfd-rk8xx-Enable-rk808-clkout2-function.patch index 75ad5d1ec..3fe75c833 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0021-mfd-rk8xx-Enable-rk808-clkout2-function.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0013-mfd-rk8xx-Enable-rk808-clkout2-function.patch @@ -1,14 +1,18 @@ -From 33fe1a73fcef2b401a5b2bae0dc15809836d3604 Mon Sep 17 00:00:00 2001 +From b10973c0e6b3c2fdc6fb0b26c6938762812d750e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Mon, 4 Jan 2021 17:57:49 +0100 -Subject: [PATCH 21/84] mfd: rk8xx: Enable rk808-clkout2 function +Subject: [PATCH 13/90] mfd: rk8xx: Enable rk808-clkout2 function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -??? +The CLK32KOUT2 pin is shared between the 32 kHz clock output and another +function, selected by bit 1 of CLK32OUT. Select the clock function on +RK818 during pre-init, so that the rk808-clkout2 clock reaches whatever +consumes it. The gate itself is left to the clock driver. -Signed-of-by: Kamil Trzciński +Signed-off-by: Kamil Trzciński +Signed-off-by: Ondrej Jirman --- drivers/mfd/rk8xx-core.c | 1 + include/linux/mfd/rk808.h | 2 ++ diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0022-power-supply-rk818_battery-Add-battery-charger-drive.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0014-power-supply-rk818_battery-Add-battery-charger-drive.patch similarity index 99% rename from device/community/linux-pine64-pinephonepro/megi_patches/0022-power-supply-rk818_battery-Add-battery-charger-drive.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0014-power-supply-rk818_battery-Add-battery-charger-drive.patch index 1865d00fc..ec2b588b9 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0022-power-supply-rk818_battery-Add-battery-charger-drive.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0014-power-supply-rk818_battery-Add-battery-charger-drive.patch @@ -1,16 +1,13 @@ -From 5e2319782b4fdf05161d264dde23ac10dc1b8949 Mon Sep 17 00:00:00 2001 +From b8835b540888a8db30800b0df179ee6b332d8b38 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 11 Jun 2023 18:29:24 +0200 -Subject: [PATCH 22/84] power: supply: rk818_battery: Add battery charger +Subject: [PATCH 14/90] power: supply: rk818_battery: Add battery charger driver for RK818 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit RK818 is a PMIC used on Pinephone. This is a battery charger driver for it. -Signed-of-by: Ondřej Jirman +Signed-off-by: Ondrej Jirman --- drivers/mfd/rk8xx-core.c | 1 + drivers/mfd/rk8xx-i2c.c | 38 +- @@ -88,10 +85,10 @@ index 2951b2911a37..1f5b291e127c 100644 static const struct regmap_config rk801_regmap_config = { diff --git a/drivers/power/supply/Kconfig b/drivers/power/supply/Kconfig -index 83392ed6a8da..9a8401fc76fa 100644 +index f0ede1cecb6a..fcceed206673 100644 --- a/drivers/power/supply/Kconfig +++ b/drivers/power/supply/Kconfig -@@ -1165,4 +1165,12 @@ config MACSMC_POWER +@@ -1186,4 +1186,12 @@ config MACSMC_POWER Say Y or M here if you have an Apple Silicon based Mac. @@ -105,10 +102,10 @@ index 83392ed6a8da..9a8401fc76fa 100644 + endif # POWER_SUPPLY diff --git a/drivers/power/supply/Makefile b/drivers/power/supply/Makefile -index 7ee839dca7f3..087d75a200de 100644 +index 31fe4a145929..dbf07c4a962c 100644 --- a/drivers/power/supply/Makefile +++ b/drivers/power/supply/Makefile -@@ -131,3 +131,4 @@ obj-$(CONFIG_CHARGER_QCOM_SMB2) += qcom_smbx.o +@@ -133,3 +133,4 @@ obj-$(CONFIG_CHARGER_QCOM_SMB2) += qcom_smbx.o obj-$(CONFIG_FUEL_GAUGE_MM8013) += mm8013.o obj-$(CONFIG_MACSMC_POWER) += macsmc-power.o obj-$(CONFIG_CHARGER_MAX77759) += max77759_charger.o diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0023-power-supply-rk818_battery-Add-code-docs-for-the-HW-.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0015-power-supply-rk818_battery-Add-code-docs-for-the-HW-.patch similarity index 97% rename from device/community/linux-pine64-pinephonepro/megi_patches/0023-power-supply-rk818_battery-Add-code-docs-for-the-HW-.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0015-power-supply-rk818_battery-Add-code-docs-for-the-HW-.patch index e514ec63f..f5eac752f 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0023-power-supply-rk818_battery-Add-code-docs-for-the-HW-.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0015-power-supply-rk818_battery-Add-code-docs-for-the-HW-.patch @@ -1,13 +1,10 @@ -From 4d1a2cabfffeed3f41c697d6712941adbc74f6b6 Mon Sep 17 00:00:00 2001 +From 8678f78f2d44ecac1b0000e0ecef81254428d087 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 11 Apr 2026 16:38:03 +0200 -Subject: [PATCH 23/84] power: supply: rk818_battery: Add code/docs for the HW +Subject: [PATCH 15/90] power: supply: rk818_battery: Add code/docs for the HW reverse engineering -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Signed-of-by: Ondřej Jirman +Signed-off-by: Ondrej Jirman --- drivers/power/supply/rk818_battery.c | 246 +++++++++++++++++++++++++++ 1 file changed, 246 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0016-power-supply-rk818_battery-Don-t-override-configured.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0016-power-supply-rk818_battery-Don-t-override-configured.patch new file mode 100644 index 000000000..554a66c50 --- /dev/null +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0016-power-supply-rk818_battery-Don-t-override-configured.patch @@ -0,0 +1,39 @@ +From 48a9b0b4a9024a32112883e1ff481c92b80fc528 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 25 Jul 2026 11:57:17 +0200 +Subject: [PATCH 16/90] power: supply: rk818_battery: Don't override configured + charger limits in probe + +Probe was overwriting CHRG_CTRL_REG1 with hardcoded 1.2A/4.3V limits +right after rk818_configure_charger() applied the limits from battery +info, so constant-charge-current-max-microamp from DT never took +effect. Just enable the charger without touching the limit fields. + +Signed-off-by: Ondrej Jirman +--- + drivers/power/supply/rk818_battery.c | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/drivers/power/supply/rk818_battery.c b/drivers/power/supply/rk818_battery.c +index a4af2631d3bf..27da0b1d52e8 100644 +--- a/drivers/power/supply/rk818_battery.c ++++ b/drivers/power/supply/rk818_battery.c +@@ -2538,11 +2538,10 @@ static int rk818_battery_probe(struct platform_device *pdev) + if (ret) + dev_warn(di->dev, "failed to enable analog control loop (%d)\n", ret); + +- /* enable charger and set some reasonable limits on each boot */ +- ret = regmap_write(di->regmap, RK818_CHRG_CTRL_REG1, +- RK818_CHRG_CTRL_REG1_CHRG_EN +- | (1) /* 1.2A */ +- | (5 << 4) /* 4.3V */); ++ /* enable charger (limits are set up by rk818_configure_charger) */ ++ ret = regmap_update_bits(di->regmap, RK818_CHRG_CTRL_REG1, ++ RK818_CHRG_CTRL_REG1_CHRG_EN, ++ RK818_CHRG_CTRL_REG1_CHRG_EN); + if (ret) + dev_warn(di->dev, "failed to enable charger (%d)\n", ret); + +-- +2.55.0 + diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0017-power-supply-rk818_battery-Scale-charge-current-by-t.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0017-power-supply-rk818_battery-Scale-charge-current-by-t.patch new file mode 100644 index 000000000..a531b206e --- /dev/null +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0017-power-supply-rk818_battery-Scale-charge-current-by-t.patch @@ -0,0 +1,82 @@ +From 78c1af9af2666ef3e819ab384bbea8d369448a38 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 25 Jul 2026 11:44:47 +0200 +Subject: [PATCH 17/90] power: supply: rk818_battery: Scale charge current by + the sense resistor value + +CHRG_CUR_SEL steps are nominal values for the reference 20 mOhm sense +resistor design. The CC loop regulates the voltage drop across +SNSP/SNSN, so with the 10 mOhm resistor used on Pinephone Pro the +actual charging current is 2x the nominal value. Confirmed by +measurement on PPP against a lab PSU - 1.76A battery current with the +register set to the 1A step. Vendor BSP scales by the same factor. + +Scale the requested and reported constant charge current by the sense +resistor value and warn when the requested limit is below the hardware +minimum (2A actual on 10 mOhm boards). + +Signed-off-by: Ondrej Jirman +--- + drivers/power/supply/rk818_battery.c | 31 ++++++++++++++++++++++++---- + 1 file changed, 27 insertions(+), 4 deletions(-) + +diff --git a/drivers/power/supply/rk818_battery.c b/drivers/power/supply/rk818_battery.c +index 27da0b1d52e8..bc6d92890405 100644 +--- a/drivers/power/supply/rk818_battery.c ++++ b/drivers/power/supply/rk818_battery.c +@@ -1764,17 +1764,40 @@ static const struct power_supply_desc rk818_usb_desc = { + * Charger / battery supply + * ========================================================================= */ + ++/* ++ * CHRG_CUR_SEL and CHRG_TERM_SEL step values assume the reference 20 mOhm ++ * sense resistor design. The charger regulates the voltage drop across ++ * SNSP/SNSN, so on boards with a different sense resistor the actual ++ * current is scaled by 20 mOhm / R_sense (2x on the 10 mOhm Pinephone Pro ++ * design). ++ */ ++static int rk818_charger_current_to_nominal(struct rk818_battery *di, int val) ++{ ++ return val * (int)di->sense_resist_mohm / 20; ++} ++ ++static int rk818_charger_nominal_to_current(struct rk818_battery *di, int val) ++{ ++ return val * 20 / (int)di->sense_resist_mohm; ++} ++ + static int rk818_charger_set_current_max(struct rk818_battery *di, int val) + { + unsigned reg; + int ret; + +- if (val < 1000000) ++ val = rk818_charger_current_to_nominal(di, val); ++ ++ if (val < 1000000) { ++ dev_warn(di->dev, ++ "Requested charge current is below the hardware minimum of %d uA\n", ++ rk818_charger_nominal_to_current(di, 1000000)); + reg = 0; +- else if (val < 3000000) ++ } else if (val < 3000000) { + reg = (val - 1000000) / 200000; +- else ++ } else { + reg = 10; ++ } + + ret = regmap_update_bits(di->regmap, RK818_CHRG_CTRL_REG1, + RK818_CHRG_CTRL_REG1_CHRG_CUR_SEL_MASK, +@@ -1801,7 +1824,7 @@ static int rk818_charger_get_current_max(struct rk818_battery *di, int *val) + reg &= RK818_CHRG_CTRL_REG1_CHRG_CUR_SEL_MASK; + reg >>= RK818_CHRG_CTRL_REG1_CHRG_CUR_SEL_OFFSET; + +- *val = 1000000 + reg * 200000; ++ *val = rk818_charger_nominal_to_current(di, 1000000 + reg * 200000); + + return 0; + } +-- +2.55.0 + diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0018-power-supply-rk818_battery-Scale-termination-current.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0018-power-supply-rk818_battery-Scale-termination-current.patch new file mode 100644 index 000000000..d07c88556 --- /dev/null +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0018-power-supply-rk818_battery-Scale-termination-current.patch @@ -0,0 +1,76 @@ +From ccc1a807db3c6d8945f1770df8e1f5e1b4ad7218 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 25 Jul 2026 11:45:56 +0200 +Subject: [PATCH 18/90] power: supply: rk818_battery: Scale termination current + by the sense resistor value + +CHRG_TERM_SEL steps are nominal values for the reference 20 mOhm sense +resistor design, like the CC current steps. On the 10 mOhm Pinephone +Pro design the 150 mA setting from DT terminated charging at ~300 mA +of actual current, ending the CV phase early and leaving the battery +visibly below the CV setpoint. This matches the vendor BSP, which +forces the lowest termination step on 10 mOhm boards. + +Encode the termination current scaled by the sense resistor and report +the actual value. Drop the 10 mOhm special case from the fallback - +the scaling now covers it with the same resulting register values. + +Signed-off-by: Ondrej Jirman +--- + drivers/power/supply/rk818_battery.c | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +diff --git a/drivers/power/supply/rk818_battery.c b/drivers/power/supply/rk818_battery.c +index bc6d92890405..d9b62d45f114 100644 +--- a/drivers/power/supply/rk818_battery.c ++++ b/drivers/power/supply/rk818_battery.c +@@ -334,6 +334,7 @@ static void rk818_clrsetbits(struct rk818_battery *di, u8 reg, u8 mask, u8 val) + /* Forward declarations for helpers used before their definition. */ + static int rk818_charger_set_current_max(struct rk818_battery *di, int val); + static int rk818_charger_set_voltage_max(struct rk818_battery *di, int val); ++static int rk818_charger_current_to_nominal(struct rk818_battery *di, int val); + + /* + * Read a big-endian 16-bit register pair and apply linear voltage calibration. +@@ -838,14 +839,13 @@ static void rk818_configure_charger(struct rk818_battery *di) + + /* + * Termination current: prefer charge_term_current_ua from the DT; +- * fall back to ~C/30 of FCC scaled by sense resistor, then encode +- * to the nearest supported FINISH_*MA step. ++ * fall back to ~C/30 of FCC. The FINISH_*MA steps are nominal ++ * values for a 20 mOhm sense resistor, so encode the value scaled ++ * by the actual sense resistor. + */ + term_ua = di->info->charge_term_current_ua; + if (term_ua <= 0) { +- if (di->sense_resist_mohm == 10) +- term_ua = 100000; +- else if (di->fcc_mah >= 5000) ++ if (di->fcc_mah >= 5000) + term_ua = 250000; + else if (di->fcc_mah >= 4000) + term_ua = 200000; +@@ -854,7 +854,8 @@ static void rk818_configure_charger(struct rk818_battery *di) + else + term_ua = 100000; + } +- finish_ma = rk818_encode_finish_current(term_ua); ++ finish_ma = rk818_encode_finish_current( ++ rk818_charger_current_to_nominal(di, term_ua)); + + usb_ctrl = rk818_read(di, RK818_USB_CTRL_REG); + chrg2 = rk818_read(di, RK818_CHRG_CTRL_REG2); +@@ -1947,7 +1948,8 @@ static int rk818_charger_get_property(struct power_supply *psy, + if (ret) + return ret; + +- val->intval = 100000 + ((reg >> 6) & 3) * 50000; ++ val->intval = rk818_charger_nominal_to_current(di, ++ 100000 + ((reg >> 6) & 3) * 50000); + break; + + case POWER_SUPPLY_PROP_HEALTH: +-- +2.55.0 + diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0019-power-supply-rk818_battery-Compensate-for-IR-drop-wh.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0019-power-supply-rk818_battery-Compensate-for-IR-drop-wh.patch new file mode 100644 index 000000000..d43dcbb04 --- /dev/null +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0019-power-supply-rk818_battery-Compensate-for-IR-drop-wh.patch @@ -0,0 +1,116 @@ +From 3195910b3a45a0642b2119a623ddf1e3a79e3921 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 25 Jul 2026 11:58:18 +0200 +Subject: [PATCH 19/90] power: supply: rk818_battery: Compensate for IR drop + when detecting an empty battery + +The gauge forced dsoc to 0 as soon as the average terminal voltage +dropped below voltage-min-design. Under high load the terminal voltage +of a battery with plenty of charge left dips below that threshold +(e.g. OCV 3.7V with a ~300mV drop at 2A), making userspace shut the +system down prematurely. + +Estimate OCV by compensating the terminal voltage for the drop on the +battery internal resistance, like the coulomb counter underflow path +already does, and require the estimate to stay below the threshold for +several monitor cycles before reporting the battery as empty. + +Signed-off-by: Ondrej Jirman +--- + drivers/power/supply/rk818_battery.c | 45 +++++++++++++++++++++------- + 1 file changed, 34 insertions(+), 11 deletions(-) + +diff --git a/drivers/power/supply/rk818_battery.c b/drivers/power/supply/rk818_battery.c +index d9b62d45f114..35eb8f2098af 100644 +--- a/drivers/power/supply/rk818_battery.c ++++ b/drivers/power/supply/rk818_battery.c +@@ -156,6 +156,8 @@ + + /* SoC / capacity */ + #define MIN_FCC 500 /* mAh */ ++/* Monitor cycles the OCV estimate must stay below vmin to report empty */ ++#define VMIN_EMPTY_CYCLES 3 + + /* + * Coulomb counter LSB denominator. +@@ -267,6 +269,8 @@ struct rk818_battery { + int fcc_mah; + int rsoc; + int dsoc; ++ /* Monitor cycles with the OCV estimate below the design minimum */ ++ int vmin_cycles; + + int chrg_status; + bool is_charging; +@@ -1034,6 +1038,17 @@ static void rk818_periodic_calib(struct rk818_battery *di) + * Main monitor work + * ------------------------------------------------------------------------- */ + ++/* ++ * Estimate OCV from the average terminal voltage by compensating for the ++ * drop on the battery internal resistance (discharge current is negative). ++ */ ++static int rk818_est_ocv(struct rk818_battery *di) ++{ ++ return di->voltage_avg_mv - ++ (di->info->factory_internal_resistance_uohm / 1000) * ++ di->current_avg_ma / 1000; ++} ++ + /* + * rk818_update_soc - recompute rsoc from the coulomb counter and step dsoc + * toward it by at most DSOC_DELTA_MAX per call. +@@ -1041,7 +1056,7 @@ static void rk818_periodic_calib(struct rk818_battery *di) + * Special cases: + * - RK818_CHG_STS_TERMINATED: snap remain_cap to fcc so rsoc hits 100 cleanly. + * - Valid relaxed voltage: re-anchor the coulomb counter to the OCV cap. +- * - Voltage below shutdown threshold: force dsoc to 0. ++ * - OCV estimate below shutdown threshold: force dsoc to 0. + */ + static void rk818_update_soc(struct rk818_battery *di) + { +@@ -1070,12 +1085,23 @@ static void rk818_update_soc(struct rk818_battery *di) + di->remain_cap_mah = rk818_get_coulomb_cap(di); + di->rsoc = clamp(di->remain_cap_mah * 100 / DIV(di->fcc_mah), 0, 100); + +- if (di->voltage_avg_mv < di->info->voltage_min_design_uv / 1000) { +- dev_dbg(di->dev, +- "voltage %d mV below shutdown threshold %u mV\n", +- di->voltage_avg_mv, di->info->voltage_min_design_uv / 1000); +- di->dsoc = 0; +- return; ++ /* ++ * Report an empty battery only when the IR compensated OCV estimate ++ * stays below the design minimum for several monitor cycles. Bare ++ * terminal voltage dips below the threshold under high load with ++ * plenty of charge left in the battery. ++ */ ++ if (rk818_est_ocv(di) < di->info->voltage_min_design_uv / 1000) { ++ if (++di->vmin_cycles >= VMIN_EMPTY_CYCLES) { ++ dev_dbg(di->dev, ++ "OCV estimate %d mV below shutdown threshold %u mV\n", ++ rk818_est_ocv(di), ++ di->info->voltage_min_design_uv / 1000); ++ di->dsoc = 0; ++ return; ++ } ++ } else { ++ di->vmin_cycles = 0; + } + + di->dsoc = clamp(di->dsoc + +@@ -1350,10 +1376,7 @@ static void rk818_battery_work(struct work_struct *work) + * Estimate from terminal voltage when the counter underflows. + * Subtract the resistive drop to get a rough OCV. + */ +- int est_vol = di->voltage_avg_mv - +- (di->info->factory_internal_resistance_uohm / 1000) * +- di->current_avg_ma / 1000; +- int est_cap = max(0, vol_to_cap(di, est_vol)); ++ int est_cap = max(0, vol_to_cap(di, rk818_est_ocv(di))); + + dev_info(di->dev, + "counter underflow, voltage estimate: %d mAh\n", +-- +2.55.0 + diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0020-power-supply-rk818_battery-Rework-the-low-voltage-mo.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0020-power-supply-rk818_battery-Rework-the-low-voltage-mo.patch new file mode 100644 index 000000000..900677de8 --- /dev/null +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0020-power-supply-rk818_battery-Rework-the-low-voltage-mo.patch @@ -0,0 +1,163 @@ +From 4495677dd25726e204a3c89a577d31bca7115e57 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 25 Jul 2026 11:59:50 +0200 +Subject: [PATCH 20/90] power: supply: rk818_battery: Rework the low voltage + monitor setup + +The VBAT low voltage monitor was armed at 3.4V in interrupt mode with +the interrupt unmasked at all times. The monitor watches Vsys behind +the internal battery switch with only 2ms of debouncing, so it fired +on transient load dips long before the battery was empty, causing +spurious interrupts at runtime and spurious wakeups from suspend. + +While the system runs, park the monitor at 3.0V with the interrupt +masked - empty battery reporting is done by the fuel gauge and the +fixed 2.7V UVLO remains as the hardware backstop. Re-arm the monitor +at 3.4V as an unmasked wakeup source only when entering suspend, so +the system wakes up and can shut down cleanly before the battery runs +out. The vendor BSP arms the 3.4V wakeup only for suspend, too. + +On the wakeup, refresh the gauge state and notify userspace right +away instead of just logging. The handler now uses the monitor work, +so set the workqueue up before requesting the interrupt in probe. + +Signed-off-by: Ondrej Jirman +--- + drivers/power/supply/rk818_battery.c | 61 +++++++++++++++++++--------- + 1 file changed, 42 insertions(+), 19 deletions(-) + +diff --git a/drivers/power/supply/rk818_battery.c b/drivers/power/supply/rk818_battery.c +index 35eb8f2098af..eee0ef08a3a3 100644 +--- a/drivers/power/supply/rk818_battery.c ++++ b/drivers/power/supply/rk818_battery.c +@@ -88,6 +88,7 @@ + + /* RK818_VB_MON_REG */ + #define PLUG_IN_STS BIT(6) ++#define RK818_VBAT_LOW_3V0 0x02 + #define RK818_VBAT_LOW_3V4 0x06 + + /* RK818_MISC_MARK_REG */ +@@ -748,19 +749,26 @@ static void rk818_configure_relax_thresholds(struct rk818_battery *di) + } + + /* +- * Set the VBAT low-voltage monitor to 3.4 V in IRQ (not hard-shutdown) mode +- * so the system receives a wakeup event when the battery is nearly empty. +- * Unmask the corresponding interrupt so it is actually delivered. ++ * Configure the VBAT low-voltage monitor. The monitor watches Vsys (behind ++ * the internal battery switch) with only 2 ms of debouncing, so a 3.4 V ++ * threshold trips on transient load dips long before the battery is empty. ++ * While the system runs, park the monitor at 3.0 V in interrupt mode with ++ * the interrupt masked - empty battery reporting is done by the fuel gauge ++ * and the fixed 2.7 V UVLO remains as the hardware backstop. For suspend, ++ * re-arm it at 3.4 V as an unmasked wakeup source so the system can wake ++ * up and shut down cleanly before the battery runs out. + */ +-static void rk818_set_low_voltage_irq(struct rk818_battery *di) ++static void rk818_set_low_voltage_irq(struct rk818_battery *di, bool wakeup) + { + u8 val = rk818_read(di, RK818_VB_MON_REG); + +- val = (val & ~(VBAT_LOW_VOL_MASK | VBAT_LOW_ACT_MASK)) | +- RK818_VBAT_LOW_3V4 | EN_VBAT_LOW_IRQ; ++ val &= ~(VBAT_LOW_VOL_MASK | VBAT_LOW_ACT_MASK); ++ val |= EN_VBAT_LOW_IRQ; ++ val |= wakeup ? RK818_VBAT_LOW_3V4 : RK818_VBAT_LOW_3V0; + rk818_write(di, RK818_VB_MON_REG, val); +- /* Clear the mask bit to enable the interrupt */ +- rk818_clrsetbits(di, RK818_INT_STS_MSK_REG1, VB_LOW_INT_EN, 0); ++ ++ rk818_clrsetbits(di, RK818_INT_STS_MSK_REG1, VB_LOW_INT_EN, ++ wakeup ? 0 : VB_LOW_INT_EN); + } + + /* +@@ -1490,7 +1498,7 @@ static int rk818_battery_suspend(struct platform_device *pdev, + + rk818_save_dsoc(di); + rk818_save_remain_cap(di); +- rk818_set_low_voltage_irq(di); ++ rk818_set_low_voltage_irq(di, true); + + dev_info(di->dev, + "suspend: dsoc=%d rsoc=%d i=%d mA v=%d mV cap=%d mAh chrg=%d\n", +@@ -1531,7 +1539,7 @@ static int rk818_battery_resume(struct platform_device *pdev) + } + + rk818_save_dsoc(di); +- rk818_set_low_voltage_irq(di); ++ rk818_set_low_voltage_irq(di, false); + + dev_info(di->dev, + "resume: dsoc=%d rsoc=%d i=%d mA v=%d mV cap=%d mAh\n", +@@ -1553,6 +1561,15 @@ static irqreturn_t rk818_vb_low_irq(int irq, void *data) + + dev_warn(di->dev, "low battery IRQ: v=%d mV dsoc=%d%%\n", + di->voltage_avg_mv, di->dsoc); ++ ++ /* ++ * The interrupt is only unmasked as a suspend wakeup source. Refresh ++ * the gauge state and notify userspace right away, so that it can ++ * react to the nearly empty battery after the wakeup. ++ */ ++ mod_delayed_work(di->wq, &di->work, 0); ++ power_supply_changed(di->charger_psy); ++ + return IRQ_HANDLED; + } + +@@ -2570,7 +2587,7 @@ static int rk818_battery_probe(struct platform_device *pdev) + rk818_init_soc(di); + rk818_configure_charger(di); + rk818_init_ts1_detect(di); +- rk818_set_low_voltage_irq(di); ++ rk818_set_low_voltage_irq(di, false); + + /* disable voltage limit and enable input current limit */ + ret = regmap_update_bits(di->regmap, RK818_SUP_STS_REG, +@@ -2595,27 +2612,33 @@ static int rk818_battery_probe(struct platform_device *pdev) + + rk818_usb_power_external_power_changed(di->usb_psy); + ++ /* The vb_lo IRQ handler uses the work, set it up first. */ ++ di->wq = alloc_ordered_workqueue("rk818-bat", ++ WQ_MEM_RECLAIM | WQ_FREEZABLE); ++ if (!di->wq) ++ return -ENOMEM; ++ ++ INIT_DELAYED_WORK(&di->work, rk818_battery_work); ++ + vb_lo_irq = regmap_irq_get_virq(rk818->irq_data, RK818_IRQ_VB_LO); +- if (vb_lo_irq < 0) ++ if (vb_lo_irq < 0) { ++ destroy_workqueue(di->wq); + return dev_err_probe(di->dev, vb_lo_irq, + "cannot get vb_lo virq\n"); ++ } + + ret = devm_request_threaded_irq(di->dev, vb_lo_irq, NULL, + rk818_vb_low_irq, + IRQF_TRIGGER_HIGH | IRQF_ONESHOT, + "rk818_vb_low", di); +- if (ret) ++ if (ret) { ++ destroy_workqueue(di->wq); + return dev_err_probe(di->dev, ret, + "failed to request vb_lo IRQ\n"); ++ } + + enable_irq_wake(vb_lo_irq); + +- di->wq = alloc_ordered_workqueue("rk818-bat", +- WQ_MEM_RECLAIM | WQ_FREEZABLE); +- if (!di->wq) +- return -ENOMEM; +- +- INIT_DELAYED_WORK(&di->work, rk818_battery_work); + queue_delayed_work(di->wq, &di->work, msecs_to_jiffies(di->monitor_ms)); + + dev_info(di->dev, "ready: dsoc=%d%% fcc=%d mAh sense=%u mOhm\n", +-- +2.55.0 + diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0024-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0021-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch similarity index 75% rename from device/community/linux-pine64-pinephonepro/megi_patches/0024-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0021-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch index 711a53e0c..b7affb8e7 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0024-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0021-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch @@ -1,21 +1,20 @@ -From 89a656eae098b2a5089daba98f522eb3afadfcc2 Mon Sep 17 00:00:00 2001 +From 298511d788e00b23a1ec29a29656be20d95c4dcf Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 7 May 2024 18:39:12 +0200 -Subject: [PATCH 24/84] Revert "usb: typec: tcpm: unregister existing source +Subject: [PATCH 21/90] Revert "usb: typec: tcpm: unregister existing source caps before re-registration" This reverts commit 230ecdf71a644c9c73e0e6735b33173074ae3f94. - -(cherry picked from commit c64dcf8a8fb966ba3c537fd9722875a6fd1dd9ad) +Signed-off-by: Ondrej Jirman --- drivers/usb/typec/tcpm/tcpm.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c -index 7ef746a90a17..d839c72fa8ee 100644 +index 89eec20a2064..d684058cfb2e 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c -@@ -3306,7 +3306,7 @@ static int tcpm_register_source_caps(struct tcpm_port *port) +@@ -3311,7 +3311,7 @@ static int tcpm_register_source_caps(struct tcpm_port *port) { struct usb_power_delivery_desc desc = { port->negotiated_rev }; struct usb_power_delivery_capabilities_desc caps = { }; @@ -24,7 +23,7 @@ index 7ef746a90a17..d839c72fa8ee 100644 if (!port->partner_pd) port->partner_pd = usb_power_delivery_register(NULL, &desc); -@@ -3316,11 +3316,6 @@ static int tcpm_register_source_caps(struct tcpm_port *port) +@@ -3321,11 +3321,6 @@ static int tcpm_register_source_caps(struct tcpm_port *port) memcpy(caps.pdo, port->source_caps, sizeof(u32) * port->nr_source_caps); caps.role = TYPEC_SOURCE; diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0025-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0022-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch similarity index 95% rename from device/community/linux-pine64-pinephonepro/megi_patches/0025-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0022-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch index f93b226f4..384fcb944 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0025-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0022-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch @@ -1,7 +1,7 @@ -From e2139511dc9de1531aba8bed11bc20c4be3ea80a Mon Sep 17 00:00:00 2001 +From 2653125a00122f0cbd9fbfad0ce7e235efa063de Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 5 Sep 2022 00:56:07 +0200 -Subject: [PATCH 25/84] usb: typec: altmodes: displayport: Respect +Subject: [PATCH 22/90] usb: typec: altmodes: displayport: Respect DP_CAP_RECEPTACLE bit DP_CAP_RECEPTACLE swaps the meaning of pin assignments. So eg. @@ -14,7 +14,6 @@ USB-C dock doesn't have working Alt-DP mode, in case the dock returns wrong VDO. Signed-off-by: Ondrej Jirman -(cherry picked from commit 24fc74e1651b5ad8c83ac073b4327b09e09ca5a5) --- drivers/usb/typec/altmodes/displayport.c | 54 +++++++++++++++++++++--- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0026-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0023-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch similarity index 85% rename from device/community/linux-pine64-pinephonepro/megi_patches/0026-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0023-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch index 2bd737a7e..44d92c2d4 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0026-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0023-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch @@ -1,7 +1,7 @@ -From 75ba5f3d7e740107b5e471f23e06015c8ae552e3 Mon Sep 17 00:00:00 2001 +From 17cce65d7feb8af435268908330adc08fb40fd78 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 14 Aug 2022 16:23:28 +0200 -Subject: [PATCH 26/84] usb: typec: tcpm: Unregister altmodes before +Subject: [PATCH 23/90] usb: typec: tcpm: Unregister altmodes before registering new ones Just in case there are already altmodes registered. Otherwise the @@ -30,16 +30,15 @@ kernel will fail with: [50554.467528] typec port0-partner: failed to register alternate mode (-17) Signed-off-by: Ondrej Jirman -(cherry picked from commit 30d0f1a4e665f05a1b3a455c84be97ae9011285f) --- drivers/usb/typec/tcpm/tcpm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c -index d839c72fa8ee..d30d7a0a4ac3 100644 +index d684058cfb2e..31c556ee2897 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c -@@ -2030,6 +2030,9 @@ static void tcpm_register_partner_altmodes(struct tcpm_port *port) +@@ -2035,6 +2035,9 @@ static void tcpm_register_partner_altmodes(struct tcpm_port *port) return; for (i = 0; i < modep->altmodes; i++) { diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0027-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0024-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch similarity index 87% rename from device/community/linux-pine64-pinephonepro/megi_patches/0027-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0024-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch index 95fa5587e..2a7191440 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0027-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0024-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch @@ -1,7 +1,7 @@ -From dc4a3a79432f9cadd1e384806150ee0c50caac40 Mon Sep 17 00:00:00 2001 +From 3c8c4d0a120155eb4caf1674485bb1efd429a892 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 18 Feb 2023 00:38:44 +0100 -Subject: [PATCH 27/84] usb: typec: tcpm: Fix PD devices/capabilities +Subject: [PATCH 24/90] usb: typec: tcpm: Fix PD devices/capabilities registration Unregister caps before registering them. Store NULL to the struct @@ -11,16 +11,15 @@ Fixes "sysfs: cannot create duplicate filename '/devices/virtual/usb_power_delivery/pd1/source-capabilities'" error. Signed-off-by: Ondrej Jirman -(cherry picked from commit 49530effc5b55eaee992aca23ef4302c64543e6d) --- drivers/usb/typec/tcpm/tcpm.c | 37 +++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c -index d30d7a0a4ac3..3ba7511a2785 100644 +index 31c556ee2897..313204394b32 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c -@@ -3310,15 +3310,22 @@ static int tcpm_register_source_caps(struct tcpm_port *port) +@@ -3315,15 +3315,22 @@ static int tcpm_register_source_caps(struct tcpm_port *port) struct usb_power_delivery_desc desc = { port->negotiated_rev }; struct usb_power_delivery_capabilities_desc caps = { }; struct usb_power_delivery_capabilities *cap; @@ -47,7 +46,7 @@ index d30d7a0a4ac3..3ba7511a2785 100644 cap = usb_power_delivery_register_capabilities(port->partner_pd, &caps); if (IS_ERR(cap)) return PTR_ERR(cap); -@@ -3333,15 +3340,22 @@ static int tcpm_register_sink_caps(struct tcpm_port *port) +@@ -3338,15 +3345,22 @@ static int tcpm_register_sink_caps(struct tcpm_port *port) struct usb_power_delivery_desc desc = { port->negotiated_rev }; struct usb_power_delivery_capabilities_desc caps = { }; struct usb_power_delivery_capabilities *cap; @@ -74,7 +73,7 @@ index d30d7a0a4ac3..3ba7511a2785 100644 cap = usb_power_delivery_register_capabilities(port->partner_pd, &caps); if (IS_ERR(cap)) return PTR_ERR(cap); -@@ -7746,10 +7760,17 @@ static int tcpm_port_register_pd(struct tcpm_port *port) +@@ -7751,10 +7765,17 @@ static int tcpm_port_register_pd(struct tcpm_port *port) port->pds[i] = usb_power_delivery_register(port->dev, &desc); if (IS_ERR(port->pds[i])) { ret = PTR_ERR(port->pds[i]); diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0028-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0025-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch similarity index 81% rename from device/community/linux-pine64-pinephonepro/megi_patches/0028-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0025-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch index f30f184c3..1eb805661 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0028-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0025-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch @@ -1,7 +1,7 @@ -From 00a769f5a26e2aad92648a76fbe243224701322f Mon Sep 17 00:00:00 2001 +From 0d237b9154ab2b92b3e114a292ad61a2e3e68e05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 30 Jan 2022 23:46:37 +0100 -Subject: [PATCH 28/84] usb: typec: fusb302: Slightly increase wait time for +Subject: [PATCH 25/90] usb: typec: fusb302: Slightly increase wait time for BC1.2 result This is not strictly necessary, but it should not hurt. Looking at @@ -9,13 +9,12 @@ kernel log timing, the BC1.2 detection completion time and this timeout are quite tight. This adds some headspace just in case. Signed-off-by: Ondrej Jirman -(cherry picked from commit f374eae3ca1bf1b0b2fdced9bb6eb475e92110c0) --- drivers/usb/typec/tcpm/fusb302.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index 9ab1277b7ed1..7ccdb9df7dde 100644 +index 3319f6a2b0c9..aeebc650766d 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -448,9 +448,9 @@ static int tcpm_get_current_limit(struct tcpc_dev *dev) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0029-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0026-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch similarity index 86% rename from device/community/linux-pine64-pinephonepro/megi_patches/0029-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0026-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch index f545450ba..d770e18ee 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0029-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0026-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch @@ -1,20 +1,19 @@ -From 52f27d4d137c4a1d5743618d8c4e5eb4b9fec2d3 Mon Sep 17 00:00:00 2001 +From 96f42d339f4425be888d2cf67100ef59637a7e1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 7 Nov 2021 19:28:27 +0100 -Subject: [PATCH 29/84] usb: typec: fusb302: Set the current before enabling +Subject: [PATCH 26/90] usb: typec: fusb302: Set the current before enabling pullups This seems more reasonable and should avoid short period of incorrect current setting being applied to CC pin. Signed-off-by: Ondrej Jirman -(cherry picked from commit 7c245e878d2f39174a142921dcb14bcd6fd71878) --- drivers/usb/typec/tcpm/fusb302.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index 7ccdb9df7dde..a0382b550e3f 100644 +index aeebc650766d..b2606ab58f0f 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -638,6 +638,14 @@ static int tcpm_set_cc(struct tcpc_dev *dev, enum typec_cc_status cc) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0030-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0027-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch similarity index 89% rename from device/community/linux-pine64-pinephonepro/megi_patches/0030-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0027-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch index 827bc40dd..6b0f82deb 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0030-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0027-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch @@ -1,20 +1,19 @@ -From c4f121b253c37de7cc2aee59bff8dd523dfa562d Mon Sep 17 00:00:00 2001 +From 55586a7e4748a59dff1132da3aa9321bfc9dad00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 23 Nov 2021 17:53:27 +0100 -Subject: [PATCH 30/84] usb: typec: fusb302: Retry reading of CC pins status if +Subject: [PATCH 27/90] usb: typec: fusb302: Retry reading of CC pins status if activity is detected This is just for testing, to see if this ever happens. It should also help when this happens. Signed-off-by: Ondrej Jirman -(cherry picked from commit 48646c9a3afd88fb7cf7f1941bc3666fc23deea6) --- drivers/usb/typec/tcpm/fusb302.c | 34 ++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index a0382b550e3f..0de0dc561c8f 100644 +index b2606ab58f0f..08d3f0663857 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -1248,6 +1248,36 @@ static int fusb302_handle_togdone_snk(struct fusb302_chip *chip, diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0031-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0028-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch similarity index 85% rename from device/community/linux-pine64-pinephonepro/megi_patches/0031-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0028-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch index 0aff562db..23b4fd778 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0031-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0028-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch @@ -1,19 +1,18 @@ -From 91a432b505c84f9552e2d048b1cc4c863a84497f Mon Sep 17 00:00:00 2001 +From b5c5fd36b94b1b7faa461e5e8754f2e40b7a98a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 23 Nov 2021 17:57:06 +0100 -Subject: [PATCH 31/84] usb: typec: fusb302: Update VBUS state even if VBUS +Subject: [PATCH 28/90] usb: typec: fusb302: Update VBUS state even if VBUS interrupt is not triggered This seems to improve robustness. Signed-off-by: Ondrej Jirman -(cherry picked from commit 5097f6ffab505803eae7fb02a411f0c0d9be2732) --- drivers/usb/typec/tcpm/fusb302.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index 0de0dc561c8f..20c9790a4fad 100644 +index 08d3f0663857..69f2bacec4da 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -1567,14 +1567,16 @@ static void fusb302_irq_work(struct work_struct *work) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0032-usb-typec-fusb302-Add-OF-extcon-support.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0029-usb-typec-fusb302-Add-OF-extcon-support.patch similarity index 85% rename from device/community/linux-pine64-pinephonepro/megi_patches/0032-usb-typec-fusb302-Add-OF-extcon-support.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0029-usb-typec-fusb302-Add-OF-extcon-support.patch index e0b5b60d0..30a47f1c3 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0032-usb-typec-fusb302-Add-OF-extcon-support.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0029-usb-typec-fusb302-Add-OF-extcon-support.patch @@ -1,7 +1,7 @@ -From aec8f45667160d719b2e938ae6f48b641a4a1a6c Mon Sep 17 00:00:00 2001 +From 27bdf849a02dd4f438ab42c472a7caa2bd704051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 14 Nov 2021 01:14:25 +0100 -Subject: [PATCH 32/84] usb: typec: fusb302: Add OF extcon support +Subject: [PATCH 29/90] usb: typec: fusb302: Add OF extcon support Look the extcon provider up by phandle, so a device tree can point at the USB2 PHY that runs BC1.2 charger detection. Until now it could only be @@ -14,13 +14,12 @@ behind a driver that waits on this one and resolving it during probe would close that cycle. Signed-off-by: Ondrej Jirman -(cherry picked from commit fe3483dca7f8cdc09397019ba583c345177f27c0) --- drivers/usb/typec/tcpm/fusb302.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index 20c9790a4fad..756582f551be 100644 +index 69f2bacec4da..9c46d1e53e98 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -443,6 +443,16 @@ static int tcpm_get_current_limit(struct tcpc_dev *dev) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0033-usb-typec-fusb302-Fix-register-definitions.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0030-usb-typec-fusb302-Fix-register-definitions.patch similarity index 89% rename from device/community/linux-pine64-pinephonepro/megi_patches/0033-usb-typec-fusb302-Fix-register-definitions.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0030-usb-typec-fusb302-Fix-register-definitions.patch index bccca0324..00f04e1ba 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0033-usb-typec-fusb302-Fix-register-definitions.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0030-usb-typec-fusb302-Fix-register-definitions.patch @@ -1,12 +1,11 @@ -From 007feb7fc3b91608df648b7e88a734907213c35a Mon Sep 17 00:00:00 2001 +From cba45f15d21ee9400961ca0c37c972f7d5ac781e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 20 Nov 2021 14:33:58 +0100 -Subject: [PATCH 33/84] usb: typec: fusb302: Fix register definitions +Subject: [PATCH 30/90] usb: typec: fusb302: Fix register definitions MEASURE_VBUS bit is at position 6. MDAC bits are also wrong. Signed-off-by: Ondrej Jirman -(cherry picked from commit 3d44e93f55bb27844753bb8b142d61ff80347f3a) --- drivers/usb/typec/tcpm/fusb302_reg.h | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0034-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0031-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch similarity index 82% rename from device/community/linux-pine64-pinephonepro/megi_patches/0034-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0031-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch index da3171f18..16aefd6ff 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0034-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0031-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch @@ -1,19 +1,18 @@ -From 415988faed2eca45c77ae549d9a5ee67df31bf7c Mon Sep 17 00:00:00 2001 +From 1ebad4fc5a5243e054ae4271fd6817c52b7e9146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 20 Nov 2021 14:35:10 +0100 -Subject: [PATCH 34/84] usb: typec: fusb302: Clear interrupts before we start +Subject: [PATCH 31/90] usb: typec: fusb302: Clear interrupts before we start toggling This is recommended by the datasheet. Signed-off-by: Ondrej Jirman -(cherry picked from commit 58df0404dd80e7fff7fe3e7c2e4dc1f61614153c) --- drivers/usb/typec/tcpm/fusb302.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index 756582f551be..fe5ac6ec954a 100644 +index 9c46d1e53e98..c0bbce42f251 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -511,6 +511,7 @@ static int fusb302_set_toggling(struct fusb302_chip *chip, diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0035-usb-typec-fusb302-Turn-off-VBUS-and-VCONN-on-shutdow.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0032-usb-typec-fusb302-Turn-off-VBUS-and-VCONN-on-shutdow.patch similarity index 88% rename from device/community/linux-pine64-pinephonepro/megi_patches/0035-usb-typec-fusb302-Turn-off-VBUS-and-VCONN-on-shutdow.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0032-usb-typec-fusb302-Turn-off-VBUS-and-VCONN-on-shutdow.patch index fcefc872a..90c2b3971 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0035-usb-typec-fusb302-Turn-off-VBUS-and-VCONN-on-shutdow.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0032-usb-typec-fusb302-Turn-off-VBUS-and-VCONN-on-shutdow.patch @@ -1,7 +1,7 @@ -From 6190b644bd853b35f7908a27e17f30aa7b09a785 Mon Sep 17 00:00:00 2001 +From c9ab262ca21224c9b390f637c7029d92763bbd13 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 08:45:42 +0200 -Subject: [PATCH 35/84] usb: typec: fusb302: Turn off VBUS and VCONN on +Subject: [PATCH 32/90] usb: typec: fusb302: Turn off VBUS and VCONN on shutdown Nothing turns the port off on the way down, so a source keeps VBUS and @@ -11,14 +11,13 @@ known and leaves the Type-C state machine attaching to a port it never saw come up. Drop both in a shutdown handler so a reboot looks like a cold boot. - -(cherry picked from commit 4109d433711e9873a50152640c5a89cf0c91cbe2) +Signed-off-by: Ondrej Jirman --- drivers/usb/typec/tcpm/fusb302.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index fe5ac6ec954a..ba886c949e47 100644 +index c0bbce42f251..64e3e3ee0b22 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -1839,6 +1839,24 @@ static int fusb302_probe(struct i2c_client *client) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0013-thermal-rockchip-Add-support-for-RV1106-SoC.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0033-thermal-rockchip-Add-support-for-RV1106-SoC.patch similarity index 97% rename from device/community/linux-pine64-pinephonepro/megi_patches/0013-thermal-rockchip-Add-support-for-RV1106-SoC.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0033-thermal-rockchip-Add-support-for-RV1106-SoC.patch index 6263d5a9e..f24928e80 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0013-thermal-rockchip-Add-support-for-RV1106-SoC.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0033-thermal-rockchip-Add-support-for-RV1106-SoC.patch @@ -1,7 +1,7 @@ -From 0b2ffa2ff9972608365e3f7395e2b0320e49b216 Mon Sep 17 00:00:00 2001 +From 6047f1425824ceda6d2da746bab0b5c3daea8611 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 25 Jun 2024 00:00:14 +0200 -Subject: [PATCH 13/84] thermal: rockchip: Add support for RV1106 SoC +Subject: [PATCH 33/90] thermal: rockchip: Add support for RV1106 SoC This SoC includes a thermal sensor, which can be supported by this driver. Add support for it. diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0014-soc-rockchip-Add-support-for-power-monitoring-driver.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0034-soc-rockchip-Add-support-for-power-monitoring-driver.patch similarity index 97% rename from device/community/linux-pine64-pinephonepro/megi_patches/0014-soc-rockchip-Add-support-for-power-monitoring-driver.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0034-soc-rockchip-Add-support-for-power-monitoring-driver.patch index 8c0e959ca..d2f70746a 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0014-soc-rockchip-Add-support-for-power-monitoring-driver.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0034-soc-rockchip-Add-support-for-power-monitoring-driver.patch @@ -1,7 +1,7 @@ -From 3f80fd5e6f79dc72d866cb1869a493e1e12e350d Mon Sep 17 00:00:00 2001 +From e5ba61cb3067bc2610dc8513b74b121fb69b5ce7 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 24 Jun 2024 23:59:19 +0200 -Subject: [PATCH 14/84] soc: rockchip: Add support for power monitoring driver +Subject: [PATCH 34/90] soc: rockchip: Add support for power monitoring driver This driver reports brownouts into kernel log, so that the user can debug causes of SoC instability. diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0015-rtc-rockchip-Add-support-for-RTC-present-in-RV1106-S.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0035-rtc-rockchip-Add-support-for-RTC-present-in-RV1106-S.patch similarity index 98% rename from device/community/linux-pine64-pinephonepro/megi_patches/0015-rtc-rockchip-Add-support-for-RTC-present-in-RV1106-S.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0035-rtc-rockchip-Add-support-for-RTC-present-in-RV1106-S.patch index f7ea2d2c3..875b96f59 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0015-rtc-rockchip-Add-support-for-RTC-present-in-RV1106-S.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0035-rtc-rockchip-Add-support-for-RTC-present-in-RV1106-S.patch @@ -1,7 +1,7 @@ -From eea2b3dbea7c25240cd594f028c5a33d92cf70df Mon Sep 17 00:00:00 2001 +From ec4b1ff6725adf82506ef96b17b0f7c5ed37f499 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 25 Jun 2024 00:01:40 +0200 -Subject: [PATCH 15/84] rtc: rockchip: Add support for RTC present in RV1106 +Subject: [PATCH 35/90] rtc: rockchip: Add support for RTC present in RV1106 SoC This driver adds support for RTC present in Rockchip RV1106 SoC. @@ -15,7 +15,7 @@ Signed-off-by: Ondrej Jirman create mode 100644 drivers/rtc/rtc-rockchip.c diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig -index 364afc73f8ab..bc755773a31d 100644 +index 01def8231873..1b5534d25740 100644 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig @@ -456,6 +456,16 @@ config RTC_DRV_RK808 @@ -36,10 +36,10 @@ index 364afc73f8ab..bc755773a31d 100644 tristate "Ricoh R2025S/D, RS5C372A/B, RV5C386, RV5C387A" help diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile -index 6cf7e066314e..7428e7f6274f 100644 +index 0347645b021f..2cac22454eb9 100644 --- a/drivers/rtc/Makefile +++ b/drivers/rtc/Makefile -@@ -148,6 +148,7 @@ obj-$(CONFIG_RTC_DRV_R9701) += rtc-r9701.o +@@ -147,6 +147,7 @@ obj-$(CONFIG_RTC_DRV_R9701) += rtc-r9701.o obj-$(CONFIG_RTC_DRV_RC5T583) += rtc-rc5t583.o obj-$(CONFIG_RTC_DRV_RC5T619) += rtc-rc5t619.o obj-$(CONFIG_RTC_DRV_RK808) += rtc-rk808.o diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0016-thermal-rockchip-Add-support-for-RK3506.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0036-thermal-rockchip-Add-support-for-RK3506.patch similarity index 97% rename from device/community/linux-pine64-pinephonepro/megi_patches/0016-thermal-rockchip-Add-support-for-RK3506.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0036-thermal-rockchip-Add-support-for-RK3506.patch index 316465534..6d0293242 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0016-thermal-rockchip-Add-support-for-RK3506.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0036-thermal-rockchip-Add-support-for-RK3506.patch @@ -1,7 +1,7 @@ -From b4c96d43b18506728a339871188209fb52fda313 Mon Sep 17 00:00:00 2001 +From a41274a1947c33779421e5f2877152f04e1b2204 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 6 Apr 2025 01:59:17 +0200 -Subject: [PATCH 16/84] thermal: rockchip: Add support for RK3506 +Subject: [PATCH 36/90] thermal: rockchip: Add support for RK3506 Adapted from BSP. diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0061-arm64-dts-rockchip-rk3399-Disable-debug-nodes.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0037-arm64-dts-rockchip-rk3399-Disable-debug-nodes.patch similarity index 82% rename from device/community/linux-pine64-pinephonepro/megi_patches/0061-arm64-dts-rockchip-rk3399-Disable-debug-nodes.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0037-arm64-dts-rockchip-rk3399-Disable-debug-nodes.patch index ff1a50ba1..2d96a2690 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0061-arm64-dts-rockchip-rk3399-Disable-debug-nodes.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0037-arm64-dts-rockchip-rk3399-Disable-debug-nodes.patch @@ -1,12 +1,11 @@ -From c82f7cbc063dbc0867e635ac66b0a3b255c03340 Mon Sep 17 00:00:00 2001 +From 63fd8ceec28c63a352eb6787a0dd88832389ae29 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 4 Sep 2022 22:34:56 +0200 -Subject: [PATCH 61/84] arm64: dts: rockchip: rk3399: Disable debug nodes +Subject: [PATCH 37/90] arm64: dts: rockchip: rk3399: Disable debug nodes They hang boot with older levinboot, due to levinboot not enabling their PD. Signed-off-by: Ondrej Jirman -(cherry picked from commit 809a83d59f3cf8a98ff00640c0f2fdca5bde4d54) --- arch/arm64/boot/dts/rockchip/rk3399-base.dtsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0062-arm64-dts-rockchip-rk3399-Add-reboot-mode-driver.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0038-arm64-dts-rockchip-rk3399-Add-reboot-mode-driver.patch similarity index 82% rename from device/community/linux-pine64-pinephonepro/megi_patches/0062-arm64-dts-rockchip-rk3399-Add-reboot-mode-driver.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0038-arm64-dts-rockchip-rk3399-Add-reboot-mode-driver.patch index 8f4b85be6..9b67dfe80 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0062-arm64-dts-rockchip-rk3399-Add-reboot-mode-driver.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0038-arm64-dts-rockchip-rk3399-Add-reboot-mode-driver.patch @@ -1,14 +1,13 @@ -From d8e9516106835ed6c44c8feae5ea65e2f51f8803 Mon Sep 17 00:00:00 2001 +From fbe390aae4a35657ead09eef7aa361365164274d Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 4 Sep 2022 22:49:46 +0200 -Subject: [PATCH 62/84] arm64: dts: rockchip: rk3399: Add reboot mode driver +Subject: [PATCH 38/90] arm64: dts: rockchip: rk3399: Add reboot mode driver U-Boot uses value 0xef08a53c to jump back to USB loader maskrom mode instead of normal boot. Add support for reboot to maskrom from the kernel. Signed-off-by: Ondrej Jirman -(cherry picked from commit 5c4b81ba4f37d81edd20000581625a76e724a205) --- arch/arm64/boot/dts/rockchip/rk3399-base.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0063-arm64-dts-rockchip-rk3399-Power-cycle-the-USB3-PHY-o.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0039-arm64-dts-rockchip-rk3399-Power-cycle-the-USB3-PHY-o.patch similarity index 88% rename from device/community/linux-pine64-pinephonepro/megi_patches/0063-arm64-dts-rockchip-rk3399-Power-cycle-the-USB3-PHY-o.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0039-arm64-dts-rockchip-rk3399-Power-cycle-the-USB3-PHY-o.patch index 5973199f1..91a4f5561 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0063-arm64-dts-rockchip-rk3399-Power-cycle-the-USB3-PHY-o.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0039-arm64-dts-rockchip-rk3399-Power-cycle-the-USB3-PHY-o.patch @@ -1,7 +1,7 @@ -From 7eb7d7f09537f33afa30863269dc72460f20420f Mon Sep 17 00:00:00 2001 +From 2b99f67873b1ad56f3ff3ce94f17500610a10049 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 20 Jul 2026 17:53:56 +0200 -Subject: [PATCH 63/84] arm64: dts: rockchip: rk3399: Power cycle the USB3 PHY +Subject: [PATCH 39/90] arm64: dts: rockchip: rk3399: Power cycle the USB3 PHY on role change The Type-C PHY on RK3399 latches the plug orientation while it is being @@ -13,7 +13,6 @@ either an extcon or a usb-role-switch to report the cable state, so it can be set at the SoC level. Signed-off-by: Ondrej Jirman -(cherry picked from commit f1061493a904add60e12c268d8efa2fefd57a421) --- arch/arm64/boot/dts/rockchip/rk3399-base.dtsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0064-arm64-dts-rockchip-rk3399-Add-dmc_opp_table.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0040-arm64-dts-rockchip-rk3399-Add-dmc_opp_table.patch similarity index 87% rename from device/community/linux-pine64-pinephonepro/megi_patches/0064-arm64-dts-rockchip-rk3399-Add-dmc_opp_table.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0040-arm64-dts-rockchip-rk3399-Add-dmc_opp_table.patch index 8013c59c5..6053f4c32 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0064-arm64-dts-rockchip-rk3399-Add-dmc_opp_table.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0040-arm64-dts-rockchip-rk3399-Add-dmc_opp_table.patch @@ -1,12 +1,11 @@ -From 38b6000236d688997fa789a32006dee308870488 Mon Sep 17 00:00:00 2001 +From 388c338bc827982760c31a4fbc1b269849c15294 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 22 Nov 2024 23:41:48 +0100 -Subject: [PATCH 64/84] arm64: dts: rockchip: rk3399: Add dmc_opp_table +Subject: [PATCH 40/90] arm64: dts: rockchip: rk3399: Add dmc_opp_table This was removed in v6.12. Re-add it with original values. Signed-off-by: Ondrej Jirman -(cherry picked from commit df46950af61c404d9b0251f674015e35f03471bd) --- arch/arm64/boot/dts/rockchip/rk3399.dtsi | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0065-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0041-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch similarity index 86% rename from device/community/linux-pine64-pinephonepro/megi_patches/0065-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0041-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch index 6a67a7bac..9c774ba82 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0065-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0041-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch @@ -1,12 +1,11 @@ -From 92232266830ad5fddeb4cc74cef6eb9df7997df8 Mon Sep 17 00:00:00 2001 +From 9097c67a0e3b33dbe82bb2520fcc8a725db964aa Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Thu, 28 Nov 2024 11:16:31 +0100 -Subject: [PATCH 65/84] arm64: dts: rockchip: rk3399-s: Add DMC table +Subject: [PATCH 41/90] arm64: dts: rockchip: rk3399-s: Add DMC table This is used by Pinephone Pro. Signed-off-by: Ondrej Jirman -(cherry picked from commit 456dec0546a630cdf298b9931912c03a33bce84c) --- arch/arm64/boot/dts/rockchip/rk3399-s.dtsi | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0066-arm64-dts-rockchip-rk3399-Number-the-CDN-DP-ports.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0042-arm64-dts-rockchip-rk3399-Number-the-CDN-DP-ports.patch similarity index 88% rename from device/community/linux-pine64-pinephonepro/megi_patches/0066-arm64-dts-rockchip-rk3399-Number-the-CDN-DP-ports.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0042-arm64-dts-rockchip-rk3399-Number-the-CDN-DP-ports.patch index 752d07dcb..fd3259476 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0066-arm64-dts-rockchip-rk3399-Number-the-CDN-DP-ports.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0042-arm64-dts-rockchip-rk3399-Number-the-CDN-DP-ports.patch @@ -1,7 +1,7 @@ -From 2aa1ea8136426e790aa954ceacfb02e7fabcc52b Mon Sep 17 00:00:00 2001 +From ec6dcb2882a29bbaa8b0f714709fe957d5274ac1 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 22:43:47 +0200 -Subject: [PATCH 66/84] arm64: dts: rockchip: rk3399: Number the CDN DP ports +Subject: [PATCH 42/90] arm64: dts: rockchip: rk3399: Number the CDN DP ports Number the input port and add the output port. The binding requires both port@0 (VOP input) and port@1 (output), but the node had only a single @@ -16,7 +16,6 @@ numbering inside the input port is unchanged and nothing looks the ports up by name, so boards that already enable the DP are unaffected. Signed-off-by: Ondrej Jirman -(cherry picked from commit de379c02ca5cbb6763e47fd63b2b9c3e6e9053e3) --- arch/arm64/boot/dts/rockchip/rk3399-base.dtsi | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0067-arm64-dts-rockchip-rk3399-pinephone-pro-Add-Type-C-p.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0043-arm64-dts-rockchip-rk3399-pinephone-pro-Add-Type-C-p.patch similarity index 97% rename from device/community/linux-pine64-pinephonepro/megi_patches/0067-arm64-dts-rockchip-rk3399-pinephone-pro-Add-Type-C-p.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0043-arm64-dts-rockchip-rk3399-pinephone-pro-Add-Type-C-p.patch index 736cffe1d..e493815cd 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0067-arm64-dts-rockchip-rk3399-pinephone-pro-Add-Type-C-p.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0043-arm64-dts-rockchip-rk3399-pinephone-pro-Add-Type-C-p.patch @@ -1,7 +1,7 @@ -From b1c760223654de5c5a6233382a58c69b484fb003 Mon Sep 17 00:00:00 2001 +From fc8b5b148fd41ba3e30ef4a0b7b36ee4de9f973f Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 19:20:33 +0200 -Subject: [PATCH 67/84] arm64: dts: rockchip: rk3399-pinephone-pro: Add Type-C +Subject: [PATCH 43/90] arm64: dts: rockchip: rk3399-pinephone-pro: Add Type-C port support Pinephone Pro has: @@ -16,7 +16,6 @@ It is also the port the phone charges from. Let's enable it. Signed-off-by: Ondrej Jirman -(cherry picked from commit 4671fc6d1131e0030f6789c6b4c8ca3662d71f93) --- .../dts/rockchip/rk3399-pinephone-pro.dts | 196 ++++++++++++++++++ 1 file changed, 196 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0068-arm64-dts-rockchip-rk3399-pinephone-pro-Add-internal.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0044-arm64-dts-rockchip-rk3399-pinephone-pro-Add-internal.patch similarity index 90% rename from device/community/linux-pine64-pinephonepro/megi_patches/0068-arm64-dts-rockchip-rk3399-pinephone-pro-Add-internal.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0044-arm64-dts-rockchip-rk3399-pinephone-pro-Add-internal.patch index f54bd80e5..a89d8ff65 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0068-arm64-dts-rockchip-rk3399-pinephone-pro-Add-internal.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0044-arm64-dts-rockchip-rk3399-pinephone-pro-Add-internal.patch @@ -1,13 +1,12 @@ -From 02ced21a4dee8dcb0ecd639e940c19b32162fffe Mon Sep 17 00:00:00 2001 +From 484f48fab71e0872daa36902a84cb856a472d359 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 4 Sep 2022 23:11:02 +0200 -Subject: [PATCH 68/84] arm64: dts: rockchip: rk3399-pinephone-pro: Add +Subject: [PATCH 44/90] arm64: dts: rockchip: rk3399-pinephone-pro: Add internal display support Touch screen improvememtns in suspend. Signed-off-by: Ondrej Jirman -(cherry picked from commit f9f2c2082f1c935a147456f2f111b0427b4fd2b3) --- .../boot/dts/rockchip/rk3399-pinephone-pro.dts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0069-arm64-dts-rockchip-rk3399-pinephone-pro-Add-battery-.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0045-arm64-dts-rockchip-rk3399-pinephone-pro-Add-battery-.patch similarity index 95% rename from device/community/linux-pine64-pinephonepro/megi_patches/0069-arm64-dts-rockchip-rk3399-pinephone-pro-Add-battery-.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0045-arm64-dts-rockchip-rk3399-pinephone-pro-Add-battery-.patch index e09bcb1c5..1d50cb3fc 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0069-arm64-dts-rockchip-rk3399-pinephone-pro-Add-battery-.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0045-arm64-dts-rockchip-rk3399-pinephone-pro-Add-battery-.patch @@ -1,7 +1,7 @@ -From 49d86cb04330d0fa36e3d6762022f9dbe9f0fcab Mon Sep 17 00:00:00 2001 +From 2a57888d05d26398d7621d28841c4b21e72ca4fa Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 19:20:54 +0200 -Subject: [PATCH 69/84] arm64: dts: rockchip: rk3399-pinephone-pro: Add battery +Subject: [PATCH 45/90] arm64: dts: rockchip: rk3399-pinephone-pro: Add battery charger support Describe Pinephone battery and battery charger. Battery has internal @@ -12,7 +12,6 @@ The input current limit comes from the Type-C port controller, so the charger takes fusb302 as its power supply. Signed-off-by: Ondrej Jirman -(cherry picked from commit 7bb2b9094fda320593c8f9eecb961b1758fea928) --- .../dts/rockchip/rk3399-pinephone-pro.dts | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0070-arm64-dts-rockchip-rk3399-pinephone-pro-Add-sound-su.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0046-arm64-dts-rockchip-rk3399-pinephone-pro-Add-sound-su.patch similarity index 96% rename from device/community/linux-pine64-pinephonepro/megi_patches/0070-arm64-dts-rockchip-rk3399-pinephone-pro-Add-sound-su.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0046-arm64-dts-rockchip-rk3399-pinephone-pro-Add-sound-su.patch index 7096f8536..9329a4f37 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0070-arm64-dts-rockchip-rk3399-pinephone-pro-Add-sound-su.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0046-arm64-dts-rockchip-rk3399-pinephone-pro-Add-sound-su.patch @@ -1,7 +1,7 @@ -From af417cc22fa4dcefc192cb0390b287380e7c0d55 Mon Sep 17 00:00:00 2001 +From a48365bc84ff755212c1e88bd8b9973e0c428e4f Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 4 Sep 2022 23:25:19 +0200 -Subject: [PATCH 70/84] arm64: dts: rockchip: rk3399-pinephone-pro: Add sound +Subject: [PATCH 46/90] arm64: dts: rockchip: rk3399-pinephone-pro: Add sound support Add support for Pinephone Pro sound card and codec. @@ -12,7 +12,6 @@ creates a new set of ADC keys for handling headset buttons. Co-developed-by: Arnaud Ferraris Signed-off-by: Arnaud Ferraris Signed-off-by: Ondrej Jirman -(cherry picked from commit 77c8d97a95e0e4c12ea6e32fe82f1d8eab8997d2) --- .../dts/rockchip/rk3399-pinephone-pro.dts | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0071-arm64-dts-rockchip-rk3399-pinephone-pro-Add-modem-su.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0047-arm64-dts-rockchip-rk3399-pinephone-pro-Add-modem-su.patch similarity index 94% rename from device/community/linux-pine64-pinephonepro/megi_patches/0071-arm64-dts-rockchip-rk3399-pinephone-pro-Add-modem-su.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0047-arm64-dts-rockchip-rk3399-pinephone-pro-Add-modem-su.patch index 2c6c22931..9387d83e4 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0071-arm64-dts-rockchip-rk3399-pinephone-pro-Add-modem-su.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0047-arm64-dts-rockchip-rk3399-pinephone-pro-Add-modem-su.patch @@ -1,7 +1,7 @@ -From 9e0e6397372096009e4c9c0b10447ab31c54f741 Mon Sep 17 00:00:00 2001 +From 9b39821ccac12cb7112cc6f627800b60aefd122a Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 9 Sep 2022 16:39:58 +0200 -Subject: [PATCH 71/84] arm64: dts: rockchip: rk3399-pinephone-pro: Add modem +Subject: [PATCH 47/90] arm64: dts: rockchip: rk3399-pinephone-pro: Add modem support - Host USB for the modem @@ -9,7 +9,6 @@ Subject: [PATCH 71/84] arm64: dts: rockchip: rk3399-pinephone-pro: Add modem - Power controller driver Signed-off-by: Ondrej Jirman -(cherry picked from commit 88e10241f189011429c9587ac44eea465244b8c3) --- .../dts/rockchip/rk3399-pinephone-pro.dts | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0072-arm64-dts-rockchip-rk3399-pinephone-pro-Change-modem.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0048-arm64-dts-rockchip-rk3399-pinephone-pro-Change-modem.patch similarity index 80% rename from device/community/linux-pine64-pinephonepro/megi_patches/0072-arm64-dts-rockchip-rk3399-pinephone-pro-Change-modem.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0048-arm64-dts-rockchip-rk3399-pinephone-pro-Change-modem.patch index 7f7266ea1..c41db0a97 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0072-arm64-dts-rockchip-rk3399-pinephone-pro-Change-modem.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0048-arm64-dts-rockchip-rk3399-pinephone-pro-Change-modem.patch @@ -1,11 +1,10 @@ -From bebc6b2cffeb6ab469434cb45aa631d38784ba0e Mon Sep 17 00:00:00 2001 +From b211463851086a9e946f7a0139d04e2f2cef8ee9 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 20 Feb 2024 18:31:33 +0100 -Subject: [PATCH 72/84] arm64: dts: rockchip: rk3399-pinephone-pro: Change +Subject: [PATCH 48/90] arm64: dts: rockchip: rk3399-pinephone-pro: Change modem codec samplerate to 16kHz Signed-off-by: Ondrej Jirman -(cherry picked from commit b31904967a902b2dfea20b2b333c579ddd64c026) --- arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0073-arm64-dts-rockchip-rk3399-pinephone-pro-Add-light-pr.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0049-arm64-dts-rockchip-rk3399-pinephone-pro-Add-light-pr.patch similarity index 79% rename from device/community/linux-pine64-pinephonepro/megi_patches/0073-arm64-dts-rockchip-rk3399-pinephone-pro-Add-light-pr.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0049-arm64-dts-rockchip-rk3399-pinephone-pro-Add-light-pr.patch index e50aa7389..443300262 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0073-arm64-dts-rockchip-rk3399-pinephone-pro-Add-light-pr.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0049-arm64-dts-rockchip-rk3399-pinephone-pro-Add-light-pr.patch @@ -1,13 +1,12 @@ -From 97d822b3e75c5652824bb46d18d2e1f69f795586 Mon Sep 17 00:00:00 2001 +From b7e98e6e8ec9b37334b4313a86c5daf20caae450 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 11 Jun 2023 19:39:10 +0200 -Subject: [PATCH 73/84] arm64: dts: rockchip: rk3399-pinephone-pro: Add +Subject: [PATCH 49/90] arm64: dts: rockchip: rk3399-pinephone-pro: Add light/proximity sensor support Pinephone Pro uses STK3311 Signed-off-by: Ondrej Jirman -(cherry picked from commit e7f1d9ee0452df59f4a2f7c201db6798c39b9945) --- arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0074-arm64-dts-rockchip-rk3399-pinephone-pro-Add-I2C-supp.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0050-arm64-dts-rockchip-rk3399-pinephone-pro-Add-I2C-supp.patch similarity index 80% rename from device/community/linux-pine64-pinephonepro/megi_patches/0074-arm64-dts-rockchip-rk3399-pinephone-pro-Add-I2C-supp.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0050-arm64-dts-rockchip-rk3399-pinephone-pro-Add-I2C-supp.patch index 69e2a4b37..e6e7cba14 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0074-arm64-dts-rockchip-rk3399-pinephone-pro-Add-I2C-supp.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0050-arm64-dts-rockchip-rk3399-pinephone-pro-Add-I2C-supp.patch @@ -1,14 +1,13 @@ -From e423b662f45bf3be22e5f4b2e4602d01bbc45a66 Mon Sep 17 00:00:00 2001 +From 88b434cb18dc9b65605481f72e3fe85761d332af Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 11 Jun 2023 19:39:57 +0200 -Subject: [PATCH 74/84] arm64: dts: rockchip: rk3399-pinephone-pro: Add I2C +Subject: [PATCH 50/90] arm64: dts: rockchip: rk3399-pinephone-pro: Add I2C supply to stk3311 It is needed to communicate with the device, when other users of vcc3v0_touch shut down the regulator. Signed-off-by: Ondrej Jirman -(cherry picked from commit 658fe4ad25378e4e8c030623e7bbe11eed74498f) --- arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 1 + 1 file changed, 1 insertion(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0075-arm64-dts-rockchip-rk3399-pinephone-pro-Add-magnetom.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0051-arm64-dts-rockchip-rk3399-pinephone-pro-Add-magnetom.patch similarity index 81% rename from device/community/linux-pine64-pinephonepro/megi_patches/0075-arm64-dts-rockchip-rk3399-pinephone-pro-Add-magnetom.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0051-arm64-dts-rockchip-rk3399-pinephone-pro-Add-magnetom.patch index fa8b50b3e..5616cea27 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0075-arm64-dts-rockchip-rk3399-pinephone-pro-Add-magnetom.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0051-arm64-dts-rockchip-rk3399-pinephone-pro-Add-magnetom.patch @@ -1,13 +1,12 @@ -From 15b7efa2d0b5c2f75542d5d91c2b914c3131cbbe Mon Sep 17 00:00:00 2001 +From fed20db6eb180246f1d871afc04127173ed8ad38 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 9 Sep 2022 16:42:07 +0200 -Subject: [PATCH 75/84] arm64: dts: rockchip: rk3399-pinephone-pro: Add +Subject: [PATCH 51/90] arm64: dts: rockchip: rk3399-pinephone-pro: Add magnetometer sensor support Pinephone Pro uses AF8133J. Signed-off-by: Ondrej Jirman -(cherry picked from commit 6aa4fc189489549c065a1474b42f52ab3ca9f034) --- arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0076-arm64-dts-rockchip-rk3399-pinephone-pro-Add-mount-ma.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0052-arm64-dts-rockchip-rk3399-pinephone-pro-Add-mount-ma.patch similarity index 82% rename from device/community/linux-pine64-pinephonepro/megi_patches/0076-arm64-dts-rockchip-rk3399-pinephone-pro-Add-mount-ma.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0052-arm64-dts-rockchip-rk3399-pinephone-pro-Add-mount-ma.patch index bd0e701c8..8e09d0910 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0076-arm64-dts-rockchip-rk3399-pinephone-pro-Add-mount-ma.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0052-arm64-dts-rockchip-rk3399-pinephone-pro-Add-mount-ma.patch @@ -1,7 +1,7 @@ -From 666714d7bfbf33f54beb6e263d4f40a6bf6c1eee Mon Sep 17 00:00:00 2001 +From 34d9a490373017a54a9f652d0f742254f946579c Mon Sep 17 00:00:00 2001 From: "Leonardo G. Trombetta" Date: Mon, 13 Mar 2023 17:45:19 +0100 -Subject: [PATCH 76/84] arm64: dts: rockchip: rk3399-pinephone-pro: Add +Subject: [PATCH 52/90] arm64: dts: rockchip: rk3399-pinephone-pro: Add mount-matrix for magnetometer After experimenting with the magnetometer on the Pinephone Pro I found out the @@ -11,8 +11,8 @@ currently no `mount-matrix` info and that's why the driver reports a trivial answer. As far as I can tell from my tests, a 90 degree clockwise rotation in the XY plane would align it properly. -Signed-of-by: Leonardo G. Trombetta -(cherry picked from commit 16abfccfc65a9022c7478e75f35d69869eae076f) +Signed-off-by: Leonardo G. Trombetta +Signed-off-by: Ondrej Jirman --- arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0077-arm64-dts-rockchip-rk3399-pinephone-pro-Enable-POGO-.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0053-arm64-dts-rockchip-rk3399-pinephone-pro-Enable-POGO-.patch similarity index 85% rename from device/community/linux-pine64-pinephonepro/megi_patches/0077-arm64-dts-rockchip-rk3399-pinephone-pro-Enable-POGO-.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0053-arm64-dts-rockchip-rk3399-pinephone-pro-Enable-POGO-.patch index 2200282d7..f32d44323 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0077-arm64-dts-rockchip-rk3399-pinephone-pro-Enable-POGO-.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0053-arm64-dts-rockchip-rk3399-pinephone-pro-Enable-POGO-.patch @@ -1,13 +1,12 @@ -From 58499e1fac35c15529a15c7ebcd10234b50f612f Mon Sep 17 00:00:00 2001 +From 33a144fcd05231eefeca9c792eb170f3b114ac3f Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 9 Sep 2022 16:42:51 +0200 -Subject: [PATCH 77/84] arm64: dts: rockchip: rk3399-pinephone-pro: Enable POGO +Subject: [PATCH 53/90] arm64: dts: rockchip: rk3399-pinephone-pro: Enable POGO pins I2C So that userspace apps can use it. Signed-off-by: Ondrej Jirman -(cherry picked from commit a91c41c0dbfacd256b8beeafe28c0bfaa3202166) --- .../boot/dts/rockchip/rk3399-pinephone-pro.dts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0078-arm64-dts-rockchip-rk3399-pinephone-pro-Add-pinephon.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0054-arm64-dts-rockchip-rk3399-pinephone-pro-Add-pinephon.patch similarity index 95% rename from device/community/linux-pine64-pinephonepro/megi_patches/0078-arm64-dts-rockchip-rk3399-pinephone-pro-Add-pinephon.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0054-arm64-dts-rockchip-rk3399-pinephone-pro-Add-pinephon.patch index 9bd378af4..13c0eccbd 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0078-arm64-dts-rockchip-rk3399-pinephone-pro-Add-pinephon.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0054-arm64-dts-rockchip-rk3399-pinephone-pro-Add-pinephon.patch @@ -1,13 +1,12 @@ -From 74636887a5f0870ddd82a7e4608e131bab8b85e6 Mon Sep 17 00:00:00 2001 +From 81882037b850a62f7274c808a5afaa3502eb2089 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 9 Sep 2022 16:43:39 +0200 -Subject: [PATCH 78/84] arm64: dts: rockchip: rk3399-pinephone-pro: Add +Subject: [PATCH 54/90] arm64: dts: rockchip: rk3399-pinephone-pro: Add pinephone keyboard support Keyboard can be connected over I2C. Signed-off-by: Ondrej Jirman -(cherry picked from commit a1e59835ded8ecf3ac45f1bfd2f46420ab96d6e9) --- .../dts/rockchip/rk3399-pinephone-pro.dts | 145 ++++++++++++++++++ 1 file changed, 145 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0079-arm64-dts-rockchip-rk3399-pinephone-pro-Switch-LED-b.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0055-arm64-dts-rockchip-rk3399-pinephone-pro-Switch-LED-b.patch similarity index 88% rename from device/community/linux-pine64-pinephonepro/megi_patches/0079-arm64-dts-rockchip-rk3399-pinephone-pro-Switch-LED-b.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0055-arm64-dts-rockchip-rk3399-pinephone-pro-Switch-LED-b.patch index 5cbf93a4b..4cc898af1 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0079-arm64-dts-rockchip-rk3399-pinephone-pro-Switch-LED-b.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0055-arm64-dts-rockchip-rk3399-pinephone-pro-Switch-LED-b.patch @@ -1,7 +1,7 @@ -From f8b352c3ea9ab947c39843aa8613f37eff53f2d0 Mon Sep 17 00:00:00 2001 +From f15af05ba8921040bd9c0c94263f486897e97caa Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Thu, 30 Mar 2023 13:45:08 +0200 -Subject: [PATCH 79/84] arm64: dts: rockchip: rk3399-pinephone-pro: Switch LED +Subject: [PATCH 55/90] arm64: dts: rockchip: rk3399-pinephone-pro: Switch LED backlight PWM from 1kHz to 20kHz This gets rid of measurable backlight flicker, because LED driver's feedback @@ -13,7 +13,6 @@ satisfies requirement to have duty cycle at least 250ns. Backlight LED driver doesn't react to smaller pulses on the EN/PWM pin. Signed-off-by: Ondrej Jirman -(cherry picked from commit 42222d8aab5e43e8240985cb4724f503715a1054) --- arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0080-arm64-dts-rockchip-rk3399-pinephone-pro-Pre-configur.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0056-arm64-dts-rockchip-rk3399-pinephone-pro-Pre-configur.patch similarity index 93% rename from device/community/linux-pine64-pinephonepro/megi_patches/0080-arm64-dts-rockchip-rk3399-pinephone-pro-Pre-configur.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0056-arm64-dts-rockchip-rk3399-pinephone-pro-Pre-configur.patch index ea347de40..0915a8fcd 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0080-arm64-dts-rockchip-rk3399-pinephone-pro-Pre-configur.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0056-arm64-dts-rockchip-rk3399-pinephone-pro-Pre-configur.patch @@ -1,7 +1,7 @@ -From 640b4b539e3e667d3ef50026eaddf090afda0541 Mon Sep 17 00:00:00 2001 +From c330fdde7bbed8addc08350c28638d885f5fed2f Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 21 May 2023 01:42:25 +0200 -Subject: [PATCH 80/84] arm64: dts: rockchip: rk3399-pinephone-pro: +Subject: [PATCH 56/90] arm64: dts: rockchip: rk3399-pinephone-pro: Pre-configure DMC This enables dynamic DRAM reclocking. The node needs to be okayed @@ -9,7 +9,6 @@ by U-Boot/firmware combo known to support it. Do not enable &dmc by default. Signed-off-by: Ondrej Jirman -(cherry picked from commit fbae8f31862e79cec310206acba287343d372d50) --- .../dts/rockchip/rk3399-pinephone-pro.dts | 33 +++++++++++++++++++ arch/arm64/boot/dts/rockchip/rk3399-t.dtsi | 29 ++++++++++++++++ diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0081-arm64-dts-rockchip-rk3399-pinephone-pro-Improve-SPI-.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0057-arm64-dts-rockchip-rk3399-pinephone-pro-Improve-SPI-.patch similarity index 82% rename from device/community/linux-pine64-pinephonepro/megi_patches/0081-arm64-dts-rockchip-rk3399-pinephone-pro-Improve-SPI-.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0057-arm64-dts-rockchip-rk3399-pinephone-pro-Improve-SPI-.patch index e270f4aad..27131aaa8 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0081-arm64-dts-rockchip-rk3399-pinephone-pro-Improve-SPI-.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0057-arm64-dts-rockchip-rk3399-pinephone-pro-Improve-SPI-.patch @@ -1,13 +1,12 @@ -From 22256b60a41f614c7491cda57f62622af230ec4b Mon Sep 17 00:00:00 2001 +From f20d0a69b2d03cd75a7be7c2b79da1d11a72556d Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Thu, 29 Jun 2023 16:28:08 +0200 -Subject: [PATCH 81/84] arm64: dts: rockchip: rk3399-pinephone-pro: Improve SPI +Subject: [PATCH 57/90] arm64: dts: rockchip: rk3399-pinephone-pro: Improve SPI access speed From 300 KiB/s to 2MiB/s. Signed-off-by: Ondrej Jirman -(cherry picked from commit 9f2f299bd46901a703d16f39fca9b219dcc8b09c) --- arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0082-arm64-dts-rockchip-rk3399-pinephone-pro-Assign-power.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0058-arm64-dts-rockchip-rk3399-pinephone-pro-Assign-power.patch similarity index 82% rename from device/community/linux-pine64-pinephonepro/megi_patches/0082-arm64-dts-rockchip-rk3399-pinephone-pro-Assign-power.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0058-arm64-dts-rockchip-rk3399-pinephone-pro-Assign-power.patch index d24818b34..ed310323a 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0082-arm64-dts-rockchip-rk3399-pinephone-pro-Assign-power.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0058-arm64-dts-rockchip-rk3399-pinephone-pro-Assign-power.patch @@ -1,11 +1,10 @@ -From 3e56a1d0de12219b746d8959a84259c65d070d0b Mon Sep 17 00:00:00 2001 +From 648be4d7f9b41b0300e1ca4e17a9f91815a4408a Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 9 Sep 2025 08:31:21 +0200 -Subject: [PATCH 82/84] arm64: dts: rockchip: rk3399-pinephone-pro: Assign +Subject: [PATCH 58/90] arm64: dts: rockchip: rk3399-pinephone-pro: Assign power supplies to audio codec Signed-off-by: Ondrej Jirman -(cherry picked from commit 4400cddfa923adb0183b157603581172137f6790) --- arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0083-arm64-dts-rockchip-rk3399-pinephone-pro-Add-camera-f.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0059-arm64-dts-rockchip-rk3399-pinephone-pro-Add-camera-f.patch similarity index 92% rename from device/community/linux-pine64-pinephonepro/megi_patches/0083-arm64-dts-rockchip-rk3399-pinephone-pro-Add-camera-f.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0059-arm64-dts-rockchip-rk3399-pinephone-pro-Add-camera-f.patch index 797de3ccd..e09a07753 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0083-arm64-dts-rockchip-rk3399-pinephone-pro-Add-camera-f.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0059-arm64-dts-rockchip-rk3399-pinephone-pro-Add-camera-f.patch @@ -1,7 +1,7 @@ -From 6f77254d3715eec8649b422c06758be6965bc907 Mon Sep 17 00:00:00 2001 +From c9f5ef5845e528a55ca936af042f4a82df5cb80d Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 9 Sep 2025 10:17:32 +0200 -Subject: [PATCH 83/84] arm64: dts: rockchip: rk3399-pinephone-pro: Add camera +Subject: [PATCH 59/90] arm64: dts: rockchip: rk3399-pinephone-pro: Add camera flash controller This exact controller is not present on the board, and the real control @@ -10,7 +10,6 @@ interface is slightly different. Don't upstream this. It's good enough for experiments/basic lighting. Signed-off-by: Ondrej Jirman -(cherry picked from commit 56488ecd7be24b83bf8775c6ba5f01c9c061b42a) --- .../dts/rockchip/rk3399-pinephone-pro.dts | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0084-arm64-dts-rockchip-rk3399-pinephone-pro-Disable-inte.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0060-arm64-dts-rockchip-rk3399-pinephone-pro-Disable-inte.patch similarity index 85% rename from device/community/linux-pine64-pinephonepro/megi_patches/0084-arm64-dts-rockchip-rk3399-pinephone-pro-Disable-inte.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0060-arm64-dts-rockchip-rk3399-pinephone-pro-Disable-inte.patch index 80abed38a..85b418c8f 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0084-arm64-dts-rockchip-rk3399-pinephone-pro-Disable-inte.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0060-arm64-dts-rockchip-rk3399-pinephone-pro-Disable-inte.patch @@ -1,7 +1,7 @@ -From 8e72c70536c1349eea588a8ddf1f7f9cd383112f Mon Sep 17 00:00:00 2001 +From 5f2e9bea61d1dc7afa9e72bd2d29fa9dc9e68b31 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 4 Jan 2026 23:54:58 +0100 -Subject: [PATCH 84/84] arm64: dts: rockchip: rk3399-pinephone-pro: Disable +Subject: [PATCH 60/90] arm64: dts: rockchip: rk3399-pinephone-pro: Disable interrupt GPIO for WiFi for the Pinephone Pro This breaks at least dev version of Pinephone Pro. Or use of Pinephone @@ -9,7 +9,6 @@ Pro with firmware configurations that don't use OOB interrupts. Signed-off-by: Ondrej Jirman -(cherry picked from commit 99623d100af024386f2ca07a55b9f0148e444bfd) --- arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0012-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0061-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch similarity index 55% rename from device/community/linux-pine64-pinephonepro/megi_patches/0012-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0061-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch index e7ba02960..8638222b1 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0012-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0061-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch @@ -1,20 +1,21 @@ -From db566db3b72a281b3e941c1070cfb30688207950 Mon Sep 17 00:00:00 2001 +From 87e32bd983f5393b5d2a85c8fa5e60e4617389d4 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 9 Aug 2025 10:10:42 +0200 -Subject: [PATCH 12/84] Revert "usb: dwc3: Abort suspend on soft disconnect +Subject: [PATCH 61/90] Revert "usb: dwc3: Abort suspend on soft disconnect failure" This reverts commit 630a1dec3b0eba2a695b9063f1c205d585cbfec9. +Signed-off-by: Ondrej Jirman --- drivers/usb/dwc3/core.c | 9 ++------- - drivers/usb/dwc3/gadget.c | 22 +++++++++++++--------- - 2 files changed, 15 insertions(+), 16 deletions(-) + drivers/usb/dwc3/gadget.c | 16 ++++++++++------ + 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 65213896de99..9d4293f02c9a 100644 +index ceb49f2f8004..ad52e203563b 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -2476,7 +2476,6 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) +@@ -2472,7 +2472,6 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) { u32 reg; int i; @@ -22,7 +23,7 @@ index 65213896de99..9d4293f02c9a 100644 if (!pm_runtime_suspended(dwc->dev) && !PMSG_IS_AUTO(msg)) { dwc->susphy_state = (dwc3_readl(dwc, DWC3_GUSB2PHYCFG(0)) & -@@ -2495,9 +2494,7 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) +@@ -2491,9 +2490,7 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) case DWC3_GCTL_PRTCAP_DEVICE: if (pm_runtime_suspended(dwc->dev)) break; @@ -33,7 +34,7 @@ index 65213896de99..9d4293f02c9a 100644 synchronize_irq(dwc->irq_gadget); dwc3_core_exit(dwc); break; -@@ -2533,9 +2530,7 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) +@@ -2529,9 +2526,7 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) break; if (dwc->current_otg_role == DWC3_OTG_ROLE_DEVICE) { @@ -45,41 +46,35 @@ index 65213896de99..9d4293f02c9a 100644 } diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c -index 3d4ca68e584c..519a1dd23a30 100644 +index 1082e9c9afaa..45b468b4c9b5 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c -@@ -4842,15 +4842,8 @@ int dwc3_gadget_suspend(struct dwc3 *dwc) +@@ -4874,19 +4874,23 @@ int dwc3_gadget_suspend(struct dwc3 *dwc) int ret; ret = dwc3_gadget_soft_disconnect(dwc); -- /* -- * Attempt to reset the controller's state. Likely no -- * communication can be established until the host -- * performs a port reset. -- */ -- if (ret && dwc->softconnect) { -- dwc3_gadget_soft_connect(dwc); -- return -EAGAIN; -- } + if (ret) + goto err; - - spin_lock_irqsave(&dwc->lock, flags); - if (dwc->gadget_driver) -@@ -4858,6 +4851,17 @@ int dwc3_gadget_suspend(struct dwc3 *dwc) - spin_unlock_irqrestore(&dwc->lock, flags); - - return 0; ++ ++ dwc3_disconnect_gadget_sleepable(dwc); ++ ++ return 0; + +err: -+ /* -+ * Attempt to reset the controller's state. Likely no -+ * communication can be established until the host -+ * performs a port reset. -+ */ + /* + * Attempt to reset the controller's state. Likely no + * communication can be established until the host + * performs a port reset. + */ +- if (ret && dwc->softconnect) { + if (dwc->softconnect) -+ dwc3_gadget_soft_connect(dwc); -+ + dwc3_gadget_soft_connect(dwc); +- return -EAGAIN; +- } +- +- dwc3_disconnect_gadget_sleepable(dwc); + +- return 0; + return ret; } diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0036-phy-rockchip-inno-usb2-Add-support-for-RV1106-RV1103.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0062-phy-rockchip-inno-usb2-Add-support-for-RV1106-RV1103.patch similarity index 65% rename from device/community/linux-pine64-pinephonepro/megi_patches/0036-phy-rockchip-inno-usb2-Add-support-for-RV1106-RV1103.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0062-phy-rockchip-inno-usb2-Add-support-for-RV1106-RV1103.patch index cd076d828..799a3a2b2 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0036-phy-rockchip-inno-usb2-Add-support-for-RV1106-RV1103.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0062-phy-rockchip-inno-usb2-Add-support-for-RV1106-RV1103.patch @@ -1,18 +1,17 @@ -From 8188ebbecf26e4e5666b5e306da6d3b675451a0c Mon Sep 17 00:00:00 2001 +From 1f8ae7f533822f0195a942b255bb5107b414a615 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 21 Jun 2024 01:42:38 +0200 -Subject: [PATCH 36/84] phy: rockchip-inno-usb2: Add support for RV1106/RV1103 +Subject: [PATCH 62/90] phy: rockchip-inno-usb2: Add support for RV1106/RV1103 Ported from BSP driver. Signed-off-by: Ondrej Jirman -(cherry picked from commit 9ce7df89d6d1a4408de349a80e51dceb49d95227) --- - drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 133 ++++++++++++++++++ - 1 file changed, 133 insertions(+) + drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 102 ++++++++++++++++++ + 1 file changed, 102 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -index 8f4c08e599aa..4ef42d9affb3 100644 +index 7d8a533f24ae..7831e2993b9f 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c @@ -143,6 +143,7 @@ struct rockchip_usb2phy_port_cfg { @@ -23,23 +22,15 @@ index 8f4c08e599aa..4ef42d9affb3 100644 struct usb2phy_reg disfall_en; struct usb2phy_reg disfall_st; struct usb2phy_reg disfall_clr; -@@ -248,6 +249,7 @@ struct rockchip_usb2phy { - struct regmap *grf; - struct regmap *usbgrf; - struct clk_bulk_data *clks; -+ void __iomem *phy_base; - struct clk *clk480m; - struct clk_hw clk480m_hw; - int num_clks; -@@ -1284,6 +1286,7 @@ static int rockchip_usb2phy_otg_port_init(struct rockchip_usb2phy *rphy, +@@ -1291,6 +1292,7 @@ static int rockchip_usb2phy_otg_port_init(struct rockchip_usb2phy *rphy, struct rockchip_usb2phy_port *rport, struct device_node *child_np) { -+ struct regmap *base = get_reg_base(rphy); ++ struct regmap *base = rphy->grf; int ret, id; rport->port_id = USB2PHY_PORT_OTG; -@@ -1317,6 +1320,23 @@ static int rockchip_usb2phy_otg_port_init(struct rockchip_usb2phy *rphy, +@@ -1324,6 +1326,23 @@ static int rockchip_usb2phy_otg_port_init(struct rockchip_usb2phy *rphy, goto out; } @@ -63,85 +54,48 @@ index 8f4c08e599aa..4ef42d9affb3 100644 if (!IS_ERR(rphy->edev)) { rport->event_nb.notifier_call = rockchip_otg_event; -@@ -1388,6 +1408,13 @@ static int rockchip_usb2phy_probe(struct platform_device *pdev) - } - } - -+ if (of_device_is_compatible(np, "rockchip,rv1106-usb2phy")) { -+ rphy->phy_base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL); -+ if (IS_ERR(rphy->phy_base)) -+ return dev_err_probe(dev, PTR_ERR(rphy->phy_base), -+ "missing memory resource\n"); -+ } -+ - rphy->dev = dev; - phy_cfgs = device_get_match_data(dev); - rphy->chg_state = USB_CHG_STATE_UNDEFINED; -@@ -1506,6 +1533,63 @@ static int rockchip_usb2phy_probe(struct platform_device *pdev) +@@ -1504,6 +1523,40 @@ static int rockchip_usb2phy_probe(struct platform_device *pdev) return ret; } -+static inline void phy_clear_bits(void __iomem *reg, u32 bits) -+{ -+ u32 tmp = readl(reg); -+ -+ tmp &= ~bits; -+ writel(tmp, reg); -+} -+ -+static inline void phy_set_bits(void __iomem *reg, u32 bits) -+{ -+ u32 tmp = readl(reg); -+ -+ tmp |= bits; -+ writel(tmp, reg); -+} -+ -+static inline void phy_update_bits(void __iomem *reg, u32 mask, u32 val) -+{ -+ u32 tmp = readl(reg); -+ -+ tmp &= ~mask; -+ tmp |= val & mask; -+ writel(tmp, reg); -+} -+ +static int rv1106_usb2phy_tuning(struct rockchip_usb2phy *rphy) +{ ++ int ret = 0; ++ + /* Always enable pre-emphasis in SOF & EOP & chirp & non-chirp state */ -+ phy_update_bits(rphy->phy_base + 0x30, GENMASK(2, 0), 0x07); ++ ret |= regmap_update_bits(rphy->phy_base, 0x30, GENMASK(2, 0), 0x07); + +// if (rockchip_get_cpu_version()) { +// /* Set Tx HS pre_emphasize strength to 3'b001 */ -+// phy_update_bits(rphy->phy_base + 0x40, GENMASK(5, 3), (0x01 << 3)); ++// ret |= regmap_update_bits(rphy->phy_base, 0x40, GENMASK(5, 3), (0x01 << 3)); +// } else { + /* Set Tx HS pre_emphasize strength to 3'b011 */ -+ phy_update_bits(rphy->phy_base + 0x40, GENMASK(5, 3), (0x03 << 3)); ++ ret |= regmap_update_bits(rphy->phy_base, 0x40, GENMASK(5, 3), (0x03 << 3)); +// } + + /* Set RX Squelch trigger point configure to 4'b0000(112.5 mV) */ -+ phy_update_bits(rphy->phy_base + 0x64, GENMASK(6, 3), (0x00 << 3)); ++ ret |= regmap_update_bits(rphy->phy_base, 0x64, GENMASK(6, 3), (0x00 << 3)); + + /* Turn off differential receiver by default to save power */ -+ phy_clear_bits(rphy->phy_base + 0x100, BIT(6)); ++ ret |= regmap_clear_bits(rphy->phy_base, 0x100, BIT(6)); + + /* Set 45ohm HS ODT value to 5'b10111 to increase driver strength */ -+ phy_update_bits(rphy->phy_base + 0x11c, GENMASK(4, 0), 0x17); ++ ret |= regmap_update_bits(rphy->phy_base, 0x11c, GENMASK(4, 0), 0x17); + + /* Set Tx HS eye height tuning to 3'b011(462 mV)*/ -+ phy_update_bits(rphy->phy_base + 0x124, GENMASK(4, 2), (0x03 << 2)); ++ ret |= regmap_update_bits(rphy->phy_base, 0x124, GENMASK(4, 2), (0x03 << 2)); + + /* Bypass Squelch detector calibration */ -+ phy_update_bits(rphy->phy_base + 0x1a4, GENMASK(7, 4), (0x01 << 4)); -+ phy_update_bits(rphy->phy_base + 0x1b4, GENMASK(7, 4), (0x01 << 4)); ++ ret |= regmap_update_bits(rphy->phy_base, 0x1a4, GENMASK(7, 4), (0x01 << 4)); ++ ret |= regmap_update_bits(rphy->phy_base, 0x1b4, GENMASK(7, 4), (0x01 << 4)); + -+ return 0; ++ return ret; +} + static int rk3128_usb2phy_tuning(struct rockchip_usb2phy *rphy) { /* Turn off differential receiver in suspend mode */ -@@ -2243,6 +2327,54 @@ static const struct rockchip_usb2phy_cfg rk3588_phy_cfgs[] = { +@@ -2324,6 +2377,54 @@ static const struct rockchip_usb2phy_cfg rk3588_phy_cfgs[] = { { /* sentinel */ } }; @@ -196,7 +150,7 @@ index 8f4c08e599aa..4ef42d9affb3 100644 static const struct rockchip_usb2phy_cfg rv1108_phy_cfgs[] = { { .reg = 0x100, -@@ -2299,6 +2431,7 @@ static const struct of_device_id rockchip_usb2phy_dt_match[] = { +@@ -2381,6 +2482,7 @@ static const struct of_device_id rockchip_usb2phy_dt_match[] = { { .compatible = "rockchip,rk3576-usb2phy", .data = &rk3576_phy_cfgs }, { .compatible = "rockchip,rk3588-usb2phy", .data = &rk3588_phy_cfgs }, { .compatible = "rockchip,rv1108-usb2phy", .data = &rv1108_phy_cfgs }, diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0037-phy-rockchip-inno-usb2-Add-support-for-RK3506.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0063-phy-rockchip-inno-usb2-Add-support-for-RK3506.patch similarity index 85% rename from device/community/linux-pine64-pinephonepro/megi_patches/0037-phy-rockchip-inno-usb2-Add-support-for-RK3506.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0063-phy-rockchip-inno-usb2-Add-support-for-RK3506.patch index 96a5b6e87..665432506 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0037-phy-rockchip-inno-usb2-Add-support-for-RK3506.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0063-phy-rockchip-inno-usb2-Add-support-for-RK3506.patch @@ -1,22 +1,21 @@ -From 6b13b8431d4bb87a6186a4855f4855470e0c9191 Mon Sep 17 00:00:00 2001 +From 7e1c947f181da3ce01aaca7c59bda2764d28135b Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 6 Apr 2025 02:00:19 +0200 -Subject: [PATCH 37/84] phy: rockchip-inno-usb2: Add support for RK3506 +Subject: [PATCH 63/90] phy: rockchip-inno-usb2: Add support for RK3506 Adapted from BSP. Signed-off-by: Ondrej Jirman -(cherry picked from commit 370adcd5cf6464363b7ceb30ebd43243b11dded1) --- drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -index 4ef42d9affb3..ffc0a7112b6e 100644 +index 7831e2993b9f..30a907bc5c3b 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -@@ -1598,6 +1598,31 @@ static int rk3128_usb2phy_tuning(struct rockchip_usb2phy *rphy) - BIT(2) << BIT_WRITEABLE_SHIFT | 0); +@@ -1597,6 +1597,31 @@ static int rk3528_usb2phy_tuning(struct rockchip_usb2phy *rphy) + return 0; } +static int rk3506_usb2phy_tuning(struct rockchip_usb2phy *rphy) @@ -24,22 +23,22 @@ index 4ef42d9affb3..ffc0a7112b6e 100644 + int ret = 0; + + /* Turn off otg0 port differential receiver in suspend mode */ -+ phy_clear_bits(rphy->phy_base + 0x30, BIT(2)); ++ ret |= regmap_clear_bits(rphy->phy_base, 0x30, BIT(2)); + + /* Turn off otg1 port differential receiver in suspend mode */ -+ phy_clear_bits(rphy->phy_base + 0x430, BIT(2)); ++ ret |= regmap_clear_bits(rphy->phy_base, 0x430, BIT(2)); + + /* Set otg0 port HS eye height to 425mv(default is 450mv) */ -+ phy_update_bits(rphy->phy_base + 0x30, GENMASK(6, 4), (0x05 << 4)); ++ ret |= regmap_update_bits(rphy->phy_base, 0x30, GENMASK(6, 4), (0x05 << 4)); + + /* Set otg1 port HS eye height to 425mv(default is 450mv) */ -+ phy_update_bits(rphy->phy_base + 0x430, GENMASK(6, 4), (0x05 << 4)); ++ ret |= regmap_update_bits(rphy->phy_base, 0x430, GENMASK(6, 4), (0x05 << 4)); + + /* Choose the Tx fs/ls data as linestate from TX driver for otg0 port */ -+ phy_update_bits(rphy->phy_base + 0x94, GENMASK(6, 3), (0x03 << 3)); ++ ret |= regmap_update_bits(rphy->phy_base, 0x94, GENMASK(6, 3), (0x03 << 3)); + + /* Choose the Tx fs/ls data as linestate from TX driver for otg1 port */ -+ phy_update_bits(rphy->phy_base + 0x494, GENMASK(6, 3), (0x03 << 3)); ++ ret |= regmap_update_bits(rphy->phy_base, 0x494, GENMASK(6, 3), (0x03 << 3)); + + return ret; +} @@ -47,7 +46,7 @@ index 4ef42d9affb3..ffc0a7112b6e 100644 static int rk3576_usb2phy_tuning(struct rockchip_usb2phy *rphy) { int ret; -@@ -2059,6 +2084,95 @@ static const struct rockchip_usb2phy_cfg rk3562_phy_cfgs[] = { +@@ -2109,6 +2134,95 @@ static const struct rockchip_usb2phy_cfg rk3562_phy_cfgs[] = { { /* sentinel */ } }; @@ -143,14 +142,14 @@ index 4ef42d9affb3..ffc0a7112b6e 100644 static const struct rockchip_usb2phy_cfg rk3568_phy_cfgs[] = { { .reg = 0xfe8a0000, -@@ -2426,6 +2540,7 @@ static const struct of_device_id rockchip_usb2phy_dt_match[] = { +@@ -2476,6 +2590,7 @@ static const struct of_device_id rockchip_usb2phy_dt_match[] = { { .compatible = "rockchip,rk3328-usb2phy", .data = &rk3328_phy_cfgs }, { .compatible = "rockchip,rk3366-usb2phy", .data = &rk3366_phy_cfgs }, { .compatible = "rockchip,rk3399-usb2phy", .data = &rk3399_phy_cfgs }, + { .compatible = "rockchip,rk3506-usb2phy", .data = &rk3506_phy_cfgs }, + { .compatible = "rockchip,rk3528-usb2phy", .data = &rk3528_phy_cfgs }, { .compatible = "rockchip,rk3562-usb2phy", .data = &rk3562_phy_cfgs }, { .compatible = "rockchip,rk3568-usb2phy", .data = &rk3568_phy_cfgs }, - { .compatible = "rockchip,rk3576-usb2phy", .data = &rk3576_phy_cfgs }, -- 2.55.0 diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0038-phy-rockchip-inno-usb2-Add-PHY-tuning-for-rk3566-rk3.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0064-phy-rockchip-inno-usb2-Add-PHY-tuning-for-rk3566-rk3.patch similarity index 64% rename from device/community/linux-pine64-pinephonepro/megi_patches/0038-phy-rockchip-inno-usb2-Add-PHY-tuning-for-rk3566-rk3.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0064-phy-rockchip-inno-usb2-Add-PHY-tuning-for-rk3566-rk3.patch index 59c0bf5c6..c58f4f5d2 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0038-phy-rockchip-inno-usb2-Add-PHY-tuning-for-rk3566-rk3.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0064-phy-rockchip-inno-usb2-Add-PHY-tuning-for-rk3566-rk3.patch @@ -1,7 +1,7 @@ -From 60b2f6a212c936c221b23c6051d89c23a8799d01 Mon Sep 17 00:00:00 2001 +From e692226fcaac9df6f0719aa6b89d0cd67a3fa644 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 19 Jul 2026 16:21:40 +0200 -Subject: [PATCH 38/84] phy: rockchip-inno-usb2: Add PHY tuning for +Subject: [PATCH 64/90] phy: rockchip-inno-usb2: Add PHY tuning for rk3566/rk3568 Add a phy_tuning callback for the rk3566/rk3568 USB2 PHY and map its @@ -15,13 +15,12 @@ mode works, peripheral mode fails to enumerate on the connected host. This is visible on the PineTab2 v2.0 bottom USB-C port. Signed-off-by: Ondrej Jirman -(cherry picked from commit 47213f62f6eda5aca1f18251f9d4e3edd2f2712a) --- - drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 35 ++++++++++++++++++- - 1 file changed, 34 insertions(+), 1 deletion(-) + drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 32 +++++++++++++++++++ + 1 file changed, 32 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -index ffc0a7112b6e..d9d14cc8cf79 100644 +index 30a907bc5c3b..faffdef6589d 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c @@ -31,6 +31,9 @@ @@ -34,17 +33,7 @@ index ffc0a7112b6e..d9d14cc8cf79 100644 struct rockchip_usb2phy; enum rockchip_usb2phy_port_id { -@@ -1408,7 +1411,8 @@ static int rockchip_usb2phy_probe(struct platform_device *pdev) - } - } - -- if (of_device_is_compatible(np, "rockchip,rv1106-usb2phy")) { -+ if (of_device_is_compatible(np, "rockchip,rv1106-usb2phy") || -+ of_device_is_compatible(np, "rockchip,rk3568-usb2phy")) { - rphy->phy_base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL); - if (IS_ERR(rphy->phy_base)) - return dev_err_probe(dev, PTR_ERR(rphy->phy_base), -@@ -1623,6 +1627,33 @@ static int rk3506_usb2phy_tuning(struct rockchip_usb2phy *rphy) +@@ -1622,6 +1625,33 @@ static int rk3506_usb2phy_tuning(struct rockchip_usb2phy *rphy) return ret; } @@ -53,17 +42,17 @@ index ffc0a7112b6e..d9d14cc8cf79 100644 + int ret = 0; + + /* Turn off differential receiver by default to save power */ -+ phy_clear_bits(rphy->phy_base + 0x30, BIT(2)); ++ ret |= regmap_clear_bits(rphy->phy_base, 0x30, BIT(2)); + + /* Enable otg port pre-emphasis during non-chirp phase */ -+ phy_update_bits(rphy->phy_base, GENMASK(2, 0), 0x04); ++ ret |= regmap_update_bits(rphy->phy_base, 0x0000, GENMASK(2, 0), 0x04); + + /* Enable host port pre-emphasis during non-chirp phase */ -+ phy_update_bits(rphy->phy_base + 0x0400, GENMASK(2, 0), 0x04); ++ ret |= regmap_update_bits(rphy->phy_base, 0x0400, GENMASK(2, 0), 0x04); + + if (rphy->phy_cfg->reg == 0xfe8a0000) { + /* Set otg port HS eye height to 437.5mv (default is 400mv) */ -+ phy_update_bits(rphy->phy_base + 0x30, GENMASK(6, 4), (0x06 << 4)); ++ ret |= regmap_update_bits(rphy->phy_base, 0x30, GENMASK(6, 4), (0x06 << 4)); + + /* Set the bvalid filter time to 10ms */ + ret |= regmap_write(rphy->grf, 0x0048, FILTER_COUNTER); @@ -78,7 +67,7 @@ index ffc0a7112b6e..d9d14cc8cf79 100644 static int rk3576_usb2phy_tuning(struct rockchip_usb2phy *rphy) { int ret; -@@ -2177,6 +2208,7 @@ static const struct rockchip_usb2phy_cfg rk3568_phy_cfgs[] = { +@@ -2227,6 +2257,7 @@ static const struct rockchip_usb2phy_cfg rk3568_phy_cfgs[] = { { .reg = 0xfe8a0000, .num_ports = 2, @@ -86,7 +75,7 @@ index ffc0a7112b6e..d9d14cc8cf79 100644 .clkout_ctl = { 0x0008, 4, 4, 1, 0 }, .port_cfgs = { [USB2PHY_PORT_OTG] = { -@@ -2220,6 +2252,7 @@ static const struct rockchip_usb2phy_cfg rk3568_phy_cfgs[] = { +@@ -2270,6 +2301,7 @@ static const struct rockchip_usb2phy_cfg rk3568_phy_cfgs[] = { { .reg = 0xfe8b0000, .num_ports = 2, diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0039-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0065-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch similarity index 76% rename from device/community/linux-pine64-pinephonepro/megi_patches/0039-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0065-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch index e12c80a97..e1b804219 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0039-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0065-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch @@ -1,18 +1,17 @@ -From 6eb3bfc132cc355363c40a8f7d17ad9469c03307 Mon Sep 17 00:00:00 2001 +From 05b158fe14f15ce3eae0481972fdbaccf89489a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 20 Nov 2021 14:35:52 +0100 -Subject: [PATCH 39/84] drm/rockchip: cdn-dp: Disable CDN DP on disconnect +Subject: [PATCH 65/90] drm/rockchip: cdn-dp: Disable CDN DP on disconnect Why not? Signed-off-by: Ondrej Jirman -(cherry picked from commit bf7cc5c78bcfcf8017573bbd21d69f955e47276e) --- drivers/gpu/drm/rockchip/cdn-dp-core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c -index 177e30445ee8..13b83fe8feed 100644 +index 190cce9530c8..0c46224c0491 100644 --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c @@ -898,6 +898,7 @@ static void cdn_dp_pd_event_work(struct work_struct *work) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0040-phy-rockchip-inno-usb2-Decrease-delay-between-port-i.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0066-phy-rockchip-inno-usb2-Decrease-delay-between-port-i.patch similarity index 81% rename from device/community/linux-pine64-pinephonepro/megi_patches/0040-phy-rockchip-inno-usb2-Decrease-delay-between-port-i.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0066-phy-rockchip-inno-usb2-Decrease-delay-between-port-i.patch index 5277cb47e..7422370a0 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0040-phy-rockchip-inno-usb2-Decrease-delay-between-port-i.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0066-phy-rockchip-inno-usb2-Decrease-delay-between-port-i.patch @@ -1,7 +1,7 @@ -From 6b34febb9343481e8b855a6f540cb9353a8ab2f6 Mon Sep 17 00:00:00 2001 +From 21c92c3cb19be4e3a3f1cf6cf97ae2b5c01189e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 30 Jan 2022 23:44:42 +0100 -Subject: [PATCH 40/84] phy: rockchip-inno-usb2: Decrease delay between port +Subject: [PATCH 66/90] phy: rockchip-inno-usb2: Decrease delay between port init and charger detection When used on systems with TCPM, the charger detection via USB2.0 PHY @@ -18,16 +18,15 @@ TCPM to be able to use its result when Rp=default is detected via CC pins. Signed-off-by: Ondrej Jirman -(cherry picked from commit 41ad83ccb484296caec829ca3bc871e181a589cb) --- drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -index d9d14cc8cf79..1a01169817de 100644 +index faffdef6589d..5ca155334dad 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -@@ -541,7 +541,7 @@ static int rockchip_usb2phy_init(struct phy *phy) +@@ -556,7 +556,7 @@ static int rockchip_usb2phy_init(struct phy *phy) goto out; schedule_delayed_work(&rport->otg_sm_work, diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0041-phy-rockchip-inno-usb2-More-robust-charger-detection.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0067-phy-rockchip-inno-usb2-More-robust-charger-detection.patch similarity index 88% rename from device/community/linux-pine64-pinephonepro/megi_patches/0041-phy-rockchip-inno-usb2-More-robust-charger-detection.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0067-phy-rockchip-inno-usb2-More-robust-charger-detection.patch index c678556b5..cd92d413a 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0041-phy-rockchip-inno-usb2-More-robust-charger-detection.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0067-phy-rockchip-inno-usb2-More-robust-charger-detection.patch @@ -1,7 +1,7 @@ -From e42f271b4064adc4f2bd77d27842da5ce29712eb Mon Sep 17 00:00:00 2001 +From 63c227cef08c31542844f769c509978760756f2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 4 Feb 2022 02:25:34 +0100 -Subject: [PATCH 41/84] phy: rockchip-inno-usb2: More robust charger detection +Subject: [PATCH 67/90] phy: rockchip-inno-usb2: More robust charger detection extcon updates Make sure we always clear the charger detection results. Allow to @@ -10,16 +10,15 @@ The previous method was smart, but assumed !vbus_branch would always be called. Signed-off-by: Ondrej Jirman -(cherry picked from commit 3b27a37fbd058db8a780e2ad364728a4d4e5fd1a) --- drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 39 +++++++++++-------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -index 1a01169817de..ef9f7a45c122 100644 +index 5ca155334dad..5b65aabd10e4 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -@@ -661,21 +661,27 @@ static const struct phy_ops rockchip_usb2phy_ops = { +@@ -674,21 +674,27 @@ static const struct phy_ops rockchip_usb2phy_ops = { .owner = THIS_MODULE, }; @@ -50,7 +49,7 @@ index 1a01169817de..ef9f7a45c122 100644 delay = OTG_SCHEDULE_DELAY; dev_dbg(&rport->phy->dev, "%s otg sm work\n", usb_otg_state_string(rport->state)); -@@ -704,14 +710,12 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) +@@ -717,14 +723,12 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) dev_dbg(&rport->phy->dev, "sdp cable is connected\n"); rockchip_usb2phy_power_on(rport->phy); rport->state = OTG_STATE_B_PERIPHERAL; @@ -65,7 +64,7 @@ index 1a01169817de..ef9f7a45c122 100644 sch_work = true; cable = EXTCON_CHG_USB_DCP; break; -@@ -719,7 +723,6 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) +@@ -732,7 +736,6 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) dev_dbg(&rport->phy->dev, "cdp cable is connected\n"); rockchip_usb2phy_power_on(rport->phy); rport->state = OTG_STATE_B_PERIPHERAL; @@ -73,7 +72,7 @@ index 1a01169817de..ef9f7a45c122 100644 sch_work = true; cable = EXTCON_CHG_USB_CDP; break; -@@ -731,22 +734,26 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) +@@ -744,22 +747,26 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) break; } } else { diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0042-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0068-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch similarity index 85% rename from device/community/linux-pine64-pinephonepro/megi_patches/0042-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0068-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch index 54c78cc95..07f79052c 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0042-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0068-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch @@ -1,7 +1,7 @@ -From ce3115635dc842403bad5d6287a765802741ae74 Mon Sep 17 00:00:00 2001 +From 05c668aa82789f46b2f48ac642eb822b546faf22 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 20 Jul 2026 17:46:22 +0200 -Subject: [PATCH 42/84] usb: dwc3: Track the power state of usb3_generic_phy +Subject: [PATCH 68/90] usb: dwc3: Track the power state of usb3_generic_phy The USB3 PHYs will need to be powered off and on again from within the set_mode work, independently of the rest of the controller. There is no @@ -10,17 +10,16 @@ actually powered to keep the phy_power_on()/phy_power_off() calls balanced. Signed-off-by: Ondrej Jirman -(cherry picked from commit bc1f2513d49d2a23ac923380f72a5ca2729122e8) --- drivers/usb/dwc3/core.c | 10 ++++++++-- drivers/usb/dwc3/core.h | 6 ++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 9d4293f02c9a..9c6bd173798c 100644 +index ad52e203563b..3d669323b40d 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -919,6 +919,8 @@ static int dwc3_phy_power_on(struct dwc3 *dwc) +@@ -915,6 +915,8 @@ static int dwc3_phy_power_on(struct dwc3 *dwc) goto err_power_off_usb3_phy; } @@ -29,7 +28,7 @@ index 9d4293f02c9a..9c6bd173798c 100644 return 0; err_power_off_usb3_phy: -@@ -939,8 +941,12 @@ static void dwc3_phy_power_off(struct dwc3 *dwc) +@@ -935,8 +937,12 @@ static void dwc3_phy_power_off(struct dwc3 *dwc) { int i; diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0043-usb-dwc3-Always-disable-SUSPHY-when-entering-a-role.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0069-usb-dwc3-Always-disable-SUSPHY-when-entering-a-role.patch similarity index 87% rename from device/community/linux-pine64-pinephonepro/megi_patches/0043-usb-dwc3-Always-disable-SUSPHY-when-entering-a-role.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0069-usb-dwc3-Always-disable-SUSPHY-when-entering-a-role.patch index 70e3f2860..df144703b 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0043-usb-dwc3-Always-disable-SUSPHY-when-entering-a-role.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0069-usb-dwc3-Always-disable-SUSPHY-when-entering-a-role.patch @@ -1,7 +1,7 @@ -From c11a7d364f9ae037e9c0f9e13ec9eefcd9f526cf Mon Sep 17 00:00:00 2001 +From 35ef66660a34a7f2e566f1ada9d03e7536a72607 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 20 Jul 2026 22:09:48 +0200 -Subject: [PATCH 43/84] usb: dwc3: Always disable SUSPHY when entering a role +Subject: [PATCH 69/90] usb: dwc3: Always disable SUSPHY when entering a role __dwc3_set_mode() leaves the old role, which enables SUSPHY, and then re-initializes the new one, which requires SUSPHY to be disabled. The @@ -16,13 +16,12 @@ Disable it in __dwc3_set_mode() directly, so entering a role does not depend on what the register happened to hold. Signed-off-by: Ondrej Jirman -(cherry picked from commit 01e90addf2c0380dc29c550fa565e71127217c18) --- drivers/usb/dwc3/core.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 9c6bd173798c..86ddf91ae454 100644 +index 3d669323b40d..cf12ab17ccb4 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -235,7 +235,15 @@ static void __dwc3_set_mode(struct work_struct *work) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0044-usb-dwc3-Track-cable-connection-state-separately-fro.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0070-usb-dwc3-Track-cable-connection-state-separately-fro.patch similarity index 94% rename from device/community/linux-pine64-pinephonepro/megi_patches/0044-usb-dwc3-Track-cable-connection-state-separately-fro.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0070-usb-dwc3-Track-cable-connection-state-separately-fro.patch index 88aacabcd..97bba019e 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0044-usb-dwc3-Track-cable-connection-state-separately-fro.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0070-usb-dwc3-Track-cable-connection-state-separately-fro.patch @@ -1,7 +1,7 @@ -From 23e9a265cd549dbd99cf1109ad706f8a25337e42 Mon Sep 17 00:00:00 2001 +From 2ef8e0cf61ae74aa2984a9b0c811b66e4d88a0e2 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 20 Jul 2026 17:48:45 +0200 -Subject: [PATCH 44/84] usb: dwc3: Track cable connection state separately from +Subject: [PATCH 70/90] usb: dwc3: Track cable connection state separately from dr_role A Type-C port can be unplugged and replugged into the same kind of port @@ -22,14 +22,13 @@ cable from no cable use dwc3_set_mode_connected(). No functional change. Signed-off-by: Ondrej Jirman -(cherry picked from commit e862414522584a466af62c055fe7e17a504c9bcd) --- drivers/usb/dwc3/core.c | 20 ++++++++++++++++++-- drivers/usb/dwc3/core.h | 9 +++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 86ddf91ae454..a4416759fac8 100644 +index cf12ab17ccb4..3d2ea52d9648 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -169,11 +169,13 @@ static void __dwc3_set_mode(struct work_struct *work) @@ -91,7 +90,7 @@ index 86ddf91ae454..a4416759fac8 100644 u32 dwc3_core_fifo_space(struct dwc3_ep *dep, u8 type) { struct dwc3 *dwc = dep->dwc; -@@ -1669,6 +1679,12 @@ static int dwc3_core_init_mode(struct dwc3 *dwc) +@@ -1665,6 +1675,12 @@ static int dwc3_core_init_mode(struct dwc3 *dwc) break; case USB_DR_MODE_OTG: INIT_WORK(&dwc->drd_work, __dwc3_set_mode); diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0045-usb-dwc3-Power-cycle-USB3-PHY-on-role-connection-cha.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0071-usb-dwc3-Power-cycle-USB3-PHY-on-role-connection-cha.patch similarity index 97% rename from device/community/linux-pine64-pinephonepro/megi_patches/0045-usb-dwc3-Power-cycle-USB3-PHY-on-role-connection-cha.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0071-usb-dwc3-Power-cycle-USB3-PHY-on-role-connection-cha.patch index 6a8e67f6b..20409cbbe 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0045-usb-dwc3-Power-cycle-USB3-PHY-on-role-connection-cha.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0071-usb-dwc3-Power-cycle-USB3-PHY-on-role-connection-cha.patch @@ -1,7 +1,7 @@ -From e69fe48a25b340f8f46e8144a76a04e80fb1d4fc Mon Sep 17 00:00:00 2001 +From 411f3f6342130a9ad82b25c02f914d2661b33fec Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 20 Jul 2026 17:52:42 +0200 -Subject: [PATCH 45/84] usb: dwc3: Power cycle USB3 PHY on role/connection +Subject: [PATCH 71/90] usb: dwc3: Power cycle USB3 PHY on role/connection change The RK3399 Type-C PHY latches the plug orientation while it is being @@ -38,7 +38,6 @@ fails to enable ep0out and then takes seconds to tear down again, all of it under dwc->mutex. Signed-off-by: Ondrej Jirman -(cherry picked from commit 1579c94e43edea5ade9beb012a224d7a68e10774) --- drivers/usb/dwc3/core.c | 51 ++++++++++++++++++++++++-- drivers/usb/dwc3/core.h | 7 ++++ @@ -46,7 +45,7 @@ Signed-off-by: Ondrej Jirman 3 files changed, 116 insertions(+), 21 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index a4416759fac8..21554e8d3ffa 100644 +index 3d2ea52d9648..383c741eee96 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -193,7 +193,11 @@ static void __dwc3_set_mode(struct work_struct *work) @@ -123,7 +122,7 @@ index a4416759fac8..21554e8d3ffa 100644 case DWC3_GCTL_PRTCAP_HOST: ret = dwc3_host_init(dwc); if (ret) { -@@ -1908,6 +1950,9 @@ static void dwc3_get_properties(struct dwc3 *dwc) +@@ -1904,6 +1946,9 @@ static void dwc3_get_properties(struct dwc3 *dwc) dwc->dis_split_quirk = device_property_read_bool(dev, "snps,dis-split-quirk"); diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0046-usb-dwc3-Register-the-role-even-when-no-cable-is-con.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0072-usb-dwc3-Register-the-role-even-when-no-cable-is-con.patch similarity index 91% rename from device/community/linux-pine64-pinephonepro/megi_patches/0046-usb-dwc3-Register-the-role-even-when-no-cable-is-con.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0072-usb-dwc3-Register-the-role-even-when-no-cable-is-con.patch index 22a7bc892..c1e4eef66 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0046-usb-dwc3-Register-the-role-even-when-no-cable-is-con.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0072-usb-dwc3-Register-the-role-even-when-no-cable-is-con.patch @@ -1,7 +1,7 @@ -From 364a17c0e659ea1a6a2727bdbf9936218b7d0583 Mon Sep 17 00:00:00 2001 +From 0003866828edccc37cb433e28e24c8f93c8eae19 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 20 Jul 2026 22:42:25 +0200 -Subject: [PATCH 46/84] usb: dwc3: Register the role even when no cable is +Subject: [PATCH 72/90] usb: dwc3: Register the role even when no cable is connected Gating the role init on the connection state went too far. Entering a @@ -18,13 +18,12 @@ top of a powered off USB3 PHY, which is what the gating was for. Fixup for "usb: dwc3: Power cycle USB3 PHY on role/connection change". Signed-off-by: Ondrej Jirman -(cherry picked from commit 790a415b4c5d14ae379946381f8ff40ba7c23a1f) --- drivers/usb/dwc3/core.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 21554e8d3ffa..0e20e70b9163 100644 +index 383c741eee96..88ae18073eb8 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -170,6 +170,7 @@ static void __dwc3_set_mode(struct work_struct *work) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0047-phy-rockchip-inno-usb2-Set-up-charger-detection-mode.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0073-phy-rockchip-inno-usb2-Set-up-charger-detection-mode.patch similarity index 82% rename from device/community/linux-pine64-pinephonepro/megi_patches/0047-phy-rockchip-inno-usb2-Set-up-charger-detection-mode.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0073-phy-rockchip-inno-usb2-Set-up-charger-detection-mode.patch index 6c788cfdb..e3ad7a188 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0047-phy-rockchip-inno-usb2-Set-up-charger-detection-mode.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0073-phy-rockchip-inno-usb2-Set-up-charger-detection-mode.patch @@ -1,7 +1,7 @@ -From 45981a4220fe965b0dabd39870943e3da097e26c Mon Sep 17 00:00:00 2001 +From 43079543d0c30d35e5890a1df312beb60dce644d Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 20 Jul 2026 22:59:13 +0200 -Subject: [PATCH 47/84] phy: rockchip-inno-usb2: Set up charger detection mode +Subject: [PATCH 73/90] phy: rockchip-inno-usb2: Set up charger detection mode on RK3399 BC1.2 detection has to run with the transceiver held off the bus, or the @@ -31,13 +31,12 @@ the VBUS condition from commit 7d8f725b79e3 ("phy: rockchip: inno-usb2: fix communication disruption in gadget mode"), so they are unaffected. Signed-off-by: Ondrej Jirman -(cherry picked from commit b92d132cafcf20c5cf7413f14bae79bd44e3ca84) --- - drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 81 +++++++++++++++++-- - 1 file changed, 73 insertions(+), 8 deletions(-) + drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 80 +++++++++++++++++-- + 1 file changed, 73 insertions(+), 7 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -index ef9f7a45c122..a138417f0b2e 100644 +index 5b65aabd10e4..5b62cc4cb607 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c @@ -100,6 +100,8 @@ struct usb2phy_reg { @@ -57,7 +56,7 @@ index ef9f7a45c122..a138417f0b2e 100644 }; /** -@@ -246,6 +249,8 @@ struct rockchip_usb2phy_port { +@@ -248,6 +251,8 @@ struct rockchip_usb2phy_port { * @irq: muxed interrupt for single irq configuration * @phy_cfg: phy register configuration, assigned by driver data. * @ports: phy port instance. @@ -66,7 +65,7 @@ index ef9f7a45c122..a138417f0b2e 100644 */ struct rockchip_usb2phy { struct device *dev; -@@ -260,6 +265,7 @@ struct rockchip_usb2phy { +@@ -261,6 +266,7 @@ struct rockchip_usb2phy { enum usb_chg_state chg_state; enum power_supply_type chg_type; u8 dcd_retries; @@ -74,8 +73,8 @@ index ef9f7a45c122..a138417f0b2e 100644 struct extcon_dev *edev; int irq; const struct rockchip_usb2phy_cfg *phy_cfg; -@@ -823,6 +829,68 @@ static void rockchip_chg_enable_secondary_det(struct rockchip_usb2phy *rphy, - property_enable(base, &rphy->phy_cfg->chg_det.idp_sink_en, en); +@@ -830,6 +836,68 @@ static void rockchip_chg_enable_secondary_det(struct rockchip_usb2phy *rphy, + property_enable(rphy->grf, &rphy->phy_cfg->chg_det.idp_sink_en, en); } +/* @@ -101,7 +100,7 @@ index ef9f7a45c122..a138417f0b2e 100644 + bool vbus_attach) +{ + const struct usb2phy_reg *chg_mode = &rphy->phy_cfg->chg_det.chg_mode; -+ struct regmap *base = get_reg_base(rphy); ++ struct regmap *base = rphy->grf; + + if (!rockchip_chg_has_chg_mode(rphy)) { + if (!vbus_attach) @@ -125,7 +124,7 @@ index ef9f7a45c122..a138417f0b2e 100644 + bool vbus_attach) +{ + const struct usb2phy_reg *chg_mode = &rphy->phy_cfg->chg_det.chg_mode; -+ struct regmap *base = get_reg_base(rphy); ++ struct regmap *base = rphy->grf; + unsigned int mask; + + if (!rockchip_chg_has_chg_mode(rphy)) { @@ -143,39 +142,31 @@ index ef9f7a45c122..a138417f0b2e 100644 #define CHG_DCD_POLL_TIME (100 * HZ / 1000) #define CHG_DCD_MAX_RETRIES 6 #define CHG_PRIMARY_DET_TIME (40 * HZ / 1000) -@@ -832,7 +900,6 @@ static void rockchip_chg_detect_work(struct work_struct *work) - struct rockchip_usb2phy_port *rport = - container_of(work, struct rockchip_usb2phy_port, chg_work.work); - struct rockchip_usb2phy *rphy = dev_get_drvdata(rport->phy->dev.parent); -- struct regmap *base = get_reg_base(rphy); - bool is_dcd, tmout, vout, vbus_attach; - unsigned long delay; - -@@ -844,9 +911,8 @@ static void rockchip_chg_detect_work(struct work_struct *work) +@@ -850,9 +918,8 @@ static void rockchip_chg_detect_work(struct work_struct *work) case USB_CHG_STATE_UNDEFINED: if (!rport->suspended && !vbus_attach) rockchip_usb2phy_power_off(rport->phy); - /* put the controller in non-driving mode */ - if (!vbus_attach) -- property_enable(base, &rphy->phy_cfg->chg_det.opmode, false); +- property_enable(rphy->grf, &rphy->phy_cfg->chg_det.opmode, false); + /* put the controller in charger detection mode */ + rockchip_chg_enter_mode(rphy, rport, vbus_attach); /* Start DCD processing stage 1 */ rockchip_chg_enable_dcd(rphy, true); rphy->chg_state = USB_CHG_STATE_WAIT_FOR_DCD; -@@ -908,9 +974,8 @@ static void rockchip_chg_detect_work(struct work_struct *work) +@@ -914,9 +981,8 @@ static void rockchip_chg_detect_work(struct work_struct *work) rphy->chg_state = USB_CHG_STATE_DETECTED; fallthrough; case USB_CHG_STATE_DETECTED: - /* put the controller in normal mode */ - if (!vbus_attach) -- property_enable(base, &rphy->phy_cfg->chg_det.opmode, true); +- property_enable(rphy->grf, &rphy->phy_cfg->chg_det.opmode, true); + /* put the controller back in normal mode */ + rockchip_chg_leave_mode(rphy, rport, vbus_attach); rockchip_usb2phy_otg_sm_work(&rport->otg_sm_work.work); dev_dbg(&rport->phy->dev, "charger = %s\n", chg_to_string(rphy->chg_type)); -@@ -2029,7 +2094,7 @@ static const struct rockchip_usb2phy_cfg rk3399_phy_cfgs[] = { +@@ -2027,7 +2093,7 @@ static const struct rockchip_usb2phy_cfg rk3399_phy_cfgs[] = { } }, .chg_det = { diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0048-usb-dwc3-Do-not-re-register-the-gadget-on-cable-even.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0074-usb-dwc3-Do-not-re-register-the-gadget-on-cable-even.patch similarity index 94% rename from device/community/linux-pine64-pinephonepro/megi_patches/0048-usb-dwc3-Do-not-re-register-the-gadget-on-cable-even.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0074-usb-dwc3-Do-not-re-register-the-gadget-on-cable-even.patch index 6bf86173c..ae8e8627e 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0048-usb-dwc3-Do-not-re-register-the-gadget-on-cable-even.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0074-usb-dwc3-Do-not-re-register-the-gadget-on-cable-even.patch @@ -1,7 +1,7 @@ -From 9d5233641333d58478d65d40101e36fdf2c8bbac Mon Sep 17 00:00:00 2001 +From 652933eb6956adb5491cfce54d687606a56fbba7 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 20 Jul 2026 23:15:39 +0200 -Subject: [PATCH 48/84] usb: dwc3: Do not re-register the gadget on cable +Subject: [PATCH 74/90] usb: dwc3: Do not re-register the gadget on cable events The role init and exit ended up with different conditions: init ran for @@ -30,13 +30,12 @@ Fixup for "usb: dwc3: Register the role even when no cable is connected". Signed-off-by: Ondrej Jirman -(cherry picked from commit d0b96cd58562bb50012a08ab1bd44389abfd8c28) --- drivers/usb/dwc3/core.c | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 0e20e70b9163..18d50856d3b6 100644 +index 88ae18073eb8..b1e6178cec7b 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -197,10 +197,19 @@ static void __dwc3_set_mode(struct work_struct *work) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0049-phy-rockchip-typec-Support-a-Type-C-orientation-swit.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0075-phy-rockchip-typec-Support-a-Type-C-orientation-swit.patch similarity index 95% rename from device/community/linux-pine64-pinephonepro/megi_patches/0049-phy-rockchip-typec-Support-a-Type-C-orientation-swit.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0075-phy-rockchip-typec-Support-a-Type-C-orientation-swit.patch index 2218099eb..94db478c5 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0049-phy-rockchip-typec-Support-a-Type-C-orientation-swit.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0075-phy-rockchip-typec-Support-a-Type-C-orientation-swit.patch @@ -1,7 +1,7 @@ -From bedb89fb5c6876434dad80435ede0a71f55f446a Mon Sep 17 00:00:00 2001 +From 202d000ca349e0b89d686acb6b783c3a741f8503 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 20 Jul 2026 23:39:05 +0200 -Subject: [PATCH 49/84] phy: rockchip-typec: Support a Type-C orientation +Subject: [PATCH 75/90] phy: rockchip-typec: Support a Type-C orientation switch Register a typec_switch when the DT node is marked as one, and take the @@ -18,7 +18,6 @@ cable is gone: the PHY is powered off through phy_power_off() then, so there is no reason to clear it to a value nothing should read. Signed-off-by: Ondrej Jirman -(cherry picked from commit ba3d9cfa99e2ba9a5543aaef821faa82187c1ac8) --- drivers/phy/rockchip/phy-rockchip-typec.c | 80 +++++++++++++++++++++-- 1 file changed, 73 insertions(+), 7 deletions(-) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0050-phy-rockchip-typec-Support-a-Type-C-mode-mux.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0076-phy-rockchip-typec-Support-a-Type-C-mode-mux.patch similarity index 96% rename from device/community/linux-pine64-pinephonepro/megi_patches/0050-phy-rockchip-typec-Support-a-Type-C-mode-mux.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0076-phy-rockchip-typec-Support-a-Type-C-mode-mux.patch index 4a7973caf..c45d990e3 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0050-phy-rockchip-typec-Support-a-Type-C-mode-mux.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0076-phy-rockchip-typec-Support-a-Type-C-mode-mux.patch @@ -1,7 +1,7 @@ -From 0690ea7581e1b3d7a07d92f291874d423d7b5e5b Mon Sep 17 00:00:00 2001 +From b4a8b4cde3e868ffa4a988a6e1a8c56d2903a7d8 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 20 Jul 2026 23:50:24 +0200 -Subject: [PATCH 50/84] phy: rockchip-typec: Support a Type-C mode mux +Subject: [PATCH 76/90] phy: rockchip-typec: Support a Type-C mode mux Register a typec_mux when the DT node is marked as one, and take what the lanes carry from it. Map TYPEC_STATE_USB, TYPEC_DP_STATE_C/E and @@ -18,7 +18,6 @@ it: MODE_UFP_USB and MODE_DFP_USB are only ever tested together, so report USB as MODE_DFP_USB throughout. Signed-off-by: Ondrej Jirman -(cherry picked from commit f7dfd3a3fec221817aa35d3ec00130fe5dd5b998) --- drivers/phy/rockchip/phy-rockchip-typec.c | 145 +++++++++++++++++----- 1 file changed, 117 insertions(+), 28 deletions(-) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0051-phy-rockchip-typec-Publish-the-DP-lane-count.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0077-phy-rockchip-typec-Publish-the-DP-lane-count.patch similarity index 94% rename from device/community/linux-pine64-pinephonepro/megi_patches/0051-phy-rockchip-typec-Publish-the-DP-lane-count.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0077-phy-rockchip-typec-Publish-the-DP-lane-count.patch index 4819948b2..cb0cf2499 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0051-phy-rockchip-typec-Publish-the-DP-lane-count.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0077-phy-rockchip-typec-Publish-the-DP-lane-count.patch @@ -1,7 +1,7 @@ -From c5d1fecc501008af68641d44c93b8bb81cceca5f Mon Sep 17 00:00:00 2001 +From 579865b00acc1987a998c47e83dd0bf9fd8adc00 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 23:15:20 +0200 -Subject: [PATCH 51/84] phy: rockchip-typec: Publish the DP lane count +Subject: [PATCH 77/90] phy: rockchip-typec: Publish the DP lane count Publish the negotiated lane count from the mode mux with phy_set_bus_width(): four lanes for DP alone, two when it shares the @@ -15,7 +15,6 @@ drive", sparing it from telling "no alternate mode" from "alternate mode without a sink". Signed-off-by: Ondrej Jirman -(cherry picked from commit 23febe23e8959ed5219186aa6892d8b42268fd18) --- drivers/phy/rockchip/phy-rockchip-typec.c | 28 ++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0052-drm-rockchip-cdn-dp-Support-ports-driven-by-a-Type-C.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0078-drm-rockchip-cdn-dp-Support-ports-driven-by-a-Type-C.patch similarity index 92% rename from device/community/linux-pine64-pinephonepro/megi_patches/0052-drm-rockchip-cdn-dp-Support-ports-driven-by-a-Type-C.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0078-drm-rockchip-cdn-dp-Support-ports-driven-by-a-Type-C.patch index 9bb437d43..78e957933 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0052-drm-rockchip-cdn-dp-Support-ports-driven-by-a-Type-C.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0078-drm-rockchip-cdn-dp-Support-ports-driven-by-a-Type-C.patch @@ -1,7 +1,7 @@ -From dde8b3728ec4e6844e479e989e6492cbda1074c1 Mon Sep 17 00:00:00 2001 +From 4716c2344c86367d08fd0eba84a107785f3bdd64 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 23:17:37 +0200 -Subject: [PATCH 52/84] drm/rockchip: cdn-dp: Support ports driven by a Type-C +Subject: [PATCH 78/90] drm/rockchip: cdn-dp: Support ports driven by a Type-C PHY Support a Type-C port whose lanes reach the connector through a Type-C @@ -20,13 +20,12 @@ A port now needs a PHY and nothing else. Ports that have an extcon keep reading all of it from there. Signed-off-by: Ondrej Jirman -(cherry picked from commit a0dfa262516e05183118110165ce9744e07ab95f) --- drivers/gpu/drm/rockchip/cdn-dp-core.c | 69 ++++++++++++++++++++++---- 1 file changed, 60 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c -index 13b83fe8feed..08257a3d1dbd 100644 +index 0c46224c0491..f58e3f579d86 100644 --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c @@ -157,6 +157,15 @@ static int cdn_dp_get_port_lanes(struct cdn_dp_port *port) @@ -130,7 +129,7 @@ index 13b83fe8feed..08257a3d1dbd 100644 .edid_read = cdn_dp_bridge_edid_read, .atomic_enable = cdn_dp_bridge_atomic_enable, .atomic_disable = cdn_dp_bridge_atomic_disable, -@@ -1030,6 +1074,9 @@ static int cdn_dp_bind(struct device *dev, struct device *master, void *data) +@@ -1028,6 +1072,9 @@ static int cdn_dp_bind(struct device *dev, struct device *master, void *data) for (i = 0; i < dp->ports; i++) { port = dp->port[i]; @@ -140,7 +139,7 @@ index 13b83fe8feed..08257a3d1dbd 100644 port->event_nb.notifier_call = cdn_dp_pd_event; ret = devm_extcon_register_notifier(dp->dev, port->extcon, EXTCON_DISP_DP, -@@ -1122,9 +1169,13 @@ static int cdn_dp_probe(struct platform_device *pdev) +@@ -1120,9 +1167,13 @@ static int cdn_dp_probe(struct platform_device *pdev) PTR_ERR(phy) == -EPROBE_DEFER) return -EPROBE_DEFER; @@ -155,7 +154,7 @@ index 13b83fe8feed..08257a3d1dbd 100644 port = devm_kzalloc(dev, sizeof(*port), GFP_KERNEL); if (!port) return -ENOMEM; -@@ -1137,7 +1188,7 @@ static int cdn_dp_probe(struct platform_device *pdev) +@@ -1135,7 +1186,7 @@ static int cdn_dp_probe(struct platform_device *pdev) } if (!dp->ports) { diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0053-phy-rockchip-inno-usb2-Learn-the-host-role-from-phy_.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0079-phy-rockchip-inno-usb2-Learn-the-host-role-from-phy_.patch similarity index 88% rename from device/community/linux-pine64-pinephonepro/megi_patches/0053-phy-rockchip-inno-usb2-Learn-the-host-role-from-phy_.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0079-phy-rockchip-inno-usb2-Learn-the-host-role-from-phy_.patch index c2b005a55..012db21c3 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0053-phy-rockchip-inno-usb2-Learn-the-host-role-from-phy_.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0079-phy-rockchip-inno-usb2-Learn-the-host-role-from-phy_.patch @@ -1,7 +1,7 @@ -From 642e715b3a43fe3a73dfb1f4a01e28f57916e72f Mon Sep 17 00:00:00 2001 +From c9215a902f9ebf54e465e72243dec21d712a1276 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 00:20:41 +0200 -Subject: [PATCH 53/84] phy: rockchip-inno-usb2: Learn the host role from +Subject: [PATCH 79/90] phy: rockchip-inno-usb2: Learn the host role from phy_set_mode() The OTG state machine finds out whether the port is acting as a host by @@ -21,16 +21,15 @@ EXTCON_USB_HOST this driver published to its own extcon device, so the ID pin never reached the controller there to begin with. Signed-off-by: Ondrej Jirman -(cherry picked from commit 9d26be6b0bb1456a25fc39aa91dcaaa072c8bbad) --- drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 59 ++++++++++++++++++- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -index a138417f0b2e..63acee6a4310 100644 +index 5b62cc4cb607..bbb119f34a88 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -@@ -229,6 +229,7 @@ struct rockchip_usb2phy_port { +@@ -231,6 +231,7 @@ struct rockchip_usb2phy_port { struct notifier_block event_nb; enum usb_otg_state state; enum usb_dr_mode mode; @@ -38,7 +37,7 @@ index a138417f0b2e..63acee6a4310 100644 }; /** -@@ -267,6 +268,8 @@ struct rockchip_usb2phy { +@@ -268,6 +269,8 @@ struct rockchip_usb2phy { u8 dcd_retries; unsigned int chg_mode_cfg; struct extcon_dev *edev; @@ -47,7 +46,7 @@ index a138417f0b2e..63acee6a4310 100644 int irq; const struct rockchip_usb2phy_cfg *phy_cfg; struct rockchip_usb2phy_port ports[USB2PHY_NUM_PORTS]; -@@ -456,6 +459,7 @@ static int rockchip_usb2phy_extcon_register(struct rockchip_usb2phy *rphy) +@@ -471,6 +474,7 @@ static int rockchip_usb2phy_extcon_register(struct rockchip_usb2phy *rphy) if (IS_ERR(edev)) return dev_err_probe(rphy->dev, PTR_ERR(edev), "invalid or missing extcon\n"); @@ -55,7 +54,7 @@ index a138417f0b2e..63acee6a4310 100644 } else { /* Initialize extcon device */ edev = devm_extcon_dev_allocate(rphy->dev, -@@ -659,11 +663,62 @@ static int rockchip_usb2phy_exit(struct phy *phy) +@@ -672,11 +676,62 @@ static int rockchip_usb2phy_exit(struct phy *phy) return 0; } @@ -118,7 +117,7 @@ index a138417f0b2e..63acee6a4310 100644 .owner = THIS_MODULE, }; -@@ -699,7 +754,7 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) +@@ -712,7 +767,7 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) rockchip_usb2phy_power_off(rport->phy); fallthrough; case OTG_STATE_B_IDLE: @@ -127,7 +126,7 @@ index a138417f0b2e..63acee6a4310 100644 dev_dbg(&rport->phy->dev, "usb otg host connect\n"); rport->state = OTG_STATE_A_HOST; rockchip_usb2phy_power_on(rport->phy); -@@ -774,7 +829,7 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) +@@ -787,7 +842,7 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) sch_work = true; break; case OTG_STATE_A_HOST: diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0054-usb-dwc3-Tell-the-UDC-core-when-there-is-no-cable.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0080-usb-dwc3-Tell-the-UDC-core-when-there-is-no-cable.patch similarity index 94% rename from device/community/linux-pine64-pinephonepro/megi_patches/0054-usb-dwc3-Tell-the-UDC-core-when-there-is-no-cable.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0080-usb-dwc3-Tell-the-UDC-core-when-there-is-no-cable.patch index 11a8a75e9..f32d411e3 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0054-usb-dwc3-Tell-the-UDC-core-when-there-is-no-cable.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0080-usb-dwc3-Tell-the-UDC-core-when-there-is-no-cable.patch @@ -1,7 +1,7 @@ -From 8a289a732202204e0c19c6f38da071d3b4e96f7a Mon Sep 17 00:00:00 2001 +From e258587f64983849231feaa678727911e079a6f5 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 07:22:48 +0200 -Subject: [PATCH 54/84] usb: dwc3: Tell the UDC core when there is no cable +Subject: [PATCH 80/90] usb: dwc3: Tell the UDC core when there is no cable The USB3 PHY is powered off while no cable is connected, so anything that touches the endpoints in that state fails. Binding a gadget driver @@ -39,13 +39,12 @@ the UDC connect lock, so a quick unplug also waits for an in-flight connect instead of resetting the core under it. Signed-off-by: Ondrej Jirman -(cherry picked from commit 406dea5dc6471bc2d8809df426f32445ed1d39a1) --- drivers/usb/dwc3/core.c | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 18d50856d3b6..2c1cada5d637 100644 +index b1e6178cec7b..7e86dce3d317 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -204,8 +204,20 @@ static void __dwc3_set_mode(struct work_struct *work) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0055-phy-rockchip-inno-usb2-Do-not-run-charger-detection-.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0081-phy-rockchip-inno-usb2-Do-not-run-charger-detection-.patch similarity index 89% rename from device/community/linux-pine64-pinephonepro/megi_patches/0055-phy-rockchip-inno-usb2-Do-not-run-charger-detection-.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0081-phy-rockchip-inno-usb2-Do-not-run-charger-detection-.patch index ba98f6018..7b8a1221c 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0055-phy-rockchip-inno-usb2-Do-not-run-charger-detection-.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0081-phy-rockchip-inno-usb2-Do-not-run-charger-detection-.patch @@ -1,7 +1,7 @@ -From b715f77b5a03b5ff3f5ec9d315424478e933a445 Mon Sep 17 00:00:00 2001 +From eb64fd87d66b565b4448a0527c257edbf392fdd5 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 07:35:49 +0200 -Subject: [PATCH 55/84] phy: rockchip-inno-usb2: Do not run charger detection +Subject: [PATCH 81/90] phy: rockchip-inno-usb2: Do not run charger detection as a host VBUS comes up before anything says which way round the port is: the @@ -32,16 +32,15 @@ window between VBUS and the role being known, but nothing acts on detection until it finishes, and it no longer finishes. Signed-off-by: Ondrej Jirman -(cherry picked from commit b4a35830d0c92b801c7878f1f2f1984516d53a5e) --- drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -index 63acee6a4310..49994c2390b7 100644 +index bbb119f34a88..96d0042027a4 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -@@ -680,6 +680,9 @@ static bool rockchip_usb2phy_host_mode(struct rockchip_usb2phy *rphy, +@@ -693,6 +693,9 @@ static bool rockchip_usb2phy_host_mode(struct rockchip_usb2phy *rphy, return extcon_get_state(rphy->edev, EXTCON_USB_HOST) > 0; } @@ -51,7 +50,7 @@ index 63acee6a4310..49994c2390b7 100644 static int rockchip_usb2phy_set_mode(struct phy *phy, enum phy_mode mode, int submode) { -@@ -707,6 +710,14 @@ static int rockchip_usb2phy_set_mode(struct phy *phy, enum phy_mode mode, +@@ -720,6 +723,14 @@ static int rockchip_usb2phy_set_mode(struct phy *phy, enum phy_mode mode, dev_err(&rport->phy->dev, "U2PHY set_mode: host=%d\n", host_mode); rport->host_mode = host_mode; @@ -66,7 +65,7 @@ index 63acee6a4310..49994c2390b7 100644 /* let the state machine act on the new role */ mod_delayed_work(system_wq, &rport->otg_sm_work, 0); -@@ -832,6 +843,12 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) +@@ -845,6 +856,12 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) if (!rockchip_usb2phy_host_mode(rphy, rport)) { dev_dbg(&rport->phy->dev, "usb otg host disconnect\n"); rport->state = OTG_STATE_B_IDLE; @@ -79,7 +78,7 @@ index 63acee6a4310..49994c2390b7 100644 rockchip_usb2phy_power_off(rport->phy); } break; -@@ -946,6 +963,29 @@ static void rockchip_chg_leave_mode(struct rockchip_usb2phy *rphy, +@@ -953,6 +970,29 @@ static void rockchip_chg_leave_mode(struct rockchip_usb2phy *rphy, rphy->chg_mode_cfg | (mask << BIT_WRITEABLE_SHIFT)); } diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0056-usb-dwc3-Set-the-PHY-mode-before-starting-the-host.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0082-usb-dwc3-Set-the-PHY-mode-before-starting-the-host.patch similarity index 91% rename from device/community/linux-pine64-pinephonepro/megi_patches/0056-usb-dwc3-Set-the-PHY-mode-before-starting-the-host.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0082-usb-dwc3-Set-the-PHY-mode-before-starting-the-host.patch index 88f325a8d..e76a9617a 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0056-usb-dwc3-Set-the-PHY-mode-before-starting-the-host.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0082-usb-dwc3-Set-the-PHY-mode-before-starting-the-host.patch @@ -1,7 +1,7 @@ -From 7ac552f6eeb21d5d1782a07530f0a87d7d7b4022 Mon Sep 17 00:00:00 2001 +From 4b4a12e0628238d945c214f8d324801d710aa704 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 07:43:34 +0200 -Subject: [PATCH 56/84] usb: dwc3: Set the PHY mode before starting the host +Subject: [PATCH 82/90] usb: dwc3: Set the PHY mode before starting the host The device case tells the PHYs the role before dwc3_gadget_init(), but the host case tells them only after dwc3_host_init() has returned. @@ -26,13 +26,12 @@ Move the mode setting ahead of dwc3_host_init(), which also makes the two cases consistent. Signed-off-by: Ondrej Jirman -(cherry picked from commit 82f8bbb2eadcff8cf5840c016745165130b1761f) --- drivers/usb/dwc3/core.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 2c1cada5d637..fa961b84d2b5 100644 +index 7e86dce3d317..3ff55af69018 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -314,18 +314,24 @@ static void __dwc3_set_mode(struct work_struct *work) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0057-usb-dwc3-Do-not-connect-the-gadget-while-no-cable-is.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0083-usb-dwc3-Do-not-connect-the-gadget-while-no-cable-is.patch similarity index 90% rename from device/community/linux-pine64-pinephonepro/megi_patches/0057-usb-dwc3-Do-not-connect-the-gadget-while-no-cable-is.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0083-usb-dwc3-Do-not-connect-the-gadget-while-no-cable-is.patch index ee67b9e73..fa5ec6f08 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0057-usb-dwc3-Do-not-connect-the-gadget-while-no-cable-is.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0083-usb-dwc3-Do-not-connect-the-gadget-while-no-cable-is.patch @@ -1,7 +1,7 @@ -From df015e8b9599ef975a1a90429f64bf1990dba73d Mon Sep 17 00:00:00 2001 +From 5252286b5961c10c749dfa16d48d71cfe8d6aa2a Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 07:43:49 +0200 -Subject: [PATCH 57/84] usb: dwc3: Do not connect the gadget while no cable is +Subject: [PATCH 83/90] usb: dwc3: Do not connect the gadget while no cable is present usb_add_gadget() starts out assuming VBUS is present and binds any @@ -25,13 +25,12 @@ state, which __dwc3_set_mode() already reports through usb_udc_vbus_handler(). Signed-off-by: Ondrej Jirman -(cherry picked from commit 2ef635fb2667eb4e12fe0260152c261a25c414d6) --- drivers/usb/dwc3/gadget.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c -index 519a1dd23a30..4fbcad5bb2b2 100644 +index 45b468b4c9b5..88792b22efc1 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -2797,6 +2797,20 @@ static int dwc3_gadget_pullup(struct usb_gadget *g, int is_on) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0058-phy-rockchip-inno-usb2-Power-the-PHY-up-before-the-h.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0084-phy-rockchip-inno-usb2-Power-the-PHY-up-before-the-h.patch similarity index 87% rename from device/community/linux-pine64-pinephonepro/megi_patches/0058-phy-rockchip-inno-usb2-Power-the-PHY-up-before-the-h.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0084-phy-rockchip-inno-usb2-Power-the-PHY-up-before-the-h.patch index f6aa7c84b..a96a4d9a8 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0058-phy-rockchip-inno-usb2-Power-the-PHY-up-before-the-h.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0084-phy-rockchip-inno-usb2-Power-the-PHY-up-before-the-h.patch @@ -1,7 +1,7 @@ -From bc44b71cbbaec180d07ac4961c99e7b82e5f086a Mon Sep 17 00:00:00 2001 +From 1f1ae5cc394194aa46053c3fdad3845592e13676 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 07:52:19 +0200 -Subject: [PATCH 58/84] phy: rockchip-inno-usb2: Power the PHY up before the +Subject: [PATCH 84/90] phy: rockchip-inno-usb2: Power the PHY up before the host starts Switching to host mode only queued the OTG state machine, so the PHY was @@ -25,16 +25,15 @@ through the state machine, which has to work out what the port is facing before it can do anything anyway. Signed-off-by: Ondrej Jirman -(cherry picked from commit 04db52e4ec332802c34c202252c37f9e37d414c1) --- drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -index 49994c2390b7..22ef0e8dd117 100644 +index 96d0042027a4..ffbe80342189 100644 --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c -@@ -718,7 +718,20 @@ static int rockchip_usb2phy_set_mode(struct phy *phy, enum phy_mode mode, +@@ -731,7 +731,20 @@ static int rockchip_usb2phy_set_mode(struct phy *phy, enum phy_mode mode, */ rockchip_chg_detect_cancel(rphy, rport); diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0059-usb-dwc3-Require-MPS-aligned-OUT-buffers.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0085-usb-dwc3-Require-MPS-aligned-OUT-buffers.patch similarity index 82% rename from device/community/linux-pine64-pinephonepro/megi_patches/0059-usb-dwc3-Require-MPS-aligned-OUT-buffers.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0085-usb-dwc3-Require-MPS-aligned-OUT-buffers.patch index 56b843c77..f4074ca3b 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0059-usb-dwc3-Require-MPS-aligned-OUT-buffers.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0085-usb-dwc3-Require-MPS-aligned-OUT-buffers.patch @@ -1,7 +1,7 @@ -From 2575cfc3439b3a876b35644780657e87cb5739cd Mon Sep 17 00:00:00 2001 +From c8861d8968cc9da016f5c55385956a2757068e0b Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 21 Jul 2026 10:22:14 +0200 -Subject: [PATCH 59/84] usb: dwc3: Require MPS-aligned OUT buffers +Subject: [PATCH 85/90] usb: dwc3: Require MPS-aligned OUT buffers An OUT request whose length is not a multiple of the maximum packet size gets an extra TRB pointing at a shared bounce buffer, so that a final @@ -12,17 +12,16 @@ byte stream. Set quirk_ep_out_aligned_size so the framework rounds OUT buffers up to the maximum packet size and the overflow cannot happen. - -(cherry picked from commit 7b6bedf1b7096d2ce9dd3d9d0006508e1852e816) +Signed-off-by: Ondrej Jirman --- drivers/usb/dwc3/gadget.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c -index 4fbcad5bb2b2..c5f5efda2185 100644 +index 88792b22efc1..d92f91eac235 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c -@@ -4782,6 +4782,16 @@ int dwc3_gadget_init(struct dwc3 *dwc) +@@ -4815,6 +4815,16 @@ int dwc3_gadget_init(struct dwc3 *dwc) dwc->revision); dwc->gadget->max_speed = dwc->maximum_speed; diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0060-usb-typec-displayport-Update-the-mux-before-signalli.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0086-usb-typec-displayport-Update-the-mux-before-signalli.patch similarity index 97% rename from device/community/linux-pine64-pinephonepro/megi_patches/0060-usb-typec-displayport-Update-the-mux-before-signalli.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0086-usb-typec-displayport-Update-the-mux-before-signalli.patch index 36e3ebf54..e1163f9b5 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0060-usb-typec-displayport-Update-the-mux-before-signalli.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0086-usb-typec-displayport-Update-the-mux-before-signalli.patch @@ -1,7 +1,7 @@ -From c0b9ffa7d04334b0ba1a136f4cda14ac725eb929 Mon Sep 17 00:00:00 2001 +From 57d46058ad83cc0f7dd5a2930c7b3f6052ff1cd0 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Wed, 22 Jul 2026 14:03:03 +0200 -Subject: [PATCH 60/84] usb: typec: displayport: Update the mux before +Subject: [PATCH 86/90] usb: typec: displayport: Update the mux before signalling hotplug On HPD changes the DP alt mode driver signalled the DRM side first and diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0017-mtd-spi-nor-gigadevice-Add-support-for-gd25lq128e.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0087-mtd-spi-nor-gigadevice-Add-support-for-gd25lq128e.patch similarity index 85% rename from device/community/linux-pine64-pinephonepro/megi_patches/0017-mtd-spi-nor-gigadevice-Add-support-for-gd25lq128e.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0087-mtd-spi-nor-gigadevice-Add-support-for-gd25lq128e.patch index fa318eaab..e43342695 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0017-mtd-spi-nor-gigadevice-Add-support-for-gd25lq128e.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0087-mtd-spi-nor-gigadevice-Add-support-for-gd25lq128e.patch @@ -1,12 +1,13 @@ -From c526256757f45b4afd820f4703e85156a5f4d37e Mon Sep 17 00:00:00 2001 +From afae5311c52393eaaf9d5e048bcf4ac66eef251f Mon Sep 17 00:00:00 2001 From: Martijn Braam Date: Sat, 29 Jan 2022 23:06:29 +0100 -Subject: [PATCH 17/84] mtd: spi-nor: gigadevice: Add support for gd25lq128e +Subject: [PATCH 87/90] mtd: spi-nor: gigadevice: Add support for gd25lq128e The GD25LQ128EWIGR reports an JEDEC id with a different vendor, otherwise it seems to fit neatly in the gigadevice list. Signed-off-by: Martijn Braam +Signed-off-by: Ondrej Jirman --- drivers/mtd/spi-nor/gigadevice.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0018-clk-rk3399-Export-SCLK_CIF_OUT_SRC-to-device-tree.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0088-clk-rk3399-Export-SCLK_CIF_OUT_SRC-to-device-tree.patch similarity index 91% rename from device/community/linux-pine64-pinephonepro/megi_patches/0018-clk-rk3399-Export-SCLK_CIF_OUT_SRC-to-device-tree.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0088-clk-rk3399-Export-SCLK_CIF_OUT_SRC-to-device-tree.patch index c2d4bb386..373f3ec34 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0018-clk-rk3399-Export-SCLK_CIF_OUT_SRC-to-device-tree.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0088-clk-rk3399-Export-SCLK_CIF_OUT_SRC-to-device-tree.patch @@ -1,7 +1,7 @@ -From 9383b1fc0830fc3a27d82fe538fb1e594525e9c2 Mon Sep 17 00:00:00 2001 +From db5d0ba63a6a7b2580936179f583818aa51b310a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 22 Oct 2021 18:09:09 +0200 -Subject: [PATCH 18/84] clk: rk3399: Export SCLK_CIF_OUT_SRC to device tree +Subject: [PATCH 88/90] clk: rk3399: Export SCLK_CIF_OUT_SRC to device tree So that it can be used in assigned-clock-parents. diff --git a/device/community/linux-pine64-pinephonepro/megi_patches/0019-clk-rockchip-rk3399-Don-t-allow-to-reparent-dclk_vop.patch b/device/community/linux-pine64-pinephonepro/megi_patches/0089-clk-rockchip-rk3399-Don-t-allow-to-reparent-dclk_vop.patch similarity index 91% rename from device/community/linux-pine64-pinephonepro/megi_patches/0019-clk-rockchip-rk3399-Don-t-allow-to-reparent-dclk_vop.patch rename to device/community/linux-pine64-pinephonepro/megi_patches/0089-clk-rockchip-rk3399-Don-t-allow-to-reparent-dclk_vop.patch index ff653621a..206c8d739 100644 --- a/device/community/linux-pine64-pinephonepro/megi_patches/0019-clk-rockchip-rk3399-Don-t-allow-to-reparent-dclk_vop.patch +++ b/device/community/linux-pine64-pinephonepro/megi_patches/0089-clk-rockchip-rk3399-Don-t-allow-to-reparent-dclk_vop.patch @@ -1,7 +1,7 @@ -From 6f8589b9204a397d5deaa8edd475322b9ec72759 Mon Sep 17 00:00:00 2001 +From 729242c9e6ba6d4c3b8734c2435ee9fc921d39ab Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 24 Oct 2022 03:17:57 +0200 -Subject: [PATCH 19/84] clk: rockchip: rk3399: Don't allow to reparent +Subject: [PATCH 89/90] clk: rockchip: rk3399: Don't allow to reparent dclk_vop0 to frac clock frac clock requires 20x difference between intput and output, and kernel