From 3d46ef80e0695bc06f4c4acf44d031a7e9417c5e Mon Sep 17 00:00:00 2001 From: Werner <3305006+EvilOlaf@users.noreply.github.com> Date: Tue, 16 Dec 2025 12:35:24 +0100 Subject: [PATCH] sunxi: bump `edge` to 6.18 (#9049) * sunxi-6.18: make the mess even worse * fixing one of megis patches and add sunxi 32bit to the mess * rewrite against 6.18 * fix media-ov5640-Don-t-powerup-the-sensor-during-driver-probe.patch * fix media-sun6i-csi-implement-vidioc_enum_framesizes.patch * fix misc-modem-power-Power-manager-for-modems.patch * Fix usb-gadget-Fix-dangling-pointer-in-netdev-private-data.patch, include rewrite * fix mmc-sunxi-mmc-Remove-runtime-PM.patch, two hunks no longer apply * re-extract all of megis patches * remove unneeded branch * add note to disabled patch * auto-generated, out of date * drop megous drm patches in favor of Jernej's work. disable broken patches * disable patch which breaks compilation for armhf * disable breaking patch, rewrite everything * remove patches unrelated to sunxi family * fix spi dev compatible patch * fix tsc2007 patch * drop mainlined patch, adjust x96 mate T95 eth sd card hack * remove upstreamed patch * re-enable no longer broken * another rewrite to align stuff properly * adjust various comments in series.conf * recover lost overlays * uew5622: fix compilation against Linux 6.18 * fix Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch * adjust patch subject to make sense * restore fixup creation restore overlay prefix on opiz2 this needs to be properly sorted at some point * bump to 6.18.1 sunxi and sunxi64 build just fine * fix and re-enable drv-mfd-axp20x-add-sysfs-interface.patch * rewrite patches --- config/boards/orangepizero2.csc | 1 + .../families/include/sunxi64_common.inc | 4 +- .../sources/families/include/sunxi_common.inc | 4 +- .../compilation/patch/drivers_network.sh | 10 +- ...64-dts-sun50i-h616-x96-mate-add-hdmi.patch | 64 - ...after-vsync-is-complete-not-in-the-m.patch | 111 -- ...rm-sun4i-de2-de3-Change-CSC-argument.patch | 178 -- ...ic-blender-register-reference-functi.patch | 38 - ...sun4i-de2-de3-add-mixer-version-enum.patch | 257 --- ...de3-call-csc-setup-also-for-UI-layer.patch | 64 - ...e2-de3-refactor-mixer-initialisation.patch | 129 -- ...ic-register-reference-function-for-l.patch | 117 -- ...m-sun4i-de3-Add-YUV-formatter-module.patch | 164 -- ...drm-sun4i-de3-Implement-AFBC-support.patch | 569 ------- ...de3-add-YUV-support-to-the-DE3-mixer.patch | 124 -- ...un4i-de3-add-YUV-support-to-the-TCON.patch | 83 - ...rt-to-the-color-space-correction-mod.patch | 225 --- ...ormat-enumeration-function-to-engine.patch | 63 - ...3-add-formatter-flag-to-mixer-config.patch | 53 - ...ine-reference-to-ccsc-setup-function.patch | 54 - ...-add-Display-Engine-3.3-DE33-support.patch | 156 -- ...-add-Display-Engine-3.3-DE33-support.patch | 75 - ...-add-Display-Engine-3.3-DE33-support.patch | 305 ---- ...-add-Display-Engine-3.3-DE33-support.patch | 77 - ...n4i-support-YUV-formats-in-VI-scaler.patch | 140 -- ...scaler-refactor-vi_scaler-enablement.patch | 100 -- ...-allwinner-add-H616-DE33-bus-binding.patch | 35 - ...llwinner-add-H616-DE33-mixer-binding.patch | 36 - ...snd_soc_unregister_component-and-snd.patch | 80 - ...one-Add-support-for-Pinephone-1.2-be.patch | 54 - ...tch-parent-of-MIPI-DSI-to-periph0-1x.patch | 48 - ...-timings-to-make-refresh-rate-exactl.patch | 37 - ...drm-sun4i-Implement-gamma-correction.patch | 131 -- ...er-display-pipeline-state-from-p-boo.patch | 547 ------- ...ing-dclk-rate-upon-ancestor-clock-ch.patch | 179 -- ...w-to-change-lth_brightness-via-sysfs.patch | 126 -- patch/kernel/archive/sunxi-6.16/series.conf | 468 ------ patch/kernel/archive/sunxi-6.16/series.megous | 241 --- .../0000.patching_config.yaml | 4 +- .../dt/sun50i-h618-bananapi-m4-zero.dts | 0 .../dt/sun50i-h618-bananapi-m4.dtsi | 0 .../dt/sun50i-h618-kickpi-k2b.dts | 0 ...nanopiduo2-Use-key-0-as-power-button.patch | 0 ...dts-sun8i-nanopiduo2-enable-ethernet.patch | 0 ...0i-h616-BigTreeTech-CB1-Enable-EMAC1.patch | 2 +- ...50i-h616-BigTreeTech-CB1-Enable-HDMI.patch | 8 +- .../ASoC-AC200-Initial-driver.patch | 17 +- .../Add-BananaPi-BPI-M4-Zero-overlays.patch | 75 +- .../Add-BananaPi-BPI-M4-Zero-pinctrl.patch | 12 +- .../Add-FB_TFT-ST7796S-driver.patch | 15 +- ...o-1-and-2-by-including-HDMI-and-DE-n.patch | 8 +- ...ino-3-by-including-HDMI-and-DE-nodes.patch | 8 +- ...d-dump_reg-and-sunxi-sysinfo-drivers.patch | 44 +- ...to-fix-uwe5622-bluetooth-MAC-address.patch | 32 +- .../Add-wifi-nodes-for-Inovato-Quadra.patch | 24 +- ...ws2812-RGB-driver-for-allwinner-H616.patch | 13 +- ...o-mode-adjustment-and-ws2812-rgb_val.patch | 16 +- .../Compile-the-pwm-overlay.patch | 0 ...ce-number-as-referenced-in-the-Allwi.patch | 0 ...ding-for-DWC3-controller-on-Allwinne.patch | 9 +- ...Allwinner-A10-EMAC-which-already-exi.patch | 0 .../Enable-creation-of-__symbols__-node.patch | 2 +- ...-ghost-touches-on-tsc2007-tft-screen.patch | 20 +- .../Fix-include-uapi-spi-spidev-module.patch | 0 ...p20x-pek-allow-wakeup-after-shutdown.patch | 0 ...us_heartbeat-arch-arm64-boot-dts-all.patch | 2 +- ...FIG_SHELL-fix-for-builddeb-packaging.patch | 6 +- ...i-h6-pwm-settings-to-its-own-overlay.patch | 13 +- ...C2007-touchscreen-add-polling-method.patch | 55 +- ...sun4i-hdmi-switch-to-struct-drm_edid.patch | 8 +- .../Sound-for-H616-H618-Allwinner-SOCs.patch | 112 +- ...-boot-dts-allwinner-sun50i-a64-pinep.patch | 6 +- .../add-dtb-overlay-for-zero2w.patch | 30 +- ...dd-initial-support-for-orangepi3-lts.patch | 24 +- ...i-info-sunxi-addr-and-sunxi-dump-reg.patch | 16 +- ...rm-arm64-dts-Add-leds-axp20x-charger.patch | 0 ...-Add-sun8i-h2-plus-nanopi-duo-device.patch | 24 +- ...Add-sun8i-h2-plus-sunvell-r69-device.patch | 24 +- ...ubietruck-green-LED-mmc0-default-tri.patch | 0 ...-orangepi-and-mini-fix-phy-mode-hdmi.patch | 0 ...3-nanopi-neo-Add-regulator-leds-mmc2.patch | 0 ...dd-regulator-camera-wifi-bluetooth-o.patch | 0 ...-h3-orangepi-2-Add-regulator-vdd-cpu.patch | 0 ...m-dts-overlay-Add-Overlays-for-sunxi.patch | 497 +++--- ...lay-sun8i-h3-cpu-clock-add-overclock.patch | 23 +- ...-Add-panel-lcd-olinuxino-4.3-needed-.patch | 0 ...no-micro-add-panel-lcd-olinuxino-4.3.patch | 0 ...OB-IRQ-for-brcm-wifi-on-Cubietruck-a.patch | 0 ...-a20-bananapro-add-AXP209-regulators.patch | 0 ...-a20-bananapro-add-hdmi-connector-de.patch | 0 ...sun7i-a20-cubietruck-add-alias-uart2.patch | 0 ...m-204-evb-olinuxino-micro-decrease-d.patch | 0 ...0-olinuxino-lime2-enable-audio-codec.patch | 0 ...linuxino-lime2-enable-ldo3-always-on.patch | 0 ...-olinuxino-micro-emmc-Add-vqmmc-node.patch | 0 ...us-orangepi-zero-fix-usb_otg-dr_mode.patch | 8 +- ...s-orangepi-zero-fix-xradio-interrupt.patch | 2 +- .../arm-dts-sun8i-h3-add-thermal-zones.patch | 2 +- ...-h3-bananapi-m2-plus-add-wifi_pwrseq.patch | 0 ...ts-sun8i-h3-nanopi-add-leds-pio-pins.patch | 0 ...-h3-orangepi-pc-plus-add-wifi_pwrseq.patch | 0 ...-microvolt-to-prevent-not-supported-.patch | 0 ...-r40-add-clk_out_a-fix-bananam2ultra.patch | 0 ...0-bananapi-m2-ultra-add-codec-analog.patch | 0 ...i-v3s-s3-pinecube-enable-sound-codec.patch | 14 +- ...arm-dts-sun9i-a80-add-thermal-sensor.patch | 0 .../arm-dts-sun9i-a80-add-thermal-zone.patch | 0 ...-sunxi-h3-h5.dtsi-add-i2s0-i2s1-pins.patch | 0 ...unxi-h3-h5.dtsi-force-mmc0-bus-width.patch | 0 ...e-ASAP-after-writing-new-instruction.patch | 0 ...un50i-h618-bananapi-m4-berry-support.patch | 30 +- ...-Add-sun50i-h5-nanopi-k1-plus-device.patch | 24 +- ...Add-sun50i-h5-nanopi-m1-plus2-device.patch | 24 +- ...dd-sun50i-h5-nanopi-neo-core2-device.patch | 24 +- ...dd-sun50i-h5-nanopi-neo2-v1.1-device.patch | 24 +- ...64-olinuxino-add-regulator-audio-mmc.patch | 0 ...64-dts-add-sun50i-h618-cpu-dvfs.dtsi.patch | 24 +- ...arm64-dts-allwinner-Add-axp313a.dtsi.patch | 11 +- ...ts-allwinner-h6-Add-AC200-EPHY-nodes.patch | 18 +- ...s-allwinner-h6-add-AC200-codec-nodes.patch | 14 +- ...-dts-allwinner-h6-enable-AC200-codec.patch | 18 +- ...s-allwinner-h6-tanix-enable-Ethernet.patch | 8 +- ...angepi-zero2-Enable-expansion-board-.patch | 12 +- ...ner-overlay-Add-Overlays-for-sunxi64.patch | 257 ++- ...-dts-allwinner-sun50i-h6-Fix-H6-emmc.patch | 8 +- ...s-allwinner-sun50i-h616-Add-VPU-node.patch | 16 +- ...dts-h616-8-Add-overlays-i2c-pwm-uart.patch | 130 +- ...pport-for-orange-pi-zero-2-and-zero3.patch | 12 +- ...i-a64-set-right-phy-mode-to-rgmii-id.patch | 0 ...-overlay-sun50i-a64-pine64-7inch-lcd.patch | 17 +- ...n50i-h5-add-gpio-regulator-overclock.patch | 28 +- ...-dts-sun50i-a64-force-mmc0-bus-width.patch | 6 +- ...ino-1Ge16GW-Disable-clock-phase-and-.patch | 0 ...4-olinuxino-1Ge16GW-enable-bluetooth.patch | 0 ...-dts-sun50i-a64-olinuxino-add-boards.patch | 48 +- ...-a64-olinuxino-emmc-enable-bluetooth.patch | 0 ...64-orangepi-win-add-aliase-ethernet1.patch | 0 ...arm64-dts-sun50i-a64-pine64-add-spi0.patch | 8 +- ...s-sun50i-a64-pine64-enable-wifi-mmc1.patch | 6 +- ...64-sopine-baseboard-enable-Bluetooth.patch | 8 +- ...64-sopine-baseboard-mmc1-status-okay.patch | 6 +- ...-a64.dtsi-adjust-thermal-trip-points.patch | 0 .../arm64-dts-sun50i-h313-x96q-lpddr3.patch | 29 +- ...arm64-dts-sun50i-h5-add-cpu-opp-refs.patch | 0 ...arm64-dts-sun50i-h5-add-termal-zones.patch | 8 +- ...able-power-button-for-orangepi-prime.patch | 0 ...nanopi-neo2-add-regulator-led-triger.patch | 0 ...h5-nanopi-r1s-h5-add-rtl8153-support.patch | 0 ...sun50i-h5-orangepi-pc2-add-spi-flash.patch | 8 +- ...n50i-h5-orangepi-prime-add-regulator.patch | 8 +- ...n50i-h5-orangepi-prime-add-rtl8723cs.patch | 6 +- ...-h5-orangepi-zero-plus-add-regulator.patch | 0 ...ts-sun50i-h6-Add-r_uart-uart2-3-pins.patch | 20 +- ...n50i-h6-orangepi-3-add-r_uart-aliase.patch | 0 ...un50i-h6-orangepi-3-delete-node-spi0.patch | 6 +- ...-sun50i-h6-orangepi-add-cpu-opp-refs.patch | 0 ...i-enable-higher-clock-regulator-max-.patch | 6 +- ...ngepi-lite2-spi0-usb3phy-dwc3-enable.patch | 0 ...-sun50i-h6-pine-h64-add-dwc3-usb3phy.patch | 6 +- ...un50i-h6-pine-h64-add-wifi-rtl8723cs.patch | 8 +- ...50i-h6.dtsi-add-pinctrl-pins-for-spi.patch | 10 +- ...-dts-sun50i-h6.dtsi-improve-thermals.patch | 10 +- ...ts-sun50i-h616-add-pwm-nodes-support.patch | 12 +- ...-sun50i-h616-bigtreetech-cb1-sd-emmc.patch | 34 +- ...-h616-orangepi-zero2-Enable-GPU-mali.patch | 8 +- ...angepi-zero2-reg_usb1_vbus-status-ok.patch | 2 +- ...i-h616-x96-mate-T95-eth-sd-card-hack.patch | 44 +- ...6.dtsi-reserved-memory-512K-for-BL31.patch | 8 +- ...18-orangepi-zero2w-Add-missing-nodes.patch | 16 +- ...-h618-orangepi-zero3-Enable-GPU-mali.patch | 8 +- ...50i-h616-Add-i2c-2-3-4-uart-2-5-pins.patch | 12 +- .../patches.armbian/cb1-overlay.patch | 92 +- ...e-add-support-for-regmap-based-gates.patch | 2 +- .../driver-allwinner-h618-emac.patch | 74 +- ...q-sun8i-a33-mbus-disable-autorefresh.patch | 0 ...dd-pwm-sunxi-enhance-driver-for-h616.patch | 22 +- ...urce-arm_arch_timer-fix-a64-timejump.patch | 2 +- ...gem-dma-Export-with-handle-allocator.patch | 0 ...simple-Add-compability-olinuxino-lcd.patch | 20 +- .../drv-gpu-drm-sun4i-Add-GEM-allocator.patch | 13 +- ...4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch | 19 +- ...rm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch | 14 +- ...rm64-dts-axp803-hwmon-enable-thermal.patch | 10 +- ...-touchscreen-sun4i-ts-Enable-parsing.patch | 0 ...dvb-frontends-si2168-fix-cmd-timeout.patch | 0 .../drv-mfd-axp20x-add-sysfs-interface.patch | 18 +- ...ble-DDR52-mode-on-all-A20-based-boar.patch | 2 +- ...ost-sunxi-mmc-add-h5-emmc-compatible.patch | 0 ...-nand_ids.c-add-H27UBG8T2BTR-BC-nand.patch | 0 ...mac-sun8i-second-EMAC-clock-register.patch | 14 +- ...-nvmem-sunxi_sid-Support-SID-on-H616.patch | 0 ...vice-Tree-Overlay-ConfigFS-interface.patch | 15 +- ...4i-usb-Allow-reset-line-to-be-shared.patch | 14 +- ...nctrl-sun50i-a64-disable_strict_mode.patch | 0 ...sun50i-h6.c-GPIO-disable_strict_mode.patch | 0 ...sunxi-sram-Add-SRAM-C1-H616-handling.patch | 4 +- ...v-spi-spi-sun4i.c-spi-bug-low-on-sck.patch | 6 +- ...pidev-Add-armbian-spi-dev-compatible.patch | 25 +- ...-media-sunxi-cedrus-add-H616-variant.patch | 12 +- .../drv-staging-rtl8723bs-AP-bugfix.patch | 8 +- ...name-gadget-serial-console-manufactu.patch | 8 +- ...nable-TV-Output-on-OrangePi-Zero-LTE.patch | 74 +- .../fix-cpu-opp-table-sun8i-a83t.patch | 0 .../patches.armbian/h616-add-keys.patch | 25 +- ...fourcc-add-ARM-tiled-format-modifier.patch | 8 +- ...pport-for-X-Powers-AC200-EPHY-syscon.patch | 13 +- .../mfd-Add-support-for-X-Powers-AC200.patch | 19 +- .../mmc-host-sunxi-mmc-Fix-H6-emmc.patch | 4 +- .../net-phy-Add-support-for-AC200-EPHY.patch | 19 +- ...-r8152-add-LED-configuration-from-OF.patch | 8 +- ...unxi_get_soc_chipid-sunxi_get_serial.patch | 0 ...ipts-add-overlay-compilation-support.patch | 16 +- ...the-early-load-of-sun8i-codec-analog.patch | 0 ...4i-codec-adcis-select-capture-source.patch | 8 +- ...unxi-sun8i-codec-analog-enable-sound.patch | 0 ...6-Add-the-missing-digital-audio-node.patch | 16 +- ...n4i-mixer-Fix-up-DE33-channel-macros.patch | 41 + ...-sun4i-mixer-Remove-ccsc-cfg-for-DE3.patch | 38 + ...de2-Initialize-layer-fields-earlier.patch} | 27 +- ...er-Move-check-from-update-to-check-c.patch | 65 + ...er-Move-check-from-update-to-check-c.patch | 64 + ...rs-Make-atomic-commit-functions-void.patch | 138 ++ ...-blender-config-from-layers-to-mixer.patch | 197 +++ ...-ui-layer-Write-attributes-in-one-go.patch | 106 ++ ...-vi-layer-Write-attributes-in-one-go.patch | 141 ++ ...Move-layer-enabling-to-atomic_update.patch | 129 ++ ...2-de3-Simplify-CSC-config-interface.patch} | 112 +- ...mplify-arguments-with-taking-plane-s.patch | 179 ++ ...3-Move-plane-type-determination-to-m.patch | 137 ++ ...-sun4i-ui_layer-Change-index-meaning.patch | 81 + ...move-num-of-planes-calc-out-of-layer.patch | 140 ++ ...er-use-layer-struct-instead-of-multi.patch | 180 ++ ...er-use-layer-struct-instead-of-multi.patch | 180 ++ ...ler-use-layer-instead-of-mixer-for-a.patch | 107 ++ ...ler-use-layer-instead-of-mixer-for-a.patch | 125 ++ ...-Make-regmap-for-layers-configurable.patch | 352 ++++ ...i-csc-use-layer-arg-instead-of-mixer.patch | 86 + ...-sun4i-layers-add-physical-index-arg.patch | 174 ++ ..._scaler-Update-DE33-base-calculation.patch | 54 + ...4i-mixer-Convert-heuristics-to-quirk.patch | 157 ++ ...m-sun4i-ui_scaler-drop-sanity-checks.patch | 43 + ...r-Add-quirk-for-number-of-VI-scalers.patch | 164 ++ ...m-sun4i-mixer-split-out-layer-config.patch | 400 +++++ ...ayer-replace-mixer-with-layer-struct.patch | 495 ++++++ ...sun4i-vi_scaler-Find-mixer-from-crtc.patch | 41 + ...i-Nuke-mixer-pointer-from-layer-code.patch | 136 ++ ...1-drm-sun4i-Add-support-for-DE33-CSC.patch | 125 ++ ...un4i-vi_layer-Limit-formats-for-DE33.patch | 71 + ...-de2-Export-register-regmap-for-DE33.patch | 102 ++ ...gs-display-allwinner-Add-DE33-planes.patch | 69 + .../0035-drm-sun4i-Add-planes-driver.patch | 305 ++++ ...lay-allwinner-Update-H616-DE33-bindi.patch | 72 + ...rm-sun4i-switch-DE33-to-new-bindings.patch | 362 +++++ ...8-drm-sun4i-Add-H616-TCON-TV-support.patch | 74 + ...sun4i-Add-support-for-H616-HDMI-PHY.patch} | 78 +- ...d-compatible-for-H616-display-engine.patch | 27 + ...allwinner-h616-Add-display-pipeline.patch} | 263 +-- ...ner-h616-Enable-HDMI-on-several-boar.patch | 303 ++++ .../patches.drm/0043-T95-broken-CD.patch | 26 + ...ma-sun6i-dma-add-sun50i-h616-support.patch | 8 +- ...V12-and-P010-AFBC-compressed-formats.patch | 10 +- ...-cedrus-Don-t-CPU-map-source-buffers.patch | 8 +- ...plement-AFBC-YUV420-formats-for-H265.patch | 32 +- .../media-cedrus-Increase-H6-clock-rate.patch | 8 +- ...tering-based-on-depth-and-src-format.patch | 10 +- ...dd-support-for-VBAT-PVDD-regulators.patch} | 8 +- ...tore-drive_rts_on_open-true-behavio.patch} | 6 +- ...d-delay-after-power-class-selection.patch} | 10 +- ...a83t-tbs-a711-Add-PN544-NFC-support.patch} | 8 +- ...t-tbs-a711-Add-powerup-down-support.patch} | 13 +- ...t-Add-cedrus-video-codec-support-to.patch} | 6 +- ...007-ARM-dts-suni-a83t-Add-i2s0-pins.patch} | 6 +- ...t-tbs-a711-Add-sound-support-via-AC.patch} | 8 +- ...t-tbs-a711-Add-regulators-to-the-ac.patch} | 6 +- ...t-tbs-a711-Add-camera-sensors-HM506.patch} | 8 +- ...a83t-tbs-a711-Add-flash-led-support.patch} | 6 +- ...NTAINERS-Add-entry-for-Himax-HM5065.patch} | 10 +- ...-Add-bindings-for-Himax-HM5065-came.patch} | 9 +- .../0003-hm5065-yaml-bindings-wip.patch} | 9 +- ...subdev-driver-for-Himax-HM5065-came.patch} | 17 +- ...Move-upstream-driver-out-of-the-way.patch} | 15 +- ...145-Galaxycore-camera-module-driver.patch} | 17 +- ...-media-gc2145-Added-BGGR-bayer-mode.patch} | 6 +- ...8-media-gc2145-Disable-debug-output.patch} | 6 +- ...PIXEL_RATE-HBLANK-and-VBLANK-contro.patch} | 8 +- ...dia-gc2145-implement-system-suspend.patch} | 8 +- ...dia-gc2145-fix-white-balance-colors.patch} | 8 +- ...c2145-Parse-and-register-properties.patch} | 6 +- ...Add-a-binding-for-AXP813-charger-le.patch} | 9 +- ...rt-charger-LED-on-AXP20x-like-PMICs.patch} | 17 +- ...0003-ARM-dts-axp813-Add-charger-LED.patch} | 6 +- ...i-a83t-tbs-a711-Enable-charging-LED.patch} | 8 +- ...-gpio-vibrator-Don-t-require-enable.patch} | 6 +- ...Allow-to-use-vcc-supply-alone-to-co.patch} | 8 +- ...t-tbs-a711-Add-support-for-the-vibr.patch} | 6 +- ...t-tbs-a711-Increase-voltage-on-the-.patch} | 8 +- ...run-mailbox-while-timekeeping-is-su.patch} | 12 +- ...erimental-suspend-to-memory-impleme.patch} | 8 +- ...pu0_hotplug_support_set-is-not-supp.patch} | 6 +- ...-support-for-sending-a-SCPI_CMD_SET.patch} | 8 +- ...I-to-send-suspend-message-to-SCP-on.patch} | 8 +- ...d-soft-powerdown-message-on-suspend.patch} | 8 +- ...unxi-ng-Export-CLK_DRAM-for-devfreq.patch} | 8 +- ...08-ARM-dts-sun8i-a83t-Add-MBUS-node.patch} | 8 +- ...4i-usb-Add-support-for-usb_role_swi.patch} | 12 +- ...Add-support-for-vin-supply-for-driv.patch} | 8 +- ...Turn-N_VBUSEN-to-input-on-x-powers-.patch} | 14 +- ...i-Allow-to-accept-HPD-status-from-o.patch} | 28 +- ...-dw-hdmi-Report-HDMI-hotplug-events.patch} | 10 +- ...-Add-driver-for-ANX7688-USB-C-HDMI-.patch} | 15 +- ...-sdhci-arasan-Add-runtime-PM-support.patch | 155 ++ ...-Add-jack-type-property-to-sun8i-a3.patch} | 8 +- ...Allow-the-jack-type-to-be-set-via-d.patch} | 8 +- ...-sun8i-codec-define-button-keycodes.patch} | 6 +- ...Add-debug-output-for-jack-detection.patch} | 8 +- ...odec-Set-jack_type-from-DT-in-probe.patch} | 8 +- ...Allow-to-define-pins-for-aux-jack-d.patch} | 8 +- ...4-Increase-PLL_AUDIO-base-frequency.patch} | 8 +- ...dd-codec-related-properties-to-AC10.patch} | 8 +- ...odec-Support-analog-part-of-X-Power.patch} | 17 +- ...odec-Add-support-for-digital-part-o.patch} | 10 +- ...New-codec-driver-for-the-EC25-modem.patch} | 19 +- ...maximum-P-and-M-factors-to-1-for-H3.patch} | 8 +- ...t-use-CPU-PLL-gating-and-CPUX-repar.patch} | 8 +- ...Use-my-own-more-aggressive-OPPs-on-.patch} | 8 +- ...h5-Use-my-own-more-aggressive-OPPs-.patch} | 8 +- ...orange-pi-pc-Increase-max-CPUX-volt.patch} | 6 +- ...t-Improve-CPU-OPP-tables-go-up-to-1.patch} | 8 +- ...ow-detected-CPU-bin-for-easier-debu.patch} | 6 +- ...unxi-ng-Mark-TWD-clocks-as-critical.patch} | 10 +- ...-Support-unidirectional-mailbox-cha.patch} | 8 +- ...RM-dts-sunxi-a83t-Add-SCPI-protocol.patch} | 12 +- ...M-dts-sunxi-h3-h5-Add-SCPI-protocol.patch} | 18 +- ...t-tbs-a711-Give-Linux-more-privileg.patch} | 12 +- ...n6i-Allow-RTC-wakeup-after-shutdown.patch} | 8 +- ...0x-adc-allow-to-use-TS-pin-as-GPADC.patch} | 8 +- ...c-allow-to-set-TS-pin-to-GPADC-mode.patch} | 6 +- ...ery-Allow-to-set-target-voltage-to-.patch} | 6 +- ...0x_battery-Add-support-for-reportin.patch} | 8 +- ...Enable-over-temperature-protection-.patch} | 6 +- ...0x_battery-Setup-thermal-regulation.patch} | 8 +- ...0x_battery-Fix-charging-done-detect.patch} | 6 +- ...fd-axp20x-Add-battery-IRQ-resources.patch} | 8 +- ...0x_battery-Send-uevents-for-status-.patch} | 8 +- ...p20x_battery-Monitor-battery-health.patch} | 8 +- ...0x-usb-power-Change-Vbus-hold-volta.patch} | 8 +- ...interrupts-for-low-battery-power-co.patch} | 8 +- ...0x-battery-Support-POWER_SUPPLY_PRO.patch} | 8 +- ...0x-battery-Enable-poweron-by-RTC-al.patch} | 6 +- ...0x-battery-Add-support-for-POWER_SU.patch} | 8 +- ...support-for-USB_BC_ENABLED-and-USB_.patch} | 8 +- ...0x-usb-power-Add-missing-interrupts.patch} | 10 +- ...0x-battery-Improve-probe-error-repo.patch} | 8 +- ...ug-driver-for-controlling-the-wifi-c.patch | 627 +++++++ ...es-driver-for-powering-up-BES2600-on.patch | 167 ++ ...t-re-initialize-rtl8723cs-on-resume.patch} | 8 +- ...001-cw1200-support-loading-cw1x60-FW.patch | 98 ++ .../cw1200-6.18/0002-cw1200-xr819-hacks.patch | 391 +++++ ...-kmalloc-allocation-instead-of-stack.patch | 278 ++++ ...eless-cw1200-Add-support-for-BES2600.patch | 1442 +++++++++++++++++ ...0-Improve-error-reporting-from-probe.patch | 89 + ...utomatic-module-loading-until-the-mo.patch | 27 + ...7-cw1200-Enable-FW-loader-debug-mode.patch | 26 + .../0002-Defconfigs-for-all-my-devices.patch} | 34 +- .../0001-Add-minimal-EBAZ4205-defconfig.patch | 386 +++++ .../0002-dt-bindings-Add-Zynq-clocks.patch | 95 ++ ...205-Add-test-config-for-various-PL-p.patch | 98 ++ ..._probe-to-handle-EPROBE_DEFER-error.patch} | 30 +- ...rmal-sun8i-Be-loud-when-probe-fails.patch} | 8 +- ...-make-a-fuss-when-pinctrl-recovery-.patch} | 8 +- ...n-t-report-error-when-the-device-is.patch} | 6 +- ...nfusing-error-when-no-regulator-is-.patch} | 8 +- ...which-error-caused-RTC-read-failure.patch} | 6 +- ...n8i-a83t-Add-missing-GPU-trip-point.patch} | 8 +- ...un50i-h5-Add-missing-GPU-trip-point.patch} | 6 +- ...-allwinner-a64-Fix-LRADC-compatible.patch} | 8 +- ...failure-to-clean-up-hardware-on-pro.patch} | 10 +- ...x-doubling-of-playback-speed-after-s.patch | 45 + ...oid-enabling-host-side-code-on-SoCs.patch} | 12 +- ...er-Enforce-consistent-MMC-numbering.patch} | 10 +- ...8-ARM-dts-sunxi-Add-aliases-for-MMC.patch} | 10 +- ...-panic-on-reboot-when-DRM-device-fai.patch | 36 + ...ngling-pointer-in-netdev-private-da.patch} | 60 +- ...rockchip-fix-sdmmc-after-soft-reboot.patch | 52 + ...sun4i-lvds-Invert-the-LVDS-polarity.patch} | 6 +- ...evlink-Support-allwinner-sram-links.patch} | 8 +- ...winner-sram-dependency-on-h616-h618.patch} | 6 +- ...ip-rk356x-Fix-PCIe-register-map-and-.patch | 47 + .../0016-Fix-intptr_t-typedef.patch} | 6 +- ...017-mmc-sunxi-mmc-Remove-runtime-PM.patch} | 41 +- ...S-timeouts-on-poweroff-reboot-on-Or.patch} | 6 +- ...-add-reset_resume-callback-for-WWAN.patch} | 8 +- ...ix-call-to-pm_runtime_set_suspended.patch} | 6 +- ...mipi-dsi-rockchip-Fix-ISP1-PHY-initi.patch | 35 + ...-arm64-dts-rk3399-Add-dmc_opp_table.patch} | 8 +- ...-dts-rockchip-rk3399-s-Add-DMC-table.patch | 62 + ...bort-suspend-on-soft-disconnect-fai.patch} | 22 +- ...-Slightly-increase-wait-time-for-BC.patch} | 6 +- ...-Set-the-current-before-enabling-pu.patch} | 8 +- ...-Extend-debugging-interface-with-dr.patch} | 8 +- ...-Retry-reading-of-CC-pins-status-if.patch} | 8 +- ...-More-useful-of-logging-status-on-i.patch} | 8 +- ...-Update-VBUS-state-even-if-VBUS-int.patch} | 8 +- ...typec-fusb302-Add-OF-extcon-support.patch} | 6 +- ...ec-fusb302-Fix-register-definitions.patch} | 8 +- ...-Clear-interrupts-before-we-start-t.patch} | 6 +- ...Input-goodix-Add-config-debugfs-file.patch | 75 + ...-option-to-power-off-the-controller-.patch | 101 ++ ...-to-keep-regulator-enable-disable-ba.patch | 28 + ...n-goodix-Respect-IRQ-flags-from-DT-w.patch | 60 + ...i-hdmi-audio-Initial-implementation.patch} | 15 +- ...dts-sunxi-h3-h5-Add-hdmi-sound-card.patch} | 14 +- ...Enable-hdmi-sound-card-on-boards-wi.patch} | 48 +- ...plus-bananapi-m2-zero-Enable-HDMI-a.patch} | 8 +- ...-dts-sun8i-a83t-Add-hdmi-sound-card.patch} | 12 +- ...t-Enable-hdmi-sound-card-on-boards-.patch} | 12 +- ...M-dts-sun8i-r40-Add-hdmi-sound-card.patch} | 8 +- ...-bananapi-m2-ultra-Enable-HDMI-audi.patch} | 8 +- ...-bananapi-m2-berry-Enable-HDMI-audi.patch} | 8 +- ...ts-allwinner-h6-Add-hdmi-sound-card.patch} | 14 +- ...er-h6-Enable-hdmi-sound-card-on-boa.patch} | 16 +- ...s-allwinner-a64-Add-hdmi-sound-card.patch} | 12 +- ...er-a64-Enable-hdmi-sound-card-on-bo.patch} | 32 +- ...er-h5-Enable-hdmi-sound-card-on-boa.patch} | 20 +- ...Move-a-node-to-avoid-merge-conflict.patch} | 12 +- ...ypec-husb311-Add-HUSB311-TCPI-driver.patch | 344 ++++ ...0001-media-i2c-imx258-Add-i2c-supply.patch | 27 + ...i2c-imx258-Add-debug-register-access.patch | 81 + .../0003-media-imx258-Add-reset-gpio.patch | 69 + ...58-Drop-interface-speed-to-1224-mbps.patch | 78 + ...odem-power-Power-manager-for-modems.patch} | 17 +- ...Use-devm_regulator_get-for-PHY-regu.patch} | 16 +- ...Rename-PHY-regulator-variable-to-re.patch} | 20 +- ...Add-support-for-enabling-a-regulato.patch} | 20 +- ...lwinner-orange-pi-3-Enable-ethernet.patch} | 14 +- ...riment-Try-to-disable-denoising-sha.patch} | 8 +- ...p-after-poweroff-to-ensure-next-pow.patch} | 6 +- ...t-powerup-the-sensor-during-driver-.patch} | 17 +- ...-ov5640-set-default-ae-target-lower.patch} | 8 +- ...edia-ov5640-Improve-error-reporting.patch} | 10 +- ...06-media-ov5640-Implement-autofocus.patch} | 16 +- ...a-ov5640-Improve-firmware-load-time.patch} | 8 +- ...focus-commands-blocking-until-compl.patch} | 8 +- ...0-Add-read-only-property-for-vblank.patch} | 8 +- ...pm_runtime_force_suspend-resume-for.patch} | 8 +- ...-Revert-Input-cyttsp4-remove-driver.patch} | 36 +- .../0002-input-cyttsp4-Port-to-6.16.patch} | 6 +- ...De-obfuscate-platform-data-for-keys.patch} | 12 +- ...ove-useless-indirection-with-driver.patch} | 14 +- ...-cyttsp4-Remove-unused-enable_vkeys.patch} | 6 +- ...obfuscate-MT-signals-setup-platform.patch} | 16 +- ...Clear-the-ids-buffer-in-a-saner-way.patch} | 6 +- ...ENOSYS-error-is-ok-when-powering-up.patch} | 6 +- ...ter-recovery-from-failed-wakeup-HAC.patch} | 6 +- ...-i2c-spi-names-directly-in-the-driv.patch} | 10 +- ...t-the-driver-to-use-device-properti.patch} | 16 +- ...tart-on-wakeup-wakeup-by-I2C-read-d.patch} | 8 +- .../0013-input-cyttsp4-Fix-warnings.patch} | 6 +- ...e-the-driver-not-hog-the-system-s-w.patch} | 12 +- .../0015-input-cyttsp4-Fix-probe-oops.patch} | 6 +- ...016-input-cyttsp4-Fix-compile-issue.patch} | 6 +- ...display-driver-for-A13-based-Pocket.patch} | 21 +- ...ple-driver-for-enabling-a-regulator.patch} | 15 +- ...x-Add-tp65185x-eInk-panel-regulator.patch} | 17 +- ...-Add-hwmon-device-for-reading-tempe.patch} | 8 +- ...dc-iio-Allow-to-use-sun5i-a13-gpadc.patch} | 14 +- ...d-spi-nor-Add-vdd-regulator-support.patch} | 8 +- .../0023-ARM-dts-sun5i-Add-soc-handle.patch} | 8 +- ...-PocketBook-Touch-Lux-3-display-ctp.patch} | 8 +- ...-pocketbook-touch-lux-3-Add-RTC-clo.patch} | 6 +- ...winner-a64-pinetab-add-front-camera.patch} | 8 +- ...ts-a64-enable-K101-IM2BYL02-panel-f.patch} | 6 +- ...a64-pinetab-Name-sound-card-PineTab.patch} | 6 +- ...un50i-a64-pinetab-Add-accelerometer.patch} | 6 +- ...a64-pinetab-enable-RTL8723CS-blueto.patch} | 8 +- ...a64-pinephone-Add-front-back-camera.patch} | 8 +- ...a64-pinephone-Add-Type-C-support-fo.patch} | 22 +- ...a64-pinephone-Add-modem-power-manag.patch} | 18 +- ...a64-pinephone-Fix-BH-modem-manager-.patch} | 6 +- ...a64-pinephone-Add-detailed-OCV-to-c.patch} | 8 +- ...a64-pinephone-Shorten-post-power-on.patch} | 6 +- ...a64-pinephone-Add-support-for-Bluet.patch} | 6 +- ...a64-pinephone-Enable-internal-HMIC-.patch} | 6 +- ...a64-pinephone-Add-support-for-modem.patch} | 8 +- ...a64-pinephone-Bump-I2C-frequency-to.patch} | 6 +- ...a64-pinephone-Add-interrupt-pin-for.patch} | 6 +- ...a64-pinephone-Power-off-the-touch-c.patch} | 6 +- ...a64-pinephone-Don-t-make-lradc-keys.patch} | 6 +- ...a64-pinephone-Set-minimum-backlight.patch} | 14 +- ...a64-pinephone-Add-supply-for-i2c-bu.patch} | 12 +- ...a64-pinephone-Workaround-broken-HDM.patch} | 14 +- ...a64-pinephone-Add-support-for-Pinep.patch} | 8 +- ...a64-pinephone-Enable-Pinephone-Keyb.patch} | 6 +- ...-a64-pinephone-Add-support-for-Pinep.patch | 40 + ...a64-pinephone-Add-power-supply-to-s.patch} | 6 +- ...a64-pinephone-Add-reboot-mode-drive.patch} | 8 +- ...a64-pinephone-Use-newer-jack-detect.patch} | 6 +- ...Define-orientation-and-rotation-for.patch} | 6 +- ...Define-orientation-and-rotation-for.patch} | 6 +- ...64-pinephone-Define-jack-pins-in-DT.patch} | 6 +- ...-a64-pinephone-1.2-Increase-backligh.patch | 35 + ...xxx-Report-remaining-battery-capacit.patch | 126 ++ ...-ip5xxx-Modify-initial-configuration.patch | 77 + ...ply-ip5xxx-Add-boost-status-property.patch | 93 ++ ...-supply-ip5xxx-Add-ip5xxx-usb-supply.patch | 117 ++ ...xxx-Add-support-for-POWER_SUPPLY_PRO.patch | 90 + ...xxx-Add-support-for-POWER_SUPPLY_PRO.patch | 44 + ...keyboard-Allow-disabling-the-keyboar.patch | 40 + ...keyboard-Allow-to-disable-Fn-layer-p.patch | 46 + ...keyboard-Don-t-print-error-when-the-.patch | 33 + ...keyboard-Wait-a-bit-after-enabling-v.patch | 31 + ...ger-Pinephone-Keyboard-power-manager.patch | 997 ++++++++++++ ...isc-ppkb-manager-Remove-BLOCKED-flag.patch | 60 + ...r-Disable-ppkb-manager-by-default-ca.patch | 28 + ...-manager-Show-read-write-error-codes.patch | 37 + ...misc-ppkb-manager-Disable-debug-mode.patch | 26 + ...x-POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR.patch | 49 + ...-on-Orange-Pi-PC-and-PC-2-work-as-p.patch} | 8 +- ...pport-for-my-private-Sapomat-device.patch} | 24 +- ...orange-pi-one-Enable-all-gpio-heade.patch} | 6 +- ...spi-nor-Add-Alliance-memory-support.patch} | 15 +- ...-pientab2-Use-non-linear-brightness-.patch | 38 + ...-pinetab2-Add-Type-C-controller-node.patch | 113 ++ ...-pinetab2-Re-order-and-use-extcon-br.patch | 133 ++ ...pport-for-extcon-based-input-current.patch | 94 ++ ...-pinetab2-Add-DT-nodes-for-besdbg-dr.patch | 127 ++ ...-pinetab2-Lower-the-SPI-NOR-flash-cl.patch | 28 + ...-cdn-dp-Disable-CDN-DP-on-disconnect.patch | 27 + ...-inno-usb2-Decrease-delay-between-po.patch | 40 + ...o-usb2-More-robust-charger-detection.patch | 113 ++ ...-the-power-state-of-usb3_generic_phy.patch | 57 + ...chip-naneng-Add-fallback-for-old-DTs.patch | 244 +++ ...reset-quirk-support-to-include-role-.patch | 57 + ...4-dts-rk3399-rockpro64-Add-DMC-nodes.patch | 57 + ...-rockpro64-Add-Type-C-OTG-Alt-DP-sup.patch | 183 +++ ...40-Fix-output-mixer-input-channel-li.patch | 92 ++ ...40-Fix-hpout-restore-when-lout-is-en.patch | 31 + ...40-Resolve-failure-to-set-DMIC-clock.patch | 33 + ...40-Add-input-mixer-input-volume-cont.patch | 47 + ...40-Allow-to-control-single-ended-dif.patch | 31 + ...640-Keep-the-codec-enabled-when-idle.patch | 28 + ...t5640-Add-support-for-power-supplies.patch | 54 + .../0001-Implement-adaptivity-functions.patch | 114 ++ .../0002-Implement-CFO-tracking.patch | 237 +++ ...-sun50i-a64-Set-fifo-size-for-uarts.patch} | 16 +- ...-sun8i-a83t-Set-fifo-size-for-uarts.patch} | 16 +- ...ivers-for-async-probe-with-PROBE_PR.patch} | 10 +- ...32regs-without-benchmark-to-speed-u.patch} | 8 +- ...0-Implement-vdd-supply-and-power-it-.patch | 130 ++ ...tk3310-Add-support-for-I2C-regulator.patch | 98 ++ ...0-Fix-regulator-disable-enable-order.patch | 67 + ...apture-Use-subdev-operation-to-acce.patch} | 16 +- ...ubdev-Use-subdev-active-state-to-st.patch} | 12 +- ...erge-sun6i_csi_formats-and-sun6i_cs.patch} | 12 +- ...i-csi-add-V4L2_CAP_IO_MC-capability.patch} | 12 +- ...si-implement-vidioc_enum_framesizes.patch} | 12 +- ...dd-multicamera-support-for-parallel.patch} | 12 +- ...tcpm-unregister-existing-source-cap.patch} | 6 +- ...s-displayport-Respect-DP_CAP_RECEPT.patch} | 12 +- ...register-altmodes-before-registerin.patch} | 6 +- ...x-PD-devices-capabilities-registrat.patch} | 8 +- .../0005-usb-typec-tcpm-Improve-logs.patch} | 8 +- ...xtcon-Add-typec-extcon-bridge-drive.patch} | 13 +- ...pec-extcon-Enable-debugging-for-now.patch} | 6 +- ...xtcon-Allow-to-force-reset-on-each-.patch} | 8 +- .../{sunxi-6.16 => sunxi-6.18}/series.armbian | 0 patch/kernel/archive/sunxi-6.18/series.conf | 552 +++++++ .../{sunxi-6.16 => sunxi-6.18}/series.drm | 0 .../{sunxi-6.16 => sunxi-6.18}/series.media | 0 .../misc/wireless-uwe5622/uwe5622-v6.18.patch | 34 + 570 files changed, 18206 insertions(+), 8247 deletions(-) delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-x96-mate-add-hdmi.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-Report-page-flip-after-vsync-is-complete-not-in-the-m.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-Change-CSC-argument.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-add-generic-blender-register-reference-functi.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-add-mixer-version-enum.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-refactor-mixer-initialisation.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-use-generic-register-reference-function-for-l.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-Add-YUV-formatter-module.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-Implement-AFBC-support.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-TCON.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-mod.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-format-enumeration-function-to-engine.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-support-YUV-formats-in-VI-scaler.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/dt-bindings-allwinner-add-H616-DE33-bus-binding.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.drm/dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.megous/Revert-ASoC-soc-core-merge-snd_soc_unregister_component-and-snd.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinephone-1.2-be.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-sun50i-a64-Switch-parent-of-MIPI-DSI-to-periph0-1x.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.megous/drm-panel-st7703-Fix-xbd599-timings-to-make-refresh-rate-exactl.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.megous/drm-sun4i-Implement-gamma-correction.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.megous/drm-sun4i-Support-taking-over-display-pipeline-state-from-p-boo.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.megous/drm-sun4i-tcon-Support-keeping-dclk-rate-upon-ancestor-clock-ch.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/patches.megous/video-pwm_bl-Allow-to-change-lth_brightness-via-sysfs.patch delete mode 100644 patch/kernel/archive/sunxi-6.16/series.conf delete mode 100644 patch/kernel/archive/sunxi-6.16/series.megous rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/0000.patching_config.yaml (97%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/dt/sun50i-h618-bananapi-m4-zero.dts (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/dt/sun50i-h618-bananapi-m4.dtsi (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/dt/sun50i-h618-kickpi-k2b.dts (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/ARM-dts-sun8i-nanopiduo2-Use-key-0-as-power-button.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/ARM-dts-sun8i-nanopiduo2-enable-ethernet.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-EMAC1.patch (96%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-HDMI.patch (85%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/ASoC-AC200-Initial-driver.patch (98%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Add-BananaPi-BPI-M4-Zero-overlays.patch (77%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Add-BananaPi-BPI-M4-Zero-pinctrl.patch (76%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Add-FB_TFT-ST7796S-driver.patch (91%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Add-HDMI-support-for-pcDuino-1-and-2-by-including-HDMI-and-DE-n.patch (84%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Add-HDMI-support-for-pcDuino-3-by-including-HDMI-and-DE-nodes.patch (84%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Add-dump_reg-and-sunxi-sysinfo-drivers.patch (97%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch (95%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Add-wifi-nodes-for-Inovato-Quadra.patch (56%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Add-ws2812-RGB-driver-for-allwinner-H616.patch (95%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/BigTreeTech-CB1-dts-i2c-gpio-mode-adjustment-and-ws2812-rgb_val.patch (82%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Compile-the-pwm-overlay.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Correct-perf-interrupt-source-number-as-referenced-in-the-Allwi.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Doc-dt-bindings-usb-add-binding-for-DWC3-controller-on-Allwinne.patch (87%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Enable-DMA-support-for-the-Allwinner-A10-EMAC-which-already-exi.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Enable-creation-of-__symbols__-node.patch (96%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Fix-ghost-touches-on-tsc2007-tft-screen.patch (92%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Fix-include-uapi-spi-spidev-module.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Input-axp20x-pek-allow-wakeup-after-shutdown.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/LED-green_power_on-red_status_heartbeat-arch-arm64-boot-dts-all.patch (97%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Makefile-CONFIG_SHELL-fix-for-builddeb-packaging.patch (86%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Move-sun50i-h6-pwm-settings-to-its-own-overlay.patch (82%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Optimize-TSC2007-touchscreen-add-polling-method.patch (76%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Revert-drm-sun4i-hdmi-switch-to-struct-drm_edid.patch (89%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Sound-for-H616-H618-Allwinner-SOCs.patch (97%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/Temp_fix-mailbox-arch-arm64-boot-dts-allwinner-sun50i-a64-pinep.patch (93%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/add-dtb-overlay-for-zero2w.patch (73%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/add-initial-support-for-orangepi3-lts.patch (89%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/add-nodes-for-sunxi-info-sunxi-addr-and-sunxi-dump-reg.patch (80%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-arm64-dts-Add-leds-axp20x-charger.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-Add-sun8i-h2-plus-nanopi-duo-device.patch (85%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-Add-sun8i-h2-plus-sunvell-r69-device.patch (84%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-a10-cubiebord-a20-cubietruck-green-LED-mmc0-default-tri.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-a20-orangepi-and-mini-fix-phy-mode-hdmi.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-h3-nanopi-neo-Add-regulator-leds-mmc2.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-h3-nanopi-neo-air-Add-regulator-camera-wifi-bluetooth-o.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-h3-orangepi-2-Add-regulator-vdd-cpu.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-overlay-Add-Overlays-for-sunxi.patch (86%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-overlay-sun8i-h3-cpu-clock-add-overclock.patch (88%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun5i-a13-olinuxino-Add-panel-lcd-olinuxino-4.3-needed-.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun5i-a13-olinuxino-micro-add-panel-lcd-olinuxino-4.3.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun7i-a20-Disable-OOB-IRQ-for-brcm-wifi-on-Cubietruck-a.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun7i-a20-bananapro-add-AXP209-regulators.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun7i-a20-bananapro-add-hdmi-connector-de.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun7i-a20-cubietruck-add-alias-uart2.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun7i-a20-olimex-som-204-evb-olinuxino-micro-decrease-d.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-audio-codec.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-ldo3-always-on.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun7i-a20-olinuxino-micro-emmc-Add-vqmmc-node.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-usb_otg-dr_mode.patch (81%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-xradio-interrupt.patch (97%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun8i-h3-add-thermal-zones.patch (98%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun8i-h3-bananapi-m2-plus-add-wifi_pwrseq.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun8i-h3-nanopi-add-leds-pio-pins.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun8i-h3-orangepi-pc-plus-add-wifi_pwrseq.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun8i-h3-reduce-opp-microvolt-to-prevent-not-supported-.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun8i-r40-add-clk_out_a-fix-bananam2ultra.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun8i-r40-bananapi-m2-ultra-add-codec-analog.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun8i-v3s-s3-pinecube-enable-sound-codec.patch (89%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun9i-a80-add-thermal-sensor.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sun9i-a80-add-thermal-zone.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sunxi-h3-h5.dtsi-add-i2s0-i2s1-pins.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-dts-sunxi-h3-h5.dtsi-force-mmc0-bus-width.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm-patch-call-flush_icache-ASAP-after-writing-new-instruction.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-allwinner-Add-sun50i-h618-bananapi-m4-berry-support.patch (84%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-k1-plus-device.patch (90%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-m1-plus2-device.patch (85%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo-core2-device.patch (84%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo2-v1.1-device.patch (83%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-FIXME-a64-olinuxino-add-regulator-audio-mmc.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-add-sun50i-h618-cpu-dvfs.dtsi.patch (91%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-allwinner-Add-axp313a.dtsi.patch (86%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-allwinner-h6-Add-AC200-EPHY-nodes.patch (89%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-allwinner-h6-add-AC200-codec-nodes.patch (86%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-allwinner-h6-enable-AC200-codec.patch (84%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-allwinner-h6-tanix-enable-Ethernet.patch (91%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-allwinner-h616-orangepi-zero2-Enable-expansion-board-.patch (78%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch (86%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-allwinner-sun50i-h6-Fix-H6-emmc.patch (82%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-allwinner-sun50i-h616-Add-VPU-node.patch (79%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-h616-8-Add-overlays-i2c-pwm-uart.patch (75%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2-and-zero3.patch (85%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-nanopi-a64-set-right-phy-mode-to-rgmii-id.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-overlay-sun50i-a64-pine64-7inch-lcd.patch (87%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-overlay-sun50i-h5-add-gpio-regulator-overclock.patch (85%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-a64-force-mmc0-bus-width.patch (86%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-Disable-clock-phase-and-.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-enable-bluetooth.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-a64-olinuxino-add-boards.patch (85%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-a64-olinuxino-emmc-enable-bluetooth.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-a64-orangepi-win-add-aliase-ethernet1.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-a64-pine64-add-spi0.patch (89%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-a64-pine64-enable-wifi-mmc1.patch (91%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-enable-Bluetooth.patch (86%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-mmc1-status-okay.patch (86%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-a64.dtsi-adjust-thermal-trip-points.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h313-x96q-lpddr3.patch (87%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h5-add-cpu-opp-refs.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h5-add-termal-zones.patch (92%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h5-enable-power-button-for-orangepi-prime.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h5-nanopi-neo2-add-regulator-led-triger.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h5-nanopi-r1s-h5-add-rtl8153-support.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h5-orangepi-pc2-add-spi-flash.patch (85%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-regulator.patch (92%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-rtl8723cs.patch (88%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h5-orangepi-zero-plus-add-regulator.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h6-Add-r_uart-uart2-3-pins.patch (84%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h6-orangepi-3-add-r_uart-aliase.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h6-orangepi-3-delete-node-spi0.patch (85%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h6-orangepi-add-cpu-opp-refs.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h6-orangepi-enable-higher-clock-regulator-max-.patch (87%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h6-orangepi-lite2-spi0-usb3phy-dwc3-enable.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-dwc3-usb3phy.patch (87%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-wifi-rtl8723cs.patch (91%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h6.dtsi-add-pinctrl-pins-for-spi.patch (83%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h6.dtsi-improve-thermals.patch (91%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h616-add-pwm-nodes-support.patch (90%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1-sd-emmc.patch (89%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch (85%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch (93%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h616-x96-mate-T95-eth-sd-card-hack.patch (71%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h616.dtsi-reserved-memory-512K-for-BL31.patch (85%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patch (94%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero3-Enable-GPU-mali.patch (83%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/arm64-sun50i-h616-Add-i2c-2-3-4-uart-2-5-pins.patch (91%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/cb1-overlay.patch (83%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/clk-gate-add-support-for-regmap-based-gates.patch (99%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/driver-allwinner-h618-emac.patch (98%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drivers-devfreq-sun8i-a33-mbus-disable-autorefresh.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drivers-pwm-Add-pwm-sunxi-enhance-driver-for-h616.patch (98%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-clocksource-arm_arch_timer-fix-a64-timejump.patch (97%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-gpu-drm-gem-dma-Export-with-handle-allocator.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-gpu-drm-panel-simple-Add-compability-olinuxino-lcd.patch (89%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-gpu-drm-sun4i-Add-GEM-allocator.patch (89%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch (97%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch (74%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-iio-adc-axp20x_adc-arm64-dts-axp803-hwmon-enable-thermal.patch (95%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-input-touchscreen-sun4i-ts-Enable-parsing.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-media-dvb-frontends-si2168-fix-cmd-timeout.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-mfd-axp20x-add-sysfs-interface.patch (97%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-mmc-host-sunxi-mmc-Disable-DDR52-mode-on-all-A20-based-boar.patch (93%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-mmc-host-sunxi-mmc-add-h5-emmc-compatible.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-mtd-nand-raw-nand_ids.c-add-H27UBG8T2BTR-BC-nand.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-net-stmmac-dwmac-sun8i-second-EMAC-clock-register.patch (87%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-nvmem-sunxi_sid-Support-SID-on-H616.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch (96%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-phy-sun4i-usb-Allow-reset-line-to-be-shared.patch (80%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-pinctrl-pinctrl-sun50i-a64-disable_strict_mode.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-pinctrl-sunxi-pinctrl-sun50i-h6.c-GPIO-disable_strict_mode.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-soc-sunxi-sram-Add-SRAM-C1-H616-handling.patch (90%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-spi-spi-sun4i.c-spi-bug-low-on-sck.patch (89%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-spi-spidev-Add-armbian-spi-dev-compatible.patch (66%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-staging-media-sunxi-cedrus-add-H616-variant.patch (79%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-staging-rtl8723bs-AP-bugfix.patch (82%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/drv-usb-gadget-composite-rename-gadget-serial-console-manufactu.patch (81%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch (89%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/fix-cpu-opp-table-sun8i-a83t.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/h616-add-keys.patch (80%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/include-uapi-drm_fourcc-add-ARM-tiled-format-modifier.patch (83%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/mfd-Add-support-for-X-Powers-AC200-EPHY-syscon.patch (97%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/mfd-Add-support-for-X-Powers-AC200.patch (94%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/mmc-host-sunxi-mmc-Fix-H6-emmc.patch (93%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/net-phy-Add-support-for-AC200-EPHY.patch (90%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/net-usb-r8152-add-LED-configuration-from-OF.patch (92%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/nvmem-sunxi_sid-add-sunxi_get_soc_chipid-sunxi_get_serial.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/scripts-add-overlay-compilation-support.patch (87%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/sound-soc-sunxi-Provoke-the-early-load-of-sun8i-codec-analog.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/sound-soc-sunxi-sun4i-codec-adcis-select-capture-source.patch (96%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/sound-soc-sunxi-sun8i-codec-analog-enable-sound.patch (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.armbian/sun50i-h616-Add-the-missing-digital-audio-node.patch (75%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0001-drm-sun4i-mixer-Fix-up-DE33-channel-macros.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0002-drm-sun4i-mixer-Remove-ccsc-cfg-for-DE3.patch rename patch/kernel/archive/{sunxi-6.16/patches.drm/drm-sun4i-de2-Initialize-layer-fields-earlier.patch => sunxi-6.18/patches.drm/0003-drm-sun4i-de2-Initialize-layer-fields-earlier.patch} (74%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0004-drm-sun4i-ui_layer-Move-check-from-update-to-check-c.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0005-drm-sun4i-vi_layer-Move-check-from-update-to-check-c.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0006-drm-sun4i-layers-Make-atomic-commit-functions-void.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0007-drm-sun4i-Move-blender-config-from-layers-to-mixer.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0008-drm-sun4i-ui-layer-Write-attributes-in-one-go.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0009-drm-sun4i-vi-layer-Write-attributes-in-one-go.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0010-drm-sun4i-mixer-Move-layer-enabling-to-atomic_update.patch rename patch/kernel/archive/{sunxi-6.16/patches.drm/drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch => sunxi-6.18/patches.drm/0011-drm-sun4i-de2-de3-Simplify-CSC-config-interface.patch} (65%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0012-drm-sun4i-csc-Simplify-arguments-with-taking-plane-s.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0013-drm-sun4i-de2-de3-Move-plane-type-determination-to-m.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0014-drm-sun4i-ui_layer-Change-index-meaning.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0015-drm-sun4i-layer-move-num-of-planes-calc-out-of-layer.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0016-drm-sun4i-ui_layer-use-layer-struct-instead-of-multi.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0017-drm-sun4i-vi_layer-use-layer-struct-instead-of-multi.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0018-drm-sun4i-ui_scaler-use-layer-instead-of-mixer-for-a.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0019-drm-sun4i-vi_scaler-use-layer-instead-of-mixer-for-a.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0020-drm-sun4i-layers-Make-regmap-for-layers-configurable.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0021-drm-sun4i-csc-use-layer-arg-instead-of-mixer.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0022-drm-sun4i-layers-add-physical-index-arg.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0023-drm-sun4i-vi_scaler-Update-DE33-base-calculation.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0024-drm-sun4i-mixer-Convert-heuristics-to-quirk.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0025-drm-sun4i-ui_scaler-drop-sanity-checks.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0026-drm-sun4i-mixer-Add-quirk-for-number-of-VI-scalers.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0027-drm-sun4i-mixer-split-out-layer-config.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0028-drm-sun4i-layer-replace-mixer-with-layer-struct.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0029-drm-sun4i-vi_scaler-Find-mixer-from-crtc.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0030-drm-sun4i-Nuke-mixer-pointer-from-layer-code.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0031-drm-sun4i-Add-support-for-DE33-CSC.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0032-drm-sun4i-vi_layer-Limit-formats-for-DE33.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0033-clk-sunxi-ng-de2-Export-register-regmap-for-DE33.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0034-dt-bindings-display-allwinner-Add-DE33-planes.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0035-drm-sun4i-Add-planes-driver.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0036-dt-bindings-display-allwinner-Update-H616-DE33-bindi.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0037-drm-sun4i-switch-DE33-to-new-bindings.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0038-drm-sun4i-Add-H616-TCON-TV-support.patch rename patch/kernel/archive/{sunxi-6.16/patches.drm/drm-sun4i-add-sun50i-h616-hdmi-phy-support.patch => sunxi-6.18/patches.drm/0039-srm-sun4i-Add-support-for-H616-HDMI-PHY.patch} (59%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0040-drm-sun4i-Add-compatible-for-H616-display-engine.patch rename patch/kernel/archive/{sunxi-6.16/patches.armbian/arm64-dts-h616-add-hdmi-support-for-zero2-and-zero3.patch => sunxi-6.18/patches.drm/0041-arm64-dts-allwinner-h616-Add-display-pipeline.patch} (55%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0042-arm64-dts-allwinner-h616-Enable-HDMI-on-several-boar.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.drm/0043-T95-broken-CD.patch rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.media/dma-sun6i-dma-add-sun50i-h616-support.patch (92%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.media/media-Add-NV12-and-P010-AFBC-compressed-formats.patch (90%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.media/media-cedrus-Don-t-CPU-map-source-buffers.patch (84%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.media/media-cedrus-Implement-AFBC-YUV420-formats-for-H265.patch (87%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.media/media-cedrus-Increase-H6-clock-rate.patch (82%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/patches.media/media-cedrus-add-format-filtering-based-on-depth-and-src-format.patch (87%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/nfc-pn544-Add-support-for-VBAT-PVDD-regulators.patch => sunxi-6.18/patches.megous/a711-6.18/0001-nfc-pn544-Add-support-for-VBAT-PVDD-regulators.patch} (94%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/bluetooth-bcm-Restore-drive_rts_on_open-true-behavior-on-bcm207.patch => sunxi-6.18/patches.megous/a711-6.18/0002-bluetooth-bcm-Restore-drive_rts_on_open-true-behavio.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/mmc-add-delay-after-power-class-selection.patch => sunxi-6.18/patches.megous/a711-6.18/0003-mmc-add-delay-after-power-class-selection.patch} (77%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-PN544-NFC-support.patch => sunxi-6.18/patches.megous/a711-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Add-PN544-NFC-support.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-powerup-down-support-for-the-3G.patch => sunxi-6.18/patches.megous/a711-6.18/0005-ARM-dts-sun8i-a83t-tbs-a711-Add-powerup-down-support.patch} (85%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to-A83T-untes.patch => sunxi-6.18/patches.megous/a711-6.18/0006-ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-suni-a83t-Add-i2s0-pins.patch => sunxi-6.18/patches.megous/a711-6.18/0007-ARM-dts-suni-a83t-Add-i2s0-pins.patch} (87%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-sound-support-via-AC100-codec.patch => sunxi-6.18/patches.megous/a711-6.18/0008-ARM-dts-sun8i-a83t-tbs-a711-Add-sound-support-via-AC.patch} (94%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-regulators-to-the-accelerometer.patch => sunxi-6.18/patches.megous/a711-6.18/0009-ARM-dts-sun8i-a83t-tbs-a711-Add-regulators-to-the-ac.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-camera-sensors-HM5065-GC2145.patch => sunxi-6.18/patches.megous/a711-6.18/0010-ARM-dts-sun8i-a83t-tbs-a711-Add-camera-sensors-HM506.patch} (96%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-flash-led-support.patch => sunxi-6.18/patches.megous/a711-6.18/0011-ARM-dts-sun8i-a83t-tbs-a711-Add-flash-led-support.patch} (87%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/MAINTAINERS-Add-entry-for-Himax-HM5065.patch => sunxi-6.18/patches.megous/a711-cams-6.18/0001-MAINTAINERS-Add-entry-for-Himax-HM5065.patch} (71%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/dt-bindings-media-Add-bindings-for-Himax-HM5065-camera-sensor.patch => sunxi-6.18/patches.megous/a711-cams-6.18/0002-dt-bindings-media-Add-bindings-for-Himax-HM5065-came.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/hm5065-yaml-bindings-wip.patch => sunxi-6.18/patches.megous/a711-cams-6.18/0003-hm5065-yaml-bindings-wip.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-hm5065-Add-subdev-driver-for-Himax-HM5065-camera-sensor.patch => sunxi-6.18/patches.megous/a711-cams-6.18/0004-media-hm5065-Add-subdev-driver-for-Himax-HM5065-came.patch} (99%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-i2c-gc2145-Move-upstream-driver-out-of-the-way.patch => sunxi-6.18/patches.megous/a711-cams-6.18/0005-media-i2c-gc2145-Move-upstream-driver-out-of-the-way.patch} (82%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-gc2145-Galaxycore-camera-module-driver.patch => sunxi-6.18/patches.megous/a711-cams-6.18/0006-media-gc2145-Galaxycore-camera-module-driver.patch} (99%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-gc2145-Added-BGGR-bayer-mode.patch => sunxi-6.18/patches.megous/a711-cams-6.18/0007-media-gc2145-Added-BGGR-bayer-mode.patch} (87%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-gc2145-Disable-debug-output.patch => sunxi-6.18/patches.megous/a711-cams-6.18/0008-media-gc2145-Disable-debug-output.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-gc2145-Add-PIXEL_RATE-HBLANK-and-VBLANK-controls.patch => sunxi-6.18/patches.megous/a711-cams-6.18/0009-media-gc2145-Add-PIXEL_RATE-HBLANK-and-VBLANK-contro.patch} (98%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-gc2145-implement-system-suspend.patch => sunxi-6.18/patches.megous/a711-cams-6.18/0010-media-gc2145-implement-system-suspend.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-gc2145-fix-white-balance-colors.patch => sunxi-6.18/patches.megous/a711-cams-6.18/0011-media-gc2145-fix-white-balance-colors.patch} (97%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-i2c-gc2145-Parse-and-register-properties.patch => sunxi-6.18/patches.megous/a711-cams-6.18/0012-media-i2c-gc2145-Parse-and-register-properties.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/dt-bindings-leds-Add-a-binding-for-AXP813-charger-led.patch => sunxi-6.18/patches.megous/a711-chgled-6.18/0001-dt-bindings-leds-Add-a-binding-for-AXP813-charger-le.patch} (82%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/leds-axp20x-Support-charger-LED-on-AXP20x-like-PMICs.patch => sunxi-6.18/patches.megous/a711-chgled-6.18/0002-leds-axp20x-Support-charger-LED-on-AXP20x-like-PMICs.patch} (96%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-axp813-Add-charger-LED.patch => sunxi-6.18/patches.megous/a711-chgled-6.18/0003-ARM-dts-axp813-Add-charger-LED.patch} (87%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Enable-charging-LED.patch => sunxi-6.18/patches.megous/a711-chgled-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Enable-charging-LED.patch} (83%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/dt-bindings-input-gpio-vibrator-Don-t-require-enable-gpios.patch => sunxi-6.18/patches.megous/a711-vibrator-6.18/0001-dt-bindings-input-gpio-vibrator-Don-t-require-enable.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-gpio-vibra-Allow-to-use-vcc-supply-alone-to-control-the-v.patch => sunxi-6.18/patches.megous/a711-vibrator-6.18/0002-input-gpio-vibra-Allow-to-use-vcc-supply-alone-to-co.patch} (93%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-support-for-the-vibrator-motor.patch => sunxi-6.18/patches.megous/a711-vibrator-6.18/0003-ARM-dts-sun8i-a83t-tbs-a711-Add-support-for-the-vibr.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Increase-voltage-on-the-vibrator.patch => sunxi-6.18/patches.megous/a711-vibrator-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Increase-voltage-on-the-.patch} (85%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/mailbox-Allow-to-run-mailbox-while-timekeeping-is-suspended.patch => sunxi-6.18/patches.megous/a83t-suspend-6.18/0001-mailbox-Allow-to-run-mailbox-while-timekeeping-is-su.patch} (81%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-sunxi-Add-experimental-suspend-to-memory-implementation-for.patch => sunxi-6.18/patches.megous/a83t-suspend-6.18/0002-ARM-sunxi-Add-experimental-suspend-to-memory-impleme.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-sunxi-sunxi_cpu0_hotplug_support_set-is-not-supported-on-A8.patch => sunxi-6.18/patches.megous/a83t-suspend-6.18/0003-ARM-sunxi-sunxi_cpu0_hotplug_support_set-is-not-supp.patch} (87%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/firmware-scpi-Add-support-for-sending-a-SCPI_CMD_SET_SYS_PWR_ST.patch => sunxi-6.18/patches.megous/a83t-suspend-6.18/0004-firmware-scpi-Add-support-for-sending-a-SCPI_CMD_SET.patch} (94%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-sunxi-Use-SCPI-to-send-suspend-message-to-SCP-on-A83T.patch => sunxi-6.18/patches.megous/a83t-suspend-6.18/0005-ARM-sunxi-Use-SCPI-to-send-suspend-message-to-SCP-on.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/gnss-ubx-Send-soft-powerdown-message-on-suspend.patch => sunxi-6.18/patches.megous/a83t-suspend-6.18/0006-gnss-ubx-Send-soft-powerdown-message-on-suspend.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/clk-sunxi-ng-Export-CLK_DRAM-for-devfreq.patch => sunxi-6.18/patches.megous/a83t-suspend-6.18/0007-clk-sunxi-ng-Export-CLK_DRAM-for-devfreq.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-MBUS-node.patch => sunxi-6.18/patches.megous/a83t-suspend-6.18/0008-ARM-dts-sun8i-a83t-Add-MBUS-node.patch} (85%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/phy-allwinner-sun4i-usb-Add-support-for-usb_role_switch.patch => sunxi-6.18/patches.megous/anx-6.18/0001-phy-allwinner-sun4i-usb-Add-support-for-usb_role_swi.patch} (93%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/regulator-axp20x-Add-support-for-vin-supply-for-drivevbus.patch => sunxi-6.18/patches.megous/anx-6.18/0002-regulator-axp20x-Add-support-for-vin-supply-for-driv.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/regulator-axp20x-Turn-N_VBUSEN-to-input-on-x-powers-sense-vbus-.patch => sunxi-6.18/patches.megous/anx-6.18/0003-regulator-axp20x-Turn-N_VBUSEN-to-input-on-x-powers-.patch} (83%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/drm-bridge-dw-hdmi-Allow-to-accept-HPD-status-from-other-driver.patch => sunxi-6.18/patches.megous/anx-6.18/0004-drm-bridge-dw-hdmi-Allow-to-accept-HPD-status-from-o.patch} (84%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/drm-bridge-dw-hdmi-Report-HDMI-hotplug-events.patch => sunxi-6.18/patches.megous/anx-6.18/0005-drm-bridge-dw-hdmi-Report-HDMI-hotplug-events.patch} (82%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-anx7688-Add-driver-for-ANX7688-USB-C-HDMI-bridge.patch => sunxi-6.18/patches.megous/anx-6.18/0006-usb-typec-anx7688-Add-driver-for-ANX7688-USB-C-HDMI-.patch} (99%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/arasan-6.18/0001-sdhci-arasan-Add-runtime-PM-support.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/dt-bindings-sound-Add-jack-type-property-to-sun8i-a33-codec.patch => sunxi-6.18/patches.megous/audio-6.18/0001-dt-bindings-sound-Add-jack-type-property-to-sun8i-a3.patch} (84%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ASoC-sun8i-codec-Allow-the-jack-type-to-be-set-via-device-tree.patch => sunxi-6.18/patches.megous/audio-6.18/0002-ASoC-sun8i-codec-Allow-the-jack-type-to-be-set-via-d.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ASoC-sun8i-codec-define-button-keycodes.patch => sunxi-6.18/patches.megous/audio-6.18/0003-ASoC-sun8i-codec-define-button-keycodes.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ASoC-sun8i-codec-Add-debug-output-for-jack-detection.patch => sunxi-6.18/patches.megous/audio-6.18/0004-ASoC-sun8i-codec-Add-debug-output-for-jack-detection.patch} (95%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ASoC-sun8i-codec-Set-jack_type-from-DT-in-probe.patch => sunxi-6.18/patches.megous/audio-6.18/0005-ASoC-sun8i-codec-Set-jack_type-from-DT-in-probe.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ASoC-simple-card-Allow-to-define-pins-for-aux-jack-devices.patch => sunxi-6.18/patches.megous/audio-6.18/0006-ASoC-simple-card-Allow-to-define-pins-for-aux-jack-d.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/clk-sunxi-ng-a64-Increase-PLL_AUDIO-base-frequency.patch => sunxi-6.18/patches.megous/audio-6.18/0007-clk-sunxi-ng-a64-Increase-PLL_AUDIO-base-frequency.patch} (95%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/dt-bindings-mfd-Add-codec-related-properties-to-AC100-PMIC.patch => sunxi-6.18/patches.megous/audio-6.18/0008-dt-bindings-mfd-Add-codec-related-properties-to-AC10.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/sound-soc-ac100-codec-Support-analog-part-of-X-Powers-AC100-cod.patch => sunxi-6.18/patches.megous/audio-6.18/0009-sound-soc-ac100-codec-Support-analog-part-of-X-Power.patch} (99%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/sound-soc-sun8i-codec-Add-support-for-digital-part-of-the-AC100.patch => sunxi-6.18/patches.megous/audio-6.18/0010-sound-soc-sun8i-codec-Add-support-for-digital-part-o.patch} (98%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ASoC-ec25-New-codec-driver-for-the-EC25-modem.patch => sunxi-6.18/patches.megous/audio-6.18/0011-ASoC-ec25-New-codec-driver-for-the-EC25-modem.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/clk-sunxi-ng-Set-maximum-P-and-M-factors-to-1-for-H3-pll-cpux-c.patch => sunxi-6.18/patches.megous/aw-opp-6.18/0001-clk-sunxi-ng-Set-maximum-P-and-M-factors-to-1-for-H3.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/clk-sunxi-ng-Don-t-use-CPU-PLL-gating-and-CPUX-reparenting-to-H.patch => sunxi-6.18/patches.megous/aw-opp-6.18/0002-clk-sunxi-ng-Don-t-use-CPU-PLL-gating-and-CPUX-repar.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-Use-my-own-more-aggressive-OPPs-on-H3.patch => sunxi-6.18/patches.megous/aw-opp-6.18/0003-ARM-dts-sun8i-h3-Use-my-own-more-aggressive-OPPs-on-.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-h5-Use-my-own-more-aggressive-OPPs-on-H5.patch => sunxi-6.18/patches.megous/aw-opp-6.18/0004-arm64-dts-sun50i-h5-Use-my-own-more-aggressive-OPPs-.patch} (93%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-orange-pi-pc-Increase-max-CPUX-voltage-to-1.4V.patch => sunxi-6.18/patches.megous/aw-opp-6.18/0005-ARM-dts-sun8i-h3-orange-pi-pc-Increase-max-CPUX-volt.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Improve-CPU-OPP-tables-go-up-to-1.8GHz.patch => sunxi-6.18/patches.megous/aw-opp-6.18/0006-ARM-dts-sun8i-a83t-Improve-CPU-OPP-tables-go-up-to-1.patch} (94%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/cpufreq-sun50i-Show-detected-CPU-bin-for-easier-debugging.patch => sunxi-6.18/patches.megous/aw-opp-6.18/0007-cpufreq-sun50i-Show-detected-CPU-bin-for-easier-debu.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/clk-sunxi-ng-Mark-TWD-clocks-as-critical.patch => sunxi-6.18/patches.megous/aw-suspend-6.18/0001-clk-sunxi-ng-Mark-TWD-clocks-as-critical.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/firmware-arm_scpi-Support-unidirectional-mailbox-channels.patch => sunxi-6.18/patches.megous/aw-suspend-6.18/0002-firmware-arm_scpi-Support-unidirectional-mailbox-cha.patch} (95%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sunxi-a83t-Add-SCPI-protocol.patch => sunxi-6.18/patches.megous/aw-suspend-6.18/0003-ARM-dts-sunxi-a83t-Add-SCPI-protocol.patch} (80%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch => sunxi-6.18/patches.megous/aw-suspend-6.18/0004-ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch} (82%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileges-over-SCP.patch => sunxi-6.18/patches.megous/aw-suspend-6.18/0005-ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileg.patch} (83%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/rtc-sun6i-Allow-RTC-wakeup-after-shutdown.patch => sunxi-6.18/patches.megous/aw-suspend-6.18/0006-rtc-sun6i-Allow-RTC-wakeup-after-shutdown.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/dt-bindings-axp20x-adc-allow-to-use-TS-pin-as-GPADC.patch => sunxi-6.18/patches.megous/axp-6.18/0001-dt-bindings-axp20x-adc-allow-to-use-TS-pin-as-GPADC.patch} (83%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/iio-adc-axp20x_adc-allow-to-set-TS-pin-to-GPADC-mode.patch => sunxi-6.18/patches.megous/axp-6.18/0002-iio-adc-axp20x_adc-allow-to-set-TS-pin-to-GPADC-mode.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-axp20x_battery-Allow-to-set-target-voltage-to-4.35V.patch => sunxi-6.18/patches.megous/axp-6.18/0003-power-axp20x_battery-Allow-to-set-target-voltage-to-.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-supply-axp20x_battery-Add-support-for-reporting-OCV.patch => sunxi-6.18/patches.megous/axp-6.18/0004-power-supply-axp20x_battery-Add-support-for-reportin.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/regulator-axp20x-Enable-over-temperature-protection-and-16s-res.patch => sunxi-6.18/patches.megous/axp-6.18/0005-regulator-axp20x-Enable-over-temperature-protection-.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-supply-axp20x_battery-Setup-thermal-regulation-experiment.patch => sunxi-6.18/patches.megous/axp-6.18/0006-power-supply-axp20x_battery-Setup-thermal-regulation.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-supply-axp20x_battery-Fix-charging-done-detection.patch => sunxi-6.18/patches.megous/axp-6.18/0007-power-supply-axp20x_battery-Fix-charging-done-detect.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/mfd-axp20x-Add-battery-IRQ-resources.patch => sunxi-6.18/patches.megous/axp-6.18/0008-mfd-axp20x-Add-battery-IRQ-resources.patch} (96%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-supply-axp20x_battery-Send-uevents-for-status-changes.patch => sunxi-6.18/patches.megous/axp-6.18/0009-power-supply-axp20x_battery-Send-uevents-for-status-.patch} (96%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-supply-axp20x_battery-Monitor-battery-health.patch => sunxi-6.18/patches.megous/axp-6.18/0010-power-supply-axp20x_battery-Monitor-battery-health.patch} (95%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-supply-axp20x-usb-power-Change-Vbus-hold-voltage-to-4.5V.patch => sunxi-6.18/patches.megous/axp-6.18/0011-power-supply-axp20x-usb-power-Change-Vbus-hold-volta.patch} (86%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-axp803-Add-interrupts-for-low-battery-power-condition.patch => sunxi-6.18/patches.megous/axp-6.18/0012-power-axp803-Add-interrupts-for-low-battery-power-co.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-supply-axp20x-battery-Support-POWER_SUPPLY_PROP_CHARGE_BE.patch => sunxi-6.18/patches.megous/axp-6.18/0013-power-supply-axp20x-battery-Support-POWER_SUPPLY_PRO.patch} (94%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-supply-axp20x-battery-Enable-poweron-by-RTC-alarm.patch => sunxi-6.18/patches.megous/axp-6.18/0014-power-supply-axp20x-battery-Enable-poweron-by-RTC-al.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-supply-axp20x-battery-Add-support-for-POWER_SUPPLY_PROP_E.patch => sunxi-6.18/patches.megous/axp-6.18/0015-power-supply-axp20x-battery-Add-support-for-POWER_SU.patch} (93%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-supply-Add-support-for-USB_BC_ENABLED-and-USB_DCP_INPUT_C.patch => sunxi-6.18/patches.megous/axp-6.18/0016-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-supply-axp20x-usb-power-Add-missing-interrupts.patch => sunxi-6.18/patches.megous/axp-6.18/0017-power-supply-axp20x-usb-power-Add-missing-interrupts.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/power-supply-axp20x-battery-Improve-probe-error-reporting.patch => sunxi-6.18/patches.megous/axp-6.18/0018-power-supply-axp20x-battery-Improve-probe-error-repo.patch} (92%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/besdbg-6.18/0001-besdbg-Add-a-debug-driver-for-controlling-the-wifi-c.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/besdbg-6.18/0002-mmc-Add-pwrseq_bes-driver-for-powering-up-BES2600-on.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/bluetooth-h5-Don-t-re-initialize-rtl8723cs-on-resume.patch => sunxi-6.18/patches.megous/bt-6.18/0001-bluetooth-h5-Don-t-re-initialize-rtl8723cs-on-resume.patch} (85%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0001-cw1200-support-loading-cw1x60-FW.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0002-cw1200-xr819-hacks.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0003-cw1200-use-kmalloc-allocation-instead-of-stack.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0004-net-wireless-cw1200-Add-support-for-BES2600.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0005-cw1200-Improve-error-reporting-from-probe.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0006-cw1200-Disable-automatic-module-loading-until-the-mo.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0007-cw1200-Enable-FW-loader-debug-mode.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/Defconfigs-for-all-my-devices.patch => sunxi-6.18/patches.megous/defcon-6.18/0002-Defconfigs-for-all-my-devices.patch} (99%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ebaz4205-6.18/0001-Add-minimal-EBAZ4205-defconfig.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ebaz4205-6.18/0002-dt-bindings-Add-Zynq-clocks.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ebaz4205-6.18/0003-arm-xilinx-ebaz4205-Add-test-config-for-various-PL-p.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-errors.patch => sunxi-6.18/patches.megous/err-6.18/0001-sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-error.patch} (86%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/thermal-sun8i-Be-loud-when-probe-fails.patch => sunxi-6.18/patches.megous/err-6.18/0002-thermal-sun8i-Be-loud-when-probe-fails.patch} (94%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/i2c-mv64xxx-Don-t-make-a-fuss-when-pinctrl-recovery-state-is-no.patch => sunxi-6.18/patches.megous/err-6.18/0003-i2c-mv64xxx-Don-t-make-a-fuss-when-pinctrl-recovery-.patch} (83%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/iio-st_sensors-Don-t-report-error-when-the-device-is-not-presen.patch => sunxi-6.18/patches.megous/err-6.18/0004-iio-st_sensors-Don-t-report-error-when-the-device-is.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/opp-core-Avoid-confusing-error-when-no-regulator-is-defined-in-.patch => sunxi-6.18/patches.megous/err-6.18/0005-opp-core-Avoid-confusing-error-when-no-regulator-is-.patch} (81%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/rtc-Print-which-error-caused-RTC-read-failure.patch => sunxi-6.18/patches.megous/err-6.18/0006-rtc-Print-which-error-caused-RTC-read-failure.patch} (87%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-missing-GPU-trip-point.patch => sunxi-6.18/patches.megous/fixes-6.18/0001-ARM-dts-sun8i-a83t-Add-missing-GPU-trip-point.patch} (83%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-h5-Add-missing-GPU-trip-point.patch => sunxi-6.18/patches.megous/fixes-6.18/0002-arm64-dts-sun50i-h5-Add-missing-GPU-trip-point.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-Fix-LRADC-compatible.patch => sunxi-6.18/patches.megous/fixes-6.18/0003-arm64-dts-allwinner-a64-Fix-LRADC-compatible.patch} (86%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-cedrus-Fix-failure-to-clean-up-hardware-on-probe-failure.patch => sunxi-6.18/patches.megous/fixes-6.18/0004-media-cedrus-Fix-failure-to-clean-up-hardware-on-pro.patch} (78%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0005-ASoC-rockchip-Fix-doubling-of-playback-speed-after-s.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs-where-it-s.patch => sunxi-6.18/patches.megous/fixes-6.18/0006-usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-allwinner-Enforce-consistent-MMC-numbering.patch => sunxi-6.18/patches.megous/fixes-6.18/0007-arm64-dts-allwinner-Enforce-consistent-MMC-numbering.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sunxi-Add-aliases-for-MMC.patch => sunxi-6.18/patches.megous/fixes-6.18/0008-ARM-dts-sunxi-Add-aliases-for-MMC.patch} (89%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0009-drm-rockchip-Fix-panic-on-reboot-when-DRM-device-fai.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-gadget-Fix-dangling-pointer-in-netdev-private-data.patch => sunxi-6.18/patches.megous/fixes-6.18/0010-usb-gadget-Fix-dangling-pointer-in-netdev-private-da.patch} (85%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0011-mmc-dw-mmc-rockchip-fix-sdmmc-after-soft-reboot.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/Revert-drm-sun4i-lvds-Invert-the-LVDS-polarity.patch => sunxi-6.18/patches.megous/fixes-6.18/0012-Revert-drm-sun4i-lvds-Invert-the-LVDS-polarity.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/of-property-fw_devlink-Support-allwinner-sram-links.patch => sunxi-6.18/patches.megous/fixes-6.18/0013-of-property-fw_devlink-Support-allwinner-sram-links.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/Fix-broken-allwinner-sram-dependency-on-h616-h618.patch => sunxi-6.18/patches.megous/fixes-6.18/0014-Fix-broken-allwinner-sram-dependency-on-h616-h618.patch} (94%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0015-arm64-dts-rockchip-rk356x-Fix-PCIe-register-map-and-.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/Fix-intptr_t-typedef.patch => sunxi-6.18/patches.megous/fixes-6.18/0016-Fix-intptr_t-typedef.patch} (87%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/mmc-sunxi-mmc-Remove-runtime-PM.patch => sunxi-6.18/patches.megous/fixes-6.18/0017-mmc-sunxi-mmc-Remove-runtime-PM.patch} (83%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/pci-Workaround-ITS-timeouts-on-poweroff-reboot-on-Orange-Pi-5-P.patch => sunxi-6.18/patches.megous/fixes-6.18/0018-pci-Workaround-ITS-timeouts-on-poweroff-reboot-on-Or.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-serial-option-add-reset_resume-callback-for-WWAN-devices.patch => sunxi-6.18/patches.megous/fixes-6.18/0019-usb-serial-option-add-reset_resume-callback-for-WWAN.patch} (85%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-ov5648-Fix-call-to-pm_runtime_set_suspended.patch => sunxi-6.18/patches.megous/fixes-6.18/0020-media-ov5648-Fix-call-to-pm_runtime_set_suspended.patch} (86%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0021-drm-rockchip-dw-mipi-dsi-rockchip-Fix-ISP1-PHY-initi.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-rk3399-Add-dmc_opp_table.patch => sunxi-6.18/patches.megous/fixes-6.18/0022-arm64-dts-rk3399-Add-dmc_opp_table.patch} (87%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0023-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-failure.patch => sunxi-6.18/patches.megous/fixes-6.18/0024-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch} (77%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-fusb302-Slightly-increase-wait-time-for-BC1.2-result.patch => sunxi-6.18/patches.megous/fusb302-6.18/0001-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-fusb302-Set-the-current-before-enabling-pullups.patch => sunxi-6.18/patches.megous/fusb302-6.18/0002-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-fusb302-Extend-debugging-interface-with-driver-state-.patch => sunxi-6.18/patches.megous/fusb302-6.18/0003-usb-typec-fusb302-Extend-debugging-interface-with-dr.patch} (95%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-fusb302-Retry-reading-of-CC-pins-status-if-activity-i.patch => sunxi-6.18/patches.megous/fusb302-6.18/0004-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-fusb302-More-useful-of-logging-status-on-interrupt.patch => sunxi-6.18/patches.megous/fusb302-6.18/0005-usb-typec-fusb302-More-useful-of-logging-status-on-i.patch} (96%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-interrupt-is-n.patch => sunxi-6.18/patches.megous/fusb302-6.18/0006-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-fusb302-Add-OF-extcon-support.patch => sunxi-6.18/patches.megous/fusb302-6.18/0007-usb-typec-fusb302-Add-OF-extcon-support.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-fusb302-Fix-register-definitions.patch => sunxi-6.18/patches.megous/fusb302-6.18/0008-usb-typec-fusb302-Fix-register-definitions.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-fusb302-Clear-interrupts-before-we-start-toggling.patch => sunxi-6.18/patches.megous/fusb302-6.18/0009-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch} (91%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0001-Input-goodix-Add-config-debugfs-file.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0002-Input-goodix-Add-option-to-power-off-the-controller-.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0003-Input-goodix-Try-to-keep-regulator-enable-disable-ba.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0004-input-touchscreen-goodix-Respect-IRQ-flags-from-DT-w.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/ASOC-sun9i-hdmi-audio-Initial-implementation.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0001-ASOC-sun9i-hdmi-audio-Initial-implementation.patch} (94%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sunxi-h3-h5-Add-hdmi-sound-card.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0002-ARM-dts-sunxi-h3-h5-Add-hdmi-sound-card.patch} (77%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-with-hdmi.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0003-ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-wi.patch} (81%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-h2-plus-bananapi-m2-zero-Enable-HDMI-audio.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0004-ARM-dts-sun8i-h2-plus-bananapi-m2-zero-Enable-HDMI-a.patch} (83%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-hdmi-sound-card.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0005-ARM-dts-sun8i-a83t-Add-hdmi-sound-card.patch} (80%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Enable-hdmi-sound-card-on-boards-with-hdmi.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0006-ARM-dts-sun8i-a83t-Enable-hdmi-sound-card-on-boards-.patch} (84%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-r40-Add-hdmi-sound-card.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0007-ARM-dts-sun8i-r40-Add-hdmi-sound-card.patch} (86%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-r40-bananapi-m2-ultra-Enable-HDMI-audio.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0008-ARM-dts-sun8i-r40-bananapi-m2-ultra-Enable-HDMI-audi.patch} (82%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-v40-bananapi-m2-berry-Enable-HDMI-audio.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0009-ARM-dts-sun8i-v40-bananapi-m2-berry-Enable-HDMI-audi.patch} (83%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0010-arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch} (80%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boards-with-hd.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0011-arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boa.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0012-arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch} (78%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-Enable-hdmi-sound-card-on-boards-with-h.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0013-arm64-dts-allwinner-a64-Enable-hdmi-sound-card-on-bo.patch} (83%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boards-with-hd.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0014-arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boa.patch} (82%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/Move-a-node-to-avoid-merge-conflict.patch => sunxi-6.18/patches.megous/hdmi-audio-6.18/0015-Move-a-node-to-avoid-merge-conflict.patch} (91%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/husb311-6.18/0001-usb-typec-husb311-Add-HUSB311-TCPI-driver.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0001-media-i2c-imx258-Add-i2c-supply.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0002-media-i2c-imx258-Add-debug-register-access.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0003-media-imx258-Add-reset-gpio.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0004-media-imx258-Drop-interface-speed-to-1224-mbps.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/misc-modem-power-Power-manager-for-modems.patch => sunxi-6.18/patches.megous/modem-6.18/0001-misc-modem-power-Power-manager-for-modems.patch} (99%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/net-stmmac-sun8i-Use-devm_regulator_get-for-PHY-regulator.patch => sunxi-6.18/patches.megous/opi3-eth-6.18/0001-net-stmmac-sun8i-Use-devm_regulator_get-for-PHY-regu.patch} (85%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/net-stmmac-sun8i-Rename-PHY-regulator-variable-to-regulator_phy.patch => sunxi-6.18/patches.megous/opi3-eth-6.18/0002-net-stmmac-sun8i-Rename-PHY-regulator-variable-to-re.patch} (82%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/net-stmmac-sun8i-Add-support-for-enabling-a-regulator-for-PHY-I.patch => sunxi-6.18/patches.megous/opi3-eth-6.18/0003-net-stmmac-sun8i-Add-support-for-enabling-a-regulato.patch} (84%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-allwinner-orange-pi-3-Enable-ethernet.patch => sunxi-6.18/patches.megous/opi3-eth-6.18/0004-arm64-dts-allwinner-orange-pi-3-Enable-ethernet.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-ov5640-Experiment-Try-to-disable-denoising-sharpening.patch => sunxi-6.18/patches.megous/ov5640-6.18/0001-media-ov5640-Experiment-Try-to-disable-denoising-sha.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-ov5640-Sleep-after-poweroff-to-ensure-next-poweron-is-not.patch => sunxi-6.18/patches.megous/ov5640-6.18/0002-media-ov5640-Sleep-after-poweroff-to-ensure-next-pow.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-ov5640-Don-t-powerup-the-sensor-during-driver-probe.patch => sunxi-6.18/patches.megous/ov5640-6.18/0003-media-ov5640-Don-t-powerup-the-sensor-during-driver-.patch} (85%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-ov5640-set-default-ae-target-lower.patch => sunxi-6.18/patches.megous/ov5640-6.18/0004-media-ov5640-set-default-ae-target-lower.patch} (80%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-ov5640-Improve-error-reporting.patch => sunxi-6.18/patches.megous/ov5640-6.18/0005-media-ov5640-Improve-error-reporting.patch} (80%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-ov5640-Implement-autofocus.patch => sunxi-6.18/patches.megous/ov5640-6.18/0006-media-ov5640-Implement-autofocus.patch} (96%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-ov5640-Improve-firmware-load-time.patch => sunxi-6.18/patches.megous/ov5640-6.18/0007-media-ov5640-Improve-firmware-load-time.patch} (96%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-ov5640-Fix-focus-commands-blocking-until-complete.patch => sunxi-6.18/patches.megous/ov5640-6.18/0008-media-ov5640-Fix-focus-commands-blocking-until-compl.patch} (93%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-ov5640-Add-read-only-property-for-vblank.patch => sunxi-6.18/patches.megous/ov5640-6.18/0009-media-ov5640-Add-read-only-property-for-vblank.patch} (79%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-ov5640-use-pm_runtime_force_suspend-resume-for-system-sus.patch => sunxi-6.18/patches.megous/ov5640-6.18/0010-media-ov5640-use-pm_runtime_force_suspend-resume-for.patch} (83%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/Revert-Input-cyttsp4-remove-driver.patch => sunxi-6.18/patches.megous/pb-6.18/0001-Revert-Input-cyttsp4-remove-driver.patch} (98%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-Port-to-6.16.patch => sunxi-6.18/patches.megous/pb-6.18/0002-input-cyttsp4-Port-to-6.16.patch} (86%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-De-obfuscate-platform-data-for-keys.patch => sunxi-6.18/patches.megous/pb-6.18/0003-input-cyttsp4-De-obfuscate-platform-data-for-keys.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-Remove-useless-indirection-with-driver-platform-d.patch => sunxi-6.18/patches.megous/pb-6.18/0004-input-cyttsp4-Remove-useless-indirection-with-driver.patch} (98%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-Remove-unused-enable_vkeys.patch => sunxi-6.18/patches.megous/pb-6.18/0005-input-cyttsp4-Remove-unused-enable_vkeys.patch} (85%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-De-obfuscate-MT-signals-setup-platform-data.patch => sunxi-6.18/patches.megous/pb-6.18/0006-input-cyttsp4-De-obfuscate-MT-signals-setup-platform.patch} (95%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-Clear-the-ids-buffer-in-a-saner-way.patch => sunxi-6.18/patches.megous/pb-6.18/0007-input-cyttsp4-Clear-the-ids-buffer-in-a-saner-way.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-ENOSYS-error-is-ok-when-powering-up.patch => sunxi-6.18/patches.megous/pb-6.18/0008-input-cyttsp4-ENOSYS-error-is-ok-when-powering-up.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-Faster-recovery-from-failed-wakeup-HACK.patch => sunxi-6.18/patches.megous/pb-6.18/0009-input-cyttsp4-Faster-recovery-from-failed-wakeup-HAC.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-Use-i2c-spi-names-directly-in-the-driver.patch => sunxi-6.18/patches.megous/pb-6.18/0010-input-cyttsp4-Use-i2c-spi-names-directly-in-the-driv.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-Port-the-driver-to-use-device-properties.patch => sunxi-6.18/patches.megous/pb-6.18/0011-input-cyttsp4-Port-the-driver-to-use-device-properti.patch} (97%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-Restart-on-wakeup-wakeup-by-I2C-read-doesn-t-work.patch => sunxi-6.18/patches.megous/pb-6.18/0012-input-cyttsp4-Restart-on-wakeup-wakeup-by-I2C-read-d.patch} (95%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-Fix-warnings.patch => sunxi-6.18/patches.megous/pb-6.18/0013-input-cyttsp4-Fix-warnings.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-Make-the-driver-not-hog-the-system-s-workqueue.patch => sunxi-6.18/patches.megous/pb-6.18/0014-input-cyttsp4-Make-the-driver-not-hog-the-system-s-w.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-Fix-probe-oops.patch => sunxi-6.18/patches.megous/pb-6.18/0015-input-cyttsp4-Fix-probe-oops.patch} (87%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/input-cyttsp4-Fix-compile-issue.patch => sunxi-6.18/patches.megous/pb-6.18/0016-input-cyttsp4-Fix-compile-issue.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/video-fbdev-eInk-display-driver-for-A13-based-PocketBooks.patch => sunxi-6.18/patches.megous/pb-6.18/0017-video-fbdev-eInk-display-driver-for-A13-based-Pocket.patch} (98%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/regulator-Add-simple-driver-for-enabling-a-regulator-from-users.patch => sunxi-6.18/patches.megous/pb-6.18/0018-regulator-Add-simple-driver-for-enabling-a-regulator.patch} (93%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/regulator-tp65185x-Add-tp65185x-eInk-panel-regulator-driver.patch => sunxi-6.18/patches.megous/pb-6.18/0019-regulator-tp65185x-Add-tp65185x-eInk-panel-regulator.patch} (96%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/regulator-tp65185-Add-hwmon-device-for-reading-temperature.patch => sunxi-6.18/patches.megous/pb-6.18/0020-regulator-tp65185-Add-hwmon-device-for-reading-tempe.patch} (96%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/iio-adc-sun4i-gpadc-iio-Allow-to-use-sun5i-a13-gpadc-iio-from-D.patch => sunxi-6.18/patches.megous/pb-6.18/0021-iio-adc-sun4i-gpadc-iio-Allow-to-use-sun5i-a13-gpadc.patch} (86%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/mtd-spi-nor-Add-vdd-regulator-support.patch => sunxi-6.18/patches.megous/pb-6.18/0022-mtd-spi-nor-Add-vdd-regulator-support.patch} (81%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun5i-Add-soc-handle.patch => sunxi-6.18/patches.megous/pb-6.18/0023-ARM-dts-sun5i-Add-soc-handle.patch} (79%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun5i-Add-PocketBook-Touch-Lux-3-display-ctp-support.patch => sunxi-6.18/patches.megous/pb-6.18/0024-ARM-dts-sun5i-Add-PocketBook-Touch-Lux-3-display-ctp.patch} (96%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun5i-a13-pocketbook-touch-lux-3-Add-RTC-clock-cells.patch => sunxi-6.18/patches.megous/pb-6.18/0025-ARM-dts-sun5i-a13-pocketbook-touch-lux-3-Add-RTC-clo.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-pinetab-add-front-camera.patch => sunxi-6.18/patches.megous/pinetab-6.18/0001-arm64-dts-allwinner-a64-pinetab-add-front-camera.patch} (93%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-allwinner-dts-a64-enable-K101-IM2BYL02-panel-for-PineTab.patch => sunxi-6.18/patches.megous/pinetab-6.18/0002-arm64-allwinner-dts-a64-enable-K101-IM2BYL02-panel-f.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinetab-Name-sound-card-PineTab.patch => sunxi-6.18/patches.megous/pinetab-6.18/0003-arm64-dts-sun50i-a64-pinetab-Name-sound-card-PineTab.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinetab-Add-accelerometer.patch => sunxi-6.18/patches.megous/pinetab-6.18/0004-arm64-dts-sun50i-a64-pinetab-Add-accelerometer.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinetab-enable-RTL8723CS-bluetooth.patch => sunxi-6.18/patches.megous/pinetab-6.18/0005-arm64-dts-sun50i-a64-pinetab-enable-RTL8723CS-blueto.patch} (86%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-front-back-cameras.patch => sunxi-6.18/patches.megous/pp-6.18/0001-arm64-dts-sun50i-a64-pinephone-Add-front-back-camera.patch} (94%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-Type-C-support-for-all-PP-va.patch => sunxi-6.18/patches.megous/pp-6.18/0002-arm64-dts-sun50i-a64-pinephone-Add-Type-C-support-fo.patch} (95%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-modem-power-manager.patch => sunxi-6.18/patches.megous/pp-6.18/0003-arm64-dts-sun50i-a64-pinephone-Add-modem-power-manag.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Fix-BH-modem-manager-behavior.patch => sunxi-6.18/patches.megous/pp-6.18/0004-arm64-dts-sun50i-a64-pinephone-Fix-BH-modem-manager-.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-detailed-OCV-to-capactiy-con.patch => sunxi-6.18/patches.megous/pp-6.18/0005-arm64-dts-sun50i-a64-pinephone-Add-detailed-OCV-to-c.patch} (95%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Shorten-post-power-on-delay-on-m.patch => sunxi-6.18/patches.megous/pp-6.18/0006-arm64-dts-sun50i-a64-pinephone-Shorten-post-power-on.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Bluetooth-audio.patch => sunxi-6.18/patches.megous/pp-6.18/0007-arm64-dts-sun50i-a64-pinephone-Add-support-for-Bluet.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Enable-internal-HMIC-bias.patch => sunxi-6.18/patches.megous/pp-6.18/0008-arm64-dts-sun50i-a64-pinephone-Enable-internal-HMIC-.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-modem-audio.patch => sunxi-6.18/patches.megous/pp-6.18/0009-arm64-dts-sun50i-a64-pinephone-Add-support-for-modem.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Bump-I2C-frequency-to-400kHz.patch => sunxi-6.18/patches.megous/pp-6.18/0010-arm64-dts-sun50i-a64-pinephone-Bump-I2C-frequency-to.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-interrupt-pin-for-WiFi.patch => sunxi-6.18/patches.megous/pp-6.18/0011-arm64-dts-sun50i-a64-pinephone-Add-interrupt-pin-for.patch} (86%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Power-off-the-touch-controller-i.patch => sunxi-6.18/patches.megous/pp-6.18/0012-arm64-dts-sun50i-a64-pinephone-Power-off-the-touch-c.patch} (87%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Don-t-make-lradc-keys-a-wakeup-s.patch => sunxi-6.18/patches.megous/pp-6.18/0013-arm64-dts-sun50i-a64-pinephone-Don-t-make-lradc-keys.patch} (87%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Set-minimum-backlight-duty-cycle.patch => sunxi-6.18/patches.megous/pp-6.18/0014-arm64-dts-sun50i-a64-pinephone-Set-minimum-backlight.patch} (86%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-supply-for-i2c-bus-to-anx768.patch => sunxi-6.18/patches.megous/pp-6.18/0015-arm64-dts-sun50i-a64-pinephone-Add-supply-for-i2c-bu.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Workaround-broken-HDMI-HPD-signa.patch => sunxi-6.18/patches.megous/pp-6.18/0016-arm64-dts-sun50i-a64-pinephone-Workaround-broken-HDM.patch} (89%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinephone-keyboa.patch => sunxi-6.18/patches.megous/pp-6.18/0017-arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinep.patch} (95%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Enable-Pinephone-Keyboard-power-.patch => sunxi-6.18/patches.megous/pp-6.18/0018-arm64-dts-sun50i-a64-pinephone-Enable-Pinephone-Keyb.patch} (89%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0019-arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinep.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-power-supply-to-stk3311.patch => sunxi-6.18/patches.megous/pp-6.18/0020-arm64-dts-sun50i-a64-pinephone-Add-power-supply-to-s.patch} (87%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-reboot-mode-driver.patch => sunxi-6.18/patches.megous/pp-6.18/0021-arm64-dts-sun50i-a64-pinephone-Add-reboot-mode-drive.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Use-newer-jack-detection-impleme.patch => sunxi-6.18/patches.megous/pp-6.18/0022-arm64-dts-sun50i-a64-pinephone-Use-newer-jack-detect.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-Define-orientation-and-rotation-for-PinePhone-.patch => sunxi-6.18/patches.megous/pp-6.18/0023-arm64-dts-sun50i-Define-orientation-and-rotation-for.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/2-arm64-dts-sun50i-Define-orientation-and-rotation-for-PinePhone-.patch => sunxi-6.18/patches.megous/pp-6.18/0024-arm64-dts-sun50i-Define-orientation-and-rotation-for.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50-a64-pinephone-Define-jack-pins-in-DT.patch => sunxi-6.18/patches.megous/pp-6.18/0025-arm64-dts-sun50-a64-pinephone-Define-jack-pins-in-DT.patch} (89%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0026-arm64-dts-sun50i-a64-pinephone-1.2-Increase-backligh.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0001-power-supply-ip5xxx-Report-remaining-battery-capacit.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0002-power-supply-ip5xxx-Modify-initial-configuration.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0003-power-supply-ip5xxx-Add-boost-status-property.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0004-power-supply-ip5xxx-Add-ip5xxx-usb-supply.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0005-power-supply-ip5xxx-Add-support-for-POWER_SUPPLY_PRO.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0006-power-supply-ip5xxx-Add-support-for-POWER_SUPPLY_PRO.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0007-input-pinephone-keyboard-Allow-disabling-the-keyboar.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0008-input-pinephone-keyboard-Allow-to-disable-Fn-layer-p.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0009-input-pinephone-keyboard-Don-t-print-error-when-the-.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0010-input-pinephone-keyboard-Wait-a-bit-after-enabling-v.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0011-misc-ppkb-manager-Pinephone-Keyboard-power-manager.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0012-misc-ppkb-manager-Remove-BLOCKED-flag.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0013-misc-ppkb-manager-Disable-ppkb-manager-by-default-ca.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0014-misc-ppkb-manager-Show-read-write-error-codes.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0015-misc-ppkb-manager-Disable-debug-mode.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0016-ip5xxx-fix-POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-power-off-bu.patch => sunxi-6.18/patches.megous/private-6.18/0001-Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-p.patch} (88%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/Add-support-for-my-private-Sapomat-device.patch => sunxi-6.18/patches.megous/private-6.18/0002-Add-support-for-my-private-Sapomat-device.patch} (56%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-header-UARTs.patch => sunxi-6.18/patches.megous/private-6.18/0003-ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-heade.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/mtd-spi-nor-Add-Alliance-memory-support.patch => sunxi-6.18/patches.megous/private-6.18/0004-mtd-spi-nor-Add-Alliance-memory-support.patch} (86%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0001-arm64-dts-rk3566-pientab2-Use-non-linear-brightness-.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0002-arm64-dts-rk3566-pinetab2-Add-Type-C-controller-node.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0003-arm64-dts-rk3566-pinetab2-Re-order-and-use-extcon-br.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0004-usb-tcpci-Add-support-for-extcon-based-input-current.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0005-arm64-dts-rk3566-pinetab2-Add-DT-nodes-for-besdbg-dr.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0006-arm64-dts-rk3566-pinetab2-Lower-the-SPI-NOR-flash-cl.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0001-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0002-phy-phy-rockchip-inno-usb2-Decrease-delay-between-po.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0003-phy-rockchip-inno-usb2-More-robust-charger-detection.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0004-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0005-phy-rockchip-naneng-Add-fallback-for-old-DTs.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0006-usb-dwc3-Extend-reset-quirk-support-to-include-role-.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rp64-6.18/0001-arm64-dts-rk3399-rockpro64-Add-DMC-nodes.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rp64-6.18/0002-arm64-dts-rk3399-rockpro64-Add-Type-C-OTG-Alt-DP-sup.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0001-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0002-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0003-ASoC-codecs-rt5640-Resolve-failure-to-set-DMIC-clock.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0004-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0005-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0006-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0007-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rtw88-6.18/0001-Implement-adaptivity-functions.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/rtw88-6.18/0002-Implement-CFO-tracking.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-Set-fifo-size-for-uarts.patch => sunxi-6.18/patches.megous/speed-6.18/0001-arm64-dts-sun50i-a64-Set-fifo-size-for-uarts.patch} (82%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch => sunxi-6.18/patches.megous/speed-6.18/0002-ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch} (82%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/Mark-some-slow-drivers-for-async-probe-with-PROBE_PREFER_ASYNCH.patch => sunxi-6.18/patches.megous/speed-6.18/0003-Mark-some-slow-drivers-for-async-probe-with-PROBE_PR.patch} (84%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/arm64-xor-Select-32regs-without-benchmark-to-speed-up-boot.patch => sunxi-6.18/patches.megous/speed-6.18/0004-arm64-xor-Select-32regs-without-benchmark-to-speed-u.patch} (87%) create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/stk3310-6.18/0001-iio-light-stk3310-Implement-vdd-supply-and-power-it-.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/stk3310-6.18/0002-iio-light-stk3310-Add-support-for-I2C-regulator.patch create mode 100644 patch/kernel/archive/sunxi-6.18/patches.megous/stk3310-6.18/0003-iio-stk3310-Fix-regulator-disable-enable-order.patch rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-sun6i-csi-capture-Use-subdev-operation-to-access-bridge-f.patch => sunxi-6.18/patches.megous/sun6i-csi-6.18/0001-media-sun6i-csi-capture-Use-subdev-operation-to-acce.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-sun6i-csi-subdev-Use-subdev-active-state-to-store-active-.patch => sunxi-6.18/patches.megous/sun6i-csi-6.18/0002-media-sun6i-csi-subdev-Use-subdev-active-state-to-st.patch} (97%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-sun6i-csi-merge-sun6i_csi_formats-and-sun6i_csi_formats_m.patch => sunxi-6.18/patches.megous/sun6i-csi-6.18/0003-media-sun6i-csi-merge-sun6i_csi_formats-and-sun6i_cs.patch} (98%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-sun6i-csi-add-V4L2_CAP_IO_MC-capability.patch => sunxi-6.18/patches.megous/sun6i-csi-6.18/0004-media-sun6i-csi-add-V4L2_CAP_IO_MC-capability.patch} (91%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-sun6i-csi-implement-vidioc_enum_framesizes.patch => sunxi-6.18/patches.megous/sun6i-csi-6.18/0005-media-sun6i-csi-implement-vidioc_enum_framesizes.patch} (90%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/media-sun6i-csi-Add-multicamera-support-for-parallel-bus.patch => sunxi-6.18/patches.megous/sun6i-csi-6.18/0006-media-sun6i-csi-Add-multicamera-support-for-parallel.patch} (95%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/Revert-usb-typec-tcpm-unregister-existing-source-caps-before-re.patch => sunxi-6.18/patches.megous/tcpm-6.18/0001-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPTACLE-bit.patch => sunxi-6.18/patches.megous/tcpm-6.18/0002-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-tcpm-Unregister-altmodes-before-registering-new-ones.patch => sunxi-6.18/patches.megous/tcpm-6.18/0003-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch} (94%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-tcpm-Fix-PD-devices-capabilities-registration.patch => sunxi-6.18/patches.megous/tcpm-6.18/0004-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch} (94%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-tcpm-Improve-logs.patch => sunxi-6.18/patches.megous/tcpm-6.18/0005-usb-typec-tcpm-Improve-logs.patch} (92%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-typec-extcon-Add-typec-extcon-bridge-driver.patch => sunxi-6.18/patches.megous/typec-extcon-6.18/0001-usb-typec-typec-extcon-Add-typec-extcon-bridge-drive.patch} (97%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-typec-extcon-Enable-debugging-for-now.patch => sunxi-6.18/patches.megous/typec-extcon-6.18/0002-usb-typec-typec-extcon-Enable-debugging-for-now.patch} (84%) rename patch/kernel/archive/{sunxi-6.16/patches.megous/usb-typec-typec-extcon-Allow-to-force-reset-on-each-mux-change.patch => sunxi-6.18/patches.megous/typec-extcon-6.18/0003-usb-typec-typec-extcon-Allow-to-force-reset-on-each-.patch} (88%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/series.armbian (100%) create mode 100644 patch/kernel/archive/sunxi-6.18/series.conf rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/series.drm (100%) rename patch/kernel/archive/{sunxi-6.16 => sunxi-6.18}/series.media (100%) create mode 100644 patch/misc/wireless-uwe5622/uwe5622-v6.18.patch diff --git a/config/boards/orangepizero2.csc b/config/boards/orangepizero2.csc index 890af6641..b02e1c1ec 100644 --- a/config/boards/orangepizero2.csc +++ b/config/boards/orangepizero2.csc @@ -5,6 +5,7 @@ BOARDFAMILY="sun50iw9" BOARD_MAINTAINER="AGM1968 krachlatte" BOOTCONFIG="orangepi_zero2_defconfig" BOOT_LOGO="desktop" +OVERLAY_PREFIX="sun50i-h616" KERNEL_TARGET="current,edge" KERNEL_TEST_TARGET="current" FORCE_BOOTSCRIPT_UPDATE="yes" diff --git a/config/sources/families/include/sunxi64_common.inc b/config/sources/families/include/sunxi64_common.inc index 01033f8c6..39f760fa8 100644 --- a/config/sources/families/include/sunxi64_common.inc +++ b/config/sources/families/include/sunxi64_common.inc @@ -35,8 +35,8 @@ case $BRANCH in ;; edge) - declare -g KERNEL_MAJOR_MINOR="6.16" # Major and minor versions of this kernel. - declare -g KERNELBRANCH="tag:v6.16.8" + declare -g KERNEL_MAJOR_MINOR="6.18" # Major and minor versions of this kernel. + declare -g KERNELBRANCH="tag:v6.18.1" ;; esac diff --git a/config/sources/families/include/sunxi_common.inc b/config/sources/families/include/sunxi_common.inc index 871f01aae..a73496557 100644 --- a/config/sources/families/include/sunxi_common.inc +++ b/config/sources/families/include/sunxi_common.inc @@ -36,8 +36,8 @@ case $BRANCH in ;; edge) - declare -g KERNEL_MAJOR_MINOR="6.16" # Major and minor versions of this kernel. - declare -g KERNELBRANCH="tag:v6.16.8" + declare -g KERNEL_MAJOR_MINOR="6.18" # Major and minor versions of this kernel. + declare -g KERNELBRANCH="tag:v6.18.1" ;; esac diff --git a/lib/functions/compilation/patch/drivers_network.sh b/lib/functions/compilation/patch/drivers_network.sh index 9f2af0c52..75ba02e85 100644 --- a/lib/functions/compilation/patch/drivers_network.sh +++ b/lib/functions/compilation/patch/drivers_network.sh @@ -236,11 +236,11 @@ driver_xradio_xr819() { if linux-version compare "${version}" ge 4.19 && [[ "$LINUXFAMILY" == sun* ]]; then # Attach to specific commit (is branch:master) - local xradio_xr819_ver="commit:684a91a3692a964c5886dcf4369874cc7c19c0a4" # Commit date: Aug 7, 2025 (please update when updating commit ref) + local xradio_xr819_ver="commit:43992a7e7ed95ff815cf6d8ba81cef1085e50ab9" # Commit date: Oct 11, 2025 (please update when updating commit ref) display_alert "Adding" "Wireless drivers for Xradio XR819 chipsets" "info" - fetch_from_repo "$GITHUB_SOURCE/igorpecovnik/xradio" "xradio" "${xradio_xr819_ver}" "yes" # Forked from https://github.com/fifteenhex/xradio + fetch_from_repo "$GITHUB_SOURCE/fifteenhex/xradio" "xradio" "${xradio_xr819_ver}" "yes" cd "$kerneldir" || exit rm -rf "$kerneldir/drivers/net/wireless/xradio" mkdir -p "$kerneldir/drivers/net/wireless/xradio/" @@ -565,7 +565,11 @@ driver_uwe5622() { if linux-version compare "${version}" ge 6.17; then process_patch_file "${SRC}/patch/misc/wireless-uwe5622/uwe5622-v6.17.patch" "applying" - fi + fi + + if linux-version compare "${version}" ge 6.18; then + process_patch_file "${SRC}/patch/misc/wireless-uwe5622/uwe5622-v6.18.patch" "applying" + fi fi } diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-x96-mate-add-hdmi.patch b/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-x96-mate-add-hdmi.patch deleted file mode 100644 index f38a14610..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-x96-mate-add-hdmi.patch +++ /dev/null @@ -1,64 +0,0 @@ -From e48549cc1b24a6e51f469768b1a2c13cbf3199d7 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Mon, 14 Jun 2021 22:39:58 +0200 -Subject: arm64:dts: sun50i-h616-x96-mate add hdmi - -Signed-off-by: Jernej Skrabec ---- - .../dts/allwinner/sun50i-h616-x96-mate.dts | 26 +++++++++++++++++++ - 1 file changed, 26 insertions(+) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts -index e0e9288c4986..22ce0410798c 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts -+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts -@@ -24,6 +24,17 @@ chosen { - stdout-path = "serial0:115200n8"; - }; - -+ connector { -+ compatible = "hdmi-connector"; -+ type = "a"; -+ -+ port { -+ hdmi_con_in: endpoint { -+ remote-endpoint = <&hdmi_out_con>; -+ }; -+ }; -+ }; -+ - reg_vcc5v: vcc5v { - /* board wide 5V supply directly from the DC input */ - compatible = "regulator-fixed"; -@@ -43,6 +54,10 @@ &cpu0 { - cpu-supply = <®_dcdca>; - }; - -+&de { -+ status = "okay"; -+}; -+ - &ehci0 { - status = "okay"; - }; -@@ -74,6 +89,17 @@ rmii_phy: ethernet-phy@1 { - }; - }; - -+&hdmi { -+ hvcc-supply = <®_bldo1>; -+ status = "okay"; -+}; -+ -+&hdmi_out { -+ hdmi_out_con: endpoint { -+ remote-endpoint = <&hdmi_con_in>; -+ }; -+}; -+ - &ir { - status = "okay"; - }; --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-Report-page-flip-after-vsync-is-complete-not-in-the-m.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-Report-page-flip-after-vsync-is-complete-not-in-the-m.patch deleted file mode 100644 index 8ba0c5559..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-Report-page-flip-after-vsync-is-complete-not-in-the-m.patch +++ /dev/null @@ -1,111 +0,0 @@ -From c14e5e16fb3eb34fbfc87bd4aefd88981a9d767f Mon Sep 17 00:00:00 2001 -From: Ondrej Jirman -Date: Sat, 9 Aug 2025 14:47:14 +0200 -Subject: drm: sun4i: Report page flip after vsync is complete, not in the - middle - -See: https://xnux.eu/log/080.html - -Signed-off-by: Ondrej Jirman ---- - drivers/gpu/drm/sun4i/sun4i_tcon.c | 26 ++++++++++++++++++++++++-- - drivers/gpu/drm/sun4i/sun4i_tcon.h | 4 ++++ - 2 files changed, 28 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c -index 43cc8908a03f..2d0e689bf877 100644 ---- a/drivers/gpu/drm/sun4i/sun4i_tcon.c -+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c -@@ -240,6 +240,9 @@ void sun4i_tcon_enable_vblank(struct sun4i_tcon *tcon, bool enable) - if (enable) - val = mask; - -+ if (!enable && tcon->quirks->vblank_delay) -+ hrtimer_cancel(&tcon->flip_timer); -+ - regmap_update_bits(tcon->regs, SUN4I_TCON_GINT0_REG, mask, val); - } - EXPORT_SYMBOL(sun4i_tcon_enable_vblank); -@@ -850,6 +853,17 @@ static void sun4i_tcon_finish_page_flip(struct drm_device *dev, - spin_unlock_irqrestore(&dev->event_lock, flags); - } - -+static enum hrtimer_restart sun4i_tcon_flip_timer_cb(struct hrtimer *timer) -+{ -+ struct sun4i_tcon *tcon = container_of(timer, -+ struct sun4i_tcon, flip_timer); -+ -+ drm_crtc_handle_vblank(&tcon->crtc->crtc); -+ sun4i_tcon_finish_page_flip(tcon->drm, tcon->crtc); -+ -+ return HRTIMER_NORESTART; -+} -+ - static irqreturn_t sun4i_tcon_handler(int irq, void *private) - { - struct sun4i_tcon *tcon = private; -@@ -865,8 +879,12 @@ static irqreturn_t sun4i_tcon_handler(int irq, void *private) - SUN4I_TCON_GINT0_TCON0_TRI_FINISH_INT))) - return IRQ_NONE; - -- drm_crtc_handle_vblank(&scrtc->crtc); -- sun4i_tcon_finish_page_flip(drm, scrtc); -+ if (tcon->quirks->vblank_delay) { -+ hrtimer_start(&tcon->flip_timer, us_to_ktime(250), HRTIMER_MODE_REL); -+ } else { -+ drm_crtc_handle_vblank(&scrtc->crtc); -+ sun4i_tcon_finish_page_flip(drm, scrtc); -+ } - - /* Acknowledge the interrupt */ - regmap_update_bits(tcon->regs, SUN4I_TCON_GINT0_REG, -@@ -915,6 +933,9 @@ static int sun4i_tcon_init_irq(struct device *dev, - struct platform_device *pdev = to_platform_device(dev); - int irq, ret; - -+ hrtimer_setup(&tcon->flip_timer, sun4i_tcon_flip_timer_cb, -+ CLOCK_MONOTONIC, HRTIMER_MODE_REL); -+ - irq = platform_get_irq(pdev, 0); - if (irq < 0) - return irq; -@@ -1628,6 +1649,7 @@ static const struct sun4i_tcon_quirks sun50i_a64_lcd_quirks = { - .restores_rate = true, - .dclk_min_div = 1, - .setup_lvds_phy = sun6i_tcon_setup_lvds_phy, -+ .vblank_delay = true, - }; - - static const struct sun4i_tcon_quirks sun8i_a83t_lcd_quirks = { -diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h b/drivers/gpu/drm/sun4i/sun4i_tcon.h -index 729d64b78846..2bf91fb4872c 100644 ---- a/drivers/gpu/drm/sun4i/sun4i_tcon.h -+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h -@@ -12,6 +12,7 @@ - - #include - -+#include - #include - #include - #include -@@ -252,6 +253,8 @@ struct sun4i_tcon_quirks { - bool polarity_in_ch0; /* some tcon1 channels have polarity bits in tcon0 pol register */ - bool restores_rate; /* restores the initial rate when rate changes */ - u8 dclk_min_div; /* minimum divider for TCON0 DCLK */ -+ bool vblank_delay; /* delay page flip reporting for 250us (TCON report vblank -+ shortly before register flip) */ - - /* callback to handle tcon muxing options */ - int (*set_mux)(struct sun4i_tcon *, const struct drm_encoder *); -@@ -289,6 +292,7 @@ struct sun4i_tcon { - - /* Associated crtc */ - struct sun4i_crtc *crtc; -+ struct hrtimer flip_timer; - - int id; - --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-Change-CSC-argument.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-Change-CSC-argument.patch deleted file mode 100644 index 9125e4fa0..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-Change-CSC-argument.patch +++ /dev/null @@ -1,178 +0,0 @@ -From 54669ac67e47835b8cc3eea215026385a0050567 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:33 +1300 -Subject: drm: sun4i: de2/de3: Change CSC argument - -Currently, CSC module takes care only for converting YUV to RGB. -However, DE3 is more suited to work in YUV color space. Change CSC mode -argument to format type to be more neutral. New argument only tells -layer format type and doesn't imply output type. - -This commit doesn't make any functional change. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin -Reviewed-by: Andre Przywara ---- - drivers/gpu/drm/sun4i/sun8i_csc.c | 22 +++++++++++----------- - drivers/gpu/drm/sun4i/sun8i_csc.h | 10 +++++----- - drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 16 ++++++++-------- - 3 files changed, 24 insertions(+), 24 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index 58480d8e4f70..6ebd1c3aa3ab 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.c -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.c -@@ -108,7 +108,7 @@ static const u32 yuv2rgb_de3[2][3][12] = { - }; - - static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, -- enum sun8i_csc_mode mode, -+ enum format_type fmt_type, - enum drm_color_encoding encoding, - enum drm_color_range range) - { -@@ -118,12 +118,12 @@ static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, - - table = yuv2rgb[range][encoding]; - -- switch (mode) { -- case SUN8I_CSC_MODE_YUV2RGB: -+ switch (fmt_type) { -+ case FORMAT_TYPE_YUV: - base_reg = SUN8I_CSC_COEFF(base, 0); - regmap_bulk_write(map, base_reg, table, 12); - break; -- case SUN8I_CSC_MODE_YVU2RGB: -+ case FORMAT_TYPE_YVU: - for (i = 0; i < 12; i++) { - if ((i & 3) == 1) - base_reg = SUN8I_CSC_COEFF(base, i + 1); -@@ -141,7 +141,7 @@ static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, - } - - static void sun8i_de3_ccsc_set_coefficients(struct regmap *map, int layer, -- enum sun8i_csc_mode mode, -+ enum format_type fmt_type, - enum drm_color_encoding encoding, - enum drm_color_range range) - { -@@ -151,12 +151,12 @@ static void sun8i_de3_ccsc_set_coefficients(struct regmap *map, int layer, - - table = yuv2rgb_de3[range][encoding]; - -- switch (mode) { -- case SUN8I_CSC_MODE_YUV2RGB: -+ switch (fmt_type) { -+ case FORMAT_TYPE_YUV: - addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, layer, 0); - regmap_bulk_write(map, addr, table, 12); - break; -- case SUN8I_CSC_MODE_YVU2RGB: -+ case FORMAT_TYPE_YVU: - for (i = 0; i < 12; i++) { - if ((i & 3) == 1) - addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, -@@ -206,7 +206,7 @@ static void sun8i_de3_ccsc_enable(struct regmap *map, int layer, bool enable) - } - - void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, -- enum sun8i_csc_mode mode, -+ enum format_type fmt_type, - enum drm_color_encoding encoding, - enum drm_color_range range) - { -@@ -214,14 +214,14 @@ void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, - - if (mixer->cfg->is_de3) { - sun8i_de3_ccsc_set_coefficients(mixer->engine.regs, layer, -- mode, encoding, range); -+ fmt_type, encoding, range); - return; - } - - base = ccsc_base[mixer->cfg->ccsc][layer]; - - sun8i_csc_set_coefficients(mixer->engine.regs, base, -- mode, encoding, range); -+ fmt_type, encoding, range); - } - - void sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable) -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.h b/drivers/gpu/drm/sun4i/sun8i_csc.h -index 828b86fd0cab..7322770f39f0 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.h -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.h -@@ -22,14 +22,14 @@ struct sun8i_mixer; - - #define SUN8I_CSC_CTRL_EN BIT(0) - --enum sun8i_csc_mode { -- SUN8I_CSC_MODE_OFF, -- SUN8I_CSC_MODE_YUV2RGB, -- SUN8I_CSC_MODE_YVU2RGB, -+enum format_type { -+ FORMAT_TYPE_RGB, -+ FORMAT_TYPE_YUV, -+ FORMAT_TYPE_YVU, - }; - - void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, -- enum sun8i_csc_mode mode, -+ enum format_type fmt_type, - enum drm_color_encoding encoding, - enum drm_color_range range); - void sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable); -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index 9c09d9c08496..8a80934e928f 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -@@ -193,19 +193,19 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - return 0; - } - --static u32 sun8i_vi_layer_get_csc_mode(const struct drm_format_info *format) -+static u32 sun8i_vi_layer_get_format_type(const struct drm_format_info *format) - { - if (!format->is_yuv) -- return SUN8I_CSC_MODE_OFF; -+ return FORMAT_TYPE_RGB; - - switch (format->format) { - case DRM_FORMAT_YVU411: - case DRM_FORMAT_YVU420: - case DRM_FORMAT_YVU422: - case DRM_FORMAT_YVU444: -- return SUN8I_CSC_MODE_YVU2RGB; -+ return FORMAT_TYPE_YVU; - default: -- return SUN8I_CSC_MODE_YUV2RGB; -+ return FORMAT_TYPE_YUV; - } - } - -@@ -213,7 +213,7 @@ static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, - int overlay, struct drm_plane *plane) - { - struct drm_plane_state *state = plane->state; -- u32 val, ch_base, csc_mode, hw_fmt; -+ u32 val, ch_base, fmt_type, hw_fmt; - const struct drm_format_info *fmt; - int ret; - -@@ -231,9 +231,9 @@ static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, - SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, overlay), - SUN8I_MIXER_CHAN_VI_LAYER_ATTR_FBFMT_MASK, val); - -- csc_mode = sun8i_vi_layer_get_csc_mode(fmt); -- if (csc_mode != SUN8I_CSC_MODE_OFF) { -- sun8i_csc_set_ccsc_coefficients(mixer, channel, csc_mode, -+ fmt_type = sun8i_vi_layer_get_format_type(fmt); -+ if (fmt_type != FORMAT_TYPE_RGB) { -+ sun8i_csc_set_ccsc_coefficients(mixer, channel, fmt_type, - state->color_encoding, - state->color_range); - sun8i_csc_enable_ccsc(mixer, channel, true); --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-add-generic-blender-register-reference-functi.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-add-generic-blender-register-reference-functi.patch deleted file mode 100644 index c5a24b0f1..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-add-generic-blender-register-reference-functi.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 7e2082f55e6595ca976245d7a7ac1d89d5b1258b Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:48 +1300 -Subject: drm: sun4i: de2/de3: add generic blender register reference function - -The DE2 and DE3 engines have a blender register range within the -mixer engine register map, whereas the DE33 separates this out into -a separate display group. - -Prepare for this by adding a function to look the blender reference up, -with a subsequent patch to add a conditional based on the DE type. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_mixer.h | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h -index 258f528202c1..ecba096c553b 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.h -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h -@@ -227,6 +227,12 @@ sun8i_blender_base(struct sun8i_mixer *mixer) - return mixer->cfg->de_type == sun8i_mixer_de3 ? DE3_BLD_BASE : DE2_BLD_BASE; - } - -+static inline struct regmap * -+sun8i_blender_regmap(struct sun8i_mixer *mixer) -+{ -+ return mixer->engine.regs; -+} -+ - static inline u32 - sun8i_channel_base(struct sun8i_mixer *mixer, int channel) - { --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-add-mixer-version-enum.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-add-mixer-version-enum.patch deleted file mode 100644 index 99815249e..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-add-mixer-version-enum.patch +++ /dev/null @@ -1,257 +0,0 @@ -From 90f292bafa6d6198248b7349cd9945a1258ceaac Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:45 +1300 -Subject: drm: sun4i: de2/de3: add mixer version enum - -The Allwinner DE2 and DE3 display engine mixers are currently identified -by a simple boolean flag. This will not scale to support additional DE -variants. - -Convert the boolean flag to an enum. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin -Reviewed-by: Andre Przywara ---- - drivers/gpu/drm/sun4i/sun8i_csc.c | 2 +- - drivers/gpu/drm/sun4i/sun8i_mixer.c | 14 ++++++++++++-- - drivers/gpu/drm/sun4i/sun8i_mixer.h | 11 ++++++++--- - drivers/gpu/drm/sun4i/sun8i_ui_scaler.c | 2 +- - drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 8 ++++---- - drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 4 ++-- - 6 files changed, 28 insertions(+), 13 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index e12a81fa9108..2d5a2cf7cba2 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.c -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.c -@@ -365,7 +365,7 @@ void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, - { - u32 base; - -- if (mixer->cfg->is_de3) { -+ if (mixer->cfg->de_type == sun8i_mixer_de3) { - sun8i_de3_ccsc_setup(&mixer->engine, layer, - fmt_type, encoding, range); - return; -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index 1b498568e7df..35b1f3d50504 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -624,7 +624,7 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - - if (!mixer->hw_preconfigured) { - /* Reset registers and disable unused sub-engines */ -- if (mixer->cfg->is_de3) { -+ if (mixer->cfg->de_type == sun8i_mixer_de3) { - for (i = 0; i < DE3_MIXER_UNIT_SIZE; i += 4) - regmap_write(mixer->engine.regs, i, 0); - -@@ -727,6 +727,7 @@ static void sun8i_mixer_remove(struct platform_device *pdev) - - static const struct sun8i_mixer_cfg sun8i_a83t_mixer0_cfg = { - .ccsc = CCSC_MIXER0_LAYOUT, -+ .de_type = sun8i_mixer_de2, - .scaler_mask = 0xf, - .scanline_yuv = 2048, - .ui_num = 3, -@@ -735,6 +736,7 @@ static const struct sun8i_mixer_cfg sun8i_a83t_mixer0_cfg = { - - static const struct sun8i_mixer_cfg sun8i_a83t_mixer1_cfg = { - .ccsc = CCSC_MIXER1_LAYOUT, -+ .de_type = sun8i_mixer_de2, - .scaler_mask = 0x3, - .scanline_yuv = 2048, - .ui_num = 1, -@@ -743,6 +745,7 @@ static const struct sun8i_mixer_cfg sun8i_a83t_mixer1_cfg = { - - static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = { - .ccsc = CCSC_MIXER0_LAYOUT, -+ .de_type = sun8i_mixer_de2, - .mod_rate = 432000000, - .scaler_mask = 0xf, - .scanline_yuv = 2048, -@@ -752,6 +755,7 @@ static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = { - - static const struct sun8i_mixer_cfg sun8i_r40_mixer0_cfg = { - .ccsc = CCSC_MIXER0_LAYOUT, -+ .de_type = sun8i_mixer_de2, - .mod_rate = 297000000, - .scaler_mask = 0xf, - .scanline_yuv = 2048, -@@ -761,6 +765,7 @@ static const struct sun8i_mixer_cfg sun8i_r40_mixer0_cfg = { - - static const struct sun8i_mixer_cfg sun8i_r40_mixer1_cfg = { - .ccsc = CCSC_MIXER1_LAYOUT, -+ .de_type = sun8i_mixer_de2, - .mod_rate = 297000000, - .scaler_mask = 0x3, - .scanline_yuv = 2048, -@@ -769,6 +774,7 @@ static const struct sun8i_mixer_cfg sun8i_r40_mixer1_cfg = { - }; - - static const struct sun8i_mixer_cfg sun8i_v3s_mixer_cfg = { -+ .de_type = sun8i_mixer_de2, - .vi_num = 2, - .ui_num = 1, - .scaler_mask = 0x3, -@@ -779,6 +785,7 @@ static const struct sun8i_mixer_cfg sun8i_v3s_mixer_cfg = { - - static const struct sun8i_mixer_cfg sun20i_d1_mixer0_cfg = { - .ccsc = CCSC_D1_MIXER0_LAYOUT, -+ .de_type = sun8i_mixer_de2, - .mod_rate = 297000000, - .scaler_mask = 0x3, - .scanline_yuv = 2048, -@@ -788,6 +795,7 @@ static const struct sun8i_mixer_cfg sun20i_d1_mixer0_cfg = { - - static const struct sun8i_mixer_cfg sun20i_d1_mixer1_cfg = { - .ccsc = CCSC_MIXER1_LAYOUT, -+ .de_type = sun8i_mixer_de2, - .mod_rate = 297000000, - .scaler_mask = 0x1, - .scanline_yuv = 1024, -@@ -797,6 +805,7 @@ static const struct sun8i_mixer_cfg sun20i_d1_mixer1_cfg = { - - static const struct sun8i_mixer_cfg sun50i_a64_mixer0_cfg = { - .ccsc = CCSC_MIXER0_LAYOUT, -+ .de_type = sun8i_mixer_de2, - .mod_rate = 297000000, - .scaler_mask = 0xf, - .scanline_yuv = 4096, -@@ -806,6 +815,7 @@ static const struct sun8i_mixer_cfg sun50i_a64_mixer0_cfg = { - - static const struct sun8i_mixer_cfg sun50i_a64_mixer1_cfg = { - .ccsc = CCSC_MIXER1_LAYOUT, -+ .de_type = sun8i_mixer_de2, - .mod_rate = 297000000, - .scaler_mask = 0x3, - .scanline_yuv = 2048, -@@ -815,7 +825,7 @@ static const struct sun8i_mixer_cfg sun50i_a64_mixer1_cfg = { - - static const struct sun8i_mixer_cfg sun50i_h6_mixer0_cfg = { - .ccsc = CCSC_MIXER0_LAYOUT, -- .is_de3 = true, -+ .de_type = sun8i_mixer_de3, - .has_formatter = 1, - .mod_rate = 600000000, - .scaler_mask = 0xf, -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h -index 860a2f2cec24..258f528202c1 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.h -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h -@@ -151,6 +151,11 @@ enum { - CCSC_D1_MIXER0_LAYOUT, - }; - -+enum sun8i_mixer_type { -+ sun8i_mixer_de2, -+ sun8i_mixer_de3, -+}; -+ - /** - * struct sun8i_mixer_cfg - mixer HW configuration - * @vi_num: number of VI channels -@@ -172,7 +177,7 @@ struct sun8i_mixer_cfg { - int scaler_mask; - int ccsc; - unsigned long mod_rate; -- unsigned int is_de3 : 1; -+ unsigned int de_type; - unsigned int has_formatter : 1; - unsigned int scanline_yuv; - }; -@@ -219,13 +224,13 @@ engine_to_sun8i_mixer(struct sunxi_engine *engine) - static inline u32 - sun8i_blender_base(struct sun8i_mixer *mixer) - { -- return mixer->cfg->is_de3 ? DE3_BLD_BASE : DE2_BLD_BASE; -+ return mixer->cfg->de_type == sun8i_mixer_de3 ? DE3_BLD_BASE : DE2_BLD_BASE; - } - - static inline u32 - sun8i_channel_base(struct sun8i_mixer *mixer, int channel) - { -- if (mixer->cfg->is_de3) -+ if (mixer->cfg->de_type == sun8i_mixer_de3) - return DE3_CH_BASE + channel * DE3_CH_SIZE; - else - return DE2_CH_BASE + channel * DE2_CH_SIZE; -diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c -index ae0806bccac7..504ffa0971a4 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c -+++ b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c -@@ -93,7 +93,7 @@ static u32 sun8i_ui_scaler_base(struct sun8i_mixer *mixer, int channel) - { - int vi_num = mixer->cfg->vi_num; - -- if (mixer->cfg->is_de3) -+ if (mixer->cfg->de_type == sun8i_mixer_de3) - return DE3_VI_SCALER_UNIT_BASE + - DE3_VI_SCALER_UNIT_SIZE * vi_num + - DE3_UI_SCALER_UNIT_SIZE * (channel - vi_num); -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index 3c657b069d1f..4647e9bcccaa 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -@@ -25,7 +25,7 @@ static void sun8i_vi_layer_update_alpha(struct sun8i_mixer *mixer, int channel, - - ch_base = sun8i_channel_base(mixer, channel); - -- if (mixer->cfg->is_de3) { -+ if (mixer->cfg->de_type >= sun8i_mixer_de3) { - mask = SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MASK | - SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MODE_MASK; - val = SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA -@@ -483,7 +483,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, - layer->channel = index; - layer->overlay = 0; - -- if (mixer->cfg->is_de3) { -+ if (mixer->cfg->de_type >= sun8i_mixer_de3) { - formats = sun8i_vi_layer_de3_formats; - format_count = ARRAY_SIZE(sun8i_vi_layer_de3_formats); - } else { -@@ -507,7 +507,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, - - plane_cnt = mixer->cfg->ui_num + mixer->cfg->vi_num; - -- if (mixer->cfg->vi_num == 1 || mixer->cfg->is_de3) { -+ if (mixer->cfg->vi_num == 1 || mixer->cfg->de_type >= sun8i_mixer_de3) { - ret = drm_plane_create_alpha_property(&layer->plane); - if (ret) { - dev_err(drm->dev, "Couldn't add alpha property\n"); -@@ -524,7 +524,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, - - supported_encodings = BIT(DRM_COLOR_YCBCR_BT601) | - BIT(DRM_COLOR_YCBCR_BT709); -- if (mixer->cfg->is_de3) -+ if (mixer->cfg->de_type >= sun8i_mixer_de3) - supported_encodings |= BIT(DRM_COLOR_YCBCR_BT2020); - - supported_ranges = BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) | -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -index 2e49a6e5f1f1..aa346c3beb30 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -@@ -835,7 +835,7 @@ static const u32 bicubic4coefftab32[480] = { - - static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel) - { -- if (mixer->cfg->is_de3) -+ if (mixer->cfg->de_type == sun8i_mixer_de3) - return DE3_VI_SCALER_UNIT_BASE + - DE3_VI_SCALER_UNIT_SIZE * channel; - else -@@ -982,7 +982,7 @@ void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, - cvphase = vphase; - } - -- if (mixer->cfg->is_de3) { -+ if (mixer->cfg->de_type >= sun8i_mixer_de3) { - u32 val; - - if (format->hsub == 1 && format->vsub == 1) --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch deleted file mode 100644 index 96847a05d..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 000c586a34ad82e4673e6dfda5457147b0d85606 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:35 +1300 -Subject: drm: sun4i: de2/de3: call csc setup also for UI layer - -Currently, only VI layer calls CSC setup function. This comes from DE2 -limitation, which doesn't have CSC unit for UI layers. However, DE3 has -separate CSC units for each layer. This allows display pipeline to make -output signal in different color spaces. To support both use cases, add -a call to CSC setup function also in UI layer code. For DE2, this will -be a no-op, but it will allow DE3 to output signal in multiple formats. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_csc.c | 8 +++++--- - drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 6 ++++++ - 2 files changed, 11 insertions(+), 3 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index 0dcbc0866ae8..68d955c63b05 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.c -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.c -@@ -209,8 +209,10 @@ void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, - return; - } - -- base = ccsc_base[mixer->cfg->ccsc][layer]; -+ if (layer < mixer->cfg->vi_num) { -+ base = ccsc_base[mixer->cfg->ccsc][layer]; - -- sun8i_csc_setup(mixer->engine.regs, base, -- fmt_type, encoding, range); -+ sun8i_csc_setup(mixer->engine.regs, base, -+ fmt_type, encoding, range); -+ } - } -diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -index b90e5edef4e8..aa987bca1dbb 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -@@ -20,6 +20,7 @@ - #include - #include - -+#include "sun8i_csc.h" - #include "sun8i_mixer.h" - #include "sun8i_ui_layer.h" - #include "sun8i_ui_scaler.h" -@@ -135,6 +136,11 @@ static int sun8i_ui_layer_update_formats(struct sun8i_mixer *mixer, int channel, - SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, overlay), - SUN8I_MIXER_CHAN_UI_LAYER_ATTR_FBFMT_MASK, val); - -+ /* Note: encoding and range arguments are ignored for RGB */ -+ sun8i_csc_set_ccsc(mixer, channel, FORMAT_TYPE_RGB, -+ DRM_COLOR_YCBCR_BT601, -+ DRM_COLOR_YCBCR_FULL_RANGE); -+ - return 0; - } - --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-refactor-mixer-initialisation.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-refactor-mixer-initialisation.patch deleted file mode 100644 index b317c8fdb..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-refactor-mixer-initialisation.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 4042b1c4ed4e1cfe9170cbb57d49e13f419afa3d Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:46 +1300 -Subject: drm: sun4i: de2/de3: refactor mixer initialisation - -Now that the DE variant can be selected by enum, take the oppportunity -to factor out some common initialisation code to a separate function. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin -Reviewed-by: Andre Przywara ---- - drivers/gpu/drm/sun4i/sun8i_mixer.c | 70 ++++++++++++++++------------- - 1 file changed, 38 insertions(+), 32 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index 35b1f3d50504..6d26381a2f2b 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -498,6 +498,42 @@ static int sun8i_mixer_of_get_id(struct device_node *node) - return of_ep.id; - } - -+static void sun8i_mixer_init(struct sun8i_mixer *mixer) -+{ -+ unsigned int base = sun8i_blender_base(mixer); -+ int plane_cnt, i; -+ -+ if (!mixer->hw_preconfigured) { -+ /* Enable the mixer */ -+ regmap_write(mixer->engine.regs, SUN8I_MIXER_GLOBAL_CTL, -+ SUN8I_MIXER_GLOBAL_CTL_RT_EN); -+ } -+ -+ /* Set background color to black */ -+ regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_BKCOLOR(base), -+ SUN8I_MIXER_BLEND_COLOR_BLACK); -+ -+ /* -+ * Set fill color of bottom plane to black. Generally not needed -+ * except when VI plane is at bottom (zpos = 0) and enabled. -+ */ -+ regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), -+ SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); -+ regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ATTR_FCOLOR(base, 0), -+ SUN8I_MIXER_BLEND_COLOR_BLACK); -+ -+ plane_cnt = mixer->cfg->vi_num + mixer->cfg->ui_num; -+ for (i = 0; i < plane_cnt; i++) -+ regmap_write(mixer->engine.regs, -+ SUN8I_MIXER_BLEND_MODE(base, i), -+ SUN8I_MIXER_BLEND_MODE_DEF); -+ -+ if (!mixer->hw_preconfigured) { -+ regmap_update_bits(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), -+ SUN8I_MIXER_BLEND_PIPE_CTL_EN_MSK, 0); -+ } -+} -+ - static int sun8i_mixer_bind(struct device *dev, struct device *master, - void *data) - { -@@ -506,8 +542,6 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - struct sun4i_drv *drv = drm->dev_private; - struct sun8i_mixer *mixer; - void __iomem *regs; -- unsigned int base; -- int plane_cnt; - int i, ret; - - /* -@@ -620,8 +654,6 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - - list_add_tail(&mixer->engine.list, &drv->engine_list); - -- base = sun8i_blender_base(mixer); -- - if (!mixer->hw_preconfigured) { - /* Reset registers and disable unused sub-engines */ - if (mixer->cfg->de_type == sun8i_mixer_de3) { -@@ -638,7 +670,7 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - regmap_write(mixer->engine.regs, SUN50I_MIXER_FMT_EN, 0); - regmap_write(mixer->engine.regs, SUN50I_MIXER_CDC0_EN, 0); - regmap_write(mixer->engine.regs, SUN50I_MIXER_CDC1_EN, 0); -- } else { -+ } else if (mixer->cfg->de_type == sun8i_mixer_de2) { - for (i = 0; i < DE2_MIXER_UNIT_SIZE; i += 4) - regmap_write(mixer->engine.regs, i, 0); - -@@ -651,35 +683,9 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - regmap_write(mixer->engine.regs, SUN8I_MIXER_DCSC_EN, 0); - } - -- /* Enable the mixer */ -- regmap_write(mixer->engine.regs, SUN8I_MIXER_GLOBAL_CTL, -- SUN8I_MIXER_GLOBAL_CTL_RT_EN); - } /* hw_preconfigured */ - -- /* Set background color to black */ -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_BKCOLOR(base), -- SUN8I_MIXER_BLEND_COLOR_BLACK); -- -- /* -- * Set fill color of bottom plane to black. Generally not needed -- * except when VI plane is at bottom (zpos = 0) and enabled. -- */ -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), -- SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ATTR_FCOLOR(base, 0), -- SUN8I_MIXER_BLEND_COLOR_BLACK); -- -- plane_cnt = mixer->cfg->vi_num + mixer->cfg->ui_num; -- for (i = 0; i < plane_cnt; i++) -- regmap_write(mixer->engine.regs, -- SUN8I_MIXER_BLEND_MODE(base, i), -- SUN8I_MIXER_BLEND_MODE_DEF); -- -- if (!mixer->hw_preconfigured) { -- regmap_update_bits(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), -- SUN8I_MIXER_BLEND_PIPE_CTL_EN_MSK, 0); -- } -- -+ sun8i_mixer_init(mixer); - return 0; - - err_disable_bus_clk: --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-use-generic-register-reference-function-for-l.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-use-generic-register-reference-function-for-l.patch deleted file mode 100644 index 6888aa39d..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-use-generic-register-reference-function-for-l.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 91877bc54df84b7fabe8265b152ac38032193403 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:49 +1300 -Subject: drm: sun4i: de2/de3: use generic register reference function for - layer configuration - -Use the new blender register lookup function where required in the layer -commit and update code. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_mixer.c | 5 +++-- - drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 7 +++++-- - drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 6 ++++-- - 3 files changed, 12 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index 0419859a9f89..a319db11cc68 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -280,6 +280,7 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, - { - struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); - u32 bld_base = sun8i_blender_base(mixer); -+ struct regmap *bld_regs = sun8i_blender_regmap(mixer); - struct drm_plane_state *plane_state; - struct drm_plane *plane; - u32 route = 0, pipe_en = 0; -@@ -346,8 +347,8 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, - pipe_en |= SUN8I_MIXER_BLEND_PIPE_CTL_EN(zpos); - } - -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ROUTE(bld_base), route); -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(bld_base), -+ regmap_write(bld_regs, SUN8I_MIXER_BLEND_ROUTE(bld_base), route); -+ regmap_write(bld_regs, SUN8I_MIXER_BLEND_PIPE_CTL(bld_base), - pipe_en | SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); - - regmap_write(engine->regs, SUN8I_MIXER_GLOBAL_DBUFF, -diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -index 3840242dfaf3..70218b7132ad 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -@@ -24,6 +24,7 @@ - #include "sun8i_mixer.h" - #include "sun8i_ui_layer.h" - #include "sun8i_ui_scaler.h" -+#include "sun8i_vi_scaler.h" - - static void sun8i_ui_layer_update_alpha(struct sun8i_mixer *mixer, int channel, - int overlay, struct drm_plane *plane) -@@ -52,6 +53,7 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, - { - struct drm_plane_state *state = plane->state; - u32 src_w, src_h, dst_w, dst_h; -+ struct regmap *bld_regs; - u32 bld_base, ch_base; - u32 outsize, insize; - u32 hphase, vphase; -@@ -60,6 +62,7 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, - channel, overlay); - - bld_base = sun8i_blender_base(mixer); -+ bld_regs = sun8i_blender_regmap(mixer); - ch_base = sun8i_channel_base(mixer, channel); - - src_w = drm_rect_width(&state->src) >> 16; -@@ -104,10 +107,10 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, - DRM_DEBUG_DRIVER("Layer destination coordinates X: %d Y: %d\n", - state->dst.x1, state->dst.y1); - DRM_DEBUG_DRIVER("Layer destination size W: %d H: %d\n", dst_w, dst_h); -- regmap_write(mixer->engine.regs, -+ regmap_write(bld_regs, - SUN8I_MIXER_BLEND_ATTR_COORD(bld_base, zpos), - SUN8I_MIXER_COORD(state->dst.x1, state->dst.y1)); -- regmap_write(mixer->engine.regs, -+ regmap_write(bld_regs, - SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos), - outsize); - -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index e348fd0a3d81..d19349eecc9d 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -@@ -55,6 +55,7 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - struct drm_plane_state *state = plane->state; - const struct drm_format_info *format = state->fb->format; - u32 src_w, src_h, dst_w, dst_h; -+ struct regmap *bld_regs; - u32 bld_base, ch_base; - u32 outsize, insize; - u32 hphase, vphase; -@@ -66,6 +67,7 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - channel, overlay); - - bld_base = sun8i_blender_base(mixer); -+ bld_regs = sun8i_blender_regmap(mixer); - ch_base = sun8i_channel_base(mixer, channel); - - src_w = drm_rect_width(&state->src) >> 16; -@@ -182,10 +184,10 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - DRM_DEBUG_DRIVER("Layer destination coordinates X: %d Y: %d\n", - state->dst.x1, state->dst.y1); - DRM_DEBUG_DRIVER("Layer destination size W: %d H: %d\n", dst_w, dst_h); -- regmap_write(mixer->engine.regs, -+ regmap_write(bld_regs, - SUN8I_MIXER_BLEND_ATTR_COORD(bld_base, zpos), - SUN8I_MIXER_COORD(state->dst.x1, state->dst.y1)); -- regmap_write(mixer->engine.regs, -+ regmap_write(bld_regs, - SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos), - outsize); - --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-Add-YUV-formatter-module.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-Add-YUV-formatter-module.patch deleted file mode 100644 index 14f17b6d5..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-Add-YUV-formatter-module.patch +++ /dev/null @@ -1,164 +0,0 @@ -From 8bdcc131fedb576a8db65bb6e87ca8742660add0 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:37 +1300 -Subject: drm: sun4i: de3: Add YUV formatter module - -The display engine formatter (FMT) module is present in the DE3 engine -and provides YUV444 to YUV422/YUV420 conversion, format re-mapping and -color depth conversion. - -Add support for this module. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/Makefile | 3 +- - drivers/gpu/drm/sun4i/sun50i_fmt.c | 82 ++++++++++++++++++++++++++++++ - drivers/gpu/drm/sun4i/sun50i_fmt.h | 32 ++++++++++++ - 3 files changed, 116 insertions(+), 1 deletion(-) - create mode 100644 drivers/gpu/drm/sun4i/sun50i_fmt.c - create mode 100644 drivers/gpu/drm/sun4i/sun50i_fmt.h - -diff --git a/drivers/gpu/drm/sun4i/Makefile b/drivers/gpu/drm/sun4i/Makefile -index bad7497a0d11..3f516329f51e 100644 ---- a/drivers/gpu/drm/sun4i/Makefile -+++ b/drivers/gpu/drm/sun4i/Makefile -@@ -16,7 +16,8 @@ sun8i-drm-hdmi-y += sun8i_hdmi_phy_clk.o - - sun8i-mixer-y += sun8i_mixer.o sun8i_ui_layer.o \ - sun8i_vi_layer.o sun8i_ui_scaler.o \ -- sun8i_vi_scaler.o sun8i_csc.o -+ sun8i_vi_scaler.o sun8i_csc.o \ -+ sun50i_fmt.o - - sun4i-tcon-y += sun4i_crtc.o - sun4i-tcon-y += sun4i_tcon_dclk.o -diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.c b/drivers/gpu/drm/sun4i/sun50i_fmt.c -new file mode 100644 -index 000000000000..050a8716ae86 ---- /dev/null -+++ b/drivers/gpu/drm/sun4i/sun50i_fmt.c -@@ -0,0 +1,82 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later -+/* -+ * Copyright (C) Jernej Skrabec -+ */ -+ -+#include -+ -+#include "sun50i_fmt.h" -+ -+static bool sun50i_fmt_is_10bit(u32 format) -+{ -+ switch (format) { -+ case MEDIA_BUS_FMT_RGB101010_1X30: -+ case MEDIA_BUS_FMT_YUV10_1X30: -+ case MEDIA_BUS_FMT_UYYVYY10_0_5X30: -+ case MEDIA_BUS_FMT_UYVY10_1X20: -+ return true; -+ default: -+ return false; -+ } -+} -+ -+static u32 sun50i_fmt_get_colorspace(u32 format) -+{ -+ switch (format) { -+ case MEDIA_BUS_FMT_UYYVYY8_0_5X24: -+ case MEDIA_BUS_FMT_UYYVYY10_0_5X30: -+ return SUN50I_FMT_CS_YUV420; -+ case MEDIA_BUS_FMT_UYVY8_1X16: -+ case MEDIA_BUS_FMT_UYVY10_1X20: -+ return SUN50I_FMT_CS_YUV422; -+ default: -+ return SUN50I_FMT_CS_YUV444RGB; -+ } -+} -+ -+static void sun50i_fmt_de3_limits(u32 *limits, u32 colorspace, bool bit10) -+{ -+ if (colorspace != SUN50I_FMT_CS_YUV444RGB) { -+ limits[0] = SUN50I_FMT_LIMIT(64, 940); -+ limits[1] = SUN50I_FMT_LIMIT(64, 960); -+ limits[2] = SUN50I_FMT_LIMIT(64, 960); -+ } else if (bit10) { -+ limits[0] = SUN50I_FMT_LIMIT(0, 1023); -+ limits[1] = SUN50I_FMT_LIMIT(0, 1023); -+ limits[2] = SUN50I_FMT_LIMIT(0, 1023); -+ } else { -+ limits[0] = SUN50I_FMT_LIMIT(0, 1021); -+ limits[1] = SUN50I_FMT_LIMIT(0, 1021); -+ limits[2] = SUN50I_FMT_LIMIT(0, 1021); -+ } -+} -+ -+void sun50i_fmt_setup(struct sun8i_mixer *mixer, u16 width, -+ u16 height, u32 format) -+{ -+ u32 colorspace, limit[3], base; -+ struct regmap *regs; -+ bool bit10; -+ -+ colorspace = sun50i_fmt_get_colorspace(format); -+ bit10 = sun50i_fmt_is_10bit(format); -+ base = SUN50I_FMT_DE3; -+ regs = sun8i_blender_regmap(mixer); -+ -+ sun50i_fmt_de3_limits(limit, colorspace, bit10); -+ -+ regmap_write(regs, SUN50I_FMT_CTRL(base), 0); -+ -+ regmap_write(regs, SUN50I_FMT_SIZE(base), -+ SUN8I_MIXER_SIZE(width, height)); -+ regmap_write(regs, SUN50I_FMT_SWAP(base), 0); -+ regmap_write(regs, SUN50I_FMT_DEPTH(base), bit10); -+ regmap_write(regs, SUN50I_FMT_FORMAT(base), colorspace); -+ regmap_write(regs, SUN50I_FMT_COEF(base), 0); -+ -+ regmap_write(regs, SUN50I_FMT_LMT_Y(base), limit[0]); -+ regmap_write(regs, SUN50I_FMT_LMT_C0(base), limit[1]); -+ regmap_write(regs, SUN50I_FMT_LMT_C1(base), limit[2]); -+ -+ regmap_write(regs, SUN50I_FMT_CTRL(base), 1); -+} -diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.h b/drivers/gpu/drm/sun4i/sun50i_fmt.h -new file mode 100644 -index 000000000000..4127f7206aad ---- /dev/null -+++ b/drivers/gpu/drm/sun4i/sun50i_fmt.h -@@ -0,0 +1,32 @@ -+/* SPDX-License-Identifier: GPL-2.0-or-later */ -+/* -+ * Copyright (C) Jernej Skrabec -+ */ -+ -+#ifndef _SUN50I_FMT_H_ -+#define _SUN50I_FMT_H_ -+ -+#include "sun8i_mixer.h" -+ -+#define SUN50I_FMT_DE3 0xa8000 -+ -+#define SUN50I_FMT_CTRL(base) ((base) + 0x00) -+#define SUN50I_FMT_SIZE(base) ((base) + 0x04) -+#define SUN50I_FMT_SWAP(base) ((base) + 0x08) -+#define SUN50I_FMT_DEPTH(base) ((base) + 0x0c) -+#define SUN50I_FMT_FORMAT(base) ((base) + 0x10) -+#define SUN50I_FMT_COEF(base) ((base) + 0x14) -+#define SUN50I_FMT_LMT_Y(base) ((base) + 0x20) -+#define SUN50I_FMT_LMT_C0(base) ((base) + 0x24) -+#define SUN50I_FMT_LMT_C1(base) ((base) + 0x28) -+ -+#define SUN50I_FMT_LIMIT(low, high) (((high) << 16) | (low)) -+ -+#define SUN50I_FMT_CS_YUV444RGB 0 -+#define SUN50I_FMT_CS_YUV422 1 -+#define SUN50I_FMT_CS_YUV420 2 -+ -+void sun50i_fmt_setup(struct sun8i_mixer *mixer, u16 width, -+ u16 height, u32 format); -+ -+#endif --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-Implement-AFBC-support.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-Implement-AFBC-support.patch deleted file mode 100644 index e4d21564c..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-Implement-AFBC-support.patch +++ /dev/null @@ -1,569 +0,0 @@ -From 0788787d1240dba85ecbbdb559cb46d413975656 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:50 +1300 -Subject: drm: sun4i: de3: Implement AFBC support - -Buffers, compressed with AFBC, are supported by the DE3 and above, and -are generally more efficient for memory transfers. Add support for them. - -Currently it's implemented only for VI layers, but vendor code and -documentation suggest UI layers can have them too. However, I haven't -observed any SoC with such feature. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/Makefile | 2 +- - drivers/gpu/drm/sun4i/sun50i_afbc.c | 250 +++++++++++++++++++++++++ - drivers/gpu/drm/sun4i/sun50i_afbc.h | 87 +++++++++ - drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 84 +++++++-- - 4 files changed, 409 insertions(+), 14 deletions(-) - create mode 100644 drivers/gpu/drm/sun4i/sun50i_afbc.c - create mode 100644 drivers/gpu/drm/sun4i/sun50i_afbc.h - -diff --git a/drivers/gpu/drm/sun4i/Makefile b/drivers/gpu/drm/sun4i/Makefile -index 3f516329f51e..78290f1660fb 100644 ---- a/drivers/gpu/drm/sun4i/Makefile -+++ b/drivers/gpu/drm/sun4i/Makefile -@@ -17,7 +17,7 @@ sun8i-drm-hdmi-y += sun8i_hdmi_phy_clk.o - sun8i-mixer-y += sun8i_mixer.o sun8i_ui_layer.o \ - sun8i_vi_layer.o sun8i_ui_scaler.o \ - sun8i_vi_scaler.o sun8i_csc.o \ -- sun50i_fmt.o -+ sun50i_fmt.o sun50i_afbc.o - - sun4i-tcon-y += sun4i_crtc.o - sun4i-tcon-y += sun4i_tcon_dclk.o -diff --git a/drivers/gpu/drm/sun4i/sun50i_afbc.c b/drivers/gpu/drm/sun4i/sun50i_afbc.c -new file mode 100644 -index 000000000000..b55e1c553371 ---- /dev/null -+++ b/drivers/gpu/drm/sun4i/sun50i_afbc.c -@@ -0,0 +1,250 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later -+/* -+ * Copyright (C) Jernej Skrabec -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "sun50i_afbc.h" -+#include "sun8i_mixer.h" -+ -+static u32 sun50i_afbc_get_base(struct sun8i_mixer *mixer, unsigned int channel) -+{ -+ u32 base = sun8i_channel_base(mixer, channel); -+ -+ if (mixer->cfg->de_type == sun8i_mixer_de3) -+ return base + SUN50I_AFBC_CH_OFFSET; -+ -+ return base + 0x4000; -+} -+ -+bool sun50i_afbc_format_mod_supported(struct sun8i_mixer *mixer, -+ u32 format, u64 modifier) -+{ -+ u64 mode; -+ -+ if (modifier == DRM_FORMAT_MOD_INVALID) -+ return false; -+ -+ if (modifier == DRM_FORMAT_MOD_LINEAR) { -+ if (format == DRM_FORMAT_YUV420_8BIT || -+ format == DRM_FORMAT_YUV420_10BIT || -+ format == DRM_FORMAT_Y210) -+ return false; -+ return true; -+ } -+ -+ if (mixer->cfg->de_type == sun8i_mixer_de2) -+ return false; -+ -+ mode = AFBC_FORMAT_MOD_BLOCK_SIZE_16x16 | -+ AFBC_FORMAT_MOD_SPARSE | -+ AFBC_FORMAT_MOD_SPLIT; -+ -+ switch (format) { -+ case DRM_FORMAT_RGBA8888: -+ case DRM_FORMAT_RGB888: -+ case DRM_FORMAT_RGB565: -+ case DRM_FORMAT_RGBA4444: -+ case DRM_FORMAT_RGBA5551: -+ case DRM_FORMAT_RGBA1010102: -+ mode |= AFBC_FORMAT_MOD_YTR; -+ break; -+ case DRM_FORMAT_YUYV: -+ case DRM_FORMAT_Y210: -+ case DRM_FORMAT_YUV420_8BIT: -+ case DRM_FORMAT_YUV420_10BIT: -+ break; -+ default: -+ return false; -+ } -+ -+ return modifier == DRM_FORMAT_MOD_ARM_AFBC(mode); -+} -+ -+void sun50i_afbc_atomic_update(struct sun8i_mixer *mixer, unsigned int channel, -+ struct drm_plane *plane) -+{ -+ struct drm_plane_state *state = plane->state; -+ struct drm_framebuffer *fb = state->fb; -+ const struct drm_format_info *format = fb->format; -+ struct drm_gem_dma_object *gem; -+ u32 base, val, src_w, src_h; -+ u32 def_color0, def_color1; -+ struct regmap *regs; -+ dma_addr_t dma_addr; -+ -+ base = sun50i_afbc_get_base(mixer, channel); -+ regs = mixer->engine.regs; -+ -+ src_w = drm_rect_width(&state->src) >> 16; -+ src_h = drm_rect_height(&state->src) >> 16; -+ -+ val = SUN50I_FBD_SIZE_HEIGHT(src_h); -+ val |= SUN50I_FBD_SIZE_WIDTH(src_w); -+ regmap_write(regs, SUN50I_FBD_SIZE(base), val); -+ -+ val = SUN50I_FBD_BLK_SIZE_HEIGHT(DIV_ROUND_UP(src_h, 16)); -+ val = SUN50I_FBD_BLK_SIZE_WIDTH(DIV_ROUND_UP(src_w, 16)); -+ regmap_write(regs, SUN50I_FBD_BLK_SIZE(base), val); -+ -+ val = SUN50I_FBD_SRC_CROP_TOP(0); -+ val |= SUN50I_FBD_SRC_CROP_LEFT(0); -+ regmap_write(regs, SUN50I_FBD_SRC_CROP(base), val); -+ -+ val = SUN50I_FBD_LAY_CROP_TOP(state->src.y1 >> 16); -+ val |= SUN50I_FBD_LAY_CROP_LEFT(state->src.x1 >> 16); -+ regmap_write(regs, SUN50I_FBD_LAY_CROP(base), val); -+ -+ /* -+ * Default color is always set to white, in colorspace and bitness -+ * that coresponds to used format. If it is actually used or not -+ * depends on AFBC buffer. At least in Cedrus it can be turned on -+ * or off. -+ * NOTE: G and B channels are off by 1 (up). It's unclear if this -+ * is because HW need such value or it is due to good enough code -+ * in vendor driver and HW clips the value anyway. -+ */ -+ def_color0 = 0; -+ def_color1 = 0; -+ -+ val = 0; -+ switch (format->format) { -+ case DRM_FORMAT_YUYV: -+ case DRM_FORMAT_YUV420_10BIT: -+ val |= SUN50I_FBD_FMT_SBS1(2); -+ val |= SUN50I_FBD_FMT_SBS0(1); -+ break; -+ case DRM_FORMAT_Y210: -+ val |= SUN50I_FBD_FMT_SBS1(3); -+ val |= SUN50I_FBD_FMT_SBS0(2); -+ break; -+ default: -+ val |= SUN50I_FBD_FMT_SBS1(1); -+ val |= SUN50I_FBD_FMT_SBS0(1); -+ break; -+ } -+ switch (format->format) { -+ case DRM_FORMAT_RGBA8888: -+ val |= SUN50I_FBD_FMT_YUV_TRAN; -+ val |= SUN50I_FBD_FMT_IN_FMT(SUN50I_AFBC_RGBA_8888); -+ def_color0 = SUN50I_FBD_DEFAULT_COLOR0_ALPHA(255) | -+ SUN50I_FBD_DEFAULT_COLOR0_YR(255); -+ def_color1 = SUN50I_FBD_DEFAULT_COLOR1_UG(256) | -+ SUN50I_FBD_DEFAULT_COLOR1_VB(256); -+ break; -+ case DRM_FORMAT_RGB888: -+ val |= SUN50I_FBD_FMT_YUV_TRAN; -+ val |= SUN50I_FBD_FMT_IN_FMT(SUN50I_AFBC_RGB_888); -+ def_color0 = SUN50I_FBD_DEFAULT_COLOR0_ALPHA(0) | -+ SUN50I_FBD_DEFAULT_COLOR0_YR(255); -+ def_color1 = SUN50I_FBD_DEFAULT_COLOR1_UG(256) | -+ SUN50I_FBD_DEFAULT_COLOR1_VB(256); -+ break; -+ case DRM_FORMAT_RGB565: -+ val |= SUN50I_FBD_FMT_YUV_TRAN; -+ val |= SUN50I_FBD_FMT_IN_FMT(SUN50I_AFBC_RGB_565); -+ def_color0 = SUN50I_FBD_DEFAULT_COLOR0_ALPHA(0) | -+ SUN50I_FBD_DEFAULT_COLOR0_YR(31); -+ def_color1 = SUN50I_FBD_DEFAULT_COLOR1_UG(64) | -+ SUN50I_FBD_DEFAULT_COLOR1_VB(32); -+ break; -+ case DRM_FORMAT_RGBA4444: -+ val |= SUN50I_FBD_FMT_YUV_TRAN; -+ val |= SUN50I_FBD_FMT_IN_FMT(SUN50I_AFBC_RGBA_4444); -+ def_color0 = SUN50I_FBD_DEFAULT_COLOR0_ALPHA(15) | -+ SUN50I_FBD_DEFAULT_COLOR0_YR(15); -+ def_color1 = SUN50I_FBD_DEFAULT_COLOR1_UG(16) | -+ SUN50I_FBD_DEFAULT_COLOR1_VB(16); -+ break; -+ case DRM_FORMAT_RGBA5551: -+ val |= SUN50I_FBD_FMT_YUV_TRAN; -+ val |= SUN50I_FBD_FMT_IN_FMT(SUN50I_AFBC_RGBA_5551); -+ def_color0 = SUN50I_FBD_DEFAULT_COLOR0_ALPHA(1) | -+ SUN50I_FBD_DEFAULT_COLOR0_YR(31); -+ def_color1 = SUN50I_FBD_DEFAULT_COLOR1_UG(32) | -+ SUN50I_FBD_DEFAULT_COLOR1_VB(32); -+ break; -+ case DRM_FORMAT_RGBA1010102: -+ val |= SUN50I_FBD_FMT_YUV_TRAN; -+ val |= SUN50I_FBD_FMT_IN_FMT(SUN50I_AFBC_RGBA1010102); -+ def_color0 = SUN50I_FBD_DEFAULT_COLOR0_ALPHA(3) | -+ SUN50I_FBD_DEFAULT_COLOR0_YR(1023); -+ def_color1 = SUN50I_FBD_DEFAULT_COLOR1_UG(1024) | -+ SUN50I_FBD_DEFAULT_COLOR1_VB(1024); -+ break; -+ case DRM_FORMAT_YUV420_8BIT: -+ val |= SUN50I_FBD_FMT_IN_FMT(SUN50I_AFBC_YUV420); -+ def_color0 = SUN50I_FBD_DEFAULT_COLOR0_ALPHA(0) | -+ SUN50I_FBD_DEFAULT_COLOR0_YR(255); -+ def_color1 = SUN50I_FBD_DEFAULT_COLOR1_UG(128) | -+ SUN50I_FBD_DEFAULT_COLOR1_VB(128); -+ break; -+ case DRM_FORMAT_YUYV: -+ val |= SUN50I_FBD_FMT_IN_FMT(SUN50I_AFBC_YUV422); -+ def_color0 = SUN50I_FBD_DEFAULT_COLOR0_ALPHA(0) | -+ SUN50I_FBD_DEFAULT_COLOR0_YR(255); -+ def_color1 = SUN50I_FBD_DEFAULT_COLOR1_UG(128) | -+ SUN50I_FBD_DEFAULT_COLOR1_VB(128); -+ break; -+ case DRM_FORMAT_YUV420_10BIT: -+ val |= SUN50I_FBD_FMT_IN_FMT(SUN50I_AFBC_P010); -+ def_color0 = SUN50I_FBD_DEFAULT_COLOR0_ALPHA(0) | -+ SUN50I_FBD_DEFAULT_COLOR0_YR(1023); -+ def_color1 = SUN50I_FBD_DEFAULT_COLOR1_UG(512) | -+ SUN50I_FBD_DEFAULT_COLOR1_VB(512); -+ break; -+ case DRM_FORMAT_Y210: -+ val |= SUN50I_FBD_FMT_IN_FMT(SUN50I_AFBC_P210); -+ def_color0 = SUN50I_FBD_DEFAULT_COLOR0_ALPHA(0) | -+ SUN50I_FBD_DEFAULT_COLOR0_YR(1023); -+ def_color1 = SUN50I_FBD_DEFAULT_COLOR1_UG(512) | -+ SUN50I_FBD_DEFAULT_COLOR1_VB(512); -+ break; -+ } -+ regmap_write(regs, SUN50I_FBD_FMT(base), val); -+ -+ /* Get the physical address of the buffer in memory */ -+ gem = drm_fb_dma_get_gem_obj(fb, 0); -+ -+ DRM_DEBUG_DRIVER("Using GEM @ %pad\n", &gem->dma_addr); -+ -+ /* Compute the start of the displayed memory */ -+ dma_addr = gem->dma_addr + fb->offsets[0]; -+ -+ regmap_write(regs, SUN50I_FBD_LADDR(base), lower_32_bits(dma_addr)); -+ regmap_write(regs, SUN50I_FBD_HADDR(base), upper_32_bits(dma_addr)); -+ -+ val = SUN50I_FBD_OVL_SIZE_HEIGHT(src_h); -+ val |= SUN50I_FBD_OVL_SIZE_WIDTH(src_w); -+ regmap_write(regs, SUN50I_FBD_OVL_SIZE(base), val); -+ -+ val = SUN50I_FBD_OVL_COOR_Y(0); -+ val |= SUN50I_FBD_OVL_COOR_X(0); -+ regmap_write(regs, SUN50I_FBD_OVL_COOR(base), val); -+ -+ regmap_write(regs, SUN50I_FBD_OVL_BG_COLOR(base), -+ SUN8I_MIXER_BLEND_COLOR_BLACK); -+ regmap_write(regs, SUN50I_FBD_DEFAULT_COLOR0(base), def_color0); -+ regmap_write(regs, SUN50I_FBD_DEFAULT_COLOR1(base), def_color1); -+ -+ val = SUN50I_FBD_CTL_GLB_ALPHA(state->alpha >> 16); -+ val |= SUN50I_FBD_CTL_CLK_GATE; -+ val |= (state->alpha == DRM_BLEND_ALPHA_OPAQUE) ? -+ SUN50I_FBD_CTL_ALPHA_MODE_PIXEL : -+ SUN50I_FBD_CTL_ALPHA_MODE_COMBINED; -+ val |= SUN50I_FBD_CTL_FBD_EN; -+ regmap_write(regs, SUN50I_FBD_CTL(base), val); -+} -+ -+void sun50i_afbc_disable(struct sun8i_mixer *mixer, unsigned int channel) -+{ -+ u32 base = sun50i_afbc_get_base(mixer, channel); -+ -+ regmap_write(mixer->engine.regs, SUN50I_FBD_CTL(base), 0); -+} -diff --git a/drivers/gpu/drm/sun4i/sun50i_afbc.h b/drivers/gpu/drm/sun4i/sun50i_afbc.h -new file mode 100644 -index 000000000000..cea685c86855 ---- /dev/null -+++ b/drivers/gpu/drm/sun4i/sun50i_afbc.h -@@ -0,0 +1,87 @@ -+/* SPDX-License-Identifier: GPL-2.0-or-later */ -+/* -+ * Copyright (C) Jernej Skrabec -+ */ -+ -+#ifndef _SUN50I_AFBC_H_ -+#define _SUN50I_AFBC_H_ -+ -+#include -+ -+#define SUN50I_AFBC_CH_OFFSET 0x300 -+ -+#define SUN50I_AFBC_RGBA_8888 0x02 -+#define SUN50I_AFBC_RGB_888 0x08 -+#define SUN50I_AFBC_RGB_565 0x0a -+#define SUN50I_AFBC_RGBA_4444 0x0e -+#define SUN50I_AFBC_RGBA_5551 0x12 -+#define SUN50I_AFBC_RGBA1010102 0x16 -+#define SUN50I_AFBC_YUV422 0x26 -+#define SUN50I_AFBC_YUV420 0x2a -+#define SUN50I_AFBC_P010 0x30 -+#define SUN50I_AFBC_P210 0x32 -+ -+#define SUN50I_FBD_CTL(base) ((base) + 0x00) -+#define SUN50I_FBD_CTL_GLB_ALPHA(v) ((v) << 24) -+#define SUN50I_FBD_CTL_CLK_GATE BIT(4) -+#define SUN50I_FBD_CTL_ALPHA_MODE_PIXEL ((0) << 2) -+#define SUN50I_FBD_CTL_ALPHA_MODE_LAYER ((1) << 2) -+#define SUN50I_FBD_CTL_ALPHA_MODE_COMBINED ((2) << 2) -+#define SUN50I_FBD_CTL_FBD_FCEN BIT(1) -+#define SUN50I_FBD_CTL_FBD_EN BIT(0) -+ -+#define SUN50I_FBD_SIZE(base) ((base) + 0x08) -+#define SUN50I_FBD_SIZE_HEIGHT(v) (((v) - 1) << 16) -+#define SUN50I_FBD_SIZE_WIDTH(v) (((v) - 1) << 0) -+ -+#define SUN50I_FBD_BLK_SIZE(base) ((base) + 0x0c) -+#define SUN50I_FBD_BLK_SIZE_HEIGHT(v) ((v) << 16) -+#define SUN50I_FBD_BLK_SIZE_WIDTH(v) ((v) << 0) -+ -+#define SUN50I_FBD_SRC_CROP(base) ((base) + 0x10) -+#define SUN50I_FBD_SRC_CROP_TOP(v) ((v) << 16) -+#define SUN50I_FBD_SRC_CROP_LEFT(v) ((v) << 0) -+ -+#define SUN50I_FBD_LAY_CROP(base) ((base) + 0x14) -+#define SUN50I_FBD_LAY_CROP_TOP(v) ((v) << 16) -+#define SUN50I_FBD_LAY_CROP_LEFT(v) ((v) << 0) -+ -+#define SUN50I_FBD_FMT(base) ((base) + 0x18) -+#define SUN50I_FBD_FMT_SBS1(v) ((v) << 18) -+#define SUN50I_FBD_FMT_SBS0(v) ((v) << 16) -+#define SUN50I_FBD_FMT_YUV_TRAN BIT(7) -+#define SUN50I_FBD_FMT_IN_FMT(v) ((v) << 0) -+ -+#define SUN50I_FBD_LADDR(base) ((base) + 0x20) -+#define SUN50I_FBD_HADDR(base) ((base) + 0x24) -+ -+#define SUN50I_FBD_OVL_SIZE(base) ((base) + 0x30) -+#define SUN50I_FBD_OVL_SIZE_HEIGHT(v) (((v) - 1) << 16) -+#define SUN50I_FBD_OVL_SIZE_WIDTH(v) (((v) - 1) << 0) -+ -+#define SUN50I_FBD_OVL_COOR(base) ((base) + 0x34) -+#define SUN50I_FBD_OVL_COOR_Y(v) ((v) << 16) -+#define SUN50I_FBD_OVL_COOR_X(v) ((v) << 0) -+ -+#define SUN50I_FBD_OVL_BG_COLOR(base) ((base) + 0x38) -+#define SUN50I_FBD_OVL_FILL_COLOR(base) ((base) + 0x3c) -+ -+#define SUN50I_FBD_DEFAULT_COLOR0(base) ((base) + 0x50) -+#define SUN50I_FBD_DEFAULT_COLOR0_ALPHA(v) ((v) << 16) -+#define SUN50I_FBD_DEFAULT_COLOR0_YR(v) ((v) << 0) -+ -+#define SUN50I_FBD_DEFAULT_COLOR1(base) ((base) + 0x54) -+#define SUN50I_FBD_DEFAULT_COLOR1_VB(v) ((v) << 16) -+#define SUN50I_FBD_DEFAULT_COLOR1_UG(v) ((v) << 0) -+ -+struct sun8i_mixer; -+struct drm_plane; -+ -+bool sun50i_afbc_format_mod_supported(struct sun8i_mixer *mixer, -+ u32 format, u64 modifier); -+ -+void sun50i_afbc_atomic_update(struct sun8i_mixer *mixer, unsigned int channel, -+ struct drm_plane *plane); -+void sun50i_afbc_disable(struct sun8i_mixer *mixer, unsigned int channel); -+ -+#endif -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index d19349eecc9d..84f8917e2dd8 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -@@ -11,8 +11,10 @@ - #include - #include - #include -+#include - #include - -+#include "sun50i_afbc.h" - #include "sun8i_csc.h" - #include "sun8i_mixer.h" - #include "sun8i_vi_layer.h" -@@ -50,7 +52,7 @@ static void sun8i_vi_layer_update_alpha(struct sun8i_mixer *mixer, int channel, - - static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - int overlay, struct drm_plane *plane, -- unsigned int zpos) -+ unsigned int zpos, bool afbc) - { - struct drm_plane_state *state = plane->state; - const struct drm_format_info *format = state->fb->format; -@@ -135,7 +137,7 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - - required = src_h * 100 / dst_h; - -- if (ability < required) { -+ if (!afbc && ability < required) { - DRM_DEBUG_DRIVER("Using vertical coarse scaling\n"); - vm = src_h; - vn = (u32)ability * dst_h / 100; -@@ -145,7 +147,7 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - /* it seems that every RGB scaler has buffer for 2048 pixels */ - scanline = subsampled ? mixer->cfg->scanline_yuv : 2048; - -- if (src_w > scanline) { -+ if (!afbc && src_w > scanline) { - DRM_DEBUG_DRIVER("Using horizontal coarse scaling\n"); - hm = src_w; - hn = scanline; -@@ -308,6 +310,15 @@ static int sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel, - return 0; - } - -+static void sun8i_vi_layer_prepare_non_linear(struct sun8i_mixer *mixer, -+ int channel, int overlay) -+{ -+ u32 base = sun8i_channel_base(mixer, channel); -+ -+ regmap_write(mixer->engine.regs, -+ SUN8I_MIXER_CHAN_VI_LAYER_ATTR(base, overlay), 0); -+} -+ - static int sun8i_vi_layer_atomic_check(struct drm_plane *plane, - struct drm_atomic_state *state) - { -@@ -348,18 +359,45 @@ static void sun8i_vi_layer_atomic_update(struct drm_plane *plane, - struct sun8i_layer *layer = plane_to_sun8i_layer(plane); - unsigned int zpos = new_state->normalized_zpos; - struct sun8i_mixer *mixer = layer->mixer; -+ struct drm_framebuffer *fb = plane->state->fb; -+ bool afbc = drm_is_afbc(fb->modifier); - -- if (!new_state->crtc || !new_state->visible) -+ if (!new_state->crtc || !new_state->visible) { -+ if (mixer->cfg->de_type >= sun8i_mixer_de3) -+ sun50i_afbc_disable(mixer, layer->channel); - return; -+ } - - sun8i_vi_layer_update_coord(mixer, layer->channel, -- layer->overlay, plane, zpos); -- sun8i_vi_layer_update_alpha(mixer, layer->channel, -- layer->overlay, plane); -- sun8i_vi_layer_update_formats(mixer, layer->channel, -- layer->overlay, plane); -- sun8i_vi_layer_update_buffer(mixer, layer->channel, -- layer->overlay, plane); -+ layer->overlay, plane, zpos, afbc); -+ -+ if (afbc) { -+ u32 fmt_type; -+ -+ sun8i_vi_layer_prepare_non_linear(mixer, layer->channel, -+ layer->overlay); -+ sun50i_afbc_atomic_update(mixer, layer->channel, plane); -+ -+ fmt_type = sun8i_vi_layer_get_format_type(fb->format); -+ sun8i_csc_set_ccsc(mixer, layer->channel, fmt_type, -+ plane->state->color_encoding, -+ plane->state->color_range); -+ } else { -+ sun8i_vi_layer_update_alpha(mixer, layer->channel, -+ layer->overlay, plane); -+ sun8i_vi_layer_update_formats(mixer, layer->channel, -+ layer->overlay, plane); -+ sun8i_vi_layer_update_buffer(mixer, layer->channel, -+ layer->overlay, plane); -+ } -+} -+ -+static bool sun8i_vi_layer_format_mod_supported(struct drm_plane *plane, -+ u32 format, u64 modifier) -+{ -+ struct sun8i_layer *layer = plane_to_sun8i_layer(plane); -+ -+ return sun50i_afbc_format_mod_supported(layer->mixer, format, modifier); - } - - static const struct drm_plane_helper_funcs sun8i_vi_layer_helper_funcs = { -@@ -374,6 +412,7 @@ static const struct drm_plane_funcs sun8i_vi_layer_funcs = { - .disable_plane = drm_atomic_helper_disable_plane, - .reset = drm_atomic_helper_plane_reset, - .update_plane = drm_atomic_helper_update_plane, -+ .format_mod_supported = sun8i_vi_layer_format_mod_supported, - }; - - /* -@@ -457,6 +496,11 @@ static const u32 sun8i_vi_layer_de3_formats[] = { - DRM_FORMAT_YVU411, - DRM_FORMAT_YVU420, - DRM_FORMAT_YVU422, -+ -+ /* AFBC only formats */ -+ DRM_FORMAT_YUV420_8BIT, -+ DRM_FORMAT_YUV420_10BIT, -+ DRM_FORMAT_Y210, - }; - - static const uint64_t sun8i_layer_modifiers[] = { -@@ -464,6 +508,18 @@ static const uint64_t sun8i_layer_modifiers[] = { - DRM_FORMAT_MOD_INVALID - }; - -+static const uint64_t sun50i_layer_de3_modifiers[] = { -+ DRM_FORMAT_MOD_ARM_AFBC(AFBC_FORMAT_MOD_BLOCK_SIZE_16x16 | -+ AFBC_FORMAT_MOD_SPARSE | -+ AFBC_FORMAT_MOD_SPLIT), -+ DRM_FORMAT_MOD_ARM_AFBC(AFBC_FORMAT_MOD_BLOCK_SIZE_16x16 | -+ AFBC_FORMAT_MOD_YTR | -+ AFBC_FORMAT_MOD_SPARSE | -+ AFBC_FORMAT_MOD_SPLIT), -+ DRM_FORMAT_MOD_LINEAR, -+ DRM_FORMAT_MOD_INVALID -+}; -+ - struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, - struct sun8i_mixer *mixer, - int index) -@@ -472,6 +528,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, - u32 supported_encodings, supported_ranges; - unsigned int plane_cnt, format_count; - struct sun8i_layer *layer; -+ const uint64_t *modifiers; - const u32 *formats; - int ret; - -@@ -487,9 +544,11 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, - if (mixer->cfg->de_type >= sun8i_mixer_de3) { - formats = sun8i_vi_layer_de3_formats; - format_count = ARRAY_SIZE(sun8i_vi_layer_de3_formats); -+ modifiers = sun50i_layer_de3_modifiers; - } else { - formats = sun8i_vi_layer_formats; - format_count = ARRAY_SIZE(sun8i_vi_layer_formats); -+ modifiers = sun8i_layer_modifiers; - } - - if (!mixer->cfg->ui_num && index == 0) -@@ -499,8 +558,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, - ret = drm_universal_plane_init(drm, &layer->plane, 0, - &sun8i_vi_layer_funcs, - formats, format_count, -- sun8i_layer_modifiers, -- type, NULL); -+ modifiers, type, NULL); - if (ret) { - dev_err(drm->dev, "Couldn't initialize layer\n"); - return ERR_PTR(ret); --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch deleted file mode 100644 index ee7d28dee..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 681152c96fe02df6fb36ecef2fed562511d871fe Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:40 +1300 -Subject: drm: sun4i: de3: add YUV support to the DE3 mixer - -The mixer in the DE3 display engine supports YUV 8 and 10 bit -formats in addition to 8-bit RGB. Add the required register -configuration and format enumeration callback functions to the mixer, -and store the in-use output format (defaulting to RGB) and color -encoding in engine variables. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_mixer.c | 47 ++++++++++++++++++++++++++++ - drivers/gpu/drm/sun4i/sunxi_engine.h | 5 +++ - 2 files changed, 52 insertions(+) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index fe1b58004a7b..1b498568e7df 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -23,8 +23,11 @@ - #include - #include - -+#include -+ - #include "sun4i_drv.h" - #include "sun4i_tcon.h" -+#include "sun50i_fmt.h" - #include "sun8i_mixer.h" - #include "sun8i_ui_layer.h" - #include "sun8i_vi_layer.h" -@@ -420,12 +423,52 @@ static void sun8i_mixer_mode_set(struct sunxi_engine *engine, - - DRM_DEBUG_DRIVER("Switching display mixer interlaced mode %s\n", - interlaced ? "on" : "off"); -+ -+ if (engine->format == MEDIA_BUS_FMT_RGB888_1X24) -+ val = SUN8I_MIXER_BLEND_COLOR_BLACK; -+ else -+ val = 0xff108080; -+ -+ regmap_write(mixer->engine.regs, -+ SUN8I_MIXER_BLEND_BKCOLOR(bld_base), val); -+ regmap_write(mixer->engine.regs, -+ SUN8I_MIXER_BLEND_ATTR_FCOLOR(bld_base, 0), val); -+ -+ if (mixer->cfg->has_formatter) -+ sun50i_fmt_setup(mixer, mode->hdisplay, -+ mode->vdisplay, mixer->engine.format); -+} -+ -+static u32 *sun8i_mixer_get_supported_fmts(struct sunxi_engine *engine, u32 *num) -+{ -+ struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); -+ u32 *formats, count; -+ -+ count = 0; -+ -+ formats = kcalloc(5, sizeof(*formats), GFP_KERNEL); -+ if (!formats) -+ return NULL; -+ -+ if (mixer->cfg->has_formatter) { -+ formats[count++] = MEDIA_BUS_FMT_UYYVYY10_0_5X30; -+ formats[count++] = MEDIA_BUS_FMT_YUV8_1X24; -+ formats[count++] = MEDIA_BUS_FMT_UYVY8_1X16; -+ formats[count++] = MEDIA_BUS_FMT_UYYVYY8_0_5X24; -+ } -+ -+ formats[count++] = MEDIA_BUS_FMT_RGB888_1X24; -+ -+ *num = count; -+ -+ return formats; - } - - static const struct sunxi_engine_ops sun8i_engine_ops = { - .commit = sun8i_mixer_commit, - .layers_init = sun8i_layers_init, - .mode_set = sun8i_mixer_mode_set, -+ .get_supported_fmts = sun8i_mixer_get_supported_fmts, - }; - - static const struct regmap_config sun8i_mixer_regmap_config = { -@@ -487,6 +530,10 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - mixer->engine.ops = &sun8i_engine_ops; - mixer->engine.node = dev->of_node; - mixer->drv = drv; -+ /* default output format, supported by all mixers */ -+ mixer->engine.format = MEDIA_BUS_FMT_RGB888_1X24; -+ /* default color encoding, ignored with RGB I/O */ -+ mixer->engine.encoding = DRM_COLOR_YCBCR_BT601; - - if (of_property_present(dev->of_node, "iommus")) { - /* -diff --git a/drivers/gpu/drm/sun4i/sunxi_engine.h b/drivers/gpu/drm/sun4i/sunxi_engine.h -index c48cbc1aceb8..ffafc29b3a0c 100644 ---- a/drivers/gpu/drm/sun4i/sunxi_engine.h -+++ b/drivers/gpu/drm/sun4i/sunxi_engine.h -@@ -6,6 +6,8 @@ - #ifndef _SUNXI_ENGINE_H_ - #define _SUNXI_ENGINE_H_ - -+#include -+ - struct drm_plane; - struct drm_crtc; - struct drm_device; -@@ -151,6 +153,9 @@ struct sunxi_engine { - - int id; - -+ u32 format; -+ enum drm_color_encoding encoding; -+ - /* Engine list management */ - struct list_head list; - }; --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-TCON.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-TCON.patch deleted file mode 100644 index adcc09e1d..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-TCON.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 1000fdf61f22e06c607f003ef500d75266bc3920 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:43 +1300 -Subject: drm: sun4i: de3: add YUV support to the TCON - -Account for U/V channel subsampling by reducing the dot clock and -resolution with a divider in the DE3 timing controller if a YUV format -is selected. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun4i_tcon.c | 26 +++++++++++++++++++------- - 1 file changed, 19 insertions(+), 7 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c -index 221df37406d8..43cc8908a03f 100644 ---- a/drivers/gpu/drm/sun4i/sun4i_tcon.c -+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c -@@ -679,14 +679,26 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon, - static void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, - const struct drm_display_mode *mode) - { -- unsigned int bp, hsync, vsync, vtotal; -+ unsigned int bp, hsync, vsync, vtotal, div; -+ struct sun4i_crtc *scrtc = tcon->crtc; -+ struct sunxi_engine *engine = scrtc->engine; - u8 clk_delay; - u32 val; - - WARN_ON(!tcon->quirks->has_channel_1); - -+ switch (engine->format) { -+ case MEDIA_BUS_FMT_UYYVYY8_0_5X24: -+ case MEDIA_BUS_FMT_UYYVYY10_0_5X30: -+ div = 2; -+ break; -+ default: -+ div = 1; -+ break; -+ } -+ - /* Configure the dot clock */ -- clk_set_rate(tcon->sclk1, mode->crtc_clock * 1000); -+ clk_set_rate(tcon->sclk1, mode->crtc_clock * 1000 / div); - - /* Adjust clock delay */ - clk_delay = sun4i_tcon_get_clk_delay(mode, 1); -@@ -705,17 +717,17 @@ static void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, - - /* Set the input resolution */ - regmap_write(tcon->regs, SUN4I_TCON1_BASIC0_REG, -- SUN4I_TCON1_BASIC0_X(mode->crtc_hdisplay) | -+ SUN4I_TCON1_BASIC0_X(mode->crtc_hdisplay / div) | - SUN4I_TCON1_BASIC0_Y(mode->crtc_vdisplay)); - - /* Set the upscaling resolution */ - regmap_write(tcon->regs, SUN4I_TCON1_BASIC1_REG, -- SUN4I_TCON1_BASIC1_X(mode->crtc_hdisplay) | -+ SUN4I_TCON1_BASIC1_X(mode->crtc_hdisplay / div) | - SUN4I_TCON1_BASIC1_Y(mode->crtc_vdisplay)); - - /* Set the output resolution */ - regmap_write(tcon->regs, SUN4I_TCON1_BASIC2_REG, -- SUN4I_TCON1_BASIC2_X(mode->crtc_hdisplay) | -+ SUN4I_TCON1_BASIC2_X(mode->crtc_hdisplay / div) | - SUN4I_TCON1_BASIC2_Y(mode->crtc_vdisplay)); - - /* Set horizontal display timings */ -@@ -723,8 +735,8 @@ static void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, - DRM_DEBUG_DRIVER("Setting horizontal total %d, backporch %d\n", - mode->htotal, bp); - regmap_write(tcon->regs, SUN4I_TCON1_BASIC3_REG, -- SUN4I_TCON1_BASIC3_H_TOTAL(mode->crtc_htotal) | -- SUN4I_TCON1_BASIC3_H_BACKPORCH(bp)); -+ SUN4I_TCON1_BASIC3_H_TOTAL(mode->crtc_htotal / div) | -+ SUN4I_TCON1_BASIC3_H_BACKPORCH(bp / div)); - - bp = mode->crtc_vtotal - mode->crtc_vsync_start; - DRM_DEBUG_DRIVER("Setting vertical total %d, backporch %d\n", --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-mod.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-mod.patch deleted file mode 100644 index 68774b67b..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-mod.patch +++ /dev/null @@ -1,225 +0,0 @@ -From a23ed976ee720c2445791716d975f040ef576c2b Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:42 +1300 -Subject: drm: sun4i: de3: add YUV support to the color space correction module - -Add coefficients and support for YUV formats to the display engine -colorspace and dynamic range correction submodule. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_csc.c | 164 +++++++++++++++++++++++++++++- - 1 file changed, 162 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index 8a336ccb27d3..e12a81fa9108 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.c -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.c -@@ -5,6 +5,8 @@ - - #include - -+#include -+ - #include "sun8i_csc.h" - #include "sun8i_mixer.h" - -@@ -107,6 +109,135 @@ static const u32 yuv2rgb_de3[2][3][12] = { - }, - }; - -+/* always convert to limited mode */ -+static const u32 rgb2yuv_de3[3][12] = { -+ [DRM_COLOR_YCBCR_BT601] = { -+ 0x0000837A, 0x0001021D, 0x00003221, 0x00000040, -+ 0xFFFFB41C, 0xFFFF6B03, 0x0000E0E1, 0x00000200, -+ 0x0000E0E1, 0xFFFF43B1, 0xFFFFDB6E, 0x00000200, -+ }, -+ [DRM_COLOR_YCBCR_BT709] = { -+ 0x00005D7C, 0x00013A7C, 0x00001FBF, 0x00000040, -+ 0xFFFFCC78, 0xFFFF52A7, 0x0000E0E1, 0x00000200, -+ 0x0000E0E1, 0xFFFF33BE, 0xFFFFEB61, 0x00000200, -+ }, -+ [DRM_COLOR_YCBCR_BT2020] = { -+ 0x00007384, 0x00012A21, 0x00001A13, 0x00000040, -+ 0xFFFFC133, 0xFFFF5DEC, 0x0000E0E1, 0x00000200, -+ 0x0000E0E1, 0xFFFF3135, 0xFFFFEDEA, 0x00000200, -+ }, -+}; -+ -+/* always convert to limited mode */ -+static const u32 yuv2yuv_de3[2][3][3][12] = { -+ [DRM_COLOR_YCBCR_LIMITED_RANGE] = { -+ [DRM_COLOR_YCBCR_BT601] = { -+ [DRM_COLOR_YCBCR_BT601] = { -+ 0x00020000, 0x00000000, 0x00000000, 0x00000000, -+ 0x00000000, 0x00020000, 0x00000000, 0x00000000, -+ 0x00000000, 0x00000000, 0x00020000, 0x00000000, -+ }, -+ [DRM_COLOR_YCBCR_BT709] = { -+ 0x00020000, 0xFFFFC4D7, 0xFFFF9589, 0xFFC00040, -+ 0x00000000, 0x0002098B, 0x00003AAF, 0xFE000200, -+ 0x00000000, 0x0000266D, 0x00020CF8, 0xFE000200, -+ }, -+ [DRM_COLOR_YCBCR_BT2020] = { -+ 0x00020000, 0xFFFFBFCE, 0xFFFFC5FF, 0xFFC00040, -+ 0x00000000, 0x00020521, 0x00001F89, 0xFE000200, -+ 0x00000000, 0x00002C87, 0x00020F07, 0xFE000200, -+ }, -+ }, -+ [DRM_COLOR_YCBCR_BT709] = { -+ [DRM_COLOR_YCBCR_BT601] = { -+ 0x00020000, 0x000032D9, 0x00006226, 0xFFC00040, -+ 0x00000000, 0x0001FACE, 0xFFFFC759, 0xFE000200, -+ 0x00000000, 0xFFFFDAE7, 0x0001F780, 0xFE000200, -+ }, -+ [DRM_COLOR_YCBCR_BT709] = { -+ 0x00020000, 0x00000000, 0x00000000, 0x00000000, -+ 0x00000000, 0x00020000, 0x00000000, 0x00000000, -+ 0x00000000, 0x00000000, 0x00020000, 0x00000000, -+ }, -+ [DRM_COLOR_YCBCR_BT2020] = { -+ 0x00020000, 0xFFFFF782, 0x00003036, 0xFFC00040, -+ 0x00000000, 0x0001FD99, 0xFFFFE5CA, 0xFE000200, -+ 0x00000000, 0x000005E4, 0x0002015A, 0xFE000200, -+ }, -+ }, -+ [DRM_COLOR_YCBCR_BT2020] = { -+ [DRM_COLOR_YCBCR_BT601] = { -+ 0x00020000, 0x00003B03, 0x000034D2, 0xFFC00040, -+ 0x00000000, 0x0001FD8C, 0xFFFFE183, 0xFE000200, -+ 0x00000000, 0xFFFFD4F3, 0x0001F3FA, 0xFE000200, -+ }, -+ [DRM_COLOR_YCBCR_BT709] = { -+ 0x00020000, 0x00000916, 0xFFFFD061, 0xFFC00040, -+ 0x00000000, 0x0002021C, 0x00001A40, 0xFE000200, -+ 0x00000000, 0xFFFFFA19, 0x0001FE5A, 0xFE000200, -+ }, -+ [DRM_COLOR_YCBCR_BT2020] = { -+ 0x00020000, 0x00000000, 0x00000000, 0x00000000, -+ 0x00000000, 0x00020000, 0x00000000, 0x00000000, -+ 0x00000000, 0x00000000, 0x00020000, 0x00000000, -+ }, -+ }, -+ }, -+ [DRM_COLOR_YCBCR_FULL_RANGE] = { -+ [DRM_COLOR_YCBCR_BT601] = { -+ [DRM_COLOR_YCBCR_BT601] = { -+ 0x0001B7B8, 0x00000000, 0x00000000, 0x00000040, -+ 0x00000000, 0x0001C1C2, 0x00000000, 0xFE000200, -+ 0x00000000, 0x00000000, 0x0001C1C2, 0xFE000200, -+ }, -+ [DRM_COLOR_YCBCR_BT709] = { -+ 0x0001B7B8, 0xFFFFCC08, 0xFFFFA27B, 0x00000040, -+ 0x00000000, 0x0001CA24, 0x0000338D, 0xFE000200, -+ 0x00000000, 0x000021C1, 0x0001CD26, 0xFE000200, -+ }, -+ [DRM_COLOR_YCBCR_BT2020] = { -+ 0x0001B7B8, 0xFFFFC79C, 0xFFFFCD0C, 0x00000040, -+ 0x00000000, 0x0001C643, 0x00001BB4, 0xFE000200, -+ 0x00000000, 0x0000271D, 0x0001CEF5, 0xFE000200, -+ }, -+ }, -+ [DRM_COLOR_YCBCR_BT709] = { -+ [DRM_COLOR_YCBCR_BT601] = { -+ 0x0001B7B8, 0x00002CAB, 0x00005638, 0x00000040, -+ 0x00000000, 0x0001BD32, 0xFFFFCE3C, 0xFE000200, -+ 0x00000000, 0xFFFFDF6A, 0x0001BA4A, 0xFE000200, -+ }, -+ [DRM_COLOR_YCBCR_BT709] = { -+ 0x0001B7B8, 0x00000000, 0x00000000, 0x00000040, -+ 0x00000000, 0x0001C1C2, 0x00000000, 0xFE000200, -+ 0x00000000, 0x00000000, 0x0001C1C2, 0xFE000200, -+ }, -+ [DRM_COLOR_YCBCR_BT2020] = { -+ 0x0001B7B8, 0xFFFFF88A, 0x00002A5A, 0x00000040, -+ 0x00000000, 0x0001BFA5, 0xFFFFE8FA, 0xFE000200, -+ 0x00000000, 0x0000052D, 0x0001C2F1, 0xFE000200, -+ }, -+ }, -+ [DRM_COLOR_YCBCR_BT2020] = { -+ [DRM_COLOR_YCBCR_BT601] = { -+ 0x0001B7B8, 0x000033D6, 0x00002E66, 0x00000040, -+ 0x00000000, 0x0001BF9A, 0xFFFFE538, 0xFE000200, -+ 0x00000000, 0xFFFFDA2F, 0x0001B732, 0xFE000200, -+ }, -+ [DRM_COLOR_YCBCR_BT709] = { -+ 0x0001B7B8, 0x000007FB, 0xFFFFD62B, 0x00000040, -+ 0x00000000, 0x0001C39D, 0x0000170F, 0xFE000200, -+ 0x00000000, 0xFFFFFAD1, 0x0001C04F, 0xFE000200, -+ }, -+ [DRM_COLOR_YCBCR_BT2020] = { -+ 0x0001B7B8, 0x00000000, 0x00000000, 0x00000040, -+ 0x00000000, 0x0001C1C2, 0x00000000, 0xFE000200, -+ 0x00000000, 0x00000000, 0x0001C1C2, 0xFE000200, -+ }, -+ }, -+ }, -+}; -+ - static void sun8i_csc_setup(struct regmap *map, u32 base, - enum format_type fmt_type, - enum drm_color_encoding encoding, -@@ -148,12 +279,27 @@ static void sun8i_csc_setup(struct regmap *map, u32 base, - regmap_write(map, SUN8I_CSC_CTRL(base), val); - } - -+static const u32 *sun8i_csc_get_de3_yuv_table(enum drm_color_encoding in_enc, -+ enum drm_color_range in_range, -+ u32 out_format, -+ enum drm_color_encoding out_enc) -+{ -+ if (out_format == MEDIA_BUS_FMT_RGB888_1X24) -+ return yuv2rgb_de3[in_range][in_enc]; -+ -+ /* check for identity transformation */ -+ if (in_range == DRM_COLOR_YCBCR_LIMITED_RANGE && out_enc == in_enc) -+ return NULL; -+ -+ return yuv2yuv_de3[in_range][in_enc][out_enc]; -+} -+ - static void sun8i_de3_ccsc_setup(struct sunxi_engine *engine, int layer, - enum format_type fmt_type, - enum drm_color_encoding encoding, - enum drm_color_range range) - { -- u32 addr, val, mask; -+ u32 addr, val = 0, mask; - struct regmap *map; - const u32 *table; - int i; -@@ -164,14 +310,28 @@ static void sun8i_de3_ccsc_setup(struct sunxi_engine *engine, int layer, - - switch (fmt_type) { - case FORMAT_TYPE_RGB: -- val = 0; -+ if (engine->format == MEDIA_BUS_FMT_RGB888_1X24) -+ break; -+ val = mask; -+ addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, layer, 0); -+ regmap_bulk_write(map, addr, rgb2yuv_de3[engine->encoding], 12); - break; - case FORMAT_TYPE_YUV: -+ table = sun8i_csc_get_de3_yuv_table(encoding, range, -+ engine->format, -+ engine->encoding); -+ if (!table) -+ break; - val = mask; - addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, layer, 0); - regmap_bulk_write(map, addr, table, 12); - break; - case FORMAT_TYPE_YVU: -+ table = sun8i_csc_get_de3_yuv_table(encoding, range, -+ engine->format, -+ engine->encoding); -+ if (!table) -+ table = yuv2yuv_de3[range][encoding][encoding]; - val = mask; - for (i = 0; i < 12; i++) { - if ((i & 3) == 1) --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-format-enumeration-function-to-engine.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-format-enumeration-function-to-engine.patch deleted file mode 100644 index 581242c38..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-format-enumeration-function-to-engine.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 99d327853acbc5d6c6d4140f004f82fcd5c40ea1 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:38 +1300 -Subject: drm: sun4i: de3: add format enumeration function to engine - -The DE3 display engine supports YUV formats in addition to RGB. - -Add an optional format enumeration function to the engine. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sunxi_engine.h | 29 ++++++++++++++++++++++++++++ - 1 file changed, 29 insertions(+) - -diff --git a/drivers/gpu/drm/sun4i/sunxi_engine.h b/drivers/gpu/drm/sun4i/sunxi_engine.h -index ec0c4932f15c..c48cbc1aceb8 100644 ---- a/drivers/gpu/drm/sun4i/sunxi_engine.h -+++ b/drivers/gpu/drm/sun4i/sunxi_engine.h -@@ -123,6 +123,17 @@ struct sunxi_engine_ops { - */ - void (*mode_set)(struct sunxi_engine *engine, - const struct drm_display_mode *mode); -+ -+ /** -+ * @get_supported_fmts -+ * -+ * This callback is used to enumerate all supported output -+ * formats by the engine. They are used for bridge format -+ * negotiation. -+ * -+ * This function is optional. -+ */ -+ u32 *(*get_supported_fmts)(struct sunxi_engine *engine, u32 *num); - }; - - /** -@@ -215,4 +226,22 @@ sunxi_engine_mode_set(struct sunxi_engine *engine, - if (engine->ops && engine->ops->mode_set) - engine->ops->mode_set(engine, mode); - } -+ -+/** -+ * sunxi_engine_get_supported_formats - Provide array of supported formats -+ * @engine: pointer to the engine -+ * @num: pointer to variable, which will hold number of formats -+ * -+ * This list can be used for format negotiation by bridge. -+ */ -+static inline u32 * -+sunxi_engine_get_supported_formats(struct sunxi_engine *engine, u32 *num) -+{ -+ if (engine->ops && engine->ops->get_supported_fmts) -+ return engine->ops->get_supported_fmts(engine, num); -+ -+ *num = 0; -+ -+ return NULL; -+} - #endif /* _SUNXI_ENGINE_H_ */ --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch deleted file mode 100644 index 93d677a8e..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 56afb6bff57f83073c83a49f6f6bccf387ab8116 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:39 +1300 -Subject: drm: sun4i: de3: add formatter flag to mixer config - -Only the DE3 (and newer) display engines have a formatter module. This -could be inferred from the is_de3 flag alone, however this will not -scale with addition of future DE versions in subsequent patches. - -Add a separate flag to signal this in the mixer configuration. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_mixer.c | 1 + - drivers/gpu/drm/sun4i/sun8i_mixer.h | 2 ++ - 2 files changed, 3 insertions(+) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index fbfa7e6a25aa..fe1b58004a7b 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -769,6 +769,7 @@ static const struct sun8i_mixer_cfg sun50i_a64_mixer1_cfg = { - static const struct sun8i_mixer_cfg sun50i_h6_mixer0_cfg = { - .ccsc = CCSC_MIXER0_LAYOUT, - .is_de3 = true, -+ .has_formatter = 1, - .mod_rate = 600000000, - .scaler_mask = 0xf, - .scanline_yuv = 4096, -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h -index 68e2741b0962..860a2f2cec24 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.h -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h -@@ -163,6 +163,7 @@ enum { - * @mod_rate: module clock rate that needs to be set in order to have - * a functional block. - * @is_de3: true, if this is next gen display engine 3.0, false otherwise. -+ * @has_formatter: true, if mixer has formatter core, for 10-bit and YUV handling - * @scaline_yuv: size of a scanline for VI scaler for YUV formats. - */ - struct sun8i_mixer_cfg { -@@ -172,6 +173,7 @@ struct sun8i_mixer_cfg { - int ccsc; - unsigned long mod_rate; - unsigned int is_de3 : 1; -+ unsigned int has_formatter : 1; - unsigned int scanline_yuv; - }; - --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch deleted file mode 100644 index 41bd02377..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 2d7c88fc2af6d07ccadc99b157753638b4940293 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:41 +1300 -Subject: drm: sun4i: de3: pass engine reference to ccsc setup function - -Configuration of the DE3 colorspace and dynamic range correction module -requires knowledge of the current video format and encoding. - -Pass the display engine by reference to the csc setup function, rather -than the register map alone, to allow access to this information. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_csc.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index 68d955c63b05..8a336ccb27d3 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.c -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.c -@@ -148,17 +148,19 @@ static void sun8i_csc_setup(struct regmap *map, u32 base, - regmap_write(map, SUN8I_CSC_CTRL(base), val); - } - --static void sun8i_de3_ccsc_setup(struct regmap *map, int layer, -+static void sun8i_de3_ccsc_setup(struct sunxi_engine *engine, int layer, - enum format_type fmt_type, - enum drm_color_encoding encoding, - enum drm_color_range range) - { - u32 addr, val, mask; -+ struct regmap *map; - const u32 *table; - int i; - - mask = SUN50I_MIXER_BLEND_CSC_CTL_EN(layer); - table = yuv2rgb_de3[range][encoding]; -+ map = engine->regs; - - switch (fmt_type) { - case FORMAT_TYPE_RGB: -@@ -204,7 +206,7 @@ void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, - u32 base; - - if (mixer->cfg->is_de3) { -- sun8i_de3_ccsc_setup(mixer->engine.regs, layer, -+ sun8i_de3_ccsc_setup(&mixer->engine, layer, - fmt_type, encoding, range); - return; - } --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch deleted file mode 100644 index 3479d96ff..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 0d003a88bcacf5f405f3922b0c56b7eecdb68386 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:58 +1300 -Subject: drm: sun4i: de33: csc: add Display Engine 3.3 (DE33) support - -Like earlier DE versions, the DE33 has a CSC (Color Space Correction) -module. which provides color space conversion between BT2020/BT709, and -dynamic range conversion between SDR/ST2084/HLG. - -Add support for the DE33. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_csc.c | 96 +++++++++++++++++++++++++++++++ - drivers/gpu/drm/sun4i/sun8i_csc.h | 3 + - 2 files changed, 99 insertions(+) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index 2d5a2cf7cba2..45bd1ca06400 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.c -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.c -@@ -238,6 +238,14 @@ static const u32 yuv2yuv_de3[2][3][3][12] = { - }, - }; - -+static u32 sun8i_csc_base(struct sun8i_mixer *mixer, int layer) -+{ -+ if (mixer->cfg->de_type == sun8i_mixer_de33) -+ return sun8i_channel_base(mixer, layer) - 0x800; -+ else -+ return ccsc_base[mixer->cfg->ccsc][layer]; -+} -+ - static void sun8i_csc_setup(struct regmap *map, u32 base, - enum format_type fmt_type, - enum drm_color_encoding encoding, -@@ -358,6 +366,90 @@ static void sun8i_de3_ccsc_setup(struct sunxi_engine *engine, int layer, - mask, val); - } - -+/* extract constant from high word and invert sign if necessary */ -+static u32 sun8i_de33_ccsc_get_constant(u32 value) -+{ -+ value >>= 16; -+ -+ if (value & BIT(15)) -+ return 0x400 - (value & 0x3ff); -+ -+ return value; -+} -+ -+static void sun8i_de33_convert_table(const u32 *src, u32 *dst) -+{ -+ dst[0] = sun8i_de33_ccsc_get_constant(src[3]); -+ dst[1] = sun8i_de33_ccsc_get_constant(src[7]); -+ dst[2] = sun8i_de33_ccsc_get_constant(src[11]); -+ memcpy(&dst[3], src, sizeof(u32) * 12); -+ dst[6] &= 0xffff; -+ dst[10] &= 0xffff; -+ dst[14] &= 0xffff; -+} -+ -+static void sun8i_de33_ccsc_setup(struct sun8i_mixer *mixer, int layer, -+ enum format_type fmt_type, -+ enum drm_color_encoding encoding, -+ enum drm_color_range range) -+{ -+ u32 addr, val = 0, base, csc[15]; -+ struct sunxi_engine *engine; -+ struct regmap *map; -+ const u32 *table; -+ int i; -+ -+ table = yuv2rgb_de3[range][encoding]; -+ base = sun8i_csc_base(mixer, layer); -+ engine = &mixer->engine; -+ map = engine->regs; -+ -+ switch (fmt_type) { -+ case FORMAT_TYPE_RGB: -+ if (engine->format == MEDIA_BUS_FMT_RGB888_1X24) -+ break; -+ val = SUN8I_CSC_CTRL_EN; -+ sun8i_de33_convert_table(rgb2yuv_de3[engine->encoding], csc); -+ regmap_bulk_write(map, SUN50I_CSC_COEFF(base, 0), csc, 15); -+ break; -+ case FORMAT_TYPE_YUV: -+ table = sun8i_csc_get_de3_yuv_table(encoding, range, -+ engine->format, -+ engine->encoding); -+ if (!table) -+ break; -+ val = SUN8I_CSC_CTRL_EN; -+ sun8i_de33_convert_table(table, csc); -+ regmap_bulk_write(map, SUN50I_CSC_COEFF(base, 0), csc, 15); -+ break; -+ case FORMAT_TYPE_YVU: -+ table = sun8i_csc_get_de3_yuv_table(encoding, range, -+ engine->format, -+ engine->encoding); -+ if (!table) -+ table = yuv2yuv_de3[range][encoding][encoding]; -+ val = SUN8I_CSC_CTRL_EN; -+ sun8i_de33_convert_table(table, csc); -+ for (i = 0; i < 15; i++) { -+ addr = SUN50I_CSC_COEFF(base, i); -+ if (i > 3) { -+ if (((i - 3) & 3) == 1) -+ addr = SUN50I_CSC_COEFF(base, i + 1); -+ else if (((i - 3) & 3) == 2) -+ addr = SUN50I_CSC_COEFF(base, i - 1); -+ } -+ regmap_write(map, addr, csc[i]); -+ } -+ break; -+ default: -+ val = 0; -+ DRM_WARN("Wrong CSC mode specified.\n"); -+ return; -+ } -+ -+ regmap_write(map, SUN8I_CSC_CTRL(base), val); -+} -+ - void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, - enum format_type fmt_type, - enum drm_color_encoding encoding, -@@ -369,6 +461,10 @@ void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, - sun8i_de3_ccsc_setup(&mixer->engine, layer, - fmt_type, encoding, range); - return; -+ } else if (mixer->cfg->de_type == sun8i_mixer_de33) { -+ sun8i_de33_ccsc_setup(mixer, layer, fmt_type, -+ encoding, range); -+ return; - } - - if (layer < mixer->cfg->vi_num) { -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.h b/drivers/gpu/drm/sun4i/sun8i_csc.h -index b7546e06e315..2b762cb79f02 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.h -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.h -@@ -20,6 +20,9 @@ struct sun8i_mixer; - #define SUN8I_CSC_CTRL(base) ((base) + 0x0) - #define SUN8I_CSC_COEFF(base, i) ((base) + 0x10 + 4 * (i)) - -+#define SUN50I_CSC_COEFF(base, i) ((base) + 0x04 + 4 * (i)) -+#define SUN50I_CSC_ALPHA(base) ((base) + 0x40) -+ - #define SUN8I_CSC_CTRL_EN BIT(0) - - enum format_type { --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch deleted file mode 100644 index cd060b367..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 792b816c952bcf5dbf7c3ac7d90937bc71f0a7cd Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:57 +1300 -Subject: drm: sun4i: de33: fmt: add Display Engine 3.3 (DE33) support - -Like the DE3, the DE33 has a FMT (formatter) module, which -provides YUV444 to YUV422/YUV420 conversion, format re-mapping and color -depth conversion, although the DE33 module appears significantly more -capable, including up to 4K video support. - -Add support for the DE33. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun50i_fmt.c | 21 +++++++++++++++++++-- - drivers/gpu/drm/sun4i/sun50i_fmt.h | 1 + - 2 files changed, 20 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.c b/drivers/gpu/drm/sun4i/sun50i_fmt.c -index 050a8716ae86..39682d4e6d20 100644 ---- a/drivers/gpu/drm/sun4i/sun50i_fmt.c -+++ b/drivers/gpu/drm/sun4i/sun50i_fmt.c -@@ -51,6 +51,19 @@ static void sun50i_fmt_de3_limits(u32 *limits, u32 colorspace, bool bit10) - } - } - -+static void sun50i_fmt_de33_limits(u32 *limits, u32 colorspace) -+{ -+ if (colorspace == SUN50I_FMT_CS_YUV444RGB) { -+ limits[0] = SUN50I_FMT_LIMIT(0, 4095); -+ limits[1] = SUN50I_FMT_LIMIT(0, 4095); -+ limits[2] = SUN50I_FMT_LIMIT(0, 4095); -+ } else { -+ limits[0] = SUN50I_FMT_LIMIT(256, 3840); -+ limits[1] = SUN50I_FMT_LIMIT(256, 3840); -+ limits[2] = SUN50I_FMT_LIMIT(256, 3840); -+ } -+} -+ - void sun50i_fmt_setup(struct sun8i_mixer *mixer, u16 width, - u16 height, u32 format) - { -@@ -60,10 +73,14 @@ void sun50i_fmt_setup(struct sun8i_mixer *mixer, u16 width, - - colorspace = sun50i_fmt_get_colorspace(format); - bit10 = sun50i_fmt_is_10bit(format); -- base = SUN50I_FMT_DE3; -+ base = mixer->cfg->de_type == sun8i_mixer_de3 ? -+ SUN50I_FMT_DE3 : SUN50I_FMT_DE33; - regs = sun8i_blender_regmap(mixer); - -- sun50i_fmt_de3_limits(limit, colorspace, bit10); -+ if (mixer->cfg->de_type == sun8i_mixer_de3) -+ sun50i_fmt_de3_limits(limit, colorspace, bit10); -+ else -+ sun50i_fmt_de33_limits(limit, colorspace); - - regmap_write(regs, SUN50I_FMT_CTRL(base), 0); - -diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.h b/drivers/gpu/drm/sun4i/sun50i_fmt.h -index 4127f7206aad..3e60d5c788b3 100644 ---- a/drivers/gpu/drm/sun4i/sun50i_fmt.h -+++ b/drivers/gpu/drm/sun4i/sun50i_fmt.h -@@ -9,6 +9,7 @@ - #include "sun8i_mixer.h" - - #define SUN50I_FMT_DE3 0xa8000 -+#define SUN50I_FMT_DE33 0x5000 - - #define SUN50I_FMT_CTRL(base) ((base) + 0x00) - #define SUN50I_FMT_SIZE(base) ((base) + 0x04) --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch deleted file mode 100644 index ef895b6c9..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch +++ /dev/null @@ -1,305 +0,0 @@ -From bbbfdc8bc71a4d5a6fb291aae3027f40dd999816 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:55 +1300 -Subject: drm: sun4i: de33: mixer: add Display Engine 3.3 (DE33) support - -The DE33 is a newer version of the Allwinner Display Engine IP block, -found in the H616, H618, H700 and T507 SoCs. DE2 and DE3 are already -supported by the mainline driver. - -Notable features (from the H616 datasheet and implemented): -- 4096 x 2048 (4K) output support -- AFBC ARM Frame Buffer Compression support -- YUV420 input support - -The DE2 and DE3 engines have a blender register range within the -mixer engine register map, whereas the DE33 separates this out into -a separate display group, and adds a top register map. - -Extend the mixer to support the DE33. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_mixer.c | 109 ++++++++++++++++++++++++---- - drivers/gpu/drm/sun4i/sun8i_mixer.h | 16 +++- - 2 files changed, 108 insertions(+), 17 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index f05017443565..53143646fc1c 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -351,8 +351,12 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, - regmap_write(bld_regs, SUN8I_MIXER_BLEND_PIPE_CTL(bld_base), - pipe_en | SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); - -- regmap_write(engine->regs, SUN8I_MIXER_GLOBAL_DBUFF, -- SUN8I_MIXER_GLOBAL_DBUFF_ENABLE); -+ if (mixer->cfg->de_type == sun8i_mixer_de33) -+ regmap_write(mixer->top_regs, SUN50I_MIXER_GLOBAL_DBUFF, -+ SUN8I_MIXER_GLOBAL_DBUFF_ENABLE); -+ else -+ regmap_write(engine->regs, SUN8I_MIXER_GLOBAL_DBUFF, -+ SUN8I_MIXER_GLOBAL_DBUFF_ENABLE); - } - - static struct drm_plane **sun8i_layers_init(struct drm_device *drm, -@@ -401,25 +405,33 @@ static void sun8i_mixer_mode_set(struct sunxi_engine *engine, - const struct drm_display_mode *mode) - { - struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); -+ struct regmap *bld_regs, *disp_regs; - u32 bld_base, size, val; - bool interlaced; - - bld_base = sun8i_blender_base(mixer); -+ bld_regs = sun8i_blender_regmap(mixer); - interlaced = !!(mode->flags & DRM_MODE_FLAG_INTERLACE); - size = SUN8I_MIXER_SIZE(mode->hdisplay, mode->vdisplay); - - DRM_DEBUG_DRIVER("Updating global size W: %u H: %u\n", - mode->hdisplay, mode->vdisplay); - -- regmap_write(engine->regs, SUN8I_MIXER_GLOBAL_SIZE, size); -- regmap_write(engine->regs, SUN8I_MIXER_BLEND_OUTSIZE(bld_base), size); -+ if (mixer->cfg->de_type == sun8i_mixer_de33) { -+ disp_regs = mixer->disp_regs; -+ regmap_write(mixer->top_regs, SUN50I_MIXER_GLOBAL_SIZE, size); -+ } else { -+ disp_regs = mixer->engine.regs; -+ regmap_write(mixer->engine.regs, SUN8I_MIXER_GLOBAL_SIZE, size); -+ } -+ regmap_write(bld_regs, SUN8I_MIXER_BLEND_OUTSIZE(bld_base), size); - - if (interlaced) - val = SUN8I_MIXER_BLEND_OUTCTL_INTERLACED; - else - val = 0; - -- regmap_update_bits(engine->regs, SUN8I_MIXER_BLEND_OUTCTL(bld_base), -+ regmap_update_bits(bld_regs, SUN8I_MIXER_BLEND_OUTCTL(bld_base), - SUN8I_MIXER_BLEND_OUTCTL_INTERLACED, val); - - DRM_DEBUG_DRIVER("Switching display mixer interlaced mode %s\n", -@@ -430,10 +442,8 @@ static void sun8i_mixer_mode_set(struct sunxi_engine *engine, - else - val = 0xff108080; - -- regmap_write(mixer->engine.regs, -- SUN8I_MIXER_BLEND_BKCOLOR(bld_base), val); -- regmap_write(mixer->engine.regs, -- SUN8I_MIXER_BLEND_ATTR_FCOLOR(bld_base, 0), val); -+ regmap_write(disp_regs, SUN8I_MIXER_BLEND_BKCOLOR(bld_base), val); -+ regmap_write(disp_regs, SUN8I_MIXER_BLEND_ATTR_FCOLOR(bld_base, 0), val); - - if (mixer->cfg->has_formatter) - sun50i_fmt_setup(mixer, mode->hdisplay, -@@ -473,12 +483,29 @@ static const struct sunxi_engine_ops sun8i_engine_ops = { - }; - - static const struct regmap_config sun8i_mixer_regmap_config = { -+ .name = "layers", - .reg_bits = 32, - .val_bits = 32, - .reg_stride = 4, - .max_register = 0xffffc, /* guessed */ - }; - -+static const struct regmap_config sun8i_top_regmap_config = { -+ .name = "top", -+ .reg_bits = 32, -+ .val_bits = 32, -+ .reg_stride = 4, -+ .max_register = 0x3c, -+}; -+ -+static const struct regmap_config sun8i_disp_regmap_config = { -+ .name = "display", -+ .reg_bits = 32, -+ .val_bits = 32, -+ .reg_stride = 4, -+ .max_register = 0x20000, -+}; -+ - static int sun8i_mixer_of_get_id(struct device_node *node) - { - struct device_node *ep, *remote; -@@ -501,36 +528,48 @@ static int sun8i_mixer_of_get_id(struct device_node *node) - - static void sun8i_mixer_init(struct sun8i_mixer *mixer) - { -+ struct regmap *top_regs, *disp_regs; - unsigned int base = sun8i_blender_base(mixer); - int plane_cnt, i; - -+ if (mixer->cfg->de_type == sun8i_mixer_de33) { -+ top_regs = mixer->top_regs; -+ disp_regs = mixer->disp_regs; -+ } else { -+ top_regs = mixer->engine.regs; -+ disp_regs = mixer->engine.regs; -+ } -+ - if (!mixer->hw_preconfigured) { - /* Enable the mixer */ -- regmap_write(mixer->engine.regs, SUN8I_MIXER_GLOBAL_CTL, -+ regmap_write(top_regs, SUN8I_MIXER_GLOBAL_CTL, - SUN8I_MIXER_GLOBAL_CTL_RT_EN); - } - -+ if (mixer->cfg->de_type == sun8i_mixer_de33) -+ regmap_write(top_regs, SUN50I_MIXER_GLOBAL_CLK, 1); -+ - /* Set background color to black */ -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_BKCOLOR(base), -+ regmap_write(disp_regs, SUN8I_MIXER_BLEND_BKCOLOR(base), - SUN8I_MIXER_BLEND_COLOR_BLACK); - - /* - * Set fill color of bottom plane to black. Generally not needed - * except when VI plane is at bottom (zpos = 0) and enabled. - */ -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), -+ regmap_write(disp_regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), - SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ATTR_FCOLOR(base, 0), -+ regmap_write(disp_regs, SUN8I_MIXER_BLEND_ATTR_FCOLOR(base, 0), - SUN8I_MIXER_BLEND_COLOR_BLACK); - - plane_cnt = mixer->cfg->vi_num + mixer->cfg->ui_num; - for (i = 0; i < plane_cnt; i++) -- regmap_write(mixer->engine.regs, -+ regmap_write(disp_regs, - SUN8I_MIXER_BLEND_MODE(base, i), - SUN8I_MIXER_BLEND_MODE_DEF); - - if (!mixer->hw_preconfigured) { -- regmap_update_bits(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), -+ regmap_update_bits(disp_regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), - SUN8I_MIXER_BLEND_PIPE_CTL_EN_MSK, 0); - } - } -@@ -613,6 +652,30 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - return PTR_ERR(mixer->engine.regs); - } - -+ if (mixer->cfg->de_type == sun8i_mixer_de33) { -+ regs = devm_platform_ioremap_resource(pdev, 1); -+ if (IS_ERR(regs)) -+ return PTR_ERR(regs); -+ -+ mixer->top_regs = devm_regmap_init_mmio(dev, regs, -+ &sun8i_top_regmap_config); -+ if (IS_ERR(mixer->top_regs)) { -+ dev_err(dev, "Couldn't create the top regmap\n"); -+ return PTR_ERR(mixer->top_regs); -+ } -+ -+ regs = devm_platform_ioremap_resource(pdev, 2); -+ if (IS_ERR(regs)) -+ return PTR_ERR(regs); -+ -+ mixer->disp_regs = devm_regmap_init_mmio(dev, regs, -+ &sun8i_disp_regmap_config); -+ if (IS_ERR(mixer->disp_regs)) { -+ dev_err(dev, "Couldn't create the disp regmap\n"); -+ return PTR_ERR(mixer->disp_regs); -+ } -+ } -+ - mixer->reset = devm_reset_control_get(dev, NULL); - if (IS_ERR(mixer->reset)) { - dev_err(dev, "Couldn't get our reset line\n"); -@@ -841,6 +904,18 @@ static const struct sun8i_mixer_cfg sun50i_h6_mixer0_cfg = { - .vi_num = 1, - }; - -+static const struct sun8i_mixer_cfg sun50i_h616_mixer0_cfg = { -+ .ccsc = CCSC_MIXER0_LAYOUT, -+ .de_type = sun8i_mixer_de33, -+ .has_formatter = 1, -+ .mod_rate = 600000000, -+ .scaler_mask = 0xf, -+ .scanline_yuv = 4096, -+ .ui_num = 3, -+ .vi_num = 1, -+ .map = {0, 6, 7, 8}, -+}; -+ - static const struct of_device_id sun8i_mixer_of_table[] = { - { - .compatible = "allwinner,sun8i-a83t-de2-mixer-0", -@@ -886,6 +961,10 @@ static const struct of_device_id sun8i_mixer_of_table[] = { - .compatible = "allwinner,sun50i-h6-de3-mixer-0", - .data = &sun50i_h6_mixer0_cfg, - }, -+ { -+ .compatible = "allwinner,sun50i-h616-de33-mixer-0", -+ .data = &sun50i_h616_mixer0_cfg, -+ }, - { } - }; - MODULE_DEVICE_TABLE(of, sun8i_mixer_of_table); -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h -index ecba096c553b..f67f4b124a19 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.h -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h -@@ -21,6 +21,10 @@ - #define SUN8I_MIXER_GLOBAL_DBUFF 0x8 - #define SUN8I_MIXER_GLOBAL_SIZE 0xc - -+#define SUN50I_MIXER_GLOBAL_SIZE 0x8 -+#define SUN50I_MIXER_GLOBAL_CLK 0xc -+#define SUN50I_MIXER_GLOBAL_DBUFF 0x10 -+ - #define SUN8I_MIXER_GLOBAL_CTL_RT_EN BIT(0) - - #define SUN8I_MIXER_GLOBAL_DBUFF_ENABLE BIT(0) -@@ -154,6 +158,7 @@ enum { - enum sun8i_mixer_type { - sun8i_mixer_de2, - sun8i_mixer_de3, -+ sun8i_mixer_de33, - }; - - /** -@@ -180,6 +185,7 @@ struct sun8i_mixer_cfg { - unsigned int de_type; - unsigned int has_formatter : 1; - unsigned int scanline_yuv; -+ unsigned int map[6]; - }; - - struct sun8i_mixer { -@@ -192,6 +198,9 @@ struct sun8i_mixer { - struct clk *bus_clk; - struct clk *mod_clk; - -+ struct regmap *top_regs; -+ struct regmap *disp_regs; -+ - struct sun4i_drv *drv; - bool hw_preconfigured; - }; -@@ -230,13 +239,16 @@ sun8i_blender_base(struct sun8i_mixer *mixer) - static inline struct regmap * - sun8i_blender_regmap(struct sun8i_mixer *mixer) - { -- return mixer->engine.regs; -+ return mixer->cfg->de_type == sun8i_mixer_de33 ? -+ mixer->disp_regs : mixer->engine.regs; - } - - static inline u32 - sun8i_channel_base(struct sun8i_mixer *mixer, int channel) - { -- if (mixer->cfg->de_type == sun8i_mixer_de3) -+ if (mixer->cfg->de_type == sun8i_mixer_de33) -+ return mixer->cfg->map[channel] * 0x20000 + DE2_CH_SIZE; -+ else if (mixer->cfg->de_type == sun8i_mixer_de3) - return DE3_CH_BASE + channel * DE3_CH_SIZE; - else - return DE2_CH_BASE + channel * DE2_CH_SIZE; --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch deleted file mode 100644 index 9028d40a3..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 412294545ec91452cc3eccff746a4243879b4cde Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:56 +1300 -Subject: drm: sun4i: de33: vi_scaler: add Display Engine 3.3 (DE33) support - -The vi_scaler appears to be used in preference to the ui_scaler module -for hardware video scaling in the DE33. - -Enable support for this scaler. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 19 +++++++++++++++---- - drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 7 ++++++- - 2 files changed, 21 insertions(+), 5 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -index 7f1231cf0f01..180be9d67d9c 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -@@ -95,12 +95,23 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, - hscale = state->src_w / state->crtc_w; - vscale = state->src_h / state->crtc_h; - -- sun8i_ui_scaler_setup(mixer, channel, src_w, src_h, dst_w, -- dst_h, hscale, vscale, hphase, vphase); -- sun8i_ui_scaler_enable(mixer, channel, true); -+ if (mixer->cfg->de_type == sun8i_mixer_de33) { -+ sun8i_vi_scaler_setup(mixer, channel, src_w, src_h, -+ dst_w, dst_h, hscale, vscale, -+ hphase, vphase, -+ state->fb->format); -+ } else { -+ sun8i_ui_scaler_setup(mixer, channel, src_w, src_h, -+ dst_w, dst_h, hscale, vscale, -+ hphase, vphase); -+ sun8i_ui_scaler_enable(mixer, channel, true); -+ } - } else { - DRM_DEBUG_DRIVER("HW scaling is not needed\n"); -- sun8i_ui_scaler_enable(mixer, channel, false); -+ if (mixer->cfg->de_type == sun8i_mixer_de33) -+ sun8i_vi_scaler_disable(mixer, channel); -+ else -+ sun8i_ui_scaler_enable(mixer, channel, false); - } - - /* Set base coordinates */ -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -index e7242301b312..9c7f6e7d71d5 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -@@ -835,7 +835,9 @@ static const u32 bicubic4coefftab32[480] = { - - static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel) - { -- if (mixer->cfg->de_type == sun8i_mixer_de3) -+ if (mixer->cfg->de_type == sun8i_mixer_de33) -+ return sun8i_channel_base(mixer, channel) + 0x3000; -+ else if (mixer->cfg->de_type == sun8i_mixer_de3) - return DE3_VI_SCALER_UNIT_BASE + - DE3_VI_SCALER_UNIT_SIZE * channel; - else -@@ -845,6 +847,9 @@ static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel) - - static bool sun8i_vi_scaler_is_vi_plane(struct sun8i_mixer *mixer, int channel) - { -+ if (mixer->cfg->de_type == sun8i_mixer_de33) -+ return mixer->cfg->map[channel] < mixer->cfg->vi_num; -+ - return true; - } - --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-support-YUV-formats-in-VI-scaler.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-support-YUV-formats-in-VI-scaler.patch deleted file mode 100644 index 1aff0b4bc..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-support-YUV-formats-in-VI-scaler.patch +++ /dev/null @@ -1,140 +0,0 @@ -From e0de25f60a3535d345b33dcc541c814499151788 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:44 +1300 -Subject: drm: sun4i: support YUV formats in VI scaler - -Now that YUV formats are available, enable support in the VI scaler. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin - -Changelog v4..v5: -- Add commit description ---- - drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 85 +++++++++++++++++-------- - 1 file changed, 58 insertions(+), 27 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -index 7ba75011adf9..2e49a6e5f1f1 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -@@ -843,6 +843,11 @@ static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel) - DE2_VI_SCALER_UNIT_SIZE * channel; - } - -+static bool sun8i_vi_scaler_is_vi_plane(struct sun8i_mixer *mixer, int channel) -+{ -+ return true; -+} -+ - static int sun8i_vi_scaler_coef_index(unsigned int step) - { - unsigned int scale, int_part, float_part; -@@ -867,44 +872,65 @@ static int sun8i_vi_scaler_coef_index(unsigned int step) - } - } - --static void sun8i_vi_scaler_set_coeff(struct regmap *map, u32 base, -- u32 hstep, u32 vstep, -- const struct drm_format_info *format) -+static void sun8i_vi_scaler_set_coeff_vi(struct regmap *map, u32 base, -+ u32 hstep, u32 vstep, -+ const struct drm_format_info *format) - { - const u32 *ch_left, *ch_right, *cy; -- int offset, i; -+ int offset; - -- if (format->hsub == 1 && format->vsub == 1) { -- ch_left = lan3coefftab32_left; -- ch_right = lan3coefftab32_right; -- cy = lan2coefftab32; -- } else { -+ if (format->is_yuv) { - ch_left = bicubic8coefftab32_left; - ch_right = bicubic8coefftab32_right; - cy = bicubic4coefftab32; -+ } else { -+ ch_left = lan3coefftab32_left; -+ ch_right = lan3coefftab32_right; -+ cy = lan2coefftab32; - } - - offset = sun8i_vi_scaler_coef_index(hstep) * - SUN8I_VI_SCALER_COEFF_COUNT; -- for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) { -- regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF0(base, i), -- lan3coefftab32_left[offset + i]); -- regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF1(base, i), -- lan3coefftab32_right[offset + i]); -- regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, i), -- ch_left[offset + i]); -- regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF1(base, i), -- ch_right[offset + i]); -- } -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_YHCOEFF0(base, 0), -+ &lan3coefftab32_left[offset], -+ SUN8I_VI_SCALER_COEFF_COUNT); -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_YHCOEFF1(base, 0), -+ &lan3coefftab32_right[offset], -+ SUN8I_VI_SCALER_COEFF_COUNT); -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, 0), -+ &ch_left[offset], SUN8I_VI_SCALER_COEFF_COUNT); -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_CHCOEFF1(base, 0), -+ &ch_right[offset], SUN8I_VI_SCALER_COEFF_COUNT); - - offset = sun8i_vi_scaler_coef_index(hstep) * - SUN8I_VI_SCALER_COEFF_COUNT; -- for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) { -- regmap_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, i), -- lan2coefftab32[offset + i]); -- regmap_write(map, SUN8I_SCALER_VSU_CVCOEFF(base, i), -- cy[offset + i]); -- } -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, 0), -+ &lan2coefftab32[offset], SUN8I_VI_SCALER_COEFF_COUNT); -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_CVCOEFF(base, 0), -+ &cy[offset], SUN8I_VI_SCALER_COEFF_COUNT); -+} -+ -+static void sun8i_vi_scaler_set_coeff_ui(struct regmap *map, u32 base, -+ u32 hstep, u32 vstep, -+ const struct drm_format_info *format) -+{ -+ const u32 *table; -+ int offset; -+ -+ offset = sun8i_vi_scaler_coef_index(hstep) * -+ SUN8I_VI_SCALER_COEFF_COUNT; -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_YHCOEFF0(base, 0), -+ &lan2coefftab32[offset], SUN8I_VI_SCALER_COEFF_COUNT); -+ offset = sun8i_vi_scaler_coef_index(vstep) * -+ SUN8I_VI_SCALER_COEFF_COUNT; -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, 0), -+ &lan2coefftab32[offset], SUN8I_VI_SCALER_COEFF_COUNT); -+ -+ table = format->is_yuv ? bicubic4coefftab32 : lan2coefftab32; -+ offset = sun8i_vi_scaler_coef_index(hstep) * -+ SUN8I_VI_SCALER_COEFF_COUNT; -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, 0), -+ &table[offset], SUN8I_VI_SCALER_COEFF_COUNT); - } - - void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable) -@@ -994,6 +1020,11 @@ void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, - SUN8I_SCALER_VSU_CHPHASE(base), chphase); - regmap_write(mixer->engine.regs, - SUN8I_SCALER_VSU_CVPHASE(base), cvphase); -- sun8i_vi_scaler_set_coeff(mixer->engine.regs, base, -- hscale, vscale, format); -+ -+ if (sun8i_vi_scaler_is_vi_plane(mixer, layer)) -+ sun8i_vi_scaler_set_coeff_vi(mixer->engine.regs, base, -+ hscale, vscale, format); -+ else -+ sun8i_vi_scaler_set_coeff_ui(mixer->engine.regs, base, -+ hscale, vscale, format); - } --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch deleted file mode 100644 index 59a56dd02..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 0c10a80b8e37d9a7fc57d8bf968c70419423065a Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:47 +1300 -Subject: drm: sun4i: vi_scaler refactor vi_scaler enablement - -If the video scaler is required, then it is obligatory to set the -relevant register to enable it, so move this to the -sun8i_vi_scaler_setup() function. - -This simplifies the alternate case (scaler not required) so replace the -vi_scaler_enable() function with a vi_scaler_disable() function. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 3 +-- - drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 21 +++++++++++---------- - drivers/gpu/drm/sun4i/sun8i_vi_scaler.h | 2 +- - 3 files changed, 13 insertions(+), 13 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index 4647e9bcccaa..e348fd0a3d81 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -@@ -156,10 +156,9 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - sun8i_vi_scaler_setup(mixer, channel, src_w, src_h, dst_w, - dst_h, hscale, vscale, hphase, vphase, - format); -- sun8i_vi_scaler_enable(mixer, channel, true); - } else { - DRM_DEBUG_DRIVER("HW scaling is not needed\n"); -- sun8i_vi_scaler_enable(mixer, channel, false); -+ sun8i_vi_scaler_disable(mixer, channel); - } - - regmap_write(mixer->engine.regs, -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -index aa346c3beb30..e7242301b312 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -@@ -933,20 +933,13 @@ static void sun8i_vi_scaler_set_coeff_ui(struct regmap *map, u32 base, - &table[offset], SUN8I_VI_SCALER_COEFF_COUNT); - } - --void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable) -+void sun8i_vi_scaler_disable(struct sun8i_mixer *mixer, int layer) - { -- u32 val, base; -+ u32 base; - - base = sun8i_vi_scaler_base(mixer, layer); - -- if (enable) -- val = SUN8I_SCALER_VSU_CTRL_EN | -- SUN8I_SCALER_VSU_CTRL_COEFF_RDY; -- else -- val = 0; -- -- regmap_write(mixer->engine.regs, -- SUN8I_SCALER_VSU_CTRL(base), val); -+ regmap_write(mixer->engine.regs, SUN8I_SCALER_VSU_CTRL(base), 0); - } - - void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, -@@ -982,6 +975,9 @@ void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, - cvphase = vphase; - } - -+ regmap_write(mixer->engine.regs, SUN8I_SCALER_VSU_CTRL(base), -+ SUN8I_SCALER_VSU_CTRL_EN); -+ - if (mixer->cfg->de_type >= sun8i_mixer_de3) { - u32 val; - -@@ -1027,4 +1023,9 @@ void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, - else - sun8i_vi_scaler_set_coeff_ui(mixer->engine.regs, base, - hscale, vscale, format); -+ -+ if (mixer->cfg->de_type <= sun8i_mixer_de3) -+ regmap_write(mixer->engine.regs, SUN8I_SCALER_VSU_CTRL(base), -+ SUN8I_SCALER_VSU_CTRL_EN | -+ SUN8I_SCALER_VSU_CTRL_COEFF_RDY); - } -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h -index 68f6593b369a..e801bc7a4189 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h -@@ -69,7 +69,7 @@ - #define SUN50I_SCALER_VSU_ANGLE_SHIFT(x) (((x) << 16) & 0xF) - #define SUN50I_SCALER_VSU_ANGLE_OFFSET(x) ((x) & 0xFF) - --void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable); -+void sun8i_vi_scaler_disable(struct sun8i_mixer *mixer, int layer); - void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, - u32 src_w, u32 src_h, u32 dst_w, u32 dst_h, - u32 hscale, u32 vscale, u32 hphase, u32 vphase, --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/dt-bindings-allwinner-add-H616-DE33-bus-binding.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/dt-bindings-allwinner-add-H616-DE33-bus-binding.patch deleted file mode 100644 index 86b0c0cb3..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/dt-bindings-allwinner-add-H616-DE33-bus-binding.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b8344d8eb9d000bc2984a5fcafc25b527f361b5b Mon Sep 17 00:00:00 2001 -From: Ryan Walklin -Date: Sun, 29 Sep 2024 22:04:51 +1300 -Subject: dt-bindings: allwinner: add H616 DE33 bus binding - -The Allwinner H616 and variants have a new display engine revision -(DE33). - -Add a display engine bus binding for the DE33. - -Signed-off-by: Ryan Walklin -Acked-by: Conor Dooley -Reviewed-by: Chen-Yu Tsai ---- - .../devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml b/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml -index 9845a187bdf6..ea7ee89158c6 100644 ---- a/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml -+++ b/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml -@@ -24,7 +24,9 @@ properties: - oneOf: - - const: allwinner,sun50i-a64-de2 - - items: -- - const: allwinner,sun50i-h6-de3 -+ - enum: -+ - allwinner,sun50i-h6-de3 -+ - allwinner,sun50i-h616-de33 - - const: allwinner,sun50i-a64-de2 - - reg: --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch b/patch/kernel/archive/sunxi-6.16/patches.drm/dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch deleted file mode 100644 index d3a92736c..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 12d7983166ed867dd72c023af036b1397aec66ba Mon Sep 17 00:00:00 2001 -From: Ryan Walklin -Date: Sun, 29 Sep 2024 22:04:53 +1300 -Subject: dt-bindings: allwinner: add H616 DE33 mixer binding - -The Allwinner H616 and variants have a new display engine revision -(DE33). - -The mixer configuration registers are significantly different to the DE3 -and DE2 revisions, being split into separate top and display blocks, -therefore a fallback for the mixer compatible is not provided. - -Add a display engine mixer binding for the DE33. - -Signed-off-by: Ryan Walklin -Acked-by: Conor Dooley -Reviewed-by: Chen-Yu Tsai ---- - .../bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml -index b75c1ec686ad..c37eb8ae1b8e 100644 ---- a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml -+++ b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml -@@ -24,6 +24,7 @@ properties: - - allwinner,sun50i-a64-de2-mixer-0 - - allwinner,sun50i-a64-de2-mixer-1 - - allwinner,sun50i-h6-de3-mixer-0 -+ - allwinner,sun50i-h616-de33-mixer-0 - - reg: - maxItems: 1 --- -2.35.3 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/Revert-ASoC-soc-core-merge-snd_soc_unregister_component-and-snd.patch b/patch/kernel/archive/sunxi-6.16/patches.megous/Revert-ASoC-soc-core-merge-snd_soc_unregister_component-and-snd.patch deleted file mode 100644 index 20c5ca447..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/Revert-ASoC-soc-core-merge-snd_soc_unregister_component-and-snd.patch +++ /dev/null @@ -1,80 +0,0 @@ -From fdf9a313361032f5524bcbb6afd964b95c900415 Mon Sep 17 00:00:00 2001 -From: Ondrej Jirman -Date: Fri, 8 Aug 2025 17:54:21 +0200 -Subject: Revert "ASoC: soc-core: merge snd_soc_unregister_component() and - snd_soc_unregister_component_by_driver()" - -This reverts commit 144d6dfc7482455eabf8e8caa974a6e8d9572705. ---- - include/sound/soc.h | 2 +- - sound/soc/soc-core.c | 30 +++++++++++++++++++++++++----- - 2 files changed, 26 insertions(+), 6 deletions(-) - -diff --git a/include/sound/soc.h b/include/sound/soc.h -index 1fffef311c41..8d113ee8c2bc 100644 ---- a/include/sound/soc.h -+++ b/include/sound/soc.h -@@ -444,7 +444,7 @@ int snd_soc_register_component(struct device *dev, - int devm_snd_soc_register_component(struct device *dev, - const struct snd_soc_component_driver *component_driver, - struct snd_soc_dai_driver *dai_drv, int num_dai); --#define snd_soc_unregister_component(dev) snd_soc_unregister_component_by_driver(dev, NULL) -+void snd_soc_unregister_component(struct device *dev); - void snd_soc_unregister_component_by_driver(struct device *dev, - const struct snd_soc_component_driver *component_driver); - struct snd_soc_component *snd_soc_lookup_component_nolocked(struct device *dev, -diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c -index d31ee6e9abef..222edc0b433a 100644 ---- a/sound/soc/soc-core.c -+++ b/sound/soc/soc-core.c -@@ -2931,14 +2931,34 @@ EXPORT_SYMBOL_GPL(snd_soc_register_component); - void snd_soc_unregister_component_by_driver(struct device *dev, - const struct snd_soc_component_driver *component_driver) - { -- const char *driver_name = NULL; -+ struct snd_soc_component *component; - -- if (component_driver) -- driver_name = component_driver->name; -+ if (!component_driver) -+ return; - -+ mutex_lock(&client_mutex); -+ component = snd_soc_lookup_component_nolocked(dev, component_driver->name); -+ if (!component) -+ goto out; -+ -+ snd_soc_del_component_unlocked(component); -+ -+out: -+ mutex_unlock(&client_mutex); -+} -+EXPORT_SYMBOL_GPL(snd_soc_unregister_component_by_driver); -+ -+/** -+ * snd_soc_unregister_component - Unregister all related component -+ * from the ASoC core -+ * -+ * @dev: The device to unregister -+ */ -+void snd_soc_unregister_component(struct device *dev) -+{ - mutex_lock(&client_mutex); - while (1) { -- struct snd_soc_component *component = snd_soc_lookup_component_nolocked(dev, driver_name); -+ struct snd_soc_component *component = snd_soc_lookup_component_nolocked(dev, NULL); - - if (!component) - break; -@@ -2947,7 +2967,7 @@ void snd_soc_unregister_component_by_driver(struct device *dev, - } - mutex_unlock(&client_mutex); - } --EXPORT_SYMBOL_GPL(snd_soc_unregister_component_by_driver); -+EXPORT_SYMBOL_GPL(snd_soc_unregister_component); - - /* Retrieve a card's name from device tree */ - int snd_soc_of_parse_card_name(struct snd_soc_card *card, --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinephone-1.2-be.patch b/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinephone-1.2-be.patch deleted file mode 100644 index dbd07ba91..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinephone-1.2-be.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 3abf71beb7655982c8ea766110734342d1b4b975 Mon Sep 17 00:00:00 2001 -From: Ondrej Jirman -Date: Thu, 10 Nov 2022 20:11:10 +0100 -Subject: arm64: dts: sun50i-a64-pinephone: Add support for Pinephone 1.2 beta - -Beta versions uses a different magnetometer chip. - -Signed-off-by: Ondrej Jirman ---- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../allwinner/sun50i-a64-pinephone-1.2b.dts | 19 +++++++++++++++++++ - 2 files changed, 20 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2b.dts - -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 773cc02a13d0..a733b69fbb6b 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -12,6 +12,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinebook.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.0.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.1.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2b.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-early-adopter.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2b.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2b.dts -new file mode 100644 -index 000000000000..f5ac2e9ca836 ---- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2b.dts -@@ -0,0 +1,19 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+// Copyright (C) 2020 Ondrej Jirman -+ -+/dts-v1/; -+ -+#include "sun50i-a64-pinephone-1.2.dts" -+ -+/ { -+ model = "Pine64 PinePhone (1.2b)"; -+ compatible = "pine64,pinephone-1.2b", "pine64,pinephone", "allwinner,sun50i-a64"; -+}; -+ -+&lis3mdl { -+ status = "disabled"; -+}; -+ -+&af8133j { -+ status = "okay"; -+}; --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-sun50i-a64-Switch-parent-of-MIPI-DSI-to-periph0-1x.patch b/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-sun50i-a64-Switch-parent-of-MIPI-DSI-to-periph0-1x.patch deleted file mode 100644 index 16f36da5a..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-sun50i-a64-Switch-parent-of-MIPI-DSI-to-periph0-1x.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 8750f19f56a935544b273de02153bca8cca3067e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= -Date: Mon, 14 Aug 2023 07:28:11 +0200 -Subject: clk: sunxi-ng: sun50i-a64: Switch parent of MIPI-DSI to periph0(1x) - -This makes video0(1x) clock less constrained, and improves compatibility -with external monitors on Pinephone when using both internal display -and HDMI output at once. - -Signed-off-by: Ondrej Jirman ---- - drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c -index c8cdb342b1a0..e76a1c10f390 100644 ---- a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c -+++ b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c -@@ -962,6 +962,8 @@ static struct ccu_mux_nb sun50i_a64_cpu_nb = { - .bypass_index = 1, /* index of 24 MHz oscillator */ - }; - -+#define CCU_MIPI_DSI_CLK 0x168 -+ - static int sun50i_a64_ccu_probe(struct platform_device *pdev) - { - void __iomem *reg; -@@ -981,9 +983,16 @@ static int sun50i_a64_ccu_probe(struct platform_device *pdev) - writel(0x10040000, reg + SUN50I_A64_PLL_AUDIO_BIAS_REG); - - ret = of_property_read_u32_index(of_chosen, "p-boot,framebuffer-start", 0, &val); -- if (ret) -+ if (ret) { - writel(0x515, reg + SUN50I_A64_PLL_MIPI_REG); - -+ /* Set MIPI-DSI clock parent to periph0(1x), so that video0(1x) is free to change. */ -+ val = readl(reg + CCU_MIPI_DSI_CLK); -+ val &= 0x30f; -+ val |= (2 << 8) | ((4 - 1) << 0); /* M-1 */ -+ writel(val, reg + CCU_MIPI_DSI_CLK); -+ } -+ - ret = devm_sunxi_ccu_probe(&pdev->dev, reg, &sun50i_a64_ccu_desc); - if (ret) - return ret; --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/drm-panel-st7703-Fix-xbd599-timings-to-make-refresh-rate-exactl.patch b/patch/kernel/archive/sunxi-6.16/patches.megous/drm-panel-st7703-Fix-xbd599-timings-to-make-refresh-rate-exactl.patch deleted file mode 100644 index 4afd100a9..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/drm-panel-st7703-Fix-xbd599-timings-to-make-refresh-rate-exactl.patch +++ /dev/null @@ -1,37 +0,0 @@ -From f61e96564da25fff51dd3e764d471b9320937e4c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= -Date: Thu, 29 Oct 2020 04:55:40 +0100 -Subject: drm/panel: st7703: Fix xbd599 timings to make refresh rate exactly - 60.006Hz - -Signed-off-by: Ondrej Jirman ---- - drivers/gpu/drm/panel/panel-sitronix-st7703.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c -index 67e8e45498cb..6d3ad83be141 100644 ---- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c -+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c -@@ -312,14 +312,14 @@ static void xbd599_init_sequence(struct mipi_dsi_multi_context *dsi_ctx) - - static const struct drm_display_mode xbd599_mode = { - .hdisplay = 720, -- .hsync_start = 720 + 40, -- .hsync_end = 720 + 40 + 40, -- .htotal = 720 + 40 + 40 + 40, -+ .hsync_start = 720 + 30, -+ .hsync_end = 720 + 30 + 28, -+ .htotal = 720 + 30 + 28 + 30, - .vdisplay = 1440, - .vsync_start = 1440 + 18, - .vsync_end = 1440 + 18 + 10, - .vtotal = 1440 + 18 + 10 + 17, -- .clock = 69000, -+ .clock = 72000, - .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC, - .width_mm = 68, - .height_mm = 136, --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/drm-sun4i-Implement-gamma-correction.patch b/patch/kernel/archive/sunxi-6.16/patches.megous/drm-sun4i-Implement-gamma-correction.patch deleted file mode 100644 index d4232290a..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/drm-sun4i-Implement-gamma-correction.patch +++ /dev/null @@ -1,131 +0,0 @@ -From 75d1c33957e1db4ac4f803c85ff58c45d32fad5b Mon Sep 17 00:00:00 2001 -From: Vasily Khoruzhick -Date: Wed, 13 Mar 2019 19:50:17 -0700 -Subject: drm/sun4i: Implement gamma correction - -Add support for gamma corretion to sun4i TCON driver. Its LUT has 256 -entries and can be updated only when gamma correction is disabled. - -Signed-off-by: Vasily Khoruzhick ---- - drivers/gpu/drm/sun4i/sun4i_crtc.c | 14 +++++++++++++ - drivers/gpu/drm/sun4i/sun4i_tcon.c | 33 ++++++++++++++++++++++++++++++ - drivers/gpu/drm/sun4i/sun4i_tcon.h | 12 ++++++++++- - 3 files changed, 58 insertions(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/sun4i/sun4i_crtc.c b/drivers/gpu/drm/sun4i/sun4i_crtc.c -index 18e74047b0f5..a09944a49e89 100644 ---- a/drivers/gpu/drm/sun4i/sun4i_crtc.c -+++ b/drivers/gpu/drm/sun4i/sun4i_crtc.c -@@ -103,6 +103,20 @@ static void sun4i_crtc_atomic_flush(struct drm_crtc *crtc, - drm_crtc_send_vblank_event(crtc, event); - spin_unlock_irq(&crtc->dev->event_lock); - } -+ -+ if (crtc->state->color_mgmt_changed) { -+ if (crtc->state->gamma_lut) { -+ /* LUT can be only updated when gamma correction is -+ * disabled -+ */ -+ sun4i_tcon_enable_gamma(scrtc->tcon, false); -+ sun4i_tcon_load_gamma_lut(scrtc->tcon, -+ crtc->state->gamma_lut->data); -+ sun4i_tcon_enable_gamma(scrtc->tcon, true); -+ } else -+ sun4i_tcon_enable_gamma(scrtc->tcon, false); -+ } -+ - } - - static void sun4i_crtc_atomic_disable(struct drm_crtc *crtc, -diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c -index fca95b76e258..ac6ad2ed1cc0 100644 ---- a/drivers/gpu/drm/sun4i/sun4i_tcon.c -+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c -@@ -240,6 +240,34 @@ void sun4i_tcon_enable_vblank(struct sun4i_tcon *tcon, bool enable) - } - EXPORT_SYMBOL(sun4i_tcon_enable_vblank); - -+void sun4i_tcon_load_gamma_lut(struct sun4i_tcon *tcon, -+ struct drm_color_lut *lut) -+{ -+ int i; -+ -+ for (i = 0; i < SUN4I_TCON_GAMMA_LUT_SIZE; i++) { -+ u32 r, g, b; -+ -+ r = drm_color_lut_extract(lut[i].red, 8); -+ g = drm_color_lut_extract(lut[i].green, 8); -+ b = drm_color_lut_extract(lut[i].blue, 8); -+ -+ regmap_write(tcon->regs, SUN4I_TCON_GAMMA_TABLE_REG + 4 * i, -+ SUN4I_TCON_GAMMA_TABLE_R(r) | -+ SUN4I_TCON_GAMMA_TABLE_G(g) | -+ SUN4I_TCON_GAMMA_TABLE_B(b)); -+ } -+} -+EXPORT_SYMBOL(sun4i_tcon_load_gamma_lut); -+ -+void sun4i_tcon_enable_gamma(struct sun4i_tcon *tcon, bool enable) -+{ -+ regmap_update_bits(tcon->regs, SUN4I_TCON_GCTL_REG, -+ SUN4I_TCON_GCTL_GAMMA_ENABLE, -+ enable ? SUN4I_TCON_GCTL_GAMMA_ENABLE : 0); -+} -+EXPORT_SYMBOL(sun4i_tcon_enable_gamma); -+ - /* - * This function is a helper for TCON output muxing. The TCON output - * muxing control register in earlier SoCs (without the TCON TOP block) -@@ -1288,6 +1316,11 @@ static int sun4i_tcon_bind(struct device *dev, struct device *master, - - list_add_tail(&tcon->list, &drv->tcon_list); - -+ drm_mode_crtc_set_gamma_size(&tcon->crtc->crtc, -+ SUN4I_TCON_GAMMA_LUT_SIZE); -+ drm_crtc_enable_color_mgmt(&tcon->crtc->crtc, 0, false, -+ tcon->crtc->crtc.gamma_size); -+ - return 0; - - err_free_dclk: -diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h b/drivers/gpu/drm/sun4i/sun4i_tcon.h -index fa23aa23fe4a..97df39db2a31 100644 ---- a/drivers/gpu/drm/sun4i/sun4i_tcon.h -+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h -@@ -19,6 +19,7 @@ - - #define SUN4I_TCON_GCTL_REG 0x0 - #define SUN4I_TCON_GCTL_TCON_ENABLE BIT(31) -+#define SUN4I_TCON_GCTL_GAMMA_ENABLE BIT(30) - #define SUN4I_TCON_GCTL_IOMAP_MASK BIT(0) - #define SUN4I_TCON_GCTL_IOMAP_TCON1 (1 << 0) - #define SUN4I_TCON_GCTL_IOMAP_TCON0 (0 << 0) -@@ -229,7 +230,13 @@ - #define SUN4I_TCON1_FILL_BEG2_REG 0x31c - #define SUN4I_TCON1_FILL_END2_REG 0x320 - #define SUN4I_TCON1_FILL_DATA2_REG 0x324 --#define SUN4I_TCON1_GAMMA_TABLE_REG 0x400 -+ -+#define SUN4I_TCON_GAMMA_TABLE_REG 0x400 -+#define SUN4I_TCON_GAMMA_TABLE_B(x) ((x) & 0xff) -+#define SUN4I_TCON_GAMMA_TABLE_G(x) (((x) & 0xff) << 8) -+#define SUN4I_TCON_GAMMA_TABLE_R(x) (((x) & 0xff) << 16) -+ -+#define SUN4I_TCON_GAMMA_LUT_SIZE 256 - - #define SUN4I_TCON_MAX_CHANNELS 2 - -@@ -297,6 +304,9 @@ void sun4i_tcon_mode_set(struct sun4i_tcon *tcon, - const struct drm_display_mode *mode); - void sun4i_tcon_set_status(struct sun4i_tcon *crtc, - const struct drm_encoder *encoder, bool enable); -+void sun4i_tcon_load_gamma_lut(struct sun4i_tcon *tcon, -+ struct drm_color_lut *lut); -+void sun4i_tcon_enable_gamma(struct sun4i_tcon *tcon, bool enable); - - extern const struct of_device_id sun4i_tcon_of_table[]; - --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/drm-sun4i-Support-taking-over-display-pipeline-state-from-p-boo.patch b/patch/kernel/archive/sunxi-6.16/patches.megous/drm-sun4i-Support-taking-over-display-pipeline-state-from-p-boo.patch deleted file mode 100644 index 83204dec8..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/drm-sun4i-Support-taking-over-display-pipeline-state-from-p-boo.patch +++ /dev/null @@ -1,547 +0,0 @@ -From 169ec4104890f77b3ed761bd92934ce91906d03c Mon Sep 17 00:00:00 2001 -From: Ondrej Jirman -Date: Sun, 30 Apr 2023 18:19:16 +0200 -Subject: drm/sun4i: Support taking over display pipeline state from p-boot - -For perfect, flickerless and fast boot. - -Signed-off-by: Ondrej Jirman ---- - drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 4 +- - drivers/gpu/drm/drm_fbdev_ttm.c | 14 +++++ - drivers/gpu/drm/panel/panel-sitronix-st7703.c | 17 ++++++ - drivers/gpu/drm/sun4i/sun4i_tcon.c | 23 ++++++++ - drivers/gpu/drm/sun4i/sun4i_tcon.h | 2 + - drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 13 +++++ - drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h | 2 + - drivers/gpu/drm/sun4i/sun8i_mixer.c | 52 +++++++++++++++++++ - drivers/gpu/drm/sun4i/sun8i_mixer.h | 3 ++ - drivers/phy/allwinner/phy-sun6i-mipi-dphy.c | 14 +++++ - drivers/video/backlight/pwm_bl.c | 25 ++++++++- - 11 files changed, 167 insertions(+), 2 deletions(-) - -diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c -index 4b3068bdfdf2..c8cdb342b1a0 100644 ---- a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c -+++ b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c -@@ -980,7 +980,9 @@ static int sun50i_a64_ccu_probe(struct platform_device *pdev) - /* Decrease the PLL AUDIO bias current to reduce noise. */ - writel(0x10040000, reg + SUN50I_A64_PLL_AUDIO_BIAS_REG); - -- writel(0x515, reg + SUN50I_A64_PLL_MIPI_REG); -+ ret = of_property_read_u32_index(of_chosen, "p-boot,framebuffer-start", 0, &val); -+ if (ret) -+ writel(0x515, reg + SUN50I_A64_PLL_MIPI_REG); - - ret = devm_sunxi_ccu_probe(&pdev->dev, reg, &sun50i_a64_ccu_desc); - if (ret) -diff --git a/drivers/gpu/drm/drm_fbdev_ttm.c b/drivers/gpu/drm/drm_fbdev_ttm.c -index 73d35d59590c..f9d71d285e2f 100644 ---- a/drivers/gpu/drm/drm_fbdev_ttm.c -+++ b/drivers/gpu/drm/drm_fbdev_ttm.c -@@ -179,6 +179,7 @@ int drm_fbdev_ttm_driver_fbdev_probe(struct drm_fb_helper *fb_helper, - struct fb_info *info; - size_t screen_size; - void *screen_buffer; -+ u32 fb_start; - u32 format; - int ret; - -@@ -228,6 +229,19 @@ int drm_fbdev_ttm_driver_fbdev_probe(struct drm_fb_helper *fb_helper, - if (ret) - goto err_drm_fb_helper_release_info; - -+ ret = of_property_read_u32_index(of_chosen, "p-boot,framebuffer-start", 0, &fb_start); -+ if (ret == 0) { -+ // copy framebuffer contents from p-boot if reasonable -+ if (screen_size != 720 * 1440 * 4) { -+ drm_err(dev, "surface width(%d), height(%d) and bpp(%d) does not match p-boot requirements\n", -+ sizes->surface_width, sizes->surface_height, -+ sizes->surface_bpp); -+ return 0; -+ } -+ -+ memcpy(screen_buffer, __va(fb_start), screen_size); -+ } -+ - return 0; - - err_drm_fb_helper_release_info: -diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c -index 6d3ad83be141..8e359c9e0a09 100644 ---- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c -+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c -@@ -62,6 +62,7 @@ struct st7703 { - struct dentry *debugfs; - const struct st7703_panel_desc *desc; - enum drm_panel_orientation orientation; -+ bool hw_preenabled; - }; - - struct st7703_panel_desc { -@@ -679,6 +680,11 @@ static int st7703_enable(struct drm_panel *panel) - struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); - struct mipi_dsi_multi_context dsi_ctx = {.dsi = dsi}; - -+ if (ctx->hw_preenabled) { -+ ctx->hw_preenabled = false; -+ return 0; -+ } -+ - ctx->desc->init_sequence(&dsi_ctx); - - mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx); -@@ -726,8 +732,10 @@ static int st7703_prepare(struct drm_panel *panel) - struct st7703 *ctx = panel_to_st7703(panel); - int ret; - -+ if (!ctx->hw_preenabled) { - dev_dbg(ctx->dev, "Resetting the panel\n"); - gpiod_set_value_cansleep(ctx->reset_gpio, 1); -+ } - - ret = regulator_enable(ctx->iovcc); - if (ret < 0) { -@@ -743,10 +751,12 @@ static int st7703_prepare(struct drm_panel *panel) - } - - /* Give power supplies time to stabilize before deasserting reset. */ -+ if (!ctx->hw_preenabled) { - usleep_range(10000, 20000); - - gpiod_set_value_cansleep(ctx->reset_gpio, 0); - usleep_range(15000, 20000); -+ } - - return 0; - } -@@ -844,12 +854,19 @@ static int st7703_probe(struct mipi_dsi_device *dsi) - { - struct device *dev = &dsi->dev; - struct st7703 *ctx; -+ u32 fb_start; - int ret; - - ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); - if (!ctx) - return -ENOMEM; - -+ ret = of_property_read_u32_index(of_chosen, "p-boot,framebuffer-start", 0, &fb_start); -+ if (ret == 0) { -+ /* the display pipeline is already initialized by p-boot */ -+ ctx->hw_preenabled = true; -+ } -+ - ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); - if (IS_ERR(ctx->reset_gpio)) - return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio), "Failed to get reset gpio\n"); -diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c -index ac6ad2ed1cc0..b36c1ea0948c 100644 ---- a/drivers/gpu/drm/sun4i/sun4i_tcon.c -+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c -@@ -40,6 +40,8 @@ - #include "sun8i_tcon_top.h" - #include "sunxi_engine.h" - -+static bool hw_preconfigured; -+ - static struct drm_connector *sun4i_tcon_get_connector(const struct drm_encoder *encoder) - { - struct drm_connector *connector; -@@ -743,6 +745,13 @@ void sun4i_tcon_mode_set(struct sun4i_tcon *tcon, - const struct drm_encoder *encoder, - const struct drm_display_mode *mode) - { -+ if (tcon->hw_preconfigured) { -+ // avoid the first modeset -+ tcon->hw_preconfigured = false; -+ hw_preconfigured = false; -+ return; -+ } -+ - switch (encoder->encoder_type) { - case DRM_MODE_ENCODER_DSI: - /* DSI is tied to special case of CPU interface */ -@@ -883,6 +892,7 @@ static int sun4i_tcon_init_regmap(struct device *dev, - return PTR_ERR(tcon->regs); - } - -+ if (!tcon->hw_preconfigured) { - /* Make sure the TCON is disabled and all IRQs are off */ - regmap_write(tcon->regs, SUN4I_TCON_GCTL_REG, 0); - regmap_write(tcon->regs, SUN4I_TCON_GINT0_REG, 0); -@@ -891,6 +901,7 @@ static int sun4i_tcon_init_regmap(struct device *dev, - /* Disable IO lines and set them to tristate */ - regmap_write(tcon->regs, SUN4I_TCON0_IO_TRI_REG, ~0); - regmap_write(tcon->regs, SUN4I_TCON1_IO_TRI_REG, ~0); -+ } - - return 0; - } -@@ -1162,6 +1173,9 @@ static int sun4i_tcon_bind(struct device *dev, struct device *master, - tcon->dev = dev; - tcon->id = engine->id; - tcon->quirks = of_device_get_match_data(dev); -+ -+ if (tcon->id == 0) -+ tcon->hw_preconfigured = hw_preconfigured; - - tcon->lcd_rst = devm_reset_control_get(dev, "lcd"); - if (IS_ERR(tcon->lcd_rst)) { -@@ -1183,12 +1197,14 @@ static int sun4i_tcon_bind(struct device *dev, struct device *master, - } - } - -+ if (!tcon->hw_preconfigured) { - /* Make sure our TCON is reset */ - ret = reset_control_reset(tcon->lcd_rst); - if (ret) { - dev_err(dev, "Couldn't deassert our reset line\n"); - return ret; - } -+ } - - if (tcon->quirks->supports_lvds) { - /* -@@ -1352,8 +1368,15 @@ static int sun4i_tcon_probe(struct platform_device *pdev) - const struct sun4i_tcon_quirks *quirks; - struct drm_bridge *bridge; - struct drm_panel *panel; -+ u32 fb_start; - int ret; - -+ ret = of_property_read_u32_index(of_chosen, "p-boot,framebuffer-start", 0, &fb_start); -+ if (ret == 0) { -+ /* the display pipeline is already initialized by p-boot */ -+ hw_preconfigured = true; -+ } -+ - quirks = of_device_get_match_data(&pdev->dev); - - /* panels and bridges are present only on TCONs with channel 0 */ -diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h b/drivers/gpu/drm/sun4i/sun4i_tcon.h -index 97df39db2a31..864d70b9d242 100644 ---- a/drivers/gpu/drm/sun4i/sun4i_tcon.h -+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h -@@ -293,6 +293,8 @@ struct sun4i_tcon { - - /* TCON list management */ - struct list_head list; -+ -+ bool hw_preconfigured; - }; - - struct drm_bridge *sun4i_tcon_find_bridge(struct device_node *node); -diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c -index c35b70d83e53..3644db360a30 100644 ---- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c -+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c -@@ -732,6 +732,7 @@ static void sun6i_dsi_encoder_enable(struct drm_encoder *encoder) - reset_control_deassert(dsi->reset); - clk_prepare_enable(dsi->mod_clk); - -+ if (!dsi->hw_preconfigured) { - /* - * Enable the DSI block. - */ -@@ -758,6 +759,7 @@ static void sun6i_dsi_encoder_enable(struct drm_encoder *encoder) - sun6i_dsi_setup_inst_loop(dsi, mode); - sun6i_dsi_setup_format(dsi, mode); - sun6i_dsi_setup_timings(dsi, mode); -+ } - - phy_init(dsi->dphy); - -@@ -787,11 +789,15 @@ static void sun6i_dsi_encoder_enable(struct drm_encoder *encoder) - if (dsi->panel) - drm_panel_enable(dsi->panel); - -+ if (!dsi->hw_preconfigured) { - sun6i_dsi_start(dsi, DSI_START_HSC); - - udelay(1000); - - sun6i_dsi_start(dsi, DSI_START_HSD); -+ } -+ -+ dsi->hw_preconfigured = false; - } - - static void sun6i_dsi_encoder_disable(struct drm_encoder *encoder) -@@ -1105,6 +1111,7 @@ static int sun6i_dsi_probe(struct platform_device *pdev) - struct device *dev = &pdev->dev; - struct sun6i_dsi *dsi; - void __iomem *base; -+ u32 fb_start; - int ret; - - variant = device_get_match_data(dev); -@@ -1120,6 +1127,12 @@ static int sun6i_dsi_probe(struct platform_device *pdev) - dsi->host.dev = dev; - dsi->variant = variant; - -+ ret = of_property_read_u32_index(of_chosen, "p-boot,framebuffer-start", 0, &fb_start); -+ if (ret == 0) { -+ /* the display pipeline is already initialized by p-boot */ -+ dsi->hw_preconfigured = true; -+ } -+ - base = devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(base)) { - dev_err(dev, "Couldn't map the DSI encoder registers\n"); -diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h -index f1ddefe0f554..958c2997ab43 100644 ---- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h -+++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h -@@ -38,6 +38,8 @@ struct sun6i_dsi { - struct drm_panel *panel; - - const struct sun6i_dsi_variant *variant; -+ -+ bool hw_preconfigured; - }; - - static inline struct sun6i_dsi *host_to_sun6i_dsi(struct mipi_dsi_host *host) -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index 8b41d33baa30..fbfa7e6a25aa 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -24,6 +24,7 @@ - #include - - #include "sun4i_drv.h" -+#include "sun4i_tcon.h" - #include "sun8i_mixer.h" - #include "sun8i_ui_layer.h" - #include "sun8i_vi_layer.h" -@@ -34,6 +35,8 @@ struct de2_fmt_info { - u32 de2_fmt; - }; - -+static bool hw_preconfigured; -+ - static const struct de2_fmt_info de2_formats[] = { - { - .drm_fmt = DRM_FORMAT_ARGB8888, -@@ -278,6 +281,33 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, - struct drm_plane *plane; - u32 route = 0, pipe_en = 0; - -+ if (mixer->hw_preconfigured && engine->id == 0) { -+ struct sun4i_tcon* tcon; -+ u32 val, saved; -+ -+ /* -+ * This is the first commit, wait for vblank on tcon0 before continuing. -+ */ -+ list_for_each_entry(tcon, &mixer->drv->tcon_list, list) { -+ if (tcon->id == 0) { -+ regmap_read(tcon->regs, SUN4I_TCON_GINT0_REG, &saved); -+ saved &= 0xffff0000; -+ -+ regmap_write(tcon->regs, SUN4I_TCON_GINT0_REG, 0); -+ -+ regmap_read_poll_timeout(tcon->regs, SUN4I_TCON_GINT0_REG, val, -+ val & (SUN4I_TCON_GINT0_VBLANK_INT(0) | -+ SUN4I_TCON_GINT0_VBLANK_INT(1) | -+ SUN4I_TCON_GINT0_TCON0_TRI_FINISH_INT), -+ 100, 40000); -+ -+ regmap_write(tcon->regs, SUN4I_TCON_GINT0_REG, saved); -+ } -+ } -+ -+ mixer->hw_preconfigured = false; -+ } -+ - DRM_DEBUG_DRIVER("Committing changes\n"); - - drm_for_each_plane(plane, state->dev) { -@@ -456,6 +486,7 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - dev_set_drvdata(dev, mixer); - mixer->engine.ops = &sun8i_engine_ops; - mixer->engine.node = dev->of_node; -+ mixer->drv = drv; - - if (of_property_present(dev->of_node, "iommus")) { - /* -@@ -480,6 +511,11 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - */ - mixer->engine.id = sun8i_mixer_of_get_id(dev->of_node); - -+ if (mixer->engine.id == 0) { -+ mixer->hw_preconfigured = hw_preconfigured; -+ hw_preconfigured = false; -+ } -+ - mixer->cfg = of_device_get_match_data(dev); - if (!mixer->cfg) - return -EINVAL; -@@ -527,8 +563,11 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - * reason for the mixer to be functional. Make sure it's the - * case. - */ -+ -+ if (!mixer->hw_preconfigured) { - if (mixer->cfg->mod_rate) - clk_set_rate(mixer->mod_clk, mixer->cfg->mod_rate); -+ } - - clk_prepare_enable(mixer->mod_clk); - -@@ -536,6 +575,7 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - - base = sun8i_blender_base(mixer); - -+ if (!mixer->hw_preconfigured) { - /* Reset registers and disable unused sub-engines */ - if (mixer->cfg->is_de3) { - for (i = 0; i < DE3_MIXER_UNIT_SIZE; i += 4) -@@ -567,6 +607,7 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - /* Enable the mixer */ - regmap_write(mixer->engine.regs, SUN8I_MIXER_GLOBAL_CTL, - SUN8I_MIXER_GLOBAL_CTL_RT_EN); -+ } /* hw_preconfigured */ - - /* Set background color to black */ - regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_BKCOLOR(base), -@@ -587,8 +628,10 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - SUN8I_MIXER_BLEND_MODE(base, i), - SUN8I_MIXER_BLEND_MODE_DEF); - -+ if (!mixer->hw_preconfigured) { - regmap_update_bits(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), - SUN8I_MIXER_BLEND_PIPE_CTL_EN_MSK, 0); -+ } - - return 0; - -@@ -618,6 +661,15 @@ static const struct component_ops sun8i_mixer_ops = { - - static int sun8i_mixer_probe(struct platform_device *pdev) - { -+ int ret; -+ u32 fb_start; -+ -+ ret = of_property_read_u32_index(of_chosen, "p-boot,framebuffer-start", 0, &fb_start); -+ if (ret == 0) { -+ /* the display pipeline is already initialized by p-boot */ -+ hw_preconfigured = true; -+ } -+ - return component_add(&pdev->dev, &sun8i_mixer_ops); - } - -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h -index d7898c9c9cc0..68e2741b0962 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.h -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h -@@ -184,6 +184,9 @@ struct sun8i_mixer { - - struct clk *bus_clk; - struct clk *mod_clk; -+ -+ struct sun4i_drv *drv; -+ bool hw_preconfigured; - }; - - enum { -diff --git a/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c b/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c -index 36eab95271b2..a19a27cea860 100644 ---- a/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c -+++ b/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c -@@ -195,6 +195,8 @@ struct sun6i_dphy { - - const struct sun6i_dphy_variant *variant; - enum sun6i_dphy_direction direction; -+ -+ bool hw_preconfigured; - }; - - static int sun6i_dphy_init(struct phy *phy) -@@ -226,6 +228,11 @@ static void sun6i_a31_mipi_dphy_tx_power_on(struct sun6i_dphy *dphy) - { - u8 lanes_mask = GENMASK(dphy->config.lanes - 1, 0); - -+ if (dphy->hw_preconfigured) { -+ dphy->hw_preconfigured = false; -+ return; -+ } -+ - regmap_write(dphy->regs, SUN6I_DPHY_ANA0_REG, - SUN6I_DPHY_ANA0_REG_PWS | - SUN6I_DPHY_ANA0_REG_DMPC | -@@ -551,6 +558,7 @@ static int sun6i_dphy_probe(struct platform_device *pdev) - struct sun6i_dphy *dphy; - const char *direction; - void __iomem *regs; -+ u32 fb_start; - int ret; - - dphy = devm_kzalloc(&pdev->dev, sizeof(*dphy), GFP_KERNEL); -@@ -561,6 +569,12 @@ static int sun6i_dphy_probe(struct platform_device *pdev) - if (!dphy->variant) - return -EINVAL; - -+ ret = of_property_read_u32_index(of_chosen, "p-boot,framebuffer-start", 0, &fb_start); -+ if (ret == 0) { -+ /* the display pipeline is already initialized by p-boot */ -+ dphy->hw_preconfigured = true; -+ } -+ - regs = devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(regs)) { - dev_err(&pdev->dev, "Couldn't map the DPHY encoder registers\n"); -diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c -index 237d3d3f3bb1..f7d9d8813d92 100644 ---- a/drivers/video/backlight/pwm_bl.c -+++ b/drivers/video/backlight/pwm_bl.c -@@ -444,7 +444,7 @@ static int pwm_backlight_probe(struct platform_device *pdev) - struct backlight_properties props; - struct backlight_device *bl; - struct pwm_bl_data *pb; -- struct pwm_state state; -+ struct pwm_state state, state_real; - unsigned int i; - int ret; - -@@ -509,6 +509,11 @@ static int pwm_backlight_probe(struct platform_device *pdev) - /* Sync up PWM state. */ - pwm_init_state(pb->pwm, &state); - -+ /* Read real state, but only if the PWM is enabled. */ -+ pwm_get_state(pb->pwm, &state_real); -+ if (state_real.enabled) -+ state = state_real; -+ - /* - * The DT case will set the pwm_period_ns field to 0 and store the - * period, parsed from the DT, in the PWM device. For the non-DT case, -@@ -601,6 +606,24 @@ static int pwm_backlight_probe(struct platform_device *pdev) - - bl->props.brightness = data->dft_brightness; - bl->props.power = pwm_backlight_initial_power_state(pb); -+ if (bl->props.power == FB_BLANK_UNBLANK && pb->levels) { -+ u64 level; -+ -+ /* If the backlight is already on, determine the default -+ * brightness from PWM duty cycle instead of forcing -+ * the brightness determined by the driver -+ */ -+ pwm_get_state(pb->pwm, &state); -+ level = (u64)state.duty_cycle * pb->scale; -+ do_div(level, (u64)state.period); -+ -+ for (i = 0; i <= data->max_brightness; i++) { -+ if (data->levels[i] > level) { -+ bl->props.brightness = i; -+ break; -+ } -+ } -+ } - backlight_update_status(bl); - - platform_set_drvdata(pdev, bl); --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/drm-sun4i-tcon-Support-keeping-dclk-rate-upon-ancestor-clock-ch.patch b/patch/kernel/archive/sunxi-6.16/patches.megous/drm-sun4i-tcon-Support-keeping-dclk-rate-upon-ancestor-clock-ch.patch deleted file mode 100644 index 3f0d85b71..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/drm-sun4i-tcon-Support-keeping-dclk-rate-upon-ancestor-clock-ch.patch +++ /dev/null @@ -1,179 +0,0 @@ -From 035e210f29f9ef80bdade15c9abf482930ad6f75 Mon Sep 17 00:00:00 2001 -From: Frank Oltmanns -Date: Sun, 10 Mar 2024 14:32:29 +0100 -Subject: drm/sun4i: tcon: Support keeping dclk rate upon ancestor clock - changes - -Allow the dclk to reset its rate when a rate change is initiated from an -ancestor clock. This makes it possible to no longer to get an exclusive -lock. As a consequence, it is now possible to set new rates if -necessary, e.g. when an external display is connected. - -The first user of this functionality is the A64 because PLL-VIDEO0 is an -ancestor for both HDMI and TCON0. This allows to select an optimal rate -for TCON0 as long as there is no external HDMI connection. Once a change -in PLL-VIDEO0 is performed when an HDMI connection is established, TCON0 -can react gracefully and select an optimal rate based on this the new -constraint. - -Signed-off-by: Frank Oltmanns ---- - drivers/gpu/drm/sun4i/sun4i_tcon.c | 70 +++++++++++++++++++++++++++--- - drivers/gpu/drm/sun4i/sun4i_tcon.h | 12 +++++ - 2 files changed, 76 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c -index b36c1ea0948c..221df37406d8 100644 ---- a/drivers/gpu/drm/sun4i/sun4i_tcon.c -+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c -@@ -110,9 +110,11 @@ static void sun4i_tcon_channel_set_status(struct sun4i_tcon *tcon, int channel, - - if (enabled) { - clk_prepare_enable(clk); -- clk_rate_exclusive_get(clk); -+ if (!tcon->quirks->restores_rate) -+ clk_rate_exclusive_get(clk); - } else { -- clk_rate_exclusive_put(clk); -+ if (!tcon->quirks->restores_rate) -+ clk_rate_exclusive_put(clk); - clk_disable_unprepare(clk); - } - } -@@ -373,6 +375,53 @@ static void sun4i_tcon0_mode_set_dithering(struct sun4i_tcon *tcon, - regmap_write(tcon->regs, SUN4I_TCON_FRM_CTL_REG, val); - } - -+static void sun4i_rate_reset_notifier_delayed_update(struct work_struct *work) -+{ -+ struct sun4i_rate_reset_nb *rate_reset = container_of(work, struct sun4i_rate_reset_nb, -+ reset_rate_work.work); -+ -+ clk_set_rate(rate_reset->target_clk, rate_reset->saved_rate); -+} -+ -+static int sun4i_rate_reset_notifier_cb(struct notifier_block *nb, -+ unsigned long event, void *data) -+{ -+ struct sun4i_rate_reset_nb *rate_reset = to_sun4i_rate_reset_nb(nb); -+ -+ if (event == POST_RATE_CHANGE) -+ mod_delayed_work(system_wq, &rate_reset->reset_rate_work, msecs_to_jiffies(100)); -+ -+ return NOTIFY_DONE; -+} -+ -+static void sun4i_rate_reset_notifier_register(struct sun4i_rate_reset_nb *rate_reset_nb) -+{ -+ if (rate_reset_nb->is_registered) -+ return; -+ -+ rate_reset_nb->clk_nb.notifier_call = sun4i_rate_reset_notifier_cb; -+ -+ INIT_DELAYED_WORK(&rate_reset_nb->reset_rate_work, -+ sun4i_rate_reset_notifier_delayed_update); -+ -+ if (!clk_notifier_register(rate_reset_nb->target_clk, -+ &rate_reset_nb->clk_nb)) -+ rate_reset_nb->is_registered = true; -+} -+ -+static struct sun4i_rate_reset_nb tcon_rate_reset_tcon0_nb; -+ -+static void sun4i_tcon0_set_dclk_rate(struct sun4i_tcon *tcon, unsigned long rate) -+{ -+ clk_set_rate(tcon->dclk, rate); -+ -+ if (tcon->quirks->restores_rate) { -+ tcon_rate_reset_tcon0_nb.target_clk = tcon->dclk; -+ tcon_rate_reset_tcon0_nb.saved_rate = rate; -+ sun4i_rate_reset_notifier_register(&tcon_rate_reset_tcon0_nb); -+ } -+} -+ - static void sun4i_tcon0_mode_set_cpu(struct sun4i_tcon *tcon, - const struct drm_encoder *encoder, - const struct drm_display_mode *mode) -@@ -390,8 +439,8 @@ static void sun4i_tcon0_mode_set_cpu(struct sun4i_tcon *tcon, - */ - tcon->dclk_min_div = SUN6I_DSI_TCON_DIV; - tcon->dclk_max_div = SUN6I_DSI_TCON_DIV; -- clk_set_rate(tcon->dclk, mode->crtc_clock * 1000 * (bpp / lanes) -- / SUN6I_DSI_TCON_DIV); -+ sun4i_tcon0_set_dclk_rate(tcon, mode->crtc_clock * 1000 * (bpp / lanes) -+ / SUN6I_DSI_TCON_DIV); - - /* Set the resolution */ - regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, -@@ -464,7 +513,7 @@ static void sun4i_tcon0_mode_set_lvds(struct sun4i_tcon *tcon, - - tcon->dclk_min_div = 7; - tcon->dclk_max_div = 7; -- clk_set_rate(tcon->dclk, mode->crtc_clock * 1000); -+ sun4i_tcon0_set_dclk_rate(tcon, mode->crtc_clock * 1000); - - /* Set the resolution */ - regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, -@@ -548,7 +597,7 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon, - - tcon->dclk_min_div = tcon->quirks->dclk_min_div; - tcon->dclk_max_div = 127; -- clk_set_rate(tcon->dclk, mode->crtc_clock * 1000); -+ sun4i_tcon0_set_dclk_rate(tcon, mode->crtc_clock * 1000); - - /* Set the resolution */ - regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, -@@ -1561,6 +1610,14 @@ static const struct sun4i_tcon_quirks sun8i_a33_quirks = { - .supports_lvds = true, - }; - -+static const struct sun4i_tcon_quirks sun50i_a64_lcd_quirks = { -+ .supports_lvds = true, -+ .has_channel_0 = true, -+ .restores_rate = true, -+ .dclk_min_div = 1, -+ .setup_lvds_phy = sun6i_tcon_setup_lvds_phy, -+}; -+ - static const struct sun4i_tcon_quirks sun8i_a83t_lcd_quirks = { - .supports_lvds = true, - .has_channel_0 = true, -@@ -1619,6 +1676,7 @@ const struct of_device_id sun4i_tcon_of_table[] = { - { .compatible = "allwinner,sun9i-a80-tcon-tv", .data = &sun9i_a80_tcon_tv_quirks }, - { .compatible = "allwinner,sun20i-d1-tcon-lcd", .data = &sun20i_d1_lcd_quirks }, - { .compatible = "allwinner,sun20i-d1-tcon-tv", .data = &sun8i_r40_tv_quirks }, -+ { .compatible = "allwinner,sun50i-a64-tcon-lcd", .data = &sun50i_a64_lcd_quirks }, - { } - }; - MODULE_DEVICE_TABLE(of, sun4i_tcon_of_table); -diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h b/drivers/gpu/drm/sun4i/sun4i_tcon.h -index 864d70b9d242..729d64b78846 100644 ---- a/drivers/gpu/drm/sun4i/sun4i_tcon.h -+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h -@@ -250,6 +250,7 @@ struct sun4i_tcon_quirks { - bool needs_edp_reset; /* a80 edp reset needed for tcon0 access */ - bool supports_lvds; /* Does the TCON support an LVDS output? */ - bool polarity_in_ch0; /* some tcon1 channels have polarity bits in tcon0 pol register */ -+ bool restores_rate; /* restores the initial rate when rate changes */ - u8 dclk_min_div; /* minimum divider for TCON0 DCLK */ - - /* callback to handle tcon muxing options */ -@@ -312,4 +313,15 @@ void sun4i_tcon_enable_gamma(struct sun4i_tcon *tcon, bool enable); - - extern const struct of_device_id sun4i_tcon_of_table[]; - -+struct sun4i_rate_reset_nb { -+ struct notifier_block clk_nb; -+ struct delayed_work reset_rate_work; -+ -+ struct clk *target_clk; -+ unsigned long saved_rate; -+ bool is_registered; -+}; -+ -+#define to_sun4i_rate_reset_nb(_nb) container_of(_nb, struct sun4i_rate_reset_nb, clk_nb) -+ - #endif /* __SUN4I_TCON_H__ */ --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/video-pwm_bl-Allow-to-change-lth_brightness-via-sysfs.patch b/patch/kernel/archive/sunxi-6.16/patches.megous/video-pwm_bl-Allow-to-change-lth_brightness-via-sysfs.patch deleted file mode 100644 index 344c1d0fd..000000000 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/video-pwm_bl-Allow-to-change-lth_brightness-via-sysfs.patch +++ /dev/null @@ -1,126 +0,0 @@ -From d1289f356aaa248c8caf7e198032922f0e9e36b0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= -Date: Mon, 7 Jun 2021 20:27:07 +0200 -Subject: video: pwm_bl: Allow to change lth_brightness via sysfs - -Read minimum duty cycle in % from DT, and allow to change it via -sysfs. - -Minimum brightness calibration instructions: - - echo 1 > /sys/class/backlight/backlight/brightness - - echo 1 > /sys/class/backlight/backlight/device/lth_brightness - echo 2 > /sys/class/backlight/backlight/device/lth_brightness - echo 3 > /sys/class/backlight/backlight/device/lth_brightness - - .... increase values until you like the minimum brightness - -Then make sure to restore this value after each boot by writing it to -/sys/class/backlight/backlight/device/lth_brightness - -Signed-off-by: Ondrej Jirman ---- - drivers/video/backlight/pwm_bl.c | 72 +++++++++++++++++++++++++++++++- - 1 file changed, 70 insertions(+), 2 deletions(-) - -diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c -index f7d9d8813d92..8a7a158dc1f6 100644 ---- a/drivers/video/backlight/pwm_bl.c -+++ b/drivers/video/backlight/pwm_bl.c -@@ -437,6 +437,61 @@ static int pwm_backlight_initial_power_state(const struct pwm_bl_data *pb) - return active ? BACKLIGHT_POWER_ON : BACKLIGHT_POWER_OFF; - } - -+static ssize_t lth_brightness_show(struct device *dev, -+ struct device_attribute *attr, char *buf) -+{ -+ struct backlight_device *bl = platform_get_drvdata(to_platform_device(dev)); -+ struct pwm_bl_data *pb = bl ? bl_get_data(bl) : NULL; -+ struct pwm_state state; -+ unsigned val; -+ -+ if (!pb) -+ return -EBUSY; -+ -+ pwm_get_state(pb->pwm, &state); -+ val = div_u64(100 * pb->lth_brightness, state.period); -+ -+ return scnprintf(buf, PAGE_SIZE, "%u\n", val); -+} -+ -+static ssize_t lth_brightness_store(struct device *dev, -+ struct device_attribute *attr, -+ const char *buf, size_t len) -+{ -+ struct backlight_device *bl = platform_get_drvdata(to_platform_device(dev)); -+ struct pwm_bl_data *pb = bl ? bl_get_data(bl) : NULL; -+ struct pwm_state state; -+ unsigned val; -+ int ret; -+ -+ if (!pb) -+ return -EBUSY; -+ -+ ret = kstrtouint(buf, 10, &val); -+ if (ret) -+ return ret; -+ -+ if (val > 100) -+ val = 100; -+ -+ pwm_get_state(pb->pwm, &state); -+ pb->lth_brightness = div_u64(val * state.period, 100); -+ pwm_backlight_update_status(bl); -+ -+ return len; -+} -+ -+static DEVICE_ATTR_RW(lth_brightness); -+ -+static struct attribute *pwm_bl_attrs[] = { -+ &dev_attr_lth_brightness.attr, -+ NULL, -+}; -+ -+static const struct attribute_group pwm_bl_group = { -+ .attrs = pwm_bl_attrs, -+}; -+ - static int pwm_backlight_probe(struct platform_device *pdev) - { - struct platform_pwm_backlight_data *data = dev_get_platdata(&pdev->dev); -@@ -445,6 +500,7 @@ static int pwm_backlight_probe(struct platform_device *pdev) - struct backlight_device *bl; - struct pwm_bl_data *pb; - struct pwm_state state, state_real; -+ u32 lth_brightness; - unsigned int i; - int ret; - -@@ -584,8 +640,20 @@ static int pwm_backlight_probe(struct platform_device *pdev) - pb->scale = data->max_brightness; - } - -- pb->lth_brightness = data->lth_brightness * (div_u64(state.period, -- pb->scale)); -+ pb->lth_brightness = div_u64(data->lth_brightness * state.period, pb->scale); -+ -+ ret = of_property_read_u32(pdev->dev.of_node, "lth-brightness", -+ <h_brightness); -+ if (ret == 0) { -+ if (lth_brightness > 100) -+ lth_brightness = 100; -+ -+ pb->lth_brightness = div_u64(lth_brightness * state.period, 100); -+ } -+ -+ ret = devm_device_add_group(&pdev->dev, &pwm_bl_group); -+ if (ret) -+ goto err_alloc; - - props.type = BACKLIGHT_RAW; - props.max_brightness = data->max_brightness; --- -2.51.0 - diff --git a/patch/kernel/archive/sunxi-6.16/series.conf b/patch/kernel/archive/sunxi-6.16/series.conf deleted file mode 100644 index 3bfd1bf9a..000000000 --- a/patch/kernel/archive/sunxi-6.16/series.conf +++ /dev/null @@ -1,468 +0,0 @@ -# -# This file is made manually by simply copying text -# from the target series.* files. -# Add (-) at the beginning of the line if the patch should not be applied. -# At the same time, the patch does not need to be deleted. -# - patches.megous/media-ov5640-Experiment-Try-to-disable-denoising-sharpening.patch - patches.megous/media-ov5640-Sleep-after-poweroff-to-ensure-next-poweron-is-not.patch - patches.megous/media-ov5640-Don-t-powerup-the-sensor-during-driver-probe.patch - patches.megous/media-ov5640-set-default-ae-target-lower.patch - patches.megous/media-ov5640-Improve-error-reporting.patch - patches.megous/media-ov5640-Implement-autofocus.patch - patches.megous/media-ov5640-Improve-firmware-load-time.patch - patches.megous/media-ov5640-Fix-focus-commands-blocking-until-complete.patch - patches.megous/media-ov5640-Add-read-only-property-for-vblank.patch - patches.megous/media-ov5640-use-pm_runtime_force_suspend-resume-for-system-sus.patch - patches.megous/media-sun6i-csi-capture-Use-subdev-operation-to-access-bridge-f.patch - patches.megous/media-sun6i-csi-subdev-Use-subdev-active-state-to-store-active-.patch - patches.megous/media-sun6i-csi-merge-sun6i_csi_formats-and-sun6i_csi_formats_m.patch - patches.megous/media-sun6i-csi-add-V4L2_CAP_IO_MC-capability.patch - patches.megous/media-sun6i-csi-implement-vidioc_enum_framesizes.patch - patches.megous/media-sun6i-csi-Add-multicamera-support-for-parallel-bus.patch - patches.megous/nfc-pn544-Add-support-for-VBAT-PVDD-regulators.patch - patches.megous/bluetooth-bcm-Restore-drive_rts_on_open-true-behavior-on-bcm207.patch - patches.megous/mmc-add-delay-after-power-class-selection.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-PN544-NFC-support.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-powerup-down-support-for-the-3G.patch - patches.megous/ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to-A83T-untes.patch - patches.megous/ARM-dts-suni-a83t-Add-i2s0-pins.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-sound-support-via-AC100-codec.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-regulators-to-the-accelerometer.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-camera-sensors-HM5065-GC2145.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-flash-led-support.patch - patches.megous/dt-bindings-input-gpio-vibrator-Don-t-require-enable-gpios.patch - patches.megous/input-gpio-vibra-Allow-to-use-vcc-supply-alone-to-control-the-v.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-support-for-the-vibrator-motor.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Increase-voltage-on-the-vibrator.patch - patches.megous/dt-bindings-leds-Add-a-binding-for-AXP813-charger-led.patch - patches.megous/leds-axp20x-Support-charger-LED-on-AXP20x-like-PMICs.patch - patches.megous/ARM-dts-axp813-Add-charger-LED.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Enable-charging-LED.patch - patches.megous/MAINTAINERS-Add-entry-for-Himax-HM5065.patch - patches.megous/dt-bindings-media-Add-bindings-for-Himax-HM5065-camera-sensor.patch - patches.megous/hm5065-yaml-bindings-wip.patch - patches.megous/media-hm5065-Add-subdev-driver-for-Himax-HM5065-camera-sensor.patch - patches.megous/media-i2c-gc2145-Move-upstream-driver-out-of-the-way.patch - patches.megous/media-gc2145-Galaxycore-camera-module-driver.patch - patches.megous/media-gc2145-Added-BGGR-bayer-mode.patch - patches.megous/media-gc2145-Disable-debug-output.patch - patches.megous/media-gc2145-Add-PIXEL_RATE-HBLANK-and-VBLANK-controls.patch - patches.megous/media-gc2145-implement-system-suspend.patch - patches.megous/media-gc2145-fix-white-balance-colors.patch - patches.megous/media-i2c-gc2145-Parse-and-register-properties.patch - patches.megous/mailbox-Allow-to-run-mailbox-while-timekeeping-is-suspended.patch - patches.megous/ARM-sunxi-Add-experimental-suspend-to-memory-implementation-for.patch - patches.megous/ARM-sunxi-sunxi_cpu0_hotplug_support_set-is-not-supported-on-A8.patch - patches.megous/firmware-scpi-Add-support-for-sending-a-SCPI_CMD_SET_SYS_PWR_ST.patch - patches.megous/ARM-sunxi-Use-SCPI-to-send-suspend-message-to-SCP-on-A83T.patch - patches.megous/gnss-ubx-Send-soft-powerdown-message-on-suspend.patch - patches.megous/clk-sunxi-ng-Export-CLK_DRAM-for-devfreq.patch - patches.megous/ARM-dts-sun8i-a83t-Add-MBUS-node.patch - patches.megous/clk-sunxi-ng-Set-maximum-P-and-M-factors-to-1-for-H3-pll-cpux-c.patch - patches.megous/clk-sunxi-ng-Don-t-use-CPU-PLL-gating-and-CPUX-reparenting-to-H.patch - patches.megous/ARM-dts-sun8i-h3-Use-my-own-more-aggressive-OPPs-on-H3.patch - patches.megous/arm64-dts-sun50i-h5-Use-my-own-more-aggressive-OPPs-on-H5.patch - patches.megous/ARM-dts-sun8i-h3-orange-pi-pc-Increase-max-CPUX-voltage-to-1.4V.patch - patches.megous/ARM-dts-sun8i-a83t-Improve-CPU-OPP-tables-go-up-to-1.8GHz.patch - patches.megous/cpufreq-sun50i-Show-detected-CPU-bin-for-easier-debugging.patch - patches.megous/net-stmmac-sun8i-Use-devm_regulator_get-for-PHY-regulator.patch - patches.megous/net-stmmac-sun8i-Rename-PHY-regulator-variable-to-regulator_phy.patch - patches.megous/net-stmmac-sun8i-Add-support-for-enabling-a-regulator-for-PHY-I.patch - patches.megous/arm64-dts-allwinner-orange-pi-3-Enable-ethernet.patch - patches.megous/Revert-Input-cyttsp4-remove-driver.patch - patches.megous/input-cyttsp4-Port-to-6.16.patch - patches.megous/input-cyttsp4-De-obfuscate-platform-data-for-keys.patch - patches.megous/input-cyttsp4-Remove-useless-indirection-with-driver-platform-d.patch - patches.megous/input-cyttsp4-Remove-unused-enable_vkeys.patch - patches.megous/input-cyttsp4-De-obfuscate-MT-signals-setup-platform-data.patch - patches.megous/input-cyttsp4-Clear-the-ids-buffer-in-a-saner-way.patch - patches.megous/input-cyttsp4-ENOSYS-error-is-ok-when-powering-up.patch - patches.megous/input-cyttsp4-Faster-recovery-from-failed-wakeup-HACK.patch - patches.megous/input-cyttsp4-Use-i2c-spi-names-directly-in-the-driver.patch - patches.megous/input-cyttsp4-Port-the-driver-to-use-device-properties.patch - patches.megous/input-cyttsp4-Restart-on-wakeup-wakeup-by-I2C-read-doesn-t-work.patch - patches.megous/input-cyttsp4-Fix-warnings.patch - patches.megous/input-cyttsp4-Make-the-driver-not-hog-the-system-s-workqueue.patch - patches.megous/input-cyttsp4-Fix-probe-oops.patch - patches.megous/input-cyttsp4-Fix-compile-issue.patch - patches.megous/video-fbdev-eInk-display-driver-for-A13-based-PocketBooks.patch - patches.megous/regulator-Add-simple-driver-for-enabling-a-regulator-from-users.patch - patches.megous/regulator-tp65185x-Add-tp65185x-eInk-panel-regulator-driver.patch - patches.megous/regulator-tp65185-Add-hwmon-device-for-reading-temperature.patch - patches.megous/iio-adc-sun4i-gpadc-iio-Allow-to-use-sun5i-a13-gpadc-iio-from-D.patch - patches.megous/mtd-spi-nor-Add-vdd-regulator-support.patch - patches.megous/ARM-dts-sun5i-Add-soc-handle.patch - patches.megous/ARM-dts-sun5i-Add-PocketBook-Touch-Lux-3-display-ctp-support.patch - patches.megous/ARM-dts-sun5i-a13-pocketbook-touch-lux-3-Add-RTC-clock-cells.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-front-back-cameras.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-Type-C-support-for-all-PP-va.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-modem-power-manager.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Fix-BH-modem-manager-behavior.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-detailed-OCV-to-capactiy-con.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Shorten-post-power-on-delay-on-m.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Bluetooth-audio.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Enable-internal-HMIC-bias.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-modem-audio.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Bump-I2C-frequency-to-400kHz.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-interrupt-pin-for-WiFi.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Power-off-the-touch-controller-i.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Don-t-make-lradc-keys-a-wakeup-s.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Set-minimum-backlight-duty-cycle.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-supply-for-i2c-bus-to-anx768.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Workaround-broken-HDMI-HPD-signa.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinephone-keyboa.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Enable-Pinephone-Keyboard-power-.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinephone-1.2-be.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-power-supply-to-stk3311.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-reboot-mode-driver.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Use-newer-jack-detection-impleme.patch - patches.megous/arm64-dts-sun50i-Define-orientation-and-rotation-for-PinePhone-.patch - patches.megous/2-arm64-dts-sun50i-Define-orientation-and-rotation-for-PinePhone-.patch - patches.megous/arm64-dts-sun50-a64-pinephone-Define-jack-pins-in-DT.patch - patches.megous/dt-bindings-sound-Add-jack-type-property-to-sun8i-a33-codec.patch - patches.megous/ASoC-sun8i-codec-Allow-the-jack-type-to-be-set-via-device-tree.patch - patches.megous/ASoC-sun8i-codec-define-button-keycodes.patch - patches.megous/ASoC-sun8i-codec-Add-debug-output-for-jack-detection.patch - patches.megous/ASoC-sun8i-codec-Set-jack_type-from-DT-in-probe.patch - patches.megous/ASoC-simple-card-Allow-to-define-pins-for-aux-jack-devices.patch - patches.megous/clk-sunxi-ng-a64-Increase-PLL_AUDIO-base-frequency.patch - patches.megous/dt-bindings-mfd-Add-codec-related-properties-to-AC100-PMIC.patch - patches.megous/sound-soc-ac100-codec-Support-analog-part-of-X-Powers-AC100-cod.patch - patches.megous/sound-soc-sun8i-codec-Add-support-for-digital-part-of-the-AC100.patch - patches.megous/ASoC-ec25-New-codec-driver-for-the-EC25-modem.patch - patches.megous/ASOC-sun9i-hdmi-audio-Initial-implementation.patch - patches.megous/ARM-dts-sunxi-h3-h5-Add-hdmi-sound-card.patch - patches.megous/ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-with-hdmi.patch - patches.megous/ARM-dts-sun8i-h2-plus-bananapi-m2-zero-Enable-HDMI-audio.patch - patches.megous/ARM-dts-sun8i-a83t-Add-hdmi-sound-card.patch - patches.megous/ARM-dts-sun8i-a83t-Enable-hdmi-sound-card-on-boards-with-hdmi.patch - patches.megous/ARM-dts-sun8i-r40-Add-hdmi-sound-card.patch - patches.megous/ARM-dts-sun8i-r40-bananapi-m2-ultra-Enable-HDMI-audio.patch - patches.megous/ARM-dts-sun8i-v40-bananapi-m2-berry-Enable-HDMI-audio.patch - patches.megous/arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch - patches.megous/arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boards-with-hd.patch - patches.megous/arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch - patches.megous/arm64-dts-allwinner-a64-Enable-hdmi-sound-card-on-boards-with-h.patch - patches.megous/arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boards-with-hd.patch - patches.megous/Move-a-node-to-avoid-merge-conflict.patch - patches.megous/arm64-dts-sun50i-a64-Set-fifo-size-for-uarts.patch - patches.megous/ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch - patches.megous/Mark-some-slow-drivers-for-async-probe-with-PROBE_PREFER_ASYNCH.patch - patches.megous/arm64-xor-Select-32regs-without-benchmark-to-speed-up-boot.patch - patches.megous/clk-sunxi-ng-Mark-TWD-clocks-as-critical.patch - patches.megous/firmware-arm_scpi-Support-unidirectional-mailbox-channels.patch - patches.megous/ARM-dts-sunxi-a83t-Add-SCPI-protocol.patch - patches.megous/ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileges-over-SCP.patch - patches.megous/rtc-sun6i-Allow-RTC-wakeup-after-shutdown.patch - patches.megous/misc-modem-power-Power-manager-for-modems.patch - patches.megous/ARM-dts-sun8i-a83t-Add-missing-GPU-trip-point.patch - patches.megous/arm64-dts-sun50i-h5-Add-missing-GPU-trip-point.patch - patches.megous/arm64-dts-allwinner-a64-Fix-LRADC-compatible.patch - patches.megous/media-cedrus-Fix-failure-to-clean-up-hardware-on-probe-failure.patch - patches.megous/usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs-where-it-s.patch - patches.megous/arm64-dts-allwinner-Enforce-consistent-MMC-numbering.patch - patches.megous/ARM-dts-sunxi-Add-aliases-for-MMC.patch - patches.megous/usb-gadget-Fix-dangling-pointer-in-netdev-private-data.patch - patches.megous/Revert-drm-sun4i-lvds-Invert-the-LVDS-polarity.patch - patches.megous/of-property-fw_devlink-Support-allwinner-sram-links.patch - patches.megous/Fix-broken-allwinner-sram-dependency-on-h616-h618.patch - patches.megous/Fix-intptr_t-typedef.patch - patches.megous/mmc-sunxi-mmc-Remove-runtime-PM.patch - patches.megous/pci-Workaround-ITS-timeouts-on-poweroff-reboot-on-Orange-Pi-5-P.patch - patches.megous/usb-serial-option-add-reset_resume-callback-for-WWAN-devices.patch - patches.megous/media-ov5648-Fix-call-to-pm_runtime_set_suspended.patch - patches.megous/arm64-dts-rk3399-Add-dmc_opp_table.patch - patches.megous/bluetooth-h5-Don-t-re-initialize-rtl8723cs-on-resume.patch - patches.megous/drm-sun4i-Implement-gamma-correction.patch - patches.megous/drm-panel-st7703-Fix-xbd599-timings-to-make-refresh-rate-exactl.patch - patches.megous/drm-sun4i-Support-taking-over-display-pipeline-state-from-p-boo.patch - patches.megous/video-pwm_bl-Allow-to-change-lth_brightness-via-sysfs.patch - patches.megous/clk-sunxi-ng-sun50i-a64-Switch-parent-of-MIPI-DSI-to-periph0-1x.patch - patches.megous/drm-sun4i-tcon-Support-keeping-dclk-rate-upon-ancestor-clock-ch.patch - patches.megous/phy-allwinner-sun4i-usb-Add-support-for-usb_role_switch.patch - patches.megous/regulator-axp20x-Add-support-for-vin-supply-for-drivevbus.patch - patches.megous/regulator-axp20x-Turn-N_VBUSEN-to-input-on-x-powers-sense-vbus-.patch - patches.megous/drm-bridge-dw-hdmi-Allow-to-accept-HPD-status-from-other-driver.patch - patches.megous/drm-bridge-dw-hdmi-Report-HDMI-hotplug-events.patch - patches.megous/usb-typec-anx7688-Add-driver-for-ANX7688-USB-C-HDMI-bridge.patch - patches.megous/dt-bindings-axp20x-adc-allow-to-use-TS-pin-as-GPADC.patch - patches.megous/iio-adc-axp20x_adc-allow-to-set-TS-pin-to-GPADC-mode.patch - patches.megous/power-axp20x_battery-Allow-to-set-target-voltage-to-4.35V.patch - patches.megous/power-supply-axp20x_battery-Add-support-for-reporting-OCV.patch - patches.megous/regulator-axp20x-Enable-over-temperature-protection-and-16s-res.patch - patches.megous/power-supply-axp20x_battery-Setup-thermal-regulation-experiment.patch - patches.megous/power-supply-axp20x_battery-Fix-charging-done-detection.patch - patches.megous/mfd-axp20x-Add-battery-IRQ-resources.patch - patches.megous/power-supply-axp20x_battery-Send-uevents-for-status-changes.patch - patches.megous/power-supply-axp20x_battery-Monitor-battery-health.patch - patches.megous/power-supply-axp20x-usb-power-Change-Vbus-hold-voltage-to-4.5V.patch - patches.megous/power-axp803-Add-interrupts-for-low-battery-power-condition.patch - patches.megous/power-supply-axp20x-battery-Support-POWER_SUPPLY_PROP_CHARGE_BE.patch - patches.megous/power-supply-axp20x-battery-Enable-poweron-by-RTC-alarm.patch - patches.megous/power-supply-axp20x-battery-Add-support-for-POWER_SUPPLY_PROP_E.patch - patches.megous/power-supply-Add-support-for-USB_BC_ENABLED-and-USB_DCP_INPUT_C.patch - patches.megous/power-supply-axp20x-usb-power-Add-missing-interrupts.patch - patches.megous/power-supply-axp20x-battery-Improve-probe-error-reporting.patch - patches.megous/sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-errors.patch - patches.megous/thermal-sun8i-Be-loud-when-probe-fails.patch - patches.megous/i2c-mv64xxx-Don-t-make-a-fuss-when-pinctrl-recovery-state-is-no.patch - patches.megous/iio-st_sensors-Don-t-report-error-when-the-device-is-not-presen.patch - patches.megous/opp-core-Avoid-confusing-error-when-no-regulator-is-defined-in-.patch - patches.megous/rtc-Print-which-error-caused-RTC-read-failure.patch - patches.megous/arm64-dts-allwinner-a64-pinetab-add-front-camera.patch - patches.megous/arm64-allwinner-dts-a64-enable-K101-IM2BYL02-panel-for-PineTab.patch - patches.megous/arm64-dts-sun50i-a64-pinetab-Name-sound-card-PineTab.patch - patches.megous/arm64-dts-sun50i-a64-pinetab-Add-accelerometer.patch - patches.megous/arm64-dts-sun50i-a64-pinetab-enable-RTL8723CS-bluetooth.patch - patches.megous/usb-typec-fusb302-Slightly-increase-wait-time-for-BC1.2-result.patch - patches.megous/usb-typec-fusb302-Set-the-current-before-enabling-pullups.patch - patches.megous/usb-typec-fusb302-Extend-debugging-interface-with-driver-state-.patch - patches.megous/usb-typec-fusb302-Retry-reading-of-CC-pins-status-if-activity-i.patch - patches.megous/usb-typec-fusb302-More-useful-of-logging-status-on-interrupt.patch - patches.megous/usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-interrupt-is-n.patch - patches.megous/usb-typec-fusb302-Add-OF-extcon-support.patch - patches.megous/usb-typec-fusb302-Fix-register-definitions.patch - patches.megous/usb-typec-fusb302-Clear-interrupts-before-we-start-toggling.patch - patches.megous/usb-typec-typec-extcon-Add-typec-extcon-bridge-driver.patch - patches.megous/usb-typec-typec-extcon-Enable-debugging-for-now.patch - patches.megous/usb-typec-typec-extcon-Allow-to-force-reset-on-each-mux-change.patch - patches.megous/Revert-usb-typec-tcpm-unregister-existing-source-caps-before-re.patch - patches.megous/usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPTACLE-bit.patch - patches.megous/usb-typec-tcpm-Unregister-altmodes-before-registering-new-ones.patch - patches.megous/usb-typec-tcpm-Fix-PD-devices-capabilities-registration.patch - patches.megous/usb-typec-tcpm-Improve-logs.patch - patches.megous/Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-power-off-bu.patch - patches.megous/Add-support-for-my-private-Sapomat-device.patch - patches.megous/ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-header-UARTs.patch - patches.megous/mtd-spi-nor-Add-Alliance-memory-support.patch - patches.megous/Revert-ASoC-soc-core-merge-snd_soc_unregister_component-and-snd.patch - patches.megous/Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-failure.patch - patches.megous/Defconfigs-for-all-my-devices.patch - -################################################################################ -# -# drivers/gpu/drm/sun4i/ -# -################################################################################ - patches.drm/drm-sun4i-de2-de3-Change-CSC-argument.patch - patches.drm/drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch - patches.drm/drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch - patches.drm/drm-sun4i-de2-Initialize-layer-fields-earlier.patch - patches.drm/drm-sun4i-de3-Add-YUV-formatter-module.patch - patches.drm/drm-sun4i-de3-add-format-enumeration-function-to-engine.patch - patches.drm/drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch - patches.drm/drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch - patches.drm/drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch - patches.drm/drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-mod.patch - patches.drm/drm-sun4i-de3-add-YUV-support-to-the-TCON.patch - patches.drm/drm-sun4i-support-YUV-formats-in-VI-scaler.patch - patches.drm/drm-sun4i-de2-de3-add-mixer-version-enum.patch - patches.drm/drm-sun4i-de2-de3-refactor-mixer-initialisation.patch - patches.drm/drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch - patches.drm/drm-sun4i-de2-de3-add-generic-blender-register-reference-functi.patch - patches.drm/drm-sun4i-de2-de3-use-generic-register-reference-function-for-l.patch - patches.drm/drm-sun4i-de3-Implement-AFBC-support.patch - patches.drm/dt-bindings-allwinner-add-H616-DE33-bus-binding.patch - patches.drm/dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch - patches.drm/drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch - patches.drm/drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch - patches.drm/drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch - patches.drm/drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch - patches.drm/drm-sun4i-add-sun50i-h616-hdmi-phy-support.patch - patches.drm/drm-sun4i-Report-page-flip-after-vsync-is-complete-not-in-the-m.patch - -################################################################################ -# -# media patches -# -################################################################################ - patches.media/media-cedrus-Don-t-CPU-map-source-buffers.patch - patches.media/media-Add-NV12-and-P010-AFBC-compressed-formats.patch - patches.media/media-cedrus-add-format-filtering-based-on-depth-and-src-format.patch - patches.media/media-cedrus-Implement-AFBC-YUV420-formats-for-H265.patch - patches.media/media-cedrus-Increase-H6-clock-rate.patch - patches.media/dma-sun6i-dma-add-sun50i-h616-support.patch - -################################################################################ -# -# Armbian patches -# -################################################################################ - patches.armbian/Doc-dt-bindings-usb-add-binding-for-DWC3-controller-on-Allwinne.patch - patches.armbian/drv-pinctrl-pinctrl-sun50i-a64-disable_strict_mode.patch - patches.armbian/drv-gpu-drm-gem-dma-Export-with-handle-allocator.patch - patches.armbian/drv-gpu-drm-sun4i-Add-GEM-allocator.patch - patches.armbian/Revert-drm-sun4i-hdmi-switch-to-struct-drm_edid.patch - patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch - patches.armbian/drv-net-stmmac-dwmac-sun8i-second-EMAC-clock-register.patch - patches.armbian/drv-phy-sun4i-usb-Allow-reset-line-to-be-shared.patch - patches.armbian/drv-staging-media-sunxi-cedrus-add-H616-variant.patch - patches.armbian/drv-soc-sunxi-sram-Add-SRAM-C1-H616-handling.patch - patches.armbian/drv-media-dvb-frontends-si2168-fix-cmd-timeout.patch - patches.armbian/include-uapi-drm_fourcc-add-ARM-tiled-format-modifier.patch - patches.armbian/drv-clocksource-arm_arch_timer-fix-a64-timejump.patch - patches.armbian/sound-soc-sunxi-sun8i-codec-analog-enable-sound.patch - patches.armbian/sound-soc-sunxi-Provoke-the-early-load-of-sun8i-codec-analog.patch - patches.armbian/sound-soc-sunxi-sun4i-codec-adcis-select-capture-source.patch - patches.armbian/drv-mmc-host-sunxi-mmc-add-h5-emmc-compatible.patch - patches.armbian/drv-pinctrl-sunxi-pinctrl-sun50i-h6.c-GPIO-disable_strict_mode.patch - patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch - patches.armbian/drv-mtd-nand-raw-nand_ids.c-add-H27UBG8T2BTR-BC-nand.patch -- patches.armbian/drv-mfd-axp20x-add-sysfs-interface.patch - patches.armbian/drv-spi-spidev-Add-armbian-spi-dev-compatible.patch - patches.armbian/drv-spi-spi-sun4i.c-spi-bug-low-on-sck.patch - patches.armbian/drv-nvmem-sunxi_sid-Support-SID-on-H616.patch - patches.armbian/drv-iio-adc-axp20x_adc-arm64-dts-axp803-hwmon-enable-thermal.patch - patches.armbian/drv-gpu-drm-panel-simple-Add-compability-olinuxino-lcd.patch - patches.armbian/drv-input-touchscreen-sun4i-ts-Enable-parsing.patch - patches.armbian/drv-mmc-host-sunxi-mmc-Disable-DDR52-mode-on-all-A20-based-boar.patch - patches.armbian/drv-usb-gadget-composite-rename-gadget-serial-console-manufactu.patch - patches.armbian/Add-FB_TFT-ST7796S-driver.patch - patches.armbian/Optimize-TSC2007-touchscreen-add-polling-method.patch - patches.armbian/Add-ws2812-RGB-driver-for-allwinner-H616.patch - patches.armbian/drv-staging-rtl8723bs-AP-bugfix.patch - patches.armbian/Fix-include-uapi-spi-spidev-module.patch - patches.armbian/Add-dump_reg-and-sunxi-sysinfo-drivers.patch - patches.armbian/Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch - patches.armbian/nvmem-sunxi_sid-add-sunxi_get_soc_chipid-sunxi_get_serial.patch - patches.armbian/mmc-host-sunxi-mmc-Fix-H6-emmc.patch - patches.armbian/net-usb-r8152-add-LED-configuration-from-OF.patch - patches.armbian/drivers-devfreq-sun8i-a33-mbus-disable-autorefresh.patch - patches.armbian/clk-gate-add-support-for-regmap-based-gates.patch - patches.armbian/mfd-Add-support-for-X-Powers-AC200.patch - patches.armbian/mfd-Add-support-for-X-Powers-AC200-EPHY-syscon.patch - patches.armbian/net-phy-Add-support-for-AC200-EPHY.patch - patches.armbian/ASoC-AC200-Initial-driver.patch - patches.armbian/Input-axp20x-pek-allow-wakeup-after-shutdown.patch - patches.armbian/driver-allwinner-h618-emac.patch - patches.armbian/drivers-pwm-Add-pwm-sunxi-enhance-driver-for-h616.patch - patches.armbian/arm-patch-call-flush_icache-ASAP-after-writing-new-instruction.patch - patches.armbian/arm-arm64-dts-Add-leds-axp20x-charger.patch - patches.armbian/arm-dts-sun9i-a80-add-thermal-sensor.patch - patches.armbian/arm-dts-sun9i-a80-add-thermal-zone.patch - patches.armbian/arm-dts-sun7i-a20-Disable-OOB-IRQ-for-brcm-wifi-on-Cubietruck-a.patch - patches.armbian/arm-dts-a20-orangepi-and-mini-fix-phy-mode-hdmi.patch - patches.armbian/arm-dts-sun8i-h3-nanopi-add-leds-pio-pins.patch - patches.armbian/arm-dts-a10-cubiebord-a20-cubietruck-green-LED-mmc0-default-tri.patch - patches.armbian/arm-dts-Add-sun8i-h2-plus-nanopi-duo-device.patch - patches.armbian/arm-dts-Add-sun8i-h2-plus-sunvell-r69-device.patch - patches.armbian/arm-dts-h3-nanopi-neo-Add-regulator-leds-mmc2.patch - patches.armbian/arm-dts-h3-nanopi-neo-air-Add-regulator-camera-wifi-bluetooth-o.patch - patches.armbian/arm-dts-h3-orangepi-2-Add-regulator-vdd-cpu.patch - patches.armbian/arm-dts-sun8i-r40-bananapi-m2-ultra-add-codec-analog.patch - patches.armbian/arm-dts-sun7i-a20-cubietruck-add-alias-uart2.patch - patches.armbian/arm-dts-sun8i-v3s-s3-pinecube-enable-sound-codec.patch - patches.armbian/arm-dts-sun8i-r40-add-clk_out_a-fix-bananam2ultra.patch - patches.armbian/arm-dts-sun8i-h3-bananapi-m2-plus-add-wifi_pwrseq.patch - patches.armbian/arm-dts-sun7i-a20-bananapro-add-hdmi-connector-de.patch - patches.armbian/arm-dts-sun7i-a20-bananapro-add-AXP209-regulators.patch - patches.armbian/arm-dts-sunxi-h3-h5.dtsi-force-mmc0-bus-width.patch - patches.armbian/fix-cpu-opp-table-sun8i-a83t.patch - patches.armbian/arm64-dts-sun50i-a64-pine64-enable-wifi-mmc1.patch - patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-mmc1-status-okay.patch - patches.armbian/arm64-dts-sun50i-h6-Add-r_uart-uart2-3-pins.patch - patches.armbian/arm64-dts-sun50i-h616.dtsi-reserved-memory-512K-for-BL31.patch - patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch - patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch - patches.armbian/arm64-dts-allwinner-sun50i-h616-Add-VPU-node.patch - patches.armbian/arm64-dts-sun50i-h616-x96-mate-T95-eth-sd-card-hack.patch - patches.armbian/arm64-dts-sun50i-h616-x96-mate-add-hdmi.patch - patches.armbian/arm64-dts-allwinner-Add-axp313a.dtsi.patch - patches.armbian/arm64-dts-add-sun50i-h618-cpu-dvfs.dtsi.patch - patches.armbian/LED-green_power_on-red_status_heartbeat-arch-arm64-boot-dts-all.patch - patches.armbian/arm64-dts-allwinner-h616-orangepi-zero2-Enable-expansion-board-.patch - patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-enable-Bluetooth.patch - patches.armbian/arm64-dts-nanopi-a64-set-right-phy-mode-to-rgmii-id.patch - patches.armbian/arm64-dts-FIXME-a64-olinuxino-add-regulator-audio-mmc.patch - patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-k1-plus-device.patch - patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo-core2-device.patch - patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo2-v1.1-device.patch - patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-m1-plus2-device.patch - patches.armbian/arm64-dts-sun50i-h5-nanopi-neo2-add-regulator-led-triger.patch - patches.armbian/arm64-dts-sun50i-h5-orangepi-pc2-add-spi-flash.patch - patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-regulator.patch - patches.armbian/arm64-dts-sun50i-h5-orangepi-zero-plus-add-regulator.patch - patches.armbian/arm64-dts-sun50i-h6.dtsi-improve-thermals.patch - patches.armbian/arm64-dts-sun50i-h6-orangepi-3-delete-node-spi0.patch - patches.armbian/arm64-dts-sun50i-h6-orangepi-lite2-spi0-usb3phy-dwc3-enable.patch - patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-wifi-rtl8723cs.patch - patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-dwc3-usb3phy.patch - patches.armbian/arm64-dts-sun50i-a64-pine64-add-spi0.patch - patches.armbian/arm64-dts-sun50i-h6.dtsi-add-pinctrl-pins-for-spi.patch - patches.armbian/arm64-dts-sun50i-a64-orangepi-win-add-aliase-ethernet1.patch - patches.armbian/arm64-dts-sun50i-a64-force-mmc0-bus-width.patch - patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch - patches.armbian/scripts-add-overlay-compilation-support.patch - patches.armbian/Enable-creation-of-__symbols__-node.patch - patches.armbian/Makefile-CONFIG_SHELL-fix-for-builddeb-packaging.patch - patches.armbian/arm-dts-overlay-Add-Overlays-for-sunxi.patch - patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch - patches.armbian/arm-dts-overlay-sun8i-h3-cpu-clock-add-overclock.patch - patches.armbian/arm64-dts-overlay-sun50i-a64-pine64-7inch-lcd.patch - patches.armbian/arm64-dts-overlay-sun50i-h5-add-gpio-regulator-overclock.patch - patches.armbian/Move-sun50i-h6-pwm-settings-to-its-own-overlay.patch - patches.armbian/Compile-the-pwm-overlay.patch - patches.armbian/cb1-overlay.patch - patches.armbian/Correct-perf-interrupt-source-number-as-referenced-in-the-Allwi.patch - patches.armbian/Enable-DMA-support-for-the-Allwinner-A10-EMAC-which-already-exi.patch - patches.armbian/Add-HDMI-support-for-pcDuino-1-and-2-by-including-HDMI-and-DE-n.patch - patches.armbian/Add-HDMI-support-for-pcDuino-3-by-including-HDMI-and-DE-nodes.patch - patches.armbian/arm-dts-sunxi-h3-h5.dtsi-add-i2s0-i2s1-pins.patch - patches.armbian/arm-dts-sun5i-a13-olinuxino-micro-add-panel-lcd-olinuxino-4.3.patch - patches.armbian/arm-dts-sun5i-a13-olinuxino-Add-panel-lcd-olinuxino-4.3-needed-.patch - patches.armbian/arm-dts-sun7i-a20-olinuxino-micro-emmc-Add-vqmmc-node.patch - patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-audio-codec.patch - patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-ldo3-always-on.patch - patches.armbian/arm-dts-sun7i-a20-olimex-som-204-evb-olinuxino-micro-decrease-d.patch - patches.armbian/arm-dts-sun8i-h3-add-thermal-zones.patch - patches.armbian/arm64-dts-sun50i-a64-olinuxino-add-boards.patch - patches.armbian/arm64-dts-sun50i-a64-olinuxino-emmc-enable-bluetooth.patch - patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-enable-bluetooth.patch - patches.armbian/arm64-dts-sun50i-a64.dtsi-adjust-thermal-trip-points.patch - patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-Disable-clock-phase-and-.patch - patches.armbian/Temp_fix-mailbox-arch-arm64-boot-dts-allwinner-sun50i-a64-pinep.patch - patches.armbian/arm64-dts-sun50i-h6-orangepi-3-add-r_uart-aliase.patch - patches.armbian/arm64-dts-sun50i-h5-add-cpu-opp-refs.patch - patches.armbian/arm64-dts-sun50i-h5-add-termal-zones.patch - patches.armbian/arm64-dts-sun50i-h6-orangepi-add-cpu-opp-refs.patch - patches.armbian/arm64-dts-sun50i-h6-orangepi-enable-higher-clock-regulator-max-.patch - patches.armbian/arm-dts-sun8i-h3-orangepi-pc-plus-add-wifi_pwrseq.patch - patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-rtl8723cs.patch - patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-xradio-interrupt.patch - patches.armbian/arm64-dts-allwinner-sun50i-h6-Fix-H6-emmc.patch - patches.armbian/arm64-dts-sun50i-h5-nanopi-r1s-h5-add-rtl8153-support.patch - patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1-sd-emmc.patch - patches.armbian/ARM-dts-sun8i-nanopiduo2-Use-key-0-as-power-button.patch - patches.armbian/ARM-dts-sun8i-nanopiduo2-enable-ethernet.patch - patches.armbian/arm-dts-sun8i-h3-reduce-opp-microvolt-to-prevent-not-supported-.patch - patches.armbian/arm64-dts-sun50i-h5-enable-power-button-for-orangepi-prime.patch - patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch - patches.armbian/arm64-dts-allwinner-h6-Add-AC200-EPHY-nodes.patch - patches.armbian/arm64-dts-allwinner-h6-tanix-enable-Ethernet.patch - patches.armbian/arm64-dts-allwinner-h6-add-AC200-codec-nodes.patch - patches.armbian/arm64-dts-allwinner-h6-enable-AC200-codec.patch - patches.armbian/add-nodes-for-sunxi-info-sunxi-addr-and-sunxi-dump-reg.patch - patches.armbian/add-initial-support-for-orangepi3-lts.patch - patches.armbian/Add-wifi-nodes-for-Inovato-Quadra.patch - patches.armbian/arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2-and-zero3.patch - patches.armbian/arm64-dts-sun50i-h618-orangepi-zero3-Enable-GPU-mali.patch - patches.armbian/arm64-dts-h616-add-hdmi-support-for-zero2-and-zero3.patch - patches.armbian/arm64-sun50i-h616-Add-i2c-2-3-4-uart-2-5-pins.patch - patches.armbian/arm64-dts-sun50i-h616-add-pwm-nodes-support.patch - patches.armbian/arm64-dts-h616-8-Add-overlays-i2c-pwm-uart.patch - patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patch - patches.armbian/add-dtb-overlay-for-zero2w.patch - patches.armbian/Sound-for-H616-H618-Allwinner-SOCs.patch - patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-HDMI.patch - patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-EMAC1.patch - patches.armbian/arm64-dts-sun50i-h313-x96q-lpddr3.patch - patches.armbian/Add-BananaPi-BPI-M4-Zero-pinctrl.patch - patches.armbian/Add-BananaPi-BPI-M4-Zero-overlays.patch - patches.armbian/Fix-ghost-touches-on-tsc2007-tft-screen.patch - patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-usb_otg-dr_mode.patch - patches.armbian/BigTreeTech-CB1-dts-i2c-gpio-mode-adjustment-and-ws2812-rgb_val.patch - patches.armbian/arm64-allwinner-Add-sun50i-h618-bananapi-m4-berry-support.patch - patches.armbian/h616-add-keys.patch - patches.armbian/sun50i-h616-Add-the-missing-digital-audio-node.patch diff --git a/patch/kernel/archive/sunxi-6.16/series.megous b/patch/kernel/archive/sunxi-6.16/series.megous deleted file mode 100644 index 159bf7c44..000000000 --- a/patch/kernel/archive/sunxi-6.16/series.megous +++ /dev/null @@ -1,241 +0,0 @@ -# -# Automatically generated by the script mk_format_patch -# -# https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable -# - patches.megous/media-ov5640-Experiment-Try-to-disable-denoising-sharpening.patch - patches.megous/media-ov5640-Sleep-after-poweroff-to-ensure-next-poweron-is-not.patch - patches.megous/media-ov5640-Don-t-powerup-the-sensor-during-driver-probe.patch - patches.megous/media-ov5640-set-default-ae-target-lower.patch - patches.megous/media-ov5640-Improve-error-reporting.patch - patches.megous/media-ov5640-Implement-autofocus.patch - patches.megous/media-ov5640-Improve-firmware-load-time.patch - patches.megous/media-ov5640-Fix-focus-commands-blocking-until-complete.patch - patches.megous/media-ov5640-Add-read-only-property-for-vblank.patch - patches.megous/media-ov5640-use-pm_runtime_force_suspend-resume-for-system-sus.patch - patches.megous/media-sun6i-csi-capture-Use-subdev-operation-to-access-bridge-f.patch - patches.megous/media-sun6i-csi-subdev-Use-subdev-active-state-to-store-active-.patch - patches.megous/media-sun6i-csi-merge-sun6i_csi_formats-and-sun6i_csi_formats_m.patch - patches.megous/media-sun6i-csi-add-V4L2_CAP_IO_MC-capability.patch - patches.megous/media-sun6i-csi-implement-vidioc_enum_framesizes.patch - patches.megous/media-sun6i-csi-Add-multicamera-support-for-parallel-bus.patch - patches.megous/nfc-pn544-Add-support-for-VBAT-PVDD-regulators.patch - patches.megous/bluetooth-bcm-Restore-drive_rts_on_open-true-behavior-on-bcm207.patch - patches.megous/mmc-add-delay-after-power-class-selection.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-PN544-NFC-support.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-powerup-down-support-for-the-3G.patch - patches.megous/ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to-A83T-untes.patch - patches.megous/ARM-dts-suni-a83t-Add-i2s0-pins.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-sound-support-via-AC100-codec.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-regulators-to-the-accelerometer.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-camera-sensors-HM5065-GC2145.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-flash-led-support.patch - patches.megous/dt-bindings-input-gpio-vibrator-Don-t-require-enable-gpios.patch - patches.megous/input-gpio-vibra-Allow-to-use-vcc-supply-alone-to-control-the-v.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-support-for-the-vibrator-motor.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Increase-voltage-on-the-vibrator.patch - patches.megous/dt-bindings-leds-Add-a-binding-for-AXP813-charger-led.patch - patches.megous/leds-axp20x-Support-charger-LED-on-AXP20x-like-PMICs.patch - patches.megous/ARM-dts-axp813-Add-charger-LED.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Enable-charging-LED.patch - patches.megous/MAINTAINERS-Add-entry-for-Himax-HM5065.patch - patches.megous/dt-bindings-media-Add-bindings-for-Himax-HM5065-camera-sensor.patch - patches.megous/hm5065-yaml-bindings-wip.patch - patches.megous/media-hm5065-Add-subdev-driver-for-Himax-HM5065-camera-sensor.patch - patches.megous/media-i2c-gc2145-Move-upstream-driver-out-of-the-way.patch - patches.megous/media-gc2145-Galaxycore-camera-module-driver.patch - patches.megous/media-gc2145-Added-BGGR-bayer-mode.patch - patches.megous/media-gc2145-Disable-debug-output.patch - patches.megous/media-gc2145-Add-PIXEL_RATE-HBLANK-and-VBLANK-controls.patch - patches.megous/media-gc2145-implement-system-suspend.patch - patches.megous/media-gc2145-fix-white-balance-colors.patch - patches.megous/media-i2c-gc2145-Parse-and-register-properties.patch - patches.megous/mailbox-Allow-to-run-mailbox-while-timekeeping-is-suspended.patch - patches.megous/ARM-sunxi-Add-experimental-suspend-to-memory-implementation-for.patch - patches.megous/ARM-sunxi-sunxi_cpu0_hotplug_support_set-is-not-supported-on-A8.patch - patches.megous/firmware-scpi-Add-support-for-sending-a-SCPI_CMD_SET_SYS_PWR_ST.patch - patches.megous/ARM-sunxi-Use-SCPI-to-send-suspend-message-to-SCP-on-A83T.patch - patches.megous/gnss-ubx-Send-soft-powerdown-message-on-suspend.patch - patches.megous/clk-sunxi-ng-Export-CLK_DRAM-for-devfreq.patch - patches.megous/ARM-dts-sun8i-a83t-Add-MBUS-node.patch - patches.megous/clk-sunxi-ng-Set-maximum-P-and-M-factors-to-1-for-H3-pll-cpux-c.patch - patches.megous/clk-sunxi-ng-Don-t-use-CPU-PLL-gating-and-CPUX-reparenting-to-H.patch - patches.megous/ARM-dts-sun8i-h3-Use-my-own-more-aggressive-OPPs-on-H3.patch - patches.megous/arm64-dts-sun50i-h5-Use-my-own-more-aggressive-OPPs-on-H5.patch - patches.megous/ARM-dts-sun8i-h3-orange-pi-pc-Increase-max-CPUX-voltage-to-1.4V.patch - patches.megous/ARM-dts-sun8i-a83t-Improve-CPU-OPP-tables-go-up-to-1.8GHz.patch - patches.megous/cpufreq-sun50i-Show-detected-CPU-bin-for-easier-debugging.patch - patches.megous/net-stmmac-sun8i-Use-devm_regulator_get-for-PHY-regulator.patch - patches.megous/net-stmmac-sun8i-Rename-PHY-regulator-variable-to-regulator_phy.patch - patches.megous/net-stmmac-sun8i-Add-support-for-enabling-a-regulator-for-PHY-I.patch - patches.megous/arm64-dts-allwinner-orange-pi-3-Enable-ethernet.patch - patches.megous/Revert-Input-cyttsp4-remove-driver.patch - patches.megous/input-cyttsp4-Port-to-6.16.patch - patches.megous/input-cyttsp4-De-obfuscate-platform-data-for-keys.patch - patches.megous/input-cyttsp4-Remove-useless-indirection-with-driver-platform-d.patch - patches.megous/input-cyttsp4-Remove-unused-enable_vkeys.patch - patches.megous/input-cyttsp4-De-obfuscate-MT-signals-setup-platform-data.patch - patches.megous/input-cyttsp4-Clear-the-ids-buffer-in-a-saner-way.patch - patches.megous/input-cyttsp4-ENOSYS-error-is-ok-when-powering-up.patch - patches.megous/input-cyttsp4-Faster-recovery-from-failed-wakeup-HACK.patch - patches.megous/input-cyttsp4-Use-i2c-spi-names-directly-in-the-driver.patch - patches.megous/input-cyttsp4-Port-the-driver-to-use-device-properties.patch - patches.megous/input-cyttsp4-Restart-on-wakeup-wakeup-by-I2C-read-doesn-t-work.patch - patches.megous/input-cyttsp4-Fix-warnings.patch - patches.megous/input-cyttsp4-Make-the-driver-not-hog-the-system-s-workqueue.patch - patches.megous/input-cyttsp4-Fix-probe-oops.patch - patches.megous/input-cyttsp4-Fix-compile-issue.patch - patches.megous/video-fbdev-eInk-display-driver-for-A13-based-PocketBooks.patch - patches.megous/regulator-Add-simple-driver-for-enabling-a-regulator-from-users.patch - patches.megous/regulator-tp65185x-Add-tp65185x-eInk-panel-regulator-driver.patch - patches.megous/regulator-tp65185-Add-hwmon-device-for-reading-temperature.patch - patches.megous/iio-adc-sun4i-gpadc-iio-Allow-to-use-sun5i-a13-gpadc-iio-from-D.patch - patches.megous/mtd-spi-nor-Add-vdd-regulator-support.patch - patches.megous/ARM-dts-sun5i-Add-soc-handle.patch - patches.megous/ARM-dts-sun5i-Add-PocketBook-Touch-Lux-3-display-ctp-support.patch - patches.megous/ARM-dts-sun5i-a13-pocketbook-touch-lux-3-Add-RTC-clock-cells.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-front-back-cameras.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-Type-C-support-for-all-PP-va.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-modem-power-manager.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Fix-BH-modem-manager-behavior.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-detailed-OCV-to-capactiy-con.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Shorten-post-power-on-delay-on-m.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Bluetooth-audio.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Enable-internal-HMIC-bias.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-modem-audio.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Bump-I2C-frequency-to-400kHz.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-interrupt-pin-for-WiFi.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Power-off-the-touch-controller-i.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Don-t-make-lradc-keys-a-wakeup-s.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Set-minimum-backlight-duty-cycle.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-supply-for-i2c-bus-to-anx768.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Workaround-broken-HDMI-HPD-signa.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinephone-keyboa.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Enable-Pinephone-Keyboard-power-.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinephone-1.2-be.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-power-supply-to-stk3311.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Add-reboot-mode-driver.patch - patches.megous/arm64-dts-sun50i-a64-pinephone-Use-newer-jack-detection-impleme.patch - patches.megous/arm64-dts-sun50i-Define-orientation-and-rotation-for-PinePhone-.patch - patches.megous/2-arm64-dts-sun50i-Define-orientation-and-rotation-for-PinePhone-.patch - patches.megous/arm64-dts-sun50-a64-pinephone-Define-jack-pins-in-DT.patch - patches.megous/dt-bindings-sound-Add-jack-type-property-to-sun8i-a33-codec.patch - patches.megous/ASoC-sun8i-codec-Allow-the-jack-type-to-be-set-via-device-tree.patch - patches.megous/ASoC-sun8i-codec-define-button-keycodes.patch - patches.megous/ASoC-sun8i-codec-Add-debug-output-for-jack-detection.patch - patches.megous/ASoC-sun8i-codec-Set-jack_type-from-DT-in-probe.patch - patches.megous/ASoC-simple-card-Allow-to-define-pins-for-aux-jack-devices.patch - patches.megous/clk-sunxi-ng-a64-Increase-PLL_AUDIO-base-frequency.patch - patches.megous/dt-bindings-mfd-Add-codec-related-properties-to-AC100-PMIC.patch - patches.megous/sound-soc-ac100-codec-Support-analog-part-of-X-Powers-AC100-cod.patch - patches.megous/sound-soc-sun8i-codec-Add-support-for-digital-part-of-the-AC100.patch - patches.megous/ASoC-ec25-New-codec-driver-for-the-EC25-modem.patch - patches.megous/ASOC-sun9i-hdmi-audio-Initial-implementation.patch - patches.megous/ARM-dts-sunxi-h3-h5-Add-hdmi-sound-card.patch - patches.megous/ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-with-hdmi.patch - patches.megous/ARM-dts-sun8i-h2-plus-bananapi-m2-zero-Enable-HDMI-audio.patch - patches.megous/ARM-dts-sun8i-a83t-Add-hdmi-sound-card.patch - patches.megous/ARM-dts-sun8i-a83t-Enable-hdmi-sound-card-on-boards-with-hdmi.patch - patches.megous/ARM-dts-sun8i-r40-Add-hdmi-sound-card.patch - patches.megous/ARM-dts-sun8i-r40-bananapi-m2-ultra-Enable-HDMI-audio.patch - patches.megous/ARM-dts-sun8i-v40-bananapi-m2-berry-Enable-HDMI-audio.patch - patches.megous/arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch - patches.megous/arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boards-with-hd.patch - patches.megous/arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch - patches.megous/arm64-dts-allwinner-a64-Enable-hdmi-sound-card-on-boards-with-h.patch - patches.megous/arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boards-with-hd.patch - patches.megous/Move-a-node-to-avoid-merge-conflict.patch - patches.megous/arm64-dts-sun50i-a64-Set-fifo-size-for-uarts.patch - patches.megous/ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch - patches.megous/Mark-some-slow-drivers-for-async-probe-with-PROBE_PREFER_ASYNCH.patch - patches.megous/arm64-xor-Select-32regs-without-benchmark-to-speed-up-boot.patch - patches.megous/clk-sunxi-ng-Mark-TWD-clocks-as-critical.patch - patches.megous/firmware-arm_scpi-Support-unidirectional-mailbox-channels.patch - patches.megous/ARM-dts-sunxi-a83t-Add-SCPI-protocol.patch - patches.megous/ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch - patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileges-over-SCP.patch - patches.megous/rtc-sun6i-Allow-RTC-wakeup-after-shutdown.patch - patches.megous/misc-modem-power-Power-manager-for-modems.patch - patches.megous/ARM-dts-sun8i-a83t-Add-missing-GPU-trip-point.patch - patches.megous/arm64-dts-sun50i-h5-Add-missing-GPU-trip-point.patch - patches.megous/arm64-dts-allwinner-a64-Fix-LRADC-compatible.patch - patches.megous/media-cedrus-Fix-failure-to-clean-up-hardware-on-probe-failure.patch - patches.megous/usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs-where-it-s.patch - patches.megous/arm64-dts-allwinner-Enforce-consistent-MMC-numbering.patch - patches.megous/ARM-dts-sunxi-Add-aliases-for-MMC.patch - patches.megous/usb-gadget-Fix-dangling-pointer-in-netdev-private-data.patch - patches.megous/Revert-drm-sun4i-lvds-Invert-the-LVDS-polarity.patch - patches.megous/of-property-fw_devlink-Support-allwinner-sram-links.patch - patches.megous/Fix-broken-allwinner-sram-dependency-on-h616-h618.patch - patches.megous/Fix-intptr_t-typedef.patch - patches.megous/mmc-sunxi-mmc-Remove-runtime-PM.patch - patches.megous/pci-Workaround-ITS-timeouts-on-poweroff-reboot-on-Orange-Pi-5-P.patch - patches.megous/usb-serial-option-add-reset_resume-callback-for-WWAN-devices.patch - patches.megous/media-ov5648-Fix-call-to-pm_runtime_set_suspended.patch - patches.megous/arm64-dts-rk3399-Add-dmc_opp_table.patch - patches.megous/bluetooth-h5-Don-t-re-initialize-rtl8723cs-on-resume.patch - patches.megous/drm-sun4i-Implement-gamma-correction.patch - patches.megous/drm-panel-st7703-Fix-xbd599-timings-to-make-refresh-rate-exactl.patch - patches.megous/drm-sun4i-Support-taking-over-display-pipeline-state-from-p-boo.patch - patches.megous/video-pwm_bl-Allow-to-change-lth_brightness-via-sysfs.patch - patches.megous/clk-sunxi-ng-sun50i-a64-Switch-parent-of-MIPI-DSI-to-periph0-1x.patch - patches.megous/drm-sun4i-tcon-Support-keeping-dclk-rate-upon-ancestor-clock-ch.patch - patches.megous/phy-allwinner-sun4i-usb-Add-support-for-usb_role_switch.patch - patches.megous/regulator-axp20x-Add-support-for-vin-supply-for-drivevbus.patch - patches.megous/regulator-axp20x-Turn-N_VBUSEN-to-input-on-x-powers-sense-vbus-.patch - patches.megous/drm-bridge-dw-hdmi-Allow-to-accept-HPD-status-from-other-driver.patch - patches.megous/drm-bridge-dw-hdmi-Report-HDMI-hotplug-events.patch - patches.megous/usb-typec-anx7688-Add-driver-for-ANX7688-USB-C-HDMI-bridge.patch - patches.megous/dt-bindings-axp20x-adc-allow-to-use-TS-pin-as-GPADC.patch - patches.megous/iio-adc-axp20x_adc-allow-to-set-TS-pin-to-GPADC-mode.patch - patches.megous/power-axp20x_battery-Allow-to-set-target-voltage-to-4.35V.patch - patches.megous/power-supply-axp20x_battery-Add-support-for-reporting-OCV.patch - patches.megous/regulator-axp20x-Enable-over-temperature-protection-and-16s-res.patch - patches.megous/power-supply-axp20x_battery-Setup-thermal-regulation-experiment.patch - patches.megous/power-supply-axp20x_battery-Fix-charging-done-detection.patch - patches.megous/mfd-axp20x-Add-battery-IRQ-resources.patch - patches.megous/power-supply-axp20x_battery-Send-uevents-for-status-changes.patch - patches.megous/power-supply-axp20x_battery-Monitor-battery-health.patch - patches.megous/power-supply-axp20x-usb-power-Change-Vbus-hold-voltage-to-4.5V.patch - patches.megous/power-axp803-Add-interrupts-for-low-battery-power-condition.patch - patches.megous/power-supply-axp20x-battery-Support-POWER_SUPPLY_PROP_CHARGE_BE.patch - patches.megous/power-supply-axp20x-battery-Enable-poweron-by-RTC-alarm.patch - patches.megous/power-supply-axp20x-battery-Add-support-for-POWER_SUPPLY_PROP_E.patch - patches.megous/power-supply-Add-support-for-USB_BC_ENABLED-and-USB_DCP_INPUT_C.patch - patches.megous/power-supply-axp20x-usb-power-Add-missing-interrupts.patch - patches.megous/power-supply-axp20x-battery-Improve-probe-error-reporting.patch - patches.megous/sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-errors.patch - patches.megous/thermal-sun8i-Be-loud-when-probe-fails.patch - patches.megous/i2c-mv64xxx-Don-t-make-a-fuss-when-pinctrl-recovery-state-is-no.patch - patches.megous/iio-st_sensors-Don-t-report-error-when-the-device-is-not-presen.patch - patches.megous/opp-core-Avoid-confusing-error-when-no-regulator-is-defined-in-.patch - patches.megous/rtc-Print-which-error-caused-RTC-read-failure.patch - patches.megous/arm64-dts-allwinner-a64-pinetab-add-front-camera.patch - patches.megous/arm64-allwinner-dts-a64-enable-K101-IM2BYL02-panel-for-PineTab.patch - patches.megous/arm64-dts-sun50i-a64-pinetab-Name-sound-card-PineTab.patch - patches.megous/arm64-dts-sun50i-a64-pinetab-Add-accelerometer.patch - patches.megous/arm64-dts-sun50i-a64-pinetab-enable-RTL8723CS-bluetooth.patch - patches.megous/usb-typec-fusb302-Slightly-increase-wait-time-for-BC1.2-result.patch - patches.megous/usb-typec-fusb302-Set-the-current-before-enabling-pullups.patch - patches.megous/usb-typec-fusb302-Extend-debugging-interface-with-driver-state-.patch - patches.megous/usb-typec-fusb302-Retry-reading-of-CC-pins-status-if-activity-i.patch - patches.megous/usb-typec-fusb302-More-useful-of-logging-status-on-interrupt.patch - patches.megous/usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-interrupt-is-n.patch - patches.megous/usb-typec-fusb302-Add-OF-extcon-support.patch - patches.megous/usb-typec-fusb302-Fix-register-definitions.patch - patches.megous/usb-typec-fusb302-Clear-interrupts-before-we-start-toggling.patch - patches.megous/usb-typec-typec-extcon-Add-typec-extcon-bridge-driver.patch - patches.megous/usb-typec-typec-extcon-Enable-debugging-for-now.patch - patches.megous/usb-typec-typec-extcon-Allow-to-force-reset-on-each-mux-change.patch - patches.megous/Revert-usb-typec-tcpm-unregister-existing-source-caps-before-re.patch - patches.megous/usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPTACLE-bit.patch - patches.megous/usb-typec-tcpm-Unregister-altmodes-before-registering-new-ones.patch - patches.megous/usb-typec-tcpm-Fix-PD-devices-capabilities-registration.patch - patches.megous/usb-typec-tcpm-Improve-logs.patch - patches.megous/Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-power-off-bu.patch - patches.megous/Add-support-for-my-private-Sapomat-device.patch - patches.megous/ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-header-UARTs.patch - patches.megous/mtd-spi-nor-Add-Alliance-memory-support.patch - patches.megous/Revert-ASoC-soc-core-merge-snd_soc_unregister_component-and-snd.patch - patches.megous/Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-failure.patch - patches.megous/Defconfigs-for-all-my-devices.patch diff --git a/patch/kernel/archive/sunxi-6.16/0000.patching_config.yaml b/patch/kernel/archive/sunxi-6.18/0000.patching_config.yaml similarity index 97% rename from patch/kernel/archive/sunxi-6.16/0000.patching_config.yaml rename to patch/kernel/archive/sunxi-6.18/0000.patching_config.yaml index bdfda9444..168f101a8 100644 --- a/patch/kernel/archive/sunxi-6.16/0000.patching_config.yaml +++ b/patch/kernel/archive/sunxi-6.18/0000.patching_config.yaml @@ -1,10 +1,10 @@ config: # Just some info stuff; not used by the patching scripts - name: sunxi-6.16 + name: sunxi-6.18 kind: kernel type: mainline # or: mainline - branch: linux-6.16.y + branch: linux-6.18.y last-known-good-tag: v6.7.0 maintainers: - { github: pyavitz, name: Patrick Yavitz, email: pyavitz@gmail.com, armbian-forum: c0rnelius } diff --git a/patch/kernel/archive/sunxi-6.16/dt/sun50i-h618-bananapi-m4-zero.dts b/patch/kernel/archive/sunxi-6.18/dt/sun50i-h618-bananapi-m4-zero.dts similarity index 100% rename from patch/kernel/archive/sunxi-6.16/dt/sun50i-h618-bananapi-m4-zero.dts rename to patch/kernel/archive/sunxi-6.18/dt/sun50i-h618-bananapi-m4-zero.dts diff --git a/patch/kernel/archive/sunxi-6.16/dt/sun50i-h618-bananapi-m4.dtsi b/patch/kernel/archive/sunxi-6.18/dt/sun50i-h618-bananapi-m4.dtsi similarity index 100% rename from patch/kernel/archive/sunxi-6.16/dt/sun50i-h618-bananapi-m4.dtsi rename to patch/kernel/archive/sunxi-6.18/dt/sun50i-h618-bananapi-m4.dtsi diff --git a/patch/kernel/archive/sunxi-6.16/dt/sun50i-h618-kickpi-k2b.dts b/patch/kernel/archive/sunxi-6.18/dt/sun50i-h618-kickpi-k2b.dts similarity index 100% rename from patch/kernel/archive/sunxi-6.16/dt/sun50i-h618-kickpi-k2b.dts rename to patch/kernel/archive/sunxi-6.18/dt/sun50i-h618-kickpi-k2b.dts diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/ARM-dts-sun8i-nanopiduo2-Use-key-0-as-power-button.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/ARM-dts-sun8i-nanopiduo2-Use-key-0-as-power-button.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/ARM-dts-sun8i-nanopiduo2-Use-key-0-as-power-button.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/ARM-dts-sun8i-nanopiduo2-Use-key-0-as-power-button.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/ARM-dts-sun8i-nanopiduo2-enable-ethernet.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/ARM-dts-sun8i-nanopiduo2-enable-ethernet.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/ARM-dts-sun8i-nanopiduo2-enable-ethernet.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/ARM-dts-sun8i-nanopiduo2-enable-ethernet.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-EMAC1.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-EMAC1.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-EMAC1.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-EMAC1.patch index e4454c595..23f4dc454 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-EMAC1.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-EMAC1.patch @@ -9,7 +9,7 @@ Signed-off-by: JohnTheCoolingFan 1 file changed, 18 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi -index e7af3a976b6c..dbf43ff63b8e 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi @@ -154,6 +154,24 @@ &gpu { diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-HDMI.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-HDMI.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-HDMI.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-HDMI.patch index b83ff6b5e..2152dc8f7 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-HDMI.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-HDMI.patch @@ -1,15 +1,15 @@ -From f3157390fffbb9dcc634e99d1d0e6728997d789b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: JohnTheCoolingFan Date: Thu, 13 Jun 2024 11:07:35 +0000 Subject: ARM64: dts: sun50i-h616: BigTreeTech CB1: Enable HDMI Signed-off-by: JohnTheCoolingFan --- - .../sun50i-h616-bigtreetech-cb1.dtsi | 26 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi | 26 ++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi -index 0168ff3d9972..e7af3a976b6c 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi @@ -26,6 +26,17 @@ chosen { @@ -53,5 +53,5 @@ index 0168ff3d9972..e7af3a976b6c 100644 cpu-supply = <®_dcdc2>; status = "okay"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/ASoC-AC200-Initial-driver.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/ASoC-AC200-Initial-driver.patch similarity index 98% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/ASoC-AC200-Initial-driver.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/ASoC-AC200-Initial-driver.patch index 3676862eb..65ffb4e27 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/ASoC-AC200-Initial-driver.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/ASoC-AC200-Initial-driver.patch @@ -1,4 +1,4 @@ -From c1601a5d5088a43c4a92fcb3ea1f4529de6a584c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Thu, 1 Sep 2022 17:36:53 +0200 Subject: ASoC: AC200: Initial driver @@ -7,12 +7,11 @@ Signed-off-by: Jernej Skrabec --- sound/soc/codecs/Kconfig | 10 + sound/soc/codecs/Makefile | 2 + - sound/soc/codecs/ac200.c | 772 ++++++++++++++++++++++++++++++++++++++ + sound/soc/codecs/ac200.c | 772 ++++++++++ 3 files changed, 784 insertions(+) - create mode 100644 sound/soc/codecs/ac200.c diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index 28ec636f5a7b..57b3d80cbf02 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -16,6 +16,7 @@ config SND_SOC_ALL_CODECS @@ -23,7 +22,7 @@ index 28ec636f5a7b..57b3d80cbf02 100644 imply SND_SOC_AC97_CODEC imply SND_SOC_AD1836 imply SND_SOC_AD193X_SPI -@@ -425,6 +426,15 @@ config SND_SOC_AB8500_CODEC +@@ -426,6 +427,15 @@ config SND_SOC_AB8500_CODEC tristate depends on ABX500_CORE @@ -40,7 +39,7 @@ index 28ec636f5a7b..57b3d80cbf02 100644 tristate "Build generic ASoC AC97 CODEC driver" select SND_AC97_CODEC diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile -index e1923e1d283f..031ab53e43d1 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile @@ -1,6 +1,7 @@ @@ -51,7 +50,7 @@ index e1923e1d283f..031ab53e43d1 100644 snd-soc-ac97-y := ac97.o snd-soc-ad1836-y := ad1836.o snd-soc-ad193x-y := ad193x.o -@@ -425,6 +426,7 @@ snd-soc-simple-mux-y := simple-mux.o +@@ -432,6 +433,7 @@ snd-soc-simple-mux-y := simple-mux.o obj-$(CONFIG_SND_SOC_88PM860X) += snd-soc-88pm860x.o obj-$(CONFIG_SND_SOC_AB8500_CODEC) += snd-soc-ab8500-codec.o @@ -61,7 +60,7 @@ index e1923e1d283f..031ab53e43d1 100644 obj-$(CONFIG_SND_SOC_AD193X) += snd-soc-ad193x.o diff --git a/sound/soc/codecs/ac200.c b/sound/soc/codecs/ac200.c new file mode 100644 -index 000000000000..662de230dc83 +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/codecs/ac200.c @@ -0,0 +1,772 @@ @@ -838,5 +837,5 @@ index 000000000000..662de230dc83 +MODULE_AUTHOR("Jernej Skrabec "); +MODULE_LICENSE("GPL"); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-BananaPi-BPI-M4-Zero-overlays.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-BananaPi-BPI-M4-Zero-overlays.patch similarity index 77% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Add-BananaPi-BPI-M4-Zero-overlays.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Add-BananaPi-BPI-M4-Zero-overlays.patch index 00642052e..a2697ed15 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-BananaPi-BPI-M4-Zero-overlays.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-BananaPi-BPI-M4-Zero-overlays.patch @@ -1,44 +1,31 @@ -From 43a7177563683a1e7d192138f65073d687ed068b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Patrick Yavitz Date: Tue, 7 Jan 2025 06:39:30 -0500 Subject: Add BananaPi BPI-M4-Zero overlays Signed-off-by: Patrick Yavitz --- - .../arm64/boot/dts/allwinner/overlay/Makefile | 13 ++++++ - ...sun50i-h616-bananapi-m4-pg-15-16-i2c4.dtso | 13 ++++++ - ...sun50i-h616-bananapi-m4-pg-17-18-i2c3.dtso | 13 ++++++ - .../sun50i-h616-bananapi-m4-pg-6-7-uart1.dtso | 13 ++++++ - ...h616-bananapi-m4-pg-8-9-rts-cts-uart1.dtso | 16 +++++++ - .../sun50i-h616-bananapi-m4-ph-2-3-uart5.dtso | 13 ++++++ - ...un50i-h616-bananapi-m4-pi-13-14-uart4.dtso | 13 ++++++ - ...16-bananapi-m4-pi-15-16-rts-cts-uart4.dtso | 16 +++++++ - .../sun50i-h616-bananapi-m4-pi-5-6-i2c0.dtso | 13 ++++++ - .../sun50i-h616-bananapi-m4-pi-7-8-i2c1.dtso | 13 ++++++ - .../sun50i-h616-bananapi-m4-sdio-wifi-bt.dtso | 44 +++++++++++++++++++ - ...-h616-bananapi-m4-spi1-cs0-cs1-spidev.dtso | 32 ++++++++++++++ - ...n50i-h616-bananapi-m4-spi1-cs0-spidev.dtso | 24 ++++++++++ - ...n50i-h616-bananapi-m4-spi1-cs1-spidev.dtso | 13 ++++++ + arch/arm64/boot/dts/allwinner/overlay/Makefile | 13 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-15-16-i2c4.dtso | 13 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-17-18-i2c3.dtso | 13 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-6-7-uart1.dtso | 13 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-8-9-rts-cts-uart1.dtso | 16 ++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-ph-2-3-uart5.dtso | 13 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-13-14-uart4.dtso | 13 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-15-16-rts-cts-uart4.dtso | 16 ++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-5-6-i2c0.dtso | 13 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-7-8-i2c1.dtso | 13 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-sdio-wifi-bt.dtso | 44 ++++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs0-cs1-spidev.dtso | 32 +++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs0-spidev.dtso | 24 +++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs1-spidev.dtso | 13 +++ 14 files changed, 249 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-15-16-i2c4.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-17-18-i2c3.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-6-7-uart1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-8-9-rts-cts-uart1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-ph-2-3-uart5.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-13-14-uart4.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-15-16-rts-cts-uart4.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-5-6-i2c0.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-7-8-i2c1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-sdio-wifi-bt.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs0-cs1-spidev.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs0-spidev.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs1-spidev.dtso diff --git a/arch/arm64/boot/dts/allwinner/overlay/Makefile b/arch/arm64/boot/dts/allwinner/overlay/Makefile -index ccb89b5bf495..3e87d21c9d14 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/overlay/Makefile +++ b/arch/arm64/boot/dts/allwinner/overlay/Makefile -@@ -49,6 +49,19 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ +@@ -48,6 +48,19 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ sun50i-h6-uart2.dtbo \ sun50i-h6-uart3.dtbo \ sun50i-h6-w1-gpio.dtbo \ @@ -60,7 +47,7 @@ index ccb89b5bf495..3e87d21c9d14 100644 sun50i-h616-i2c1-pi.dtbo \ diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-15-16-i2c4.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-15-16-i2c4.dtso new file mode 100644 -index 000000000000..4e78aa8f1f27 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-15-16-i2c4.dtso @@ -0,0 +1,13 @@ @@ -79,7 +66,7 @@ index 000000000000..4e78aa8f1f27 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-17-18-i2c3.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-17-18-i2c3.dtso new file mode 100644 -index 000000000000..3419eee0b70b +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-17-18-i2c3.dtso @@ -0,0 +1,13 @@ @@ -98,7 +85,7 @@ index 000000000000..3419eee0b70b +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-6-7-uart1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-6-7-uart1.dtso new file mode 100644 -index 000000000000..7001781f42d2 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-6-7-uart1.dtso @@ -0,0 +1,13 @@ @@ -117,7 +104,7 @@ index 000000000000..7001781f42d2 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-8-9-rts-cts-uart1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-8-9-rts-cts-uart1.dtso new file mode 100644 -index 000000000000..1317a9b3b52f +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pg-8-9-rts-cts-uart1.dtso @@ -0,0 +1,16 @@ @@ -139,7 +126,7 @@ index 000000000000..1317a9b3b52f +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-ph-2-3-uart5.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-ph-2-3-uart5.dtso new file mode 100644 -index 000000000000..aaa96e46d708 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-ph-2-3-uart5.dtso @@ -0,0 +1,13 @@ @@ -158,7 +145,7 @@ index 000000000000..aaa96e46d708 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-13-14-uart4.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-13-14-uart4.dtso new file mode 100644 -index 000000000000..0373f7d25449 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-13-14-uart4.dtso @@ -0,0 +1,13 @@ @@ -177,7 +164,7 @@ index 000000000000..0373f7d25449 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-15-16-rts-cts-uart4.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-15-16-rts-cts-uart4.dtso new file mode 100644 -index 000000000000..ef9394c8519c +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-15-16-rts-cts-uart4.dtso @@ -0,0 +1,16 @@ @@ -199,7 +186,7 @@ index 000000000000..ef9394c8519c +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-5-6-i2c0.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-5-6-i2c0.dtso new file mode 100644 -index 000000000000..60c75e4d61b5 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-5-6-i2c0.dtso @@ -0,0 +1,13 @@ @@ -218,7 +205,7 @@ index 000000000000..60c75e4d61b5 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-7-8-i2c1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-7-8-i2c1.dtso new file mode 100644 -index 000000000000..99c7e2b8c5f6 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-pi-7-8-i2c1.dtso @@ -0,0 +1,13 @@ @@ -237,7 +224,7 @@ index 000000000000..99c7e2b8c5f6 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-sdio-wifi-bt.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-sdio-wifi-bt.dtso new file mode 100644 -index 000000000000..307f6e5e921c +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-sdio-wifi-bt.dtso @@ -0,0 +1,44 @@ @@ -287,7 +274,7 @@ index 000000000000..307f6e5e921c +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs0-cs1-spidev.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs0-cs1-spidev.dtso new file mode 100644 -index 000000000000..7fa3b94bcc8d +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs0-cs1-spidev.dtso @@ -0,0 +1,32 @@ @@ -325,7 +312,7 @@ index 000000000000..7fa3b94bcc8d +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs0-spidev.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs0-spidev.dtso new file mode 100644 -index 000000000000..fef73f1afa52 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs0-spidev.dtso @@ -0,0 +1,24 @@ @@ -355,7 +342,7 @@ index 000000000000..fef73f1afa52 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs1-spidev.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs1-spidev.dtso new file mode 100644 -index 000000000000..840357f2e9e0 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-bananapi-m4-spi1-cs1-spidev.dtso @@ -0,0 +1,13 @@ @@ -373,5 +360,5 @@ index 000000000000..840357f2e9e0 + }; +}; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-BananaPi-BPI-M4-Zero-pinctrl.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-BananaPi-BPI-M4-Zero-pinctrl.patch similarity index 76% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Add-BananaPi-BPI-M4-Zero-pinctrl.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Add-BananaPi-BPI-M4-Zero-pinctrl.patch index 66bd300de..de5b90094 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-BananaPi-BPI-M4-Zero-pinctrl.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-BananaPi-BPI-M4-Zero-pinctrl.patch @@ -1,18 +1,18 @@ -From 074c33f4b2b60ea6d76968099f8210c61bbad7e1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Patrick Yavitz Date: Thu, 12 Dec 2024 06:49:59 -0500 Subject: Add BananaPi BPI-M4-Zero pinctrl Signed-off-by: Patrick Yavitz --- - arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 12 ++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 12 ++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index 8de963bee2ac..2e418ffdfcdb 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -@@ -409,6 +409,12 @@ i2c0_pins: i2c0-pins { +@@ -428,6 +428,12 @@ i2c0_pins: i2c0-pins { function = "i2c0"; }; @@ -25,7 +25,7 @@ index 8de963bee2ac..2e418ffdfcdb 100644 /omit-if-no-ref/ i2c2_ph_pins: i2c2-ph-pins { pins = "PH2", "PH3"; -@@ -571,6 +577,12 @@ spi1_cs0_pin: spi1-cs0-pin { +@@ -590,6 +596,12 @@ spi1_cs0_pin: spi1-cs0-pin { function = "spi1"; }; @@ -39,5 +39,5 @@ index 8de963bee2ac..2e418ffdfcdb 100644 pins = "PH4"; function = "spdif"; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-FB_TFT-ST7796S-driver.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-FB_TFT-ST7796S-driver.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Add-FB_TFT-ST7796S-driver.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Add-FB_TFT-ST7796S-driver.patch index 43ef6b05c..d602f58fb 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-FB_TFT-ST7796S-driver.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-FB_TFT-ST7796S-driver.patch @@ -1,17 +1,16 @@ -From 0987e0158d63711b01a2435fa515d80a5b540422 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Alan Date: Sat, 20 May 2023 14:33:52 +0800 Subject: Add: FB_TFT ST7796S driver --- - drivers/staging/fbtft/Kconfig | 10 +++ + drivers/staging/fbtft/Kconfig | 10 + drivers/staging/fbtft/Makefile | 1 + - drivers/staging/fbtft/fb_st7796s.c | 100 +++++++++++++++++++++++++++++ + drivers/staging/fbtft/fb_st7796s.c | 100 ++++++++++ 3 files changed, 111 insertions(+) - create mode 100644 drivers/staging/fbtft/fb_st7796s.c diff --git a/drivers/staging/fbtft/Kconfig b/drivers/staging/fbtft/Kconfig -index c2655768209a..c72954ea0e19 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/fbtft/Kconfig +++ b/drivers/staging/fbtft/Kconfig @@ -145,6 +145,16 @@ config FB_TFT_ST7789V @@ -32,7 +31,7 @@ index c2655768209a..c72954ea0e19 100644 tristate "FB driver for tinylcd.com display" help diff --git a/drivers/staging/fbtft/Makefile b/drivers/staging/fbtft/Makefile -index e9cdf0f0a7da..7b2098b8a1bd 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/fbtft/Makefile +++ b/drivers/staging/fbtft/Makefile @@ -31,6 +31,7 @@ obj-$(CONFIG_FB_TFT_SSD1331) += fb_ssd1331.o @@ -45,7 +44,7 @@ index e9cdf0f0a7da..7b2098b8a1bd 100644 obj-$(CONFIG_FB_TFT_UC1611) += fb_uc1611.o diff --git a/drivers/staging/fbtft/fb_st7796s.c b/drivers/staging/fbtft/fb_st7796s.c new file mode 100644 -index 000000000000..cad489cef595 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/staging/fbtft/fb_st7796s.c @@ -0,0 +1,100 @@ @@ -150,5 +149,5 @@ index 000000000000..cad489cef595 +MODULE_AUTHOR("Alan Ma"); +MODULE_LICENSE("GPL"); -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-HDMI-support-for-pcDuino-1-and-2-by-including-HDMI-and-DE-n.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-HDMI-support-for-pcDuino-1-and-2-by-including-HDMI-and-DE-n.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Add-HDMI-support-for-pcDuino-1-and-2-by-including-HDMI-and-DE-n.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Add-HDMI-support-for-pcDuino-1-and-2-by-including-HDMI-and-DE-n.patch index 2306b54c9..d5e6159d1 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-HDMI-support-for-pcDuino-1-and-2-by-including-HDMI-and-DE-n.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-HDMI-support-for-pcDuino-1-and-2-by-including-HDMI-and-DE-n.patch @@ -1,15 +1,15 @@ -From 23514cbc264217bcb6c2e6f199c38d0f713061ea Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ryzer58 Date: Mon, 24 Feb 2025 23:12:01 +0000 Subject: Add HDMI support for pcDuino 1 and 2 by including HDMI and DE nodes Signed-off-by: Ryzer58 --- - .../boot/dts/allwinner/sun4i-a10-pcduino.dts | 25 +++++++++++++++++++ + arch/arm/boot/dts/allwinner/sun4i-a10-pcduino.dts | 25 ++++++++++ 1 file changed, 25 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun4i-a10-pcduino.dts b/arch/arm/boot/dts/allwinner/sun4i-a10-pcduino.dts -index a332d61fd561..b54f54ecc026 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun4i-a10-pcduino.dts +++ b/arch/arm/boot/dts/allwinner/sun4i-a10-pcduino.dts @@ -74,6 +74,17 @@ led-1 { @@ -52,5 +52,5 @@ index a332d61fd561..b54f54ecc026 100644 status = "okay"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-HDMI-support-for-pcDuino-3-by-including-HDMI-and-DE-nodes.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-HDMI-support-for-pcDuino-3-by-including-HDMI-and-DE-nodes.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Add-HDMI-support-for-pcDuino-3-by-including-HDMI-and-DE-nodes.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Add-HDMI-support-for-pcDuino-3-by-including-HDMI-and-DE-nodes.patch index 9125e3a25..5d250aafc 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-HDMI-support-for-pcDuino-3-by-including-HDMI-and-DE-nodes.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-HDMI-support-for-pcDuino-3-by-including-HDMI-and-DE-nodes.patch @@ -1,15 +1,15 @@ -From 8225e98fe295d59bbf4cd5017e04110077ff4d99 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ryzer58 Date: Mon, 2 Jun 2025 00:29:48 +0100 Subject: Add HDMI support for pcDuino 3 by including HDMI and DE nodes Signed-off-by: Ryzer58 --- - .../boot/dts/allwinner/sun7i-a20-pcduino3.dts | 25 +++++++++++++++++++ + arch/arm/boot/dts/allwinner/sun7i-a20-pcduino3.dts | 25 ++++++++++ 1 file changed, 25 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun7i-a20-pcduino3.dts b/arch/arm/boot/dts/allwinner/sun7i-a20-pcduino3.dts -index 928b86a95f34..9a339912298b 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun7i-a20-pcduino3.dts +++ b/arch/arm/boot/dts/allwinner/sun7i-a20-pcduino3.dts @@ -75,6 +75,17 @@ led-1 { @@ -52,5 +52,5 @@ index 928b86a95f34..9a339912298b 100644 &ir0 { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-dump_reg-and-sunxi-sysinfo-drivers.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-dump_reg-and-sunxi-sysinfo-drivers.patch similarity index 97% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Add-dump_reg-and-sunxi-sysinfo-drivers.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Add-dump_reg-and-sunxi-sysinfo-drivers.patch index 3eebddb5a..bb7ad0b40 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-dump_reg-and-sunxi-sysinfo-drivers.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-dump_reg-and-sunxi-sysinfo-drivers.patch @@ -1,4 +1,4 @@ -From 0ebd4ab1a25d17cb321499d1ab328cd7d0efa033 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: afaulkner420 Date: Fri, 25 Mar 2022 19:28:00 +0000 Subject: Add dump_reg and sunxi-sysinfo drivers @@ -8,24 +8,16 @@ Subject: Add dump_reg and sunxi-sysinfo drivers drivers/char/Makefile | 2 + drivers/char/dump_reg/Kconfig | 21 + drivers/char/dump_reg/Makefile | 2 + - drivers/char/dump_reg/dump_reg.c | 887 +++++++++++++++++++++ - drivers/char/dump_reg/dump_reg.h | 132 +++ - drivers/char/dump_reg/dump_reg_misc.c | 209 +++++ + drivers/char/dump_reg/dump_reg.c | 887 ++++++++++ + drivers/char/dump_reg/dump_reg.h | 132 ++ + drivers/char/dump_reg/dump_reg_misc.c | 209 +++ drivers/char/sunxi-sysinfo/Kconfig | 10 + drivers/char/sunxi-sysinfo/Makefile | 5 + - drivers/char/sunxi-sysinfo/sunxi-sysinfo.c | 175 ++++ + drivers/char/sunxi-sysinfo/sunxi-sysinfo.c | 175 ++ 10 files changed, 1445 insertions(+) - create mode 100644 drivers/char/dump_reg/Kconfig - create mode 100644 drivers/char/dump_reg/Makefile - create mode 100644 drivers/char/dump_reg/dump_reg.c - create mode 100644 drivers/char/dump_reg/dump_reg.h - create mode 100644 drivers/char/dump_reg/dump_reg_misc.c - create mode 100644 drivers/char/sunxi-sysinfo/Kconfig - create mode 100644 drivers/char/sunxi-sysinfo/Makefile - create mode 100644 drivers/char/sunxi-sysinfo/sunxi-sysinfo.c diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig -index 7c8dd0abcfdf..aaa164708947 100644 +index 111111111111..222222222222 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig @@ -133,6 +133,8 @@ config POWERNV_OP_PANEL @@ -38,10 +30,10 @@ index 7c8dd0abcfdf..aaa164708947 100644 config DS1620 tristate "NetWinder thermometer support" diff --git a/drivers/char/Makefile b/drivers/char/Makefile -index e9b360cdc99a..3000e4bbde4e 100644 +index 111111111111..222222222222 100644 --- a/drivers/char/Makefile +++ b/drivers/char/Makefile -@@ -10,6 +10,7 @@ obj-$(CONFIG_ATARI_DSP56K) += dsp56k.o +@@ -11,6 +11,7 @@ obj-$(CONFIG_ATARI_DSP56K) += dsp56k.o obj-$(CONFIG_VIRTIO_CONSOLE) += virtio_console.o obj-$(CONFIG_UV_MMTIMER) += uv_mmtimer.o obj-$(CONFIG_IBM_BSR) += bsr.o @@ -49,14 +41,14 @@ index e9b360cdc99a..3000e4bbde4e 100644 obj-$(CONFIG_PRINTER) += lp.o -@@ -43,3 +44,4 @@ obj-$(CONFIG_PS3_FLASH) += ps3flash.o +@@ -44,3 +45,4 @@ obj-$(CONFIG_PS3_FLASH) += ps3flash.o obj-$(CONFIG_XILLYBUS_CLASS) += xillybus/ obj-$(CONFIG_POWERNV_OP_PANEL) += powernv-op-panel.o obj-$(CONFIG_ADI) += adi.o +obj-$(CONFIG_DUMP_REG) += dump_reg/ diff --git a/drivers/char/dump_reg/Kconfig b/drivers/char/dump_reg/Kconfig new file mode 100644 -index 000000000000..dbf24c59fd40 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/char/dump_reg/Kconfig @@ -0,0 +1,21 @@ @@ -83,7 +75,7 @@ index 000000000000..dbf24c59fd40 + diff --git a/drivers/char/dump_reg/Makefile b/drivers/char/dump_reg/Makefile new file mode 100644 -index 000000000000..e953f413b128 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/char/dump_reg/Makefile @@ -0,0 +1,2 @@ @@ -91,7 +83,7 @@ index 000000000000..e953f413b128 +obj-$(CONFIG_DUMP_REG_MISC) += dump_reg_misc.o diff --git a/drivers/char/dump_reg/dump_reg.c b/drivers/char/dump_reg/dump_reg.c new file mode 100644 -index 000000000000..f5d64c4af036 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/char/dump_reg/dump_reg.c @@ -0,0 +1,887 @@ @@ -984,7 +976,7 @@ index 000000000000..f5d64c4af036 +MODULE_DESCRIPTION("dump registers driver"); diff --git a/drivers/char/dump_reg/dump_reg.h b/drivers/char/dump_reg/dump_reg.h new file mode 100644 -index 000000000000..85af5c96ed50 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/char/dump_reg/dump_reg.h @@ -0,0 +1,132 @@ @@ -1122,7 +1114,7 @@ index 000000000000..85af5c96ed50 +#endif /* _DUMP_REG_H_ */ diff --git a/drivers/char/dump_reg/dump_reg_misc.c b/drivers/char/dump_reg/dump_reg_misc.c new file mode 100644 -index 000000000000..238ddd147533 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/char/dump_reg/dump_reg_misc.c @@ -0,0 +1,209 @@ @@ -1337,7 +1329,7 @@ index 000000000000..238ddd147533 +MODULE_DESCRIPTION("misc dump registers driver"); diff --git a/drivers/char/sunxi-sysinfo/Kconfig b/drivers/char/sunxi-sysinfo/Kconfig new file mode 100644 -index 000000000000..9b6e2f06d708 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/char/sunxi-sysinfo/Kconfig @@ -0,0 +1,10 @@ @@ -1353,7 +1345,7 @@ index 000000000000..9b6e2f06d708 + If you don't know whether need it, please select y. diff --git a/drivers/char/sunxi-sysinfo/Makefile b/drivers/char/sunxi-sysinfo/Makefile new file mode 100644 -index 000000000000..188696592114 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/char/sunxi-sysinfo/Makefile @@ -0,0 +1,5 @@ @@ -1364,7 +1356,7 @@ index 000000000000..188696592114 +obj-$(CONFIG_SUNXI_SYS_INFO) += sunxi-sysinfo.o diff --git a/drivers/char/sunxi-sysinfo/sunxi-sysinfo.c b/drivers/char/sunxi-sysinfo/sunxi-sysinfo.c new file mode 100644 -index 000000000000..21f59363cabf +index 000000000000..111111111111 --- /dev/null +++ b/drivers/char/sunxi-sysinfo/sunxi-sysinfo.c @@ -0,0 +1,175 @@ @@ -1544,5 +1536,5 @@ index 000000000000..21f59363cabf +MODULE_AUTHOR("xiafeng"); +MODULE_DESCRIPTION("sunxi sys info."); -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch index b976cc9d0..233dfbf4a 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch @@ -1,4 +1,4 @@ -From 836de5e4296b33c8145b3e6bbc09a7836f059212 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: afaulkner420 Date: Fri, 25 Mar 2022 20:18:18 +0000 Subject: Add sunxi-addr driver - Used to fix uwe5622 bluetooth MAC addresses @@ -8,36 +8,32 @@ Subject: Add sunxi-addr driver - Used to fix uwe5622 bluetooth MAC addresses drivers/misc/Makefile | 1 + drivers/misc/sunxi-addr/Kconfig | 6 + drivers/misc/sunxi-addr/Makefile | 5 + - drivers/misc/sunxi-addr/sha256.c | 178 ++++++++++++++ - drivers/misc/sunxi-addr/sunxi-addr.c | 356 +++++++++++++++++++++++++++ + drivers/misc/sunxi-addr/sha256.c | 178 +++++ + drivers/misc/sunxi-addr/sunxi-addr.c | 356 ++++++++++ 6 files changed, 547 insertions(+) - create mode 100644 drivers/misc/sunxi-addr/Kconfig - create mode 100644 drivers/misc/sunxi-addr/Makefile - create mode 100644 drivers/misc/sunxi-addr/sha256.c - create mode 100644 drivers/misc/sunxi-addr/sunxi-addr.c diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig -index 1525637d1b4b..58682aa3d99c 100644 +index 111111111111..222222222222 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig -@@ -667,4 +667,5 @@ source "drivers/misc/pvpanic/Kconfig" - source "drivers/misc/mchp_pci1xxxx/Kconfig" +@@ -675,4 +675,5 @@ source "drivers/misc/mchp_pci1xxxx/Kconfig" source "drivers/misc/keba/Kconfig" source "drivers/misc/amd-sbi/Kconfig" + source "drivers/misc/rp1/Kconfig" +source "drivers/misc/sunxi-addr/Kconfig" endmenu diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile -index 634517bc9a2b..42059a5025fb 100644 +index 111111111111..222222222222 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile -@@ -76,3 +76,4 @@ obj-$(CONFIG_MCHP_LAN966X_PCI) += lan966x-pci.o - obj-y += keba/ +@@ -77,3 +77,4 @@ obj-y += keba/ obj-y += amd-sbi/ + obj-$(CONFIG_MISC_RP1) += rp1/ obj-$(CONFIG_MODEM_POWER) += modem-power.o +obj-$(CONFIG_SUNXI_ADDR_MGT) += sunxi-addr/ diff --git a/drivers/misc/sunxi-addr/Kconfig b/drivers/misc/sunxi-addr/Kconfig new file mode 100644 -index 000000000000..801dd2c02a56 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/misc/sunxi-addr/Kconfig @@ -0,0 +1,6 @@ @@ -49,7 +45,7 @@ index 000000000000..801dd2c02a56 + allwinner network mac address management diff --git a/drivers/misc/sunxi-addr/Makefile b/drivers/misc/sunxi-addr/Makefile new file mode 100644 -index 000000000000..f01fd4783566 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/misc/sunxi-addr/Makefile @@ -0,0 +1,5 @@ @@ -60,7 +56,7 @@ index 000000000000..f01fd4783566 +obj-$(CONFIG_SUNXI_ADDR_MGT) += sunxi_addr.o diff --git a/drivers/misc/sunxi-addr/sha256.c b/drivers/misc/sunxi-addr/sha256.c new file mode 100644 -index 000000000000..78825810c53f +index 000000000000..111111111111 --- /dev/null +++ b/drivers/misc/sunxi-addr/sha256.c @@ -0,0 +1,178 @@ @@ -244,7 +240,7 @@ index 000000000000..78825810c53f +} diff --git a/drivers/misc/sunxi-addr/sunxi-addr.c b/drivers/misc/sunxi-addr/sunxi-addr.c new file mode 100644 -index 000000000000..c8a50c8dbac6 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/misc/sunxi-addr/sunxi-addr.c @@ -0,0 +1,356 @@ @@ -605,5 +601,5 @@ index 000000000000..c8a50c8dbac6 +MODULE_DESCRIPTION("Network MAC Addess Manager"); +MODULE_LICENSE("GPL"); -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-wifi-nodes-for-Inovato-Quadra.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-wifi-nodes-for-Inovato-Quadra.patch similarity index 56% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Add-wifi-nodes-for-Inovato-Quadra.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Add-wifi-nodes-for-Inovato-Quadra.patch index fefae49e6..2bdd5756b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-wifi-nodes-for-Inovato-Quadra.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-wifi-nodes-for-Inovato-Quadra.patch @@ -1,29 +1,15 @@ -From 6b1d64060b59702b34bf07068aeff10139c69400 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Gunjan Gupta Date: Tue, 19 Sep 2023 11:06:01 +0000 Subject: Add wifi nodes for Inovato Quadra --- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../allwinner/sun50i-h6-inovato-quadra.dts | 56 +++++++++++++++++++ - 2 files changed, 57 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-inovato-quadra.dts + arch/arm64/boot/dts/allwinner/sun50i-h6-inovato-quadra.dts | 56 ++++++++++ + 1 file changed, 56 insertions(+) -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 1edcb7023ef8..aedee0882dc9 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -50,6 +50,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64-model-b.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-inovato-quadra.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6-mini.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h313-tanix-tx1.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-cb1-manta.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-inovato-quadra.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-inovato-quadra.dts new file mode 100644 -index 000000000000..551ad69f18a6 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-inovato-quadra.dts @@ -0,0 +1,56 @@ @@ -84,5 +70,5 @@ index 000000000000..551ad69f18a6 + post-power-on-delay-ms = <0xc8>; +}; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-ws2812-RGB-driver-for-allwinner-H616.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-ws2812-RGB-driver-for-allwinner-H616.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Add-ws2812-RGB-driver-for-allwinner-H616.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Add-ws2812-RGB-driver-for-allwinner-H616.patch index e755c234c..9eb205b0c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Add-ws2812-RGB-driver-for-allwinner-H616.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Add-ws2812-RGB-driver-for-allwinner-H616.patch @@ -1,4 +1,4 @@ -From 4546be7fd3812ee3a733beececa504bf7cb4bfac Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Alan Date: Sat, 20 May 2023 17:26:21 +0800 Subject: Add: ws2812 RGB driver for allwinner H616 @@ -6,12 +6,11 @@ Subject: Add: ws2812 RGB driver for allwinner H616 --- drivers/leds/rgb/Kconfig | 7 + drivers/leds/rgb/Makefile | 1 + - drivers/leds/rgb/leds-ws2812.c | 227 +++++++++++++++++++++++++++++++++ + drivers/leds/rgb/leds-ws2812.c | 227 ++++++++++ 3 files changed, 235 insertions(+) - create mode 100644 drivers/leds/rgb/leds-ws2812.c diff --git a/drivers/leds/rgb/Kconfig b/drivers/leds/rgb/Kconfig -index 222d943d826a..3b7761f39f44 100644 +index 111111111111..222222222222 100644 --- a/drivers/leds/rgb/Kconfig +++ b/drivers/leds/rgb/Kconfig @@ -76,3 +76,10 @@ config LEDS_MT6370_RGB @@ -27,7 +26,7 @@ index 222d943d826a..3b7761f39f44 100644 + Say Y here if you want to use the WS2812. \ No newline at end of file diff --git a/drivers/leds/rgb/Makefile b/drivers/leds/rgb/Makefile -index a501fd27f179..8f7646ead3c1 100644 +index 111111111111..222222222222 100644 --- a/drivers/leds/rgb/Makefile +++ b/drivers/leds/rgb/Makefile @@ -6,3 +6,4 @@ obj-$(CONFIG_LEDS_NCP5623) += leds-ncp5623.o @@ -37,7 +36,7 @@ index a501fd27f179..8f7646ead3c1 100644 +obj-$(CONFIG_LEDS_WS2812) += leds-ws2812.o diff --git a/drivers/leds/rgb/leds-ws2812.c b/drivers/leds/rgb/leds-ws2812.c new file mode 100644 -index 000000000000..c9981724bba9 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/leds/rgb/leds-ws2812.c @@ -0,0 +1,227 @@ @@ -269,5 +268,5 @@ index 000000000000..c9981724bba9 +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:ws2812_ctl"); -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/BigTreeTech-CB1-dts-i2c-gpio-mode-adjustment-and-ws2812-rgb_val.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/BigTreeTech-CB1-dts-i2c-gpio-mode-adjustment-and-ws2812-rgb_val.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/BigTreeTech-CB1-dts-i2c-gpio-mode-adjustment-and-ws2812-rgb_val.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/BigTreeTech-CB1-dts-i2c-gpio-mode-adjustment-and-ws2812-rgb_val.patch index deb579f87..70748ef44 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/BigTreeTech-CB1-dts-i2c-gpio-mode-adjustment-and-ws2812-rgb_val.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/BigTreeTech-CB1-dts-i2c-gpio-mode-adjustment-and-ws2812-rgb_val.patch @@ -1,17 +1,17 @@ -From 20dc0b0f3da7895d50f2824b4608c5e44729f892 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: JohnTheCoolingFan Date: Sat, 25 Jan 2025 11:30:04 +0000 Subject: BigTreeTech CB1: dts: i2c gpio mode adjustment and ws2812 rgb_value Signed-off-by: JohnTheCoolingFan --- - .../boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-emmc.dts | 4 ++-- - .../boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-sd.dts | 4 ++-- - .../arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi | 2 +- + arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-emmc.dts | 4 ++-- + arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-sd.dts | 4 ++-- + arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-emmc.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-emmc.dts -index f878c23f1d90..b059ea08fec0 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-emmc.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-emmc.dts @@ -21,8 +21,8 @@ &ws2812 { @@ -26,7 +26,7 @@ index f878c23f1d90..b059ea08fec0 100644 &can0_pin_irq { diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-sd.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-sd.dts -index e18dd854d74b..cc10be714676 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-sd.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-sd.dts @@ -12,8 +12,8 @@ &ws2812 { @@ -41,7 +41,7 @@ index e18dd854d74b..cc10be714676 100644 &can0_pin_irq { diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi -index 3b3a196eaa93..d18695148ef5 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi @@ -108,7 +108,7 @@ ws2812: ws2812 { @@ -54,5 +54,5 @@ index 3b3a196eaa93..d18695148ef5 100644 }; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Compile-the-pwm-overlay.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Compile-the-pwm-overlay.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Compile-the-pwm-overlay.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Compile-the-pwm-overlay.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Correct-perf-interrupt-source-number-as-referenced-in-the-Allwi.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Correct-perf-interrupt-source-number-as-referenced-in-the-Allwi.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Correct-perf-interrupt-source-number-as-referenced-in-the-Allwi.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Correct-perf-interrupt-source-number-as-referenced-in-the-Allwi.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Doc-dt-bindings-usb-add-binding-for-DWC3-controller-on-Allwinne.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Doc-dt-bindings-usb-add-binding-for-DWC3-controller-on-Allwinne.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Doc-dt-bindings-usb-add-binding-for-DWC3-controller-on-Allwinne.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Doc-dt-bindings-usb-add-binding-for-DWC3-controller-on-Allwinne.patch index 9e2045e1e..9fa2fe56c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Doc-dt-bindings-usb-add-binding-for-DWC3-controller-on-Allwinne.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Doc-dt-bindings-usb-add-binding-for-DWC3-controller-on-Allwinne.patch @@ -1,4 +1,4 @@ -From 846209f909c9cf9d7a29a72328ed27b9ee504ac1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Mon, 25 Dec 2017 12:08:01 +0800 Subject: Doc:dt-bindings:usb: add binding for DWC3 controller on Allwinner SoC @@ -9,13 +9,12 @@ Add its device tree binding document. Signed-off-by: Icenowy Zheng --- - .../bindings/usb/allwinner,dwc3.txt | 39 +++++++++++++++++++ + Documentation/devicetree/bindings/usb/allwinner,dwc3.txt | 39 ++++++++++ 1 file changed, 39 insertions(+) - create mode 100644 Documentation/devicetree/bindings/usb/allwinner,dwc3.txt diff --git a/Documentation/devicetree/bindings/usb/allwinner,dwc3.txt b/Documentation/devicetree/bindings/usb/allwinner,dwc3.txt new file mode 100644 -index 000000000000..3f7714636785 +index 000000000000..111111111111 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/allwinner,dwc3.txt @@ -0,0 +1,39 @@ @@ -59,5 +58,5 @@ index 000000000000..3f7714636785 + }; + }; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Enable-DMA-support-for-the-Allwinner-A10-EMAC-which-already-exi.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Enable-DMA-support-for-the-Allwinner-A10-EMAC-which-already-exi.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Enable-DMA-support-for-the-Allwinner-A10-EMAC-which-already-exi.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Enable-DMA-support-for-the-Allwinner-A10-EMAC-which-already-exi.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Enable-creation-of-__symbols__-node.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Enable-creation-of-__symbols__-node.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Enable-creation-of-__symbols__-node.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Enable-creation-of-__symbols__-node.patch index 7e2f0454c..317450126 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Enable-creation-of-__symbols__-node.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Enable-creation-of-__symbols__-node.patch @@ -12,7 +12,7 @@ diff --git a/scripts/Makefile.dtbs b/scripts/Makefile.dtbs index 111111111111..222222222222 100644 --- a/scripts/Makefile.dtbs +++ b/scripts/Makefile.dtbs -@@ -102,6 +102,11 @@ else +@@ -103,6 +103,11 @@ else DTC_FLAGS += -Wunique_unit_address_if_enabled endif diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Fix-ghost-touches-on-tsc2007-tft-screen.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Fix-ghost-touches-on-tsc2007-tft-screen.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Fix-ghost-touches-on-tsc2007-tft-screen.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Fix-ghost-touches-on-tsc2007-tft-screen.patch index 1e877993e..e9dddffb6 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Fix-ghost-touches-on-tsc2007-tft-screen.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Fix-ghost-touches-on-tsc2007-tft-screen.patch @@ -1,18 +1,18 @@ -From b75f5bf0d822ac325c205a489941f33256ed4b9a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: JohnTheCoolingFan Date: Sat, 25 Jan 2025 12:54:16 +0000 Subject: Fix ghost touches on tsc2007 tft screen Signed-off-by: JohnTheCoolingFan --- - .../sun50i-h616-bigtreetech-cb1.dtsi | 1 + - drivers/input/touchscreen/tsc2007.h | 1 + - drivers/input/touchscreen/tsc2007_core.c | 96 +++++++++---------- - include/linux/platform_data/tsc2007.h | 1 + + arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi | 1 + + drivers/input/touchscreen/tsc2007.h | 1 + + drivers/input/touchscreen/tsc2007_core.c | 96 +++++----- + include/linux/platform_data/tsc2007.h | 1 + 4 files changed, 49 insertions(+), 50 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi -index 2022990e4bc0..3b3a196eaa93 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi @@ -125,6 +125,7 @@ tft_tp: ns2009@48 { @@ -24,7 +24,7 @@ index 2022990e4bc0..3b3a196eaa93 100644 ti,fuzzx = <32>; ti,fuzzy = <16>; diff --git a/drivers/input/touchscreen/tsc2007.h b/drivers/input/touchscreen/tsc2007.h -index 46ae4e4183b8..c84b687b5399 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/tsc2007.h +++ b/drivers/input/touchscreen/tsc2007.h @@ -67,6 +67,7 @@ struct tsc2007 { @@ -36,7 +36,7 @@ index 46ae4e4183b8..c84b687b5399 100644 u16 rt_thr; u8 touched; diff --git a/drivers/input/touchscreen/tsc2007_core.c b/drivers/input/touchscreen/tsc2007_core.c -index 2abcaff3fe0a..12e7b5cbcabf 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/tsc2007_core.c +++ b/drivers/input/touchscreen/tsc2007_core.c @@ -70,22 +70,20 @@ static void tsc2007_read_values(struct tsc2007 *tsc, struct ts_event *tc) @@ -195,7 +195,7 @@ index 2abcaff3fe0a..12e7b5cbcabf 100644 } diff --git a/include/linux/platform_data/tsc2007.h b/include/linux/platform_data/tsc2007.h -index a0ca52c41ccb..f88e580322f0 100644 +index 111111111111..222222222222 100644 --- a/include/linux/platform_data/tsc2007.h +++ b/include/linux/platform_data/tsc2007.h @@ -7,6 +7,7 @@ @@ -207,5 +207,5 @@ index a0ca52c41ccb..f88e580322f0 100644 unsigned long poll_period; /* time (in ms) between samples */ int fuzzx; /* fuzz factor for X, Y and pressure axes */ -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Fix-include-uapi-spi-spidev-module.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Fix-include-uapi-spi-spidev-module.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Fix-include-uapi-spi-spidev-module.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Fix-include-uapi-spi-spidev-module.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Input-axp20x-pek-allow-wakeup-after-shutdown.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Input-axp20x-pek-allow-wakeup-after-shutdown.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Input-axp20x-pek-allow-wakeup-after-shutdown.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Input-axp20x-pek-allow-wakeup-after-shutdown.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/LED-green_power_on-red_status_heartbeat-arch-arm64-boot-dts-all.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/LED-green_power_on-red_status_heartbeat-arch-arm64-boot-dts-all.patch similarity index 97% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/LED-green_power_on-red_status_heartbeat-arch-arm64-boot-dts-all.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/LED-green_power_on-red_status_heartbeat-arch-arm64-boot-dts-all.patch index 1d1b9bc36..c41db6f3b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/LED-green_power_on-red_status_heartbeat-arch-arm64-boot-dts-all.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/LED-green_power_on-red_status_heartbeat-arch-arm64-boot-dts-all.patch @@ -13,7 +13,7 @@ diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi -@@ -27,16 +27,17 @@ leds { +@@ -38,16 +38,17 @@ leds { compatible = "gpio-leds"; led-0 { diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Makefile-CONFIG_SHELL-fix-for-builddeb-packaging.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Makefile-CONFIG_SHELL-fix-for-builddeb-packaging.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Makefile-CONFIG_SHELL-fix-for-builddeb-packaging.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Makefile-CONFIG_SHELL-fix-for-builddeb-packaging.patch index 753b091db..cce7b6c5a 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Makefile-CONFIG_SHELL-fix-for-builddeb-packaging.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Makefile-CONFIG_SHELL-fix-for-builddeb-packaging.patch @@ -1,4 +1,4 @@ -From 836e3c6dde4128b0c846e8baeffb6a8e8ea58e00 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 11:28:14 +0300 Subject: Makefile: CONFIG_SHELL fix for builddeb packaging @@ -8,7 +8,7 @@ Subject: Makefile: CONFIG_SHELL fix for builddeb packaging 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index c1cd1b5fc269..d829884494af 100644 +index 111111111111..222222222222 100644 --- a/Makefile +++ b/Makefile @@ -436,7 +436,9 @@ KCONFIG_CONFIG ?= .config @@ -23,5 +23,5 @@ index c1cd1b5fc269..d829884494af 100644 HOST_LFS_CFLAGS := $(shell getconf LFS_CFLAGS 2>/dev/null) HOST_LFS_LDFLAGS := $(shell getconf LFS_LDFLAGS 2>/dev/null) -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Move-sun50i-h6-pwm-settings-to-its-own-overlay.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Move-sun50i-h6-pwm-settings-to-its-own-overlay.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Move-sun50i-h6-pwm-settings-to-its-own-overlay.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Move-sun50i-h6-pwm-settings-to-its-own-overlay.patch index 47f03ffb3..98b868234 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Move-sun50i-h6-pwm-settings-to-its-own-overlay.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Move-sun50i-h6-pwm-settings-to-its-own-overlay.patch @@ -1,16 +1,15 @@ -From 17c23b36efb63cd249c5cfc8ce4a6b790f1dfeda Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: afaulkner420 Date: Fri, 25 Mar 2022 19:23:56 +0000 Subject: Move sun50i-h6-pwm settings to its own overlay --- - .../allwinner/overlay/sun50i-h6-fixup.scr-cmd | 14 ----------- - .../dts/allwinner/overlay/sun50i-h6-pwm.dtso | 25 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd | 14 ------ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-pwm.dtso | 25 ++++++++++ 2 files changed, 25 insertions(+), 14 deletions(-) - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-pwm.dtso diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd -index d8e79ba4531b..f757db7aa4ad 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd @@ -54,20 +54,6 @@ if test "${param_pps_falling_edge}" = "1"; then @@ -36,7 +35,7 @@ index d8e79ba4531b..f757db7aa4ad 100644 setenv tmp_pin "${param_w1_pin}" diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-pwm.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-pwm.dtso new file mode 100644 -index 000000000000..a8aa74ed1988 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-pwm.dtso @@ -0,0 +1,25 @@ @@ -66,5 +65,5 @@ index 000000000000..a8aa74ed1988 + }; +}; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Optimize-TSC2007-touchscreen-add-polling-method.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Optimize-TSC2007-touchscreen-add-polling-method.patch similarity index 76% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Optimize-TSC2007-touchscreen-add-polling-method.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Optimize-TSC2007-touchscreen-add-polling-method.patch index ad9077f1c..25f7cf7c9 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Optimize-TSC2007-touchscreen-add-polling-method.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Optimize-TSC2007-touchscreen-add-polling-method.patch @@ -1,15 +1,15 @@ -From baabc51678faaf2020ee7791e2a52e39517cbc93 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Alan Date: Sat, 20 May 2023 14:44:07 +0800 Subject: Optimize: TSC2007 touchscreen add polling method --- - drivers/input/touchscreen/tsc2007.h | 6 ++ - drivers/input/touchscreen/tsc2007_core.c | 110 +++++++++++++++++++++-- - 2 files changed, 108 insertions(+), 8 deletions(-) + drivers/input/touchscreen/tsc2007.h | 6 + + drivers/input/touchscreen/tsc2007_core.c | 94 ++++++++++ + 2 files changed, 100 insertions(+) diff --git a/drivers/input/touchscreen/tsc2007.h b/drivers/input/touchscreen/tsc2007.h -index e346fb4f7552..46ae4e4183b8 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/tsc2007.h +++ b/drivers/input/touchscreen/tsc2007.h @@ -68,10 +68,13 @@ struct tsc2007 { @@ -37,10 +37,10 @@ index e346fb4f7552..46ae4e4183b8 100644 int tsc2007_xfer(struct tsc2007 *tsc, u8 cmd); diff --git a/drivers/input/touchscreen/tsc2007_core.c b/drivers/input/touchscreen/tsc2007_core.c -index 5252301686ec..2abcaff3fe0a 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/tsc2007_core.c +++ b/drivers/input/touchscreen/tsc2007_core.c -@@ -28,6 +28,8 @@ +@@ -29,6 +29,8 @@ #include #include "tsc2007.h" @@ -49,7 +49,7 @@ index 5252301686ec..2abcaff3fe0a 100644 int tsc2007_xfer(struct tsc2007 *tsc, u8 cmd) { s32 data; -@@ -171,6 +173,65 @@ static irqreturn_t tsc2007_soft_irq(int irq, void *handle) +@@ -174,6 +176,65 @@ static irqreturn_t tsc2007_soft_irq(int irq, void *handle) return IRQ_HANDLED; } @@ -115,7 +115,7 @@ index 5252301686ec..2abcaff3fe0a 100644 static void tsc2007_stop(struct tsc2007 *ts) { ts->stopped = true; -@@ -215,11 +276,32 @@ static int tsc2007_get_pendown_state_gpio(struct device *dev) +@@ -220,11 +281,32 @@ static int tsc2007_get_pendown_state_gpio(struct device *dev) return gpiod_get_value_cansleep(ts->gpiod); } @@ -148,7 +148,7 @@ index 5252301686ec..2abcaff3fe0a 100644 if (!device_property_read_u32(dev, "ti,max-rt", &val32)) ts->max_rt = val32; else -@@ -316,6 +398,9 @@ static int tsc2007_probe(struct i2c_client *client) +@@ -321,6 +403,9 @@ static int tsc2007_probe(struct i2c_client *client) if (!input_dev) return -ENOMEM; @@ -158,28 +158,18 @@ index 5252301686ec..2abcaff3fe0a 100644 i2c_set_clientdata(client, ts); ts->client = client; -@@ -361,14 +446,23 @@ static int tsc2007_probe(struct i2c_client *client) - pdata->init_platform_hw(); +@@ -367,6 +452,7 @@ static int tsc2007_probe(struct i2c_client *client) } -- err = devm_request_threaded_irq(&client->dev, ts->irq, -- NULL, tsc2007_soft_irq, -- IRQF_ONESHOT, -- client->dev.driver->name, ts); -- if (err) { -- dev_err(&client->dev, "Failed to request irq %d: %d\n", -- ts->irq, err); -- return err; + if (ts->irq) { + if (ts->gpiod) { -+ err = devm_request_threaded_irq(&client->dev, ts->irq, -+ NULL, tsc2007_soft_irq, -+ IRQF_ONESHOT, -+ client->dev.driver->name, ts); -+ if (err) { -+ dev_err(&client->dev, "Failed to request irq %d: %d\n", -+ ts->irq, err); -+ return err; -+ } + err = devm_request_threaded_irq(&client->dev, ts->irq, + NULL, tsc2007_soft_irq, + IRQF_ONESHOT, +@@ -376,6 +462,14 @@ static int tsc2007_probe(struct i2c_client *client) + ts->irq, err); + return err; + } + } else { + INIT_WORK(&ts->work_i2c_poll, + tsc2007_ts_work_i2c_poll); @@ -187,9 +177,10 @@ index 5252301686ec..2abcaff3fe0a 100644 + ts->timer.expires = jiffies + + msecs_to_jiffies(POLL_INTERVAL_MS); + add_timer(&ts->timer); - } ++ } - tsc2007_stop(ts); + tsc2007_stop(ts); + } -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Revert-drm-sun4i-hdmi-switch-to-struct-drm_edid.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Revert-drm-sun4i-hdmi-switch-to-struct-drm_edid.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Revert-drm-sun4i-hdmi-switch-to-struct-drm_edid.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Revert-drm-sun4i-hdmi-switch-to-struct-drm_edid.patch index 3052f76cd..2b309197a 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Revert-drm-sun4i-hdmi-switch-to-struct-drm_edid.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Revert-drm-sun4i-hdmi-switch-to-struct-drm_edid.patch @@ -1,15 +1,15 @@ -From aec6c912e969a433916d8f40b663fb3bef57cdf3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 9 Sep 2024 14:40:49 +0300 Subject: Revert "drm/sun4i: hdmi: switch to struct drm_edid" This reverts commit bd730c77fa37fe2dda4b6e23f6921ef8a9b1bb97. --- - drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 18 +++++++----------- + drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 18 ++++------ 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c -index ab0938ba61f7..22024fd34b2b 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c +++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c @@ -190,24 +190,20 @@ sun4i_hdmi_connector_clock_valid(const struct drm_connector *connector, @@ -45,5 +45,5 @@ index ab0938ba61f7..22024fd34b2b 100644 return ret; } -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Sound-for-H616-H618-Allwinner-SOCs.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Sound-for-H616-H618-Allwinner-SOCs.patch similarity index 97% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Sound-for-H616-H618-Allwinner-SOCs.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Sound-for-H616-H618-Allwinner-SOCs.patch index d60fc2d3c..5f7ad2165 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Sound-for-H616-H618-Allwinner-SOCs.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Sound-for-H616-H618-Allwinner-SOCs.patch @@ -1,4 +1,4 @@ -From 4a2e4646db5c5202f822d7b3958a312ea3c0b8e7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Stephen Graf Date: Wed, 26 Mar 2025 17:06:51 +0000 Subject: Sound for H616, H618 Allwinner SOCs @@ -20,44 +20,30 @@ for H616 SoCs in sun41.codec.c. We will use it. Signed-off-by: Stephen Graf --- - .../allwinner/sun50i-h616-orangepi-zero.dtsi | 12 + - .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 60 +- - include/sound/soc-dai.h | 13 + - sound/soc/Kconfig | 1 + - sound/soc/Makefile | 1 + - sound/soc/soc-core.c | 25 + - sound/soc/sunxi_v2/Kconfig | 45 + - sound/soc/sunxi_v2/Makefile | 11 + - sound/soc/sunxi_v2/drv_hdmi.h | 63 + - sound/soc/sunxi_v2/snd_sunxi_ahub.c | 1475 +++++++++++++++++ - sound/soc/sunxi_v2/snd_sunxi_ahub.h | 74 + - sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c | 532 ++++++ - sound/soc/sunxi_v2/snd_sunxi_ahub_dam.h | 294 ++++ - sound/soc/sunxi_v2/snd_sunxi_common.c | 267 +++ - sound/soc/sunxi_v2/snd_sunxi_common.h | 67 + - sound/soc/sunxi_v2/snd_sunxi_log.h | 29 + - sound/soc/sunxi_v2/snd_sunxi_mach.c | 479 ++++++ - sound/soc/sunxi_v2/snd_sunxi_mach.h | 20 + - sound/soc/sunxi_v2/snd_sunxi_mach_utils.c | 422 +++++ - sound/soc/sunxi_v2/snd_sunxi_mach_utils.h | 116 ++ + arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi | 12 + + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 60 +- + include/sound/soc-dai.h | 13 + + sound/soc/Kconfig | 1 + + sound/soc/Makefile | 1 + + sound/soc/soc-core.c | 25 + + sound/soc/sunxi_v2/Kconfig | 45 + + sound/soc/sunxi_v2/Makefile | 11 + + sound/soc/sunxi_v2/drv_hdmi.h | 63 + + sound/soc/sunxi_v2/snd_sunxi_ahub.c | 1475 ++++++++++ + sound/soc/sunxi_v2/snd_sunxi_ahub.h | 74 + + sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c | 532 ++++ + sound/soc/sunxi_v2/snd_sunxi_ahub_dam.h | 294 ++ + sound/soc/sunxi_v2/snd_sunxi_common.c | 267 ++ + sound/soc/sunxi_v2/snd_sunxi_common.h | 67 + + sound/soc/sunxi_v2/snd_sunxi_log.h | 29 + + sound/soc/sunxi_v2/snd_sunxi_mach.c | 479 +++ + sound/soc/sunxi_v2/snd_sunxi_mach.h | 20 + + sound/soc/sunxi_v2/snd_sunxi_mach_utils.c | 422 +++ + sound/soc/sunxi_v2/snd_sunxi_mach_utils.h | 116 + 20 files changed, 4005 insertions(+), 1 deletion(-) - create mode 100644 sound/soc/sunxi_v2/Kconfig - create mode 100644 sound/soc/sunxi_v2/Makefile - create mode 100644 sound/soc/sunxi_v2/drv_hdmi.h - create mode 100644 sound/soc/sunxi_v2/snd_sunxi_ahub.c - create mode 100644 sound/soc/sunxi_v2/snd_sunxi_ahub.h - create mode 100644 sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c - create mode 100644 sound/soc/sunxi_v2/snd_sunxi_ahub_dam.h - create mode 100644 sound/soc/sunxi_v2/snd_sunxi_common.c - create mode 100644 sound/soc/sunxi_v2/snd_sunxi_common.h - create mode 100644 sound/soc/sunxi_v2/snd_sunxi_log.h - create mode 100644 sound/soc/sunxi_v2/snd_sunxi_mach.c - create mode 100644 sound/soc/sunxi_v2/snd_sunxi_mach.h - create mode 100644 sound/soc/sunxi_v2/snd_sunxi_mach_utils.c - create mode 100644 sound/soc/sunxi_v2/snd_sunxi_mach_utils.h diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi -index d10c590de63c..2d735a0b1e3a 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi @@ -110,6 +110,18 @@ &de { @@ -80,10 +66,10 @@ index d10c590de63c..2d735a0b1e3a 100644 status = "okay"; }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index 307a8678e0eb..8de963bee2ac 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -@@ -678,7 +678,8 @@ gic: interrupt-controller@3021000 { +@@ -697,7 +697,8 @@ gic: interrupt-controller@3021000 { }; iommu: iommu@30f0000 { @@ -93,7 +79,7 @@ index 307a8678e0eb..8de963bee2ac 100644 reg = <0x030f0000 0x10000>; interrupts = ; clocks = <&ccu CLK_BUS_IOMMU>; -@@ -1045,6 +1046,63 @@ codec: codec@5096000 { +@@ -1064,6 +1065,63 @@ codec: codec@5096000 { status = "disabled"; }; @@ -158,10 +144,10 @@ index 307a8678e0eb..8de963bee2ac 100644 compatible = "allwinner,sun50i-h616-musb", "allwinner,sun8i-h3-musb"; diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h -index d19ab5572d2b..15efde43c629 100644 +index 111111111111..222222222222 100644 --- a/include/sound/soc-dai.h +++ b/include/sound/soc-dai.h -@@ -407,6 +407,15 @@ struct snd_soc_dai_driver { +@@ -408,6 +408,15 @@ struct snd_soc_dai_driver { struct snd_soc_dobj dobj; const struct of_phandle_args *dai_args; @@ -177,7 +163,7 @@ index d19ab5572d2b..15efde43c629 100644 /* ops */ const struct snd_soc_dai_ops *ops; const struct snd_soc_cdai_ops *cops; -@@ -417,6 +426,10 @@ struct snd_soc_dai_driver { +@@ -418,6 +427,10 @@ struct snd_soc_dai_driver { unsigned int symmetric_rate:1; unsigned int symmetric_channels:1; unsigned int symmetric_sample_bits:1; @@ -189,10 +175,10 @@ index d19ab5572d2b..15efde43c629 100644 /* for Playback/Capture */ diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig -index 1b983c7006f1..098372a41c73 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/Kconfig +++ b/sound/soc/Kconfig -@@ -134,6 +134,7 @@ source "sound/soc/starfive/Kconfig" +@@ -133,6 +133,7 @@ source "sound/soc/starfive/Kconfig" source "sound/soc/sti/Kconfig" source "sound/soc/stm/Kconfig" source "sound/soc/sunxi/Kconfig" @@ -201,7 +187,7 @@ index 1b983c7006f1..098372a41c73 100644 source "sound/soc/ti/Kconfig" source "sound/soc/uniphier/Kconfig" diff --git a/sound/soc/Makefile b/sound/soc/Makefile -index 462322c38aa4..31faf39bbda5 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/Makefile +++ b/sound/soc/Makefile @@ -76,6 +76,7 @@ obj-$(CONFIG_SND_SOC) += starfive/ @@ -213,10 +199,10 @@ index 462322c38aa4..31faf39bbda5 100644 obj-$(CONFIG_SND_SOC) += ti/ obj-$(CONFIG_SND_SOC) += uniphier/ diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c -index 222edc0b433a..a56559dc0fe2 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c -@@ -2686,6 +2686,7 @@ struct snd_soc_dai *snd_soc_register_dai(struct snd_soc_component *component, +@@ -2694,6 +2694,7 @@ struct snd_soc_dai *snd_soc_register_dai(struct snd_soc_component *component, { struct device *dev = component->dev; struct snd_soc_dai *dai; @@ -224,7 +210,7 @@ index 222edc0b433a..a56559dc0fe2 100644 lockdep_assert_held(&client_mutex); -@@ -2714,6 +2715,30 @@ struct snd_soc_dai *snd_soc_register_dai(struct snd_soc_component *component, +@@ -2722,6 +2723,30 @@ struct snd_soc_dai *snd_soc_register_dai(struct snd_soc_component *component, if (!dai->name) return NULL; @@ -257,7 +243,7 @@ index 222edc0b433a..a56559dc0fe2 100644 dai->driver = dai_drv; diff --git a/sound/soc/sunxi_v2/Kconfig b/sound/soc/sunxi_v2/Kconfig new file mode 100644 -index 000000000000..e5d4aff7e6ca +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/Kconfig @@ -0,0 +1,45 @@ @@ -308,7 +294,7 @@ index 000000000000..e5d4aff7e6ca +endmenu diff --git a/sound/soc/sunxi_v2/Makefile b/sound/soc/sunxi_v2/Makefile new file mode 100644 -index 000000000000..c7c2ef8f9fe9 +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/Makefile @@ -0,0 +1,11 @@ @@ -325,7 +311,7 @@ index 000000000000..c7c2ef8f9fe9 +obj-$(CONFIG_SND_SOC_SUNXI_MACH) += snd_soc_sunxi_machine.o diff --git a/sound/soc/sunxi_v2/drv_hdmi.h b/sound/soc/sunxi_v2/drv_hdmi.h new file mode 100644 -index 000000000000..2e05489b01e1 +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/drv_hdmi.h @@ -0,0 +1,63 @@ @@ -394,7 +380,7 @@ index 000000000000..2e05489b01e1 +#endif diff --git a/sound/soc/sunxi_v2/snd_sunxi_ahub.c b/sound/soc/sunxi_v2/snd_sunxi_ahub.c new file mode 100644 -index 000000000000..d1b33e8b4c0e +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/snd_sunxi_ahub.c @@ -0,0 +1,1475 @@ @@ -1875,7 +1861,7 @@ index 000000000000..d1b33e8b4c0e +MODULE_DESCRIPTION("sunxi soundcard platform of ahub"); diff --git a/sound/soc/sunxi_v2/snd_sunxi_ahub.h b/sound/soc/sunxi_v2/snd_sunxi_ahub.h new file mode 100644 -index 000000000000..cd4be46b6ebf +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/snd_sunxi_ahub.h @@ -0,0 +1,74 @@ @@ -1955,7 +1941,7 @@ index 000000000000..cd4be46b6ebf +#endif /* __SND_SUNXI_AHUB_H */ diff --git a/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c b/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c new file mode 100644 -index 000000000000..f3c7bb3c7cd2 +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.c @@ -0,0 +1,532 @@ @@ -2493,7 +2479,7 @@ index 000000000000..f3c7bb3c7cd2 +MODULE_DESCRIPTION("sunxi soundcard platform of ahub_dam"); diff --git a/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.h b/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.h new file mode 100644 -index 000000000000..436742d87e8f +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/snd_sunxi_ahub_dam.h @@ -0,0 +1,294 @@ @@ -2793,7 +2779,7 @@ index 000000000000..436742d87e8f +#endif /* __SND_SUNXI_AHUB_DAM_H */ diff --git a/sound/soc/sunxi_v2/snd_sunxi_common.c b/sound/soc/sunxi_v2/snd_sunxi_common.c new file mode 100644 -index 000000000000..410ab75aea5a +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/snd_sunxi_common.c @@ -0,0 +1,267 @@ @@ -3066,7 +3052,7 @@ index 000000000000..410ab75aea5a +} diff --git a/sound/soc/sunxi_v2/snd_sunxi_common.h b/sound/soc/sunxi_v2/snd_sunxi_common.h new file mode 100644 -index 000000000000..7b88d20c25e0 +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/snd_sunxi_common.h @@ -0,0 +1,67 @@ @@ -3140,7 +3126,7 @@ index 000000000000..7b88d20c25e0 \ No newline at end of file diff --git a/sound/soc/sunxi_v2/snd_sunxi_log.h b/sound/soc/sunxi_v2/snd_sunxi_log.h new file mode 100644 -index 000000000000..89ad9fe71936 +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/snd_sunxi_log.h @@ -0,0 +1,29 @@ @@ -3175,7 +3161,7 @@ index 000000000000..89ad9fe71936 +#endif /* __SND_SUNXI_LOG_H */ diff --git a/sound/soc/sunxi_v2/snd_sunxi_mach.c b/sound/soc/sunxi_v2/snd_sunxi_mach.c new file mode 100644 -index 000000000000..74d276a2da92 +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/snd_sunxi_mach.c @@ -0,0 +1,479 @@ @@ -3660,7 +3646,7 @@ index 000000000000..74d276a2da92 +MODULE_DESCRIPTION("sunxi soundcard machine"); diff --git a/sound/soc/sunxi_v2/snd_sunxi_mach.h b/sound/soc/sunxi_v2/snd_sunxi_mach.h new file mode 100644 -index 000000000000..6f9ea8ccf8b5 +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/snd_sunxi_mach.h @@ -0,0 +1,20 @@ @@ -3686,7 +3672,7 @@ index 000000000000..6f9ea8ccf8b5 +#endif /* __SND_SUNXI_MACH_H */ diff --git a/sound/soc/sunxi_v2/snd_sunxi_mach_utils.c b/sound/soc/sunxi_v2/snd_sunxi_mach_utils.c new file mode 100644 -index 000000000000..15f474e5cbeb +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/snd_sunxi_mach_utils.c @@ -0,0 +1,422 @@ @@ -4114,7 +4100,7 @@ index 000000000000..15f474e5cbeb +MODULE_DESCRIPTION("sunxi soundcard machine utils"); diff --git a/sound/soc/sunxi_v2/snd_sunxi_mach_utils.h b/sound/soc/sunxi_v2/snd_sunxi_mach_utils.h new file mode 100644 -index 000000000000..a9cffa0d859b +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi_v2/snd_sunxi_mach_utils.h @@ -0,0 +1,116 @@ @@ -4235,5 +4221,5 @@ index 000000000000..a9cffa0d859b + +#endif /* __SND_SUNXI_MACH_UTILS_H */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/Temp_fix-mailbox-arch-arm64-boot-dts-allwinner-sun50i-a64-pinep.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/Temp_fix-mailbox-arch-arm64-boot-dts-allwinner-sun50i-a64-pinep.patch similarity index 93% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/Temp_fix-mailbox-arch-arm64-boot-dts-allwinner-sun50i-a64-pinep.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/Temp_fix-mailbox-arch-arm64-boot-dts-allwinner-sun50i-a64-pinep.patch index 6a4110acb..9b6f15641 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/Temp_fix-mailbox-arch-arm64-boot-dts-allwinner-sun50i-a64-pinep.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/Temp_fix-mailbox-arch-arm64-boot-dts-allwinner-sun50i-a64-pinep.patch @@ -1,4 +1,4 @@ -From ef5deb15a48bd970f378ae63a058ecd70bf42834 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AGM1968 Date: Mon, 26 Jun 2023 14:29:56 +0000 Subject: Temp_fix mailbox @@ -10,7 +10,7 @@ Signed-off-by: AGM1968 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index d502c1392b8e..5c986e66ab6d 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -42,7 +42,7 @@ bat: battery { @@ -49,5 +49,5 @@ index d502c1392b8e..5c986e66ab6d 100644 rtl8723cs: wifi@1 { reg = <1>; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/add-dtb-overlay-for-zero2w.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/add-dtb-overlay-for-zero2w.patch similarity index 73% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/add-dtb-overlay-for-zero2w.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/add-dtb-overlay-for-zero2w.patch index 24e3e2c77..0d087707b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/add-dtb-overlay-for-zero2w.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/add-dtb-overlay-for-zero2w.patch @@ -1,25 +1,21 @@ -From 4b2f43e4e23c5e6184568a6b0bf0e85fce4aefb3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: chraac Date: Fri, 5 Apr 2024 10:57:18 +0800 Subject: add dtb overlay for zero2w --- - .../arm64/boot/dts/allwinner/overlay/Makefile | 4 ++++ - .../allwinner/overlay/sun50i-h616-gpu.dtso | 14 +++++++++++ - .../overlay/sun50i-h616-i2c0-pi.dtso | 23 +++++++++++++++++++ - .../overlay/sun50i-h616-i2c1-pi.dtso | 16 +++++++++++++ - .../overlay/sun50i-h616-i2c2-pi.dtso | 23 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/overlay/Makefile | 4 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-gpu.dtso | 14 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c0-pi.dtso | 23 ++++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c1-pi.dtso | 16 +++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2-pi.dtso | 23 ++++++++++ 5 files changed, 80 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-gpu.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c0-pi.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c1-pi.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2-pi.dtso diff --git a/arch/arm64/boot/dts/allwinner/overlay/Makefile b/arch/arm64/boot/dts/allwinner/overlay/Makefile -index 718909b607a6..ccb89b5bf495 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/overlay/Makefile +++ b/arch/arm64/boot/dts/allwinner/overlay/Makefile -@@ -49,6 +49,10 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ +@@ -48,6 +48,10 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ sun50i-h6-uart2.dtbo \ sun50i-h6-uart3.dtbo \ sun50i-h6-w1-gpio.dtbo \ @@ -32,7 +28,7 @@ index 718909b607a6..ccb89b5bf495 100644 sun50i-h616-i2c3-ph.dtbo \ diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-gpu.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-gpu.dtso new file mode 100644 -index 000000000000..ac8846ac7d27 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-gpu.dtso @@ -0,0 +1,14 @@ @@ -52,7 +48,7 @@ index 000000000000..ac8846ac7d27 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c0-pi.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c0-pi.dtso new file mode 100644 -index 000000000000..b5003934c895 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c0-pi.dtso @@ -0,0 +1,23 @@ @@ -81,7 +77,7 @@ index 000000000000..b5003934c895 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c1-pi.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c1-pi.dtso new file mode 100644 -index 000000000000..05f3100967ff +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c1-pi.dtso @@ -0,0 +1,16 @@ @@ -103,7 +99,7 @@ index 000000000000..05f3100967ff +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2-pi.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2-pi.dtso new file mode 100644 -index 000000000000..0f7d7e9968d6 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2-pi.dtso @@ -0,0 +1,23 @@ @@ -131,5 +127,5 @@ index 000000000000..0f7d7e9968d6 + }; +}; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/add-initial-support-for-orangepi3-lts.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/add-initial-support-for-orangepi3-lts.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/add-initial-support-for-orangepi3-lts.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/add-initial-support-for-orangepi3-lts.patch index 25c48b8cc..f1d718a2f 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/add-initial-support-for-orangepi3-lts.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/add-initial-support-for-orangepi3-lts.patch @@ -1,29 +1,15 @@ -From c8c7ccf8c9b5f40503fdad69170c21279337dac4 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Sat, 16 Apr 2022 11:51:35 +0300 Subject: add initial support for orangepi3-lts --- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../allwinner/sun50i-h6-orangepi-3-lts.dts | 399 ++++++++++++++++++ - 2 files changed, 400 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3-lts.dts + arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3-lts.dts | 399 ++++++++++ + 1 file changed, 399 insertions(+) -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 17f357097503..1edcb7023ef8 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -44,6 +44,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-beelink-gs1.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-3.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-3-lts.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-lite2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3-lts.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3-lts.dts new file mode 100644 -index 000000000000..dd6b4e15263e +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3-lts.dts @@ -0,0 +1,399 @@ @@ -427,5 +413,5 @@ index 000000000000..dd6b4e15263e + status = "okay"; +}; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/add-nodes-for-sunxi-info-sunxi-addr-and-sunxi-dump-reg.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/add-nodes-for-sunxi-info-sunxi-addr-and-sunxi-dump-reg.patch similarity index 80% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/add-nodes-for-sunxi-info-sunxi-addr-and-sunxi-dump-reg.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/add-nodes-for-sunxi-info-sunxi-addr-and-sunxi-dump-reg.patch index 70e3af90b..5499857b9 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/add-nodes-for-sunxi-info-sunxi-addr-and-sunxi-dump-reg.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/add-nodes-for-sunxi-info-sunxi-addr-and-sunxi-dump-reg.patch @@ -1,18 +1,18 @@ -From 542310e242c48b0a793d12532d7f2ff2f6679658 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Sat, 16 Apr 2022 11:51:35 +0300 Subject: add nodes for sunxi-info, sunxi-addr and sunxi-dump-reg --- - arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 19 +++++++++++++++++++ - .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 19 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 19 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 19 ++++++++++ 2 files changed, 38 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -index ccc771600042..12179289c731 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -@@ -1252,6 +1252,25 @@ ths: thermal-sensor@5070400 { +@@ -1253,6 +1253,25 @@ ths: thermal-sensor@5070400 { nvmem-cell-names = "calibration"; #thermal-sensor-cells = <1>; }; @@ -39,10 +39,10 @@ index ccc771600042..12179289c731 100644 thermal-zones { diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index 72e46c263485..5c1e2dc77268 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -@@ -1020,6 +1020,25 @@ r_rsb: rsb@7083000 { +@@ -1330,6 +1330,25 @@ r_rsb: rsb@7083000 { #address-cells = <1>; #size-cells = <0>; }; @@ -69,5 +69,5 @@ index 72e46c263485..5c1e2dc77268 100644 thermal-zones { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-arm64-dts-Add-leds-axp20x-charger.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-arm64-dts-Add-leds-axp20x-charger.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-arm64-dts-Add-leds-axp20x-charger.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-arm64-dts-Add-leds-axp20x-charger.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-Add-sun8i-h2-plus-nanopi-duo-device.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-Add-sun8i-h2-plus-nanopi-duo-device.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-Add-sun8i-h2-plus-nanopi-duo-device.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-Add-sun8i-h2-plus-nanopi-duo-device.patch index c26346ded..e105bfc7e 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-Add-sun8i-h2-plus-nanopi-duo-device.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-Add-sun8i-h2-plus-nanopi-duo-device.patch @@ -1,29 +1,15 @@ -From 379b3c9bf09db69afb31eb1f9f7f65e5a83b4308 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 24 Jan 2022 15:00:36 +0300 Subject: arm:dts: Add sun8i-h2-plus-nanopi-duo device --- - arch/arm/boot/dts/allwinner/Makefile | 1 + - .../allwinner/sun8i-h2-plus-nanopi-duo.dts | 164 ++++++++++++++++++ - 2 files changed, 165 insertions(+) - create mode 100644 arch/arm/boot/dts/allwinner/sun8i-h2-plus-nanopi-duo.dts + arch/arm/boot/dts/allwinner/sun8i-h2-plus-nanopi-duo.dts | 164 ++++++++++ + 1 file changed, 164 insertions(+) -diff --git a/arch/arm/boot/dts/allwinner/Makefile b/arch/arm/boot/dts/allwinner/Makefile -index 326ff9c7de72..129d9e3d75a4 100644 ---- a/arch/arm/boot/dts/allwinner/Makefile -+++ b/arch/arm/boot/dts/allwinner/Makefile -@@ -223,6 +223,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ - sun8i-a83t-tbs-a711.dtb \ - sun8i-h2-plus-bananapi-m2-zero.dtb \ - sun8i-h2-plus-libretech-all-h3-cc.dtb \ -+ sun8i-h2-plus-nanopi-duo.dtb \ - sun8i-h2-plus-orangepi-r1.dtb \ - sun8i-h2-plus-orangepi-zero.dtb \ - sun8i-h3-bananapi-m2-plus.dtb \ diff --git a/arch/arm/boot/dts/allwinner/sun8i-h2-plus-nanopi-duo.dts b/arch/arm/boot/dts/allwinner/sun8i-h2-plus-nanopi-duo.dts new file mode 100644 -index 000000000000..2b31b8fddbf3 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/sun8i-h2-plus-nanopi-duo.dts @@ -0,0 +1,164 @@ @@ -192,5 +178,5 @@ index 000000000000..2b31b8fddbf3 + usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */ +}; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-Add-sun8i-h2-plus-sunvell-r69-device.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-Add-sun8i-h2-plus-sunvell-r69-device.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-Add-sun8i-h2-plus-sunvell-r69-device.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-Add-sun8i-h2-plus-sunvell-r69-device.patch index 9d1c2ea80..27447a9a1 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-Add-sun8i-h2-plus-sunvell-r69-device.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-Add-sun8i-h2-plus-sunvell-r69-device.patch @@ -1,29 +1,15 @@ -From 484b8abd16c1dd8ddaa0c9027b53de524d24809c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 24 Jan 2022 15:23:33 +0300 Subject: arm:dts: Add sun8i-h2-plus-sunvell-r69 device --- - arch/arm/boot/dts/allwinner/Makefile | 1 + - .../allwinner/sun8i-h2-plus-sunvell-r69.dts | 225 ++++++++++++++++++ - 2 files changed, 226 insertions(+) - create mode 100644 arch/arm/boot/dts/allwinner/sun8i-h2-plus-sunvell-r69.dts + arch/arm/boot/dts/allwinner/sun8i-h2-plus-sunvell-r69.dts | 225 ++++++++++ + 1 file changed, 225 insertions(+) -diff --git a/arch/arm/boot/dts/allwinner/Makefile b/arch/arm/boot/dts/allwinner/Makefile -index 129d9e3d75a4..91fdb57d2c19 100644 ---- a/arch/arm/boot/dts/allwinner/Makefile -+++ b/arch/arm/boot/dts/allwinner/Makefile -@@ -226,6 +226,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ - sun8i-h2-plus-nanopi-duo.dtb \ - sun8i-h2-plus-orangepi-r1.dtb \ - sun8i-h2-plus-orangepi-zero.dtb \ -+ sun8i-h2-plus-sunvell-r69.dtb \ - sun8i-h3-bananapi-m2-plus.dtb \ - sun8i-h3-bananapi-m2-plus-v1.2.dtb \ - sun8i-h3-beelink-x2.dtb \ diff --git a/arch/arm/boot/dts/allwinner/sun8i-h2-plus-sunvell-r69.dts b/arch/arm/boot/dts/allwinner/sun8i-h2-plus-sunvell-r69.dts new file mode 100644 -index 000000000000..bb0c2f72b723 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/sun8i-h2-plus-sunvell-r69.dts @@ -0,0 +1,225 @@ @@ -253,5 +239,5 @@ index 000000000000..bb0c2f72b723 + status = "okay"; +}; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-a10-cubiebord-a20-cubietruck-green-LED-mmc0-default-tri.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-a10-cubiebord-a20-cubietruck-green-LED-mmc0-default-tri.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-a10-cubiebord-a20-cubietruck-green-LED-mmc0-default-tri.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-a10-cubiebord-a20-cubietruck-green-LED-mmc0-default-tri.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-a20-orangepi-and-mini-fix-phy-mode-hdmi.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-a20-orangepi-and-mini-fix-phy-mode-hdmi.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-a20-orangepi-and-mini-fix-phy-mode-hdmi.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-a20-orangepi-and-mini-fix-phy-mode-hdmi.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-h3-nanopi-neo-Add-regulator-leds-mmc2.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-h3-nanopi-neo-Add-regulator-leds-mmc2.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-h3-nanopi-neo-Add-regulator-leds-mmc2.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-h3-nanopi-neo-Add-regulator-leds-mmc2.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-h3-nanopi-neo-air-Add-regulator-camera-wifi-bluetooth-o.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-h3-nanopi-neo-air-Add-regulator-camera-wifi-bluetooth-o.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-h3-nanopi-neo-air-Add-regulator-camera-wifi-bluetooth-o.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-h3-nanopi-neo-air-Add-regulator-camera-wifi-bluetooth-o.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-h3-orangepi-2-Add-regulator-vdd-cpu.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-h3-orangepi-2-Add-regulator-vdd-cpu.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-h3-orangepi-2-Add-regulator-vdd-cpu.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-h3-orangepi-2-Add-regulator-vdd-cpu.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-overlay-Add-Overlays-for-sunxi.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-overlay-Add-Overlays-for-sunxi.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-overlay-Add-Overlays-for-sunxi.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-overlay-Add-Overlays-for-sunxi.patch index b24ff3361..f76b6656b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-overlay-Add-Overlays-for-sunxi.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-overlay-Add-Overlays-for-sunxi.patch @@ -1,217 +1,110 @@ -From 3110211a08b8a2d759a8c01170732fa5ffb0d850 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 12:54:05 +0300 Subject: arm:dts:overlay Add Overlays for sunxi --- - arch/arm/boot/dts/allwinner/Makefile | 2 + - arch/arm/boot/dts/allwinner/overlay/Makefile | 97 +++++ - .../overlay/README.sun4i-a10-overlays | 278 ++++++++++++++ - .../overlay/README.sun5i-a13-overlays | 172 +++++++++ - .../overlay/README.sun7i-a20-overlays | 348 ++++++++++++++++++ - .../overlay/README.sun8i-h3-overlays | 250 +++++++++++++ - .../overlay/sun4i-a10-analog-codec.dtso | 13 + - .../dts/allwinner/overlay/sun4i-a10-can.dtso | 15 + - .../allwinner/overlay/sun4i-a10-fixup.scr-cmd | 124 +++++++ - .../dts/allwinner/overlay/sun4i-a10-i2c1.dtso | 22 ++ - .../dts/allwinner/overlay/sun4i-a10-i2c2.dtso | 22 ++ - .../dts/allwinner/overlay/sun4i-a10-nand.dtso | 103 ++++++ - .../allwinner/overlay/sun4i-a10-pps-gpio.dtso | 29 ++ - .../dts/allwinner/overlay/sun4i-a10-pwm.dtso | 15 + - .../overlay/sun4i-a10-spdif-out.dtso | 38 ++ - .../overlay/sun4i-a10-spi-jedec-nor.dtso | 57 +++ - .../overlay/sun4i-a10-spi-spidev.dtso | 57 +++ - .../dts/allwinner/overlay/sun4i-a10-spi0.dtso | 23 ++ - .../dts/allwinner/overlay/sun4i-a10-spi1.dtso | 22 ++ - .../dts/allwinner/overlay/sun4i-a10-spi2.dtso | 23 ++ - .../allwinner/overlay/sun4i-a10-uart2.dtso | 37 ++ - .../allwinner/overlay/sun4i-a10-uart3.dtso | 47 +++ - .../allwinner/overlay/sun4i-a10-uart4.dtso | 37 ++ - .../allwinner/overlay/sun4i-a10-uart5.dtso | 32 ++ - .../allwinner/overlay/sun4i-a10-uart6.dtso | 32 ++ - .../allwinner/overlay/sun4i-a10-uart7.dtso | 32 ++ - .../allwinner/overlay/sun4i-a10-w1-gpio.dtso | 29 ++ - .../overlay/sun5i-a13-analog-codec.dtso | 13 + - .../allwinner/overlay/sun5i-a13-fixup.scr-cmd | 48 +++ - .../dts/allwinner/overlay/sun5i-a13-i2c1.dtso | 22 ++ - .../dts/allwinner/overlay/sun5i-a13-i2c2.dtso | 22 ++ - .../dts/allwinner/overlay/sun5i-a13-nand.dtso | 60 +++ - .../dts/allwinner/overlay/sun5i-a13-pwm.dtso | 15 + - .../overlay/sun5i-a13-spi-jedec-nor.dtso | 57 +++ - .../overlay/sun5i-a13-spi-spidev.dtso | 57 +++ - .../dts/allwinner/overlay/sun5i-a13-spi0.dtso | 38 ++ - .../dts/allwinner/overlay/sun5i-a13-spi1.dtso | 39 ++ - .../dts/allwinner/overlay/sun5i-a13-spi2.dtso | 22 ++ - .../allwinner/overlay/sun5i-a13-uart0.dtso | 32 ++ - .../allwinner/overlay/sun5i-a13-uart1.dtso | 22 ++ - .../allwinner/overlay/sun5i-a13-uart2.dtso | 22 ++ - .../allwinner/overlay/sun5i-a13-uart3.dtso | 22 ++ - .../overlay/sun7i-a20-analog-codec.dtso | 13 + - .../dts/allwinner/overlay/sun7i-a20-can.dtso | 15 + - .../allwinner/overlay/sun7i-a20-fixup.scr-cmd | 143 +++++++ - .../dts/allwinner/overlay/sun7i-a20-i2c1.dtso | 22 ++ - .../dts/allwinner/overlay/sun7i-a20-i2c2.dtso | 22 ++ - .../dts/allwinner/overlay/sun7i-a20-i2c3.dtso | 22 ++ - .../dts/allwinner/overlay/sun7i-a20-i2c4.dtso | 32 ++ - .../dts/allwinner/overlay/sun7i-a20-i2s0.dtso | 25 ++ - .../dts/allwinner/overlay/sun7i-a20-i2s1.dtso | 25 ++ - .../dts/allwinner/overlay/sun7i-a20-mmc2.dtso | 18 + - .../dts/allwinner/overlay/sun7i-a20-nand.dtso | 103 ++++++ - .../allwinner/overlay/sun7i-a20-pps-gpio.dtso | 29 ++ - .../dts/allwinner/overlay/sun7i-a20-pwm.dtso | 15 + - .../overlay/sun7i-a20-spdif-out.dtso | 38 ++ - .../overlay/sun7i-a20-spi-add-cs1.dtso | 16 + - .../overlay/sun7i-a20-spi-jedec-nor.dtso | 57 +++ - .../overlay/sun7i-a20-spi-spidev.dtso | 57 +++ - .../dts/allwinner/overlay/sun7i-a20-spi0.dtso | 23 ++ - .../dts/allwinner/overlay/sun7i-a20-spi1.dtso | 22 ++ - .../dts/allwinner/overlay/sun7i-a20-spi2.dtso | 23 ++ - .../allwinner/overlay/sun7i-a20-uart2.dtso | 32 ++ - .../allwinner/overlay/sun7i-a20-uart3.dtso | 42 +++ - .../allwinner/overlay/sun7i-a20-uart4.dtso | 22 ++ - .../allwinner/overlay/sun7i-a20-uart5.dtso | 22 ++ - .../allwinner/overlay/sun7i-a20-uart6.dtso | 22 ++ - .../allwinner/overlay/sun7i-a20-uart7.dtso | 22 ++ - .../allwinner/overlay/sun7i-a20-w1-gpio.dtso | 29 ++ - .../overlay/sun8i-h3-analog-codec.dtso | 17 + - .../dts/allwinner/overlay/sun8i-h3-cir.dtso | 15 + - .../allwinner/overlay/sun8i-h3-fixup.scr-cmd | 110 ++++++ - .../dts/allwinner/overlay/sun8i-h3-i2c0.dtso | 20 + - .../dts/allwinner/overlay/sun8i-h3-i2c1.dtso | 20 + - .../dts/allwinner/overlay/sun8i-h3-i2c2.dtso | 20 + - .../allwinner/overlay/sun8i-h3-pps-gpio.dtso | 29 ++ - .../dts/allwinner/overlay/sun8i-h3-pwm.dtso | 39 ++ - .../allwinner/overlay/sun8i-h3-spdif-out.dtso | 38 ++ - .../overlay/sun8i-h3-spi-add-cs1.dtso | 41 +++ - .../overlay/sun8i-h3-spi-jedec-nor.dtso | 42 +++ - .../overlay/sun8i-h3-spi-spidev.dtso | 42 +++ - .../dts/allwinner/overlay/sun8i-h3-uart1.dtso | 22 ++ - .../dts/allwinner/overlay/sun8i-h3-uart2.dtso | 22 ++ - .../dts/allwinner/overlay/sun8i-h3-uart3.dtso | 22 ++ - .../allwinner/overlay/sun8i-h3-usbhost0.dtso | 27 ++ - .../allwinner/overlay/sun8i-h3-usbhost1.dtso | 27 ++ - .../allwinner/overlay/sun8i-h3-usbhost2.dtso | 27 ++ - .../allwinner/overlay/sun8i-h3-usbhost3.dtso | 27 ++ - .../allwinner/overlay/sun8i-h3-w1-gpio.dtso | 29 ++ - .../dts/allwinner/overlay/sun8i-r40-i2c2.dtso | 20 + - .../dts/allwinner/overlay/sun8i-r40-i2c3.dtso | 20 + - .../overlay/sun8i-r40-spi-spidev0.dtso | 27 ++ - .../overlay/sun8i-r40-spi-spidev1.dtso | 27 ++ - .../allwinner/overlay/sun8i-r40-uart2.dtso | 22 ++ - .../allwinner/overlay/sun8i-r40-uart4.dtso | 22 ++ - .../allwinner/overlay/sun8i-r40-uart5.dtso | 22 ++ - .../allwinner/overlay/sun8i-r40-uart7.dtso | 22 ++ - 97 files changed, 4176 insertions(+) - create mode 100644 arch/arm/boot/dts/allwinner/overlay/Makefile - create mode 100644 arch/arm/boot/dts/allwinner/overlay/README.sun4i-a10-overlays - create mode 100644 arch/arm/boot/dts/allwinner/overlay/README.sun5i-a13-overlays - create mode 100644 arch/arm/boot/dts/allwinner/overlay/README.sun7i-a20-overlays - create mode 100644 arch/arm/boot/dts/allwinner/overlay/README.sun8i-h3-overlays - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-analog-codec.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-can.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-fixup.scr-cmd - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-i2c1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-i2c2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-nand.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-pps-gpio.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-pwm.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spdif-out.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi-jedec-nor.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi-spidev.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi0.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart3.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart4.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart5.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart6.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart7.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun4i-a10-w1-gpio.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-analog-codec.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-fixup.scr-cmd - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-i2c1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-i2c2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-nand.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-pwm.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi-jedec-nor.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi-spidev.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi0.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart0.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart3.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-analog-codec.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-can.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-fixup.scr-cmd - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c3.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c4.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2s0.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2s1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-mmc2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-nand.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-pps-gpio.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-pwm.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spdif-out.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-add-cs1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-jedec-nor.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-spidev.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi0.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart3.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart4.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart5.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart6.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart7.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun7i-a20-w1-gpio.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-analog-codec.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cir.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-fixup.scr-cmd - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c0.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-pps-gpio.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-pwm.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spdif-out.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-add-cs1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-jedec-nor.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-spidev.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart3.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost0.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost3.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-w1-gpio.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-r40-i2c2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-r40-i2c3.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-r40-spi-spidev0.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-r40-spi-spidev1.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart2.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart4.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart5.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart7.dtso + arch/arm/boot/dts/allwinner/overlay/Makefile | 97 +++ + arch/arm/boot/dts/allwinner/overlay/README.sun4i-a10-overlays | 278 ++++++++ + arch/arm/boot/dts/allwinner/overlay/README.sun5i-a13-overlays | 172 +++++ + arch/arm/boot/dts/allwinner/overlay/README.sun7i-a20-overlays | 348 ++++++++++ + arch/arm/boot/dts/allwinner/overlay/README.sun8i-h3-overlays | 250 +++++++ + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-analog-codec.dtso | 13 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-can.dtso | 15 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-fixup.scr-cmd | 124 ++++ + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-i2c1.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-i2c2.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-nand.dtso | 103 +++ + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-pps-gpio.dtso | 29 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-pwm.dtso | 15 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spdif-out.dtso | 38 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi-jedec-nor.dtso | 57 ++ + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi-spidev.dtso | 57 ++ + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi0.dtso | 23 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi1.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi2.dtso | 23 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart2.dtso | 37 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart3.dtso | 47 ++ + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart4.dtso | 37 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart5.dtso | 32 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart6.dtso | 32 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart7.dtso | 32 + + arch/arm/boot/dts/allwinner/overlay/sun4i-a10-w1-gpio.dtso | 29 + + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-analog-codec.dtso | 13 + + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-fixup.scr-cmd | 48 ++ + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-i2c1.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-i2c2.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-nand.dtso | 60 ++ + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-pwm.dtso | 15 + + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi-jedec-nor.dtso | 57 ++ + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi-spidev.dtso | 57 ++ + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi0.dtso | 38 + + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi1.dtso | 39 ++ + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi2.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart0.dtso | 32 + + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart1.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart2.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart3.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-analog-codec.dtso | 13 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-can.dtso | 15 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-fixup.scr-cmd | 143 ++++ + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c1.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c2.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c3.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c4.dtso | 32 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2s0.dtso | 25 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2s1.dtso | 25 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-mmc2.dtso | 18 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-nand.dtso | 103 +++ + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-pps-gpio.dtso | 29 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-pwm.dtso | 15 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spdif-out.dtso | 38 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-add-cs1.dtso | 16 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-jedec-nor.dtso | 57 ++ + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-spidev.dtso | 57 ++ + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi0.dtso | 23 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi1.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi2.dtso | 23 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart2.dtso | 32 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart3.dtso | 42 ++ + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart4.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart5.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart6.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart7.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun7i-a20-w1-gpio.dtso | 29 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-analog-codec.dtso | 17 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cir.dtso | 15 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-fixup.scr-cmd | 110 +++ + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c0.dtso | 20 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c1.dtso | 20 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c2.dtso | 20 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-pps-gpio.dtso | 29 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-pwm.dtso | 39 ++ + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spdif-out.dtso | 38 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-add-cs1.dtso | 41 ++ + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-jedec-nor.dtso | 42 ++ + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-spidev.dtso | 42 ++ + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart1.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart2.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart3.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost0.dtso | 27 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost1.dtso | 27 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost2.dtso | 27 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost3.dtso | 27 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-w1-gpio.dtso | 29 + + arch/arm/boot/dts/allwinner/overlay/sun8i-r40-i2c2.dtso | 20 + + arch/arm/boot/dts/allwinner/overlay/sun8i-r40-i2c3.dtso | 20 + + arch/arm/boot/dts/allwinner/overlay/sun8i-r40-spi-spidev0.dtso | 27 + + arch/arm/boot/dts/allwinner/overlay/sun8i-r40-spi-spidev1.dtso | 27 + + arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart2.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart4.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart5.dtso | 22 + + arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart7.dtso | 22 + + 96 files changed, 4174 insertions(+) -diff --git a/arch/arm/boot/dts/allwinner/Makefile b/arch/arm/boot/dts/allwinner/Makefile -index 91fdb57d2c19..420454ae04dd 100644 ---- a/arch/arm/boot/dts/allwinner/Makefile -+++ b/arch/arm/boot/dts/allwinner/Makefile -@@ -274,3 +274,5 @@ dtb-$(CONFIG_MACH_SUNIV) += \ - suniv-f1c100s-licheepi-nano.dtb \ - suniv-f1c200s-lctech-pi.dtb \ - suniv-f1c200s-popstick-v1.1.dtb -+ -+subdir-y := overlay diff --git a/arch/arm/boot/dts/allwinner/overlay/Makefile b/arch/arm/boot/dts/allwinner/overlay/Makefile new file mode 100644 -index 000000000000..0c47e8fda8fc +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/Makefile @@ -0,0 +1,97 @@ @@ -314,7 +207,7 @@ index 000000000000..0c47e8fda8fc +dtbotxt-$(CONFIG_MACH_SUN8I) += README.sun8i-h3-overlays diff --git a/arch/arm/boot/dts/allwinner/overlay/README.sun4i-a10-overlays b/arch/arm/boot/dts/allwinner/overlay/README.sun4i-a10-overlays new file mode 100644 -index 000000000000..e0795f13ddf1 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/README.sun4i-a10-overlays @@ -0,0 +1,278 @@ @@ -598,7 +491,7 @@ index 000000000000..e0795f13ddf1 + please use external pull-up resistor instead diff --git a/arch/arm/boot/dts/allwinner/overlay/README.sun5i-a13-overlays b/arch/arm/boot/dts/allwinner/overlay/README.sun5i-a13-overlays new file mode 100644 -index 000000000000..9f9653f09573 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/README.sun5i-a13-overlays @@ -0,0 +1,172 @@ @@ -776,7 +669,7 @@ index 000000000000..9f9653f09573 + Set to 1 to enable CTS and RTS pins diff --git a/arch/arm/boot/dts/allwinner/overlay/README.sun7i-a20-overlays b/arch/arm/boot/dts/allwinner/overlay/README.sun7i-a20-overlays new file mode 100644 -index 000000000000..362f87961135 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/README.sun7i-a20-overlays @@ -0,0 +1,348 @@ @@ -1130,7 +1023,7 @@ index 000000000000..362f87961135 + please use external pull-up resistor instead diff --git a/arch/arm/boot/dts/allwinner/overlay/README.sun8i-h3-overlays b/arch/arm/boot/dts/allwinner/overlay/README.sun8i-h3-overlays new file mode 100644 -index 000000000000..302973491051 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/README.sun8i-h3-overlays @@ -0,0 +1,250 @@ @@ -1386,7 +1279,7 @@ index 000000000000..302973491051 + or long wires - please use external pull-up resistor instead diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-analog-codec.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-analog-codec.dtso new file mode 100644 -index 000000000000..9254e22e0eea +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-analog-codec.dtso @@ -0,0 +1,13 @@ @@ -1405,7 +1298,7 @@ index 000000000000..9254e22e0eea +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-can.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-can.dtso new file mode 100644 -index 000000000000..1a9511d1956b +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-can.dtso @@ -0,0 +1,15 @@ @@ -1426,7 +1319,7 @@ index 000000000000..1a9511d1956b +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-fixup.scr-cmd b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-fixup.scr-cmd new file mode 100644 -index 000000000000..c5614cb95124 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-fixup.scr-cmd @@ -0,0 +1,124 @@ @@ -1556,7 +1449,7 @@ index 000000000000..c5614cb95124 +fi diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-i2c1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-i2c1.dtso new file mode 100644 -index 000000000000..4c104bf4a5f0 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-i2c1.dtso @@ -0,0 +1,22 @@ @@ -1584,7 +1477,7 @@ index 000000000000..4c104bf4a5f0 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-i2c2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-i2c2.dtso new file mode 100644 -index 000000000000..1c2c3e9aca81 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-i2c2.dtso @@ -0,0 +1,22 @@ @@ -1612,7 +1505,7 @@ index 000000000000..1c2c3e9aca81 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-nand.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-nand.dtso new file mode 100644 -index 000000000000..f0d4c2f34859 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-nand.dtso @@ -0,0 +1,103 @@ @@ -1721,7 +1614,7 @@ index 000000000000..f0d4c2f34859 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-pps-gpio.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-pps-gpio.dtso new file mode 100644 -index 000000000000..6031fc53e548 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-pps-gpio.dtso @@ -0,0 +1,29 @@ @@ -1756,7 +1649,7 @@ index 000000000000..6031fc53e548 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-pwm.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-pwm.dtso new file mode 100644 -index 000000000000..ba885004fe4f +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-pwm.dtso @@ -0,0 +1,15 @@ @@ -1777,7 +1670,7 @@ index 000000000000..ba885004fe4f +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spdif-out.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spdif-out.dtso new file mode 100644 -index 000000000000..234dfc880f1f +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spdif-out.dtso @@ -0,0 +1,38 @@ @@ -1821,7 +1714,7 @@ index 000000000000..234dfc880f1f +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi-jedec-nor.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi-jedec-nor.dtso new file mode 100644 -index 000000000000..ee4ff6f453d1 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi-jedec-nor.dtso @@ -0,0 +1,57 @@ @@ -1884,7 +1777,7 @@ index 000000000000..ee4ff6f453d1 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi-spidev.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi-spidev.dtso new file mode 100644 -index 000000000000..eac4f1e2d244 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi-spidev.dtso @@ -0,0 +1,57 @@ @@ -1947,7 +1840,7 @@ index 000000000000..eac4f1e2d244 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi0.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi0.dtso new file mode 100644 -index 000000000000..cad50d8a29a7 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi0.dtso @@ -0,0 +1,23 @@ @@ -1976,7 +1869,7 @@ index 000000000000..cad50d8a29a7 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi1.dtso new file mode 100644 -index 000000000000..8c606d6b06a1 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi1.dtso @@ -0,0 +1,22 @@ @@ -2004,7 +1897,7 @@ index 000000000000..8c606d6b06a1 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi2.dtso new file mode 100644 -index 000000000000..145f285588f8 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-spi2.dtso @@ -0,0 +1,23 @@ @@ -2033,7 +1926,7 @@ index 000000000000..145f285588f8 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart2.dtso new file mode 100644 -index 000000000000..89bb44d5aee0 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart2.dtso @@ -0,0 +1,37 @@ @@ -2076,7 +1969,7 @@ index 000000000000..89bb44d5aee0 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart3.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart3.dtso new file mode 100644 -index 000000000000..f599d92082e4 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart3.dtso @@ -0,0 +1,47 @@ @@ -2129,7 +2022,7 @@ index 000000000000..f599d92082e4 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart4.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart4.dtso new file mode 100644 -index 000000000000..b5e562a6477b +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart4.dtso @@ -0,0 +1,37 @@ @@ -2172,7 +2065,7 @@ index 000000000000..b5e562a6477b +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart5.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart5.dtso new file mode 100644 -index 000000000000..12c3f9699b23 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart5.dtso @@ -0,0 +1,32 @@ @@ -2210,7 +2103,7 @@ index 000000000000..12c3f9699b23 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart6.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart6.dtso new file mode 100644 -index 000000000000..6be41d505509 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart6.dtso @@ -0,0 +1,32 @@ @@ -2248,7 +2141,7 @@ index 000000000000..6be41d505509 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart7.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart7.dtso new file mode 100644 -index 000000000000..967f6afbe7d3 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-uart7.dtso @@ -0,0 +1,32 @@ @@ -2286,7 +2179,7 @@ index 000000000000..967f6afbe7d3 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-w1-gpio.dtso b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-w1-gpio.dtso new file mode 100644 -index 000000000000..41da08c60aa7 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun4i-a10-w1-gpio.dtso @@ -0,0 +1,29 @@ @@ -2321,7 +2214,7 @@ index 000000000000..41da08c60aa7 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-analog-codec.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-analog-codec.dtso new file mode 100644 -index 000000000000..60e2717fc582 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-analog-codec.dtso @@ -0,0 +1,13 @@ @@ -2340,7 +2233,7 @@ index 000000000000..60e2717fc582 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-fixup.scr-cmd b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-fixup.scr-cmd new file mode 100644 -index 000000000000..c82590c1ac18 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-fixup.scr-cmd @@ -0,0 +1,48 @@ @@ -2394,7 +2287,7 @@ index 000000000000..c82590c1ac18 +fi diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-i2c1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-i2c1.dtso new file mode 100644 -index 000000000000..444c32ca01d5 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-i2c1.dtso @@ -0,0 +1,22 @@ @@ -2422,7 +2315,7 @@ index 000000000000..444c32ca01d5 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-i2c2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-i2c2.dtso new file mode 100644 -index 000000000000..7a30681ca287 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-i2c2.dtso @@ -0,0 +1,22 @@ @@ -2450,7 +2343,7 @@ index 000000000000..7a30681ca287 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-nand.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-nand.dtso new file mode 100644 -index 000000000000..0c5fc89a1058 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-nand.dtso @@ -0,0 +1,60 @@ @@ -2516,7 +2409,7 @@ index 000000000000..0c5fc89a1058 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-pwm.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-pwm.dtso new file mode 100644 -index 000000000000..54f5d5123eb1 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-pwm.dtso @@ -0,0 +1,15 @@ @@ -2537,7 +2430,7 @@ index 000000000000..54f5d5123eb1 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi-jedec-nor.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi-jedec-nor.dtso new file mode 100644 -index 000000000000..8cebb0b988de +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi-jedec-nor.dtso @@ -0,0 +1,57 @@ @@ -2600,7 +2493,7 @@ index 000000000000..8cebb0b988de +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi-spidev.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi-spidev.dtso new file mode 100644 -index 000000000000..ad0685f8af18 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi-spidev.dtso @@ -0,0 +1,57 @@ @@ -2663,7 +2556,7 @@ index 000000000000..ad0685f8af18 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi0.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi0.dtso new file mode 100644 -index 000000000000..b23a754c0006 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi0.dtso @@ -0,0 +1,38 @@ @@ -2707,7 +2600,7 @@ index 000000000000..b23a754c0006 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi1.dtso new file mode 100644 -index 000000000000..cc0af5db3fd0 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi1.dtso @@ -0,0 +1,39 @@ @@ -2752,7 +2645,7 @@ index 000000000000..cc0af5db3fd0 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi2.dtso new file mode 100644 -index 000000000000..6cf5c41a9eca +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-spi2.dtso @@ -0,0 +1,22 @@ @@ -2780,7 +2673,7 @@ index 000000000000..6cf5c41a9eca +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart0.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart0.dtso new file mode 100644 -index 000000000000..6edad42bfcd7 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart0.dtso @@ -0,0 +1,32 @@ @@ -2818,7 +2711,7 @@ index 000000000000..6edad42bfcd7 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart1.dtso new file mode 100644 -index 000000000000..675b701ed535 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart1.dtso @@ -0,0 +1,22 @@ @@ -2846,7 +2739,7 @@ index 000000000000..675b701ed535 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart2.dtso new file mode 100644 -index 000000000000..b3c4e3d7a0e2 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart2.dtso @@ -0,0 +1,22 @@ @@ -2874,7 +2767,7 @@ index 000000000000..b3c4e3d7a0e2 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart3.dtso b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart3.dtso new file mode 100644 -index 000000000000..15c25d0c5992 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun5i-a13-uart3.dtso @@ -0,0 +1,22 @@ @@ -2902,7 +2795,7 @@ index 000000000000..15c25d0c5992 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-analog-codec.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-analog-codec.dtso new file mode 100644 -index 000000000000..e1a70c5102bc +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-analog-codec.dtso @@ -0,0 +1,13 @@ @@ -2921,7 +2814,7 @@ index 000000000000..e1a70c5102bc +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-can.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-can.dtso new file mode 100644 -index 000000000000..65aebcd4144c +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-can.dtso @@ -0,0 +1,15 @@ @@ -2942,7 +2835,7 @@ index 000000000000..65aebcd4144c +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-fixup.scr-cmd b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-fixup.scr-cmd new file mode 100644 -index 000000000000..b97042a720a7 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-fixup.scr-cmd @@ -0,0 +1,143 @@ @@ -3091,7 +2984,7 @@ index 000000000000..b97042a720a7 +fi diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c1.dtso new file mode 100644 -index 000000000000..c5f6e9732d3a +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c1.dtso @@ -0,0 +1,22 @@ @@ -3119,7 +3012,7 @@ index 000000000000..c5f6e9732d3a +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c2.dtso new file mode 100644 -index 000000000000..fa93d1ed9b72 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c2.dtso @@ -0,0 +1,22 @@ @@ -3147,7 +3040,7 @@ index 000000000000..fa93d1ed9b72 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c3.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c3.dtso new file mode 100644 -index 000000000000..945795c338e8 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c3.dtso @@ -0,0 +1,22 @@ @@ -3175,7 +3068,7 @@ index 000000000000..945795c338e8 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c4.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c4.dtso new file mode 100644 -index 000000000000..4fcf08c2469b +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2c4.dtso @@ -0,0 +1,32 @@ @@ -3213,7 +3106,7 @@ index 000000000000..4fcf08c2469b +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2s0.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2s0.dtso new file mode 100644 -index 000000000000..1a19a2417d3b +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2s0.dtso @@ -0,0 +1,25 @@ @@ -3244,7 +3137,7 @@ index 000000000000..1a19a2417d3b +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2s1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2s1.dtso new file mode 100644 -index 000000000000..e6f0a22b7991 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-i2s1.dtso @@ -0,0 +1,25 @@ @@ -3275,7 +3168,7 @@ index 000000000000..e6f0a22b7991 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-mmc2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-mmc2.dtso new file mode 100644 -index 000000000000..ede92f243a1d +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-mmc2.dtso @@ -0,0 +1,18 @@ @@ -3299,7 +3192,7 @@ index 000000000000..ede92f243a1d +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-nand.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-nand.dtso new file mode 100644 -index 000000000000..ffa49cc69473 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-nand.dtso @@ -0,0 +1,103 @@ @@ -3408,7 +3301,7 @@ index 000000000000..ffa49cc69473 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-pps-gpio.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-pps-gpio.dtso new file mode 100644 -index 000000000000..fe3e2bd96467 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-pps-gpio.dtso @@ -0,0 +1,29 @@ @@ -3443,7 +3336,7 @@ index 000000000000..fe3e2bd96467 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-pwm.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-pwm.dtso new file mode 100644 -index 000000000000..b0cfe4deae76 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-pwm.dtso @@ -0,0 +1,15 @@ @@ -3464,7 +3357,7 @@ index 000000000000..b0cfe4deae76 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spdif-out.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spdif-out.dtso new file mode 100644 -index 000000000000..11a09396bd35 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spdif-out.dtso @@ -0,0 +1,38 @@ @@ -3508,7 +3401,7 @@ index 000000000000..11a09396bd35 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-add-cs1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-add-cs1.dtso new file mode 100644 -index 000000000000..c0a4ba2b3d4e +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-add-cs1.dtso @@ -0,0 +1,16 @@ @@ -3530,7 +3423,7 @@ index 000000000000..c0a4ba2b3d4e +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-jedec-nor.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-jedec-nor.dtso new file mode 100644 -index 000000000000..b91097eca5b6 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-jedec-nor.dtso @@ -0,0 +1,57 @@ @@ -3593,7 +3486,7 @@ index 000000000000..b91097eca5b6 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-spidev.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-spidev.dtso new file mode 100644 -index 000000000000..341fe3229ffc +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi-spidev.dtso @@ -0,0 +1,57 @@ @@ -3656,7 +3549,7 @@ index 000000000000..341fe3229ffc +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi0.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi0.dtso new file mode 100644 -index 000000000000..cad50d8a29a7 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi0.dtso @@ -0,0 +1,23 @@ @@ -3685,7 +3578,7 @@ index 000000000000..cad50d8a29a7 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi1.dtso new file mode 100644 -index 000000000000..f0218eb9f76b +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi1.dtso @@ -0,0 +1,22 @@ @@ -3713,7 +3606,7 @@ index 000000000000..f0218eb9f76b +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi2.dtso new file mode 100644 -index 000000000000..effba42b48bd +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-spi2.dtso @@ -0,0 +1,23 @@ @@ -3742,7 +3635,7 @@ index 000000000000..effba42b48bd +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart2.dtso new file mode 100644 -index 000000000000..79d1dca7a311 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart2.dtso @@ -0,0 +1,32 @@ @@ -3780,7 +3673,7 @@ index 000000000000..79d1dca7a311 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart3.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart3.dtso new file mode 100644 -index 000000000000..703acbcf377b +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart3.dtso @@ -0,0 +1,42 @@ @@ -3828,7 +3721,7 @@ index 000000000000..703acbcf377b +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart4.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart4.dtso new file mode 100644 -index 000000000000..19180341a67f +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart4.dtso @@ -0,0 +1,22 @@ @@ -3856,7 +3749,7 @@ index 000000000000..19180341a67f +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart5.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart5.dtso new file mode 100644 -index 000000000000..a1369eee2917 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart5.dtso @@ -0,0 +1,22 @@ @@ -3884,7 +3777,7 @@ index 000000000000..a1369eee2917 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart6.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart6.dtso new file mode 100644 -index 000000000000..fb9efe2a9475 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart6.dtso @@ -0,0 +1,22 @@ @@ -3912,7 +3805,7 @@ index 000000000000..fb9efe2a9475 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart7.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart7.dtso new file mode 100644 -index 000000000000..bbdca3ec67ed +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-uart7.dtso @@ -0,0 +1,22 @@ @@ -3940,7 +3833,7 @@ index 000000000000..bbdca3ec67ed +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-w1-gpio.dtso b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-w1-gpio.dtso new file mode 100644 -index 000000000000..7d77606a1604 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun7i-a20-w1-gpio.dtso @@ -0,0 +1,29 @@ @@ -3975,7 +3868,7 @@ index 000000000000..7d77606a1604 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-analog-codec.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-analog-codec.dtso new file mode 100644 -index 000000000000..36dbc31ae2a2 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-analog-codec.dtso @@ -0,0 +1,17 @@ @@ -3998,7 +3891,7 @@ index 000000000000..36dbc31ae2a2 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cir.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cir.dtso new file mode 100644 -index 000000000000..bf4a0eafa133 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cir.dtso @@ -0,0 +1,15 @@ @@ -4019,7 +3912,7 @@ index 000000000000..bf4a0eafa133 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-fixup.scr-cmd b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-fixup.scr-cmd new file mode 100644 -index 000000000000..604fe8bb78c1 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-fixup.scr-cmd @@ -0,0 +1,110 @@ @@ -4135,7 +4028,7 @@ index 000000000000..604fe8bb78c1 +fi diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c0.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c0.dtso new file mode 100644 -index 000000000000..a36ac8667674 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c0.dtso @@ -0,0 +1,20 @@ @@ -4161,7 +4054,7 @@ index 000000000000..a36ac8667674 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c1.dtso new file mode 100644 -index 000000000000..258c86de07cc +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c1.dtso @@ -0,0 +1,20 @@ @@ -4187,7 +4080,7 @@ index 000000000000..258c86de07cc +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c2.dtso new file mode 100644 -index 000000000000..a1e3284984df +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-i2c2.dtso @@ -0,0 +1,20 @@ @@ -4213,7 +4106,7 @@ index 000000000000..a1e3284984df +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-pps-gpio.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-pps-gpio.dtso new file mode 100644 -index 000000000000..16a737b02935 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-pps-gpio.dtso @@ -0,0 +1,29 @@ @@ -4248,7 +4141,7 @@ index 000000000000..16a737b02935 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-pwm.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-pwm.dtso new file mode 100644 -index 000000000000..ed3b8e606249 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-pwm.dtso @@ -0,0 +1,39 @@ @@ -4293,7 +4186,7 @@ index 000000000000..ed3b8e606249 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spdif-out.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spdif-out.dtso new file mode 100644 -index 000000000000..35b2d567704c +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spdif-out.dtso @@ -0,0 +1,38 @@ @@ -4337,7 +4230,7 @@ index 000000000000..35b2d567704c +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-add-cs1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-add-cs1.dtso new file mode 100644 -index 000000000000..bd8e2561729d +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-add-cs1.dtso @@ -0,0 +1,41 @@ @@ -4384,7 +4277,7 @@ index 000000000000..bd8e2561729d +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-jedec-nor.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-jedec-nor.dtso new file mode 100644 -index 000000000000..95fa5f2ca1ef +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-jedec-nor.dtso @@ -0,0 +1,42 @@ @@ -4432,7 +4325,7 @@ index 000000000000..95fa5f2ca1ef +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-spidev.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-spidev.dtso new file mode 100644 -index 000000000000..c79beb95ecfa +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-spi-spidev.dtso @@ -0,0 +1,42 @@ @@ -4480,7 +4373,7 @@ index 000000000000..c79beb95ecfa +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart1.dtso new file mode 100644 -index 000000000000..3c10d4db420b +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart1.dtso @@ -0,0 +1,22 @@ @@ -4508,7 +4401,7 @@ index 000000000000..3c10d4db420b +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart2.dtso new file mode 100644 -index 000000000000..f16e61862913 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart2.dtso @@ -0,0 +1,22 @@ @@ -4536,7 +4429,7 @@ index 000000000000..f16e61862913 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart3.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart3.dtso new file mode 100644 -index 000000000000..b1aef575e0f0 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-uart3.dtso @@ -0,0 +1,22 @@ @@ -4564,7 +4457,7 @@ index 000000000000..b1aef575e0f0 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost0.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost0.dtso new file mode 100644 -index 000000000000..6bd8aedbee20 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost0.dtso @@ -0,0 +1,27 @@ @@ -4597,7 +4490,7 @@ index 000000000000..6bd8aedbee20 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost1.dtso new file mode 100644 -index 000000000000..4c7222b10beb +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost1.dtso @@ -0,0 +1,27 @@ @@ -4630,7 +4523,7 @@ index 000000000000..4c7222b10beb +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost2.dtso new file mode 100644 -index 000000000000..2b83ec933a9d +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost2.dtso @@ -0,0 +1,27 @@ @@ -4663,7 +4556,7 @@ index 000000000000..2b83ec933a9d +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost3.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost3.dtso new file mode 100644 -index 000000000000..e2f28ab1ae64 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-usbhost3.dtso @@ -0,0 +1,27 @@ @@ -4696,7 +4589,7 @@ index 000000000000..e2f28ab1ae64 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-w1-gpio.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-w1-gpio.dtso new file mode 100644 -index 000000000000..f4ccb7fba9ad +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-w1-gpio.dtso @@ -0,0 +1,29 @@ @@ -4731,7 +4624,7 @@ index 000000000000..f4ccb7fba9ad +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-i2c2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-i2c2.dtso new file mode 100644 -index 000000000000..a1e3284984df +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-i2c2.dtso @@ -0,0 +1,20 @@ @@ -4757,7 +4650,7 @@ index 000000000000..a1e3284984df +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-i2c3.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-i2c3.dtso new file mode 100644 -index 000000000000..949a98234551 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-i2c3.dtso @@ -0,0 +1,20 @@ @@ -4783,7 +4676,7 @@ index 000000000000..949a98234551 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-spi-spidev0.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-spi-spidev0.dtso new file mode 100644 -index 000000000000..fae9c3f75bb7 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-spi-spidev0.dtso @@ -0,0 +1,27 @@ @@ -4816,7 +4709,7 @@ index 000000000000..fae9c3f75bb7 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-spi-spidev1.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-spi-spidev1.dtso new file mode 100644 -index 000000000000..cb98ddf6bbd8 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-spi-spidev1.dtso @@ -0,0 +1,27 @@ @@ -4849,7 +4742,7 @@ index 000000000000..cb98ddf6bbd8 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart2.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart2.dtso new file mode 100644 -index 000000000000..2030d6777fa9 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart2.dtso @@ -0,0 +1,22 @@ @@ -4877,7 +4770,7 @@ index 000000000000..2030d6777fa9 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart4.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart4.dtso new file mode 100644 -index 000000000000..0d7f934f6828 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart4.dtso @@ -0,0 +1,22 @@ @@ -4905,7 +4798,7 @@ index 000000000000..0d7f934f6828 +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart5.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart5.dtso new file mode 100644 -index 000000000000..e695535afc7e +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart5.dtso @@ -0,0 +1,22 @@ @@ -4933,7 +4826,7 @@ index 000000000000..e695535afc7e +}; diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart7.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart7.dtso new file mode 100644 -index 000000000000..e572598339a6 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-r40-uart7.dtso @@ -0,0 +1,22 @@ @@ -4960,5 +4853,5 @@ index 000000000000..e572598339a6 + }; +}; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-overlay-sun8i-h3-cpu-clock-add-overclock.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-overlay-sun8i-h3-cpu-clock-add-overclock.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-overlay-sun8i-h3-cpu-clock-add-overclock.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-overlay-sun8i-h3-cpu-clock-add-overclock.patch index 39057b76d..ad4e5451e 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-overlay-sun8i-h3-cpu-clock-add-overclock.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-overlay-sun8i-h3-cpu-clock-add-overclock.patch @@ -1,20 +1,17 @@ -From ec30b77c7935d7f1ec1ea430424dddfe552e55c8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 21:29:16 +0300 Subject: arm:dts:overlay: sun8i-h3-cpu-clock add overclock --- - arch/arm/boot/dts/allwinner/overlay/Makefile | 3 + - .../sun8i-h3-cpu-clock-1.2GHz-1.3v.dtso | 31 +++++++++ - .../sun8i-h3-cpu-clock-1.368GHz-1.3v.dtso | 67 +++++++++++++++++++ - .../sun8i-h3-cpu-clock-1.3GHz-1.3v.dtso | 61 +++++++++++++++++ + arch/arm/boot/dts/allwinner/overlay/Makefile | 3 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.2GHz-1.3v.dtso | 31 +++++ + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.368GHz-1.3v.dtso | 67 ++++++++++ + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.3GHz-1.3v.dtso | 61 +++++++++ 4 files changed, 162 insertions(+) - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.2GHz-1.3v.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.368GHz-1.3v.dtso - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.3GHz-1.3v.dtso diff --git a/arch/arm/boot/dts/allwinner/overlay/Makefile b/arch/arm/boot/dts/allwinner/overlay/Makefile -index 0c47e8fda8fc..560f926b7018 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/overlay/Makefile +++ b/arch/arm/boot/dts/allwinner/overlay/Makefile @@ -60,6 +60,9 @@ dtb-$(CONFIG_MACH_SUN7I) += \ @@ -29,7 +26,7 @@ index 0c47e8fda8fc..560f926b7018 100644 sun8i-h3-i2c2.dtbo \ diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.2GHz-1.3v.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.2GHz-1.3v.dtso new file mode 100644 -index 000000000000..b07e694c781a +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.2GHz-1.3v.dtso @@ -0,0 +1,31 @@ @@ -66,7 +63,7 @@ index 000000000000..b07e694c781a + diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.368GHz-1.3v.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.368GHz-1.3v.dtso new file mode 100644 -index 000000000000..e3fd7e5c85a6 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.368GHz-1.3v.dtso @@ -0,0 +1,67 @@ @@ -139,7 +136,7 @@ index 000000000000..e3fd7e5c85a6 + diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.3GHz-1.3v.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.3GHz-1.3v.dtso new file mode 100644 -index 000000000000..413222831eab +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-cpu-clock-1.3GHz-1.3v.dtso @@ -0,0 +1,61 @@ @@ -205,5 +202,5 @@ index 000000000000..413222831eab +}; + -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun5i-a13-olinuxino-Add-panel-lcd-olinuxino-4.3-needed-.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun5i-a13-olinuxino-Add-panel-lcd-olinuxino-4.3-needed-.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun5i-a13-olinuxino-Add-panel-lcd-olinuxino-4.3-needed-.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun5i-a13-olinuxino-Add-panel-lcd-olinuxino-4.3-needed-.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun5i-a13-olinuxino-micro-add-panel-lcd-olinuxino-4.3.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun5i-a13-olinuxino-micro-add-panel-lcd-olinuxino-4.3.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun5i-a13-olinuxino-micro-add-panel-lcd-olinuxino-4.3.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun5i-a13-olinuxino-micro-add-panel-lcd-olinuxino-4.3.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-Disable-OOB-IRQ-for-brcm-wifi-on-Cubietruck-a.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-Disable-OOB-IRQ-for-brcm-wifi-on-Cubietruck-a.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-Disable-OOB-IRQ-for-brcm-wifi-on-Cubietruck-a.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-Disable-OOB-IRQ-for-brcm-wifi-on-Cubietruck-a.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-bananapro-add-AXP209-regulators.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-bananapro-add-AXP209-regulators.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-bananapro-add-AXP209-regulators.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-bananapro-add-AXP209-regulators.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-bananapro-add-hdmi-connector-de.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-bananapro-add-hdmi-connector-de.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-bananapro-add-hdmi-connector-de.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-bananapro-add-hdmi-connector-de.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-cubietruck-add-alias-uart2.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-cubietruck-add-alias-uart2.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-cubietruck-add-alias-uart2.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-cubietruck-add-alias-uart2.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-olimex-som-204-evb-olinuxino-micro-decrease-d.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-olimex-som-204-evb-olinuxino-micro-decrease-d.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-olimex-som-204-evb-olinuxino-micro-decrease-d.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-olimex-som-204-evb-olinuxino-micro-decrease-d.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-audio-codec.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-audio-codec.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-audio-codec.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-audio-codec.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-ldo3-always-on.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-ldo3-always-on.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-ldo3-always-on.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-ldo3-always-on.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-olinuxino-micro-emmc-Add-vqmmc-node.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-olinuxino-micro-emmc-Add-vqmmc-node.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun7i-a20-olinuxino-micro-emmc-Add-vqmmc-node.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun7i-a20-olinuxino-micro-emmc-Add-vqmmc-node.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-usb_otg-dr_mode.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-usb_otg-dr_mode.patch similarity index 81% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-usb_otg-dr_mode.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-usb_otg-dr_mode.patch index 6eebf83de..520704b16 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-usb_otg-dr_mode.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-usb_otg-dr_mode.patch @@ -1,4 +1,4 @@ -From 2f8b8f221f69c044f5d8821025c60ae76cce2bfc Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 10 Jan 2025 20:56:39 +0300 Subject: arm: dts: sun8i-h2-plus-orangepi-zero: fix usb_otg dr_mode @@ -8,10 +8,10 @@ Subject: arm: dts: sun8i-h2-plus-orangepi-zero: fix usb_otg dr_mode 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts -index 1bb54edb00ce..f5c0e103b748 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts -@@ -203,7 +203,7 @@ &uart2 { +@@ -213,7 +213,7 @@ &uart2 { }; &usb_otg { @@ -21,5 +21,5 @@ index 1bb54edb00ce..f5c0e103b748 100644 }; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-xradio-interrupt.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-xradio-interrupt.patch similarity index 97% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-xradio-interrupt.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-xradio-interrupt.patch index b370772a9..adb9d591a 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-xradio-interrupt.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-xradio-interrupt.patch @@ -19,7 +19,7 @@ index 111111111111..222222222222 100644 / { model = "Xunlong Orange Pi Zero"; -@@ -151,6 +152,10 @@ &mmc1 { +@@ -165,6 +166,10 @@ &mmc1 { */ xr819: wifi@1 { reg = <1>; diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h3-add-thermal-zones.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h3-add-thermal-zones.patch similarity index 98% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h3-add-thermal-zones.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h3-add-thermal-zones.patch index 43a925a71..3edd7aae9 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h3-add-thermal-zones.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h3-add-thermal-zones.patch @@ -8,7 +8,7 @@ Subject: arm:dts:sun8i-h3 add thermal zones 1 file changed, 55 insertions(+), 13 deletions(-) diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi b/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi -index a5bf9e0b5ec0..1b02a4c3f05d 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi @@ -297,32 +297,74 @@ ths: thermal-sensor@1c25000 { diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h3-bananapi-m2-plus-add-wifi_pwrseq.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h3-bananapi-m2-plus-add-wifi_pwrseq.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h3-bananapi-m2-plus-add-wifi_pwrseq.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h3-bananapi-m2-plus-add-wifi_pwrseq.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h3-nanopi-add-leds-pio-pins.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h3-nanopi-add-leds-pio-pins.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h3-nanopi-add-leds-pio-pins.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h3-nanopi-add-leds-pio-pins.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h3-orangepi-pc-plus-add-wifi_pwrseq.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h3-orangepi-pc-plus-add-wifi_pwrseq.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h3-orangepi-pc-plus-add-wifi_pwrseq.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h3-orangepi-pc-plus-add-wifi_pwrseq.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h3-reduce-opp-microvolt-to-prevent-not-supported-.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h3-reduce-opp-microvolt-to-prevent-not-supported-.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-h3-reduce-opp-microvolt-to-prevent-not-supported-.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-h3-reduce-opp-microvolt-to-prevent-not-supported-.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-r40-add-clk_out_a-fix-bananam2ultra.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-r40-add-clk_out_a-fix-bananam2ultra.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-r40-add-clk_out_a-fix-bananam2ultra.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-r40-add-clk_out_a-fix-bananam2ultra.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-r40-bananapi-m2-ultra-add-codec-analog.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-r40-bananapi-m2-ultra-add-codec-analog.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-r40-bananapi-m2-ultra-add-codec-analog.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-r40-bananapi-m2-ultra-add-codec-analog.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-v3s-s3-pinecube-enable-sound-codec.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-v3s-s3-pinecube-enable-sound-codec.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-v3s-s3-pinecube-enable-sound-codec.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-v3s-s3-pinecube-enable-sound-codec.patch index 76f3351bf..3e718afba 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun8i-v3s-s3-pinecube-enable-sound-codec.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun8i-v3s-s3-pinecube-enable-sound-codec.patch @@ -1,15 +1,15 @@ -From 404a4f5b185c2fa8946f4cdc45d5236f635ccf33 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Fri, 28 Jan 2022 12:58:57 +0300 Subject: arm:dts: sun8i-v3s/s3-pinecube enable sound codec --- - arch/arm/boot/dts/allwinner/sun8i-s3-pinecube.dts | 14 ++++++++++++++ - arch/arm/boot/dts/allwinner/sun8i-v3s.dtsi | 14 ++++++++++++++ + arch/arm/boot/dts/allwinner/sun8i-s3-pinecube.dts | 14 ++++++++++ + arch/arm/boot/dts/allwinner/sun8i-v3s.dtsi | 14 ++++++++++ 2 files changed, 28 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-s3-pinecube.dts b/arch/arm/boot/dts/allwinner/sun8i-s3-pinecube.dts -index e0d4404b5957..46d6030e8ff6 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-s3-pinecube.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-s3-pinecube.dts @@ -58,6 +58,20 @@ wifi_pwrseq: pwrseq { @@ -34,10 +34,10 @@ index e0d4404b5957..46d6030e8ff6 100644 pinctrl-names = "default"; pinctrl-0 = <&csi1_8bit_pins>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-v3s.dtsi b/arch/arm/boot/dts/allwinner/sun8i-v3s.dtsi -index f909b1d4dbca..c08eb315dcf7 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-v3s.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-v3s.dtsi -@@ -512,6 +512,20 @@ codec_analog: codec-analog@1c23000 { +@@ -521,6 +521,20 @@ codec_analog: codec-analog@1c23000 { reg = <0x01c23000 0x4>; }; @@ -59,5 +59,5 @@ index f909b1d4dbca..c08eb315dcf7 100644 compatible = "snps,dw-apb-uart"; reg = <0x01c28000 0x400>; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun9i-a80-add-thermal-sensor.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun9i-a80-add-thermal-sensor.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun9i-a80-add-thermal-sensor.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun9i-a80-add-thermal-sensor.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun9i-a80-add-thermal-zone.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun9i-a80-add-thermal-zone.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sun9i-a80-add-thermal-zone.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sun9i-a80-add-thermal-zone.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sunxi-h3-h5.dtsi-add-i2s0-i2s1-pins.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sunxi-h3-h5.dtsi-add-i2s0-i2s1-pins.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sunxi-h3-h5.dtsi-add-i2s0-i2s1-pins.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sunxi-h3-h5.dtsi-add-i2s0-i2s1-pins.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sunxi-h3-h5.dtsi-force-mmc0-bus-width.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sunxi-h3-h5.dtsi-force-mmc0-bus-width.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-dts-sunxi-h3-h5.dtsi-force-mmc0-bus-width.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-dts-sunxi-h3-h5.dtsi-force-mmc0-bus-width.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm-patch-call-flush_icache-ASAP-after-writing-new-instruction.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm-patch-call-flush_icache-ASAP-after-writing-new-instruction.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm-patch-call-flush_icache-ASAP-after-writing-new-instruction.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm-patch-call-flush_icache-ASAP-after-writing-new-instruction.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-allwinner-Add-sun50i-h618-bananapi-m4-berry-support.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-allwinner-Add-sun50i-h618-bananapi-m4-berry-support.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-allwinner-Add-sun50i-h618-bananapi-m4-berry-support.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-allwinner-Add-sun50i-h618-bananapi-m4-berry-support.patch index 2f8ffbd37..153efdbe0 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-allwinner-Add-sun50i-h618-bananapi-m4-berry-support.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-allwinner-Add-sun50i-h618-bananapi-m4-berry-support.patch @@ -1,32 +1,18 @@ -From 3d72091622a7cccc4896cbfe71e25503dd174b8e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 10 Feb 2025 13:34:14 +0300 Subject: arm64: allwinner: Add sun50i-h618-bananapi-m4-berry support --- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 4 +- - .../sun50i-h618-bananapi-m4-berry.dts | 305 ++++++++++++++++++ - 3 files changed, 308 insertions(+), 2 deletions(-) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h618-bananapi-m4-berry.dts + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 4 +- + arch/arm64/boot/dts/allwinner/sun50i-h618-bananapi-m4-berry.dts | 305 ++++++++++ + 2 files changed, 307 insertions(+), 2 deletions(-) -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 3f84f24dc82a..8fb1c9c187f2 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -60,6 +60,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-cb1-emmc.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-pi.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-orangepi-zero2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-x96-mate.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-bananapi-m4-berry.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-longanpi-3h.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero2w.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero3.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index 2e418ffdfcdb..2082099f13fc 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -@@ -391,8 +391,8 @@ pio: pinctrl@300b000 { +@@ -410,8 +410,8 @@ pio: pinctrl@300b000 { ext_rgmii_pins: rgmii-pins { pins = "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI7", "PI8", "PI9", "PI10", @@ -39,7 +25,7 @@ index 2e418ffdfcdb..2082099f13fc 100644 }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-bananapi-m4-berry.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-bananapi-m4-berry.dts new file mode 100644 -index 000000000000..29869f39de97 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-bananapi-m4-berry.dts @@ -0,0 +1,305 @@ @@ -349,5 +335,5 @@ index 000000000000..29869f39de97 +}; +*/ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-k1-plus-device.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-k1-plus-device.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-k1-plus-device.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-k1-plus-device.patch index 0e5f203bc..65a2f0c53 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-k1-plus-device.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-k1-plus-device.patch @@ -1,29 +1,15 @@ -From 76fd556315ddc27df6cc7cdc159e6a47d66f4659 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: wuweidong <625769020@qq.com> Date: Mon, 27 Nov 2017 10:23:51 +0800 Subject: arm64:dts: Add sun50i-h5-nanopi-k1-plus device --- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../allwinner/sun50i-h5-nanopi-k1-plus.dts | 396 ++++++++++++++++++ - 2 files changed, 397 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-k1-plus.dts + arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-k1-plus.dts | 396 ++++++++++ + 1 file changed, 396 insertions(+) -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index a733b69fbb6b..05fdfe3a30db 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -30,6 +30,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo-plus2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-r1s-h5.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-k1-plus.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-k1-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-k1-plus.dts new file mode 100644 -index 000000000000..b7045a9efab5 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-k1-plus.dts @@ -0,0 +1,396 @@ @@ -425,5 +411,5 @@ index 000000000000..b7045a9efab5 +}; \ No newline at end of file -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-m1-plus2-device.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-m1-plus2-device.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-m1-plus2-device.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-m1-plus2-device.patch index c2368ac0d..1e4b2a66b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-m1-plus2-device.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-m1-plus2-device.patch @@ -1,29 +1,15 @@ -From 545864cca39f36c642f8c86759d4fc55dbb85cf0 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 24 Jan 2022 18:54:36 +0300 Subject: arm64:dts: Add sun50i-h5-nanopi-m1-plus2 device --- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../allwinner/sun50i-h5-nanopi-m1-plus2.dts | 240 ++++++++++++++++++ - 2 files changed, 241 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-m1-plus2.dts + arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-m1-plus2.dts | 240 ++++++++++ + 1 file changed, 240 insertions(+) -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 0dcb00f6f32c..9d37a0f1ac28 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -33,6 +33,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo-core2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-r1s-h5.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-k1-plus.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-m1-plus2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-m1-plus2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-m1-plus2.dts new file mode 100644 -index 000000000000..d051382cc800 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-m1-plus2.dts @@ -0,0 +1,240 @@ @@ -268,5 +254,5 @@ index 000000000000..d051382cc800 + status = "okay"; +}; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo-core2-device.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo-core2-device.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo-core2-device.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo-core2-device.patch index 8297d4aa0..3a379d04d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo-core2-device.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo-core2-device.patch @@ -1,29 +1,15 @@ -From 67cacba5ece1f10e6c611b0ad62911e128f4406e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 24 Jan 2022 18:43:42 +0300 Subject: arm64:dts: Add sun50i-h5-nanopi-neo-core2 device --- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../allwinner/sun50i-h5-nanopi-neo-core2.dts | 210 ++++++++++++++++++ - 2 files changed, 211 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-core2.dts + arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-core2.dts | 210 ++++++++++ + 1 file changed, 210 insertions(+) -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 05fdfe3a30db..935a62021dd2 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -28,6 +28,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-libretech-all-h3-it.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-libretech-all-h5-cc.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo-plus2.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo-core2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-r1s-h5.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-k1-plus.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-core2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-core2.dts new file mode 100644 -index 000000000000..57283cc16ad9 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-core2.dts @@ -0,0 +1,210 @@ @@ -238,5 +224,5 @@ index 000000000000..57283cc16ad9 + status = "okay"; +}; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo2-v1.1-device.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo2-v1.1-device.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo2-v1.1-device.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo2-v1.1-device.patch index 1f7fa59ac..1ff5016c8 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo2-v1.1-device.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo2-v1.1-device.patch @@ -1,29 +1,15 @@ -From 24eef32e5d453be8b2780c8dbc32311064fbb735 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 24 Jan 2022 18:49:55 +0300 Subject: arm64:dts: Add sun50i-h5-nanopi-neo2-v1.1 device --- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../allwinner/sun50i-h5-nanopi-neo2-v1.1.dts | 180 ++++++++++++++++++ - 2 files changed, 181 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2-v1.1.dts + arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2-v1.1.dts | 180 ++++++++++ + 1 file changed, 180 insertions(+) -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 935a62021dd2..0dcb00f6f32c 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -27,6 +27,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-libretech-all-h3-cc.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-libretech-all-h3-it.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-libretech-all-h5-cc.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2-v1.1.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo-plus2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo-core2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-r1s-h5.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2-v1.1.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2-v1.1.dts new file mode 100644 -index 000000000000..06ffbbd29a93 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2-v1.1.dts @@ -0,0 +1,180 @@ @@ -208,5 +194,5 @@ index 000000000000..06ffbbd29a93 + status = "okay"; +}; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-FIXME-a64-olinuxino-add-regulator-audio-mmc.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-FIXME-a64-olinuxino-add-regulator-audio-mmc.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-FIXME-a64-olinuxino-add-regulator-audio-mmc.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-FIXME-a64-olinuxino-add-regulator-audio-mmc.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-add-sun50i-h618-cpu-dvfs.dtsi.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-add-sun50i-h618-cpu-dvfs.dtsi.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-add-sun50i-h618-cpu-dvfs.dtsi.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-add-sun50i-h618-cpu-dvfs.dtsi.patch index 234d4da0d..e04a6edd7 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-add-sun50i-h618-cpu-dvfs.dtsi.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-add-sun50i-h618-cpu-dvfs.dtsi.patch @@ -1,4 +1,4 @@ -From ead3bcfa953eb0248206557e61608a4d686da2ae Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AGM1968 Date: Tue, 23 May 2023 16:43:00 +0000 Subject: arm64: dts: add sun50i-h618-cpu-dvfs.dtsi @@ -9,17 +9,15 @@ Its unused production for kernel v6.10. Signed-off-by: AGM1968 Signed-off-by: The-going <48602507+The-going@users.noreply.github.com> --- - .../allwinner/sun50i-h616-cpu-opp-test.dtsi | 75 +++++++++++++++++++ - .../allwinner/sun50i-h616-orangepi-zero.dtsi | 1 + - .../dts/allwinner/sun50i-h618-cpu-dvfs.dtsi | 64 ++++++++++++++++ - .../allwinner/sun50i-h618-orangepi-zero3.dts | 57 +------------- + arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp-test.dtsi | 75 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi | 1 + + arch/arm64/boot/dts/allwinner/sun50i-h618-cpu-dvfs.dtsi | 64 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts | 57 +------ 4 files changed, 141 insertions(+), 56 deletions(-) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp-test.dtsi - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h618-cpu-dvfs.dtsi diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp-test.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp-test.dtsi new file mode 100644 -index 000000000000..36f2950367c6 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp-test.dtsi @@ -0,0 +1,75 @@ @@ -99,7 +97,7 @@ index 000000000000..36f2950367c6 + operating-points-v2 = <&cpu_opp_table>; +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi -index 0a74672b9825..b0640f8fa2f5 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi @@ -7,6 +7,7 @@ @@ -112,7 +110,7 @@ index 0a74672b9825..b0640f8fa2f5 100644 #include diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-cpu-dvfs.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h618-cpu-dvfs.dtsi new file mode 100644 -index 000000000000..0509e3fb22e2 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-cpu-dvfs.dtsi @@ -0,0 +1,64 @@ @@ -181,7 +179,7 @@ index 000000000000..0509e3fb22e2 + }; +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts -index c51d4d9120de..69493440211f 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts @@ -7,6 +7,7 @@ @@ -192,7 +190,7 @@ index c51d4d9120de..69493440211f 100644 / { model = "OrangePi Zero3"; -@@ -40,62 +41,6 @@ &mmc0 { +@@ -45,62 +46,6 @@ &mmc0 { vmmc-supply = <®_dldo1>; }; @@ -256,5 +254,5 @@ index c51d4d9120de..69493440211f 100644 vcc-pc-supply = <®_dldo1>; vcc-pf-supply = <®_dldo1>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-Add-axp313a.dtsi.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-Add-axp313a.dtsi.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-Add-axp313a.dtsi.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-Add-axp313a.dtsi.patch index 10f57e68c..ecddceeea 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-Add-axp313a.dtsi.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-Add-axp313a.dtsi.patch @@ -1,16 +1,15 @@ -From 1989d73c62ac37fa9130595b0543c0459f77aed5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Sun, 9 Feb 2025 17:52:52 +0300 -Subject: [PATCH] arm64: dts: allwinner: Add axp313a.dtsi +Subject: arm64: dts: allwinner: Add axp313a.dtsi --- - arch/arm64/boot/dts/allwinner/axp313a.dtsi | 64 ++++++++++++++++++++++ + arch/arm64/boot/dts/allwinner/axp313a.dtsi | 64 ++++++++++ 1 file changed, 64 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/axp313a.dtsi diff --git a/arch/arm64/boot/dts/allwinner/axp313a.dtsi b/arch/arm64/boot/dts/allwinner/axp313a.dtsi new file mode 100644 -index 000000000000..99057e975574 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/axp313a.dtsi @@ -0,0 +1,64 @@ @@ -79,5 +78,5 @@ index 000000000000..99057e975574 + }; +}; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h6-Add-AC200-EPHY-nodes.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h6-Add-AC200-EPHY-nodes.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h6-Add-AC200-EPHY-nodes.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h6-Add-AC200-EPHY-nodes.patch index 3a7484ab4..5c6ce11f5 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h6-Add-AC200-EPHY-nodes.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h6-Add-AC200-EPHY-nodes.patch @@ -1,4 +1,4 @@ -From 8022c01f46c79dcc8457e580b784904a24dec9f3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 16 Aug 2019 16:40:20 +0200 Subject: arm64: dts: allwinner: h6: Add AC200 EPHY nodes @@ -17,11 +17,11 @@ connect the MAC and PHY accordingly. Signed-off-by: Jernej Skrabec Signed-off-by: Andre Przywara --- - arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 73 ++++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 73 ++++++++++ 1 file changed, 73 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -index e40772637959..ce39927b27e3 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi @@ -24,6 +24,16 @@ aliases { @@ -41,7 +41,7 @@ index e40772637959..ce39927b27e3 100644 cpus { #address-cells = <1>; #size-cells = <0>; -@@ -346,6 +356,14 @@ ths_calibration: thermal-sensor-calibration@14 { +@@ -347,6 +357,14 @@ ths_calibration: thermal-sensor-calibration@14 { cpu_speed_grade: cpu-speed-grade@1c { reg = <0x1c 0x4>; }; @@ -56,7 +56,7 @@ index e40772637959..ce39927b27e3 100644 }; timer@3009000 { -@@ -401,6 +419,13 @@ ext_rgmii_pins: rgmii-pins { +@@ -402,6 +420,13 @@ ext_rgmii_pins: rgmii-pins { drive-strength = <40>; }; @@ -70,7 +70,7 @@ index e40772637959..ce39927b27e3 100644 hdmi_pins: hdmi-pins { pins = "PH8", "PH9", "PH10"; function = "hdmi"; -@@ -421,6 +446,12 @@ i2c2_pins: i2c2-pins { +@@ -422,6 +447,12 @@ i2c2_pins: i2c2-pins { function = "i2c2"; }; @@ -83,7 +83,7 @@ index e40772637959..ce39927b27e3 100644 mmc0_pins: mmc0-pins { pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; -@@ -448,6 +479,11 @@ mmc2_pins: mmc2-pins { +@@ -449,6 +480,11 @@ mmc2_pins: mmc2-pins { bias-pull-up; }; @@ -95,7 +95,7 @@ index e40772637959..ce39927b27e3 100644 /omit-if-no-ref/ spi0_pins: spi0-pins { pins = "PC0", "PC2", "PC3"; -@@ -660,6 +696,43 @@ i2c2: i2c@5002800 { +@@ -661,6 +697,43 @@ i2c2: i2c@5002800 { #size-cells = <0>; }; @@ -140,5 +140,5 @@ index e40772637959..ce39927b27e3 100644 compatible = "allwinner,sun50i-h6-spi", "allwinner,sun8i-h3-spi"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h6-add-AC200-codec-nodes.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h6-add-AC200-codec-nodes.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h6-add-AC200-codec-nodes.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h6-add-AC200-codec-nodes.patch index 993acae27..d2e4ba368 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h6-add-AC200-codec-nodes.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h6-add-AC200-codec-nodes.patch @@ -1,15 +1,15 @@ -From 4cc61081f4976fe099e43da801811e3756f870be Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Thu, 1 Sep 2022 17:45:03 +0200 Subject: arm64: dts: allwinner: h6: add AC200 codec nodes Signed-off-by: Jernej Skrabec --- - arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 42 ++++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 42 ++++++++++ 1 file changed, 42 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -index ce39927b27e3..ccc771600042 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi @@ -24,6 +24,22 @@ aliases { @@ -35,7 +35,7 @@ index ce39927b27e3..ccc771600042 100644 ac200_pwm_clk: ac200_clk { compatible = "pwm-clock"; #clock-cells = <0>; -@@ -452,6 +468,11 @@ i2c3_pins: i2c3-pins { +@@ -453,6 +469,11 @@ i2c3_pins: i2c3-pins { bias-pull-up; }; @@ -47,7 +47,7 @@ index ce39927b27e3..ccc771600042 100644 mmc0_pins: mmc0-pins { pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5"; -@@ -730,6 +751,12 @@ ac200_ephy_ctl: syscon { +@@ -731,6 +752,12 @@ ac200_ephy_ctl: syscon { phy-mode = "rmii"; status = "disabled"; }; @@ -60,7 +60,7 @@ index ce39927b27e3..ccc771600042 100644 }; }; -@@ -787,6 +814,21 @@ mdio: mdio { +@@ -788,6 +815,21 @@ mdio: mdio { }; }; @@ -83,5 +83,5 @@ index ce39927b27e3..ccc771600042 100644 #sound-dai-cells = <0>; compatible = "allwinner,sun50i-h6-i2s"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h6-enable-AC200-codec.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h6-enable-AC200-codec.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h6-enable-AC200-codec.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h6-enable-AC200-codec.patch index 60340891d..0284d0104 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h6-enable-AC200-codec.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h6-enable-AC200-codec.patch @@ -1,4 +1,4 @@ -From bf158ec720514f6b714ae71cb95d5792fdbc411d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Thu, 1 Sep 2022 17:49:28 +0200 Subject: arm64: dts: allwinner: h6: enable AC200 codec @@ -7,13 +7,13 @@ Enable AC200 analog codec on H6 based boards where present. Signed-off-by: Jernej Skrabec --- - .../dts/allwinner/sun50i-h6-orangepi-3.dts | 25 +++++++++++++++++++ - .../boot/dts/allwinner/sun50i-h6-pine-h64.dts | 25 +++++++++++++++++++ - .../allwinner/sun50i-h6-tanix-tx6-mini.dts | 14 +++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts | 25 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts | 25 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6-mini.dts | 14 ++++++ 3 files changed, 64 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts -index 452e72d9583f..c0162e2c4249 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts @@ -104,6 +104,19 @@ wifi_pwrseq: wifi-pwrseq { @@ -36,7 +36,7 @@ index 452e72d9583f..c0162e2c4249 100644 &cpu0 { cpu-supply = <®_dcdca>; }; -@@ -133,6 +146,14 @@ &i2s1 { +@@ -129,6 +142,14 @@ &gpu { status = "okay"; }; @@ -63,7 +63,7 @@ index 452e72d9583f..c0162e2c4249 100644 status = "okay"; }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts -index cb7231b386cd..e4796586dc79 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts @@ -93,6 +93,19 @@ &dwc3 { @@ -113,7 +113,7 @@ index cb7231b386cd..e4796586dc79 100644 status = "okay"; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6-mini.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6-mini.dts -index 08d84160d88f..931e8b99fd93 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6-mini.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6-mini.dts @@ -10,6 +10,20 @@ / { @@ -138,5 +138,5 @@ index 08d84160d88f..931e8b99fd93 100644 linux,rc-map-name = "rc-tanix-tx3mini"; }; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h6-tanix-enable-Ethernet.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h6-tanix-enable-Ethernet.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h6-tanix-enable-Ethernet.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h6-tanix-enable-Ethernet.patch index eed6ca0c7..63d38017a 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h6-tanix-enable-Ethernet.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h6-tanix-enable-Ethernet.patch @@ -1,4 +1,4 @@ -From 7c87d7c71b5d5982bdcf592fe12fb851c30d54de Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sat, 24 Aug 2019 01:03:05 +0200 Subject: arm64: dts: allwinner: h6: tanix: enable Ethernet @@ -12,11 +12,11 @@ and enabling the integrated PHY. Signed-off-by: Jernej Skrabec Signed-off-by: Andre Przywara --- - .../boot/dts/allwinner/sun50i-h6-tanix.dtsi | 38 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi | 38 ++++++++++ 1 file changed, 38 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi -index bb7de37c0d58..a660ef85100e 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-tanix.dtsi @@ -10,6 +10,7 @@ @@ -93,5 +93,5 @@ index bb7de37c0d58..a660ef85100e 100644 status = "okay"; }; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h616-orangepi-zero2-Enable-expansion-board-.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h616-orangepi-zero2-Enable-expansion-board-.patch similarity index 78% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h616-orangepi-zero2-Enable-expansion-board-.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h616-orangepi-zero2-Enable-expansion-board-.patch index 9dbb3d8c2..e2123571c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-h616-orangepi-zero2-Enable-expansion-board-.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-h616-orangepi-zero2-Enable-expansion-board-.patch @@ -1,4 +1,4 @@ -From 7e7c505713145cd6e7543b86f27e9c1c7b4a74e5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Dzieko=C5=84ski?= Date: Sun, 28 May 2023 00:26:43 +0000 @@ -7,14 +7,14 @@ Subject: arm64: dts: allwinner: h616 orangepi zero2: Enable expansion board Signed-off-by: Michal Dziekonski --- - .../dts/allwinner/sun50i-h616-orangepi-zero.dtsi | 15 +++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi | 15 ++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi -index b6d5bb05ad5a..4ba536887d7a 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi -@@ -72,6 +72,13 @@ &ehci1 { +@@ -87,6 +87,13 @@ &ehci1 { }; /* USB 2 & 3 are on headers only. */ @@ -28,7 +28,7 @@ index b6d5bb05ad5a..4ba536887d7a 100644 &emac0 { pinctrl-names = "default"; -@@ -102,6 +109,14 @@ &ohci1 { +@@ -123,6 +130,14 @@ &ohci1 { status = "okay"; }; @@ -44,5 +44,5 @@ index b6d5bb05ad5a..4ba536887d7a 100644 status = "okay"; pinctrl-names = "default"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch index a8aab2d48..0b94b1958 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch @@ -1,121 +1,62 @@ -From a5de8971554d5cd8ff1bb665d7e5c58087a7f1a8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 13:02:10 +0300 Subject: arm64:dts:allwinner:overlay: Add Overlays for sunxi64 --- - arch/arm64/boot/dts/allwinner/Makefile | 2 + - .../arm64/boot/dts/allwinner/overlay/Makefile | 58 ++++ - .../overlay/README.sun50i-a64-overlays | 196 ++++++++++++++ - .../overlay/README.sun50i-h5-overlays | 250 ++++++++++++++++++ - .../overlay/sun50i-a64-fixup.scr-cmd | 95 +++++++ - .../allwinner/overlay/sun50i-a64-i2c0.dtso | 32 +++ - .../allwinner/overlay/sun50i-a64-i2c1.dtso | 22 ++ - .../overlay/sun50i-a64-pps-gpio.dtso | 29 ++ - .../overlay/sun50i-a64-spi-add-cs1.dtso | 41 +++ - .../overlay/sun50i-a64-spi-jedec-nor.dtso | 34 +++ - .../overlay/sun50i-a64-spi-spidev.dtso | 42 +++ - .../allwinner/overlay/sun50i-a64-uart1.dtso | 22 ++ - .../allwinner/overlay/sun50i-a64-uart2.dtso | 37 +++ - .../allwinner/overlay/sun50i-a64-uart3.dtso | 32 +++ - .../allwinner/overlay/sun50i-a64-uart4.dtso | 37 +++ - .../allwinner/overlay/sun50i-a64-w1-gpio.dtso | 29 ++ - .../overlay/sun50i-h5-analog-codec.dtso | 17 ++ - .../dts/allwinner/overlay/sun50i-h5-cir.dtso | 15 ++ - .../allwinner/overlay/sun50i-h5-fixup.scr-cmd | 110 ++++++++ - .../dts/allwinner/overlay/sun50i-h5-i2c0.dtso | 20 ++ - .../dts/allwinner/overlay/sun50i-h5-i2c1.dtso | 20 ++ - .../dts/allwinner/overlay/sun50i-h5-i2c2.dtso | 20 ++ - .../allwinner/overlay/sun50i-h5-pps-gpio.dtso | 29 ++ - .../dts/allwinner/overlay/sun50i-h5-pwm.dtso | 39 +++ - .../overlay/sun50i-h5-spdif-out.dtso | 38 +++ - .../overlay/sun50i-h5-spi-add-cs1.dtso | 41 +++ - .../overlay/sun50i-h5-spi-jedec-nor.dtso | 42 +++ - .../overlay/sun50i-h5-spi-spidev.dtso | 42 +++ - .../allwinner/overlay/sun50i-h5-uart1.dtso | 22 ++ - .../allwinner/overlay/sun50i-h5-uart2.dtso | 32 +++ - .../allwinner/overlay/sun50i-h5-uart3.dtso | 32 +++ - .../allwinner/overlay/sun50i-h5-usbhost0.dtso | 27 ++ - .../allwinner/overlay/sun50i-h5-usbhost1.dtso | 27 ++ - .../allwinner/overlay/sun50i-h5-usbhost2.dtso | 27 ++ - .../allwinner/overlay/sun50i-h5-usbhost3.dtso | 27 ++ - .../allwinner/overlay/sun50i-h5-w1-gpio.dtso | 29 ++ - .../allwinner/overlay/sun50i-h6-fixup.scr-cmd | 110 ++++++++ - .../dts/allwinner/overlay/sun50i-h6-i2c0.dtso | 20 ++ - .../dts/allwinner/overlay/sun50i-h6-i2c1.dtso | 20 ++ - .../dts/allwinner/overlay/sun50i-h6-i2c2.dtso | 20 ++ - .../allwinner/overlay/sun50i-h6-ruart.dtso | 13 + - .../overlay/sun50i-h6-spi-add-cs1.dtso | 41 +++ - .../overlay/sun50i-h6-spi-jedec-nor.dtso | 42 +++ - .../overlay/sun50i-h6-spi-spidev.dtso | 42 +++ - .../overlay/sun50i-h6-spi-spidev1.dtso | 30 +++ - .../allwinner/overlay/sun50i-h6-uart1.dtso | 22 ++ - .../allwinner/overlay/sun50i-h6-uart2.dtso | 32 +++ - .../allwinner/overlay/sun50i-h6-uart3.dtso | 32 +++ - .../allwinner/overlay/sun50i-h6-w1-gpio.dtso | 29 ++ - 49 files changed, 2067 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/Makefile - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-fixup.scr-cmd - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c0.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pps-gpio.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-add-cs1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-jedec-nor.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-spidev.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart2.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart3.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart4.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-w1-gpio.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-analog-codec.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cir.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-fixup.scr-cmd - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c0.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c2.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pps-gpio.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pwm.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spdif-out.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-add-cs1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-jedec-nor.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-spidev.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart2.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart3.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost0.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost2.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost3.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-w1-gpio.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c0.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c2.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-ruart.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-add-cs1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-jedec-nor.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart2.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart3.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-w1-gpio.dtso + arch/arm64/boot/dts/allwinner/overlay/Makefile | 58 +++ + arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays | 196 ++++++++ + arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays | 250 ++++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-fixup.scr-cmd | 95 ++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c0.dtso | 32 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c1.dtso | 22 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pps-gpio.dtso | 29 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-add-cs1.dtso | 41 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-jedec-nor.dtso | 34 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-spidev.dtso | 42 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart1.dtso | 22 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart2.dtso | 37 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart3.dtso | 32 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart4.dtso | 37 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-w1-gpio.dtso | 29 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-analog-codec.dtso | 17 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cir.dtso | 15 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-fixup.scr-cmd | 110 ++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c0.dtso | 20 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c1.dtso | 20 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c2.dtso | 20 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pps-gpio.dtso | 29 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pwm.dtso | 39 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spdif-out.dtso | 38 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-add-cs1.dtso | 41 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-jedec-nor.dtso | 42 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-spidev.dtso | 42 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart1.dtso | 22 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart2.dtso | 32 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart3.dtso | 32 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost0.dtso | 27 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost1.dtso | 27 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost2.dtso | 27 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost3.dtso | 27 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-w1-gpio.dtso | 29 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd | 110 ++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c0.dtso | 20 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c1.dtso | 20 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c2.dtso | 20 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-ruart.dtso | 13 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-add-cs1.dtso | 41 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-jedec-nor.dtso | 42 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev.dtso | 42 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev1.dtso | 30 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart1.dtso | 22 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart2.dtso | 32 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart3.dtso | 32 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-w1-gpio.dtso | 29 ++ + 48 files changed, 2065 insertions(+) -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 9d37a0f1ac28..144a606e507f 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -62,3 +62,5 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h700-anbernic-rg35xx-sp.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun55i-a527-cubie-a5e.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun55i-h728-x96qpro+.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun55i-t527-avaota-a1.dtb -+ -+subdir-y := $(dts-dirs) overlay diff --git a/arch/arm64/boot/dts/allwinner/overlay/Makefile b/arch/arm64/boot/dts/allwinner/overlay/Makefile new file mode 100644 -index 000000000000..ae404a5258a9 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/Makefile @@ -0,0 +1,58 @@ @@ -179,7 +120,7 @@ index 000000000000..ae404a5258a9 +clean-files := *.dtbo *.scr diff --git a/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays b/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays new file mode 100644 -index 000000000000..cd9dbc686412 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays @@ -0,0 +1,196 @@ @@ -381,7 +322,7 @@ index 000000000000..cd9dbc686412 + or long wires - please use external pull-up resistor instead diff --git a/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays b/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays new file mode 100644 -index 000000000000..1ac7fbcf62d1 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays @@ -0,0 +1,250 @@ @@ -637,7 +578,7 @@ index 000000000000..1ac7fbcf62d1 + or long wires - please use external pull-up resistor instead diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-fixup.scr-cmd b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-fixup.scr-cmd new file mode 100644 -index 000000000000..9b34c05ecf18 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-fixup.scr-cmd @@ -0,0 +1,95 @@ @@ -738,7 +679,7 @@ index 000000000000..9b34c05ecf18 +fi diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c0.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c0.dtso new file mode 100644 -index 000000000000..37bdb2c2fae3 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c0.dtso @@ -0,0 +1,32 @@ @@ -776,7 +717,7 @@ index 000000000000..37bdb2c2fae3 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c1.dtso new file mode 100644 -index 000000000000..b2483c9cd7b2 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-i2c1.dtso @@ -0,0 +1,22 @@ @@ -804,7 +745,7 @@ index 000000000000..b2483c9cd7b2 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pps-gpio.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pps-gpio.dtso new file mode 100644 -index 000000000000..5fa161c4718e +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pps-gpio.dtso @@ -0,0 +1,29 @@ @@ -839,7 +780,7 @@ index 000000000000..5fa161c4718e +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-add-cs1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-add-cs1.dtso new file mode 100644 -index 000000000000..4432aac51f2e +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-add-cs1.dtso @@ -0,0 +1,41 @@ @@ -886,7 +827,7 @@ index 000000000000..4432aac51f2e +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-jedec-nor.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-jedec-nor.dtso new file mode 100644 -index 000000000000..31d73e572281 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-jedec-nor.dtso @@ -0,0 +1,34 @@ @@ -926,7 +867,7 @@ index 000000000000..31d73e572281 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-spidev.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-spidev.dtso new file mode 100644 -index 000000000000..84a435b79bee +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-spi-spidev.dtso @@ -0,0 +1,42 @@ @@ -974,7 +915,7 @@ index 000000000000..84a435b79bee +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart1.dtso new file mode 100644 -index 000000000000..4d8dac1a59cb +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart1.dtso @@ -0,0 +1,22 @@ @@ -1002,7 +943,7 @@ index 000000000000..4d8dac1a59cb +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart2.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart2.dtso new file mode 100644 -index 000000000000..7286d7360df1 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart2.dtso @@ -0,0 +1,37 @@ @@ -1045,7 +986,7 @@ index 000000000000..7286d7360df1 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart3.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart3.dtso new file mode 100644 -index 000000000000..c5729b9d2568 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart3.dtso @@ -0,0 +1,32 @@ @@ -1083,7 +1024,7 @@ index 000000000000..c5729b9d2568 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart4.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart4.dtso new file mode 100644 -index 000000000000..21c9b738aa93 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-uart4.dtso @@ -0,0 +1,37 @@ @@ -1126,7 +1067,7 @@ index 000000000000..21c9b738aa93 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-w1-gpio.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-w1-gpio.dtso new file mode 100644 -index 000000000000..d230469135de +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-w1-gpio.dtso @@ -0,0 +1,29 @@ @@ -1161,7 +1102,7 @@ index 000000000000..d230469135de +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-analog-codec.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-analog-codec.dtso new file mode 100644 -index 000000000000..aaa66d5e7ca1 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-analog-codec.dtso @@ -0,0 +1,17 @@ @@ -1184,7 +1125,7 @@ index 000000000000..aaa66d5e7ca1 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cir.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cir.dtso new file mode 100644 -index 000000000000..90c264a0ab78 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cir.dtso @@ -0,0 +1,15 @@ @@ -1205,7 +1146,7 @@ index 000000000000..90c264a0ab78 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-fixup.scr-cmd b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-fixup.scr-cmd new file mode 100644 -index 000000000000..7abb64d84a8a +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-fixup.scr-cmd @@ -0,0 +1,110 @@ @@ -1321,7 +1262,7 @@ index 000000000000..7abb64d84a8a +fi diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c0.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c0.dtso new file mode 100644 -index 000000000000..87fbd7e51a11 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c0.dtso @@ -0,0 +1,20 @@ @@ -1347,7 +1288,7 @@ index 000000000000..87fbd7e51a11 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c1.dtso new file mode 100644 -index 000000000000..6008b9a0853e +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c1.dtso @@ -0,0 +1,20 @@ @@ -1373,7 +1314,7 @@ index 000000000000..6008b9a0853e +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c2.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c2.dtso new file mode 100644 -index 000000000000..2980dbf34300 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-i2c2.dtso @@ -0,0 +1,20 @@ @@ -1399,7 +1340,7 @@ index 000000000000..2980dbf34300 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pps-gpio.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pps-gpio.dtso new file mode 100644 -index 000000000000..46e067562e3d +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pps-gpio.dtso @@ -0,0 +1,29 @@ @@ -1434,7 +1375,7 @@ index 000000000000..46e067562e3d +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pwm.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pwm.dtso new file mode 100644 -index 000000000000..6d12e8420de9 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-pwm.dtso @@ -0,0 +1,39 @@ @@ -1479,7 +1420,7 @@ index 000000000000..6d12e8420de9 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spdif-out.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spdif-out.dtso new file mode 100644 -index 000000000000..65bc51b0218e +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spdif-out.dtso @@ -0,0 +1,38 @@ @@ -1523,7 +1464,7 @@ index 000000000000..65bc51b0218e +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-add-cs1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-add-cs1.dtso new file mode 100644 -index 000000000000..8e3eab295f49 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-add-cs1.dtso @@ -0,0 +1,41 @@ @@ -1570,7 +1511,7 @@ index 000000000000..8e3eab295f49 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-jedec-nor.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-jedec-nor.dtso new file mode 100644 -index 000000000000..5a45808c11a5 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-jedec-nor.dtso @@ -0,0 +1,42 @@ @@ -1618,7 +1559,7 @@ index 000000000000..5a45808c11a5 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-spidev.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-spidev.dtso new file mode 100644 -index 000000000000..69a14b2c60e4 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-spi-spidev.dtso @@ -0,0 +1,42 @@ @@ -1666,7 +1607,7 @@ index 000000000000..69a14b2c60e4 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart1.dtso new file mode 100644 -index 000000000000..92e3eb4d9b66 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart1.dtso @@ -0,0 +1,22 @@ @@ -1694,7 +1635,7 @@ index 000000000000..92e3eb4d9b66 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart2.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart2.dtso new file mode 100644 -index 000000000000..92bee1a9600a +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart2.dtso @@ -0,0 +1,32 @@ @@ -1732,7 +1673,7 @@ index 000000000000..92bee1a9600a +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart3.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart3.dtso new file mode 100644 -index 000000000000..a2197f1668fb +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-uart3.dtso @@ -0,0 +1,32 @@ @@ -1770,7 +1711,7 @@ index 000000000000..a2197f1668fb +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost0.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost0.dtso new file mode 100644 -index 000000000000..c1d79c232fa4 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost0.dtso @@ -0,0 +1,27 @@ @@ -1803,7 +1744,7 @@ index 000000000000..c1d79c232fa4 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost1.dtso new file mode 100644 -index 000000000000..2b4f245bf297 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost1.dtso @@ -0,0 +1,27 @@ @@ -1836,7 +1777,7 @@ index 000000000000..2b4f245bf297 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost2.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost2.dtso new file mode 100644 -index 000000000000..54800e729538 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost2.dtso @@ -0,0 +1,27 @@ @@ -1869,7 +1810,7 @@ index 000000000000..54800e729538 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost3.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost3.dtso new file mode 100644 -index 000000000000..a99524ea38f3 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-usbhost3.dtso @@ -0,0 +1,27 @@ @@ -1902,7 +1843,7 @@ index 000000000000..a99524ea38f3 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-w1-gpio.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-w1-gpio.dtso new file mode 100644 -index 000000000000..6e99626ac660 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-w1-gpio.dtso @@ -0,0 +1,29 @@ @@ -1937,7 +1878,7 @@ index 000000000000..6e99626ac660 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd new file mode 100644 -index 000000000000..d8e79ba4531b +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-fixup.scr-cmd @@ -0,0 +1,110 @@ @@ -2053,7 +1994,7 @@ index 000000000000..d8e79ba4531b +fi diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c0.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c0.dtso new file mode 100644 -index 000000000000..7e7ee8c46e9c +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c0.dtso @@ -0,0 +1,20 @@ @@ -2079,7 +2020,7 @@ index 000000000000..7e7ee8c46e9c +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c1.dtso new file mode 100644 -index 000000000000..111769821262 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c1.dtso @@ -0,0 +1,20 @@ @@ -2105,7 +2046,7 @@ index 000000000000..111769821262 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c2.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c2.dtso new file mode 100644 -index 000000000000..b627529c2144 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-i2c2.dtso @@ -0,0 +1,20 @@ @@ -2131,7 +2072,7 @@ index 000000000000..b627529c2144 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-ruart.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-ruart.dtso new file mode 100644 -index 000000000000..6430cb083370 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-ruart.dtso @@ -0,0 +1,13 @@ @@ -2150,7 +2091,7 @@ index 000000000000..6430cb083370 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-add-cs1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-add-cs1.dtso new file mode 100644 -index 000000000000..0fa060fa1eff +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-add-cs1.dtso @@ -0,0 +1,41 @@ @@ -2197,7 +2138,7 @@ index 000000000000..0fa060fa1eff +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-jedec-nor.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-jedec-nor.dtso new file mode 100644 -index 000000000000..4f81dbb9924c +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-jedec-nor.dtso @@ -0,0 +1,42 @@ @@ -2245,7 +2186,7 @@ index 000000000000..4f81dbb9924c +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev.dtso new file mode 100644 -index 000000000000..1f077ea80ae5 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev.dtso @@ -0,0 +1,42 @@ @@ -2293,7 +2234,7 @@ index 000000000000..1f077ea80ae5 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev1.dtso new file mode 100644 -index 000000000000..5e6b70530fae +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-spi-spidev1.dtso @@ -0,0 +1,30 @@ @@ -2329,7 +2270,7 @@ index 000000000000..5e6b70530fae +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart1.dtso new file mode 100644 -index 000000000000..44aa94efdad1 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart1.dtso @@ -0,0 +1,22 @@ @@ -2357,7 +2298,7 @@ index 000000000000..44aa94efdad1 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart2.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart2.dtso new file mode 100644 -index 000000000000..bf9174bcd2e6 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart2.dtso @@ -0,0 +1,32 @@ @@ -2395,7 +2336,7 @@ index 000000000000..bf9174bcd2e6 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart3.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart3.dtso new file mode 100644 -index 000000000000..418edc14a0e4 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-uart3.dtso @@ -0,0 +1,32 @@ @@ -2433,7 +2374,7 @@ index 000000000000..418edc14a0e4 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-w1-gpio.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-w1-gpio.dtso new file mode 100644 -index 000000000000..3043c87780e4 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h6-w1-gpio.dtso @@ -0,0 +1,29 @@ @@ -2467,5 +2408,5 @@ index 000000000000..3043c87780e4 + }; +}; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-sun50i-h6-Fix-H6-emmc.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-sun50i-h6-Fix-H6-emmc.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-sun50i-h6-Fix-H6-emmc.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-sun50i-h6-Fix-H6-emmc.patch index 5a8d9dc55..2f1db5732 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-sun50i-h6-Fix-H6-emmc.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-sun50i-h6-Fix-H6-emmc.patch @@ -1,4 +1,4 @@ -From 60aea9df8e7b65137adb0d8f081576fda5127f5e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ukhellfire Date: Fri, 25 Mar 2022 07:10:57 +0000 Subject: arm64: dts/allwinner/sun50i-h6: Fix H6 emmc @@ -8,10 +8,10 @@ Subject: arm64: dts/allwinner/sun50i-h6: Fix H6 emmc 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -index 58f47a426f7e..e40772637959 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -@@ -559,8 +559,7 @@ mmc1: mmc@4021000 { +@@ -560,8 +560,7 @@ mmc1: mmc@4021000 { }; mmc2: mmc@4022000 { @@ -22,5 +22,5 @@ index 58f47a426f7e..e40772637959 100644 clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>; clock-names = "ahb", "mmc"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-sun50i-h616-Add-VPU-node.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-sun50i-h616-Add-VPU-node.patch similarity index 79% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-sun50i-h616-Add-VPU-node.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-sun50i-h616-Add-VPU-node.patch index f6a641398..f6392f77a 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-allwinner-sun50i-h616-Add-VPU-node.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-allwinner-sun50i-h616-Add-VPU-node.patch @@ -1,18 +1,18 @@ -From 3561685a36bdb6cba7af84f303e068b8448bf652 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 15 Oct 2021 21:14:55 +0200 Subject: arm64:dts:allwinner: sun50i-h616 Add VPU node Signed-off-by: Jernej Skrabec --- - .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 24 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 24 ++++++++++ 1 file changed, 24 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index 8a3ee8ecf671..6d1ed00375bc 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -@@ -175,6 +175,17 @@ crypto: crypto@1904000 { +@@ -260,6 +260,17 @@ crypto: crypto@1904000 { resets = <&ccu RST_BUS_CE>; }; @@ -30,9 +30,9 @@ index 8a3ee8ecf671..6d1ed00375bc 100644 syscon: syscon@3000000 { compatible = "allwinner,sun50i-h616-system-control"; reg = <0x03000000 0x1000>; -@@ -189,6 +200,19 @@ sram_c: sram@28000 { - #size-cells = <1>; - ranges = <0 0x00028000 0x30000>; +@@ -280,6 +291,19 @@ de3_sram: sram-section@0 { + reg = <0x0000 0x1e000>; + }; }; + + sram_c1: sram@1a00000 { @@ -51,5 +51,5 @@ index 8a3ee8ecf671..6d1ed00375bc 100644 ccu: clock@3001000 { -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-h616-8-Add-overlays-i2c-pwm-uart.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-h616-8-Add-overlays-i2c-pwm-uart.patch similarity index 75% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-h616-8-Add-overlays-i2c-pwm-uart.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-h616-8-Add-overlays-i2c-pwm-uart.patch index eaac21844..c001c1fe3 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-h616-8-Add-overlays-i2c-pwm-uart.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-h616-8-Add-overlays-i2c-pwm-uart.patch @@ -1,4 +1,4 @@ -From a59cb6bd62351166ac38d070c12cfb7dfeff411e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Thu, 10 Apr 2025 21:46:22 +0300 Subject: arm64: dts: h616(8): Add overlays i2c, pwm, uart @@ -6,62 +6,38 @@ Subject: arm64: dts: h616(8): Add overlays i2c, pwm, uart Signed-off-by: The-going <48602507+The-going@users.noreply.github.com> Signed-off-by: Exodus --- - .../arm64/boot/dts/allwinner/overlay/Makefile | 24 +++++++++++++++++++ - .../overlay/sun50i-h616-i2c2-ph.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-i2c3-pg.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-i2c3-ph.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-i2c4-pg.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-i2c4-ph.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-pwm1-ph3.dtso | 22 +++++++++++++++++ - .../overlay/sun50i-h616-pwm1-pi11.dtso | 22 +++++++++++++++++ - .../overlay/sun50i-h616-pwm2-ph2.dtso | 22 +++++++++++++++++ - .../overlay/sun50i-h616-pwm2-pi12.dtso | 22 +++++++++++++++++ - .../overlay/sun50i-h616-pwm3-ph0.dtso | 22 +++++++++++++++++ - .../overlay/sun50i-h616-pwm3-pi13.dtso | 22 +++++++++++++++++ - .../overlay/sun50i-h616-pwm4-ph1.dtso | 20 ++++++++++++++++ - .../overlay/sun50i-h616-pwm4-pi14.dtso | 20 ++++++++++++++++ - .../overlay/sun50i-h616-uart2-pg-rts-cts.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-uart2-pg.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-uart2-ph-rts-cts.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-uart2-ph.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-uart2-pi-rts-cts.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-uart2-pi.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-uart3-pi-rts-cts.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-uart3-pi.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-uart4-pi-rts-cts.dtso | 15 ++++++++++++ - .../overlay/sun50i-h616-uart4-pi.dtso | 15 ++++++++++++ - .../allwinner/overlay/sun50i-h616-uart5.dtso | 15 ++++++++++++ + arch/arm64/boot/dts/allwinner/overlay/Makefile | 24 ++++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2-ph.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3-pg.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3-ph.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4-pg.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4-ph.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm1-ph3.dtso | 22 +++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm1-pi11.dtso | 22 +++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm2-ph2.dtso | 22 +++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm2-pi12.dtso | 22 +++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm3-ph0.dtso | 22 +++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm3-pi13.dtso | 22 +++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm4-ph1.dtso | 20 ++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm4-pi14.dtso | 20 ++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pg-rts-cts.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pg.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-ph-rts-cts.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-ph.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pi-rts-cts.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pi.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart3-pi-rts-cts.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart3-pi.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart4-pi-rts-cts.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart4-pi.dtso | 15 ++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart5.dtso | 15 ++++++ 25 files changed, 436 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2-ph.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3-pg.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3-ph.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4-pg.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4-ph.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm1-ph3.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm1-pi11.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm2-ph2.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm2-pi12.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm3-ph0.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm3-pi13.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm4-ph1.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm4-pi14.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pg-rts-cts.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pg.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-ph-rts-cts.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-ph.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pi-rts-cts.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pi.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart3-pi-rts-cts.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart3-pi.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart4-pi-rts-cts.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart4-pi.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart5.dtso diff --git a/arch/arm64/boot/dts/allwinner/overlay/Makefile b/arch/arm64/boot/dts/allwinner/overlay/Makefile -index 84711585fc86..ce40c7ec5a8c 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/overlay/Makefile +++ b/arch/arm64/boot/dts/allwinner/overlay/Makefile -@@ -49,6 +49,30 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ +@@ -48,6 +48,30 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ sun50i-h6-uart2.dtbo \ sun50i-h6-uart3.dtbo \ sun50i-h6-w1-gpio.dtbo \ @@ -94,7 +70,7 @@ index 84711585fc86..ce40c7ec5a8c 100644 sun50i-h616-spidev1_0.dtbo \ diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2-ph.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2-ph.dtso new file mode 100644 -index 000000000000..c545c4dfa053 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c2-ph.dtso @@ -0,0 +1,15 @@ @@ -115,7 +91,7 @@ index 000000000000..c545c4dfa053 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3-pg.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3-pg.dtso new file mode 100644 -index 000000000000..08577d91fed9 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3-pg.dtso @@ -0,0 +1,15 @@ @@ -136,7 +112,7 @@ index 000000000000..08577d91fed9 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3-ph.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3-ph.dtso new file mode 100644 -index 000000000000..b09fa6d179f1 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c3-ph.dtso @@ -0,0 +1,15 @@ @@ -157,7 +133,7 @@ index 000000000000..b09fa6d179f1 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4-pg.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4-pg.dtso new file mode 100644 -index 000000000000..2f6f3124357c +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4-pg.dtso @@ -0,0 +1,15 @@ @@ -178,7 +154,7 @@ index 000000000000..2f6f3124357c +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4-ph.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4-ph.dtso new file mode 100644 -index 000000000000..951a1a79530c +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-i2c4-ph.dtso @@ -0,0 +1,15 @@ @@ -199,7 +175,7 @@ index 000000000000..951a1a79530c +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm1-ph3.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm1-ph3.dtso new file mode 100644 -index 000000000000..95c360feb3ea +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm1-ph3.dtso @@ -0,0 +1,22 @@ @@ -227,7 +203,7 @@ index 000000000000..95c360feb3ea +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm1-pi11.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm1-pi11.dtso new file mode 100644 -index 000000000000..39c9b31f61eb +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm1-pi11.dtso @@ -0,0 +1,22 @@ @@ -255,7 +231,7 @@ index 000000000000..39c9b31f61eb +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm2-ph2.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm2-ph2.dtso new file mode 100644 -index 000000000000..4ba8dc968741 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm2-ph2.dtso @@ -0,0 +1,22 @@ @@ -283,7 +259,7 @@ index 000000000000..4ba8dc968741 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm2-pi12.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm2-pi12.dtso new file mode 100644 -index 000000000000..a23c45c9bda7 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm2-pi12.dtso @@ -0,0 +1,22 @@ @@ -311,7 +287,7 @@ index 000000000000..a23c45c9bda7 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm3-ph0.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm3-ph0.dtso new file mode 100644 -index 000000000000..029dff6202bb +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm3-ph0.dtso @@ -0,0 +1,22 @@ @@ -339,7 +315,7 @@ index 000000000000..029dff6202bb +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm3-pi13.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm3-pi13.dtso new file mode 100644 -index 000000000000..e6645573aae5 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm3-pi13.dtso @@ -0,0 +1,22 @@ @@ -367,7 +343,7 @@ index 000000000000..e6645573aae5 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm4-ph1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm4-ph1.dtso new file mode 100644 -index 000000000000..381a3db48cba +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm4-ph1.dtso @@ -0,0 +1,20 @@ @@ -393,7 +369,7 @@ index 000000000000..381a3db48cba +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm4-pi14.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm4-pi14.dtso new file mode 100644 -index 000000000000..47302a13a7bf +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-pwm4-pi14.dtso @@ -0,0 +1,20 @@ @@ -419,7 +395,7 @@ index 000000000000..47302a13a7bf +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pg-rts-cts.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pg-rts-cts.dtso new file mode 100644 -index 000000000000..7cee4ebec233 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pg-rts-cts.dtso @@ -0,0 +1,15 @@ @@ -440,7 +416,7 @@ index 000000000000..7cee4ebec233 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pg.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pg.dtso new file mode 100644 -index 000000000000..298cb56023a1 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pg.dtso @@ -0,0 +1,15 @@ @@ -461,7 +437,7 @@ index 000000000000..298cb56023a1 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-ph-rts-cts.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-ph-rts-cts.dtso new file mode 100644 -index 000000000000..66193cde7526 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-ph-rts-cts.dtso @@ -0,0 +1,15 @@ @@ -482,7 +458,7 @@ index 000000000000..66193cde7526 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-ph.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-ph.dtso new file mode 100644 -index 000000000000..438af7517b5a +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-ph.dtso @@ -0,0 +1,15 @@ @@ -503,7 +479,7 @@ index 000000000000..438af7517b5a +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pi-rts-cts.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pi-rts-cts.dtso new file mode 100644 -index 000000000000..f7426899b938 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pi-rts-cts.dtso @@ -0,0 +1,15 @@ @@ -524,7 +500,7 @@ index 000000000000..f7426899b938 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pi.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pi.dtso new file mode 100644 -index 000000000000..8e816a05fb42 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart2-pi.dtso @@ -0,0 +1,15 @@ @@ -545,7 +521,7 @@ index 000000000000..8e816a05fb42 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart3-pi-rts-cts.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart3-pi-rts-cts.dtso new file mode 100644 -index 000000000000..55db4644693d +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart3-pi-rts-cts.dtso @@ -0,0 +1,15 @@ @@ -566,7 +542,7 @@ index 000000000000..55db4644693d +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart3-pi.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart3-pi.dtso new file mode 100644 -index 000000000000..e75292e67b7c +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart3-pi.dtso @@ -0,0 +1,15 @@ @@ -587,7 +563,7 @@ index 000000000000..e75292e67b7c +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart4-pi-rts-cts.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart4-pi-rts-cts.dtso new file mode 100644 -index 000000000000..b4f4d0bda5f6 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart4-pi-rts-cts.dtso @@ -0,0 +1,15 @@ @@ -608,7 +584,7 @@ index 000000000000..b4f4d0bda5f6 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart4-pi.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart4-pi.dtso new file mode 100644 -index 000000000000..21898add0f84 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart4-pi.dtso @@ -0,0 +1,15 @@ @@ -629,7 +605,7 @@ index 000000000000..21898add0f84 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart5.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart5.dtso new file mode 100644 -index 000000000000..27b4ab085d98 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-uart5.dtso @@ -0,0 +1,15 @@ @@ -649,5 +625,5 @@ index 000000000000..27b4ab085d98 + }; +}; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2-and-zero3.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2-and-zero3.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2-and-zero3.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2-and-zero3.patch index 83f7d2831..a75c1a16f 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2-and-zero3.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2-and-zero3.patch @@ -1,17 +1,17 @@ -From 558ee0b5606d131de95198b99853c568b5ca3a84 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Gunjan Gupta Date: Wed, 13 Dec 2023 19:15:45 +0000 Subject: arm64: dts: h616: add wifi support for orange pi zero 2 and zero3 --- - .../allwinner/sun50i-h616-orangepi-zero.dtsi | 38 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi | 38 ++++++++++ 1 file changed, 38 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi -index 4ba536887d7a..01cf16ee81f9 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi -@@ -60,6 +60,34 @@ reg_usb1_vbus: regulator-usb1-vbus { +@@ -71,6 +71,34 @@ reg_usb1_vbus: regulator-usb1-vbus { gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */ status = "okay"; }; @@ -46,7 +46,7 @@ index 4ba536887d7a..01cf16ee81f9 100644 }; &codec { -@@ -105,6 +133,16 @@ &mmc0 { +@@ -126,6 +154,16 @@ &mmc0 { status = "okay"; }; @@ -64,5 +64,5 @@ index 4ba536887d7a..01cf16ee81f9 100644 status = "okay"; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-nanopi-a64-set-right-phy-mode-to-rgmii-id.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-nanopi-a64-set-right-phy-mode-to-rgmii-id.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-nanopi-a64-set-right-phy-mode-to-rgmii-id.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-nanopi-a64-set-right-phy-mode-to-rgmii-id.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-overlay-sun50i-a64-pine64-7inch-lcd.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-overlay-sun50i-a64-pine64-7inch-lcd.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-overlay-sun50i-a64-pine64-7inch-lcd.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-overlay-sun50i-a64-pine64-7inch-lcd.patch index e09f175d4..f7858145c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-overlay-sun50i-a64-pine64-7inch-lcd.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-overlay-sun50i-a64-pine64-7inch-lcd.patch @@ -1,18 +1,17 @@ -From 4a77c8ac8b0e2b479e81fb817bd05fd59b2788e3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 20:27:02 +0300 Subject: arm64:dts:overlay: sun50i-a64-pine64-7inch-lcd Added to orange-pi-5.9 2020-11-30 --- - .../arm64/boot/dts/allwinner/overlay/Makefile | 1 + - .../overlay/README.sun50i-a64-overlays | 5 ++ - .../overlay/sun50i-a64-pine64-7inch-lcd.dtso | 87 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/overlay/Makefile | 1 + + arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays | 5 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pine64-7inch-lcd.dtso | 87 ++++++++++ 3 files changed, 93 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pine64-7inch-lcd.dtso diff --git a/arch/arm64/boot/dts/allwinner/overlay/Makefile b/arch/arm64/boot/dts/allwinner/overlay/Makefile -index ae404a5258a9..8d5ae3e3beb8 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/overlay/Makefile +++ b/arch/arm64/boot/dts/allwinner/overlay/Makefile @@ -2,6 +2,7 @@ @@ -24,7 +23,7 @@ index ae404a5258a9..8d5ae3e3beb8 100644 sun50i-a64-spi-add-cs1.dtbo \ sun50i-a64-spi-jedec-nor.dtbo \ diff --git a/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays b/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays -index cd9dbc686412..b684c2e3abb1 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays +++ b/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-a64-overlays @@ -20,6 +20,7 @@ on supported boards, so this controller is not supported in provided overlays @@ -48,7 +47,7 @@ index cd9dbc686412..b684c2e3abb1 100644 Activates pulse-per-second GPIO client diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pine64-7inch-lcd.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pine64-7inch-lcd.dtso new file mode 100644 -index 000000000000..34708103fe15 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-a64-pine64-7inch-lcd.dtso @@ -0,0 +1,87 @@ @@ -140,5 +139,5 @@ index 000000000000..34708103fe15 + }; +}; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-overlay-sun50i-h5-add-gpio-regulator-overclock.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-overlay-sun50i-h5-add-gpio-regulator-overclock.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-overlay-sun50i-h5-add-gpio-regulator-overclock.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-overlay-sun50i-h5-add-gpio-regulator-overclock.patch index 4923538b4..657fa8283 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-overlay-sun50i-h5-add-gpio-regulator-overclock.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-overlay-sun50i-h5-add-gpio-regulator-overclock.patch @@ -1,22 +1,18 @@ -From c5b7968c7a8250669ecf04a0b0804f8d79984925 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 21:01:10 +0300 Subject: arm64:dts:overlay sun50i-h5 add gpio regulator overclock --- - .../arm64/boot/dts/allwinner/overlay/Makefile | 4 ++ - .../sun50i-h5-cpu-clock-1.0GHz-1.1v.dtso | 31 ++++++++++ - .../sun50i-h5-cpu-clock-1.2GHz-1.3v.dtso | 31 ++++++++++ - .../sun50i-h5-cpu-clock-1.3GHz-1.3v.dtso | 61 +++++++++++++++++++ - .../sun50i-h5-gpio-regulator-1.3v.dtso | 38 ++++++++++++ + arch/arm64/boot/dts/allwinner/overlay/Makefile | 4 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.0GHz-1.1v.dtso | 31 +++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.2GHz-1.3v.dtso | 31 +++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.3GHz-1.3v.dtso | 61 ++++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-gpio-regulator-1.3v.dtso | 38 ++++++ 5 files changed, 165 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.0GHz-1.1v.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.2GHz-1.3v.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.3GHz-1.3v.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-gpio-regulator-1.3v.dtso diff --git a/arch/arm64/boot/dts/allwinner/overlay/Makefile b/arch/arm64/boot/dts/allwinner/overlay/Makefile -index 8d5ae3e3beb8..9e3def41669e 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/overlay/Makefile +++ b/arch/arm64/boot/dts/allwinner/overlay/Makefile @@ -14,6 +14,10 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ @@ -32,7 +28,7 @@ index 8d5ae3e3beb8..9e3def41669e 100644 sun50i-h5-i2c2.dtbo \ diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.0GHz-1.1v.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.0GHz-1.1v.dtso new file mode 100644 -index 000000000000..674ec1dcbfe4 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.0GHz-1.1v.dtso @@ -0,0 +1,31 @@ @@ -69,7 +65,7 @@ index 000000000000..674ec1dcbfe4 + diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.2GHz-1.3v.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.2GHz-1.3v.dtso new file mode 100644 -index 000000000000..4fb5c81d31d5 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.2GHz-1.3v.dtso @@ -0,0 +1,31 @@ @@ -106,7 +102,7 @@ index 000000000000..4fb5c81d31d5 + diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.3GHz-1.3v.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.3GHz-1.3v.dtso new file mode 100644 -index 000000000000..9c633973df8b +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-cpu-clock-1.3GHz-1.3v.dtso @@ -0,0 +1,61 @@ @@ -173,7 +169,7 @@ index 000000000000..9c633973df8b + diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-gpio-regulator-1.3v.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-gpio-regulator-1.3v.dtso new file mode 100644 -index 000000000000..8d2755c3d76f +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-gpio-regulator-1.3v.dtso @@ -0,0 +1,38 @@ @@ -216,5 +212,5 @@ index 000000000000..8d2755c3d76f +}; + -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-force-mmc0-bus-width.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-force-mmc0-bus-width.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-force-mmc0-bus-width.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-force-mmc0-bus-width.patch index b64aa8068..f1657d30b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-force-mmc0-bus-width.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-force-mmc0-bus-width.patch @@ -1,4 +1,4 @@ -From 85906a7fbd369ed9a0f6637d1f25eb5ce71d7a4b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Fri, 28 Jan 2022 15:52:48 +0300 Subject: arm64:dts: sun50i-a64 force mmc0 bus-width @@ -8,7 +8,7 @@ Subject: arm64:dts: sun50i-a64 force mmc0 bus-width 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index c4272550580c..b216cd417b15 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi @@ -568,6 +568,7 @@ mmc0: mmc@1c0f000 { @@ -20,5 +20,5 @@ index c4272550580c..b216cd417b15 100644 #size-cells = <0>; }; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-Disable-clock-phase-and-.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-Disable-clock-phase-and-.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-Disable-clock-phase-and-.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-Disable-clock-phase-and-.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-enable-bluetooth.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-enable-bluetooth.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-enable-bluetooth.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-enable-bluetooth.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-olinuxino-add-boards.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-olinuxino-add-boards.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-olinuxino-add-boards.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-olinuxino-add-boards.patch index caf5c497f..9f75a2836 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-olinuxino-add-boards.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-olinuxino-add-boards.patch @@ -1,41 +1,19 @@ -From b94c32c09b848a2b678554a39e81e31cb0ee5ea0 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mitko Gamishev Date: Wed, 5 Feb 2020 15:03:08 +0200 Subject: arm64:dts:sun50i-a64-olinuxino add boards --- - arch/arm64/boot/dts/allwinner/Makefile | 5 + - .../dts/allwinner/sun50i-a64-olinuxino-1G.dts | 362 ++++++++++++++++++ - .../sun50i-a64-olinuxino-1Ge16GW.dts | 20 + - .../allwinner/sun50i-a64-olinuxino-1Ge4GW.dts | 97 +++++ - .../allwinner/sun50i-a64-olinuxino-1Gs16M.dts | 31 ++ - .../allwinner/sun50i-a64-olinuxino-2Ge8G.dts | 25 ++ - 6 files changed, 540 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1G.dts - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Ge16GW.dts - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Ge4GW.dts - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Gs16M.dts - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-2Ge8G.dts + arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1G.dts | 362 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Ge16GW.dts | 20 + + arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Ge4GW.dts | 97 +++ + arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Gs16M.dts | 31 + + arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-2Ge8G.dts | 25 + + 5 files changed, 535 insertions(+) -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 80098fa014ac..3280927df6e0 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -5,6 +5,11 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-oceanic-5205-5inmfd.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino-emmc.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino-1G.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino-1Ge4GW.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino-1Ge16GW.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino-1Gs16M.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino-2Ge8G.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-lts.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1G.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1G.dts new file mode 100644 -index 000000000000..54af704d2c68 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1G.dts @@ -0,0 +1,362 @@ @@ -403,7 +381,7 @@ index 000000000000..54af704d2c68 +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Ge16GW.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Ge16GW.dts new file mode 100644 -index 000000000000..a508d77d2c09 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Ge16GW.dts @@ -0,0 +1,20 @@ @@ -429,7 +407,7 @@ index 000000000000..a508d77d2c09 +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Ge4GW.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Ge4GW.dts new file mode 100644 -index 000000000000..c87ecc6e1d8f +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Ge4GW.dts @@ -0,0 +1,97 @@ @@ -532,7 +510,7 @@ index 000000000000..c87ecc6e1d8f +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Gs16M.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Gs16M.dts new file mode 100644 -index 000000000000..5b85f4d2b05f +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-1Gs16M.dts @@ -0,0 +1,31 @@ @@ -569,7 +547,7 @@ index 000000000000..5b85f4d2b05f +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-2Ge8G.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-2Ge8G.dts new file mode 100644 -index 000000000000..3583c37d3930 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino-2Ge8G.dts @@ -0,0 +1,25 @@ @@ -599,5 +577,5 @@ index 000000000000..3583c37d3930 + status = "okay"; +}; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-olinuxino-emmc-enable-bluetooth.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-olinuxino-emmc-enable-bluetooth.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-olinuxino-emmc-enable-bluetooth.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-olinuxino-emmc-enable-bluetooth.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-orangepi-win-add-aliase-ethernet1.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-orangepi-win-add-aliase-ethernet1.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-orangepi-win-add-aliase-ethernet1.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-orangepi-win-add-aliase-ethernet1.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-pine64-add-spi0.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-pine64-add-spi0.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-pine64-add-spi0.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-pine64-add-spi0.patch index 9e95f946d..09f6ef892 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-pine64-add-spi0.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-pine64-add-spi0.patch @@ -1,14 +1,14 @@ -From ea92626f9272ba51dba6dba2dbc70dc58e5d055e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Tue, 25 Jan 2022 19:10:06 +0300 Subject: arm64:dts: sun50i-a64-pine64 add spi0 --- - .../boot/dts/allwinner/sun50i-a64-pine64.dts | 29 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 29 ++++++++++ 1 file changed, 29 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts -index ab2bf8fc2d91..4b064e4acd2a 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts @@ -344,3 +344,32 @@ &usb_otg { @@ -45,5 +45,5 @@ index ab2bf8fc2d91..4b064e4acd2a 100644 + }; +}; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-pine64-enable-wifi-mmc1.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-pine64-enable-wifi-mmc1.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-pine64-enable-wifi-mmc1.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-pine64-enable-wifi-mmc1.patch index 20d6c7d28..b084c1bb5 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-pine64-enable-wifi-mmc1.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-pine64-enable-wifi-mmc1.patch @@ -1,4 +1,4 @@ -From 315aba156b72f9e93430c8ffda6f02d09bda47d1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Thu, 9 Feb 2017 00:18:56 +0800 Subject: arm64:dts: sun50i-a64-pine64 enable wifi mmc1 @@ -14,7 +14,7 @@ Signed-off-by: Icenowy Zheng 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts -index 1e6c0e2f5dad..ab2bf8fc2d91 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts @@ -35,6 +35,11 @@ hdmi_con_in: endpoint { @@ -43,5 +43,5 @@ index 1e6c0e2f5dad..ab2bf8fc2d91 100644 &ohci0 { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-enable-Bluetooth.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-enable-Bluetooth.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-enable-Bluetooth.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-enable-Bluetooth.patch index 71e784696..29a2745f0 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-enable-Bluetooth.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-enable-Bluetooth.patch @@ -1,4 +1,4 @@ -From 51557cb59db2cf6317ebb3a9ebbf2f808ed71bc7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Vasily Khoruzhick Date: Wed, 31 Oct 2018 20:50:09 -0700 Subject: arm64:dts: sun50i-a64-sopine-baseboard enable Bluetooth @@ -11,11 +11,11 @@ Enable it in the device tree. Signed-off-by: Vasily Khoruzhick --- - .../boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts | 10 +++++++++- + arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts -index 8b6d6ae2a6b2..4b4ea1158734 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts @@ -199,7 +199,15 @@ &uart1 { @@ -36,5 +36,5 @@ index 8b6d6ae2a6b2..4b4ea1158734 100644 /* On Pi-2 connector */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-mmc1-status-okay.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-mmc1-status-okay.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-mmc1-status-okay.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-mmc1-status-okay.patch index 8d5c6bbe9..03105f747 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-mmc1-status-okay.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-mmc1-status-okay.patch @@ -1,4 +1,4 @@ -From efde7c83c1b9f8ea84c13e1eb6511593326aa14b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Vasily Khoruzhick Date: Sun, 3 Dec 2017 11:43:08 -0800 Subject: arm64:dts: sun50i-a64-sopine-baseboard: mmc1: status = "okay" @@ -8,7 +8,7 @@ Subject: arm64:dts: sun50i-a64-sopine-baseboard: mmc1: status = "okay" 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts -index 6a009b06c5bb..8b6d6ae2a6b2 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts @@ -115,7 +115,7 @@ &mmc1 { @@ -21,5 +21,5 @@ index 6a009b06c5bb..8b6d6ae2a6b2 100644 &mmc2 { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64.dtsi-adjust-thermal-trip-points.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64.dtsi-adjust-thermal-trip-points.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-a64.dtsi-adjust-thermal-trip-points.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-a64.dtsi-adjust-thermal-trip-points.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h313-x96q-lpddr3.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h313-x96q-lpddr3.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h313-x96q-lpddr3.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h313-x96q-lpddr3.patch index ef83b5c5c..2e597eb07 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h313-x96q-lpddr3.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h313-x96q-lpddr3.patch @@ -1,4 +1,4 @@ -From 58fa02e703c12f3304f6711fea0d58921391a54a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Sat, 21 Sep 2024 11:28:33 +0300 Subject: arm64: dts: sun50i-h313-x96q-lpddr3 @@ -8,28 +8,13 @@ Add support X96Q TV Box LPDDR3 H313 Author: sicXnull Signed-off-by: The-going <48602507+The-going@users.noreply.github.com> --- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../dts/allwinner/sun50i-h313-cpu-opp.dtsi | 92 ++++++ - .../dts/allwinner/sun50i-h313-x96q-lpddr3.dts | 305 ++++++++++++++++++ - 3 files changed, 398 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h313-cpu-opp.dtsi - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h313-x96q-lpddr3.dts + arch/arm64/boot/dts/allwinner/sun50i-h313-cpu-opp.dtsi | 92 +++ + arch/arm64/boot/dts/allwinner/sun50i-h313-x96q-lpddr3.dts | 305 ++++++++++ + 2 files changed, 397 insertions(+) -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index aedee0882dc9..3f84f24dc82a 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -53,6 +53,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-inovato-quadra.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6-mini.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h313-tanix-tx1.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h313-x96q-lpddr3.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-cb1-manta.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-cb1-sd.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-cb1-emmc.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h313-cpu-opp.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h313-cpu-opp.dtsi new file mode 100644 -index 000000000000..0ad85cf1b393 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h313-cpu-opp.dtsi @@ -0,0 +1,92 @@ @@ -127,7 +112,7 @@ index 000000000000..0ad85cf1b393 +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h313-x96q-lpddr3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h313-x96q-lpddr3.dts new file mode 100644 -index 000000000000..4b1faad0e88c +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h313-x96q-lpddr3.dts @@ -0,0 +1,305 @@ @@ -437,5 +422,5 @@ index 000000000000..4b1faad0e88c +}; + -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-add-cpu-opp-refs.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-add-cpu-opp-refs.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-add-cpu-opp-refs.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-add-cpu-opp-refs.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-add-termal-zones.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-add-termal-zones.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-add-termal-zones.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-add-termal-zones.patch index 0baf66556..1a9d98244 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-add-termal-zones.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-add-termal-zones.patch @@ -1,14 +1,14 @@ -From 635972bcdd65219aaec23d98e1405f8bdf43d3ba Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 21:12:46 +0300 Subject: arm64:dts:sun50i-h5 add termal zones --- - arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi | 66 ++++++++++++++++---- + arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi | 66 ++++++++-- 1 file changed, 54 insertions(+), 12 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi -index a40826c507d0..c211f2825f25 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi @@ -203,31 +203,73 @@ ths: thermal-sensor@1c25000 { @@ -98,5 +98,5 @@ index a40826c507d0..c211f2825f25 100644 }; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-enable-power-button-for-orangepi-prime.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-enable-power-button-for-orangepi-prime.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-enable-power-button-for-orangepi-prime.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-enable-power-button-for-orangepi-prime.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-nanopi-neo2-add-regulator-led-triger.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-nanopi-neo2-add-regulator-led-triger.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-nanopi-neo2-add-regulator-led-triger.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-nanopi-neo2-add-regulator-led-triger.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-nanopi-r1s-h5-add-rtl8153-support.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-nanopi-r1s-h5-add-rtl8153-support.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-nanopi-r1s-h5-add-rtl8153-support.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-nanopi-r1s-h5-add-rtl8153-support.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-orangepi-pc2-add-spi-flash.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-orangepi-pc2-add-spi-flash.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-orangepi-pc2-add-spi-flash.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-orangepi-pc2-add-spi-flash.patch index f2bcc5878..64dff5f11 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-orangepi-pc2-add-spi-flash.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-orangepi-pc2-add-spi-flash.patch @@ -1,14 +1,14 @@ -From 1415de6f04125006c28aca89749a2709fd4294e7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 24 Jan 2022 19:27:52 +0300 Subject: arm64:dts: sun50i-h5-orangepi-pc2 add spi flash --- - .../dts/allwinner/sun50i-h5-orangepi-pc2.dts | 25 ++++++++++++++----- + arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts | 25 +++++++--- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts -index 3d16a6efa2a7..2790d03ca6cd 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts @@ -199,15 +199,28 @@ &sound_hdmi { @@ -47,5 +47,5 @@ index 3d16a6efa2a7..2790d03ca6cd 100644 }; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-regulator.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-regulator.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-regulator.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-regulator.patch index f42da9de0..ed1cf9323 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-regulator.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-regulator.patch @@ -1,14 +1,14 @@ -From c53547f453102a2add3119cc599eda1d3fcb1f4e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 24 Jan 2022 19:34:31 +0300 Subject: arm64:dts: sun50i-h5-orangepi-prime add regulator --- - .../allwinner/sun50i-h5-orangepi-prime.dts | 43 ++++++++++++++++--- + arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts | 43 ++++++++-- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts -index 42d0ffa4a864..0932c817264d 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts @@ -8,11 +8,19 @@ @@ -88,5 +88,5 @@ index 42d0ffa4a864..0932c817264d 100644 &uart0 { pinctrl-names = "default"; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-rtl8723cs.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-rtl8723cs.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-rtl8723cs.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-rtl8723cs.patch index 89884599b..c15c0b4fb 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-rtl8723cs.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-rtl8723cs.patch @@ -1,4 +1,4 @@ -From 8a8d8ca9c2cd5d399cdcce38d2a66ad8dcb5be62 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 7 Feb 2022 19:11:07 +0300 Subject: arm64:dts: sun50i-h5-orangepi-prime add rtl8723cs @@ -8,7 +8,7 @@ Subject: arm64:dts: sun50i-h5-orangepi-prime add rtl8723cs 1 file changed, 5 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts -index 83ca3a354af7..1ec3696115ed 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts @@ -25,6 +25,7 @@ reg_vcc3v3: vcc3v3 { @@ -31,5 +31,5 @@ index 83ca3a354af7..1ec3696115ed 100644 &ohci0 { -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-orangepi-zero-plus-add-regulator.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-orangepi-zero-plus-add-regulator.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h5-orangepi-zero-plus-add-regulator.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h5-orangepi-zero-plus-add-regulator.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-Add-r_uart-uart2-3-pins.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-Add-r_uart-uart2-3-pins.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-Add-r_uart-uart2-3-pins.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-Add-r_uart-uart2-3-pins.patch index 84b34374c..9bb37ee08 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-Add-r_uart-uart2-3-pins.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-Add-r_uart-uart2-3-pins.patch @@ -1,17 +1,17 @@ -From 4b393b56438e7a170b78930bef7c538f91d5ef45 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Sun, 23 Jan 2022 20:49:27 +0300 Subject: arm64:dts: sun50i-h6 Add r_uart uart2-3 pins --- - arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 60 ++++++++++++++++---- + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 60 ++++++++-- 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -index 7d52ba6e5d6c..252d61b33c98 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -@@ -321,6 +321,17 @@ msgbox: mailbox@3003000 { +@@ -322,6 +322,17 @@ msgbox: mailbox@3003000 { #mbox-cells = <1>; }; @@ -29,7 +29,7 @@ index 7d52ba6e5d6c..252d61b33c98 100644 sid: efuse@3006000 { compatible = "allwinner,sun50i-h6-sid"; reg = <0x03006000 0x400>; -@@ -380,6 +391,7 @@ pio: pinctrl@300b000 { +@@ -381,6 +392,7 @@ pio: pinctrl@300b000 { interrupt-controller; #interrupt-cells = <3>; @@ -37,7 +37,7 @@ index 7d52ba6e5d6c..252d61b33c98 100644 ext_rgmii_pins: rgmii-pins { pins = "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD7", "PD8", "PD9", "PD10", -@@ -425,6 +437,7 @@ mmc1_pins: mmc1-pins { +@@ -426,6 +438,7 @@ mmc1_pins: mmc1-pins { bias-pull-up; }; @@ -45,7 +45,7 @@ index 7d52ba6e5d6c..252d61b33c98 100644 mmc2_pins: mmc2-pins { pins = "PC1", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", -@@ -479,17 +492,26 @@ uart1_rts_cts_pins: uart1-rts-cts-pins { +@@ -480,17 +493,26 @@ uart1_rts_cts_pins: uart1-rts-cts-pins { pins = "PG8", "PG9"; function = "uart1"; }; @@ -82,7 +82,7 @@ index 7d52ba6e5d6c..252d61b33c98 100644 }; iommu: iommu@30f0000 { -@@ -974,6 +996,19 @@ tcon_tv_out_tcon_top: endpoint@1 { +@@ -975,6 +997,19 @@ tcon_tv_out_tcon_top: endpoint@1 { }; }; @@ -102,7 +102,7 @@ index 7d52ba6e5d6c..252d61b33c98 100644 rtc: rtc@7000000 { compatible = "allwinner,sun50i-h6-rtc"; reg = <0x07000000 0x400>; -@@ -1038,6 +1073,11 @@ r_rsb_pins: r-rsb-pins { +@@ -1039,6 +1074,11 @@ r_rsb_pins: r-rsb-pins { pins = "PL0", "PL1"; function = "s_rsb"; }; @@ -115,5 +115,5 @@ index 7d52ba6e5d6c..252d61b33c98 100644 r_ir: ir@7040000 { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-orangepi-3-add-r_uart-aliase.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-orangepi-3-add-r_uart-aliase.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-orangepi-3-add-r_uart-aliase.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-orangepi-3-add-r_uart-aliase.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-orangepi-3-delete-node-spi0.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-orangepi-3-delete-node-spi0.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-orangepi-3-delete-node-spi0.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-orangepi-3-delete-node-spi0.patch index e62045f66..31fb64fea 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-orangepi-3-delete-node-spi0.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-orangepi-3-delete-node-spi0.patch @@ -1,4 +1,4 @@ -From 505db041831ffe038d8cbb0920c3b2d97d8d4a5f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Tue, 25 Jan 2022 17:06:21 +0300 Subject: arm64:dts: sun50i-h6-orangepi-3 delete-node &spi0 @@ -8,7 +8,7 @@ Subject: arm64:dts: sun50i-h6-orangepi-3 delete-node &spi0 1 file changed, 2 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts -index d1f5daf63484..2b61b6c4866f 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts @@ -348,6 +348,8 @@ &sound_hdmi { @@ -21,5 +21,5 @@ index d1f5daf63484..2b61b6c4866f 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_ph_pins>; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-orangepi-add-cpu-opp-refs.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-orangepi-add-cpu-opp-refs.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-orangepi-add-cpu-opp-refs.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-orangepi-add-cpu-opp-refs.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-orangepi-enable-higher-clock-regulator-max-.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-orangepi-enable-higher-clock-regulator-max-.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-orangepi-enable-higher-clock-regulator-max-.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-orangepi-enable-higher-clock-regulator-max-.patch index 733dc136e..1d56852cc 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-orangepi-enable-higher-clock-regulator-max-.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-orangepi-enable-higher-clock-regulator-max-.patch @@ -1,4 +1,4 @@ -From ed7bdf184c5acfb1b82d8374615a05080794585b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 21:22:57 +0300 Subject: arm64:dts: sun50i-h6-orangepi enable higher clock @@ -9,7 +9,7 @@ Subject: arm64:dts: sun50i-h6-orangepi enable higher clock 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi -index e13d345f9abe..7d7dbb7973c6 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi @@ -210,7 +210,7 @@ reg_cldo3: cldo3 { @@ -22,5 +22,5 @@ index e13d345f9abe..7d7dbb7973c6 100644 }; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-orangepi-lite2-spi0-usb3phy-dwc3-enable.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-orangepi-lite2-spi0-usb3phy-dwc3-enable.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-orangepi-lite2-spi0-usb3phy-dwc3-enable.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-orangepi-lite2-spi0-usb3phy-dwc3-enable.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-dwc3-usb3phy.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-dwc3-usb3phy.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-dwc3-usb3phy.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-dwc3-usb3phy.patch index de712e2eb..c8942ce03 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-dwc3-usb3phy.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-dwc3-usb3phy.patch @@ -1,4 +1,4 @@ -From 2e09c0cf2afa5c4bf0293b12b6653aac8431d454 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Tue, 25 Jan 2022 19:05:25 +0300 Subject: arm64:dts: sun50i-h6-pine-h64 add dwc3 usb3phy @@ -8,7 +8,7 @@ Subject: arm64:dts: sun50i-h6-pine-h64 add dwc3 usb3phy 1 file changed, 9 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts -index 8d5a651f24c0..cb7231b386cd 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts @@ -89,6 +89,10 @@ reg_usb_vbus: vbus { @@ -32,5 +32,5 @@ index 8d5a651f24c0..cb7231b386cd 100644 + status = "okay"; +}; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-wifi-rtl8723cs.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-wifi-rtl8723cs.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-wifi-rtl8723cs.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-wifi-rtl8723cs.patch index a4758e55a..f4c252fca 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-wifi-rtl8723cs.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-wifi-rtl8723cs.patch @@ -1,15 +1,15 @@ -From e4b7f55f57e5c895fe5dea8d5712affe95fc5f9f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Tue, 25 Jan 2022 18:41:47 +0300 Subject: arm64:dts: sun50i-h6-pine-h64 add wifi rtl8723cs Author: unknown author --- - .../boot/dts/allwinner/sun50i-h6-pine-h64.dts | 38 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts | 38 ++++++++++ 1 file changed, 38 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts -index 95aea02bce40..8d5a651f24c0 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts @@ -41,6 +41,14 @@ hdmi_con_in: endpoint { @@ -78,5 +78,5 @@ index 95aea02bce40..8d5a651f24c0 100644 regulator-max-microvolt = <3300000>; regulator-name = "vcc-wifi-2"; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6.dtsi-add-pinctrl-pins-for-spi.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6.dtsi-add-pinctrl-pins-for-spi.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6.dtsi-add-pinctrl-pins-for-spi.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6.dtsi-add-pinctrl-pins-for-spi.patch index 275140fea..a889a6b8f 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6.dtsi-add-pinctrl-pins-for-spi.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6.dtsi-add-pinctrl-pins-for-spi.patch @@ -1,4 +1,4 @@ -From 4edd2fb769ff25e9c348b63c7fb5aa79c16a52f1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Fri, 28 Jan 2022 15:19:32 +0300 Subject: arm64:dts: sun50i-h6.dtsi add pinctrl pins for spi @@ -8,10 +8,10 @@ Subject: arm64:dts: sun50i-h6.dtsi add pinctrl pins for spi 1 file changed, 4 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -index 7d14fceb9d3a..58f47a426f7e 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -@@ -670,6 +670,8 @@ spi0: spi@5010000 { +@@ -671,6 +671,8 @@ spi0: spi@5010000 { clock-names = "ahb", "mod"; dmas = <&dma 22>, <&dma 22>; dma-names = "rx", "tx"; @@ -20,7 +20,7 @@ index 7d14fceb9d3a..58f47a426f7e 100644 resets = <&ccu RST_BUS_SPI0>; status = "disabled"; #address-cells = <1>; -@@ -685,6 +687,8 @@ spi1: spi@5011000 { +@@ -686,6 +688,8 @@ spi1: spi@5011000 { clock-names = "ahb", "mod"; dmas = <&dma 23>, <&dma 23>; dma-names = "rx", "tx"; @@ -30,5 +30,5 @@ index 7d14fceb9d3a..58f47a426f7e 100644 status = "disabled"; #address-cells = <1>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6.dtsi-improve-thermals.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6.dtsi-improve-thermals.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6.dtsi-improve-thermals.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6.dtsi-improve-thermals.patch index 7e9f6bed6..c09c0d496 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h6.dtsi-improve-thermals.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h6.dtsi-improve-thermals.patch @@ -1,14 +1,14 @@ -From 6b72eec004a4dab3878b7d5099c6b25ceff0894e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Tue, 25 Jan 2022 17:02:30 +0300 Subject: arm64:dts: sun50i-h6.dtsi improve thermals --- - arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 68 ++++++++++++++++---- + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 68 ++++++++-- 1 file changed, 55 insertions(+), 13 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -index 252d61b33c98..7d14fceb9d3a 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi @@ -1,5 +1,6 @@ @@ -18,7 +18,7 @@ index 252d61b33c98..7d14fceb9d3a 100644 #include #include -@@ -1137,33 +1138,74 @@ ths: thermal-sensor@5070400 { +@@ -1138,33 +1139,74 @@ ths: thermal-sensor@5070400 { thermal-zones { cpu-thermal { @@ -107,5 +107,5 @@ index 252d61b33c98..7d14fceb9d3a 100644 gpu-thermal { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-add-pwm-nodes-support.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-add-pwm-nodes-support.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-add-pwm-nodes-support.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-add-pwm-nodes-support.patch index 08846ea4b..058d29bc8 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-add-pwm-nodes-support.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-add-pwm-nodes-support.patch @@ -1,17 +1,17 @@ -From 476ae5840384c7b61eb4270cdf7641772807f100 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Thu, 10 Apr 2025 13:19:52 +0300 Subject: arm64: dts: sun50i-h616: add pwm nodes support --- - .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 103 ++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 103 ++++++++++ 1 file changed, 103 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index 668ed3b9090a..72d008d6d4e7 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -@@ -332,6 +332,44 @@ watchdog: watchdog@30090a0 { +@@ -351,6 +351,44 @@ watchdog: watchdog@30090a0 { clocks = <&osc24M>; }; @@ -56,7 +56,7 @@ index 668ed3b9090a..72d008d6d4e7 100644 pio: pinctrl@300b000 { compatible = "allwinner,sun50i-h616-pinctrl"; reg = <0x0300b000 0x400>; -@@ -444,6 +482,71 @@ mmc2_pins: mmc2-pins { +@@ -463,6 +501,71 @@ mmc2_pins: mmc2-pins { bias-pull-up; }; @@ -129,5 +129,5 @@ index 668ed3b9090a..72d008d6d4e7 100644 spi0_pins: spi0-pins { pins = "PC0", "PC2", "PC4"; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1-sd-emmc.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1-sd-emmc.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1-sd-emmc.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1-sd-emmc.patch index dfffe082f..a5f7f569e 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1-sd-emmc.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1-sd-emmc.patch @@ -1,4 +1,4 @@ -From a8ee1b34a672b7291293887f9cde1cad01787048 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Alan Date: Tue, 30 May 2023 17:36:29 +0800 Subject: arm64: dts: sun50i-h616-bigtreetech-cb1(sd, emmc) @@ -35,30 +35,14 @@ Subject: arm64: dts: sun50i-h616-bigtreetech-cb1(sd, emmc) > X-Git-Archeology: Subject: Allwinner: Add kernel patches for 6.7 kernel > X-Git-Archeology: --- - arch/arm64/boot/dts/allwinner/Makefile | 2 + - .../sun50i-h616-bigtreetech-cb1-emmc.dts | 44 ++++ - .../sun50i-h616-bigtreetech-cb1-sd.dts | 35 +++ - .../sun50i-h616-bigtreetech-cb1.dtsi | 223 ++++++++++++++++-- - 4 files changed, 287 insertions(+), 17 deletions(-) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-emmc.dts - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-sd.dts + arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-emmc.dts | 44 ++ + arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-sd.dts | 35 ++ + arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi | 223 +++++++++- + 3 files changed, 285 insertions(+), 17 deletions(-) -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 95c30fb4b8ec..17f357097503 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -52,6 +52,8 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6-mini.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h313-tanix-tx1.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-cb1-manta.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-cb1-sd.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-cb1-emmc.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-pi.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-orangepi-zero2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-x96-mate.dtb diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-emmc.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-emmc.dts new file mode 100644 -index 000000000000..f878c23f1d90 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-emmc.dts @@ -0,0 +1,44 @@ @@ -108,7 +92,7 @@ index 000000000000..f878c23f1d90 +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-sd.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-sd.dts new file mode 100644 -index 000000000000..e18dd854d74b +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1-sd.dts @@ -0,0 +1,35 @@ @@ -148,7 +132,7 @@ index 000000000000..e18dd854d74b + <&pio 2 13 GPIO_ACTIVE_HIGH>; /* PC13 */ +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi -index bebfeb2a337a..0168ff3d9972 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi @@ -1,6 +1,7 @@ @@ -487,5 +471,5 @@ index bebfeb2a337a..0168ff3d9972 100644 status = "okay"; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch index 37e8442d9..30d92b648 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch @@ -1,4 +1,4 @@ -From 32714948ee14cc6a990115c6594c481148ac950f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 15 Oct 2021 21:09:42 +0200 Subject: arm64:dts: sun50i-h616-orangepi-zero2 Enable GPU mali @@ -9,7 +9,7 @@ Signed-off-by: Jernej Skrabec 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts -index f2e3300e078a..42c099483fdd 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts @@ -26,6 +26,7 @@ &emac0 { @@ -19,7 +19,7 @@ index f2e3300e078a..42c099483fdd 100644 + status = "okay"; }; - &mmc0 { + &hdmi { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch similarity index 93% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch index f2c928b69..3f3aa7922 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch @@ -11,7 +11,7 @@ diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi -@@ -56,6 +56,7 @@ reg_usb1_vbus: regulator-usb1-vbus { +@@ -67,6 +67,7 @@ reg_usb1_vbus: regulator-usb1-vbus { vin-supply = <®_vcc5v>; enable-active-high; gpio = <&pio 2 16 GPIO_ACTIVE_HIGH>; /* PC16 */ diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-x96-mate-T95-eth-sd-card-hack.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-x96-mate-T95-eth-sd-card-hack.patch similarity index 71% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-x96-mate-T95-eth-sd-card-hack.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-x96-mate-T95-eth-sd-card-hack.patch index c3b39e127..c6b8b1a85 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616-x96-mate-T95-eth-sd-card-hack.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-x96-mate-T95-eth-sd-card-hack.patch @@ -1,16 +1,21 @@ -From 2134cc3eccff78757188425e0a249cc7be9fcaf1 Mon Sep 17 00:00:00 2001 -From: Jernej Skrabec -Date: Mon, 14 Jun 2021 20:48:15 +0200 -Subject: arm64:dts: sun50i-h616-x96-mate T95 eth & sd card hack +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Werner +Date: Tue, 9 Dec 2025 17:19:52 +0000 +Subject: Patching kernel sunxi files + arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi + +Origin: Subject: arm64:dts: sun50i-h616-x96-mate T95 eth & sd card hack Signed-off-by: Jernej Skrabec +Signed-off-by: Werner --- - .../dts/allwinner/sun50i-h616-x96-mate.dts | 21 ++++++++++++++- - .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 26 +++++++++++++++++++ - 2 files changed, 46 insertions(+), 1 deletion(-) + arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts | 20 +++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 26 ++++++++++ + 2 files changed, 46 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts -index 085f3e4e8eaa..e0e9288c4986 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts @@ -16,6 +16,7 @@ / { @@ -21,7 +26,7 @@ index 085f3e4e8eaa..e0e9288c4986 100644 serial0 = &uart0; }; -@@ -55,13 +56,31 @@ &gpu { +@@ -70,6 +71,25 @@ &gpu { status = "okay"; }; @@ -43,22 +48,15 @@ index 085f3e4e8eaa..e0e9288c4986 100644 + }; +}; + - &ir { - status = "okay"; - }; - - &mmc0 { - vmmc-supply = <®_dcdce>; -- cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ -+ broken-cd; - disable-wp; - bus-width = <4>; ++ + &hdmi { + hvcc-supply = <®_bldo1>; status = "okay"; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index 6d1ed00375bc..72e46c263485 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -@@ -287,6 +287,13 @@ ext_rgmii_pins: rgmii-pins { +@@ -378,6 +378,13 @@ ext_rgmii_pins: rgmii-pins { drive-strength = <40>; }; @@ -72,7 +70,7 @@ index 6d1ed00375bc..72e46c263485 100644 i2c0_pins: i2c0-pins { pins = "PI5", "PI6"; function = "i2c0"; -@@ -669,6 +676,25 @@ mdio0: mdio { +@@ -760,6 +767,25 @@ mdio0: mdio { }; }; @@ -99,5 +97,5 @@ index 6d1ed00375bc..72e46c263485 100644 compatible = "allwinner,sun50i-h616-gpadc", "allwinner,sun20i-d1-gpadc"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616.dtsi-reserved-memory-512K-for-BL31.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616.dtsi-reserved-memory-512K-for-BL31.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616.dtsi-reserved-memory-512K-for-BL31.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616.dtsi-reserved-memory-512K-for-BL31.patch index f31cabe5d..4e5a5b1b5 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h616.dtsi-reserved-memory-512K-for-BL31.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616.dtsi-reserved-memory-512K-for-BL31.patch @@ -1,4 +1,4 @@ -From abf887a3265a84d1593b319133e5ee106301a23a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Sun, 13 Nov 2022 23:15:38 +0300 Subject: arm64: dts: sun50i-h616.dtsi: reserved memory 512K for BL31 @@ -8,10 +8,10 @@ Subject: arm64: dts: sun50i-h616.dtsi: reserved memory 512K for BL31 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index e88c1fbac6ac..acba4de960ce 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -@@ -100,12 +100,12 @@ reserved-memory { +@@ -109,12 +109,12 @@ reserved-memory { ranges; /* @@ -27,5 +27,5 @@ index e88c1fbac6ac..acba4de960ce 100644 }; }; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patch index 9f89bf2d5..d5c2cb44e 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patch @@ -1,4 +1,4 @@ -From 83fbd972f2a780e4429f51cc0eec543cffed26b6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: chraac Date: Fri, 15 Mar 2024 12:30:26 +0800 Subject: arm64: dts: sun50i-h618-orangepi-zero2w: Add missing nodes @@ -6,15 +6,15 @@ Subject: arm64: dts: sun50i-h618-orangepi-zero2w: Add missing nodes Signed-off-by: The-going <48602507+The-going@users.noreply.github.com> Signed-off-by: Exodus --- - .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 25 ++- - .../allwinner/sun50i-h618-orangepi-zero2w.dts | 188 ++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 25 +- + arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts | 188 ++++++++++ 2 files changed, 205 insertions(+), 8 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index 38f3dc9f4fea..307a8678e0eb 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -@@ -241,7 +241,7 @@ video-codec@1c0e000 { +@@ -273,7 +273,7 @@ video-codec@1c0e000 { syscon: syscon@3000000 { compatible = "allwinner,sun50i-h616-system-control"; @@ -23,7 +23,7 @@ index 38f3dc9f4fea..307a8678e0eb 100644 #address-cells = <1>; #size-cells = <1>; ranges; -@@ -955,19 +955,28 @@ mdio0: mdio { +@@ -974,19 +974,28 @@ mdio0: mdio { }; emac1: ethernet@5030000 { @@ -60,7 +60,7 @@ index 38f3dc9f4fea..307a8678e0eb 100644 #size-cells = <0>; }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts -index b340bbcb710d..50251948d640 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts @@ -18,12 +18,27 @@ / { @@ -320,5 +320,5 @@ index b340bbcb710d..50251948d640 100644 + temperature = <100000>; +}; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero3-Enable-GPU-mali.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero3-Enable-GPU-mali.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero3-Enable-GPU-mali.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero3-Enable-GPU-mali.patch index 63c6a55a9..ede9b707f 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero3-Enable-GPU-mali.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h618-orangepi-zero3-Enable-GPU-mali.patch @@ -1,4 +1,4 @@ -From 05fded634606c9f96d33246df3e928fcce656b5e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Gunjan Gupta Date: Thu, 28 Dec 2023 15:01:03 +0000 Subject: arm64:dts: sun50i-h618-orangepi-zero3 Enable GPU mali @@ -8,7 +8,7 @@ Subject: arm64:dts: sun50i-h618-orangepi-zero3 Enable GPU mali 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts -index 69493440211f..31abf688f316 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts @@ -30,6 +30,7 @@ &ext_rgmii_phy { @@ -18,7 +18,7 @@ index 69493440211f..31abf688f316 100644 + status = "okay"; }; - &mmc0 { + &hdmi { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-sun50i-h616-Add-i2c-2-3-4-uart-2-5-pins.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-sun50i-h616-Add-i2c-2-3-4-uart-2-5-pins.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-sun50i-h616-Add-i2c-2-3-4-uart-2-5-pins.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-sun50i-h616-Add-i2c-2-3-4-uart-2-5-pins.patch index b699a8a7f..31649cfd5 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-sun50i-h616-Add-i2c-2-3-4-uart-2-5-pins.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-sun50i-h616-Add-i2c-2-3-4-uart-2-5-pins.patch @@ -1,4 +1,4 @@ -From 05e16d776c12bd7a31a80a4b9485afe67581c5a4 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Sat, 8 Feb 2025 12:37:21 +0300 Subject: arm64: sun50i-h616: Add i2c(2,3,4), uart(2,5) pins @@ -9,14 +9,14 @@ in device trees and overlays. link to: drivers/pinctrl/sunxi/pinctrl-sun50i-h616.c --- - .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 103 ++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 103 ++++++++++ 1 file changed, 103 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index 564c5853af97..084324d1e809 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -@@ -371,11 +371,48 @@ i2c0_pins: i2c0-pins { +@@ -390,11 +390,48 @@ i2c0_pins: i2c0-pins { function = "i2c0"; }; @@ -65,7 +65,7 @@ index 564c5853af97..084324d1e809 100644 ir_rx_pin: ir-rx-pin { pins = "PH10"; function = "ir_rx"; -@@ -453,6 +490,72 @@ uart1_rts_cts_pins: uart1-rts-cts-pins { +@@ -472,6 +509,72 @@ uart1_rts_cts_pins: uart1-rts-cts-pins { function = "uart1"; }; @@ -139,5 +139,5 @@ index 564c5853af97..084324d1e809 100644 x32clk_fanout_pin: x32clk-fanout-pin { pins = "PG10"; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/cb1-overlay.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/cb1-overlay.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/cb1-overlay.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/cb1-overlay.patch index aefe34c72..702852bb6 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/cb1-overlay.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/cb1-overlay.patch @@ -1,36 +1,26 @@ -From ce19656781252e0d532425ee4858734d5634cb1f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 30 May 2023 12:04:55 +0800 Subject: cb1-overlay --- - .../arm64/boot/dts/allwinner/overlay/Makefile | 15 ++- - .../overlay/sun50i-h616-fixup.scr-cmd | 110 ++++++++++++++++++ - .../dts/allwinner/overlay/sun50i-h616-ir.dtso | 13 +++ - .../allwinner/overlay/sun50i-h616-light.dtso | 20 ++++ - .../overlay/sun50i-h616-mcp2515.dtso | 18 +++ - .../overlay/sun50i-h616-spi-spidev.dtso | 42 +++++++ - .../overlay/sun50i-h616-spidev0_0.dtso | 28 +++++ - .../overlay/sun50i-h616-spidev1_0.dtso | 28 +++++ - .../overlay/sun50i-h616-spidev1_1.dtso | 28 +++++ - .../overlay/sun50i-h616-spidev1_2.dtso | 28 +++++ - .../overlay/sun50i-h616-tft35_spi.dtso | 33 ++++++ - .../allwinner/overlay/sun50i-h616-ws2812.dtso | 13 +++ - 12 files changed, 374 insertions(+), 2 deletions(-) - create mode 100755 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-fixup.scr-cmd - create mode 100755 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-ir.dtso - create mode 100755 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-light.dtso - create mode 100755 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-mcp2515.dtso - create mode 100755 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spi-spidev.dtso - create mode 100755 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev0_0.dtso - create mode 100755 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_0.dtso - create mode 100755 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_1.dtso - create mode 100755 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_2.dtso - create mode 100755 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-tft35_spi.dtso - create mode 100755 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-ws2812.dtso + arch/arm64/boot/dts/allwinner/overlay/Makefile | 15 +- + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-fixup.scr-cmd | 110 ++++++++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-ir.dtso | 13 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-light.dtso | 20 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-mcp2515.dtso | 18 ++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spi-spidev.dtso | 42 ++++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev0_0.dtso | 28 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_0.dtso | 28 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_1.dtso | 28 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_2.dtso | 28 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-tft35_spi.dtso | 33 +++ + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-ws2812.dtso | 13 ++ + scripts/Makefile.lib | 11 + + 13 files changed, 385 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/overlay/Makefile b/arch/arm64/boot/dts/allwinner/overlay/Makefile -index 40d67ebb5932..fb6b30d5753e 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/overlay/Makefile +++ b/arch/arm64/boot/dts/allwinner/overlay/Makefile @@ -47,12 +47,23 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ @@ -61,7 +51,7 @@ index 40d67ebb5932..fb6b30d5753e 100644 README.sun50i-a64-overlays \ diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-fixup.scr-cmd b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-fixup.scr-cmd new file mode 100755 -index 000000000000..2bde77cb082d +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-fixup.scr-cmd @@ -0,0 +1,110 @@ @@ -177,7 +167,7 @@ index 000000000000..2bde77cb082d +fi diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-ir.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-ir.dtso new file mode 100755 -index 000000000000..825433add1c3 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-ir.dtso @@ -0,0 +1,13 @@ @@ -196,7 +186,7 @@ index 000000000000..825433add1c3 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-light.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-light.dtso new file mode 100755 -index 000000000000..4ab9dc9527e7 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-light.dtso @@ -0,0 +1,20 @@ @@ -222,7 +212,7 @@ index 000000000000..4ab9dc9527e7 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-mcp2515.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-mcp2515.dtso new file mode 100755 -index 000000000000..64841956e568 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-mcp2515.dtso @@ -0,0 +1,18 @@ @@ -246,7 +236,7 @@ index 000000000000..64841956e568 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spi-spidev.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spi-spidev.dtso new file mode 100755 -index 000000000000..e0ceed71965f +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spi-spidev.dtso @@ -0,0 +1,42 @@ @@ -294,7 +284,7 @@ index 000000000000..e0ceed71965f +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev0_0.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev0_0.dtso new file mode 100755 -index 000000000000..a5a89707c3dd +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev0_0.dtso @@ -0,0 +1,28 @@ @@ -328,7 +318,7 @@ index 000000000000..a5a89707c3dd +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_0.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_0.dtso new file mode 100755 -index 000000000000..20a0486442cc +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_0.dtso @@ -0,0 +1,28 @@ @@ -362,7 +352,7 @@ index 000000000000..20a0486442cc +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_1.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_1.dtso new file mode 100755 -index 000000000000..a9ae45e84063 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_1.dtso @@ -0,0 +1,28 @@ @@ -396,7 +386,7 @@ index 000000000000..a9ae45e84063 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_2.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_2.dtso new file mode 100755 -index 000000000000..efe5a8949b3a +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-spidev1_2.dtso @@ -0,0 +1,28 @@ @@ -430,7 +420,7 @@ index 000000000000..efe5a8949b3a +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-tft35_spi.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-tft35_spi.dtso new file mode 100755 -index 000000000000..e96582bcbed5 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-tft35_spi.dtso @@ -0,0 +1,33 @@ @@ -469,7 +459,7 @@ index 000000000000..e96582bcbed5 +}; diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-ws2812.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-ws2812.dtso new file mode 100755 -index 000000000000..4e43907cb0ce +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-ws2812.dtso @@ -0,0 +1,13 @@ @@ -486,6 +476,32 @@ index 000000000000..4e43907cb0ce + }; + }; +}; +diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib +index 111111111111..222222222222 100644 +--- a/scripts/Makefile.lib ++++ b/scripts/Makefile.lib +@@ -366,6 +366,15 @@ quiet_cmd_lz4_with_size = LZ4 $@ + cmd_lz4_with_size = { cat $(real-prereqs) | $(LZ4) -l -9 - -; \ + $(size_append); } > $@ + ++# Fixup script mkimage provided by Armbian ++# --------------------------------------------------------------------------- ++ ++quiet_cmd_scr = FIXUP IMAGE $@ ++ cmd_scr = mkimage -C none -A $(ARCH) -T script -d $< $@ ++ ++$(obj)/%.scr: $(src)/%.scr-cmd FORCE ++ $(call if_changed,scr) ++ + # U-Boot mkimage + # --------------------------------------------------------------------------- + +@@ -489,3 +498,5 @@ define filechk_offsets + echo ""; \ + echo "#endif" + endef ++ ++extra-y += $(scr-y) $(dtbotxt-y) -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/clk-gate-add-support-for-regmap-based-gates.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/clk-gate-add-support-for-regmap-based-gates.patch similarity index 99% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/clk-gate-add-support-for-regmap-based-gates.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/clk-gate-add-support-for-regmap-based-gates.patch index 451139871..ffce48e27 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/clk-gate-add-support-for-regmap-based-gates.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/clk-gate-add-support-for-regmap-based-gates.patch @@ -142,7 +142,7 @@ index 111111111111..222222222222 100644 if (!IS_ERR(hw)) { *ptr = hw; diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h -index 2e6e603b7493..a9a731ebb8f6 100644 +index 111111111111..222222222222 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -8,6 +8,7 @@ diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/driver-allwinner-h618-emac.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/driver-allwinner-h618-emac.patch similarity index 98% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/driver-allwinner-h618-emac.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/driver-allwinner-h618-emac.patch index ea1faf99f..1c69bae27 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/driver-allwinner-h618-emac.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/driver-allwinner-h618-emac.patch @@ -1,33 +1,27 @@ -From d182957e3479420bc224a5ec7df1d5ce1430cf2f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: chraac Date: Fri, 16 Aug 2024 16:44:41 +0800 Subject: driver: allwinner h618 emac --- - drivers/gpio/gpiolib-of.c | 29 +- - drivers/mfd/Kconfig | 10 + - drivers/mfd/Makefile | 1 + - drivers/mfd/sunxi-ac200.c | 289 +++ - drivers/net/ethernet/allwinner/Kconfig | 8 + - drivers/net/ethernet/allwinner/Makefile | 2 + - drivers/net/ethernet/allwinner/sunxi-gmac.c | 2217 +++++++++++++++++ - drivers/net/ethernet/allwinner/sunxi-gmac.h | 270 ++ - .../net/ethernet/allwinner/sunxi_gmac_ops.c | 768 ++++++ - drivers/net/phy/Kconfig | 8 + - drivers/net/phy/Makefile | 1 + - drivers/net/phy/sunxi-ephy.c | 516 ++++ - include/linux/mfd/ac200.h | 213 ++ - include/linux/of_gpio.h | 18 + + drivers/gpio/gpiolib-of.c | 29 +- + drivers/mfd/Kconfig | 10 + + drivers/mfd/Makefile | 1 + + drivers/mfd/sunxi-ac200.c | 289 ++ + drivers/net/ethernet/allwinner/Kconfig | 8 + + drivers/net/ethernet/allwinner/Makefile | 2 + + drivers/net/ethernet/allwinner/sunxi-gmac.c | 2217 ++++++++++ + drivers/net/ethernet/allwinner/sunxi-gmac.h | 270 ++ + drivers/net/ethernet/allwinner/sunxi_gmac_ops.c | 768 ++++ + drivers/net/phy/Kconfig | 8 + + drivers/net/phy/Makefile | 1 + + drivers/net/phy/sunxi-ephy.c | 516 +++ + include/linux/mfd/ac200.h | 213 + + include/linux/of_gpio.h | 18 + 14 files changed, 4335 insertions(+), 15 deletions(-) - create mode 100644 drivers/mfd/sunxi-ac200.c - create mode 100644 drivers/net/ethernet/allwinner/sunxi-gmac.c - create mode 100644 drivers/net/ethernet/allwinner/sunxi-gmac.h - create mode 100644 drivers/net/ethernet/allwinner/sunxi_gmac_ops.c - create mode 100644 drivers/net/phy/sunxi-ephy.c - create mode 100644 include/linux/mfd/ac200.h diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c -index 37ab78243fab..13fbd2fb7e29 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpio/gpiolib-of.c +++ b/drivers/gpio/gpiolib-of.c @@ -25,21 +25,6 @@ @@ -74,10 +68,10 @@ index 37ab78243fab..13fbd2fb7e29 100644 * of_get_named_gpio() - Get a GPIO number to use with GPIO API * @np: device node to get GPIO from diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig -index fe8730dd7357..49118a218884 100644 +index 111111111111..222222222222 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig -@@ -215,6 +215,16 @@ config MFD_AC200 +@@ -216,6 +216,16 @@ config MFD_AC200 This driver include only the core APIs. You have to select individual components like Ethernet PHY or codec under the corresponding menus. @@ -95,10 +89,10 @@ index fe8730dd7357..49118a218884 100644 tristate select MFD_CORE diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile -index 66eae785a6fa..4fa658c36305 100644 +index 111111111111..222222222222 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile -@@ -146,6 +146,7 @@ obj-$(CONFIG_MFD_DA9052_I2C) += da9052-i2c.o +@@ -150,6 +150,7 @@ obj-$(CONFIG_MFD_DA9052_I2C) += da9052-i2c.o obj-$(CONFIG_MFD_AC100) += ac100.o obj-$(CONFIG_MFD_AC200) += ac200.o @@ -108,7 +102,7 @@ index 66eae785a6fa..4fa658c36305 100644 obj-$(CONFIG_MFD_AXP20X_RSB) += axp20x-rsb.o diff --git a/drivers/mfd/sunxi-ac200.c b/drivers/mfd/sunxi-ac200.c new file mode 100644 -index 000000000000..75c032ce147f +index 000000000000..111111111111 --- /dev/null +++ b/drivers/mfd/sunxi-ac200.c @@ -0,0 +1,289 @@ @@ -402,7 +396,7 @@ index 000000000000..75c032ce147f +MODULE_AUTHOR("Jernej Skrabec "); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/net/ethernet/allwinner/Kconfig b/drivers/net/ethernet/allwinner/Kconfig -index 3e81059f8693..36d808810ca4 100644 +index 111111111111..222222222222 100644 --- a/drivers/net/ethernet/allwinner/Kconfig +++ b/drivers/net/ethernet/allwinner/Kconfig @@ -34,4 +34,12 @@ config SUN4I_EMAC @@ -419,7 +413,7 @@ index 3e81059f8693..36d808810ca4 100644 + endif # NET_VENDOR_ALLWINNER diff --git a/drivers/net/ethernet/allwinner/Makefile b/drivers/net/ethernet/allwinner/Makefile -index ddd5a5079e8a..56b9c434a5b8 100644 +index 111111111111..222222222222 100644 --- a/drivers/net/ethernet/allwinner/Makefile +++ b/drivers/net/ethernet/allwinner/Makefile @@ -4,3 +4,5 @@ @@ -430,7 +424,7 @@ index ddd5a5079e8a..56b9c434a5b8 100644 +obj-$(CONFIG_SUNXI_GMAC) += sunxi_gmac.o diff --git a/drivers/net/ethernet/allwinner/sunxi-gmac.c b/drivers/net/ethernet/allwinner/sunxi-gmac.c new file mode 100644 -index 000000000000..249cee0607e3 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/net/ethernet/allwinner/sunxi-gmac.c @@ -0,0 +1,2217 @@ @@ -2653,7 +2647,7 @@ index 000000000000..249cee0607e3 +MODULE_LICENSE("Dual BSD/GPL"); diff --git a/drivers/net/ethernet/allwinner/sunxi-gmac.h b/drivers/net/ethernet/allwinner/sunxi-gmac.h new file mode 100644 -index 000000000000..0ba8977d28f4 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/net/ethernet/allwinner/sunxi-gmac.h @@ -0,0 +1,270 @@ @@ -2929,7 +2923,7 @@ index 000000000000..0ba8977d28f4 +#endif diff --git a/drivers/net/ethernet/allwinner/sunxi_gmac_ops.c b/drivers/net/ethernet/allwinner/sunxi_gmac_ops.c new file mode 100644 -index 000000000000..926516835023 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/net/ethernet/allwinner/sunxi_gmac_ops.c @@ -0,0 +1,768 @@ @@ -3702,10 +3696,10 @@ index 000000000000..926516835023 +} +MODULE_LICENSE("Dual BSD/GPL"); diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig -index bc025b4abb67..ace125514192 100644 +index 111111111111..222222222222 100644 --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig -@@ -100,6 +100,14 @@ config AC200_PHY +@@ -108,6 +108,14 @@ config AC200_PHY help Fast ethernet PHY as found in X-Powers AC200 multi-function device. @@ -3721,10 +3715,10 @@ index bc025b4abb67..ace125514192 100644 tristate "AMD and Altima PHYs" help diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile -index a1e7872e8e34..4e383357476d 100644 +index 111111111111..222222222222 100644 --- a/drivers/net/phy/Makefile +++ b/drivers/net/phy/Makefile -@@ -27,6 +27,7 @@ sfp-obj-$(CONFIG_SFP) += sfp-bus.o +@@ -28,6 +28,7 @@ sfp-obj-$(CONFIG_SFP) += sfp-bus.o obj-y += $(sfp-obj-y) $(sfp-obj-m) obj-$(CONFIG_AC200_PHY) += ac200-phy.o @@ -3734,7 +3728,7 @@ index a1e7872e8e34..4e383357476d 100644 obj-$(CONFIG_AIR_EN8811H_PHY) += air_en8811h.o diff --git a/drivers/net/phy/sunxi-ephy.c b/drivers/net/phy/sunxi-ephy.c new file mode 100644 -index 000000000000..44eb2790ea62 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/net/phy/sunxi-ephy.c @@ -0,0 +1,516 @@ @@ -4256,7 +4250,7 @@ index 000000000000..44eb2790ea62 +MODULE_LICENSE("GPL"); diff --git a/include/linux/mfd/ac200.h b/include/linux/mfd/ac200.h new file mode 100644 -index 000000000000..84d89cbfbd3d +index 000000000000..111111111111 --- /dev/null +++ b/include/linux/mfd/ac200.h @@ -0,0 +1,213 @@ @@ -4474,7 +4468,7 @@ index 000000000000..84d89cbfbd3d + +#endif /* __LINUX_MFD_AC200_H */ diff --git a/include/linux/of_gpio.h b/include/linux/of_gpio.h -index d0f66a5e1b2a..71349cac1a67 100644 +index 111111111111..222222222222 100644 --- a/include/linux/of_gpio.h +++ b/include/linux/of_gpio.h @@ -15,6 +15,21 @@ @@ -4510,5 +4504,5 @@ index d0f66a5e1b2a..71349cac1a67 100644 #include -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drivers-devfreq-sun8i-a33-mbus-disable-autorefresh.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drivers-devfreq-sun8i-a33-mbus-disable-autorefresh.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drivers-devfreq-sun8i-a33-mbus-disable-autorefresh.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drivers-devfreq-sun8i-a33-mbus-disable-autorefresh.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drivers-pwm-Add-pwm-sunxi-enhance-driver-for-h616.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drivers-pwm-Add-pwm-sunxi-enhance-driver-for-h616.patch similarity index 98% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drivers-pwm-Add-pwm-sunxi-enhance-driver-for-h616.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drivers-pwm-Add-pwm-sunxi-enhance-driver-for-h616.patch index 6c9c306be..dac29bfda 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drivers-pwm-Add-pwm-sunxi-enhance-driver-for-h616.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drivers-pwm-Add-pwm-sunxi-enhance-driver-for-h616.patch @@ -1,4 +1,4 @@ -From 78c40257c314701e08887a90c995d9c97c1e9a37 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: chraac Date: Thu, 15 Aug 2024 23:38:44 +0800 Subject: drivers: pwm: Add pwm-sunxi-enhance driver for h616 @@ -6,17 +6,15 @@ Subject: drivers: pwm: Add pwm-sunxi-enhance driver for h616 --- drivers/pwm/Kconfig | 9 + drivers/pwm/Makefile | 1 + - drivers/pwm/pwm-sunxi-enhance.c | 1194 +++++++++++++++++++++++++++++++ - drivers/pwm/pwm-sunxi-enhance.h | 60 ++ + drivers/pwm/pwm-sunxi-enhance.c | 1194 ++++++++++ + drivers/pwm/pwm-sunxi-enhance.h | 60 + 4 files changed, 1264 insertions(+) - create mode 100644 drivers/pwm/pwm-sunxi-enhance.c - create mode 100644 drivers/pwm/pwm-sunxi-enhance.h diff --git a/drivers/pwm/Kconfig b/drivers/pwm/Kconfig -index d9bcd1e8413e..7dbdbfa1a954 100644 +index 111111111111..222222222222 100644 --- a/drivers/pwm/Kconfig +++ b/drivers/pwm/Kconfig -@@ -697,6 +697,15 @@ config PWM_SUN4I +@@ -726,6 +726,15 @@ config PWM_SUN4I To compile this driver as a module, choose M here: the module will be called pwm-sun4i. @@ -33,10 +31,10 @@ index d9bcd1e8413e..7dbdbfa1a954 100644 tristate "Sunplus PWM support" depends on ARCH_SUNPLUS || COMPILE_TEST diff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile -index 96160f4257fc..73c1192119da 100644 +index 111111111111..222222222222 100644 --- a/drivers/pwm/Makefile +++ b/drivers/pwm/Makefile -@@ -64,6 +64,7 @@ obj-$(CONFIG_PWM_STM32) += pwm-stm32.o +@@ -66,6 +66,7 @@ obj-$(CONFIG_PWM_STM32) += pwm-stm32.o obj-$(CONFIG_PWM_STM32_LP) += pwm-stm32-lp.o obj-$(CONFIG_PWM_STMPE) += pwm-stmpe.o obj-$(CONFIG_PWM_SUN4I) += pwm-sun4i.o @@ -46,7 +44,7 @@ index 96160f4257fc..73c1192119da 100644 obj-$(CONFIG_PWM_TIECAP) += pwm-tiecap.o diff --git a/drivers/pwm/pwm-sunxi-enhance.c b/drivers/pwm/pwm-sunxi-enhance.c new file mode 100644 -index 000000000000..6604c447b3b0 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/pwm/pwm-sunxi-enhance.c @@ -0,0 +1,1194 @@ @@ -1246,7 +1244,7 @@ index 000000000000..6604c447b3b0 +MODULE_ALIAS("platform:sunxi-pwm"); diff --git a/drivers/pwm/pwm-sunxi-enhance.h b/drivers/pwm/pwm-sunxi-enhance.h new file mode 100644 -index 000000000000..e25e10bf5a3d +index 000000000000..111111111111 --- /dev/null +++ b/drivers/pwm/pwm-sunxi-enhance.h @@ -0,0 +1,60 @@ @@ -1311,5 +1309,5 @@ index 000000000000..e25e10bf5a3d +#endif + -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-clocksource-arm_arch_timer-fix-a64-timejump.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-clocksource-arm_arch_timer-fix-a64-timejump.patch similarity index 97% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-clocksource-arm_arch_timer-fix-a64-timejump.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-clocksource-arm_arch_timer-fix-a64-timejump.patch index 493e76879..21f5b8aec 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-clocksource-arm_arch_timer-fix-a64-timejump.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-clocksource-arm_arch_timer-fix-a64-timejump.patch @@ -11,7 +11,7 @@ diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch index 111111111111..222222222222 100644 --- a/drivers/clocksource/arm_arch_timer.c +++ b/drivers/clocksource/arm_arch_timer.c -@@ -383,17 +383,20 @@ static u64 notrace arm64_858921_read_cntvct_el0(void) +@@ -282,17 +282,20 @@ static u64 notrace arm64_858921_read_cntvct_el0(void) * with all ones or all zeros in the low bits. Bound the loop by the maximum * number of CPU cycles in 3 consecutive 24 MHz counter periods. */ diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-gem-dma-Export-with-handle-allocator.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-gem-dma-Export-with-handle-allocator.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-gem-dma-Export-with-handle-allocator.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-gem-dma-Export-with-handle-allocator.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-panel-simple-Add-compability-olinuxino-lcd.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-panel-simple-Add-compability-olinuxino-lcd.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-panel-simple-Add-compability-olinuxino-lcd.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-panel-simple-Add-compability-olinuxino-lcd.patch index 3b39cfdd4..8a5a1ffb2 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-panel-simple-Add-compability-olinuxino-lcd.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-panel-simple-Add-compability-olinuxino-lcd.patch @@ -1,17 +1,17 @@ -From f01c1716f180cb356fd9c9a12ea0eaf4ed7d9069 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 19:34:55 +0300 Subject: drv:gpu:drm: panel-simple Add compability olinuxino lcd --- - drivers/gpu/drm/panel/panel-simple.c | 125 ++++++++++++++++++++++++++- + drivers/gpu/drm/panel/panel-simple.c | 125 +++++++++- 1 file changed, 121 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c -index 9f81fa960b46..5b4a8dd31a1b 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c -@@ -3670,6 +3670,42 @@ static const struct panel_desc okaya_rs800480t_7x0gp = { +@@ -3694,6 +3694,42 @@ static const struct panel_desc okaya_rs800480t_7x0gp = { .bus_format = MEDIA_BUS_FMT_RGB666_1X18, }; @@ -54,7 +54,7 @@ index 9f81fa960b46..5b4a8dd31a1b 100644 static const struct drm_display_mode olimex_lcd_olinuxino_43ts_mode = { .clock = 9000, .hdisplay = 480, -@@ -3682,8 +3718,8 @@ static const struct drm_display_mode olimex_lcd_olinuxino_43ts_mode = { +@@ -3706,8 +3742,8 @@ static const struct drm_display_mode olimex_lcd_olinuxino_43ts_mode = { .vtotal = 272 + 8 + 5 + 3, }; @@ -65,7 +65,7 @@ index 9f81fa960b46..5b4a8dd31a1b 100644 .num_modes = 1, .size = { .width = 95, -@@ -3725,6 +3761,72 @@ static const struct panel_desc ontat_kd50g21_40nt_a1 = { +@@ -3772,6 +3808,72 @@ static const struct panel_desc ontat_kd50g21_40nt_a1 = { .connector_type = DRM_MODE_CONNECTOR_DPI, }; @@ -138,7 +138,7 @@ index 9f81fa960b46..5b4a8dd31a1b 100644 /* * 800x480 CVT. The panel appears to be quite accepting, at least as far as * pixel clocks, but this is the timing that was being used in the Adafruit -@@ -5249,8 +5351,23 @@ static const struct of_device_id platform_of_match[] = { +@@ -5299,8 +5401,23 @@ static const struct of_device_id platform_of_match[] = { .compatible = "okaya,rs800480t-7x0gp", .data = &okaya_rs800480t_7x0gp, }, { @@ -162,8 +162,8 @@ index 9f81fa960b46..5b4a8dd31a1b 100644 + .compatible = "olimex,lcd-olinuxino-10", + .data = &olimex_lcd_olinuxino_10, }, { - .compatible = "ontat,kd50g21-40nt-a1", - .data = &ontat_kd50g21_40nt_a1, + .compatible = "olimex,lcd-olinuxino-5-cts", + .data = &olimex_lcd_olinuxino_5cts, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-sun4i-Add-GEM-allocator.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-sun4i-Add-GEM-allocator.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-sun4i-Add-GEM-allocator.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-sun4i-Add-GEM-allocator.patch index a75bb1654..2168f7acc 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-sun4i-Add-GEM-allocator.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-sun4i-Add-GEM-allocator.patch @@ -1,4 +1,4 @@ -From c4ff09ffb5ec28fe119e3fa89dbd464b5d208637 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 7 Dec 2015 09:47:34 +0100 Subject: drv:gpu:drm:sun4i: Add GEM allocator @@ -6,13 +6,12 @@ Subject: drv:gpu:drm:sun4i: Add GEM allocator Signed-off-by: Maxime Ripard Signed-off-by: The-going <48602507+The-going@users.noreply.github.com> --- - drivers/gpu/drm/sun4i/sun4i_drv.c | 27 +++++++++++++++++++++++++++ - include/uapi/drm/sun4i_drm.h | 29 +++++++++++++++++++++++++++++ + drivers/gpu/drm/sun4i/sun4i_drv.c | 27 +++++++++ + include/uapi/drm/sun4i_drm.h | 29 ++++++++++ 2 files changed, 56 insertions(+) - create mode 100644 include/uapi/drm/sun4i_drm.h diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c -index c11dfb2739fa..9389a8a075dd 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun4i_drv.c +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c @@ -25,6 +25,8 @@ @@ -65,7 +64,7 @@ index c11dfb2739fa..9389a8a075dd 100644 DRM_FBDEV_DMA_DRIVER_OPS, diff --git a/include/uapi/drm/sun4i_drm.h b/include/uapi/drm/sun4i_drm.h new file mode 100644 -index 000000000000..67b9dd4ee594 +index 000000000000..111111111111 --- /dev/null +++ b/include/uapi/drm/sun4i_drm.h @@ -0,0 +1,29 @@ @@ -99,5 +98,5 @@ index 000000000000..67b9dd4ee594 + +#endif -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch similarity index 97% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch index 45d5e4211..c7cc2ba0b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch @@ -1,4 +1,4 @@ -From c7f9993fb9fa967e80d5b2dc2d422b5dc8ce9f7c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 24 Jan 2022 13:07:16 +0300 Subject: drv:gpu:drm:sun4i: Add HDMI audio sun4i-hdmi encoder @@ -14,14 +14,13 @@ Signed-off-by: Stefan Mavrodiev --- drivers/gpu/drm/sun4i/Kconfig | 11 + drivers/gpu/drm/sun4i/Makefile | 3 + - drivers/gpu/drm/sun4i/sun4i_hdmi.h | 36 ++ - drivers/gpu/drm/sun4i/sun4i_hdmi_audio.c | 450 +++++++++++++++++++++++ + drivers/gpu/drm/sun4i/sun4i_hdmi.h | 36 + + drivers/gpu/drm/sun4i/sun4i_hdmi_audio.c | 450 ++++++++++ drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c | 16 + 5 files changed, 516 insertions(+) - create mode 100644 drivers/gpu/drm/sun4i/sun4i_hdmi_audio.c diff --git a/drivers/gpu/drm/sun4i/Kconfig b/drivers/gpu/drm/sun4i/Kconfig -index b56ba00aabca..0d1f37fcd51a 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/Kconfig +++ b/drivers/gpu/drm/sun4i/Kconfig @@ -27,6 +27,17 @@ config DRM_SUN4I_HDMI @@ -43,7 +42,7 @@ index b56ba00aabca..0d1f37fcd51a 100644 bool "Allwinner A10/A10s/A20/A31 HDMI CEC Support" depends on DRM_SUN4I_HDMI diff --git a/drivers/gpu/drm/sun4i/Makefile b/drivers/gpu/drm/sun4i/Makefile -index 78290f1660fb..8ffddaa3e069 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/Makefile +++ b/drivers/gpu/drm/sun4i/Makefile @@ -5,6 +5,9 @@ sun4i-frontend-y += sun4i_frontend.o @@ -57,7 +56,7 @@ index 78290f1660fb..8ffddaa3e069 100644 sun4i-drm-hdmi-y += sun4i_hdmi_enc.o sun4i-drm-hdmi-y += sun4i_hdmi_i2c.o diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi.h b/drivers/gpu/drm/sun4i/sun4i_hdmi.h -index 65c801cd6f35..2edced4eb5d5 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun4i_hdmi.h +++ b/drivers/gpu/drm/sun4i/sun4i_hdmi.h @@ -42,7 +42,32 @@ @@ -126,7 +125,7 @@ index 65c801cd6f35..2edced4eb5d5 100644 #endif /* _SUN4I_HDMI_H_ */ diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_audio.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_audio.c new file mode 100644 -index 000000000000..a66b6c51947a +index 000000000000..111111111111 --- /dev/null +++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_audio.c @@ -0,0 +1,450 @@ @@ -581,7 +580,7 @@ index 000000000000..a66b6c51947a + dev_set_drvdata(hdmi->dev, data); +} diff --git a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c -index 22024fd34b2b..18be76f66829 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c +++ b/drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c @@ -29,6 +29,8 @@ @@ -629,5 +628,5 @@ index 22024fd34b2b..18be76f66829 100644 connector->display_info.is_hdmi ? "an HDMI" : "a DVI"); -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch similarity index 74% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch index 0cb9905c3..571371fa8 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch @@ -1,17 +1,17 @@ -From eb4ea7b5f64403ab03684cbcf9650cdec7f82129 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Tue, 1 Feb 2022 19:37:03 +0300 Subject: drv:gpu:drm:sun4i:sun8i_mixer.c add h3 mixer1 --- - drivers/gpu/drm/sun4i/sun8i_mixer.c | 12 ++++++++++++ + drivers/gpu/drm/sun4i/sun8i_mixer.c | 12 ++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index bfed8a6b453f..460e793f96d8 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -828,6 +828,14 @@ static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = { +@@ -719,6 +719,14 @@ static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = { .vi_num = 1, }; @@ -25,8 +25,8 @@ index bfed8a6b453f..460e793f96d8 100644 + static const struct sun8i_mixer_cfg sun8i_r40_mixer0_cfg = { .ccsc = CCSC_MIXER0_LAYOUT, - .de_type = sun8i_mixer_de2, -@@ -934,6 +942,10 @@ static const struct of_device_id sun8i_mixer_of_table[] = { + .de_type = SUN8I_MIXER_DE2, +@@ -823,6 +831,10 @@ static const struct of_device_id sun8i_mixer_of_table[] = { .compatible = "allwinner,sun8i-h3-de2-mixer-0", .data = &sun8i_h3_mixer0_cfg, }, @@ -38,5 +38,5 @@ index bfed8a6b453f..460e793f96d8 100644 .compatible = "allwinner,sun8i-r40-de2-mixer-0", .data = &sun8i_r40_mixer0_cfg, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-iio-adc-axp20x_adc-arm64-dts-axp803-hwmon-enable-thermal.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-iio-adc-axp20x_adc-arm64-dts-axp803-hwmon-enable-thermal.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-iio-adc-axp20x_adc-arm64-dts-axp803-hwmon-enable-thermal.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-iio-adc-axp20x_adc-arm64-dts-axp803-hwmon-enable-thermal.patch index 601d38a4e..659904889 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-iio-adc-axp20x_adc-arm64-dts-axp803-hwmon-enable-thermal.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-iio-adc-axp20x_adc-arm64-dts-axp803-hwmon-enable-thermal.patch @@ -1,15 +1,15 @@ -From 62c8a5f644fb4bacc836456d83bc0cc69645102a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mitko Gamishev Date: Wed, 5 Feb 2020 14:57:10 +0200 Subject: drv:iio:adc:axp20x_adc arm64:dts:axp803 hwmon enable thermal --- arch/arm64/boot/dts/allwinner/axp803.dtsi | 1 + - drivers/iio/adc/axp20x_adc.c | 90 +++++++++++++++++++++++ + drivers/iio/adc/axp20x_adc.c | 90 ++++++++++ 2 files changed, 91 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/axp803.dtsi b/arch/arm64/boot/dts/allwinner/axp803.dtsi -index a6b4b87f185d..422be59f5d88 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/axp803.dtsi +++ b/arch/arm64/boot/dts/allwinner/axp803.dtsi @@ -19,6 +19,7 @@ ac_power_supply: ac-power { @@ -21,7 +21,7 @@ index a6b4b87f185d..422be59f5d88 100644 axp_gpio: gpio { diff --git a/drivers/iio/adc/axp20x_adc.c b/drivers/iio/adc/axp20x_adc.c -index 9b15298eb152..64468cb74f40 100644 +index 111111111111..222222222222 100644 --- a/drivers/iio/adc/axp20x_adc.c +++ b/drivers/iio/adc/axp20x_adc.c @@ -8,6 +8,7 @@ @@ -180,5 +180,5 @@ index 9b15298eb152..64468cb74f40 100644 iio_map_array_unregister(indio_dev); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-input-touchscreen-sun4i-ts-Enable-parsing.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-input-touchscreen-sun4i-ts-Enable-parsing.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-input-touchscreen-sun4i-ts-Enable-parsing.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-input-touchscreen-sun4i-ts-Enable-parsing.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-media-dvb-frontends-si2168-fix-cmd-timeout.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-media-dvb-frontends-si2168-fix-cmd-timeout.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-media-dvb-frontends-si2168-fix-cmd-timeout.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-media-dvb-frontends-si2168-fix-cmd-timeout.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-mfd-axp20x-add-sysfs-interface.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-mfd-axp20x-add-sysfs-interface.patch similarity index 97% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-mfd-axp20x-add-sysfs-interface.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-mfd-axp20x-add-sysfs-interface.patch index a53e21ed0..a7a0137e3 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-mfd-axp20x-add-sysfs-interface.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-mfd-axp20x-add-sysfs-interface.patch @@ -1,14 +1,14 @@ -From 2a8a9e3104ce70230ca67a39fd406d84662e77b2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Tue, 1 Feb 2022 21:38:26 +0300 Subject: drv:mfd:axp20x add sysfs interface --- - drivers/mfd/axp20x.c | 614 +++++++++++++++++++++++++++++++++++++++++++ + drivers/mfd/axp20x.c | 614 ++++++++++ 1 file changed, 614 insertions(+) diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c -index 96a675f525cd..79640e22efa7 100644 +index 111111111111..222222222222 100644 --- a/drivers/mfd/axp20x.c +++ b/drivers/mfd/axp20x.c @@ -85,6 +85,7 @@ static const struct regmap_range axp20x_volatile_ranges[] = { @@ -19,7 +19,7 @@ index 96a675f525cd..79640e22efa7 100644 regmap_reg_range(AXP20X_FG_RES, AXP20X_RDC_L), }; -@@ -1302,6 +1303,611 @@ static int axp20x_power_off(struct sys_off_data *data) +@@ -1301,6 +1302,611 @@ static int axp20x_power_off(struct sys_off_data *data) return NOTIFY_DONE; } @@ -54,7 +54,7 @@ index 96a675f525cd..79640e22efa7 100644 + +static ssize_t axp20x_sysfs_read_bin_file(struct file *filp, + struct kobject *kobj, -+ struct bin_attribute *bin_attr, ++ const struct bin_attribute *bin_attr, + char *buf, loff_t off, size_t count) +{ + int ret; @@ -73,7 +73,7 @@ index 96a675f525cd..79640e22efa7 100644 + +static ssize_t axp20x_sysfs_write_bin_file(struct file *filp, + struct kobject *kobj, -+ struct bin_attribute *bin_attr, ++ const struct bin_attribute *bin_attr, + char *buf, loff_t off, size_t count) +{ + int ret; @@ -631,7 +631,7 @@ index 96a675f525cd..79640e22efa7 100644 int axp20x_match_device(struct axp20x_dev *axp20x) { struct device *dev = axp20x->dev; -@@ -1502,6 +2108,10 @@ int axp20x_device_probe(struct axp20x_dev *axp20x) +@@ -1501,6 +2107,10 @@ int axp20x_device_probe(struct axp20x_dev *axp20x) if (axp20x->variant != AXP288_ID) devm_register_power_off_handler(axp20x->dev, axp20x_power_off, axp20x); @@ -642,7 +642,7 @@ index 96a675f525cd..79640e22efa7 100644 dev_info(axp20x->dev, "AXP20X driver loaded\n"); return 0; -@@ -1510,6 +2120,10 @@ EXPORT_SYMBOL(axp20x_device_probe); +@@ -1509,6 +2119,10 @@ EXPORT_SYMBOL(axp20x_device_probe); void axp20x_device_remove(struct axp20x_dev *axp20x) { @@ -654,5 +654,5 @@ index 96a675f525cd..79640e22efa7 100644 regmap_del_irq_chip(axp20x->irq, axp20x->regmap_irqc); } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-mmc-host-sunxi-mmc-Disable-DDR52-mode-on-all-A20-based-boar.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-mmc-host-sunxi-mmc-Disable-DDR52-mode-on-all-A20-based-boar.patch similarity index 93% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-mmc-host-sunxi-mmc-Disable-DDR52-mode-on-all-A20-based-boar.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-mmc-host-sunxi-mmc-Disable-DDR52-mode-on-all-A20-based-boar.patch index a13b28d3a..5efbec185 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-mmc-host-sunxi-mmc-Disable-DDR52-mode-on-all-A20-based-boar.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-mmc-host-sunxi-mmc-Disable-DDR52-mode-on-all-A20-based-boar.patch @@ -11,7 +11,7 @@ diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c index 111111111111..222222222222 100644 --- a/drivers/mmc/host/sunxi-mmc.c +++ b/drivers/mmc/host/sunxi-mmc.c -@@ -1452,7 +1452,9 @@ static int sunxi_mmc_probe(struct platform_device *pdev) +@@ -1449,7 +1449,9 @@ static int sunxi_mmc_probe(struct platform_device *pdev) */ if ((host->cfg->clk_delays || host->use_new_timings) && !of_device_is_compatible(pdev->dev.of_node, diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-mmc-host-sunxi-mmc-add-h5-emmc-compatible.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-mmc-host-sunxi-mmc-add-h5-emmc-compatible.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-mmc-host-sunxi-mmc-add-h5-emmc-compatible.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-mmc-host-sunxi-mmc-add-h5-emmc-compatible.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-mtd-nand-raw-nand_ids.c-add-H27UBG8T2BTR-BC-nand.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-mtd-nand-raw-nand_ids.c-add-H27UBG8T2BTR-BC-nand.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-mtd-nand-raw-nand_ids.c-add-H27UBG8T2BTR-BC-nand.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-mtd-nand-raw-nand_ids.c-add-H27UBG8T2BTR-BC-nand.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-net-stmmac-dwmac-sun8i-second-EMAC-clock-register.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-net-stmmac-dwmac-sun8i-second-EMAC-clock-register.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-net-stmmac-dwmac-sun8i-second-EMAC-clock-register.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-net-stmmac-dwmac-sun8i-second-EMAC-clock-register.patch index ccdf0ffae..88a9aa971 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-net-stmmac-dwmac-sun8i-second-EMAC-clock-register.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-net-stmmac-dwmac-sun8i-second-EMAC-clock-register.patch @@ -1,4 +1,4 @@ -From 0e86acce22820a1b61e674de21f25408aba69812 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andre Przywara Date: Thu, 10 Dec 2020 14:42:12 +0000 Subject: drv:net:stmmac:dwmac-sun8i: second EMAC clock register @@ -14,14 +14,14 @@ needed. Signed-off-by: Andre Przywara --- - drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 12 ++++++++++-- + drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 12 ++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -index 11a14451b6dd..7a96d432b29f 100644 +index 111111111111..222222222222 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -@@ -1163,10 +1163,12 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) +@@ -1124,10 +1124,12 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) struct stmmac_resources stmmac_res; struct sunxi_priv_data *gmac; struct device *dev = &pdev->dev; @@ -34,7 +34,7 @@ index 11a14451b6dd..7a96d432b29f 100644 ret = stmmac_get_platform_resources(pdev, &stmmac_res); if (ret) -@@ -1221,8 +1223,12 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) +@@ -1182,8 +1184,12 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) return ret; } @@ -49,7 +49,7 @@ index 11a14451b6dd..7a96d432b29f 100644 if (IS_ERR(gmac->regmap_field)) { ret = PTR_ERR(gmac->regmap_field); dev_err(dev, "Unable to map syscon register: %d\n", ret); -@@ -1336,6 +1342,8 @@ static const struct of_device_id sun8i_dwmac_match[] = { +@@ -1297,6 +1303,8 @@ static const struct of_device_id sun8i_dwmac_match[] = { .data = &emac_variant_a64 }, { .compatible = "allwinner,sun50i-h6-emac", .data = &emac_variant_h6 }, @@ -59,5 +59,5 @@ index 11a14451b6dd..7a96d432b29f 100644 }; MODULE_DEVICE_TABLE(of, sun8i_dwmac_match); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-nvmem-sunxi_sid-Support-SID-on-H616.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-nvmem-sunxi_sid-Support-SID-on-H616.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-nvmem-sunxi_sid-Support-SID-on-H616.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-nvmem-sunxi_sid-Support-SID-on-H616.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch index c7240c78a..badf39ded 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch @@ -1,4 +1,4 @@ -From 0bfb8399d8b4f46ac87a2ae980126ca2c6c6cb1f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Tue, 1 Feb 2022 19:22:21 +0300 Subject: drv:of: Device Tree Overlay ConfigFS interface @@ -6,13 +6,12 @@ Subject: drv:of: Device Tree Overlay ConfigFS interface --- drivers/of/Kconfig | 7 + drivers/of/Makefile | 1 + - drivers/of/configfs.c | 278 +++++++++++++++++++++++++++++++++++++++ + drivers/of/configfs.c | 278 ++++++++++ drivers/of/fdt_address.c | 2 +- 4 files changed, 287 insertions(+), 1 deletion(-) - create mode 100644 drivers/of/configfs.c diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig -index 50697cc3b07e..f9d2fc56fc41 100644 +index 111111111111..222222222222 100644 --- a/drivers/of/Kconfig +++ b/drivers/of/Kconfig @@ -123,6 +123,13 @@ config OF_OVERLAY_KUNIT_TEST @@ -30,7 +29,7 @@ index 50697cc3b07e..f9d2fc56fc41 100644 bool diff --git a/drivers/of/Makefile b/drivers/of/Makefile -index 379a0afcbdc0..2be9021017ba 100644 +index 111111111111..222222222222 100644 --- a/drivers/of/Makefile +++ b/drivers/of/Makefile @@ -11,6 +11,7 @@ obj-$(CONFIG_OF_UNITTEST) += unittest.o @@ -43,7 +42,7 @@ index 379a0afcbdc0..2be9021017ba 100644 ifdef CONFIG_KEXEC_FILE diff --git a/drivers/of/configfs.c b/drivers/of/configfs.c new file mode 100644 -index 000000000000..87974779561f +index 000000000000..111111111111 --- /dev/null +++ b/drivers/of/configfs.c @@ -0,0 +1,278 @@ @@ -326,7 +325,7 @@ index 000000000000..87974779561f +} +late_initcall(of_cfs_init); diff --git a/drivers/of/fdt_address.c b/drivers/of/fdt_address.c -index f358d2c80754..e1353d7a58e6 100644 +index 111111111111..222222222222 100644 --- a/drivers/of/fdt_address.c +++ b/drivers/of/fdt_address.c @@ -147,7 +147,7 @@ static int __init fdt_translate_one(const void *blob, int parent, @@ -339,5 +338,5 @@ index f358d2c80754..e1353d7a58e6 100644 int parent, len; const struct of_bus *bus, *pbus; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-phy-sun4i-usb-Allow-reset-line-to-be-shared.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-phy-sun4i-usb-Allow-reset-line-to-be-shared.patch similarity index 80% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-phy-sun4i-usb-Allow-reset-line-to-be-shared.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-phy-sun4i-usb-Allow-reset-line-to-be-shared.patch index 3076b4b20..a2020a5f6 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-phy-sun4i-usb-Allow-reset-line-to-be-shared.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-phy-sun4i-usb-Allow-reset-line-to-be-shared.patch @@ -1,4 +1,4 @@ -From 711fd07f4f2fb4697271dd78076e2d4c6092c685 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andre Przywara Date: Mon, 10 May 2021 11:01:31 +0100 Subject: drv:phy: sun4i-usb: Allow reset line to be shared @@ -19,18 +19,18 @@ Signed-off-by: Andre Przywara 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c -index 3d8d94594bc5..79bce901fa21 100644 +index 111111111111..222222222222 100644 --- a/drivers/phy/allwinner/phy-sun4i-usb.c +++ b/drivers/phy/allwinner/phy-sun4i-usb.c -@@ -865,7 +865,7 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) - } +@@ -822,7 +822,7 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) + continue; snprintf(name, sizeof(name), "usb%d_reset", i); - phy->reset = devm_reset_control_get(dev, name); + phy->reset = devm_reset_control_get_shared(dev, name); if (IS_ERR(phy->reset)) { - dev_err(dev, "failed to get reset %s\n", name); - return PTR_ERR(phy->reset); + if (PTR_ERR(phy->reset) == -ENOENT) + break; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-pinctrl-pinctrl-sun50i-a64-disable_strict_mode.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-pinctrl-pinctrl-sun50i-a64-disable_strict_mode.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-pinctrl-pinctrl-sun50i-a64-disable_strict_mode.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-pinctrl-pinctrl-sun50i-a64-disable_strict_mode.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-pinctrl-sunxi-pinctrl-sun50i-h6.c-GPIO-disable_strict_mode.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-pinctrl-sunxi-pinctrl-sun50i-h6.c-GPIO-disable_strict_mode.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-pinctrl-sunxi-pinctrl-sun50i-h6.c-GPIO-disable_strict_mode.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-pinctrl-sunxi-pinctrl-sun50i-h6.c-GPIO-disable_strict_mode.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-soc-sunxi-sram-Add-SRAM-C1-H616-handling.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-soc-sunxi-sram-Add-SRAM-C1-H616-handling.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-soc-sunxi-sram-Add-SRAM-C1-H616-handling.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-soc-sunxi-sram-Add-SRAM-C1-H616-handling.patch index 5f140dd85..5ea6cb820 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-soc-sunxi-sram-Add-SRAM-C1-H616-handling.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-soc-sunxi-sram-Add-SRAM-C1-H616-handling.patch @@ -12,7 +12,7 @@ diff --git a/drivers/soc/sunxi/sunxi_sram.c b/drivers/soc/sunxi/sunxi_sram.c index 111111111111..222222222222 100644 --- a/drivers/soc/sunxi/sunxi_sram.c +++ b/drivers/soc/sunxi/sunxi_sram.c -@@ -69,6 +69,12 @@ static struct sunxi_sram_desc sun4i_a10_sram_c1 = { +@@ -70,6 +70,12 @@ static struct sunxi_sram_desc sun4i_a10_sram_c1 = { SUNXI_SRAM_MAP(0x7fffffff, 1, "ve")), }; @@ -25,7 +25,7 @@ index 111111111111..222222222222 100644 static struct sunxi_sram_desc sun4i_a10_sram_d = { .data = SUNXI_SRAM_DATA("D", 0x4, 0x0, 1, SUNXI_SRAM_MAP(0, 0, "cpu"), -@@ -98,6 +104,10 @@ static const struct of_device_id sunxi_sram_dt_ids[] = { +@@ -99,6 +105,10 @@ static const struct of_device_id sunxi_sram_dt_ids[] = { .compatible = "allwinner,sun50i-a64-sram-c", .data = &sun50i_a64_sram_c.data, }, diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-spi-spi-sun4i.c-spi-bug-low-on-sck.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-spi-spi-sun4i.c-spi-bug-low-on-sck.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-spi-spi-sun4i.c-spi-bug-low-on-sck.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-spi-spi-sun4i.c-spi-bug-low-on-sck.patch index cd394670f..09dd343a3 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-spi-spi-sun4i.c-spi-bug-low-on-sck.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-spi-spi-sun4i.c-spi-bug-low-on-sck.patch @@ -1,4 +1,4 @@ -From f45c4632c0d5d25901f125ad80b245e5bdf50f7f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:16:31 +0300 Subject: drv:spi:spi-sun4i.c spi bug low on sck @@ -8,7 +8,7 @@ Subject: drv:spi:spi-sun4i.c spi bug low on sck 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-sun4i.c b/drivers/spi/spi-sun4i.c -index aa92fd5a35a9..9f3273256354 100644 +index 111111111111..222222222222 100644 --- a/drivers/spi/spi-sun4i.c +++ b/drivers/spi/spi-sun4i.c @@ -393,6 +393,7 @@ static int sun4i_spi_runtime_resume(struct device *dev) @@ -31,5 +31,5 @@ index aa92fd5a35a9..9f3273256354 100644 return 0; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-spi-spidev-Add-armbian-spi-dev-compatible.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-spi-spidev-Add-armbian-spi-dev-compatible.patch similarity index 66% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-spi-spidev-Add-armbian-spi-dev-compatible.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-spi-spidev-Add-armbian-spi-dev-compatible.patch index e1cb91faf..dcc2445c4 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-spi-spidev-Add-armbian-spi-dev-compatible.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-spi-spidev-Add-armbian-spi-dev-compatible.patch @@ -1,37 +1,46 @@ -From 36b50c879cbe1ac572e0c2c9dacc32f7405fd36e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 11:56:51 +0300 Subject: drv:spi:spidev Add armbian spi-dev compatible --- - drivers/spi/spidev.c | 3 +++ - 1 file changed, 3 insertions(+) + drivers/spi/spidev.c | 4 ++++ + 1 file changed, 4 insertions(+) diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c -index 6108959c28d9..4f968069bd60 100644 +index 111111111111..222222222222 100644 --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c @@ -703,6 +703,7 @@ static const struct class spidev_class = { - * spidev_dt_ids array below. Both arrays are kept in the same ordering. */ static const struct spi_device_id spidev_spi_ids[] = { + { .name = /* abb */ "spi-sensor" }, + { .name = /* armbian */ "spi-dev" }, { .name = /* cisco */ "spi-petra" }, { .name = /* dh */ "dhcom-board" }, { .name = /* elgin */ "jg10309-01" }, -@@ -731,10 +732,12 @@ static int spidev_of_check(struct device *dev) +@@ -731,11 +732,13 @@ static int spidev_of_check(struct device *dev) return 0; dev_err(dev, "spidev listed directly in DT is not supported\n"); -+ dev_info(dev, "Use a compatible alias string like spi-dev in DT\n"); ++ return -EINVAL; } static const struct of_device_id spidev_dt_ids[] = { + { .compatible = "abb,spi-sensor", .data = &spidev_of_check }, + { .compatible = "armbian,spi-dev", .data = &spidev_of_check }, { .compatible = "cisco,spi-petra", .data = &spidev_of_check }, { .compatible = "dh,dhcom-board", .data = &spidev_of_check }, { .compatible = "elgin,jg10309-01", .data = &spidev_of_check }, +@@ -758,6 +761,7 @@ MODULE_DEVICE_TABLE(of, spidev_dt_ids); + static int spidev_acpi_check(struct device *dev) + { + dev_warn(dev, "do not use this driver in production systems!\n"); ++ dev_info(dev, "Use a compatible alias string like spi-dev in DT\n"); + return 0; + } + -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-staging-media-sunxi-cedrus-add-H616-variant.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-staging-media-sunxi-cedrus-add-H616-variant.patch similarity index 79% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-staging-media-sunxi-cedrus-add-H616-variant.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-staging-media-sunxi-cedrus-add-H616-variant.patch index 3bcfe4605..4782979e1 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-staging-media-sunxi-cedrus-add-H616-variant.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-staging-media-sunxi-cedrus-add-H616-variant.patch @@ -1,18 +1,18 @@ -From bb7878b3cdbebd2e3c5975b65f92f59141bd76b9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 15 Oct 2021 21:49:45 +0200 Subject: drv:staging:media:sunxi:cedrus: add H616 variant Signed-off-by: Jernej Skrabec --- - drivers/staging/media/sunxi/cedrus/cedrus.c | 13 +++++++++++++ + drivers/staging/media/sunxi/cedrus/cedrus.c | 13 ++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c -index 08f8d994c99c..191bb30ae1e8 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus.c -@@ -651,6 +651,15 @@ static const struct cedrus_variant sun50i_h6_cedrus_variant = { +@@ -649,6 +649,15 @@ static const struct cedrus_variant sun50i_h6_cedrus_variant = { .mod_rate = 648000000, }; @@ -28,7 +28,7 @@ index 08f8d994c99c..191bb30ae1e8 100644 static const struct of_device_id cedrus_dt_match[] = { { .compatible = "allwinner,sun4i-a10-video-engine", -@@ -696,6 +705,10 @@ static const struct of_device_id cedrus_dt_match[] = { +@@ -694,6 +703,10 @@ static const struct of_device_id cedrus_dt_match[] = { .compatible = "allwinner,sun50i-h6-video-engine", .data = &sun50i_h6_cedrus_variant, }, @@ -40,5 +40,5 @@ index 08f8d994c99c..191bb30ae1e8 100644 }; MODULE_DEVICE_TABLE(of, cedrus_dt_match); -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-staging-rtl8723bs-AP-bugfix.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-staging-rtl8723bs-AP-bugfix.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-staging-rtl8723bs-AP-bugfix.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-staging-rtl8723bs-AP-bugfix.patch index 14ad1e2ed..ecbf8d200 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-staging-rtl8723bs-AP-bugfix.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-staging-rtl8723bs-AP-bugfix.patch @@ -1,4 +1,4 @@ -From 426ff5c4a9a47d9da2701ce9365af6fd64ca50c9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 7 Feb 2022 17:00:50 +0300 Subject: drv:staging:rtl8723bs: AP bugfix @@ -8,10 +8,10 @@ Subject: drv:staging:rtl8723bs: AP bugfix 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c -index 7fcc46a0bb48..97616c2d34e1 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c +++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c -@@ -1922,7 +1922,7 @@ void rtw_cfg80211_indicate_sta_assoc(struct adapter *padapter, u8 *pmgmt_frame, +@@ -1924,7 +1924,7 @@ void rtw_cfg80211_indicate_sta_assoc(struct adapter *padapter, u8 *pmgmt_frame, else /* WIFI_REASSOCREQ */ ie_offset = _REASOCREQ_IE_OFFSET_; @@ -21,5 +21,5 @@ index 7fcc46a0bb48..97616c2d34e1 100644 sinfo.assoc_req_ies_len = frame_len - WLAN_HDR_A3_LEN - ie_offset; cfg80211_new_sta(ndev, GetAddr2Ptr(pmgmt_frame), &sinfo, GFP_ATOMIC); -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-usb-gadget-composite-rename-gadget-serial-console-manufactu.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-usb-gadget-composite-rename-gadget-serial-console-manufactu.patch similarity index 81% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/drv-usb-gadget-composite-rename-gadget-serial-console-manufactu.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/drv-usb-gadget-composite-rename-gadget-serial-console-manufactu.patch index 422113212..499aefc73 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/drv-usb-gadget-composite-rename-gadget-serial-console-manufactu.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/drv-usb-gadget-composite-rename-gadget-serial-console-manufactu.patch @@ -1,4 +1,4 @@ -From 18640635e385dffab84e97be3bd0d9a1f145326a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 20:08:50 +0300 Subject: drv:usb:gadget:composite rename gadget serial console manufacturer @@ -10,10 +10,10 @@ to the Armbian brand. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c -index a893a29ebfac..4f28ef234f51 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c -@@ -2780,7 +2780,7 @@ EXPORT_SYMBOL_GPL(usb_composite_setup_continue); +@@ -2756,7 +2756,7 @@ EXPORT_SYMBOL_GPL(usb_composite_setup_continue); static char *composite_default_mfr(struct usb_gadget *gadget) { @@ -23,5 +23,5 @@ index a893a29ebfac..4f28ef234f51 100644 } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch index 39322a513..7993c3596 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch @@ -1,4 +1,4 @@ -From 401cf6db854dc76d05332b5699597836d4eb0845 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Radoslav Date: Sat, 15 Apr 2023 22:47:26 +0200 Subject: enable TV Output on OrangePi Zero LTE @@ -17,28 +17,26 @@ Merged: > X-Git-Archeology: From: Radoslav > X-Git-Archeology: Subject: h3-tve (arm-dts-sun8i-h3-orangepizero-add_tve.patch) --- - arch/arm/boot/dts/allwinner/overlay/Makefile | 1 + - .../overlay/README.sun8i-h3-overlays | 10 ++ - .../dts/allwinner/overlay/sun8i-h3-tve.dtso | 34 +++++++ - .../allwinner/sun8i-h2-plus-orangepi-zero.dts | 4 + - .../dts/allwinner/sun8i-h3-orangepi-pc.dts | 4 + - arch/arm/boot/dts/allwinner/sun8i-h3.dtsi | 22 +++++ - arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi | 95 ++++++++++++++++++- - .../arm64/boot/dts/allwinner/overlay/Makefile | 1 + - .../overlay/README.sun50i-h5-overlays | 5 + - .../dts/allwinner/overlay/sun50i-h5-tve.dtso | 34 +++++++ - arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi | 22 +++++ - drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 14 ++- - drivers/gpu/drm/sun4i/Makefile | 2 +- - drivers/gpu/drm/sun4i/sun4i_tv.c | 35 ++++++- - drivers/gpu/drm/sun4i/sun8i_mixer.c | 30 +++++- - drivers/gpu/drm/sun4i/sun8i_mixer.h | 2 + + arch/arm/boot/dts/allwinner/overlay/Makefile | 1 + + arch/arm/boot/dts/allwinner/overlay/README.sun8i-h3-overlays | 10 + + arch/arm/boot/dts/allwinner/overlay/sun8i-h3-tve.dtso | 34 ++++ + arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts | 4 + + arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts | 4 + + arch/arm/boot/dts/allwinner/sun8i-h3.dtsi | 22 +++ + arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi | 95 +++++++++- + arch/arm64/boot/dts/allwinner/overlay/Makefile | 1 + + arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays | 5 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-tve.dtso | 34 ++++ + arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi | 22 +++ + drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 14 +- + drivers/gpu/drm/sun4i/Makefile | 2 +- + drivers/gpu/drm/sun4i/sun4i_tv.c | 35 +++- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 30 ++- + drivers/gpu/drm/sun4i/sun8i_mixer.h | 2 + 16 files changed, 305 insertions(+), 10 deletions(-) - create mode 100644 arch/arm/boot/dts/allwinner/overlay/sun8i-h3-tve.dtso - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-tve.dtso diff --git a/arch/arm/boot/dts/allwinner/overlay/Makefile b/arch/arm/boot/dts/allwinner/overlay/Makefile -index 560f926b7018..23ecb62e2478 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/overlay/Makefile +++ b/arch/arm/boot/dts/allwinner/overlay/Makefile @@ -80,6 +80,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ @@ -50,7 +48,7 @@ index 560f926b7018..23ecb62e2478 100644 sun8i-r40-i2c3.dtbo \ sun8i-r40-spi-spidev0.dtbo \ diff --git a/arch/arm/boot/dts/allwinner/overlay/README.sun8i-h3-overlays b/arch/arm/boot/dts/allwinner/overlay/README.sun8i-h3-overlays -index 462439ec482d..a5889b5c556f 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/overlay/README.sun8i-h3-overlays +++ b/arch/arm/boot/dts/allwinner/overlay/README.sun8i-h3-overlays @@ -34,6 +34,7 @@ adding fixed software (GPIO) chip selects is possible with a separate overlay @@ -76,7 +74,7 @@ index 462439ec482d..a5889b5c556f 100644 + Not sure how to change the mode between PAL/NTSC. diff --git a/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-tve.dtso b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-tve.dtso new file mode 100644 -index 000000000000..07ba7ba713dd +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/overlay/sun8i-h3-tve.dtso @@ -0,0 +1,34 @@ @@ -115,7 +113,7 @@ index 000000000000..07ba7ba713dd + }; +}; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts -index c9e84ad69113..1bb54edb00ce 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts @@ -180,6 +180,10 @@ flash@0 { @@ -130,7 +128,7 @@ index c9e84ad69113..1bb54edb00ce 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts -index 624e248e3ffc..01c3a7f7620a 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts @@ -214,6 +214,10 @@ &sound_hdmi { @@ -145,7 +143,7 @@ index 624e248e3ffc..01c3a7f7620a 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi b/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi -index 8c2f597772fe..35c864fe4823 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi @@ -295,6 +295,20 @@ ths: thermal-sensor@1c25000 { @@ -189,7 +187,7 @@ index 8c2f597772fe..35c864fe4823 100644 + remote-endpoint = <&tve_in_tcon1>; +}; diff --git a/arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi -index 4137aee6568b..ef9744b92e42 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi +++ b/arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi @@ -116,7 +116,7 @@ cpu { @@ -324,7 +322,7 @@ index 4137aee6568b..ef9744b92e42 100644 /* compatible and clocks are in per SoC .dtsi file */ reg = <0x01c0f000 0x1000>; diff --git a/arch/arm64/boot/dts/allwinner/overlay/Makefile b/arch/arm64/boot/dts/allwinner/overlay/Makefile -index fb6b30d5753e..84711585fc86 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/overlay/Makefile +++ b/arch/arm64/boot/dts/allwinner/overlay/Makefile @@ -27,6 +27,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ @@ -336,7 +334,7 @@ index fb6b30d5753e..84711585fc86 100644 sun50i-h5-uart2.dtbo \ sun50i-h5-uart3.dtbo \ diff --git a/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays b/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays -index 4ad72deb8246..2a7aa59b6d39 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays +++ b/arch/arm64/boot/dts/allwinner/overlay/README.sun50i-h5-overlays @@ -26,6 +26,7 @@ adding fixed software (GPIO) chip selects is possible with a separate overlay @@ -360,7 +358,7 @@ index 4ad72deb8246..2a7aa59b6d39 100644 Activates serial port 1 (/dev/ttyS1) diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-tve.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-tve.dtso new file mode 100644 -index 000000000000..73e6e1215a5a +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h5-tve.dtso @@ -0,0 +1,34 @@ @@ -399,7 +397,7 @@ index 000000000000..73e6e1215a5a + }; +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi -index c211f2825f25..afd78ef2a566 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi @@ -199,6 +199,20 @@ ths: thermal-sensor@1c25000 { @@ -443,7 +441,7 @@ index c211f2825f25..afd78ef2a566 100644 + remote-endpoint = <&tve_in_tcon1>; +}; diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-h3.c b/drivers/clk/sunxi-ng/ccu-sun8i-h3.c -index 9bd05a0488ff..4a80c04c369b 100644 +index 111111111111..222222222222 100644 --- a/drivers/clk/sunxi-ng/ccu-sun8i-h3.c +++ b/drivers/clk/sunxi-ng/ccu-sun8i-h3.c @@ -469,8 +469,18 @@ static SUNXI_CCU_M_WITH_MUX_GATE(tcon_clk, "tcon", tcon_parents, @@ -468,7 +466,7 @@ index 9bd05a0488ff..4a80c04c369b 100644 static const char * const deinterlace_parents[] = { "pll-periph0", "pll-periph1" }; static SUNXI_CCU_M_WITH_MUX_GATE(deinterlace_clk, "deinterlace", deinterlace_parents, diff --git a/drivers/gpu/drm/sun4i/Makefile b/drivers/gpu/drm/sun4i/Makefile -index 8ffddaa3e069..e557b9cd51ff 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/Makefile +++ b/drivers/gpu/drm/sun4i/Makefile @@ -20,7 +20,7 @@ sun8i-drm-hdmi-y += sun8i_hdmi_phy_clk.o @@ -481,7 +479,7 @@ index 8ffddaa3e069..e557b9cd51ff 100644 sun4i-tcon-y += sun4i_crtc.o sun4i-tcon-y += sun4i_tcon_dclk.o diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c -index cce4e38789b9..de3498ab2c58 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tv.c +++ b/drivers/gpu/drm/sun4i/sun4i_tv.c @@ -10,6 +10,7 @@ @@ -570,7 +568,7 @@ index cce4e38789b9..de3498ab2c58 100644 }; MODULE_DEVICE_TABLE(of, sun4i_tv_of_table); diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index 460e793f96d8..5f7d53cc1140 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c @@ -38,6 +38,12 @@ struct de2_fmt_info { @@ -586,7 +584,7 @@ index 460e793f96d8..5f7d53cc1140 100644 static bool hw_preconfigured; static const struct de2_fmt_info de2_formats[] = { -@@ -480,11 +486,30 @@ static u32 *sun8i_mixer_get_supported_fmts(struct sunxi_engine *engine, u32 *num +@@ -475,11 +481,30 @@ static u32 *sun8i_mixer_get_supported_fmts(struct sunxi_engine *engine, u32 *num return formats; } @@ -617,7 +615,7 @@ index 460e793f96d8..5f7d53cc1140 100644 }; static const struct regmap_config sun8i_mixer_regmap_config = { -@@ -831,8 +856,9 @@ static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = { +@@ -826,8 +851,9 @@ static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = { static const struct sun8i_mixer_cfg sun8i_h3_mixer1_cfg = { .ccsc = CCSC_MIXER1_LAYOUT, .mod_rate = 432000000, @@ -630,7 +628,7 @@ index 460e793f96d8..5f7d53cc1140 100644 }; diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h -index f67f4b124a19..ee2ac6076195 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.h +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h @@ -134,6 +134,8 @@ @@ -643,5 +641,5 @@ index f67f4b124a19..ee2ac6076195 100644 #define SUN50I_MIXER_FCE_EN 0x70000 #define SUN50I_MIXER_PEAK_EN 0x70800 -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/fix-cpu-opp-table-sun8i-a83t.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/fix-cpu-opp-table-sun8i-a83t.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/fix-cpu-opp-table-sun8i-a83t.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/fix-cpu-opp-table-sun8i-a83t.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/h616-add-keys.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/h616-add-keys.patch similarity index 80% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/h616-add-keys.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/h616-add-keys.patch index bcb22dccf..ee7da5e08 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/h616-add-keys.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/h616-add-keys.patch @@ -1,22 +1,21 @@ -From b0d0e0e7cbe9d70a50a8a9cfdcfdffb028d6cef7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Exodus Date: Wed, 30 Apr 2025 23:55:25 +0200 -Subject: [PATCH 1/6] h616: add keys +Subject: h616: add keys KEY1 and KEY2 VOL +/- --- - .../arm64/boot/dts/allwinner/overlay/Makefile | 1 + - .../allwinner/overlay/sun50i-h616-keys.dtso | 28 +++++++++++++++++++ - .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 1 + - drivers/input/keyboard/sun4i-lradc-keys.c | 8 ++++++ + arch/arm64/boot/dts/allwinner/overlay/Makefile | 1 + + arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-keys.dtso | 28 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 1 + + drivers/input/keyboard/sun4i-lradc-keys.c | 8 +++ 4 files changed, 38 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-keys.dtso diff --git a/arch/arm64/boot/dts/allwinner/overlay/Makefile b/arch/arm64/boot/dts/allwinner/overlay/Makefile -index 3b0e2393552d..f637933c003f 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/overlay/Makefile +++ b/arch/arm64/boot/dts/allwinner/overlay/Makefile -@@ -71,6 +71,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ +@@ -70,6 +70,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ sun50i-h616-i2c3-ph.dtbo \ sun50i-h616-i2c4-pg.dtbo \ sun50i-h616-i2c4-ph.dtbo \ @@ -26,7 +25,7 @@ index 3b0e2393552d..f637933c003f 100644 sun50i-h616-pwm2-ph2.dtbo \ diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-keys.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-keys.dtso new file mode 100644 -index 000000000000..e8a5665d77ce +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-keys.dtso @@ -0,0 +1,28 @@ @@ -59,7 +58,7 @@ index 000000000000..e8a5665d77ce + }; +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index 0f4587be1c0e..7ccc45ff3446 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi @@ -13,6 +13,7 @@ @@ -71,7 +70,7 @@ index 0f4587be1c0e..7ccc45ff3446 100644 / { interrupt-parent = <&gic>; diff --git a/drivers/input/keyboard/sun4i-lradc-keys.c b/drivers/input/keyboard/sun4i-lradc-keys.c -index 5730f08f82d7..0ee681630f9c 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/keyboard/sun4i-lradc-keys.c +++ b/drivers/input/keyboard/sun4i-lradc-keys.c @@ -86,6 +86,12 @@ static const struct lradc_variant lradc_variant_r329 = { @@ -97,5 +96,5 @@ index 5730f08f82d7..0ee681630f9c 100644 }; MODULE_DEVICE_TABLE(of, sun4i_lradc_of_match); -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/include-uapi-drm_fourcc-add-ARM-tiled-format-modifier.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/include-uapi-drm_fourcc-add-ARM-tiled-format-modifier.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/include-uapi-drm_fourcc-add-ARM-tiled-format-modifier.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/include-uapi-drm_fourcc-add-ARM-tiled-format-modifier.patch index bfa86a7bf..13e51a1f6 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/include-uapi-drm_fourcc-add-ARM-tiled-format-modifier.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/include-uapi-drm_fourcc-add-ARM-tiled-format-modifier.patch @@ -1,4 +1,4 @@ -From 3f384c786fde4cbdf48499fbc77b582630dd6ede Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Tue, 19 Jun 2018 13:51:17 +0800 Subject: include:uapi:drm_fourcc: add ARM tiled format modifier @@ -11,10 +11,10 @@ Signed-off-by: The-going <48602507+The-going@users.noreply.github.com> 1 file changed, 9 insertions(+) diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h -index 81202a50dc9e..4ecc3423475b 100644 +index 111111111111..222222222222 100644 --- a/include/uapi/drm/drm_fourcc.h +++ b/include/uapi/drm/drm_fourcc.h -@@ -1351,6 +1351,15 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) +@@ -1412,6 +1412,15 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) */ #define AFRC_FORMAT_MOD_LAYOUT_SCAN (1ULL << 8) @@ -31,5 +31,5 @@ index 81202a50dc9e..4ecc3423475b 100644 * Arm 16x16 Block U-Interleaved modifier * -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/mfd-Add-support-for-X-Powers-AC200-EPHY-syscon.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/mfd-Add-support-for-X-Powers-AC200-EPHY-syscon.patch similarity index 97% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/mfd-Add-support-for-X-Powers-AC200-EPHY-syscon.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/mfd-Add-support-for-X-Powers-AC200-EPHY-syscon.patch index fccc7bbe2..4da17b59c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/mfd-Add-support-for-X-Powers-AC200-EPHY-syscon.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/mfd-Add-support-for-X-Powers-AC200-EPHY-syscon.patch @@ -1,4 +1,4 @@ -From 95a8f4f5c78481e12ca0be354835531ae71f3f25 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andre Przywara Date: Mon, 13 Jun 2022 17:37:19 +0100 Subject: mfd: Add support for X-Powers AC200 EPHY syscon @@ -33,12 +33,11 @@ Signed-off-by: Andre Przywara --- drivers/phy/allwinner/Kconfig | 9 + drivers/phy/allwinner/Makefile | 1 + - drivers/phy/allwinner/ac200-ephy-ctl.c | 299 +++++++++++++++++++++++++ + drivers/phy/allwinner/ac200-ephy-ctl.c | 299 ++++++++++ 3 files changed, 309 insertions(+) - create mode 100644 drivers/phy/allwinner/ac200-ephy-ctl.c diff --git a/drivers/phy/allwinner/Kconfig b/drivers/phy/allwinner/Kconfig -index e93a53139460..d3614169de5c 100644 +index 111111111111..222222222222 100644 --- a/drivers/phy/allwinner/Kconfig +++ b/drivers/phy/allwinner/Kconfig @@ -58,3 +58,12 @@ config PHY_SUN50I_USB3 @@ -55,7 +54,7 @@ index e93a53139460..d3614169de5c 100644 + mixed signal chip. This driver just enables and configures the + PHY, the PHY itself is supported by a standard driver. diff --git a/drivers/phy/allwinner/Makefile b/drivers/phy/allwinner/Makefile -index bd74901a1255..0eecec7a908a 100644 +index 111111111111..222222222222 100644 --- a/drivers/phy/allwinner/Makefile +++ b/drivers/phy/allwinner/Makefile @@ -3,3 +3,4 @@ obj-$(CONFIG_PHY_SUN4I_USB) += phy-sun4i-usb.o @@ -65,7 +64,7 @@ index bd74901a1255..0eecec7a908a 100644 +obj-$(CONFIG_AC200_PHY_CTL) += ac200-ephy-ctl.o diff --git a/drivers/phy/allwinner/ac200-ephy-ctl.c b/drivers/phy/allwinner/ac200-ephy-ctl.c new file mode 100644 -index 000000000000..f721ea72223c +index 000000000000..111111111111 --- /dev/null +++ b/drivers/phy/allwinner/ac200-ephy-ctl.c @@ -0,0 +1,299 @@ @@ -369,5 +368,5 @@ index 000000000000..f721ea72223c +MODULE_DESCRIPTION("AC200 Ethernet PHY control driver"); +MODULE_LICENSE("GPL"); -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/mfd-Add-support-for-X-Powers-AC200.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/mfd-Add-support-for-X-Powers-AC200.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/mfd-Add-support-for-X-Powers-AC200.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/mfd-Add-support-for-X-Powers-AC200.patch index 37b5b2e00..1422c0b9e 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/mfd-Add-support-for-X-Powers-AC200.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/mfd-Add-support-for-X-Powers-AC200.patch @@ -1,4 +1,4 @@ -From 77b6d5f86a69c0e37612406ba6715c3040100271 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 16 Aug 2019 16:38:21 +0200 Subject: mfd: Add support for X-Powers AC200 @@ -24,17 +24,16 @@ which the respective child drivers will use. Signed-off-by: Jernej Skrabec Signed-off-by: Andre Przywara --- - drivers/mfd/Kconfig | 12 +++ + drivers/mfd/Kconfig | 12 + drivers/mfd/Makefile | 1 + - drivers/mfd/ac200.c | 190 +++++++++++++++++++++++++++++++++++++++++++ + drivers/mfd/ac200.c | 190 ++++++++++ 3 files changed, 203 insertions(+) - create mode 100644 drivers/mfd/ac200.c diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig -index 22b936310039..1f36768c18f8 100644 +index 111111111111..222222222222 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig -@@ -203,6 +203,18 @@ config MFD_AC100 +@@ -204,6 +204,18 @@ config MFD_AC100 This driver include only the core APIs. You have to select individual components like codecs or RTC under the corresponding menus. @@ -54,10 +53,10 @@ index 22b936310039..1f36768c18f8 100644 tristate select MFD_CORE diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile -index 948cbdf42a18..63a5ba7b9f52 100644 +index 111111111111..222222222222 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile -@@ -145,6 +145,7 @@ obj-$(CONFIG_MFD_DA9052_SPI) += da9052-spi.o +@@ -149,6 +149,7 @@ obj-$(CONFIG_MFD_DA9052_SPI) += da9052-spi.o obj-$(CONFIG_MFD_DA9052_I2C) += da9052-i2c.o obj-$(CONFIG_MFD_AC100) += ac100.o @@ -67,7 +66,7 @@ index 948cbdf42a18..63a5ba7b9f52 100644 obj-$(CONFIG_MFD_AXP20X_RSB) += axp20x-rsb.o diff --git a/drivers/mfd/ac200.c b/drivers/mfd/ac200.c new file mode 100644 -index 000000000000..ad28c380c880 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/mfd/ac200.c @@ -0,0 +1,190 @@ @@ -262,5 +261,5 @@ index 000000000000..ad28c380c880 +MODULE_AUTHOR("Jernej Skrabec "); +MODULE_LICENSE("GPL v2"); -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/mmc-host-sunxi-mmc-Fix-H6-emmc.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/mmc-host-sunxi-mmc-Fix-H6-emmc.patch similarity index 93% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/mmc-host-sunxi-mmc-Fix-H6-emmc.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/mmc-host-sunxi-mmc-Fix-H6-emmc.patch index aa046be2b..7cc62dff0 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/mmc-host-sunxi-mmc-Fix-H6-emmc.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/mmc-host-sunxi-mmc-Fix-H6-emmc.patch @@ -20,7 +20,7 @@ index 111111111111..222222222222 100644 { .compatible = "allwinner,sun50i-h616-mmc", .data = &sun50i_h616_cfg }, { /* sentinel */ } }; -@@ -1444,7 +1445,7 @@ static int sunxi_mmc_probe(struct platform_device *pdev) +@@ -1441,7 +1442,7 @@ static int sunxi_mmc_probe(struct platform_device *pdev) MMC_CAP_SDIO_IRQ; /* @@ -29,7 +29,7 @@ index 111111111111..222222222222 100644 * use HS DDR mode for their eMMC chips. * * We still enable HS DDR modes for all the other controller -@@ -1453,6 +1454,8 @@ static int sunxi_mmc_probe(struct platform_device *pdev) +@@ -1450,6 +1451,8 @@ static int sunxi_mmc_probe(struct platform_device *pdev) if ((host->cfg->clk_delays || host->use_new_timings) && !of_device_is_compatible(pdev->dev.of_node, "allwinner,sun50i-h5-emmc") && diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/net-phy-Add-support-for-AC200-EPHY.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/net-phy-Add-support-for-AC200-EPHY.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/net-phy-Add-support-for-AC200-EPHY.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/net-phy-Add-support-for-AC200-EPHY.patch index f1950c81d..a36b63410 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/net-phy-Add-support-for-AC200-EPHY.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/net-phy-Add-support-for-AC200-EPHY.patch @@ -1,4 +1,4 @@ -From d411012cf317335c075daa0b48309c6e8ca76075 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Fri, 16 Aug 2019 16:38:57 +0200 Subject: net: phy: Add support for AC200 EPHY @@ -14,17 +14,16 @@ programs some PHY registers according to the BSP code. Signed-off-by: Jernej Skrabec Signed-off-by: Andre Przywara --- - drivers/net/phy/Kconfig | 7 ++++ + drivers/net/phy/Kconfig | 7 + drivers/net/phy/Makefile | 1 + - drivers/net/phy/ac200-phy.c | 82 +++++++++++++++++++++++++++++++++++++ + drivers/net/phy/ac200-phy.c | 82 ++++++++++ 3 files changed, 90 insertions(+) - create mode 100644 drivers/net/phy/ac200-phy.c diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig -index 53dad2482026..bc025b4abb67 100644 +index 111111111111..222222222222 100644 --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig -@@ -93,6 +93,13 @@ config AIR_EN8811H_PHY +@@ -101,6 +101,13 @@ config AIR_EN8811H_PHY help Currently supports the Airoha EN8811H PHY. @@ -39,10 +38,10 @@ index 53dad2482026..bc025b4abb67 100644 tristate "AMD and Altima PHYs" help diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile -index 7827609e9032..a1e7872e8e34 100644 +index 111111111111..222222222222 100644 --- a/drivers/net/phy/Makefile +++ b/drivers/net/phy/Makefile -@@ -26,6 +26,7 @@ obj-$(CONFIG_SFP) += sfp.o +@@ -27,6 +27,7 @@ obj-$(CONFIG_SFP) += sfp.o sfp-obj-$(CONFIG_SFP) += sfp-bus.o obj-y += $(sfp-obj-y) $(sfp-obj-m) @@ -52,7 +51,7 @@ index 7827609e9032..a1e7872e8e34 100644 obj-$(CONFIG_AIR_EN8811H_PHY) += air_en8811h.o diff --git a/drivers/net/phy/ac200-phy.c b/drivers/net/phy/ac200-phy.c new file mode 100644 -index 000000000000..8499914f49b8 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/net/phy/ac200-phy.c @@ -0,0 +1,82 @@ @@ -139,5 +138,5 @@ index 000000000000..8499914f49b8 +}; +MODULE_DEVICE_TABLE(mdio, ac200_ephy_phy_tbl); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/net-usb-r8152-add-LED-configuration-from-OF.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/net-usb-r8152-add-LED-configuration-from-OF.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/net-usb-r8152-add-LED-configuration-from-OF.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/net-usb-r8152-add-LED-configuration-from-OF.patch index 0d34b1b2d..f3dfdc028 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/net-usb-r8152-add-LED-configuration-from-OF.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/net-usb-r8152-add-LED-configuration-from-OF.patch @@ -1,4 +1,4 @@ -From 5f76b8851beb09853ef80bd190178eb03fe15dd9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sun, 26 Jul 2020 02:38:31 +0200 Subject: net: usb: r8152: add LED configuration from OF @@ -9,11 +9,11 @@ be determined. Signed-off-by: David Bauer --- - drivers/net/usb/r8152.c | 23 +++++++++++++++++++++++ + drivers/net/usb/r8152.c | 23 ++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c -index 44cba7acfe7d..2c2add228032 100644 +index 111111111111..222222222222 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -12,6 +12,7 @@ @@ -75,5 +75,5 @@ index 44cba7acfe7d..2c2add228032 100644 static void r8153c_init(struct r8152 *tp) -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/nvmem-sunxi_sid-add-sunxi_get_soc_chipid-sunxi_get_serial.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/nvmem-sunxi_sid-add-sunxi_get_soc_chipid-sunxi_get_serial.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/nvmem-sunxi_sid-add-sunxi_get_soc_chipid-sunxi_get_serial.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/nvmem-sunxi_sid-add-sunxi_get_soc_chipid-sunxi_get_serial.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/scripts-add-overlay-compilation-support.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/scripts-add-overlay-compilation-support.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/scripts-add-overlay-compilation-support.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/scripts-add-overlay-compilation-support.patch index 0c66803ee..2b1cdca2e 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/scripts-add-overlay-compilation-support.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/scripts-add-overlay-compilation-support.patch @@ -1,16 +1,16 @@ -From ca92cb0984d06618ddf61ca20a543eb263a25962 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Tue, 1 Feb 2022 21:04:08 +0300 Subject: scripts: add overlay compilation support --- .gitignore | 1 + - scripts/Makefile.dtbinst | 12 +++++++++++- - scripts/Makefile.dtbs | 10 +++++++++- + scripts/Makefile.dtbinst | 12 +++++++++- + scripts/Makefile.dtbs | 10 +++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore -index 929054df5212..575d3e20d585 100644 +index 111111111111..222222222222 100644 --- a/.gitignore +++ b/.gitignore @@ -45,6 +45,7 @@ @@ -22,7 +22,7 @@ index 929054df5212..575d3e20d585 100644 *.so.dbg *.su diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst -index 9d920419a62c..dc0c8da28494 100644 +index 111111111111..222222222222 100644 --- a/scripts/Makefile.dtbinst +++ b/scripts/Makefile.dtbinst @@ -23,6 +23,11 @@ $(dst)/%: $(obj)/% @@ -52,10 +52,10 @@ index 9d920419a62c..dc0c8da28494 100644 endif # CONFIG_ARCH_WANT_FLAT_DTB_INSTALL diff --git a/scripts/Makefile.dtbs b/scripts/Makefile.dtbs -index 8d56c0815f33..d820f8a41cf8 100644 +index 111111111111..222222222222 100644 --- a/scripts/Makefile.dtbs +++ b/scripts/Makefile.dtbs -@@ -122,11 +122,19 @@ dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp) +@@ -123,11 +123,19 @@ dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp) quiet_cmd_dtc = DTC $(quiet_dtb_check_tag) $@ cmd_dtc = \ $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ @@ -77,5 +77,5 @@ index 8d56c0815f33..d820f8a41cf8 100644 $(call if_changed_dep,dtc) -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/sound-soc-sunxi-Provoke-the-early-load-of-sun8i-codec-analog.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/sound-soc-sunxi-Provoke-the-early-load-of-sun8i-codec-analog.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/sound-soc-sunxi-Provoke-the-early-load-of-sun8i-codec-analog.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/sound-soc-sunxi-Provoke-the-early-load-of-sun8i-codec-analog.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/sound-soc-sunxi-sun4i-codec-adcis-select-capture-source.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/sound-soc-sunxi-sun4i-codec-adcis-select-capture-source.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/sound-soc-sunxi-sun4i-codec-adcis-select-capture-source.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/sound-soc-sunxi-sun4i-codec-adcis-select-capture-source.patch index 954554ae8..0640cb9e5 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/sound-soc-sunxi-sun4i-codec-adcis-select-capture-source.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/sound-soc-sunxi-sun4i-codec-adcis-select-capture-source.patch @@ -1,14 +1,14 @@ -From d15c101660339e266a7a3548aaea04a48f2fa108 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Wed, 2 Feb 2022 21:42:37 +0300 Subject: sound:soc:sunxi:sun4i-codec adcis select capture source --- - sound/soc/sunxi/sun4i-codec.c | 51 ++++++++++++++++++++++++++++++++--- + sound/soc/sunxi/sun4i-codec.c | 51 +++++++++- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c -index 93733ff2e32a..3b90d54ab9f9 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/sunxi/sun4i-codec.c +++ b/sound/soc/sunxi/sun4i-codec.c @@ -6,6 +6,7 @@ @@ -116,5 +116,5 @@ index 93733ff2e32a..3b90d54ab9f9 100644 { "Mic2", NULL, "VMIC" }, }; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/sound-soc-sunxi-sun8i-codec-analog-enable-sound.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/sound-soc-sunxi-sun8i-codec-analog-enable-sound.patch similarity index 100% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/sound-soc-sunxi-sun8i-codec-analog-enable-sound.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/sound-soc-sunxi-sun8i-codec-analog-enable-sound.patch diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/sun50i-h616-Add-the-missing-digital-audio-node.patch b/patch/kernel/archive/sunxi-6.18/patches.armbian/sun50i-h616-Add-the-missing-digital-audio-node.patch similarity index 75% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/sun50i-h616-Add-the-missing-digital-audio-node.patch rename to patch/kernel/archive/sunxi-6.18/patches.armbian/sun50i-h616-Add-the-missing-digital-audio-node.patch index a70d47c99..1f9a4143b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/sun50i-h616-Add-the-missing-digital-audio-node.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.armbian/sun50i-h616-Add-the-missing-digital-audio-node.patch @@ -1,18 +1,18 @@ -From 9a7f38264bbc353a097cf1ddd56f86681d2c8475 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 26 May 2025 17:04:56 +0300 -Subject: [PATCH] sun50i-h616: Add the missing digital audio node +Subject: sun50i-h616: Add the missing digital audio node --- - arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 11 +++++++++++ - .../dts/allwinner/sun50i-h618-bananapi-m4-berry.dts | 8 +++----- + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 11 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h618-bananapi-m4-berry.dts | 8 +++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index 4b1e73697887..f6bf478aa3e4 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -@@ -1076,6 +1076,17 @@ ahub_dam_plat:ahub_dam_plat@5097000 { +@@ -1095,6 +1095,17 @@ ahub_dam_plat:ahub_dam_plat@5097000 { status = "disabled"; }; @@ -31,7 +31,7 @@ index 4b1e73697887..f6bf478aa3e4 100644 #sound-dai-cells = <0>; compatible = "allwinner,sunxi-snd-plat-ahub"; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-bananapi-m4-berry.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-bananapi-m4-berry.dts -index 29869f39de97..74012eec9982 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h618-bananapi-m4-berry.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-bananapi-m4-berry.dts @@ -290,16 +290,14 @@ &ahub_dam_plat { @@ -55,5 +55,5 @@ index 29869f39de97..74012eec9982 100644 }; -*/ -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0001-drm-sun4i-mixer-Fix-up-DE33-channel-macros.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0001-drm-sun4i-mixer-Fix-up-DE33-channel-macros.patch new file mode 100644 index 000000000..5236a4686 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0001-drm-sun4i-mixer-Fix-up-DE33-channel-macros.patch @@ -0,0 +1,41 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:01 +0200 +Subject: drm/sun4i: mixer: Fix up DE33 channel macros + +Properly define macros. Till now raw numbers and inappropriate macro was +used. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.h | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h +@@ -39,6 +39,9 @@ + #define DE3_CH_BASE 0x1000 + #define DE3_CH_SIZE 0x0800 + ++#define DE33_CH_BASE 0x1000 ++#define DE33_CH_SIZE 0x20000 ++ + #define SUN8I_MIXER_BLEND_PIPE_CTL(base) ((base) + 0) + #define SUN8I_MIXER_BLEND_ATTR_FCOLOR(base, x) ((base) + 0x4 + 0x10 * (x)) + #define SUN8I_MIXER_BLEND_ATTR_INSIZE(base, x) ((base) + 0x8 + 0x10 * (x)) +@@ -242,7 +245,7 @@ static inline u32 + sun8i_channel_base(struct sun8i_mixer *mixer, int channel) + { + if (mixer->cfg->de_type == SUN8I_MIXER_DE33) +- return mixer->cfg->map[channel] * 0x20000 + DE2_CH_SIZE; ++ return DE33_CH_BASE + mixer->cfg->map[channel] * DE33_CH_SIZE; + else if (mixer->cfg->de_type == SUN8I_MIXER_DE3) + return DE3_CH_BASE + channel * DE3_CH_SIZE; + else +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0002-drm-sun4i-mixer-Remove-ccsc-cfg-for-DE3.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0002-drm-sun4i-mixer-Remove-ccsc-cfg-for-DE3.patch new file mode 100644 index 000000000..f3b9ef3da --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0002-drm-sun4i-mixer-Remove-ccsc-cfg-for-DE3.patch @@ -0,0 +1,38 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:02 +0200 +Subject: drm/sun4i: mixer: Remove ccsc cfg for >= DE3 + +Those engine versions don't need ccsc argument, since CSC units are +located on different position and for each layer. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -790,7 +790,6 @@ static const struct sun8i_mixer_cfg sun50i_a64_mixer1_cfg = { + }; + + static const struct sun8i_mixer_cfg sun50i_h6_mixer0_cfg = { +- .ccsc = CCSC_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE3, + .mod_rate = 600000000, + .scaler_mask = 0xf, +@@ -800,7 +799,6 @@ static const struct sun8i_mixer_cfg sun50i_h6_mixer0_cfg = { + }; + + static const struct sun8i_mixer_cfg sun50i_h616_mixer0_cfg = { +- .ccsc = CCSC_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE33, + .mod_rate = 600000000, + .scaler_mask = 0xf, +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-Initialize-layer-fields-earlier.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0003-drm-sun4i-de2-Initialize-layer-fields-earlier.patch similarity index 74% rename from patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-Initialize-layer-fields-earlier.patch rename to patch/kernel/archive/sunxi-6.18/patches.drm/0003-drm-sun4i-de2-Initialize-layer-fields-earlier.patch index f5555d4b0..224d7ee18 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-Initialize-layer-fields-earlier.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0003-drm-sun4i-de2-Initialize-layer-fields-earlier.patch @@ -1,26 +1,25 @@ -From 5c2859b3cccd1b1b3f1700fd70c06770f418247a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:36 +1300 -Subject: drm: sun4i: de2: Initialize layer fields earlier +Date: Sun, 12 Oct 2025 21:23:03 +0200 +Subject: drm/sun4i: de2: Initialize layer fields earlier drm_universal_plane_init() can already call some callbacks, like format_mod_supported, during initialization. Because of that, fields should be initialized beforehand. -Signed-off-by: Jernej Skrabec -Co-developed-by: Ryan Walklin -Signed-off-by: Ryan Walklin Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec --- drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 9 +++++---- drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -index aa987bca1dbb..cb9b694fef10 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -@@ -295,6 +295,11 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, +@@ -304,6 +304,11 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, if (!layer) return ERR_PTR(-ENOMEM); @@ -32,7 +31,7 @@ index aa987bca1dbb..cb9b694fef10 100644 if (index == 0) type = DRM_PLANE_TYPE_PRIMARY; -@@ -325,10 +330,6 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, +@@ -334,10 +339,6 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, } drm_plane_helper_add(&layer->plane, &sun8i_ui_layer_helper_funcs); @@ -44,10 +43,10 @@ index aa987bca1dbb..cb9b694fef10 100644 return layer; } diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index f3a5329351ca..3c657b069d1f 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -@@ -478,6 +478,11 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, +@@ -485,6 +485,11 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, if (!layer) return ERR_PTR(-ENOMEM); @@ -56,10 +55,10 @@ index f3a5329351ca..3c657b069d1f 100644 + layer->channel = index; + layer->overlay = 0; + - if (mixer->cfg->is_de3) { + if (mixer->cfg->de_type >= SUN8I_MIXER_DE3) { formats = sun8i_vi_layer_de3_formats; format_count = ARRAY_SIZE(sun8i_vi_layer_de3_formats); -@@ -536,10 +541,6 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, +@@ -543,10 +548,6 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, } drm_plane_helper_add(&layer->plane, &sun8i_vi_layer_helper_funcs); @@ -71,5 +70,5 @@ index f3a5329351ca..3c657b069d1f 100644 return layer; } -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0004-drm-sun4i-ui_layer-Move-check-from-update-to-check-c.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0004-drm-sun4i-ui_layer-Move-check-from-update-to-check-c.patch new file mode 100644 index 000000000..56e70a961 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0004-drm-sun4i-ui_layer-Move-check-from-update-to-check-c.patch @@ -0,0 +1,65 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:04 +0200 +Subject: drm/sun4i: ui_layer: Move check from update to check callback + +DRM requires that all checks are done in atomic_check callback. Move +one check from atomic_commit to atomic_check callback. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 18 ++++++---- + 1 file changed, 11 insertions(+), 7 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -134,16 +134,11 @@ static int sun8i_ui_layer_update_formats(struct sun8i_mixer *mixer, int channel, + struct drm_plane_state *state = plane->state; + const struct drm_format_info *fmt; + u32 val, ch_base, hw_fmt; +- int ret; + + ch_base = sun8i_channel_base(mixer, channel); + + fmt = state->fb->format; +- ret = sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); +- if (ret || fmt->is_yuv) { +- DRM_DEBUG_DRIVER("Invalid format\n"); +- return -EINVAL; +- } ++ sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); + + val = hw_fmt << SUN8I_MIXER_CHAN_UI_LAYER_ATTR_FBFMT_OFFSET; + regmap_update_bits(mixer->engine.regs, +@@ -201,7 +196,9 @@ static int sun8i_ui_layer_atomic_check(struct drm_plane *plane, + struct sun8i_layer *layer = plane_to_sun8i_layer(plane); + struct drm_crtc *crtc = new_plane_state->crtc; + struct drm_crtc_state *crtc_state; +- int min_scale, max_scale; ++ const struct drm_format_info *fmt; ++ int min_scale, max_scale, ret; ++ u32 hw_fmt; + + if (!crtc) + return 0; +@@ -211,6 +208,13 @@ static int sun8i_ui_layer_atomic_check(struct drm_plane *plane, + if (WARN_ON(!crtc_state)) + return -EINVAL; + ++ fmt = new_plane_state->fb->format; ++ ret = sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); ++ if (ret || fmt->is_yuv) { ++ DRM_DEBUG_DRIVER("Invalid plane format\n"); ++ return -EINVAL; ++ } ++ + min_scale = DRM_PLANE_NO_SCALING; + max_scale = DRM_PLANE_NO_SCALING; + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0005-drm-sun4i-vi_layer-Move-check-from-update-to-check-c.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0005-drm-sun4i-vi_layer-Move-check-from-update-to-check-c.patch new file mode 100644 index 000000000..58eef95e1 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0005-drm-sun4i-vi_layer-Move-check-from-update-to-check-c.patch @@ -0,0 +1,64 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:05 +0200 +Subject: drm/sun4i: vi_layer: Move check from update to check callback + +DRM requires that all check are done in atomic_check callback. Move +one check from atomic_commit to atomic_check callback. + +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 18 ++++++---- + 1 file changed, 11 insertions(+), 7 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -217,16 +217,11 @@ static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, + struct drm_plane_state *state = plane->state; + u32 val, ch_base, csc_mode, hw_fmt; + const struct drm_format_info *fmt; +- int ret; + + ch_base = sun8i_channel_base(mixer, channel); + + fmt = state->fb->format; +- ret = sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); +- if (ret) { +- DRM_DEBUG_DRIVER("Invalid format\n"); +- return ret; +- } ++ sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); + + val = hw_fmt << SUN8I_MIXER_CHAN_VI_LAYER_ATTR_FBFMT_OFFSET; + regmap_update_bits(mixer->engine.regs, +@@ -322,7 +317,9 @@ static int sun8i_vi_layer_atomic_check(struct drm_plane *plane, + struct sun8i_layer *layer = plane_to_sun8i_layer(plane); + struct drm_crtc *crtc = new_plane_state->crtc; + struct drm_crtc_state *crtc_state; +- int min_scale, max_scale; ++ const struct drm_format_info *fmt; ++ int min_scale, max_scale, ret; ++ u32 hw_fmt; + + if (!crtc) + return 0; +@@ -332,6 +329,13 @@ static int sun8i_vi_layer_atomic_check(struct drm_plane *plane, + if (WARN_ON(!crtc_state)) + return -EINVAL; + ++ fmt = new_plane_state->fb->format; ++ ret = sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); ++ if (ret) { ++ DRM_DEBUG_DRIVER("Invalid plane format\n"); ++ return ret; ++ } ++ + min_scale = DRM_PLANE_NO_SCALING; + max_scale = DRM_PLANE_NO_SCALING; + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0006-drm-sun4i-layers-Make-atomic-commit-functions-void.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0006-drm-sun4i-layers-Make-atomic-commit-functions-void.patch new file mode 100644 index 000000000..3bd67023c --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0006-drm-sun4i-layers-Make-atomic-commit-functions-void.patch @@ -0,0 +1,138 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:06 +0200 +Subject: drm/sun4i: layers: Make atomic commit functions void + +Functions called by atomic_commit callback should not fail. None of them +actually returns error, so make them void. + +No functional change. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 20 ++++------ + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 20 ++++------ + 2 files changed, 14 insertions(+), 26 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -46,9 +46,9 @@ static void sun8i_ui_layer_update_alpha(struct sun8i_mixer *mixer, int channel, + mask, val); + } + +-static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane, +- unsigned int zpos) ++static void sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, ++ int overlay, struct drm_plane *plane, ++ unsigned int zpos) + { + struct drm_plane_state *state = plane->state; + u32 src_w, src_h, dst_w, dst_h; +@@ -124,12 +124,10 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, + regmap_write(bld_regs, + SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos), + outsize); +- +- return 0; + } + +-static int sun8i_ui_layer_update_formats(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) ++static void sun8i_ui_layer_update_formats(struct sun8i_mixer *mixer, int channel, ++ int overlay, struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; + const struct drm_format_info *fmt; +@@ -144,12 +142,10 @@ static int sun8i_ui_layer_update_formats(struct sun8i_mixer *mixer, int channel, + regmap_update_bits(mixer->engine.regs, + SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, overlay), + SUN8I_MIXER_CHAN_UI_LAYER_ATTR_FBFMT_MASK, val); +- +- return 0; + } + +-static int sun8i_ui_layer_update_buffer(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) ++static void sun8i_ui_layer_update_buffer(struct sun8i_mixer *mixer, int channel, ++ int overlay, struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; + struct drm_framebuffer *fb = state->fb; +@@ -184,8 +180,6 @@ static int sun8i_ui_layer_update_buffer(struct sun8i_mixer *mixer, int channel, + regmap_write(mixer->engine.regs, + SUN8I_MIXER_CHAN_UI_LAYER_TOP_LADDR(ch_base, overlay), + lower_32_bits(dma_addr)); +- +- return 0; + } + + static int sun8i_ui_layer_atomic_check(struct drm_plane *plane, +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -48,9 +48,9 @@ static void sun8i_vi_layer_update_alpha(struct sun8i_mixer *mixer, int channel, + } + } + +-static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane, +- unsigned int zpos) ++static void sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, ++ int overlay, struct drm_plane *plane, ++ unsigned int zpos) + { + struct drm_plane_state *state = plane->state; + const struct drm_format_info *format = state->fb->format; +@@ -191,8 +191,6 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, + regmap_write(bld_regs, + SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos), + outsize); +- +- return 0; + } + + static u32 sun8i_vi_layer_get_csc_mode(const struct drm_format_info *format) +@@ -211,8 +209,8 @@ static u32 sun8i_vi_layer_get_csc_mode(const struct drm_format_info *format) + } + } + +-static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) ++static void sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, ++ int overlay, struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; + u32 val, ch_base, csc_mode, hw_fmt; +@@ -246,12 +244,10 @@ static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, + regmap_update_bits(mixer->engine.regs, + SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, overlay), + SUN8I_MIXER_CHAN_VI_LAYER_ATTR_RGB_MODE, val); +- +- return 0; + } + +-static int sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) ++static void sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel, ++ int overlay, struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; + struct drm_framebuffer *fb = state->fb; +@@ -305,8 +301,6 @@ static int sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel, + overlay, i), + lower_32_bits(dma_addr)); + } +- +- return 0; + } + + static int sun8i_vi_layer_atomic_check(struct drm_plane *plane, +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0007-drm-sun4i-Move-blender-config-from-layers-to-mixer.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0007-drm-sun4i-Move-blender-config-from-layers-to-mixer.patch new file mode 100644 index 000000000..39eabe43b --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0007-drm-sun4i-Move-blender-config-from-layers-to-mixer.patch @@ -0,0 +1,197 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:07 +0200 +Subject: drm/sun4i: Move blender config from layers to mixer + +With upcoming DE33 support, layer management must be decoupled from +other operations like blender configuration. There are two reasons: +- DE33 will have separate driver for planes and thus it will be harder + to manage different register spaces +- Architecturaly it's better to split access by modules. Blender is now + exclusively managed by mixer. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 17 +++++-- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 22 ++-------- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 22 ++-------- + 3 files changed, 20 insertions(+), 41 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -283,8 +283,8 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, + + drm_for_each_plane(plane, state->dev) { + struct sun8i_layer *layer = plane_to_sun8i_layer(plane); ++ int w, h, x, y, zpos; + bool enable; +- int zpos; + + if (!(plane->possible_crtcs & drm_crtc_mask(crtc)) || layer->mixer != mixer) + continue; +@@ -295,10 +295,14 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, + + enable = plane_state->crtc && plane_state->visible; + zpos = plane_state->normalized_zpos; ++ x = plane_state->dst.x1; ++ y = plane_state->dst.y1; ++ w = drm_rect_width(&plane_state->dst); ++ h = drm_rect_height(&plane_state->dst); + +- DRM_DEBUG_DRIVER(" plane %d: chan=%d ovl=%d en=%d zpos=%d\n", ++ DRM_DEBUG_DRIVER(" plane %d: chan=%d ovl=%d en=%d zpos=%d x=%d y=%d w=%d h=%d\n", + plane->base.id, layer->channel, layer->overlay, +- enable, zpos); ++ enable, zpos, x, y, w, h); + + /* + * We always update the layer enable bit, because it can clear +@@ -312,6 +316,13 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, + /* Route layer to pipe based on zpos */ + route |= layer->channel << SUN8I_MIXER_BLEND_ROUTE_PIPE_SHIFT(zpos); + pipe_en |= SUN8I_MIXER_BLEND_PIPE_CTL_EN(zpos); ++ ++ regmap_write(bld_regs, ++ SUN8I_MIXER_BLEND_ATTR_COORD(bld_base, zpos), ++ SUN8I_MIXER_COORD(x, y)); ++ regmap_write(bld_regs, ++ SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos), ++ SUN8I_MIXER_SIZE(w, h)); + } + + regmap_write(bld_regs, SUN8I_MIXER_BLEND_ROUTE(bld_base), route); +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -47,21 +47,17 @@ static void sun8i_ui_layer_update_alpha(struct sun8i_mixer *mixer, int channel, + } + + static void sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane, +- unsigned int zpos) ++ int overlay, struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; + u32 src_w, src_h, dst_w, dst_h; +- struct regmap *bld_regs; +- u32 bld_base, ch_base; + u32 outsize, insize; + u32 hphase, vphase; ++ u32 ch_base; + + DRM_DEBUG_DRIVER("Updating UI channel %d overlay %d\n", + channel, overlay); + +- bld_base = sun8i_blender_base(mixer); +- bld_regs = sun8i_blender_regmap(mixer); + ch_base = sun8i_channel_base(mixer, channel); + + src_w = drm_rect_width(&state->src) >> 16; +@@ -113,17 +109,6 @@ static void sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, + else + sun8i_ui_scaler_enable(mixer, channel, false); + } +- +- /* Set base coordinates */ +- DRM_DEBUG_DRIVER("Layer destination coordinates X: %d Y: %d\n", +- state->dst.x1, state->dst.y1); +- DRM_DEBUG_DRIVER("Layer destination size W: %d H: %d\n", dst_w, dst_h); +- regmap_write(bld_regs, +- SUN8I_MIXER_BLEND_ATTR_COORD(bld_base, zpos), +- SUN8I_MIXER_COORD(state->dst.x1, state->dst.y1)); +- regmap_write(bld_regs, +- SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos), +- outsize); + } + + static void sun8i_ui_layer_update_formats(struct sun8i_mixer *mixer, int channel, +@@ -230,14 +215,13 @@ static void sun8i_ui_layer_atomic_update(struct drm_plane *plane, + struct drm_plane_state *new_state = drm_atomic_get_new_plane_state(state, + plane); + struct sun8i_layer *layer = plane_to_sun8i_layer(plane); +- unsigned int zpos = new_state->normalized_zpos; + struct sun8i_mixer *mixer = layer->mixer; + + if (!new_state->crtc || !new_state->visible) + return; + + sun8i_ui_layer_update_coord(mixer, layer->channel, +- layer->overlay, plane, zpos); ++ layer->overlay, plane); + sun8i_ui_layer_update_alpha(mixer, layer->channel, + layer->overlay, plane); + sun8i_ui_layer_update_formats(mixer, layer->channel, +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -49,25 +49,21 @@ static void sun8i_vi_layer_update_alpha(struct sun8i_mixer *mixer, int channel, + } + + static void sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane, +- unsigned int zpos) ++ int overlay, struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; + const struct drm_format_info *format = state->fb->format; + u32 src_w, src_h, dst_w, dst_h; +- struct regmap *bld_regs; +- u32 bld_base, ch_base; + u32 outsize, insize; + u32 hphase, vphase; + u32 hn = 0, hm = 0; + u32 vn = 0, vm = 0; + bool subsampled; ++ u32 ch_base; + + DRM_DEBUG_DRIVER("Updating VI channel %d overlay %d\n", + channel, overlay); + +- bld_base = sun8i_blender_base(mixer); +- bld_regs = sun8i_blender_regmap(mixer); + ch_base = sun8i_channel_base(mixer, channel); + + src_w = drm_rect_width(&state->src) >> 16; +@@ -180,17 +176,6 @@ static void sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, + SUN8I_MIXER_CHAN_VI_VDS_UV(ch_base), + SUN8I_MIXER_CHAN_VI_DS_N(vn) | + SUN8I_MIXER_CHAN_VI_DS_M(vm)); +- +- /* Set base coordinates */ +- DRM_DEBUG_DRIVER("Layer destination coordinates X: %d Y: %d\n", +- state->dst.x1, state->dst.y1); +- DRM_DEBUG_DRIVER("Layer destination size W: %d H: %d\n", dst_w, dst_h); +- regmap_write(bld_regs, +- SUN8I_MIXER_BLEND_ATTR_COORD(bld_base, zpos), +- SUN8I_MIXER_COORD(state->dst.x1, state->dst.y1)); +- regmap_write(bld_regs, +- SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos), +- outsize); + } + + static u32 sun8i_vi_layer_get_csc_mode(const struct drm_format_info *format) +@@ -350,14 +335,13 @@ static void sun8i_vi_layer_atomic_update(struct drm_plane *plane, + struct drm_plane_state *new_state = drm_atomic_get_new_plane_state(state, + plane); + struct sun8i_layer *layer = plane_to_sun8i_layer(plane); +- unsigned int zpos = new_state->normalized_zpos; + struct sun8i_mixer *mixer = layer->mixer; + + if (!new_state->crtc || !new_state->visible) + return; + + sun8i_vi_layer_update_coord(mixer, layer->channel, +- layer->overlay, plane, zpos); ++ layer->overlay, plane); + sun8i_vi_layer_update_alpha(mixer, layer->channel, + layer->overlay, plane); + sun8i_vi_layer_update_formats(mixer, layer->channel, +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0008-drm-sun4i-ui-layer-Write-attributes-in-one-go.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0008-drm-sun4i-ui-layer-Write-attributes-in-one-go.patch new file mode 100644 index 000000000..29a2f9609 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0008-drm-sun4i-ui-layer-Write-attributes-in-one-go.patch @@ -0,0 +1,106 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:08 +0200 +Subject: drm/sun4i: ui layer: Write attributes in one go + +It turns out that none of the UI channel registers were meant to be +read. Mostly it works fine but sometimes it returns incorrect values. + +Rework UI layer code to write all registers in one go to avoid reads. + +This rework will also allow proper code separation. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 50 +++------- + 1 file changed, 16 insertions(+), 34 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -25,25 +25,27 @@ + #include "sun8i_ui_scaler.h" + #include "sun8i_vi_scaler.h" + +-static void sun8i_ui_layer_update_alpha(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) ++static void sun8i_ui_layer_update_attributes(struct sun8i_mixer *mixer, ++ int channel, int overlay, ++ struct drm_plane *plane) + { +- u32 mask, val, ch_base; ++ struct drm_plane_state *state = plane->state; ++ const struct drm_format_info *fmt; ++ u32 val, ch_base, hw_fmt; + + ch_base = sun8i_channel_base(mixer, channel); ++ fmt = state->fb->format; ++ sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); + +- mask = SUN8I_MIXER_CHAN_UI_LAYER_ATTR_ALPHA_MODE_MASK | +- SUN8I_MIXER_CHAN_UI_LAYER_ATTR_ALPHA_MASK; +- +- val = SUN8I_MIXER_CHAN_UI_LAYER_ATTR_ALPHA(plane->state->alpha >> 8); +- +- val |= (plane->state->alpha == DRM_BLEND_ALPHA_OPAQUE) ? ++ val = SUN8I_MIXER_CHAN_UI_LAYER_ATTR_ALPHA(state->alpha >> 8); ++ val |= (state->alpha == DRM_BLEND_ALPHA_OPAQUE) ? + SUN8I_MIXER_CHAN_UI_LAYER_ATTR_ALPHA_MODE_PIXEL : + SUN8I_MIXER_CHAN_UI_LAYER_ATTR_ALPHA_MODE_COMBINED; ++ val |= hw_fmt << SUN8I_MIXER_CHAN_UI_LAYER_ATTR_FBFMT_OFFSET; ++ val |= SUN8I_MIXER_CHAN_UI_LAYER_ATTR_EN; + +- regmap_update_bits(mixer->engine.regs, +- SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, overlay), +- mask, val); ++ regmap_write(mixer->engine.regs, ++ SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, overlay), val); + } + + static void sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, +@@ -111,24 +113,6 @@ static void sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, + } + } + +-static void sun8i_ui_layer_update_formats(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) +-{ +- struct drm_plane_state *state = plane->state; +- const struct drm_format_info *fmt; +- u32 val, ch_base, hw_fmt; +- +- ch_base = sun8i_channel_base(mixer, channel); +- +- fmt = state->fb->format; +- sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); +- +- val = hw_fmt << SUN8I_MIXER_CHAN_UI_LAYER_ATTR_FBFMT_OFFSET; +- regmap_update_bits(mixer->engine.regs, +- SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, overlay), +- SUN8I_MIXER_CHAN_UI_LAYER_ATTR_FBFMT_MASK, val); +-} +- + static void sun8i_ui_layer_update_buffer(struct sun8i_mixer *mixer, int channel, + int overlay, struct drm_plane *plane) + { +@@ -220,12 +204,10 @@ static void sun8i_ui_layer_atomic_update(struct drm_plane *plane, + if (!new_state->crtc || !new_state->visible) + return; + ++ sun8i_ui_layer_update_attributes(mixer, layer->channel, ++ layer->overlay, plane); + sun8i_ui_layer_update_coord(mixer, layer->channel, + layer->overlay, plane); +- sun8i_ui_layer_update_alpha(mixer, layer->channel, +- layer->overlay, plane); +- sun8i_ui_layer_update_formats(mixer, layer->channel, +- layer->overlay, plane); + sun8i_ui_layer_update_buffer(mixer, layer->channel, + layer->overlay, plane); + } +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0009-drm-sun4i-vi-layer-Write-attributes-in-one-go.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0009-drm-sun4i-vi-layer-Write-attributes-in-one-go.patch new file mode 100644 index 000000000..223c244ef --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0009-drm-sun4i-vi-layer-Write-attributes-in-one-go.patch @@ -0,0 +1,141 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:09 +0200 +Subject: drm/sun4i: vi layer: Write attributes in one go + +It turns out that none of the VI channel registers were meant to be +read. Mostly it works fine but sometimes it returns incorrect values. + +Rework VI layer code to write all registers in one go to avoid reads. + +This rework will also allow proper code separation. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 71 ++++------ + 1 file changed, 27 insertions(+), 44 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -18,34 +18,35 @@ + #include "sun8i_vi_layer.h" + #include "sun8i_vi_scaler.h" + +-static void sun8i_vi_layer_update_alpha(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) ++static void sun8i_vi_layer_update_attributes(struct sun8i_mixer *mixer, ++ int channel, int overlay, ++ struct drm_plane *plane) + { +- u32 mask, val, ch_base; ++ struct drm_plane_state *state = plane->state; ++ const struct drm_format_info *fmt; ++ u32 val, ch_base, hw_fmt; + + ch_base = sun8i_channel_base(mixer, channel); ++ fmt = state->fb->format; ++ sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); + ++ val = hw_fmt << SUN8I_MIXER_CHAN_VI_LAYER_ATTR_FBFMT_OFFSET; ++ if (!fmt->is_yuv) ++ val |= SUN8I_MIXER_CHAN_VI_LAYER_ATTR_RGB_MODE; ++ val |= SUN8I_MIXER_CHAN_VI_LAYER_ATTR_EN; + if (mixer->cfg->de_type >= SUN8I_MIXER_DE3) { +- mask = SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MASK | +- SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MODE_MASK; +- val = SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA +- (plane->state->alpha >> 8); +- +- val |= (plane->state->alpha == DRM_BLEND_ALPHA_OPAQUE) ? ++ val |= SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA(state->alpha >> 8); ++ val |= (state->alpha == DRM_BLEND_ALPHA_OPAQUE) ? + SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MODE_PIXEL : + SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MODE_COMBINED; +- +- regmap_update_bits(mixer->engine.regs, +- SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, +- overlay), +- mask, val); + } else if (mixer->cfg->vi_num == 1) { +- regmap_update_bits(mixer->engine.regs, +- SUN8I_MIXER_FCC_GLOBAL_ALPHA_REG, +- SUN8I_MIXER_FCC_GLOBAL_ALPHA_MASK, +- SUN8I_MIXER_FCC_GLOBAL_ALPHA +- (plane->state->alpha >> 8)); ++ regmap_write(mixer->engine.regs, ++ SUN8I_MIXER_FCC_GLOBAL_ALPHA_REG, ++ SUN8I_MIXER_FCC_GLOBAL_ALPHA(state->alpha >> 8)); + } ++ ++ regmap_write(mixer->engine.regs, ++ SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, overlay), val); + } + + static void sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, +@@ -194,23 +195,14 @@ static u32 sun8i_vi_layer_get_csc_mode(const struct drm_format_info *format) + } + } + +-static void sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) ++static void sun8i_vi_layer_update_colors(struct sun8i_mixer *mixer, int channel, ++ int overlay, struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; +- u32 val, ch_base, csc_mode, hw_fmt; + const struct drm_format_info *fmt; +- +- ch_base = sun8i_channel_base(mixer, channel); ++ u32 csc_mode; + + fmt = state->fb->format; +- sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); +- +- val = hw_fmt << SUN8I_MIXER_CHAN_VI_LAYER_ATTR_FBFMT_OFFSET; +- regmap_update_bits(mixer->engine.regs, +- SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, overlay), +- SUN8I_MIXER_CHAN_VI_LAYER_ATTR_FBFMT_MASK, val); +- + csc_mode = sun8i_vi_layer_get_csc_mode(fmt); + if (csc_mode != SUN8I_CSC_MODE_OFF) { + sun8i_csc_set_ccsc_coefficients(mixer, channel, csc_mode, +@@ -220,15 +212,6 @@ static void sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel + } else { + sun8i_csc_enable_ccsc(mixer, channel, false); + } +- +- if (!fmt->is_yuv) +- val = SUN8I_MIXER_CHAN_VI_LAYER_ATTR_RGB_MODE; +- else +- val = 0; +- +- regmap_update_bits(mixer->engine.regs, +- SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, overlay), +- SUN8I_MIXER_CHAN_VI_LAYER_ATTR_RGB_MODE, val); + } + + static void sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel, +@@ -340,12 +323,12 @@ static void sun8i_vi_layer_atomic_update(struct drm_plane *plane, + if (!new_state->crtc || !new_state->visible) + return; + ++ sun8i_vi_layer_update_attributes(mixer, layer->channel, ++ layer->overlay, plane); + sun8i_vi_layer_update_coord(mixer, layer->channel, + layer->overlay, plane); +- sun8i_vi_layer_update_alpha(mixer, layer->channel, +- layer->overlay, plane); +- sun8i_vi_layer_update_formats(mixer, layer->channel, +- layer->overlay, plane); ++ sun8i_vi_layer_update_colors(mixer, layer->channel, ++ layer->overlay, plane); + sun8i_vi_layer_update_buffer(mixer, layer->channel, + layer->overlay, plane); + } +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0010-drm-sun4i-mixer-Move-layer-enabling-to-atomic_update.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0010-drm-sun4i-mixer-Move-layer-enabling-to-atomic_update.patch new file mode 100644 index 000000000..bff809b97 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0010-drm-sun4i-mixer-Move-layer-enabling-to-atomic_update.patch @@ -0,0 +1,129 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:10 +0200 +Subject: drm/sun4i: mixer: Move layer enabling to atomic_update + +Enable or disable layer only in layer atomic update callback. Doing so +will enable having separate layer driver later for DE33. + +There is no fear that enable bit would be set incorrectly, as all +read-modify-write sequences for that register are now eliminated. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 24 ---------- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 13 ++++- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 13 ++++- + 3 files changed, 24 insertions(+), 26 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -250,24 +250,6 @@ int sun8i_mixer_drm_format_to_hw(u32 format, u32 *hw_format) + return -EINVAL; + } + +-static void sun8i_layer_enable(struct sun8i_layer *layer, bool enable) +-{ +- u32 ch_base = sun8i_channel_base(layer->mixer, layer->channel); +- u32 val, reg, mask; +- +- if (layer->type == SUN8I_LAYER_TYPE_UI) { +- val = enable ? SUN8I_MIXER_CHAN_UI_LAYER_ATTR_EN : 0; +- mask = SUN8I_MIXER_CHAN_UI_LAYER_ATTR_EN; +- reg = SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, layer->overlay); +- } else { +- val = enable ? SUN8I_MIXER_CHAN_VI_LAYER_ATTR_EN : 0; +- mask = SUN8I_MIXER_CHAN_VI_LAYER_ATTR_EN; +- reg = SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, layer->overlay); +- } +- +- regmap_update_bits(layer->mixer->engine.regs, reg, mask, val); +-} +- + static void sun8i_mixer_commit(struct sunxi_engine *engine, + struct drm_crtc *crtc, + struct drm_atomic_state *state) +@@ -304,12 +286,6 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, + plane->base.id, layer->channel, layer->overlay, + enable, zpos, x, y, w, h); + +- /* +- * We always update the layer enable bit, because it can clear +- * spontaneously for unknown reasons. +- */ +- sun8i_layer_enable(layer, enable); +- + if (!enable) + continue; + +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -25,6 +25,15 @@ + #include "sun8i_ui_scaler.h" + #include "sun8i_vi_scaler.h" + ++static void sun8i_ui_layer_disable(struct sun8i_mixer *mixer, ++ int channel, int overlay) ++{ ++ u32 ch_base = sun8i_channel_base(mixer, channel); ++ ++ regmap_write(mixer->engine.regs, ++ SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, overlay), 0); ++} ++ + static void sun8i_ui_layer_update_attributes(struct sun8i_mixer *mixer, + int channel, int overlay, + struct drm_plane *plane) +@@ -201,8 +210,10 @@ static void sun8i_ui_layer_atomic_update(struct drm_plane *plane, + struct sun8i_layer *layer = plane_to_sun8i_layer(plane); + struct sun8i_mixer *mixer = layer->mixer; + +- if (!new_state->crtc || !new_state->visible) ++ if (!new_state->crtc || !new_state->visible) { ++ sun8i_ui_layer_disable(mixer, layer->channel, layer->overlay); + return; ++ } + + sun8i_ui_layer_update_attributes(mixer, layer->channel, + layer->overlay, plane); +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -18,6 +18,15 @@ + #include "sun8i_vi_layer.h" + #include "sun8i_vi_scaler.h" + ++static void sun8i_vi_layer_disable(struct sun8i_mixer *mixer, ++ int channel, int overlay) ++{ ++ u32 ch_base = sun8i_channel_base(mixer, channel); ++ ++ regmap_write(mixer->engine.regs, ++ SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, overlay), 0); ++} ++ + static void sun8i_vi_layer_update_attributes(struct sun8i_mixer *mixer, + int channel, int overlay, + struct drm_plane *plane) +@@ -320,8 +329,10 @@ static void sun8i_vi_layer_atomic_update(struct drm_plane *plane, + struct sun8i_layer *layer = plane_to_sun8i_layer(plane); + struct sun8i_mixer *mixer = layer->mixer; + +- if (!new_state->crtc || !new_state->visible) ++ if (!new_state->crtc || !new_state->visible) { ++ sun8i_vi_layer_disable(mixer, layer->channel, layer->overlay); + return; ++ } + + sun8i_vi_layer_update_attributes(mixer, layer->channel, + layer->overlay, plane); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0011-drm-sun4i-de2-de3-Simplify-CSC-config-interface.patch similarity index 65% rename from patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch rename to patch/kernel/archive/sunxi-6.18/patches.drm/0011-drm-sun4i-de2-de3-Simplify-CSC-config-interface.patch index a487d9d89..30c4c9426 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0011-drm-sun4i-de2-de3-Simplify-CSC-config-interface.patch @@ -1,24 +1,24 @@ -From 09744193cdcf400e5a4c54d9309acf5aea3a591c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec -Date: Sun, 29 Sep 2024 22:04:34 +1300 -Subject: drm: sun4i: de2/de3: Merge CSC functions into one +Date: Sun, 12 Oct 2025 21:23:11 +0200 +Subject: drm/sun4i: de2/de3: Simplify CSC config interface -At the moment the colour space conversion is handled by two functions: -one to setup the conversion parameters, and another one to enable the -conversion. Merging both into one gives more flexibility for upcoming -extensions to support whole YUV pipelines, in the DE33. +Merging both function into one lets this one decide on it's own if CSC +should be enabled or not. Currently heuristics for that is pretty simple +- enable it for YUV formats and disable for RGB. DE3 and newer allows +YUV pipeline, which will be easier to implement these way. +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin -Reviewed-by: Andre Przywara --- - drivers/gpu/drm/sun4i/sun8i_csc.c | 89 ++++++++++---------------- - drivers/gpu/drm/sun4i/sun8i_csc.h | 9 ++- - drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 11 +--- + drivers/gpu/drm/sun4i/sun8i_csc.c | 89 ++++------ + drivers/gpu/drm/sun4i/sun8i_csc.h | 9 +- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 11 +- 3 files changed, 40 insertions(+), 69 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index 6ebd1c3aa3ab..0dcbc0866ae8 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun8i_csc.c +++ b/drivers/gpu/drm/sun4i/sun8i_csc.c @@ -107,23 +107,28 @@ static const u32 yuv2rgb_de3[2][3][12] = { @@ -26,11 +26,11 @@ index 6ebd1c3aa3ab..0dcbc0866ae8 100644 }; -static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, -- enum format_type fmt_type, +- enum sun8i_csc_mode mode, - enum drm_color_encoding encoding, - enum drm_color_range range) +static void sun8i_csc_setup(struct regmap *map, u32 base, -+ enum format_type fmt_type, ++ enum sun8i_csc_mode mode, + enum drm_color_encoding encoding, + enum drm_color_range range) { @@ -41,16 +41,16 @@ index 6ebd1c3aa3ab..0dcbc0866ae8 100644 table = yuv2rgb[range][encoding]; - switch (fmt_type) { -+ case FORMAT_TYPE_RGB: + switch (mode) { ++ case SUN8I_CSC_MODE_OFF: + val = 0; + break; - case FORMAT_TYPE_YUV: + case SUN8I_CSC_MODE_YUV2RGB: + val = SUN8I_CSC_CTRL_EN; base_reg = SUN8I_CSC_COEFF(base, 0); regmap_bulk_write(map, base_reg, table, 12); break; - case FORMAT_TYPE_YVU: + case SUN8I_CSC_MODE_YVU2RGB: + val = SUN8I_CSC_CTRL_EN; for (i = 0; i < 12; i++) { if ((i & 3) == 1) @@ -68,11 +68,11 @@ index 6ebd1c3aa3ab..0dcbc0866ae8 100644 } -static void sun8i_de3_ccsc_set_coefficients(struct regmap *map, int layer, -- enum format_type fmt_type, +- enum sun8i_csc_mode mode, - enum drm_color_encoding encoding, - enum drm_color_range range) +static void sun8i_de3_ccsc_setup(struct regmap *map, int layer, -+ enum format_type fmt_type, ++ enum sun8i_csc_mode mode, + enum drm_color_encoding encoding, + enum drm_color_range range) { @@ -84,16 +84,16 @@ index 6ebd1c3aa3ab..0dcbc0866ae8 100644 + mask = SUN50I_MIXER_BLEND_CSC_CTL_EN(layer); table = yuv2rgb_de3[range][encoding]; - switch (fmt_type) { -+ case FORMAT_TYPE_RGB: + switch (mode) { ++ case SUN8I_CSC_MODE_OFF: + val = 0; + break; - case FORMAT_TYPE_YUV: + case SUN8I_CSC_MODE_YUV2RGB: + val = mask; addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, layer, 0); regmap_bulk_write(map, addr, table, 12); break; - case FORMAT_TYPE_YVU: + case SUN8I_CSC_MODE_YVU2RGB: + val = mask; for (i = 0; i < 12; i++) { if ((i & 3) == 1) @@ -136,36 +136,36 @@ index 6ebd1c3aa3ab..0dcbc0866ae8 100644 } -void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, -- enum format_type fmt_type, +- enum sun8i_csc_mode mode, - enum drm_color_encoding encoding, - enum drm_color_range range) -{ - u32 base; - -- if (mixer->cfg->is_de3) { +- if (mixer->cfg->de_type == SUN8I_MIXER_DE3) { - sun8i_de3_ccsc_set_coefficients(mixer->engine.regs, layer, -- fmt_type, encoding, range); +- mode, encoding, range); - return; - } - - base = ccsc_base[mixer->cfg->ccsc][layer]; - - sun8i_csc_set_coefficients(mixer->engine.regs, base, -- fmt_type, encoding, range); +- mode, encoding, range); -} - -void sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable) -+void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, -+ enum format_type fmt_type, -+ enum drm_color_encoding encoding, -+ enum drm_color_range range) ++void sun8i_csc_config(struct sun8i_mixer *mixer, int layer, ++ enum sun8i_csc_mode mode, ++ enum drm_color_encoding encoding, ++ enum drm_color_range range) { u32 base; - if (mixer->cfg->is_de3) { + if (mixer->cfg->de_type == SUN8I_MIXER_DE3) { - sun8i_de3_ccsc_enable(mixer->engine.regs, layer, enable); + sun8i_de3_ccsc_setup(mixer->engine.regs, layer, -+ fmt_type, encoding, range); ++ mode, encoding, range); return; } @@ -173,49 +173,49 @@ index 6ebd1c3aa3ab..0dcbc0866ae8 100644 - sun8i_csc_enable(mixer->engine.regs, base, enable); + sun8i_csc_setup(mixer->engine.regs, base, -+ fmt_type, encoding, range); ++ mode, encoding, range); } diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.h b/drivers/gpu/drm/sun4i/sun8i_csc.h -index 7322770f39f0..b7546e06e315 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun8i_csc.h +++ b/drivers/gpu/drm/sun4i/sun8i_csc.h -@@ -28,10 +28,9 @@ enum format_type { - FORMAT_TYPE_YVU, +@@ -28,10 +28,9 @@ enum sun8i_csc_mode { + SUN8I_CSC_MODE_YVU2RGB, }; -void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, -- enum format_type fmt_type, +- enum sun8i_csc_mode mode, - enum drm_color_encoding encoding, - enum drm_color_range range); -void sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable); -+void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, -+ enum format_type fmt_type, -+ enum drm_color_encoding encoding, -+ enum drm_color_range range); ++void sun8i_csc_config(struct sun8i_mixer *mixer, int layer, ++ enum sun8i_csc_mode mode, ++ enum drm_color_encoding encoding, ++ enum drm_color_range range); #endif diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index 8a80934e928f..f3a5329351ca 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -@@ -232,14 +232,9 @@ static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, - SUN8I_MIXER_CHAN_VI_LAYER_ATTR_FBFMT_MASK, val); +@@ -213,14 +213,9 @@ static void sun8i_vi_layer_update_colors(struct sun8i_mixer *mixer, int channel, - fmt_type = sun8i_vi_layer_get_format_type(fmt); -- if (fmt_type != FORMAT_TYPE_RGB) { -- sun8i_csc_set_ccsc_coefficients(mixer, channel, fmt_type, + fmt = state->fb->format; + csc_mode = sun8i_vi_layer_get_csc_mode(fmt); +- if (csc_mode != SUN8I_CSC_MODE_OFF) { +- sun8i_csc_set_ccsc_coefficients(mixer, channel, csc_mode, - state->color_encoding, - state->color_range); - sun8i_csc_enable_ccsc(mixer, channel, true); - } else { - sun8i_csc_enable_ccsc(mixer, channel, false); - } -+ sun8i_csc_set_ccsc(mixer, channel, fmt_type, -+ state->color_encoding, -+ state->color_range); ++ sun8i_csc_config(mixer, channel, csc_mode, ++ state->color_encoding, ++ state->color_range); + } - if (!fmt->is_yuv) - val = SUN8I_MIXER_CHAN_VI_LAYER_ATTR_RGB_MODE; + static void sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel, -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0012-drm-sun4i-csc-Simplify-arguments-with-taking-plane-s.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0012-drm-sun4i-csc-Simplify-arguments-with-taking-plane-s.patch new file mode 100644 index 000000000..3716374cf --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0012-drm-sun4i-csc-Simplify-arguments-with-taking-plane-s.patch @@ -0,0 +1,179 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:12 +0200 +Subject: drm/sun4i: csc: Simplify arguments with taking plane state + +Taking plane state directly reduces number of arguments, avoids copying +values and allows making additional decisions. For example, when plane +is disabled, CSC should be turned off. + +This is also cleanup for later patches which will move call to another +place. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_csc.c | 42 ++++++++-- + drivers/gpu/drm/sun4i/sun8i_csc.h | 11 +-- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 33 +------- + 3 files changed, 40 insertions(+), 46 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.c ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.c +@@ -3,11 +3,20 @@ + * Copyright (C) Jernej Skrabec + */ + ++#include ++#include ++#include + #include + + #include "sun8i_csc.h" + #include "sun8i_mixer.h" + ++enum sun8i_csc_mode { ++ SUN8I_CSC_MODE_OFF, ++ SUN8I_CSC_MODE_YUV2RGB, ++ SUN8I_CSC_MODE_YVU2RGB, ++}; ++ + static const u32 ccsc_base[][2] = { + [CCSC_MIXER0_LAYOUT] = {CCSC00_OFFSET, CCSC01_OFFSET}, + [CCSC_MIXER1_LAYOUT] = {CCSC10_OFFSET, CCSC11_OFFSET}, +@@ -196,21 +205,44 @@ static void sun8i_de3_ccsc_setup(struct regmap *map, int layer, + mask, val); + } + ++static u32 sun8i_csc_get_mode(struct drm_plane_state *state) ++{ ++ const struct drm_format_info *format; ++ ++ if (!state->crtc || !state->visible) ++ return SUN8I_CSC_MODE_OFF; ++ ++ format = state->fb->format; ++ if (!format->is_yuv) ++ return SUN8I_CSC_MODE_OFF; ++ ++ switch (format->format) { ++ case DRM_FORMAT_YVU411: ++ case DRM_FORMAT_YVU420: ++ case DRM_FORMAT_YVU422: ++ case DRM_FORMAT_YVU444: ++ return SUN8I_CSC_MODE_YVU2RGB; ++ default: ++ return SUN8I_CSC_MODE_YUV2RGB; ++ } ++} ++ + void sun8i_csc_config(struct sun8i_mixer *mixer, int layer, +- enum sun8i_csc_mode mode, +- enum drm_color_encoding encoding, +- enum drm_color_range range) ++ struct drm_plane_state *state) + { ++ u32 mode = sun8i_csc_get_mode(state); + u32 base; + + if (mixer->cfg->de_type == SUN8I_MIXER_DE3) { + sun8i_de3_ccsc_setup(mixer->engine.regs, layer, +- mode, encoding, range); ++ mode, state->color_encoding, ++ state->color_range); + return; + } + + base = ccsc_base[mixer->cfg->ccsc][layer]; + + sun8i_csc_setup(mixer->engine.regs, base, +- mode, encoding, range); ++ mode, state->color_encoding, ++ state->color_range); + } +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.h b/drivers/gpu/drm/sun4i/sun8i_csc.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.h ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.h +@@ -8,6 +8,7 @@ + + #include + ++struct drm_plane_state; + struct sun8i_mixer; + + /* VI channel CSC units offsets */ +@@ -22,15 +23,7 @@ struct sun8i_mixer; + + #define SUN8I_CSC_CTRL_EN BIT(0) + +-enum sun8i_csc_mode { +- SUN8I_CSC_MODE_OFF, +- SUN8I_CSC_MODE_YUV2RGB, +- SUN8I_CSC_MODE_YVU2RGB, +-}; +- + void sun8i_csc_config(struct sun8i_mixer *mixer, int layer, +- enum sun8i_csc_mode mode, +- enum drm_color_encoding encoding, +- enum drm_color_range range); ++ struct drm_plane_state *state); + + #endif +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -188,36 +188,6 @@ static void sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, + SUN8I_MIXER_CHAN_VI_DS_M(vm)); + } + +-static u32 sun8i_vi_layer_get_csc_mode(const struct drm_format_info *format) +-{ +- if (!format->is_yuv) +- return SUN8I_CSC_MODE_OFF; +- +- switch (format->format) { +- case DRM_FORMAT_YVU411: +- case DRM_FORMAT_YVU420: +- case DRM_FORMAT_YVU422: +- case DRM_FORMAT_YVU444: +- return SUN8I_CSC_MODE_YVU2RGB; +- default: +- return SUN8I_CSC_MODE_YUV2RGB; +- } +-} +- +-static void sun8i_vi_layer_update_colors(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) +-{ +- struct drm_plane_state *state = plane->state; +- const struct drm_format_info *fmt; +- u32 csc_mode; +- +- fmt = state->fb->format; +- csc_mode = sun8i_vi_layer_get_csc_mode(fmt); +- sun8i_csc_config(mixer, channel, csc_mode, +- state->color_encoding, +- state->color_range); +-} +- + static void sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel, + int overlay, struct drm_plane *plane) + { +@@ -333,8 +303,7 @@ static void sun8i_vi_layer_atomic_update(struct drm_plane *plane, + layer->overlay, plane); + sun8i_vi_layer_update_coord(mixer, layer->channel, + layer->overlay, plane); +- sun8i_vi_layer_update_colors(mixer, layer->channel, +- layer->overlay, plane); ++ sun8i_csc_config(mixer, layer->channel, new_state); + sun8i_vi_layer_update_buffer(mixer, layer->channel, + layer->overlay, plane); + } +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0013-drm-sun4i-de2-de3-Move-plane-type-determination-to-m.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0013-drm-sun4i-de2-de3-Move-plane-type-determination-to-m.patch new file mode 100644 index 000000000..4e9471ac2 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0013-drm-sun4i-de2-de3-Move-plane-type-determination-to-m.patch @@ -0,0 +1,137 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:13 +0200 +Subject: drm/sun4i: de2/de3: Move plane type determination to mixer + +Plane type determination logic inside layer init functions doesn't allow +index register to be repurposed to plane sequence, which it almost is. + +So move out the logic to mixer, which allows further rework for DE33 +support. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 15 ++++++++-- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 5 +--- + drivers/gpu/drm/sun4i/sun8i_ui_layer.h | 1 + + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 5 +--- + drivers/gpu/drm/sun4i/sun8i_vi_layer.h | 1 + + 5 files changed, 17 insertions(+), 10 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -315,6 +315,7 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + { + struct drm_plane **planes; + struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); ++ enum drm_plane_type type; + int i; + + planes = devm_kcalloc(drm->dev, +@@ -326,7 +327,12 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + for (i = 0; i < mixer->cfg->vi_num; i++) { + struct sun8i_layer *layer; + +- layer = sun8i_vi_layer_init_one(drm, mixer, i); ++ if (i == 0 && !mixer->cfg->ui_num) ++ type = DRM_PLANE_TYPE_PRIMARY; ++ else ++ type = DRM_PLANE_TYPE_OVERLAY; ++ ++ layer = sun8i_vi_layer_init_one(drm, mixer, type, i); + if (IS_ERR(layer)) { + dev_err(drm->dev, + "Couldn't initialize overlay plane\n"); +@@ -339,7 +345,12 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + for (i = 0; i < mixer->cfg->ui_num; i++) { + struct sun8i_layer *layer; + +- layer = sun8i_ui_layer_init_one(drm, mixer, i); ++ if (i == 0) ++ type = DRM_PLANE_TYPE_PRIMARY; ++ else ++ type = DRM_PLANE_TYPE_OVERLAY; ++ ++ layer = sun8i_ui_layer_init_one(drm, mixer, type, i); + if (IS_ERR(layer)) { + dev_err(drm->dev, "Couldn't initialize %s plane\n", + i ? "overlay" : "primary"); +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -267,9 +267,9 @@ static const uint64_t sun8i_layer_modifiers[] = { + + struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, ++ enum drm_plane_type type, + int index) + { +- enum drm_plane_type type = DRM_PLANE_TYPE_OVERLAY; + int channel = mixer->cfg->vi_num + index; + struct sun8i_layer *layer; + unsigned int plane_cnt; +@@ -284,9 +284,6 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + layer->channel = channel; + layer->overlay = 0; + +- if (index == 0) +- type = DRM_PLANE_TYPE_PRIMARY; +- + /* possible crtcs are set later */ + ret = drm_universal_plane_init(drm, &layer->plane, 0, + &sun8i_ui_layer_funcs, +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h +@@ -51,5 +51,6 @@ struct sun8i_layer; + + struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, ++ enum drm_plane_type type, + int index); + #endif /* _SUN8I_UI_LAYER_H_ */ +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -412,9 +412,9 @@ static const uint64_t sun8i_layer_modifiers[] = { + + struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, ++ enum drm_plane_type type, + int index) + { +- enum drm_plane_type type = DRM_PLANE_TYPE_OVERLAY; + u32 supported_encodings, supported_ranges; + unsigned int plane_cnt, format_count; + struct sun8i_layer *layer; +@@ -438,9 +438,6 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + format_count = ARRAY_SIZE(sun8i_vi_layer_formats); + } + +- if (!mixer->cfg->ui_num && index == 0) +- type = DRM_PLANE_TYPE_PRIMARY; +- + /* possible crtcs are set later */ + ret = drm_universal_plane_init(drm, &layer->plane, 0, + &sun8i_vi_layer_funcs, +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h +@@ -56,5 +56,6 @@ struct sun8i_layer; + + struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, ++ enum drm_plane_type type, + int index); + #endif /* _SUN8I_VI_LAYER_H_ */ +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0014-drm-sun4i-ui_layer-Change-index-meaning.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0014-drm-sun4i-ui_layer-Change-index-meaning.patch new file mode 100644 index 000000000..99c77177d --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0014-drm-sun4i-ui_layer-Change-index-meaning.patch @@ -0,0 +1,81 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:14 +0200 +Subject: drm/sun4i: ui_layer: Change index meaning + +In the pursuit of making UI/VI layer code independent of DE version, +change meaning of UI index to index of the plane within mixer. DE33 can +split amount of VI and UI planes between multiple mixer in whatever way +it deems acceptable, so simple calculation VI num + UI index won't be +meaningful anymore. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 5 +++-- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 5 ++--- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -343,6 +343,7 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + } + + for (i = 0; i < mixer->cfg->ui_num; i++) { ++ unsigned int index = mixer->cfg->vi_num + i; + struct sun8i_layer *layer; + + if (i == 0) +@@ -350,14 +351,14 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + else + type = DRM_PLANE_TYPE_OVERLAY; + +- layer = sun8i_ui_layer_init_one(drm, mixer, type, i); ++ layer = sun8i_ui_layer_init_one(drm, mixer, type, index); + if (IS_ERR(layer)) { + dev_err(drm->dev, "Couldn't initialize %s plane\n", + i ? "overlay" : "primary"); + return ERR_CAST(layer); + } + +- planes[mixer->cfg->vi_num + i] = &layer->plane; ++ planes[index] = &layer->plane; + } + + return planes; +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -270,7 +270,6 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + enum drm_plane_type type, + int index) + { +- int channel = mixer->cfg->vi_num + index; + struct sun8i_layer *layer; + unsigned int plane_cnt; + int ret; +@@ -281,7 +280,7 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + + layer->mixer = mixer; + layer->type = SUN8I_LAYER_TYPE_UI; +- layer->channel = channel; ++ layer->channel = index; + layer->overlay = 0; + + /* possible crtcs are set later */ +@@ -303,7 +302,7 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + return ERR_PTR(ret); + } + +- ret = drm_plane_create_zpos_property(&layer->plane, channel, ++ ret = drm_plane_create_zpos_property(&layer->plane, index, + 0, plane_cnt - 1); + if (ret) { + dev_err(drm->dev, "Couldn't add zpos property\n"); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0015-drm-sun4i-layer-move-num-of-planes-calc-out-of-layer.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0015-drm-sun4i-layer-move-num-of-planes-calc-out-of-layer.patch new file mode 100644 index 000000000..12fd8a467 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0015-drm-sun4i-layer-move-num-of-planes-calc-out-of-layer.patch @@ -0,0 +1,140 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:15 +0200 +Subject: drm/sun4i: layer: move num of planes calc out of layer code + +With DE33, number of planes no longer depends on mixer because layers +are shared between all mixers. + +Get this value via parameter, so DE specific code can fill in proper +value. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 10 +++++----- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 6 ++---- + drivers/gpu/drm/sun4i/sun8i_ui_layer.h | 3 ++- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 7 +++---- + drivers/gpu/drm/sun4i/sun8i_vi_layer.h | 3 ++- + 5 files changed, 14 insertions(+), 15 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -315,12 +315,11 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + { + struct drm_plane **planes; + struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); ++ int plane_cnt = mixer->cfg->ui_num + mixer->cfg->vi_num; + enum drm_plane_type type; + int i; + +- planes = devm_kcalloc(drm->dev, +- mixer->cfg->vi_num + mixer->cfg->ui_num + 1, +- sizeof(*planes), GFP_KERNEL); ++ planes = devm_kcalloc(drm->dev, plane_cnt, sizeof(*planes), GFP_KERNEL); + if (!planes) + return ERR_PTR(-ENOMEM); + +@@ -332,7 +331,7 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + else + type = DRM_PLANE_TYPE_OVERLAY; + +- layer = sun8i_vi_layer_init_one(drm, mixer, type, i); ++ layer = sun8i_vi_layer_init_one(drm, mixer, type, i, plane_cnt); + if (IS_ERR(layer)) { + dev_err(drm->dev, + "Couldn't initialize overlay plane\n"); +@@ -351,7 +350,8 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + else + type = DRM_PLANE_TYPE_OVERLAY; + +- layer = sun8i_ui_layer_init_one(drm, mixer, type, index); ++ layer = sun8i_ui_layer_init_one(drm, mixer, type, index, ++ plane_cnt); + if (IS_ERR(layer)) { + dev_err(drm->dev, "Couldn't initialize %s plane\n", + i ? "overlay" : "primary"); +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -268,10 +268,10 @@ static const uint64_t sun8i_layer_modifiers[] = { + struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, + enum drm_plane_type type, +- int index) ++ int index, ++ int plane_cnt) + { + struct sun8i_layer *layer; +- unsigned int plane_cnt; + int ret; + + layer = devm_kzalloc(drm->dev, sizeof(*layer), GFP_KERNEL); +@@ -294,8 +294,6 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + return ERR_PTR(ret); + } + +- plane_cnt = mixer->cfg->ui_num + mixer->cfg->vi_num; +- + ret = drm_plane_create_alpha_property(&layer->plane); + if (ret) { + dev_err(drm->dev, "Couldn't add alpha property\n"); +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h +@@ -52,5 +52,6 @@ struct sun8i_layer; + struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, + enum drm_plane_type type, +- int index); ++ int index, ++ int plane_cnt); + #endif /* _SUN8I_UI_LAYER_H_ */ +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -413,10 +413,11 @@ static const uint64_t sun8i_layer_modifiers[] = { + struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, + enum drm_plane_type type, +- int index) ++ int index, ++ int plane_cnt) + { + u32 supported_encodings, supported_ranges; +- unsigned int plane_cnt, format_count; ++ unsigned int format_count; + struct sun8i_layer *layer; + const u32 *formats; + int ret; +@@ -449,8 +450,6 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + return ERR_PTR(ret); + } + +- plane_cnt = mixer->cfg->ui_num + mixer->cfg->vi_num; +- + if (mixer->cfg->vi_num == 1 || mixer->cfg->de_type >= SUN8I_MIXER_DE3) { + ret = drm_plane_create_alpha_property(&layer->plane); + if (ret) { +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h +@@ -57,5 +57,6 @@ struct sun8i_layer; + struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, + enum drm_plane_type type, +- int index); ++ int index, ++ int plane_cnt); + #endif /* _SUN8I_VI_LAYER_H_ */ +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0016-drm-sun4i-ui_layer-use-layer-struct-instead-of-multi.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0016-drm-sun4i-ui_layer-use-layer-struct-instead-of-multi.patch new file mode 100644 index 000000000..c42b2ed30 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0016-drm-sun4i-ui_layer-use-layer-struct-instead-of-multi.patch @@ -0,0 +1,180 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:16 +0200 +Subject: drm/sun4i: ui_layer: use layer struct instead of multiple args + +This change is equally a cleanup (less arguments) and preparation for +DE33 separate plane driver. It will introduce additional register space. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 62 +++++----- + 1 file changed, 30 insertions(+), 32 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -25,24 +25,24 @@ + #include "sun8i_ui_scaler.h" + #include "sun8i_vi_scaler.h" + +-static void sun8i_ui_layer_disable(struct sun8i_mixer *mixer, +- int channel, int overlay) ++static void sun8i_ui_layer_disable(struct sun8i_layer *layer) + { +- u32 ch_base = sun8i_channel_base(mixer, channel); ++ struct sun8i_mixer *mixer = layer->mixer; ++ u32 ch_base = sun8i_channel_base(mixer, layer->channel); + + regmap_write(mixer->engine.regs, +- SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, overlay), 0); ++ SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, layer->overlay), 0); + } + +-static void sun8i_ui_layer_update_attributes(struct sun8i_mixer *mixer, +- int channel, int overlay, ++static void sun8i_ui_layer_update_attributes(struct sun8i_layer *layer, + struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; ++ struct sun8i_mixer *mixer = layer->mixer; + const struct drm_format_info *fmt; + u32 val, ch_base, hw_fmt; + +- ch_base = sun8i_channel_base(mixer, channel); ++ ch_base = sun8i_channel_base(mixer, layer->channel); + fmt = state->fb->format; + sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); + +@@ -54,22 +54,23 @@ static void sun8i_ui_layer_update_attributes(struct sun8i_mixer *mixer, + val |= SUN8I_MIXER_CHAN_UI_LAYER_ATTR_EN; + + regmap_write(mixer->engine.regs, +- SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, overlay), val); ++ SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, layer->overlay), val); + } + +-static void sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) ++static void sun8i_ui_layer_update_coord(struct sun8i_layer *layer, ++ struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; ++ struct sun8i_mixer *mixer = layer->mixer; + u32 src_w, src_h, dst_w, dst_h; + u32 outsize, insize; + u32 hphase, vphase; + u32 ch_base; + + DRM_DEBUG_DRIVER("Updating UI channel %d overlay %d\n", +- channel, overlay); ++ layer->channel, layer->overlay); + +- ch_base = sun8i_channel_base(mixer, channel); ++ ch_base = sun8i_channel_base(mixer, layer->channel); + + src_w = drm_rect_width(&state->src) >> 16; + src_h = drm_rect_height(&state->src) >> 16; +@@ -87,7 +88,7 @@ static void sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, + state->src.x1 >> 16, state->src.y1 >> 16); + DRM_DEBUG_DRIVER("Layer source size W: %d H: %d\n", src_w, src_h); + regmap_write(mixer->engine.regs, +- SUN8I_MIXER_CHAN_UI_LAYER_SIZE(ch_base, overlay), ++ SUN8I_MIXER_CHAN_UI_LAYER_SIZE(ch_base, layer->overlay), + insize); + regmap_write(mixer->engine.regs, + SUN8I_MIXER_CHAN_UI_OVL_SIZE(ch_base), +@@ -102,37 +103,38 @@ static void sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, + vscale = state->src_h / state->crtc_h; + + if (mixer->cfg->de_type == SUN8I_MIXER_DE33) { +- sun8i_vi_scaler_setup(mixer, channel, src_w, src_h, ++ sun8i_vi_scaler_setup(mixer, layer->channel, src_w, src_h, + dst_w, dst_h, hscale, vscale, + hphase, vphase, + state->fb->format); +- sun8i_vi_scaler_enable(mixer, channel, true); ++ sun8i_vi_scaler_enable(mixer, layer->channel, true); + } else { +- sun8i_ui_scaler_setup(mixer, channel, src_w, src_h, ++ sun8i_ui_scaler_setup(mixer, layer->channel, src_w, src_h, + dst_w, dst_h, hscale, vscale, + hphase, vphase); +- sun8i_ui_scaler_enable(mixer, channel, true); ++ sun8i_ui_scaler_enable(mixer, layer->channel, true); + } + } else { + DRM_DEBUG_DRIVER("HW scaling is not needed\n"); + if (mixer->cfg->de_type == SUN8I_MIXER_DE33) +- sun8i_vi_scaler_enable(mixer, channel, false); ++ sun8i_vi_scaler_enable(mixer, layer->channel, false); + else +- sun8i_ui_scaler_enable(mixer, channel, false); ++ sun8i_ui_scaler_enable(mixer, layer->channel, false); + } + } + +-static void sun8i_ui_layer_update_buffer(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) ++static void sun8i_ui_layer_update_buffer(struct sun8i_layer *layer, ++ struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; ++ struct sun8i_mixer *mixer = layer->mixer; + struct drm_framebuffer *fb = state->fb; + struct drm_gem_dma_object *gem; + dma_addr_t dma_addr; + u32 ch_base; + int bpp; + +- ch_base = sun8i_channel_base(mixer, channel); ++ ch_base = sun8i_channel_base(mixer, layer->channel); + + /* Get the physical address of the buffer in memory */ + gem = drm_fb_dma_get_gem_obj(fb, 0); +@@ -150,13 +152,13 @@ static void sun8i_ui_layer_update_buffer(struct sun8i_mixer *mixer, int channel, + /* Set the line width */ + DRM_DEBUG_DRIVER("Layer line width: %d bytes\n", fb->pitches[0]); + regmap_write(mixer->engine.regs, +- SUN8I_MIXER_CHAN_UI_LAYER_PITCH(ch_base, overlay), ++ SUN8I_MIXER_CHAN_UI_LAYER_PITCH(ch_base, layer->overlay), + fb->pitches[0]); + + DRM_DEBUG_DRIVER("Setting buffer address to %pad\n", &dma_addr); + + regmap_write(mixer->engine.regs, +- SUN8I_MIXER_CHAN_UI_LAYER_TOP_LADDR(ch_base, overlay), ++ SUN8I_MIXER_CHAN_UI_LAYER_TOP_LADDR(ch_base, layer->overlay), + lower_32_bits(dma_addr)); + } + +@@ -208,19 +210,15 @@ static void sun8i_ui_layer_atomic_update(struct drm_plane *plane, + struct drm_plane_state *new_state = drm_atomic_get_new_plane_state(state, + plane); + struct sun8i_layer *layer = plane_to_sun8i_layer(plane); +- struct sun8i_mixer *mixer = layer->mixer; + + if (!new_state->crtc || !new_state->visible) { +- sun8i_ui_layer_disable(mixer, layer->channel, layer->overlay); ++ sun8i_ui_layer_disable(layer); + return; + } + +- sun8i_ui_layer_update_attributes(mixer, layer->channel, +- layer->overlay, plane); +- sun8i_ui_layer_update_coord(mixer, layer->channel, +- layer->overlay, plane); +- sun8i_ui_layer_update_buffer(mixer, layer->channel, +- layer->overlay, plane); ++ sun8i_ui_layer_update_attributes(layer, plane); ++ sun8i_ui_layer_update_coord(layer, plane); ++ sun8i_ui_layer_update_buffer(layer, plane); + } + + static const struct drm_plane_helper_funcs sun8i_ui_layer_helper_funcs = { +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0017-drm-sun4i-vi_layer-use-layer-struct-instead-of-multi.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0017-drm-sun4i-vi_layer-use-layer-struct-instead-of-multi.patch new file mode 100644 index 000000000..cea7c0627 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0017-drm-sun4i-vi_layer-use-layer-struct-instead-of-multi.patch @@ -0,0 +1,180 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:17 +0200 +Subject: drm/sun4i: vi_layer: use layer struct instead of multiple args + +This change is equally a cleanup (less arguments) and preparation for +DE33 separate plane driver. It will introduce additional register space. + +No functional changes. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 58 +++++----- + 1 file changed, 28 insertions(+), 30 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -18,24 +18,24 @@ + #include "sun8i_vi_layer.h" + #include "sun8i_vi_scaler.h" + +-static void sun8i_vi_layer_disable(struct sun8i_mixer *mixer, +- int channel, int overlay) ++static void sun8i_vi_layer_disable(struct sun8i_layer *layer) + { +- u32 ch_base = sun8i_channel_base(mixer, channel); ++ struct sun8i_mixer *mixer = layer->mixer; ++ u32 ch_base = sun8i_channel_base(mixer, layer->channel); + + regmap_write(mixer->engine.regs, +- SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, overlay), 0); ++ SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, layer->overlay), 0); + } + +-static void sun8i_vi_layer_update_attributes(struct sun8i_mixer *mixer, +- int channel, int overlay, ++static void sun8i_vi_layer_update_attributes(struct sun8i_layer *layer, + struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; ++ struct sun8i_mixer *mixer = layer->mixer; + const struct drm_format_info *fmt; + u32 val, ch_base, hw_fmt; + +- ch_base = sun8i_channel_base(mixer, channel); ++ ch_base = sun8i_channel_base(mixer, layer->channel); + fmt = state->fb->format; + sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); + +@@ -55,14 +55,15 @@ static void sun8i_vi_layer_update_attributes(struct sun8i_mixer *mixer, + } + + regmap_write(mixer->engine.regs, +- SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, overlay), val); ++ SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, layer->overlay), val); + } + +-static void sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) ++static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer, ++ struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; + const struct drm_format_info *format = state->fb->format; ++ struct sun8i_mixer *mixer = layer->mixer; + u32 src_w, src_h, dst_w, dst_h; + u32 outsize, insize; + u32 hphase, vphase; +@@ -72,9 +73,9 @@ static void sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, + u32 ch_base; + + DRM_DEBUG_DRIVER("Updating VI channel %d overlay %d\n", +- channel, overlay); ++ layer->channel, layer->overlay); + +- ch_base = sun8i_channel_base(mixer, channel); ++ ch_base = sun8i_channel_base(mixer, layer->channel); + + src_w = drm_rect_width(&state->src) >> 16; + src_h = drm_rect_height(&state->src) >> 16; +@@ -112,7 +113,7 @@ static void sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, + (state->src.y1 >> 16) & ~(format->vsub - 1)); + DRM_DEBUG_DRIVER("Layer source size W: %d H: %d\n", src_w, src_h); + regmap_write(mixer->engine.regs, +- SUN8I_MIXER_CHAN_VI_LAYER_SIZE(ch_base, overlay), ++ SUN8I_MIXER_CHAN_VI_LAYER_SIZE(ch_base, layer->overlay), + insize); + regmap_write(mixer->engine.regs, + SUN8I_MIXER_CHAN_VI_OVL_SIZE(ch_base), +@@ -161,13 +162,13 @@ static void sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, + hscale = (src_w << 16) / dst_w; + vscale = (src_h << 16) / dst_h; + +- sun8i_vi_scaler_setup(mixer, channel, src_w, src_h, dst_w, ++ sun8i_vi_scaler_setup(mixer, layer->channel, src_w, src_h, dst_w, + dst_h, hscale, vscale, hphase, vphase, + format); +- sun8i_vi_scaler_enable(mixer, channel, true); ++ sun8i_vi_scaler_enable(mixer, layer->channel, true); + } else { + DRM_DEBUG_DRIVER("HW scaling is not needed\n"); +- sun8i_vi_scaler_enable(mixer, channel, false); ++ sun8i_vi_scaler_enable(mixer, layer->channel, false); + } + + regmap_write(mixer->engine.regs, +@@ -188,10 +189,11 @@ static void sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, + SUN8I_MIXER_CHAN_VI_DS_M(vm)); + } + +-static void sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel, +- int overlay, struct drm_plane *plane) ++static void sun8i_vi_layer_update_buffer(struct sun8i_layer *layer, ++ struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; ++ struct sun8i_mixer *mixer = layer->mixer; + struct drm_framebuffer *fb = state->fb; + const struct drm_format_info *format = fb->format; + struct drm_gem_dma_object *gem; +@@ -200,7 +202,7 @@ static void sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel, + u32 ch_base; + int i; + +- ch_base = sun8i_channel_base(mixer, channel); ++ ch_base = sun8i_channel_base(mixer, layer->channel); + + /* Adjust x and y to be dividable by subsampling factor */ + src_x = (state->src.x1 >> 16) & ~(format->hsub - 1); +@@ -232,7 +234,7 @@ static void sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel, + i + 1, fb->pitches[i]); + regmap_write(mixer->engine.regs, + SUN8I_MIXER_CHAN_VI_LAYER_PITCH(ch_base, +- overlay, i), ++ layer->overlay, i), + fb->pitches[i]); + + DRM_DEBUG_DRIVER("Setting %d. buffer address to %pad\n", +@@ -240,7 +242,7 @@ static void sun8i_vi_layer_update_buffer(struct sun8i_mixer *mixer, int channel, + + regmap_write(mixer->engine.regs, + SUN8I_MIXER_CHAN_VI_LAYER_TOP_LADDR(ch_base, +- overlay, i), ++ layer->overlay, i), + lower_32_bits(dma_addr)); + } + } +@@ -292,20 +294,16 @@ static void sun8i_vi_layer_atomic_update(struct drm_plane *plane, + struct drm_plane_state *new_state = drm_atomic_get_new_plane_state(state, + plane); + struct sun8i_layer *layer = plane_to_sun8i_layer(plane); +- struct sun8i_mixer *mixer = layer->mixer; + + if (!new_state->crtc || !new_state->visible) { +- sun8i_vi_layer_disable(mixer, layer->channel, layer->overlay); ++ sun8i_vi_layer_disable(layer); + return; + } + +- sun8i_vi_layer_update_attributes(mixer, layer->channel, +- layer->overlay, plane); +- sun8i_vi_layer_update_coord(mixer, layer->channel, +- layer->overlay, plane); +- sun8i_csc_config(mixer, layer->channel, new_state); +- sun8i_vi_layer_update_buffer(mixer, layer->channel, +- layer->overlay, plane); ++ sun8i_vi_layer_update_attributes(layer, plane); ++ sun8i_vi_layer_update_coord(layer, plane); ++ sun8i_csc_config(layer->mixer, layer->channel, new_state); ++ sun8i_vi_layer_update_buffer(layer, plane); + } + + static const struct drm_plane_helper_funcs sun8i_vi_layer_helper_funcs = { +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0018-drm-sun4i-ui_scaler-use-layer-instead-of-mixer-for-a.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0018-drm-sun4i-ui_scaler-use-layer-instead-of-mixer-for-a.patch new file mode 100644 index 000000000..d15a48e27 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0018-drm-sun4i-ui_scaler-use-layer-instead-of-mixer-for-a.patch @@ -0,0 +1,107 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:18 +0200 +Subject: drm/sun4i: ui_scaler: use layer instead of mixer for args + +Layer related peripherals should take layer struct as a input. This +looks cleaner and also necessary for proper DE33 support later. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 9 +++--- + drivers/gpu/drm/sun4i/sun8i_ui_scaler.c | 14 ++++++---- + drivers/gpu/drm/sun4i/sun8i_ui_scaler.h | 4 +-- + 3 files changed, 14 insertions(+), 13 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -109,17 +109,16 @@ static void sun8i_ui_layer_update_coord(struct sun8i_layer *layer, + state->fb->format); + sun8i_vi_scaler_enable(mixer, layer->channel, true); + } else { +- sun8i_ui_scaler_setup(mixer, layer->channel, src_w, src_h, +- dst_w, dst_h, hscale, vscale, +- hphase, vphase); +- sun8i_ui_scaler_enable(mixer, layer->channel, true); ++ sun8i_ui_scaler_setup(layer, src_w, src_h, dst_w, dst_h, ++ hscale, vscale, hphase, vphase); ++ sun8i_ui_scaler_enable(layer, true); + } + } else { + DRM_DEBUG_DRIVER("HW scaling is not needed\n"); + if (mixer->cfg->de_type == SUN8I_MIXER_DE33) + sun8i_vi_scaler_enable(mixer, layer->channel, false); + else +- sun8i_ui_scaler_enable(mixer, layer->channel, false); ++ sun8i_ui_scaler_enable(layer, false); + } + } + +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +@@ -127,14 +127,15 @@ static int sun8i_ui_scaler_coef_index(unsigned int step) + } + } + +-void sun8i_ui_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable) ++void sun8i_ui_scaler_enable(struct sun8i_layer *layer, bool enable) + { ++ struct sun8i_mixer *mixer = layer->mixer; + u32 val, base; + +- if (WARN_ON(layer < mixer->cfg->vi_num)) ++ if (WARN_ON(layer->channel < mixer->cfg->vi_num)) + return; + +- base = sun8i_ui_scaler_base(mixer, layer); ++ base = sun8i_ui_scaler_base(mixer, layer->channel); + + if (enable) + val = SUN8I_SCALER_GSU_CTRL_EN | +@@ -145,18 +146,19 @@ void sun8i_ui_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable) + regmap_write(mixer->engine.regs, SUN8I_SCALER_GSU_CTRL(base), val); + } + +-void sun8i_ui_scaler_setup(struct sun8i_mixer *mixer, int layer, ++void sun8i_ui_scaler_setup(struct sun8i_layer *layer, + u32 src_w, u32 src_h, u32 dst_w, u32 dst_h, + u32 hscale, u32 vscale, u32 hphase, u32 vphase) + { ++ struct sun8i_mixer *mixer = layer->mixer; + u32 insize, outsize; + int i, offset; + u32 base; + +- if (WARN_ON(layer < mixer->cfg->vi_num)) ++ if (WARN_ON(layer->channel < mixer->cfg->vi_num)) + return; + +- base = sun8i_ui_scaler_base(mixer, layer); ++ base = sun8i_ui_scaler_base(mixer, layer->channel); + + hphase <<= SUN8I_UI_SCALER_PHASE_FRAC - 16; + vphase <<= SUN8I_UI_SCALER_PHASE_FRAC - 16; +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.h b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.h ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.h +@@ -35,8 +35,8 @@ + #define SUN8I_SCALER_GSU_CTRL_EN BIT(0) + #define SUN8I_SCALER_GSU_CTRL_COEFF_RDY BIT(4) + +-void sun8i_ui_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable); +-void sun8i_ui_scaler_setup(struct sun8i_mixer *mixer, int layer, ++void sun8i_ui_scaler_enable(struct sun8i_layer *layer, bool enable); ++void sun8i_ui_scaler_setup(struct sun8i_layer *layer, + u32 src_w, u32 src_h, u32 dst_w, u32 dst_h, + u32 hscale, u32 vscale, u32 hphase, u32 vphase); + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0019-drm-sun4i-vi_scaler-use-layer-instead-of-mixer-for-a.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0019-drm-sun4i-vi_scaler-use-layer-instead-of-mixer-for-a.patch new file mode 100644 index 000000000..ed079d7db --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0019-drm-sun4i-vi_scaler-use-layer-instead-of-mixer-for-a.patch @@ -0,0 +1,125 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:19 +0200 +Subject: drm/sun4i: vi_scaler: use layer instead of mixer for args + +Layer related peripherals should take layer struct as a input. This +looks cleaner and also necessary for proper DE33 support later. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 9 ++++----- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 9 ++++----- + drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 10 ++++++---- + drivers/gpu/drm/sun4i/sun8i_vi_scaler.h | 4 ++-- + 4 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -103,11 +103,10 @@ static void sun8i_ui_layer_update_coord(struct sun8i_layer *layer, + vscale = state->src_h / state->crtc_h; + + if (mixer->cfg->de_type == SUN8I_MIXER_DE33) { +- sun8i_vi_scaler_setup(mixer, layer->channel, src_w, src_h, +- dst_w, dst_h, hscale, vscale, +- hphase, vphase, ++ sun8i_vi_scaler_setup(layer, src_w, src_h, dst_w, dst_h, ++ hscale, vscale, hphase, vphase, + state->fb->format); +- sun8i_vi_scaler_enable(mixer, layer->channel, true); ++ sun8i_vi_scaler_enable(layer, true); + } else { + sun8i_ui_scaler_setup(layer, src_w, src_h, dst_w, dst_h, + hscale, vscale, hphase, vphase); +@@ -116,7 +115,7 @@ static void sun8i_ui_layer_update_coord(struct sun8i_layer *layer, + } else { + DRM_DEBUG_DRIVER("HW scaling is not needed\n"); + if (mixer->cfg->de_type == SUN8I_MIXER_DE33) +- sun8i_vi_scaler_enable(mixer, layer->channel, false); ++ sun8i_vi_scaler_enable(layer, false); + else + sun8i_ui_scaler_enable(layer, false); + } +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -162,13 +162,12 @@ static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer, + hscale = (src_w << 16) / dst_w; + vscale = (src_h << 16) / dst_h; + +- sun8i_vi_scaler_setup(mixer, layer->channel, src_w, src_h, dst_w, +- dst_h, hscale, vscale, hphase, vphase, +- format); +- sun8i_vi_scaler_enable(mixer, layer->channel, true); ++ sun8i_vi_scaler_setup(layer, src_w, src_h, dst_w, dst_h, ++ hscale, vscale, hphase, vphase, format); ++ sun8i_vi_scaler_enable(layer, true); + } else { + DRM_DEBUG_DRIVER("HW scaling is not needed\n"); +- sun8i_vi_scaler_enable(mixer, layer->channel, false); ++ sun8i_vi_scaler_enable(layer, false); + } + + regmap_write(mixer->engine.regs, +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +@@ -909,11 +909,12 @@ static void sun8i_vi_scaler_set_coeff(struct regmap *map, u32 base, + } + } + +-void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable) ++void sun8i_vi_scaler_enable(struct sun8i_layer *layer, bool enable) + { ++ struct sun8i_mixer *mixer = layer->mixer; + u32 val, base; + +- base = sun8i_vi_scaler_base(mixer, layer); ++ base = sun8i_vi_scaler_base(mixer, layer->channel); + + if (enable) + val = SUN8I_SCALER_VSU_CTRL_EN | +@@ -925,16 +926,17 @@ void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable) + SUN8I_SCALER_VSU_CTRL(base), val); + } + +-void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, ++void sun8i_vi_scaler_setup(struct sun8i_layer *layer, + u32 src_w, u32 src_h, u32 dst_w, u32 dst_h, + u32 hscale, u32 vscale, u32 hphase, u32 vphase, + const struct drm_format_info *format) + { ++ struct sun8i_mixer *mixer = layer->mixer; + u32 chphase, cvphase; + u32 insize, outsize; + u32 base; + +- base = sun8i_vi_scaler_base(mixer, layer); ++ base = sun8i_vi_scaler_base(mixer, layer->channel); + + hphase <<= SUN8I_VI_SCALER_PHASE_FRAC - 16; + vphase <<= SUN8I_VI_SCALER_PHASE_FRAC - 16; +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h +@@ -69,8 +69,8 @@ + #define SUN50I_SCALER_VSU_ANGLE_SHIFT(x) (((x) << 16) & 0xF) + #define SUN50I_SCALER_VSU_ANGLE_OFFSET(x) ((x) & 0xFF) + +-void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable); +-void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, ++void sun8i_vi_scaler_enable(struct sun8i_layer *layer, bool enable); ++void sun8i_vi_scaler_setup(struct sun8i_layer *layer, + u32 src_w, u32 src_h, u32 dst_w, u32 dst_h, + u32 hscale, u32 vscale, u32 hphase, u32 vphase, + const struct drm_format_info *format); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0020-drm-sun4i-layers-Make-regmap-for-layers-configurable.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0020-drm-sun4i-layers-Make-regmap-for-layers-configurable.patch new file mode 100644 index 000000000..076a7b6c9 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0020-drm-sun4i-layers-Make-regmap-for-layers-configurable.patch @@ -0,0 +1,352 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:20 +0200 +Subject: drm/sun4i: layers: Make regmap for layers configurable + +Till DE33, there were no reason to decouple registers from mixer. +However, with future new plane driver, this will be necessary. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 7 ++- + drivers/gpu/drm/sun4i/sun8i_mixer.h | 1 + + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 12 ++-- + drivers/gpu/drm/sun4i/sun8i_ui_layer.h | 1 + + drivers/gpu/drm/sun4i/sun8i_ui_scaler.c | 16 ++--- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 22 ++++--- + drivers/gpu/drm/sun4i/sun8i_vi_layer.h | 1 + + drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 31 +++++----- + 8 files changed, 50 insertions(+), 41 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -331,7 +331,9 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + else + type = DRM_PLANE_TYPE_OVERLAY; + +- layer = sun8i_vi_layer_init_one(drm, mixer, type, i, plane_cnt); ++ layer = sun8i_vi_layer_init_one(drm, mixer, type, ++ mixer->engine.regs, i, ++ plane_cnt); + if (IS_ERR(layer)) { + dev_err(drm->dev, + "Couldn't initialize overlay plane\n"); +@@ -350,7 +352,8 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + else + type = DRM_PLANE_TYPE_OVERLAY; + +- layer = sun8i_ui_layer_init_one(drm, mixer, type, index, ++ layer = sun8i_ui_layer_init_one(drm, mixer, type, ++ mixer->engine.regs, index, + plane_cnt); + if (IS_ERR(layer)) { + dev_err(drm->dev, "Couldn't initialize %s plane\n", +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h +@@ -214,6 +214,7 @@ struct sun8i_layer { + int type; + int channel; + int overlay; ++ struct regmap *regs; + }; + + static inline struct sun8i_layer * +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -53,7 +53,7 @@ static void sun8i_ui_layer_update_attributes(struct sun8i_layer *layer, + val |= hw_fmt << SUN8I_MIXER_CHAN_UI_LAYER_ATTR_FBFMT_OFFSET; + val |= SUN8I_MIXER_CHAN_UI_LAYER_ATTR_EN; + +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, layer->overlay), val); + } + +@@ -87,10 +87,10 @@ static void sun8i_ui_layer_update_coord(struct sun8i_layer *layer, + DRM_DEBUG_DRIVER("Layer source offset X: %d Y: %d\n", + state->src.x1 >> 16, state->src.y1 >> 16); + DRM_DEBUG_DRIVER("Layer source size W: %d H: %d\n", src_w, src_h); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_UI_LAYER_SIZE(ch_base, layer->overlay), + insize); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_UI_OVL_SIZE(ch_base), + insize); + +@@ -149,13 +149,13 @@ static void sun8i_ui_layer_update_buffer(struct sun8i_layer *layer, + + /* Set the line width */ + DRM_DEBUG_DRIVER("Layer line width: %d bytes\n", fb->pitches[0]); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_UI_LAYER_PITCH(ch_base, layer->overlay), + fb->pitches[0]); + + DRM_DEBUG_DRIVER("Setting buffer address to %pad\n", &dma_addr); + +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_UI_LAYER_TOP_LADDR(ch_base, layer->overlay), + lower_32_bits(dma_addr)); + } +@@ -264,6 +264,7 @@ static const uint64_t sun8i_layer_modifiers[] = { + struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, + enum drm_plane_type type, ++ struct regmap *regs, + int index, + int plane_cnt) + { +@@ -278,6 +279,7 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + layer->type = SUN8I_LAYER_TYPE_UI; + layer->channel = index; + layer->overlay = 0; ++ layer->regs = regs; + + /* possible crtcs are set later */ + ret = drm_universal_plane_init(drm, &layer->plane, 0, +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h +@@ -52,6 +52,7 @@ struct sun8i_layer; + struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, + enum drm_plane_type type, ++ struct regmap *regs, + int index, + int plane_cnt); + #endif /* _SUN8I_UI_LAYER_H_ */ +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +@@ -143,7 +143,7 @@ void sun8i_ui_scaler_enable(struct sun8i_layer *layer, bool enable) + else + val = 0; + +- regmap_write(mixer->engine.regs, SUN8I_SCALER_GSU_CTRL(base), val); ++ regmap_write(layer->regs, SUN8I_SCALER_GSU_CTRL(base), val); + } + + void sun8i_ui_scaler_setup(struct sun8i_layer *layer, +@@ -168,22 +168,22 @@ void sun8i_ui_scaler_setup(struct sun8i_layer *layer, + insize = SUN8I_UI_SCALER_SIZE(src_w, src_h); + outsize = SUN8I_UI_SCALER_SIZE(dst_w, dst_h); + +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_GSU_OUTSIZE(base), outsize); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_GSU_INSIZE(base), insize); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_GSU_HSTEP(base), hscale); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_GSU_VSTEP(base), vscale); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_GSU_HPHASE(base), hphase); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_GSU_VPHASE(base), vphase); + offset = sun8i_ui_scaler_coef_index(hscale) * + SUN8I_UI_SCALER_COEFF_COUNT; + for (i = 0; i < SUN8I_UI_SCALER_COEFF_COUNT; i++) +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_GSU_HCOEFF(base, i), + lan2coefftab16[offset + i]); + } +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -49,12 +49,12 @@ static void sun8i_vi_layer_update_attributes(struct sun8i_layer *layer, + SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MODE_PIXEL : + SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MODE_COMBINED; + } else if (mixer->cfg->vi_num == 1) { +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_FCC_GLOBAL_ALPHA_REG, + SUN8I_MIXER_FCC_GLOBAL_ALPHA(state->alpha >> 8)); + } + +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, layer->overlay), val); + } + +@@ -112,10 +112,10 @@ static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer, + (state->src.x1 >> 16) & ~(format->hsub - 1), + (state->src.y1 >> 16) & ~(format->vsub - 1)); + DRM_DEBUG_DRIVER("Layer source size W: %d H: %d\n", src_w, src_h); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_LAYER_SIZE(ch_base, layer->overlay), + insize); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_OVL_SIZE(ch_base), + insize); + +@@ -170,19 +170,19 @@ static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer, + sun8i_vi_scaler_enable(layer, false); + } + +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_HDS_Y(ch_base), + SUN8I_MIXER_CHAN_VI_DS_N(hn) | + SUN8I_MIXER_CHAN_VI_DS_M(hm)); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_HDS_UV(ch_base), + SUN8I_MIXER_CHAN_VI_DS_N(hn) | + SUN8I_MIXER_CHAN_VI_DS_M(hm)); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_VDS_Y(ch_base), + SUN8I_MIXER_CHAN_VI_DS_N(vn) | + SUN8I_MIXER_CHAN_VI_DS_M(vm)); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_VDS_UV(ch_base), + SUN8I_MIXER_CHAN_VI_DS_N(vn) | + SUN8I_MIXER_CHAN_VI_DS_M(vm)); +@@ -231,7 +231,7 @@ static void sun8i_vi_layer_update_buffer(struct sun8i_layer *layer, + /* Set the line width */ + DRM_DEBUG_DRIVER("Layer %d. line width: %d bytes\n", + i + 1, fb->pitches[i]); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_LAYER_PITCH(ch_base, + layer->overlay, i), + fb->pitches[i]); +@@ -239,7 +239,7 @@ static void sun8i_vi_layer_update_buffer(struct sun8i_layer *layer, + DRM_DEBUG_DRIVER("Setting %d. buffer address to %pad\n", + i + 1, &dma_addr); + +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_LAYER_TOP_LADDR(ch_base, + layer->overlay, i), + lower_32_bits(dma_addr)); +@@ -410,6 +410,7 @@ static const uint64_t sun8i_layer_modifiers[] = { + struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, + enum drm_plane_type type, ++ struct regmap *regs, + int index, + int plane_cnt) + { +@@ -427,6 +428,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + layer->type = SUN8I_LAYER_TYPE_VI; + layer->channel = index; + layer->overlay = 0; ++ layer->regs = regs; + + if (mixer->cfg->de_type >= SUN8I_MIXER_DE3) { + formats = sun8i_vi_layer_de3_formats; +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h +@@ -57,6 +57,7 @@ struct sun8i_layer; + struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, + enum drm_plane_type type, ++ struct regmap *regs, + int index, + int plane_cnt); + #endif /* _SUN8I_VI_LAYER_H_ */ +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +@@ -911,10 +911,9 @@ static void sun8i_vi_scaler_set_coeff(struct regmap *map, u32 base, + + void sun8i_vi_scaler_enable(struct sun8i_layer *layer, bool enable) + { +- struct sun8i_mixer *mixer = layer->mixer; + u32 val, base; + +- base = sun8i_vi_scaler_base(mixer, layer->channel); ++ base = sun8i_vi_scaler_base(layer->mixer, layer->channel); + + if (enable) + val = SUN8I_SCALER_VSU_CTRL_EN | +@@ -922,7 +921,7 @@ void sun8i_vi_scaler_enable(struct sun8i_layer *layer, bool enable) + else + val = 0; + +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_VSU_CTRL(base), val); + } + +@@ -968,36 +967,36 @@ void sun8i_vi_scaler_setup(struct sun8i_layer *layer, + else + val = SUN50I_SCALER_VSU_SCALE_MODE_NORMAL; + +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN50I_SCALER_VSU_SCALE_MODE(base), val); + } + +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_VSU_OUTSIZE(base), outsize); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_VSU_YINSIZE(base), insize); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_VSU_YHSTEP(base), hscale); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_VSU_YVSTEP(base), vscale); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_VSU_YHPHASE(base), hphase); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_VSU_YVPHASE(base), vphase); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_VSU_CINSIZE(base), + SUN8I_VI_SCALER_SIZE(src_w / format->hsub, + src_h / format->vsub)); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_VSU_CHSTEP(base), + hscale / format->hsub); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_VSU_CVSTEP(base), + vscale / format->vsub); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_VSU_CHPHASE(base), chphase); +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_SCALER_VSU_CVPHASE(base), cvphase); +- sun8i_vi_scaler_set_coeff(mixer->engine.regs, base, ++ sun8i_vi_scaler_set_coeff(layer->regs, base, + hscale, vscale, format); + } +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0021-drm-sun4i-csc-use-layer-arg-instead-of-mixer.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0021-drm-sun4i-csc-use-layer-arg-instead-of-mixer.patch new file mode 100644 index 000000000..5bb9cc3dc --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0021-drm-sun4i-csc-use-layer-arg-instead-of-mixer.patch @@ -0,0 +1,86 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:21 +0200 +Subject: drm/sun4i: csc: use layer arg instead of mixer + +Layer will be more universal, due to DE33 support. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_csc.c | 10 +++++----- + drivers/gpu/drm/sun4i/sun8i_csc.h | 4 ++-- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 2 +- + 3 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.c ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.c +@@ -227,22 +227,22 @@ static u32 sun8i_csc_get_mode(struct drm_plane_state *state) + } + } + +-void sun8i_csc_config(struct sun8i_mixer *mixer, int layer, ++void sun8i_csc_config(struct sun8i_layer *layer, + struct drm_plane_state *state) + { + u32 mode = sun8i_csc_get_mode(state); + u32 base; + +- if (mixer->cfg->de_type == SUN8I_MIXER_DE3) { +- sun8i_de3_ccsc_setup(mixer->engine.regs, layer, ++ if (layer->mixer->cfg->de_type == SUN8I_MIXER_DE3) { ++ sun8i_de3_ccsc_setup(layer->regs, layer->channel, + mode, state->color_encoding, + state->color_range); + return; + } + +- base = ccsc_base[mixer->cfg->ccsc][layer]; ++ base = ccsc_base[layer->mixer->cfg->ccsc][layer->channel]; + +- sun8i_csc_setup(mixer->engine.regs, base, ++ sun8i_csc_setup(layer->regs, base, + mode, state->color_encoding, + state->color_range); + } +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.h b/drivers/gpu/drm/sun4i/sun8i_csc.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.h ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.h +@@ -9,7 +9,7 @@ + #include + + struct drm_plane_state; +-struct sun8i_mixer; ++struct sun8i_layer; + + /* VI channel CSC units offsets */ + #define CCSC00_OFFSET 0xAA050 +@@ -23,7 +23,7 @@ struct sun8i_mixer; + + #define SUN8I_CSC_CTRL_EN BIT(0) + +-void sun8i_csc_config(struct sun8i_mixer *mixer, int layer, ++void sun8i_csc_config(struct sun8i_layer *layer, + struct drm_plane_state *state); + + #endif +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -301,7 +301,7 @@ static void sun8i_vi_layer_atomic_update(struct drm_plane *plane, + + sun8i_vi_layer_update_attributes(layer, plane); + sun8i_vi_layer_update_coord(layer, plane); +- sun8i_csc_config(layer->mixer, layer->channel, new_state); ++ sun8i_csc_config(layer, new_state); + sun8i_vi_layer_update_buffer(layer, plane); + } + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0022-drm-sun4i-layers-add-physical-index-arg.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0022-drm-sun4i-layers-add-physical-index-arg.patch new file mode 100644 index 000000000..be8f6c0df --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0022-drm-sun4i-layers-add-physical-index-arg.patch @@ -0,0 +1,174 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:22 +0200 +Subject: drm/sun4i: layers: add physical index arg + +This avoids plane mapping in layers code, which allows future +refactoring, when layer code will move away from accessing mixer +structure. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 17 +++++++--- + drivers/gpu/drm/sun4i/sun8i_mixer.h | 3 +- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 5 +-- + drivers/gpu/drm/sun4i/sun8i_ui_layer.h | 2 +- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 5 +-- + drivers/gpu/drm/sun4i/sun8i_vi_layer.h | 2 +- + 6 files changed, 23 insertions(+), 11 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -283,14 +283,14 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, + h = drm_rect_height(&plane_state->dst); + + DRM_DEBUG_DRIVER(" plane %d: chan=%d ovl=%d en=%d zpos=%d x=%d y=%d w=%d h=%d\n", +- plane->base.id, layer->channel, layer->overlay, ++ plane->base.id, layer->index, layer->overlay, + enable, zpos, x, y, w, h); + + if (!enable) + continue; + + /* Route layer to pipe based on zpos */ +- route |= layer->channel << SUN8I_MIXER_BLEND_ROUTE_PIPE_SHIFT(zpos); ++ route |= layer->index << SUN8I_MIXER_BLEND_ROUTE_PIPE_SHIFT(zpos); + pipe_en |= SUN8I_MIXER_BLEND_PIPE_CTL_EN(zpos); + + regmap_write(bld_regs, +@@ -317,6 +317,7 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); + int plane_cnt = mixer->cfg->ui_num + mixer->cfg->vi_num; + enum drm_plane_type type; ++ unsigned int phy_index; + int i; + + planes = devm_kcalloc(drm->dev, plane_cnt, sizeof(*planes), GFP_KERNEL); +@@ -331,9 +332,13 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + else + type = DRM_PLANE_TYPE_OVERLAY; + ++ phy_index = i; ++ if (mixer->cfg->de_type == SUN8I_MIXER_DE33) ++ phy_index = mixer->cfg->map[i]; ++ + layer = sun8i_vi_layer_init_one(drm, mixer, type, + mixer->engine.regs, i, +- plane_cnt); ++ phy_index, plane_cnt); + if (IS_ERR(layer)) { + dev_err(drm->dev, + "Couldn't initialize overlay plane\n"); +@@ -352,9 +357,13 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + else + type = DRM_PLANE_TYPE_OVERLAY; + ++ phy_index = index; ++ if (mixer->cfg->de_type == SUN8I_MIXER_DE33) ++ phy_index = mixer->cfg->map[index]; ++ + layer = sun8i_ui_layer_init_one(drm, mixer, type, + mixer->engine.regs, index, +- plane_cnt); ++ phy_index, plane_cnt); + if (IS_ERR(layer)) { + dev_err(drm->dev, "Couldn't initialize %s plane\n", + i ? "overlay" : "primary"); +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h +@@ -212,6 +212,7 @@ struct sun8i_layer { + struct drm_plane plane; + struct sun8i_mixer *mixer; + int type; ++ int index; + int channel; + int overlay; + struct regmap *regs; +@@ -246,7 +247,7 @@ static inline u32 + sun8i_channel_base(struct sun8i_mixer *mixer, int channel) + { + if (mixer->cfg->de_type == SUN8I_MIXER_DE33) +- return DE33_CH_BASE + mixer->cfg->map[channel] * DE33_CH_SIZE; ++ return DE33_CH_BASE + channel * DE33_CH_SIZE; + else if (mixer->cfg->de_type == SUN8I_MIXER_DE3) + return DE3_CH_BASE + channel * DE3_CH_SIZE; + else +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -265,7 +265,7 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, + enum drm_plane_type type, + struct regmap *regs, +- int index, ++ int index, int phy_index, + int plane_cnt) + { + struct sun8i_layer *layer; +@@ -277,7 +277,8 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + + layer->mixer = mixer; + layer->type = SUN8I_LAYER_TYPE_UI; +- layer->channel = index; ++ layer->index = index; ++ layer->channel = phy_index; + layer->overlay = 0; + layer->regs = regs; + +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h +@@ -53,6 +53,6 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, + enum drm_plane_type type, + struct regmap *regs, +- int index, ++ int index, int phy_index, + int plane_cnt); + #endif /* _SUN8I_UI_LAYER_H_ */ +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -411,7 +411,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, + enum drm_plane_type type, + struct regmap *regs, +- int index, ++ int index, int phy_index, + int plane_cnt) + { + u32 supported_encodings, supported_ranges; +@@ -426,7 +426,8 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + + layer->mixer = mixer; + layer->type = SUN8I_LAYER_TYPE_VI; +- layer->channel = index; ++ layer->index = index; ++ layer->channel = phy_index; + layer->overlay = 0; + layer->regs = regs; + +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h +@@ -58,6 +58,6 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + struct sun8i_mixer *mixer, + enum drm_plane_type type, + struct regmap *regs, +- int index, ++ int index, int phy_index, + int plane_cnt); + #endif /* _SUN8I_VI_LAYER_H_ */ +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0023-drm-sun4i-vi_scaler-Update-DE33-base-calculation.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0023-drm-sun4i-vi_scaler-Update-DE33-base-calculation.patch new file mode 100644 index 000000000..ef297eda3 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0023-drm-sun4i-vi_scaler-Update-DE33-base-calculation.patch @@ -0,0 +1,54 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:23 +0200 +Subject: drm/sun4i: vi_scaler: Update DE33 base calculation + +Now that channel base calculation is straightforward, let's update VI +scaler base calculation to be simpler. At the same time, also introduce +macro to avoid magic numbers. + +Note, reason why current magic value and new macro value isn't the same +is because sun8i_channel_base() already introduces offset to channel +registers. Previous value is just the difference to VI scaler registers. +However, new code calculates scaler base from channel base. This is also +easier to understand when looking into BSP driver. Macro value can be +easily found whereas old diff value was not. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 3 ++- + drivers/gpu/drm/sun4i/sun8i_vi_scaler.h | 2 ++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +@@ -836,7 +836,8 @@ static const u32 bicubic4coefftab32[480] = { + static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel) + { + if (mixer->cfg->de_type == SUN8I_MIXER_DE33) +- return sun8i_channel_base(mixer, channel) + 0x3000; ++ return DE33_VI_SCALER_UNIT_BASE + ++ DE33_CH_SIZE * channel; + else if (mixer->cfg->de_type == SUN8I_MIXER_DE3) + return DE3_VI_SCALER_UNIT_BASE + + DE3_VI_SCALER_UNIT_SIZE * channel; +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h +@@ -18,6 +18,8 @@ + #define DE3_VI_SCALER_UNIT_BASE 0x20000 + #define DE3_VI_SCALER_UNIT_SIZE 0x08000 + ++#define DE33_VI_SCALER_UNIT_BASE 0x4000 ++ + /* this two macros assumes 16 fractional bits which is standard in DRM */ + #define SUN8I_VI_SCALER_SCALE_MIN 1 + #define SUN8I_VI_SCALER_SCALE_MAX ((1UL << 20) - 1) +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0024-drm-sun4i-mixer-Convert-heuristics-to-quirk.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0024-drm-sun4i-mixer-Convert-heuristics-to-quirk.patch new file mode 100644 index 000000000..a494da5a7 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0024-drm-sun4i-mixer-Convert-heuristics-to-quirk.patch @@ -0,0 +1,157 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:24 +0200 +Subject: drm/sun4i: mixer: Convert heuristics to quirk + +Determination if FCC unit can be used for VI layer alpha depends on +number of VI channels. This info won't be available anymore in future +to VI layer driver because of DE33 way of allocating planes from same +pool to different mixers. + +While order is slightly changed, it doesn't affect anything due to +double buffering of registers. New order keeps related registers +together and quirk separate. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 9 +++++++ + drivers/gpu/drm/sun4i/sun8i_mixer.h | 3 +++ + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 12 ++++++---- + 3 files changed, 19 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -707,6 +707,7 @@ static const struct sun8i_mixer_cfg sun8i_a83t_mixer0_cfg = { + .de_type = SUN8I_MIXER_DE2, + .scaler_mask = 0xf, + .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, + .ui_num = 3, + .vi_num = 1, + }; +@@ -716,6 +717,7 @@ static const struct sun8i_mixer_cfg sun8i_a83t_mixer1_cfg = { + .de_type = SUN8I_MIXER_DE2, + .scaler_mask = 0x3, + .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, + .ui_num = 1, + .vi_num = 1, + }; +@@ -726,6 +728,7 @@ static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = { + .mod_rate = 432000000, + .scaler_mask = 0xf, + .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, + .ui_num = 3, + .vi_num = 1, + }; +@@ -736,6 +739,7 @@ static const struct sun8i_mixer_cfg sun8i_r40_mixer0_cfg = { + .mod_rate = 297000000, + .scaler_mask = 0xf, + .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, + .ui_num = 3, + .vi_num = 1, + }; +@@ -746,6 +750,7 @@ static const struct sun8i_mixer_cfg sun8i_r40_mixer1_cfg = { + .mod_rate = 297000000, + .scaler_mask = 0x3, + .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, + .ui_num = 1, + .vi_num = 1, + }; +@@ -766,6 +771,7 @@ static const struct sun8i_mixer_cfg sun20i_d1_mixer0_cfg = { + .mod_rate = 297000000, + .scaler_mask = 0x3, + .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, + .ui_num = 1, + .vi_num = 1, + }; +@@ -776,6 +782,7 @@ static const struct sun8i_mixer_cfg sun20i_d1_mixer1_cfg = { + .mod_rate = 297000000, + .scaler_mask = 0x1, + .scanline_yuv = 1024, ++ .de2_fcc_alpha = 1, + .ui_num = 0, + .vi_num = 1, + }; +@@ -786,6 +793,7 @@ static const struct sun8i_mixer_cfg sun50i_a64_mixer0_cfg = { + .mod_rate = 297000000, + .scaler_mask = 0xf, + .scanline_yuv = 4096, ++ .de2_fcc_alpha = 1, + .ui_num = 3, + .vi_num = 1, + }; +@@ -796,6 +804,7 @@ static const struct sun8i_mixer_cfg sun50i_a64_mixer1_cfg = { + .mod_rate = 297000000, + .scaler_mask = 0x3, + .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, + .ui_num = 1, + .vi_num = 1, + }; +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h +@@ -176,6 +176,8 @@ enum sun8i_mixer_type { + * a functional block. + * @de_type: sun8i_mixer_type enum representing the display engine generation. + * @scaline_yuv: size of a scanline for VI scaler for YUV formats. ++ * @de2_fcc_alpha: use FCC for missing DE2 VI alpha capability ++ * Most DE2 cores has FCC. If number of VI planes is one, enable this. + * @map: channel map for DE variants processing YUV separately (DE33) + */ + struct sun8i_mixer_cfg { +@@ -186,6 +188,7 @@ struct sun8i_mixer_cfg { + unsigned long mod_rate; + unsigned int de_type; + unsigned int scanline_yuv; ++ unsigned int de2_fcc_alpha : 1; + unsigned int map[6]; + }; + +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -48,14 +48,16 @@ static void sun8i_vi_layer_update_attributes(struct sun8i_layer *layer, + val |= (state->alpha == DRM_BLEND_ALPHA_OPAQUE) ? + SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MODE_PIXEL : + SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MODE_COMBINED; +- } else if (mixer->cfg->vi_num == 1) { +- regmap_write(layer->regs, +- SUN8I_MIXER_FCC_GLOBAL_ALPHA_REG, +- SUN8I_MIXER_FCC_GLOBAL_ALPHA(state->alpha >> 8)); + } + + regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, layer->overlay), val); ++ ++ if (mixer->cfg->de2_fcc_alpha) { ++ regmap_write(layer->regs, ++ SUN8I_MIXER_FCC_GLOBAL_ALPHA_REG, ++ SUN8I_MIXER_FCC_GLOBAL_ALPHA(state->alpha >> 8)); ++ } + } + + static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer, +@@ -450,7 +452,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + return ERR_PTR(ret); + } + +- if (mixer->cfg->vi_num == 1 || mixer->cfg->de_type >= SUN8I_MIXER_DE3) { ++ if (mixer->cfg->de2_fcc_alpha || mixer->cfg->de_type >= SUN8I_MIXER_DE3) { + ret = drm_plane_create_alpha_property(&layer->plane); + if (ret) { + dev_err(drm->dev, "Couldn't add alpha property\n"); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0025-drm-sun4i-ui_scaler-drop-sanity-checks.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0025-drm-sun4i-ui_scaler-drop-sanity-checks.patch new file mode 100644 index 000000000..bf3071ecc --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0025-drm-sun4i-ui_scaler-drop-sanity-checks.patch @@ -0,0 +1,43 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:25 +0200 +Subject: drm/sun4i: ui_scaler: drop sanity checks + +They can't be triggered if mixer configuration is properly specified in +quirks. Additionally, number of VI channels won't be available in future +due to rework for DE33 support. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_ui_scaler.c | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +@@ -132,9 +132,6 @@ void sun8i_ui_scaler_enable(struct sun8i_layer *layer, bool enable) + struct sun8i_mixer *mixer = layer->mixer; + u32 val, base; + +- if (WARN_ON(layer->channel < mixer->cfg->vi_num)) +- return; +- + base = sun8i_ui_scaler_base(mixer, layer->channel); + + if (enable) +@@ -155,9 +152,6 @@ void sun8i_ui_scaler_setup(struct sun8i_layer *layer, + int i, offset; + u32 base; + +- if (WARN_ON(layer->channel < mixer->cfg->vi_num)) +- return; +- + base = sun8i_ui_scaler_base(mixer, layer->channel); + + hphase <<= SUN8I_UI_SCALER_PHASE_FRAC - 16; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0026-drm-sun4i-mixer-Add-quirk-for-number-of-VI-scalers.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0026-drm-sun4i-mixer-Add-quirk-for-number-of-VI-scalers.patch new file mode 100644 index 000000000..5e1b4309a --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0026-drm-sun4i-mixer-Add-quirk-for-number-of-VI-scalers.patch @@ -0,0 +1,164 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:26 +0200 +Subject: drm/sun4i: mixer: Add quirk for number of VI scalers + +On DE2 and DE3, UI scalers are located right after VI scalers. So in +order to calculate proper UI scaler base address, number of VI scalers +must be known. In practice, it is same as number of VI channels, but it +doesn't need to be. + +Let's make a quirk for this number. Code for configuring channels and +associated functions won't have access to vi_num quirk anymore after +rework for independent planes. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 11 ++++++++++ + drivers/gpu/drm/sun4i/sun8i_mixer.h | 2 ++ + drivers/gpu/drm/sun4i/sun8i_ui_scaler.c | 10 ++++----- + 3 files changed, 18 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -705,6 +705,7 @@ static void sun8i_mixer_remove(struct platform_device *pdev) + static const struct sun8i_mixer_cfg sun8i_a83t_mixer0_cfg = { + .ccsc = CCSC_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE2, ++ .vi_scaler_num = 1, + .scaler_mask = 0xf, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, +@@ -715,6 +716,7 @@ static const struct sun8i_mixer_cfg sun8i_a83t_mixer0_cfg = { + static const struct sun8i_mixer_cfg sun8i_a83t_mixer1_cfg = { + .ccsc = CCSC_MIXER1_LAYOUT, + .de_type = SUN8I_MIXER_DE2, ++ .vi_scaler_num = 1, + .scaler_mask = 0x3, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, +@@ -726,6 +728,7 @@ static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = { + .ccsc = CCSC_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 432000000, ++ .vi_scaler_num = 1, + .scaler_mask = 0xf, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, +@@ -737,6 +740,7 @@ static const struct sun8i_mixer_cfg sun8i_r40_mixer0_cfg = { + .ccsc = CCSC_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 297000000, ++ .vi_scaler_num = 1, + .scaler_mask = 0xf, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, +@@ -748,6 +752,7 @@ static const struct sun8i_mixer_cfg sun8i_r40_mixer1_cfg = { + .ccsc = CCSC_MIXER1_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 297000000, ++ .vi_scaler_num = 1, + .scaler_mask = 0x3, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, +@@ -759,6 +764,7 @@ static const struct sun8i_mixer_cfg sun8i_v3s_mixer_cfg = { + .de_type = SUN8I_MIXER_DE2, + .vi_num = 2, + .ui_num = 1, ++ .vi_scaler_num = 2, + .scaler_mask = 0x3, + .scanline_yuv = 2048, + .ccsc = CCSC_MIXER0_LAYOUT, +@@ -769,6 +775,7 @@ static const struct sun8i_mixer_cfg sun20i_d1_mixer0_cfg = { + .ccsc = CCSC_D1_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 297000000, ++ .vi_scaler_num = 1, + .scaler_mask = 0x3, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, +@@ -780,6 +787,7 @@ static const struct sun8i_mixer_cfg sun20i_d1_mixer1_cfg = { + .ccsc = CCSC_MIXER1_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 297000000, ++ .vi_scaler_num = 1, + .scaler_mask = 0x1, + .scanline_yuv = 1024, + .de2_fcc_alpha = 1, +@@ -791,6 +799,7 @@ static const struct sun8i_mixer_cfg sun50i_a64_mixer0_cfg = { + .ccsc = CCSC_MIXER0_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 297000000, ++ .vi_scaler_num = 1, + .scaler_mask = 0xf, + .scanline_yuv = 4096, + .de2_fcc_alpha = 1, +@@ -802,6 +811,7 @@ static const struct sun8i_mixer_cfg sun50i_a64_mixer1_cfg = { + .ccsc = CCSC_MIXER1_LAYOUT, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 297000000, ++ .vi_scaler_num = 1, + .scaler_mask = 0x3, + .scanline_yuv = 2048, + .de2_fcc_alpha = 1, +@@ -812,6 +822,7 @@ static const struct sun8i_mixer_cfg sun50i_a64_mixer1_cfg = { + static const struct sun8i_mixer_cfg sun50i_h6_mixer0_cfg = { + .de_type = SUN8I_MIXER_DE3, + .mod_rate = 600000000, ++ .vi_scaler_num = 1, + .scaler_mask = 0xf, + .scanline_yuv = 4096, + .ui_num = 3, +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h +@@ -167,6 +167,7 @@ enum sun8i_mixer_type { + * struct sun8i_mixer_cfg - mixer HW configuration + * @vi_num: number of VI channels + * @ui_num: number of UI channels ++ * @vi_scaler_num: Number of VI scalers. Used on DE2 and DE3. + * @scaler_mask: bitmask which tells which channel supports scaling + * First, scaler supports for VI channels is defined and after that, scaler + * support for UI channels. For example, if mixer has 2 VI channels without +@@ -183,6 +184,7 @@ enum sun8i_mixer_type { + struct sun8i_mixer_cfg { + int vi_num; + int ui_num; ++ unsigned int vi_scaler_num; + int scaler_mask; + int ccsc; + unsigned long mod_rate; +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +@@ -91,16 +91,16 @@ static const u32 lan2coefftab16[240] = { + + static u32 sun8i_ui_scaler_base(struct sun8i_mixer *mixer, int channel) + { +- int vi_num = mixer->cfg->vi_num; ++ int offset = mixer->cfg->vi_scaler_num; + + if (mixer->cfg->de_type == SUN8I_MIXER_DE3) + return DE3_VI_SCALER_UNIT_BASE + +- DE3_VI_SCALER_UNIT_SIZE * vi_num + +- DE3_UI_SCALER_UNIT_SIZE * (channel - vi_num); ++ DE3_VI_SCALER_UNIT_SIZE * offset + ++ DE3_UI_SCALER_UNIT_SIZE * (channel - offset); + else + return DE2_VI_SCALER_UNIT_BASE + +- DE2_VI_SCALER_UNIT_SIZE * vi_num + +- DE2_UI_SCALER_UNIT_SIZE * (channel - vi_num); ++ DE2_VI_SCALER_UNIT_SIZE * offset + ++ DE2_UI_SCALER_UNIT_SIZE * (channel - offset); + } + + static int sun8i_ui_scaler_coef_index(unsigned int step) +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0027-drm-sun4i-mixer-split-out-layer-config.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0027-drm-sun4i-mixer-split-out-layer-config.patch new file mode 100644 index 000000000..b9300fcf2 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0027-drm-sun4i-mixer-split-out-layer-config.patch @@ -0,0 +1,400 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:27 +0200 +Subject: drm/sun4i: mixer: split out layer config + +Later special plane only driver for DE33 will provide separate +configuration. This change will also help layer driver migrate away from +mixer structure. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_csc.c | 2 +- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 152 ++++++---- + drivers/gpu/drm/sun4i/sun8i_mixer.h | 33 +- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 2 +- + drivers/gpu/drm/sun4i/sun8i_ui_scaler.c | 2 +- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 8 +- + 6 files changed, 123 insertions(+), 76 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.c ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.c +@@ -240,7 +240,7 @@ void sun8i_csc_config(struct sun8i_layer *layer, + return; + } + +- base = ccsc_base[layer->mixer->cfg->ccsc][layer->channel]; ++ base = ccsc_base[layer->mixer->cfg->lay_cfg.ccsc][layer->channel]; + + sun8i_csc_setup(layer->regs, base, + mode, state->color_encoding, +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -703,137 +703,173 @@ static void sun8i_mixer_remove(struct platform_device *pdev) + } + + static const struct sun8i_mixer_cfg sun8i_a83t_mixer0_cfg = { +- .ccsc = CCSC_MIXER0_LAYOUT, ++ .lay_cfg = { ++ .ccsc = CCSC_MIXER0_LAYOUT, ++ .de_type = SUN8I_MIXER_DE2, ++ .vi_scaler_num = 1, ++ .scaler_mask = 0xf, ++ .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, ++ }, + .de_type = SUN8I_MIXER_DE2, +- .vi_scaler_num = 1, +- .scaler_mask = 0xf, +- .scanline_yuv = 2048, +- .de2_fcc_alpha = 1, + .ui_num = 3, + .vi_num = 1, + }; + + static const struct sun8i_mixer_cfg sun8i_a83t_mixer1_cfg = { +- .ccsc = CCSC_MIXER1_LAYOUT, ++ .lay_cfg = { ++ .ccsc = CCSC_MIXER1_LAYOUT, ++ .de_type = SUN8I_MIXER_DE2, ++ .vi_scaler_num = 1, ++ .scaler_mask = 0x3, ++ .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, ++ }, + .de_type = SUN8I_MIXER_DE2, +- .vi_scaler_num = 1, +- .scaler_mask = 0x3, +- .scanline_yuv = 2048, +- .de2_fcc_alpha = 1, + .ui_num = 1, + .vi_num = 1, + }; + + static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = { +- .ccsc = CCSC_MIXER0_LAYOUT, ++ .lay_cfg = { ++ .ccsc = CCSC_MIXER0_LAYOUT, ++ .de_type = SUN8I_MIXER_DE2, ++ .vi_scaler_num = 1, ++ .scaler_mask = 0xf, ++ .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, ++ }, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 432000000, +- .vi_scaler_num = 1, +- .scaler_mask = 0xf, +- .scanline_yuv = 2048, +- .de2_fcc_alpha = 1, + .ui_num = 3, + .vi_num = 1, + }; + + static const struct sun8i_mixer_cfg sun8i_r40_mixer0_cfg = { +- .ccsc = CCSC_MIXER0_LAYOUT, ++ .lay_cfg = { ++ .ccsc = CCSC_MIXER0_LAYOUT, ++ .de_type = SUN8I_MIXER_DE2, ++ .vi_scaler_num = 1, ++ .scaler_mask = 0xf, ++ .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, ++ }, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 297000000, +- .vi_scaler_num = 1, +- .scaler_mask = 0xf, +- .scanline_yuv = 2048, +- .de2_fcc_alpha = 1, + .ui_num = 3, + .vi_num = 1, + }; + + static const struct sun8i_mixer_cfg sun8i_r40_mixer1_cfg = { +- .ccsc = CCSC_MIXER1_LAYOUT, ++ .lay_cfg = { ++ .ccsc = CCSC_MIXER1_LAYOUT, ++ .de_type = SUN8I_MIXER_DE2, ++ .vi_scaler_num = 1, ++ .scaler_mask = 0x3, ++ .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, ++ }, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 297000000, +- .vi_scaler_num = 1, +- .scaler_mask = 0x3, +- .scanline_yuv = 2048, +- .de2_fcc_alpha = 1, + .ui_num = 1, + .vi_num = 1, + }; + + static const struct sun8i_mixer_cfg sun8i_v3s_mixer_cfg = { +- .de_type = SUN8I_MIXER_DE2, +- .vi_num = 2, +- .ui_num = 1, +- .vi_scaler_num = 2, +- .scaler_mask = 0x3, +- .scanline_yuv = 2048, +- .ccsc = CCSC_MIXER0_LAYOUT, +- .mod_rate = 150000000, ++ .lay_cfg = { ++ .ccsc = CCSC_MIXER0_LAYOUT, ++ .de_type = SUN8I_MIXER_DE2, ++ .vi_scaler_num = 2, ++ .scaler_mask = 0x3, ++ .scanline_yuv = 2048, ++ }, ++ .de_type = SUN8I_MIXER_DE2, ++ .mod_rate = 150000000, ++ .vi_num = 2, ++ .ui_num = 1, + }; + + static const struct sun8i_mixer_cfg sun20i_d1_mixer0_cfg = { +- .ccsc = CCSC_D1_MIXER0_LAYOUT, ++ .lay_cfg = { ++ .ccsc = CCSC_D1_MIXER0_LAYOUT, ++ .de_type = SUN8I_MIXER_DE2, ++ .vi_scaler_num = 1, ++ .scaler_mask = 0x3, ++ .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, ++ }, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 297000000, +- .vi_scaler_num = 1, +- .scaler_mask = 0x3, +- .scanline_yuv = 2048, +- .de2_fcc_alpha = 1, + .ui_num = 1, + .vi_num = 1, + }; + + static const struct sun8i_mixer_cfg sun20i_d1_mixer1_cfg = { +- .ccsc = CCSC_MIXER1_LAYOUT, ++ .lay_cfg = { ++ .ccsc = CCSC_MIXER1_LAYOUT, ++ .de_type = SUN8I_MIXER_DE2, ++ .vi_scaler_num = 1, ++ .scaler_mask = 0x1, ++ .scanline_yuv = 1024, ++ .de2_fcc_alpha = 1, ++ }, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 297000000, +- .vi_scaler_num = 1, +- .scaler_mask = 0x1, +- .scanline_yuv = 1024, +- .de2_fcc_alpha = 1, + .ui_num = 0, + .vi_num = 1, + }; + + static const struct sun8i_mixer_cfg sun50i_a64_mixer0_cfg = { +- .ccsc = CCSC_MIXER0_LAYOUT, ++ .lay_cfg = { ++ .ccsc = CCSC_MIXER0_LAYOUT, ++ .de_type = SUN8I_MIXER_DE2, ++ .vi_scaler_num = 1, ++ .scaler_mask = 0xf, ++ .scanline_yuv = 4096, ++ .de2_fcc_alpha = 1, ++ }, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 297000000, +- .vi_scaler_num = 1, +- .scaler_mask = 0xf, +- .scanline_yuv = 4096, +- .de2_fcc_alpha = 1, + .ui_num = 3, + .vi_num = 1, + }; + + static const struct sun8i_mixer_cfg sun50i_a64_mixer1_cfg = { +- .ccsc = CCSC_MIXER1_LAYOUT, ++ .lay_cfg = { ++ .ccsc = CCSC_MIXER1_LAYOUT, ++ .de_type = SUN8I_MIXER_DE2, ++ .vi_scaler_num = 1, ++ .scaler_mask = 0x3, ++ .scanline_yuv = 2048, ++ .de2_fcc_alpha = 1, ++ }, + .de_type = SUN8I_MIXER_DE2, + .mod_rate = 297000000, +- .vi_scaler_num = 1, +- .scaler_mask = 0x3, +- .scanline_yuv = 2048, +- .de2_fcc_alpha = 1, + .ui_num = 1, + .vi_num = 1, + }; + + static const struct sun8i_mixer_cfg sun50i_h6_mixer0_cfg = { ++ .lay_cfg = { ++ .de_type = SUN8I_MIXER_DE3, ++ .vi_scaler_num = 1, ++ .scaler_mask = 0xf, ++ .scanline_yuv = 4096, ++ }, + .de_type = SUN8I_MIXER_DE3, + .mod_rate = 600000000, +- .vi_scaler_num = 1, +- .scaler_mask = 0xf, +- .scanline_yuv = 4096, + .ui_num = 3, + .vi_num = 1, + }; + + static const struct sun8i_mixer_cfg sun50i_h616_mixer0_cfg = { ++ .lay_cfg = { ++ .de_type = SUN8I_MIXER_DE33, ++ .scaler_mask = 0xf, ++ .scanline_yuv = 4096, ++ }, + .de_type = SUN8I_MIXER_DE33, + .mod_rate = 600000000, +- .scaler_mask = 0xf, +- .scanline_yuv = 4096, + .ui_num = 3, + .vi_num = 1, + .map = {0, 6, 7, 8}, +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h +@@ -164,34 +164,45 @@ enum sun8i_mixer_type { + }; + + /** +- * struct sun8i_mixer_cfg - mixer HW configuration +- * @vi_num: number of VI channels +- * @ui_num: number of UI channels ++ * struct sun8i_layer_cfg - layer configuration + * @vi_scaler_num: Number of VI scalers. Used on DE2 and DE3. + * @scaler_mask: bitmask which tells which channel supports scaling + * First, scaler supports for VI channels is defined and after that, scaler + * support for UI channels. For example, if mixer has 2 VI channels without + * scaler and 2 UI channels with scaler, bitmask would be 0xC. + * @ccsc: select set of CCSC base addresses from the enumeration above. +- * @mod_rate: module clock rate that needs to be set in order to have +- * a functional block. + * @de_type: sun8i_mixer_type enum representing the display engine generation. + * @scaline_yuv: size of a scanline for VI scaler for YUV formats. + * @de2_fcc_alpha: use FCC for missing DE2 VI alpha capability + * Most DE2 cores has FCC. If number of VI planes is one, enable this. +- * @map: channel map for DE variants processing YUV separately (DE33) + */ +-struct sun8i_mixer_cfg { +- int vi_num; +- int ui_num; ++struct sun8i_layer_cfg { + unsigned int vi_scaler_num; + int scaler_mask; + int ccsc; +- unsigned long mod_rate; + unsigned int de_type; + unsigned int scanline_yuv; + unsigned int de2_fcc_alpha : 1; +- unsigned int map[6]; ++}; ++ ++/** ++ * struct sun8i_mixer_cfg - mixer HW configuration ++ * @lay_cfg: layer configuration ++ * @vi_num: number of VI channels ++ * @ui_num: number of UI channels ++ * @de_type: sun8i_mixer_type enum representing the display engine generation. ++ * @mod_rate: module clock rate that needs to be set in order to have ++ * a functional block. ++ * @map: channel map for DE variants processing YUV separately (DE33) ++ */ ++ ++struct sun8i_mixer_cfg { ++ struct sun8i_layer_cfg lay_cfg; ++ int vi_num; ++ int ui_num; ++ unsigned int de_type; ++ unsigned long mod_rate; ++ unsigned int map[6]; + }; + + struct sun8i_mixer { +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -190,7 +190,7 @@ static int sun8i_ui_layer_atomic_check(struct drm_plane *plane, + min_scale = DRM_PLANE_NO_SCALING; + max_scale = DRM_PLANE_NO_SCALING; + +- if (layer->mixer->cfg->scaler_mask & BIT(layer->channel)) { ++ if (layer->mixer->cfg->lay_cfg.scaler_mask & BIT(layer->channel)) { + min_scale = SUN8I_UI_SCALER_SCALE_MIN; + max_scale = SUN8I_UI_SCALER_SCALE_MAX; + } +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +@@ -91,7 +91,7 @@ static const u32 lan2coefftab16[240] = { + + static u32 sun8i_ui_scaler_base(struct sun8i_mixer *mixer, int channel) + { +- int offset = mixer->cfg->vi_scaler_num; ++ int offset = mixer->cfg->lay_cfg.vi_scaler_num; + + if (mixer->cfg->de_type == SUN8I_MIXER_DE3) + return DE3_VI_SCALER_UNIT_BASE + +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -53,7 +53,7 @@ static void sun8i_vi_layer_update_attributes(struct sun8i_layer *layer, + regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, layer->overlay), val); + +- if (mixer->cfg->de2_fcc_alpha) { ++ if (mixer->cfg->lay_cfg.de2_fcc_alpha) { + regmap_write(layer->regs, + SUN8I_MIXER_FCC_GLOBAL_ALPHA_REG, + SUN8I_MIXER_FCC_GLOBAL_ALPHA(state->alpha >> 8)); +@@ -152,7 +152,7 @@ static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer, + } + + /* it seems that every RGB scaler has buffer for 2048 pixels */ +- scanline = subsampled ? mixer->cfg->scanline_yuv : 2048; ++ scanline = subsampled ? mixer->cfg->lay_cfg.scanline_yuv : 2048; + + if (src_w > scanline) { + DRM_DEBUG_DRIVER("Using horizontal coarse scaling\n"); +@@ -278,7 +278,7 @@ static int sun8i_vi_layer_atomic_check(struct drm_plane *plane, + min_scale = DRM_PLANE_NO_SCALING; + max_scale = DRM_PLANE_NO_SCALING; + +- if (layer->mixer->cfg->scaler_mask & BIT(layer->channel)) { ++ if (layer->mixer->cfg->lay_cfg.scaler_mask & BIT(layer->channel)) { + min_scale = SUN8I_VI_SCALER_SCALE_MIN; + max_scale = SUN8I_VI_SCALER_SCALE_MAX; + } +@@ -452,7 +452,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + return ERR_PTR(ret); + } + +- if (mixer->cfg->de2_fcc_alpha || mixer->cfg->de_type >= SUN8I_MIXER_DE3) { ++ if (mixer->cfg->lay_cfg.de2_fcc_alpha || mixer->cfg->de_type >= SUN8I_MIXER_DE3) { + ret = drm_plane_create_alpha_property(&layer->plane); + if (ret) { + dev_err(drm->dev, "Couldn't add alpha property\n"); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0028-drm-sun4i-layer-replace-mixer-with-layer-struct.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0028-drm-sun4i-layer-replace-mixer-with-layer-struct.patch new file mode 100644 index 000000000..48fbc5a39 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0028-drm-sun4i-layer-replace-mixer-with-layer-struct.patch @@ -0,0 +1,495 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:28 +0200 +Subject: drm/sun4i: layer: replace mixer with layer struct + +This allows to almost completely decouple layer code from mixer. This is +important for DE33. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_csc.c | 4 +- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 6 +- + drivers/gpu/drm/sun4i/sun8i_mixer.h | 27 ++++---- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 24 ++++--- + drivers/gpu/drm/sun4i/sun8i_ui_layer.h | 3 +- + drivers/gpu/drm/sun4i/sun8i_ui_scaler.c | 16 +++-- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 31 +++++----- + drivers/gpu/drm/sun4i/sun8i_vi_layer.h | 3 +- + drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 19 +++--- + 9 files changed, 66 insertions(+), 67 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.c ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.c +@@ -233,14 +233,14 @@ void sun8i_csc_config(struct sun8i_layer *layer, + u32 mode = sun8i_csc_get_mode(state); + u32 base; + +- if (layer->mixer->cfg->de_type == SUN8I_MIXER_DE3) { ++ if (layer->cfg->de_type == SUN8I_MIXER_DE3) { + sun8i_de3_ccsc_setup(layer->regs, layer->channel, + mode, state->color_encoding, + state->color_range); + return; + } + +- base = ccsc_base[layer->mixer->cfg->lay_cfg.ccsc][layer->channel]; ++ base = ccsc_base[layer->cfg->ccsc][layer->channel]; + + sun8i_csc_setup(layer->regs, base, + mode, state->color_encoding, +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -338,7 +338,8 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + + layer = sun8i_vi_layer_init_one(drm, mixer, type, + mixer->engine.regs, i, +- phy_index, plane_cnt); ++ phy_index, plane_cnt, ++ &mixer->cfg->lay_cfg); + if (IS_ERR(layer)) { + dev_err(drm->dev, + "Couldn't initialize overlay plane\n"); +@@ -363,7 +364,8 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + + layer = sun8i_ui_layer_init_one(drm, mixer, type, + mixer->engine.regs, index, +- phy_index, plane_cnt); ++ phy_index, plane_cnt, ++ &mixer->cfg->lay_cfg); + if (IS_ERR(layer)) { + dev_err(drm->dev, "Couldn't initialize %s plane\n", + i ? "overlay" : "primary"); +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h +@@ -225,13 +225,14 @@ enum { + }; + + struct sun8i_layer { +- struct drm_plane plane; +- struct sun8i_mixer *mixer; +- int type; +- int index; +- int channel; +- int overlay; +- struct regmap *regs; ++ struct drm_plane plane; ++ struct sun8i_mixer *mixer; ++ int type; ++ int index; ++ int channel; ++ int overlay; ++ struct regmap *regs; ++ const struct sun8i_layer_cfg *cfg; + }; + + static inline struct sun8i_layer * +@@ -260,14 +261,14 @@ sun8i_blender_regmap(struct sun8i_mixer *mixer) + } + + static inline u32 +-sun8i_channel_base(struct sun8i_mixer *mixer, int channel) ++sun8i_channel_base(struct sun8i_layer *layer) + { +- if (mixer->cfg->de_type == SUN8I_MIXER_DE33) +- return DE33_CH_BASE + channel * DE33_CH_SIZE; +- else if (mixer->cfg->de_type == SUN8I_MIXER_DE3) +- return DE3_CH_BASE + channel * DE3_CH_SIZE; ++ if (layer->cfg->de_type == SUN8I_MIXER_DE33) ++ return DE33_CH_BASE + layer->channel * DE33_CH_SIZE; ++ else if (layer->cfg->de_type == SUN8I_MIXER_DE3) ++ return DE3_CH_BASE + layer->channel * DE3_CH_SIZE; + else +- return DE2_CH_BASE + channel * DE2_CH_SIZE; ++ return DE2_CH_BASE + layer->channel * DE2_CH_SIZE; + } + + int sun8i_mixer_drm_format_to_hw(u32 format, u32 *hw_format); +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -27,10 +27,9 @@ + + static void sun8i_ui_layer_disable(struct sun8i_layer *layer) + { +- struct sun8i_mixer *mixer = layer->mixer; +- u32 ch_base = sun8i_channel_base(mixer, layer->channel); ++ u32 ch_base = sun8i_channel_base(layer); + +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, layer->overlay), 0); + } + +@@ -38,11 +37,10 @@ static void sun8i_ui_layer_update_attributes(struct sun8i_layer *layer, + struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; +- struct sun8i_mixer *mixer = layer->mixer; + const struct drm_format_info *fmt; + u32 val, ch_base, hw_fmt; + +- ch_base = sun8i_channel_base(mixer, layer->channel); ++ ch_base = sun8i_channel_base(layer); + fmt = state->fb->format; + sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); + +@@ -61,7 +59,6 @@ static void sun8i_ui_layer_update_coord(struct sun8i_layer *layer, + struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; +- struct sun8i_mixer *mixer = layer->mixer; + u32 src_w, src_h, dst_w, dst_h; + u32 outsize, insize; + u32 hphase, vphase; +@@ -70,7 +67,7 @@ static void sun8i_ui_layer_update_coord(struct sun8i_layer *layer, + DRM_DEBUG_DRIVER("Updating UI channel %d overlay %d\n", + layer->channel, layer->overlay); + +- ch_base = sun8i_channel_base(mixer, layer->channel); ++ ch_base = sun8i_channel_base(layer); + + src_w = drm_rect_width(&state->src) >> 16; + src_h = drm_rect_height(&state->src) >> 16; +@@ -102,7 +99,7 @@ static void sun8i_ui_layer_update_coord(struct sun8i_layer *layer, + hscale = state->src_w / state->crtc_w; + vscale = state->src_h / state->crtc_h; + +- if (mixer->cfg->de_type == SUN8I_MIXER_DE33) { ++ if (layer->cfg->de_type == SUN8I_MIXER_DE33) { + sun8i_vi_scaler_setup(layer, src_w, src_h, dst_w, dst_h, + hscale, vscale, hphase, vphase, + state->fb->format); +@@ -114,7 +111,7 @@ static void sun8i_ui_layer_update_coord(struct sun8i_layer *layer, + } + } else { + DRM_DEBUG_DRIVER("HW scaling is not needed\n"); +- if (mixer->cfg->de_type == SUN8I_MIXER_DE33) ++ if (layer->cfg->de_type == SUN8I_MIXER_DE33) + sun8i_vi_scaler_enable(layer, false); + else + sun8i_ui_scaler_enable(layer, false); +@@ -125,14 +122,13 @@ static void sun8i_ui_layer_update_buffer(struct sun8i_layer *layer, + struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; +- struct sun8i_mixer *mixer = layer->mixer; + struct drm_framebuffer *fb = state->fb; + struct drm_gem_dma_object *gem; + dma_addr_t dma_addr; + u32 ch_base; + int bpp; + +- ch_base = sun8i_channel_base(mixer, layer->channel); ++ ch_base = sun8i_channel_base(layer); + + /* Get the physical address of the buffer in memory */ + gem = drm_fb_dma_get_gem_obj(fb, 0); +@@ -190,7 +186,7 @@ static int sun8i_ui_layer_atomic_check(struct drm_plane *plane, + min_scale = DRM_PLANE_NO_SCALING; + max_scale = DRM_PLANE_NO_SCALING; + +- if (layer->mixer->cfg->lay_cfg.scaler_mask & BIT(layer->channel)) { ++ if (layer->cfg->scaler_mask & BIT(layer->channel)) { + min_scale = SUN8I_UI_SCALER_SCALE_MIN; + max_scale = SUN8I_UI_SCALER_SCALE_MAX; + } +@@ -266,7 +262,8 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + enum drm_plane_type type, + struct regmap *regs, + int index, int phy_index, +- int plane_cnt) ++ int plane_cnt, ++ const struct sun8i_layer_cfg *cfg) + { + struct sun8i_layer *layer; + int ret; +@@ -281,6 +278,7 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + layer->channel = phy_index; + layer->overlay = 0; + layer->regs = regs; ++ layer->cfg = cfg; + + /* possible crtcs are set later */ + ret = drm_universal_plane_init(drm, &layer->plane, 0, +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h +@@ -54,5 +54,6 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + enum drm_plane_type type, + struct regmap *regs, + int index, int phy_index, +- int plane_cnt); ++ int plane_cnt, ++ const struct sun8i_layer_cfg *cfg); + #endif /* _SUN8I_UI_LAYER_H_ */ +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +@@ -89,18 +89,18 @@ static const u32 lan2coefftab16[240] = { + 0x0b1c1603, 0x0d1c1502, 0x0e1d1401, 0x0f1d1301, + }; + +-static u32 sun8i_ui_scaler_base(struct sun8i_mixer *mixer, int channel) ++static u32 sun8i_ui_scaler_base(struct sun8i_layer *layer) + { +- int offset = mixer->cfg->lay_cfg.vi_scaler_num; ++ int offset = layer->cfg->vi_scaler_num; + +- if (mixer->cfg->de_type == SUN8I_MIXER_DE3) ++ if (layer->cfg->de_type == SUN8I_MIXER_DE3) + return DE3_VI_SCALER_UNIT_BASE + + DE3_VI_SCALER_UNIT_SIZE * offset + +- DE3_UI_SCALER_UNIT_SIZE * (channel - offset); ++ DE3_UI_SCALER_UNIT_SIZE * (layer->channel - offset); + else + return DE2_VI_SCALER_UNIT_BASE + + DE2_VI_SCALER_UNIT_SIZE * offset + +- DE2_UI_SCALER_UNIT_SIZE * (channel - offset); ++ DE2_UI_SCALER_UNIT_SIZE * (layer->channel - offset); + } + + static int sun8i_ui_scaler_coef_index(unsigned int step) +@@ -129,10 +129,9 @@ static int sun8i_ui_scaler_coef_index(unsigned int step) + + void sun8i_ui_scaler_enable(struct sun8i_layer *layer, bool enable) + { +- struct sun8i_mixer *mixer = layer->mixer; + u32 val, base; + +- base = sun8i_ui_scaler_base(mixer, layer->channel); ++ base = sun8i_ui_scaler_base(layer); + + if (enable) + val = SUN8I_SCALER_GSU_CTRL_EN | +@@ -147,12 +146,11 @@ void sun8i_ui_scaler_setup(struct sun8i_layer *layer, + u32 src_w, u32 src_h, u32 dst_w, u32 dst_h, + u32 hscale, u32 vscale, u32 hphase, u32 vphase) + { +- struct sun8i_mixer *mixer = layer->mixer; + u32 insize, outsize; + int i, offset; + u32 base; + +- base = sun8i_ui_scaler_base(mixer, layer->channel); ++ base = sun8i_ui_scaler_base(layer); + + hphase <<= SUN8I_UI_SCALER_PHASE_FRAC - 16; + vphase <<= SUN8I_UI_SCALER_PHASE_FRAC - 16; +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -20,10 +20,9 @@ + + static void sun8i_vi_layer_disable(struct sun8i_layer *layer) + { +- struct sun8i_mixer *mixer = layer->mixer; +- u32 ch_base = sun8i_channel_base(mixer, layer->channel); ++ u32 ch_base = sun8i_channel_base(layer); + +- regmap_write(mixer->engine.regs, ++ regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, layer->overlay), 0); + } + +@@ -31,11 +30,10 @@ static void sun8i_vi_layer_update_attributes(struct sun8i_layer *layer, + struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; +- struct sun8i_mixer *mixer = layer->mixer; + const struct drm_format_info *fmt; + u32 val, ch_base, hw_fmt; + +- ch_base = sun8i_channel_base(mixer, layer->channel); ++ ch_base = sun8i_channel_base(layer); + fmt = state->fb->format; + sun8i_mixer_drm_format_to_hw(fmt->format, &hw_fmt); + +@@ -43,7 +41,7 @@ static void sun8i_vi_layer_update_attributes(struct sun8i_layer *layer, + if (!fmt->is_yuv) + val |= SUN8I_MIXER_CHAN_VI_LAYER_ATTR_RGB_MODE; + val |= SUN8I_MIXER_CHAN_VI_LAYER_ATTR_EN; +- if (mixer->cfg->de_type >= SUN8I_MIXER_DE3) { ++ if (layer->cfg->de_type >= SUN8I_MIXER_DE3) { + val |= SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA(state->alpha >> 8); + val |= (state->alpha == DRM_BLEND_ALPHA_OPAQUE) ? + SUN50I_MIXER_CHAN_VI_LAYER_ATTR_ALPHA_MODE_PIXEL : +@@ -53,7 +51,7 @@ static void sun8i_vi_layer_update_attributes(struct sun8i_layer *layer, + regmap_write(layer->regs, + SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, layer->overlay), val); + +- if (mixer->cfg->lay_cfg.de2_fcc_alpha) { ++ if (layer->cfg->de2_fcc_alpha) { + regmap_write(layer->regs, + SUN8I_MIXER_FCC_GLOBAL_ALPHA_REG, + SUN8I_MIXER_FCC_GLOBAL_ALPHA(state->alpha >> 8)); +@@ -77,7 +75,7 @@ static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer, + DRM_DEBUG_DRIVER("Updating VI channel %d overlay %d\n", + layer->channel, layer->overlay); + +- ch_base = sun8i_channel_base(mixer, layer->channel); ++ ch_base = sun8i_channel_base(layer); + + src_w = drm_rect_width(&state->src) >> 16; + src_h = drm_rect_height(&state->src) >> 16; +@@ -152,7 +150,7 @@ static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer, + } + + /* it seems that every RGB scaler has buffer for 2048 pixels */ +- scanline = subsampled ? mixer->cfg->lay_cfg.scanline_yuv : 2048; ++ scanline = subsampled ? layer->cfg->scanline_yuv : 2048; + + if (src_w > scanline) { + DRM_DEBUG_DRIVER("Using horizontal coarse scaling\n"); +@@ -194,7 +192,6 @@ static void sun8i_vi_layer_update_buffer(struct sun8i_layer *layer, + struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; +- struct sun8i_mixer *mixer = layer->mixer; + struct drm_framebuffer *fb = state->fb; + const struct drm_format_info *format = fb->format; + struct drm_gem_dma_object *gem; +@@ -203,7 +200,7 @@ static void sun8i_vi_layer_update_buffer(struct sun8i_layer *layer, + u32 ch_base; + int i; + +- ch_base = sun8i_channel_base(mixer, layer->channel); ++ ch_base = sun8i_channel_base(layer); + + /* Adjust x and y to be dividable by subsampling factor */ + src_x = (state->src.x1 >> 16) & ~(format->hsub - 1); +@@ -278,7 +275,7 @@ static int sun8i_vi_layer_atomic_check(struct drm_plane *plane, + min_scale = DRM_PLANE_NO_SCALING; + max_scale = DRM_PLANE_NO_SCALING; + +- if (layer->mixer->cfg->lay_cfg.scaler_mask & BIT(layer->channel)) { ++ if (layer->cfg->scaler_mask & BIT(layer->channel)) { + min_scale = SUN8I_VI_SCALER_SCALE_MIN; + max_scale = SUN8I_VI_SCALER_SCALE_MAX; + } +@@ -414,7 +411,8 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + enum drm_plane_type type, + struct regmap *regs, + int index, int phy_index, +- int plane_cnt) ++ int plane_cnt, ++ const struct sun8i_layer_cfg *cfg) + { + u32 supported_encodings, supported_ranges; + unsigned int format_count; +@@ -432,8 +430,9 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + layer->channel = phy_index; + layer->overlay = 0; + layer->regs = regs; ++ layer->cfg = cfg; + +- if (mixer->cfg->de_type >= SUN8I_MIXER_DE3) { ++ if (layer->cfg->de_type >= SUN8I_MIXER_DE3) { + formats = sun8i_vi_layer_de3_formats; + format_count = ARRAY_SIZE(sun8i_vi_layer_de3_formats); + } else { +@@ -452,7 +451,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + return ERR_PTR(ret); + } + +- if (mixer->cfg->lay_cfg.de2_fcc_alpha || mixer->cfg->de_type >= SUN8I_MIXER_DE3) { ++ if (layer->cfg->de2_fcc_alpha || layer->cfg->de_type >= SUN8I_MIXER_DE3) { + ret = drm_plane_create_alpha_property(&layer->plane); + if (ret) { + dev_err(drm->dev, "Couldn't add alpha property\n"); +@@ -469,7 +468,7 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + + supported_encodings = BIT(DRM_COLOR_YCBCR_BT601) | + BIT(DRM_COLOR_YCBCR_BT709); +- if (mixer->cfg->de_type >= SUN8I_MIXER_DE3) ++ if (layer->cfg->de_type >= SUN8I_MIXER_DE3) + supported_encodings |= BIT(DRM_COLOR_YCBCR_BT2020); + + supported_ranges = BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) | +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h +@@ -59,5 +59,6 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + enum drm_plane_type type, + struct regmap *regs, + int index, int phy_index, +- int plane_cnt); ++ int plane_cnt, ++ const struct sun8i_layer_cfg *cfg); + #endif /* _SUN8I_VI_LAYER_H_ */ +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +@@ -833,17 +833,17 @@ static const u32 bicubic4coefftab32[480] = { + 0x1012110d, 0x1012110d, 0x1013110c, 0x1013110c, + }; + +-static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel) ++static u32 sun8i_vi_scaler_base(struct sun8i_layer *layer) + { +- if (mixer->cfg->de_type == SUN8I_MIXER_DE33) ++ if (layer->cfg->de_type == SUN8I_MIXER_DE33) + return DE33_VI_SCALER_UNIT_BASE + +- DE33_CH_SIZE * channel; +- else if (mixer->cfg->de_type == SUN8I_MIXER_DE3) ++ DE33_CH_SIZE * layer->channel; ++ else if (layer->cfg->de_type == SUN8I_MIXER_DE3) + return DE3_VI_SCALER_UNIT_BASE + +- DE3_VI_SCALER_UNIT_SIZE * channel; ++ DE3_VI_SCALER_UNIT_SIZE * layer->channel; + else + return DE2_VI_SCALER_UNIT_BASE + +- DE2_VI_SCALER_UNIT_SIZE * channel; ++ DE2_VI_SCALER_UNIT_SIZE * layer->channel; + } + + static int sun8i_vi_scaler_coef_index(unsigned int step) +@@ -914,7 +914,7 @@ void sun8i_vi_scaler_enable(struct sun8i_layer *layer, bool enable) + { + u32 val, base; + +- base = sun8i_vi_scaler_base(layer->mixer, layer->channel); ++ base = sun8i_vi_scaler_base(layer); + + if (enable) + val = SUN8I_SCALER_VSU_CTRL_EN | +@@ -931,12 +931,11 @@ void sun8i_vi_scaler_setup(struct sun8i_layer *layer, + u32 hscale, u32 vscale, u32 hphase, u32 vphase, + const struct drm_format_info *format) + { +- struct sun8i_mixer *mixer = layer->mixer; + u32 chphase, cvphase; + u32 insize, outsize; + u32 base; + +- base = sun8i_vi_scaler_base(mixer, layer->channel); ++ base = sun8i_vi_scaler_base(layer); + + hphase <<= SUN8I_VI_SCALER_PHASE_FRAC - 16; + vphase <<= SUN8I_VI_SCALER_PHASE_FRAC - 16; +@@ -960,7 +959,7 @@ void sun8i_vi_scaler_setup(struct sun8i_layer *layer, + cvphase = vphase; + } + +- if (mixer->cfg->de_type >= SUN8I_MIXER_DE3) { ++ if (layer->cfg->de_type >= SUN8I_MIXER_DE3) { + u32 val; + + if (format->hsub == 1 && format->vsub == 1) +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0029-drm-sun4i-vi_scaler-Find-mixer-from-crtc.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0029-drm-sun4i-vi_scaler-Find-mixer-from-crtc.patch new file mode 100644 index 000000000..2e43c599d --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0029-drm-sun4i-vi_scaler-Find-mixer-from-crtc.patch @@ -0,0 +1,41 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:29 +0200 +Subject: drm/sun4i: vi_scaler: Find mixer from crtc + +With "floating" planes in DE33, mixer can't be stored in layer structure +anymore. Find mixer using currently bound crtc. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -13,6 +13,7 @@ + #include + #include + ++#include "sun4i_crtc.h" + #include "sun8i_csc.h" + #include "sun8i_mixer.h" + #include "sun8i_vi_layer.h" +@@ -62,8 +63,9 @@ static void sun8i_vi_layer_update_coord(struct sun8i_layer *layer, + struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; ++ struct sun4i_crtc *scrtc = drm_crtc_to_sun4i_crtc(state->crtc); ++ struct sun8i_mixer *mixer = engine_to_sun8i_mixer(scrtc->engine); + const struct drm_format_info *format = state->fb->format; +- struct sun8i_mixer *mixer = layer->mixer; + u32 src_w, src_h, dst_w, dst_h; + u32 outsize, insize; + u32 hphase, vphase; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0030-drm-sun4i-Nuke-mixer-pointer-from-layer-code.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0030-drm-sun4i-Nuke-mixer-pointer-from-layer-code.patch new file mode 100644 index 000000000..95a0eb975 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0030-drm-sun4i-Nuke-mixer-pointer-from-layer-code.patch @@ -0,0 +1,136 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 12 Oct 2025 21:23:30 +0200 +Subject: drm/sun4i: Nuke mixer pointer from layer code + +It's not used anymore, so remove it. This allows trully independent +layer state from mixer. + +Reviewed-by: Chen-Yu Tsai +Tested-by: Ryan Walklin +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 12 ++++------ + drivers/gpu/drm/sun4i/sun8i_mixer.h | 1 - + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 2 -- + drivers/gpu/drm/sun4i/sun8i_ui_layer.h | 1 - + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 2 -- + drivers/gpu/drm/sun4i/sun8i_vi_layer.h | 1 - + 6 files changed, 5 insertions(+), 14 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -268,7 +268,7 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, + int w, h, x, y, zpos; + bool enable; + +- if (!(plane->possible_crtcs & drm_crtc_mask(crtc)) || layer->mixer != mixer) ++ if (!(plane->possible_crtcs & drm_crtc_mask(crtc))) + continue; + + plane_state = drm_atomic_get_new_plane_state(state, plane); +@@ -336,9 +336,8 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + if (mixer->cfg->de_type == SUN8I_MIXER_DE33) + phy_index = mixer->cfg->map[i]; + +- layer = sun8i_vi_layer_init_one(drm, mixer, type, +- mixer->engine.regs, i, +- phy_index, plane_cnt, ++ layer = sun8i_vi_layer_init_one(drm, type, mixer->engine.regs, ++ i, phy_index, plane_cnt, + &mixer->cfg->lay_cfg); + if (IS_ERR(layer)) { + dev_err(drm->dev, +@@ -362,9 +361,8 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + if (mixer->cfg->de_type == SUN8I_MIXER_DE33) + phy_index = mixer->cfg->map[index]; + +- layer = sun8i_ui_layer_init_one(drm, mixer, type, +- mixer->engine.regs, index, +- phy_index, plane_cnt, ++ layer = sun8i_ui_layer_init_one(drm, type, mixer->engine.regs, ++ index, phy_index, plane_cnt, + &mixer->cfg->lay_cfg); + if (IS_ERR(layer)) { + dev_err(drm->dev, "Couldn't initialize %s plane\n", +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h +@@ -226,7 +226,6 @@ enum { + + struct sun8i_layer { + struct drm_plane plane; +- struct sun8i_mixer *mixer; + int type; + int index; + int channel; +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -258,7 +258,6 @@ static const uint64_t sun8i_layer_modifiers[] = { + }; + + struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, +- struct sun8i_mixer *mixer, + enum drm_plane_type type, + struct regmap *regs, + int index, int phy_index, +@@ -272,7 +271,6 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + if (!layer) + return ERR_PTR(-ENOMEM); + +- layer->mixer = mixer; + layer->type = SUN8I_LAYER_TYPE_UI; + layer->index = index; + layer->channel = phy_index; +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.h +@@ -50,7 +50,6 @@ struct sun8i_mixer; + struct sun8i_layer; + + struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, +- struct sun8i_mixer *mixer, + enum drm_plane_type type, + struct regmap *regs, + int index, int phy_index, +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -409,7 +409,6 @@ static const uint64_t sun8i_layer_modifiers[] = { + }; + + struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, +- struct sun8i_mixer *mixer, + enum drm_plane_type type, + struct regmap *regs, + int index, int phy_index, +@@ -426,7 +425,6 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + if (!layer) + return ERR_PTR(-ENOMEM); + +- layer->mixer = mixer; + layer->type = SUN8I_LAYER_TYPE_VI; + layer->index = index; + layer->channel = phy_index; +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.h +@@ -55,7 +55,6 @@ struct sun8i_mixer; + struct sun8i_layer; + + struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, +- struct sun8i_mixer *mixer, + enum drm_plane_type type, + struct regmap *regs, + int index, int phy_index, +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0031-drm-sun4i-Add-support-for-DE33-CSC.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0031-drm-sun4i-Add-support-for-DE33-CSC.patch new file mode 100644 index 000000000..84dd7c622 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0031-drm-sun4i-Add-support-for-DE33-CSC.patch @@ -0,0 +1,125 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sat, 27 Sep 2025 09:53:01 +0200 +Subject: drm/sun4i: Add support for DE33 CSC + +DE33 has channel CSC units (for each plane separately) so pipeline can +be configured to output in desired colorspace. + +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_csc.c | 71 ++++++++++ + drivers/gpu/drm/sun4i/sun8i_csc.h | 5 + + 2 files changed, 76 insertions(+) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.c ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.c +@@ -205,6 +205,72 @@ static void sun8i_de3_ccsc_setup(struct regmap *map, int layer, + mask, val); + } + ++/* extract constant from high word and invert sign if necessary */ ++static u32 sun8i_de33_ccsc_get_constant(u32 value) ++{ ++ value >>= 16; ++ ++ if (value & BIT(15)) ++ return 0x400 - (value & 0x3ff); ++ ++ return value; ++} ++ ++static void sun8i_de33_convert_table(const u32 *src, u32 *dst) ++{ ++ dst[0] = sun8i_de33_ccsc_get_constant(src[3]); ++ dst[1] = sun8i_de33_ccsc_get_constant(src[7]); ++ dst[2] = sun8i_de33_ccsc_get_constant(src[11]); ++ memcpy(&dst[3], src, sizeof(u32) * 12); ++ dst[6] &= 0xffff; ++ dst[10] &= 0xffff; ++ dst[14] &= 0xffff; ++} ++ ++static void sun8i_de33_ccsc_setup(struct regmap *map, int layer, ++ enum sun8i_csc_mode mode, ++ enum drm_color_encoding encoding, ++ enum drm_color_range range) ++{ ++ u32 addr, val, base, csc[15]; ++ const u32 *table; ++ int i; ++ ++ table = yuv2rgb_de3[range][encoding]; ++ base = DE33_CCSC_BASE + layer * DE33_CH_SIZE; ++ ++ switch (mode) { ++ case SUN8I_CSC_MODE_OFF: ++ val = 0; ++ break; ++ case SUN8I_CSC_MODE_YUV2RGB: ++ val = SUN8I_CSC_CTRL_EN; ++ sun8i_de33_convert_table(table, csc); ++ regmap_bulk_write(map, SUN50I_CSC_COEFF(base, 0), csc, 15); ++ break; ++ case SUN8I_CSC_MODE_YVU2RGB: ++ val = SUN8I_CSC_CTRL_EN; ++ sun8i_de33_convert_table(table, csc); ++ for (i = 0; i < 15; i++) { ++ addr = SUN50I_CSC_COEFF(base, i); ++ if (i > 3) { ++ if (((i - 3) & 3) == 1) ++ addr = SUN50I_CSC_COEFF(base, i + 1); ++ else if (((i - 3) & 3) == 2) ++ addr = SUN50I_CSC_COEFF(base, i - 1); ++ } ++ regmap_write(map, addr, csc[i]); ++ } ++ break; ++ default: ++ val = 0; ++ DRM_WARN("Wrong CSC mode specified.\n"); ++ return; ++ } ++ ++ regmap_write(map, SUN8I_CSC_CTRL(base), val); ++} ++ + static u32 sun8i_csc_get_mode(struct drm_plane_state *state) + { + const struct drm_format_info *format; +@@ -238,6 +304,11 @@ void sun8i_csc_config(struct sun8i_layer *layer, + mode, state->color_encoding, + state->color_range); + return; ++ } else if (layer->cfg->de_type == SUN8I_MIXER_DE33) { ++ sun8i_de33_ccsc_setup(layer->regs, layer->channel, ++ mode, state->color_encoding, ++ state->color_range); ++ return; + } + + base = ccsc_base[layer->cfg->ccsc][layer->channel]; +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.h b/drivers/gpu/drm/sun4i/sun8i_csc.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.h ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.h +@@ -18,9 +18,14 @@ struct sun8i_layer; + #define CCSC10_OFFSET 0xA0000 + #define CCSC11_OFFSET 0xF0000 + ++#define DE33_CCSC_BASE 0x800 ++ + #define SUN8I_CSC_CTRL(base) ((base) + 0x0) + #define SUN8I_CSC_COEFF(base, i) ((base) + 0x10 + 4 * (i)) + ++#define SUN50I_CSC_COEFF(base, i) ((base) + 0x04 + 4 * (i)) ++#define SUN50I_CSC_ALPHA(base) ((base) + 0x40) ++ + #define SUN8I_CSC_CTRL_EN BIT(0) + + void sun8i_csc_config(struct sun8i_layer *layer, +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0032-drm-sun4i-vi_layer-Limit-formats-for-DE33.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0032-drm-sun4i-vi_layer-Limit-formats-for-DE33.patch new file mode 100644 index 000000000..3c9162882 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0032-drm-sun4i-vi_layer-Limit-formats-for-DE33.patch @@ -0,0 +1,71 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Thu, 2 Oct 2025 21:29:05 +0200 +Subject: drm/sun4i: vi_layer: Limit formats for DE33 + +YUV formats need scaler support due to chroma upscaling, but that's not +yet supported in the driver. Remove them from supported list until +DE33 scaler is properly supported. + +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 36 +++++++++- + 1 file changed, 35 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -403,6 +403,37 @@ static const u32 sun8i_vi_layer_de3_formats[] = { + DRM_FORMAT_YVU422, + }; + ++/* ++ * TODO: DE33 VI planes naturally support YUV formats but ++ * driver needs improvements in order to support them. ++ */ ++static const u32 sun8i_vi_layer_de33_formats[] = { ++ DRM_FORMAT_ABGR1555, ++ DRM_FORMAT_ABGR2101010, ++ DRM_FORMAT_ABGR4444, ++ DRM_FORMAT_ABGR8888, ++ DRM_FORMAT_ARGB1555, ++ DRM_FORMAT_ARGB2101010, ++ DRM_FORMAT_ARGB4444, ++ DRM_FORMAT_ARGB8888, ++ DRM_FORMAT_BGR565, ++ DRM_FORMAT_BGR888, ++ DRM_FORMAT_BGRA1010102, ++ DRM_FORMAT_BGRA5551, ++ DRM_FORMAT_BGRA4444, ++ DRM_FORMAT_BGRA8888, ++ DRM_FORMAT_BGRX8888, ++ DRM_FORMAT_RGB565, ++ DRM_FORMAT_RGB888, ++ DRM_FORMAT_RGBA1010102, ++ DRM_FORMAT_RGBA4444, ++ DRM_FORMAT_RGBA5551, ++ DRM_FORMAT_RGBA8888, ++ DRM_FORMAT_RGBX8888, ++ DRM_FORMAT_XBGR8888, ++ DRM_FORMAT_XRGB8888, ++}; ++ + static const uint64_t sun8i_layer_modifiers[] = { + DRM_FORMAT_MOD_LINEAR, + DRM_FORMAT_MOD_INVALID +@@ -432,7 +463,10 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + layer->regs = regs; + layer->cfg = cfg; + +- if (layer->cfg->de_type >= SUN8I_MIXER_DE3) { ++ if (layer->cfg->de_type == SUN8I_MIXER_DE33) { ++ formats = sun8i_vi_layer_de33_formats; ++ format_count = ARRAY_SIZE(sun8i_vi_layer_de33_formats); ++ } else if (layer->cfg->de_type == SUN8I_MIXER_DE3) { + formats = sun8i_vi_layer_de3_formats; + format_count = ARRAY_SIZE(sun8i_vi_layer_de3_formats); + } else { +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0033-clk-sunxi-ng-de2-Export-register-regmap-for-DE33.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0033-clk-sunxi-ng-de2-Export-register-regmap-for-DE33.patch new file mode 100644 index 000000000..8a8b9f8ca --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0033-clk-sunxi-ng-de2-Export-register-regmap-for-DE33.patch @@ -0,0 +1,102 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sat, 27 Sep 2025 12:51:45 +0200 +Subject: clk: sunxi-ng: de2: Export register regmap for DE33 + +DE33 clock pre-set plane mapping, which is not something that we want +from clock driver. Export registers instead, so DRM driver can set them +properly. + +Signed-off-by: Jernej Skrabec +--- + drivers/clk/sunxi-ng/ccu-sun8i-de2.c | 53 +++++++++- + 1 file changed, 50 insertions(+), 3 deletions(-) + +diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c b/drivers/clk/sunxi-ng/ccu-sun8i-de2.c +index 111111111111..222222222222 100644 +--- a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c ++++ b/drivers/clk/sunxi-ng/ccu-sun8i-de2.c +@@ -6,9 +6,11 @@ + #include + #include + #include ++#include + #include + #include + #include ++#include + #include + + #include "ccu_common.h" +@@ -250,6 +252,41 @@ static const struct sunxi_ccu_desc sun50i_h616_de33_clk_desc = { + .num_resets = ARRAY_SIZE(sun50i_h5_de2_resets), + }; + ++/* ++ * Add a regmap for the DE33 plane driver to access plane ++ * mapping registers. ++ * Only these registers are allowed to be written, to prevent ++ * overriding clock and reset configuration. ++ */ ++ ++#define SUN50I_DE33_CHN2CORE_REG 0x24 ++#define SUN50I_DE33_PORT02CHN_REG 0x28 ++#define SUN50I_DE33_PORT12CHN_REG 0x2c ++ ++static bool sun8i_de2_ccu_regmap_accessible_reg(struct device *dev, ++ unsigned int reg) ++{ ++ switch (reg) { ++ case SUN50I_DE33_CHN2CORE_REG: ++ case SUN50I_DE33_PORT02CHN_REG: ++ case SUN50I_DE33_PORT12CHN_REG: ++ return true; ++ default: ++ return false; ++ } ++} ++ ++static const struct regmap_config sun8i_de2_ccu_regmap_config = { ++ .reg_bits = 32, ++ .val_bits = 32, ++ .reg_stride = 4, ++ .max_register = 0xe0, ++ ++ /* other devices have no business accessing other registers */ ++ .readable_reg = sun8i_de2_ccu_regmap_accessible_reg, ++ .writeable_reg = sun8i_de2_ccu_regmap_accessible_reg, ++}; ++ + static int sunxi_de2_clk_probe(struct platform_device *pdev) + { + struct clk *bus_clk, *mod_clk; +@@ -303,13 +340,23 @@ static int sunxi_de2_clk_probe(struct platform_device *pdev) + } + + /* +- * The DE33 requires these additional (unknown) registers set ++ * The DE33 requires these additional plane mapping registers set + * during initialisation. + */ + if (of_device_is_compatible(pdev->dev.of_node, + "allwinner,sun50i-h616-de33-clk")) { +- writel(0, reg + 0x24); +- writel(0x0000a980, reg + 0x28); ++ struct regmap *regmap; ++ ++ regmap = devm_regmap_init_mmio(&pdev->dev, reg, ++ &sun8i_de2_ccu_regmap_config); ++ if (IS_ERR(regmap)) { ++ ret = PTR_ERR(regmap); ++ goto err_assert_reset; ++ } ++ ++ ret = of_syscon_register_regmap(pdev->dev.of_node, regmap); ++ if (ret) ++ goto err_assert_reset; + } + + ret = devm_sunxi_ccu_probe(&pdev->dev, reg, ccu_desc); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0034-dt-bindings-display-allwinner-Add-DE33-planes.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0034-dt-bindings-display-allwinner-Add-DE33-planes.patch new file mode 100644 index 000000000..c2fbe7a34 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0034-dt-bindings-display-allwinner-Add-DE33-planes.patch @@ -0,0 +1,69 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sat, 15 Nov 2025 14:17:13 +0100 +Subject: dt-bindings: display: allwinner: Add DE33 planes + +Allwinner Display Engine 3.3 contains planes, which are shared resources +between all mixers present in SoC. They can be assigned to specific +mixer by using registers which reside in display clocks MMIO. + +Add a binding for them. + +Signed-off-by: Jernej Skrabec +--- + Documentation/devicetree/bindings/display/allwinner,sun50i-h616-de33-planes.yaml | 44 ++++++++++ + 1 file changed, 44 insertions(+) + +diff --git a/Documentation/devicetree/bindings/display/allwinner,sun50i-h616-de33-planes.yaml b/Documentation/devicetree/bindings/display/allwinner,sun50i-h616-de33-planes.yaml +new file mode 100644 +index 000000000000..111111111111 +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/allwinner,sun50i-h616-de33-planes.yaml +@@ -0,0 +1,44 @@ ++# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/allwinner,sun50i-h616-de33-planes.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Allwinner H616 Display Engine 3.3 planes ++ ++maintainers: ++ - Jernej Skrabec ++ ++description: | ++ Display Engine 3.3 planes are independent of mixers, contrary to ++ previous generations of Display Engine. Planes can be assigned to ++ mixers independently and even dynamically during runtime. ++ ++properties: ++ compatible: ++ enum: ++ - allwinner,sun50i-h616-de33-planes ++ ++ reg: ++ maxItems: 1 ++ ++ allwinner,plane-mapping: ++ $ref: /schemas/types.yaml#/definitions/phandle ++ description: Phandle of Display Engine clock node ++ ++required: ++ - compatible ++ - reg ++ - allwinner,plane-mapping ++ ++additionalProperties: false ++ ++examples: ++ - | ++ planes: planes@100000 { ++ compatible = "allwinner,sun50i-h616-de33-planes"; ++ reg = <0x100000 0x180000>; ++ allwinner,plane-mapping = <&display_clocks>; ++ }; ++ ++... +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0035-drm-sun4i-Add-planes-driver.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0035-drm-sun4i-Add-planes-driver.patch new file mode 100644 index 000000000..dad52339b --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0035-drm-sun4i-Add-planes-driver.patch @@ -0,0 +1,305 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Mon, 29 Sep 2025 22:10:39 +0200 +Subject: drm/sun4i: Add planes driver + +This driver serves just as planes sharing manager, needed for Display +Engine 3.3 and newer. + +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/Kconfig | 8 + + drivers/gpu/drm/sun4i/Makefile | 1 + + drivers/gpu/drm/sun4i/sun50i_planes.c | 205 ++++++++++ + drivers/gpu/drm/sun4i/sun50i_planes.h | 43 ++ + 4 files changed, 257 insertions(+) + +diff --git a/drivers/gpu/drm/sun4i/Kconfig b/drivers/gpu/drm/sun4i/Kconfig +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/Kconfig ++++ b/drivers/gpu/drm/sun4i/Kconfig +@@ -85,4 +85,12 @@ config DRM_SUN8I_TCON_TOP + TCON TOP is responsible for configuring display pipeline for + HDMI, TVE and LCD. + ++config DRM_SUN50I_PLANES ++ tristate ++ default DRM_SUN4I if DRM_SUN8I_MIXER!=n ++ help ++ Chose this option if you have an Allwinner Soc with the ++ Display Engine 3.3 or newer. Planes are shared resource ++ between multiple mixers. ++ + endif +diff --git a/drivers/gpu/drm/sun4i/Makefile b/drivers/gpu/drm/sun4i/Makefile +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/Makefile ++++ b/drivers/gpu/drm/sun4i/Makefile +@@ -38,3 +38,4 @@ obj-$(CONFIG_DRM_SUN6I_DSI) += sun6i_mipi_dsi.o + obj-$(CONFIG_DRM_SUN8I_DW_HDMI) += sun8i-drm-hdmi.o + obj-$(CONFIG_DRM_SUN8I_MIXER) += sun8i-mixer.o + obj-$(CONFIG_DRM_SUN8I_TCON_TOP) += sun8i_tcon_top.o ++obj-$(CONFIG_DRM_SUN50I_PLANES) += sun50i_planes.o +diff --git a/drivers/gpu/drm/sun4i/sun50i_planes.c b/drivers/gpu/drm/sun4i/sun50i_planes.c +new file mode 100644 +index 000000000000..111111111111 +--- /dev/null ++++ b/drivers/gpu/drm/sun4i/sun50i_planes.c +@@ -0,0 +1,205 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/* Copyright (c) 2025 Jernej Skrabec */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "sun50i_planes.h" ++#include "sun8i_ui_layer.h" ++#include "sun8i_vi_layer.h" ++ ++static bool sun50i_planes_node_is_planes(struct device_node *node) ++{ ++ return !!of_match_node(sun50i_planes_of_table, node); ++} ++ ++struct drm_plane ** ++sun50i_planes_setup(struct device *dev, struct drm_device *drm, ++ unsigned int mixer) ++{ ++ struct sun50i_planes *planes = dev_get_drvdata(dev); ++ const struct sun50i_planes_quirks *quirks; ++ struct drm_plane **drm_planes; ++ const struct default_map *map; ++ unsigned int i; ++ ++ if (!sun50i_planes_node_is_planes(dev->of_node)) { ++ dev_err(dev, "Device is not planes driver!\n"); ++ return NULL; ++ } ++ ++ if (!planes) { ++ dev_err(dev, "Planes driver is not loaded yet!\n"); ++ return NULL; ++ } ++ ++ if (mixer > 1) { ++ dev_err(dev, "Mixer index is too high!\n"); ++ return NULL; ++ } ++ ++ quirks = planes->quirks; ++ map = &quirks->def_map[mixer]; ++ ++ drm_planes = devm_kcalloc(drm->dev, map->num_ch + 1, ++ sizeof(*drm_planes), GFP_KERNEL); ++ if (!drm_planes) ++ return ERR_PTR(-ENOMEM); ++ ++ for (i = 0; i < map->num_ch; i++) { ++ unsigned int phy_ch = map->map[i]; ++ struct sun8i_layer *layer; ++ enum drm_plane_type type; ++ ++ if ((i == 0 && map->num_ch == 1) || i == 1) ++ type = DRM_PLANE_TYPE_PRIMARY; ++ else ++ type = DRM_PLANE_TYPE_OVERLAY; ++ ++ if (phy_ch < UI_PLANE_OFFSET) ++ layer = sun8i_vi_layer_init_one(drm, type, planes->regs, ++ i, phy_ch, map->num_ch, ++ &quirks->cfg); ++ else ++ layer = sun8i_ui_layer_init_one(drm, type, planes->regs, ++ i, phy_ch, map->num_ch, ++ &quirks->cfg); ++ ++ if (IS_ERR(layer)) { ++ dev_err(drm->dev, ++ "Couldn't initialize DRM plane\n"); ++ return ERR_CAST(layer); ++ } ++ ++ drm_planes[i] = &layer->plane; ++ } ++ ++ return drm_planes; ++} ++EXPORT_SYMBOL(sun50i_planes_setup); ++ ++static void sun50i_planes_init_mapping(struct sun50i_planes *planes) ++{ ++ const struct sun50i_planes_quirks *quirks = planes->quirks; ++ unsigned int i, j; ++ u32 mapping; ++ ++ mapping = 0; ++ for (j = 0; j < MAX_DISP; j++) ++ for (i = 0; i < quirks->def_map[j].num_ch; i++) { ++ unsigned int ch = quirks->def_map[j].map[i]; ++ ++ if (ch < UI_PLANE_OFFSET) ++ mapping |= j << (ch * 2); ++ else ++ mapping |= j << ((ch - UI_PLANE_OFFSET) * 2 + 16); ++ } ++ regmap_write(planes->mapping, SUNXI_DE33_DE_CHN2CORE_MUX_REG, mapping); ++ ++ for (j = 0; j < MAX_DISP; j++) { ++ mapping = 0; ++ for (i = 0; i < quirks->def_map[j].num_ch; i++) { ++ unsigned int ch = quirks->def_map[j].map[i]; ++ ++ if (ch >= UI_PLANE_OFFSET) ++ ch += 2; ++ ++ mapping |= ch << (i * 4); ++ } ++ regmap_write(planes->mapping, SUNXI_DE33_DE_PORT02CHN_MUX_REG + j * 4, mapping); ++ } ++} ++ ++static const struct regmap_config sun50i_planes_regmap_config = { ++ .name = "planes", ++ .reg_bits = 32, ++ .val_bits = 32, ++ .reg_stride = 4, ++ .max_register = 0x17fffc, ++}; ++ ++static int sun50i_planes_probe(struct platform_device *pdev) ++{ ++ struct device *dev = &pdev->dev; ++ struct sun50i_planes *planes; ++ void __iomem *regs; ++ ++ planes = devm_kzalloc(dev, sizeof(*planes), GFP_KERNEL); ++ if (!planes) ++ return -ENOMEM; ++ ++ planes->quirks = of_device_get_match_data(&pdev->dev); ++ if (!planes->quirks) ++ return dev_err_probe(dev, -EINVAL, "Unable to get quirks\n"); ++ ++ planes->mapping = syscon_regmap_lookup_by_phandle(dev->of_node, ++ "allwinner,plane-mapping"); ++ if (IS_ERR(planes->mapping)) ++ return dev_err_probe(dev, PTR_ERR(planes->mapping), ++ "Unable to get mapping\n"); ++ ++ regs = devm_platform_ioremap_resource(pdev, 0); ++ if (IS_ERR(regs)) ++ return PTR_ERR(regs); ++ ++ planes->regs = devm_regmap_init_mmio(dev, regs, &sun50i_planes_regmap_config); ++ if (IS_ERR(planes->regs)) ++ return PTR_ERR(planes->regs); ++ ++ dev_set_drvdata(dev, planes); ++ ++ sun50i_planes_init_mapping(planes); ++ ++ return 0; ++} ++ ++static const struct sun50i_planes_quirks sun50i_h616_planes_quirks = { ++ .def_map = { ++ { ++ .map = {0, 6, 7}, ++ .num_ch = 3, ++ }, ++ { ++ .map = {1, 2, 8}, ++ .num_ch = 3, ++ }, ++ }, ++ .cfg = { ++ .de_type = SUN8I_MIXER_DE33, ++ /* ++ * TODO: All planes support scaling, but driver needs ++ * improvements to properly support it. ++ */ ++ .scaler_mask = 0, ++ .scanline_yuv = 4096, ++ }, ++}; ++ ++/* sun4i_drv uses this list to check if a device node is a plane */ ++const struct of_device_id sun50i_planes_of_table[] = { ++ { ++ .compatible = "allwinner,sun50i-h616-de33-planes", ++ .data = &sun50i_h616_planes_quirks ++ }, ++ { } ++}; ++MODULE_DEVICE_TABLE(of, sun50i_planes_of_table); ++EXPORT_SYMBOL(sun50i_planes_of_table); ++ ++static struct platform_driver sun50i_planes_platform_driver = { ++ .probe = sun50i_planes_probe, ++ .driver = { ++ .name = "sun50i-planes", ++ .of_match_table = sun50i_planes_of_table, ++ }, ++}; ++module_platform_driver(sun50i_planes_platform_driver); ++ ++MODULE_AUTHOR("Jernej Skrabec "); ++MODULE_DESCRIPTION("Allwinner DE33 planes driver"); ++MODULE_LICENSE("GPL"); +diff --git a/drivers/gpu/drm/sun4i/sun50i_planes.h b/drivers/gpu/drm/sun4i/sun50i_planes.h +new file mode 100644 +index 000000000000..111111111111 +--- /dev/null ++++ b/drivers/gpu/drm/sun4i/sun50i_planes.h +@@ -0,0 +1,43 @@ ++/* SPDX-License-Identifier: GPL-2.0+ */ ++/* Copyright (c) 2025 Jernej Skrabec */ ++ ++#ifndef _SUN50I_PLANES_H_ ++#define _SUN50I_PLANES_H_ ++ ++#include ++#include ++ ++#include "sun8i_mixer.h" ++ ++/* mapping registers, located in clock register space */ ++#define SUNXI_DE33_DE_CHN2CORE_MUX_REG 0x24 ++#define SUNXI_DE33_DE_PORT02CHN_MUX_REG 0x28 ++#define SUNXI_DE33_DE_PORT12CHN_MUX_REG 0x2c ++ ++#define MAX_DISP 2 ++#define MAX_CHANNELS 8 ++#define UI_PLANE_OFFSET 6 ++ ++struct default_map { ++ unsigned int map[MAX_CHANNELS]; ++ unsigned int num_ch; ++}; ++ ++struct sun50i_planes_quirks { ++ struct default_map def_map[MAX_DISP]; ++ struct sun8i_layer_cfg cfg; ++}; ++ ++struct sun50i_planes { ++ struct regmap *regs; ++ struct regmap *mapping; ++ const struct sun50i_planes_quirks *quirks; ++}; ++ ++extern const struct of_device_id sun50i_planes_of_table[]; ++ ++struct drm_plane ** ++sun50i_planes_setup(struct device *dev, struct drm_device *drm, ++ unsigned int mixer); ++ ++#endif /* _SUN50I_PLANES_H_ */ +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0036-dt-bindings-display-allwinner-Update-H616-DE33-bindi.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0036-dt-bindings-display-allwinner-Update-H616-DE33-bindi.patch new file mode 100644 index 000000000..6e9d4a0f5 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0036-dt-bindings-display-allwinner-Update-H616-DE33-bindi.patch @@ -0,0 +1,72 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sat, 15 Nov 2025 14:24:06 +0100 +Subject: dt-bindings: display: allwinner: Update H616 DE33 binding + +As it turns out, current H616 DE33 binding was written based on +incomplete understanding of DE33 design. Namely, planes are shared +resource and not tied to specific mixer, which was the case for previous +generations of Display Engine (DE3 and earlier). + +This means that current DE33 binding doesn't properly reflect HW and +using it would mean that second mixer (used for second display output) +can't be supported. + +Update DE33 mixer binding so instead of referencing planes register +space, it contains phandle to newly introduced DE33 planes node. + +There is no user of this binding yet, so changes can be made safely, +without breaking any backward compatibility. + +Signed-off-by: Jernej Skrabec +--- + Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml | 16 ++++++---- + 1 file changed, 10 insertions(+), 6 deletions(-) + +diff --git a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml +index 111111111111..222222222222 100644 +--- a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml ++++ b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml +@@ -46,6 +46,10 @@ properties: + resets: + maxItems: 1 + ++ allwinner,planes: ++ $ref: /schemas/types.yaml#/definitions/phandle ++ description: Phandle of Display Engine 3.3 planes node ++ + ports: + $ref: /schemas/graph.yaml#/properties/ports + +@@ -74,22 +78,22 @@ allOf: + properties: + reg: + description: | +- Registers for controlling individual layers of the display +- engine (layers), global control (top), and display blending +- control (display). Names are from Allwinner BSP kernel. +- maxItems: 3 ++ Registers for display blending control (display) and global ++ control (top). Names are from Allwinner BSP kernel. ++ maxItems: 2 + reg-names: + items: +- - const: layers +- - const: top + - const: display ++ - const: top + required: + - reg-names ++ - allwinner,planes + + else: + properties: + reg: + maxItems: 1 ++ allwinner,planes: false + + required: + - compatible +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0037-drm-sun4i-switch-DE33-to-new-bindings.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0037-drm-sun4i-switch-DE33-to-new-bindings.patch new file mode 100644 index 000000000..310465a4e --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0037-drm-sun4i-switch-DE33-to-new-bindings.patch @@ -0,0 +1,362 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sat, 27 Sep 2025 11:04:09 +0200 +Subject: drm/sun4i: switch DE33 to new bindings + +Now that everything is in place, switch DE33 to new bindings. + +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 130 +++++----- + drivers/gpu/drm/sun4i/sun8i_mixer.h | 10 +- + 2 files changed, 71 insertions(+), 69 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -24,6 +25,7 @@ + #include + + #include "sun4i_drv.h" ++#include "sun50i_planes.h" + #include "sun8i_mixer.h" + #include "sun8i_ui_layer.h" + #include "sun8i_vi_layer.h" +@@ -256,7 +258,6 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, + { + struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); + u32 bld_base = sun8i_blender_base(mixer); +- struct regmap *bld_regs = sun8i_blender_regmap(mixer); + struct drm_plane_state *plane_state; + struct drm_plane *plane; + u32 route = 0, pipe_en = 0; +@@ -293,16 +294,16 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, + route |= layer->index << SUN8I_MIXER_BLEND_ROUTE_PIPE_SHIFT(zpos); + pipe_en |= SUN8I_MIXER_BLEND_PIPE_CTL_EN(zpos); + +- regmap_write(bld_regs, ++ regmap_write(engine->regs, + SUN8I_MIXER_BLEND_ATTR_COORD(bld_base, zpos), + SUN8I_MIXER_COORD(x, y)); +- regmap_write(bld_regs, ++ regmap_write(engine->regs, + SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos), + SUN8I_MIXER_SIZE(w, h)); + } + +- regmap_write(bld_regs, SUN8I_MIXER_BLEND_ROUTE(bld_base), route); +- regmap_write(bld_regs, SUN8I_MIXER_BLEND_PIPE_CTL(bld_base), ++ regmap_write(engine->regs, SUN8I_MIXER_BLEND_ROUTE(bld_base), route); ++ regmap_write(engine->regs, SUN8I_MIXER_BLEND_PIPE_CTL(bld_base), + pipe_en | SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); + + if (mixer->cfg->de_type != SUN8I_MIXER_DE33) +@@ -317,7 +318,6 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); + int plane_cnt = mixer->cfg->ui_num + mixer->cfg->vi_num; + enum drm_plane_type type; +- unsigned int phy_index; + int i; + + planes = devm_kcalloc(drm->dev, plane_cnt, sizeof(*planes), GFP_KERNEL); +@@ -332,12 +332,8 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + else + type = DRM_PLANE_TYPE_OVERLAY; + +- phy_index = i; +- if (mixer->cfg->de_type == SUN8I_MIXER_DE33) +- phy_index = mixer->cfg->map[i]; +- + layer = sun8i_vi_layer_init_one(drm, type, mixer->engine.regs, +- i, phy_index, plane_cnt, ++ i, i, plane_cnt, + &mixer->cfg->lay_cfg); + if (IS_ERR(layer)) { + dev_err(drm->dev, +@@ -357,12 +353,8 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + else + type = DRM_PLANE_TYPE_OVERLAY; + +- phy_index = index; +- if (mixer->cfg->de_type == SUN8I_MIXER_DE33) +- phy_index = mixer->cfg->map[index]; +- + layer = sun8i_ui_layer_init_one(drm, type, mixer->engine.regs, +- index, phy_index, plane_cnt, ++ index, index, plane_cnt, + &mixer->cfg->lay_cfg); + if (IS_ERR(layer)) { + dev_err(drm->dev, "Couldn't initialize %s plane\n", +@@ -376,16 +368,25 @@ static struct drm_plane **sun8i_layers_init(struct drm_device *drm, + return planes; + } + ++static struct drm_plane **sun50i_layers_init(struct drm_device *drm, ++ struct sunxi_engine *engine) ++{ ++ struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); ++ ++ if (IS_ENABLED(CONFIG_DRM_SUN50I_PLANES)) ++ return sun50i_planes_setup(mixer->planes_dev, drm, engine->id); ++ ++ return NULL; ++} ++ + static void sun8i_mixer_mode_set(struct sunxi_engine *engine, + const struct drm_display_mode *mode) + { + struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); +- struct regmap *bld_regs; + u32 bld_base, size, val; + bool interlaced; + + bld_base = sun8i_blender_base(mixer); +- bld_regs = sun8i_blender_regmap(mixer); + interlaced = !!(mode->flags & DRM_MODE_FLAG_INTERLACE); + size = SUN8I_MIXER_SIZE(mode->hdisplay, mode->vdisplay); + +@@ -397,14 +398,14 @@ static void sun8i_mixer_mode_set(struct sunxi_engine *engine, + else + regmap_write(mixer->engine.regs, SUN8I_MIXER_GLOBAL_SIZE, size); + +- regmap_write(bld_regs, SUN8I_MIXER_BLEND_OUTSIZE(bld_base), size); ++ regmap_write(engine->regs, SUN8I_MIXER_BLEND_OUTSIZE(bld_base), size); + + if (interlaced) + val = SUN8I_MIXER_BLEND_OUTCTL_INTERLACED; + else + val = 0; + +- regmap_update_bits(bld_regs, SUN8I_MIXER_BLEND_OUTCTL(bld_base), ++ regmap_update_bits(engine->regs, SUN8I_MIXER_BLEND_OUTCTL(bld_base), + SUN8I_MIXER_BLEND_OUTCTL_INTERLACED, val); + + DRM_DEBUG_DRIVER("Switching display mixer interlaced mode %s\n", +@@ -417,8 +418,14 @@ static const struct sunxi_engine_ops sun8i_engine_ops = { + .mode_set = sun8i_mixer_mode_set, + }; + ++static const struct sunxi_engine_ops sun50i_engine_ops = { ++ .commit = sun8i_mixer_commit, ++ .layers_init = sun50i_layers_init, ++ .mode_set = sun8i_mixer_mode_set, ++}; ++ + static const struct regmap_config sun8i_mixer_regmap_config = { +- .name = "layers", ++ .name = "display", + .reg_bits = 32, + .val_bits = 32, + .reg_stride = 4, +@@ -433,14 +440,6 @@ static const struct regmap_config sun8i_top_regmap_config = { + .max_register = 0x3c, + }; + +-static const struct regmap_config sun8i_disp_regmap_config = { +- .name = "display", +- .reg_bits = 32, +- .val_bits = 32, +- .reg_stride = 4, +- .max_register = 0x20000, +-}; +- + static int sun8i_mixer_of_get_id(struct device_node *node) + { + struct device_node *ep, *remote; +@@ -463,17 +462,14 @@ static int sun8i_mixer_of_get_id(struct device_node *node) + + static void sun8i_mixer_init(struct sun8i_mixer *mixer) + { +- struct regmap *top_regs, *disp_regs; + unsigned int base = sun8i_blender_base(mixer); ++ struct regmap *top_regs; + int plane_cnt, i; + +- if (mixer->cfg->de_type == SUN8I_MIXER_DE33) { ++ if (mixer->cfg->de_type == SUN8I_MIXER_DE33) + top_regs = mixer->top_regs; +- disp_regs = mixer->disp_regs; +- } else { ++ else + top_regs = mixer->engine.regs; +- disp_regs = mixer->engine.regs; +- } + + /* Enable the mixer */ + regmap_write(top_regs, SUN8I_MIXER_GLOBAL_CTL, +@@ -483,25 +479,25 @@ static void sun8i_mixer_init(struct sun8i_mixer *mixer) + regmap_write(top_regs, SUN50I_MIXER_GLOBAL_CLK, 1); + + /* Set background color to black */ +- regmap_write(disp_regs, SUN8I_MIXER_BLEND_BKCOLOR(base), ++ regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_BKCOLOR(base), + SUN8I_MIXER_BLEND_COLOR_BLACK); + + /* + * Set fill color of bottom plane to black. Generally not needed + * except when VI plane is at bottom (zpos = 0) and enabled. + */ +- regmap_write(disp_regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), ++ regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), + SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); +- regmap_write(disp_regs, SUN8I_MIXER_BLEND_ATTR_FCOLOR(base, 0), ++ regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ATTR_FCOLOR(base, 0), + SUN8I_MIXER_BLEND_COLOR_BLACK); + + plane_cnt = mixer->cfg->vi_num + mixer->cfg->ui_num; + for (i = 0; i < plane_cnt; i++) +- regmap_write(disp_regs, ++ regmap_write(mixer->engine.regs, + SUN8I_MIXER_BLEND_MODE(base, i), + SUN8I_MIXER_BLEND_MODE_DEF); + +- regmap_update_bits(disp_regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), ++ regmap_update_bits(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), + SUN8I_MIXER_BLEND_PIPE_CTL_EN_MSK, 0); + } + +@@ -532,7 +528,6 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, + if (!mixer) + return -ENOMEM; + dev_set_drvdata(dev, mixer); +- mixer->engine.ops = &sun8i_engine_ops; + mixer->engine.node = dev->of_node; + + if (of_property_present(dev->of_node, "iommus")) { +@@ -562,6 +557,11 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, + if (!mixer->cfg) + return -EINVAL; + ++ if (mixer->cfg->de_type == SUN8I_MIXER_DE33) ++ mixer->engine.ops = &sun50i_engine_ops; ++ else ++ mixer->engine.ops = &sun8i_engine_ops; ++ + regs = devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(regs)) + return PTR_ERR(regs); +@@ -584,17 +584,6 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, + dev_err(dev, "Couldn't create the top regmap\n"); + return PTR_ERR(mixer->top_regs); + } +- +- regs = devm_platform_ioremap_resource_byname(pdev, "display"); +- if (IS_ERR(regs)) +- return PTR_ERR(regs); +- +- mixer->disp_regs = devm_regmap_init_mmio(dev, regs, +- &sun8i_disp_regmap_config); +- if (IS_ERR(mixer->disp_regs)) { +- dev_err(dev, "Couldn't create the disp regmap\n"); +- return PTR_ERR(mixer->disp_regs); +- } + } + + mixer->reset = devm_reset_control_get(dev, NULL); +@@ -634,6 +623,33 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, + + clk_prepare_enable(mixer->mod_clk); + ++ if (mixer->cfg->de_type == SUN8I_MIXER_DE33) { ++ struct platform_device *pdev; ++ struct device_node *np; ++ void *data; ++ ++ np = of_parse_phandle(dev->of_node, "allwinner,planes", 0); ++ if (!np) { ++ ret = -ENODEV; ++ goto err_disable_mod_clk; ++ } ++ ++ pdev = of_find_device_by_node(np); ++ of_node_put(np); ++ if (!pdev) { ++ ret = -EPROBE_DEFER; ++ goto err_disable_mod_clk; ++ } ++ ++ data = platform_get_drvdata(pdev); ++ if (!data) { ++ put_device(&pdev->dev); ++ return -EPROBE_DEFER; ++ } ++ ++ mixer->planes_dev = &pdev->dev; ++ } ++ + list_add_tail(&mixer->engine.list, &drv->engine_list); + + /* Reset registers and disable unused sub-engines */ +@@ -668,6 +684,8 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, + + return 0; + ++err_disable_mod_clk: ++ clk_disable_unprepare(mixer->mod_clk); + err_disable_bus_clk: + clk_disable_unprepare(mixer->bus_clk); + err_assert_reset: +@@ -863,16 +881,8 @@ static const struct sun8i_mixer_cfg sun50i_h6_mixer0_cfg = { + }; + + static const struct sun8i_mixer_cfg sun50i_h616_mixer0_cfg = { +- .lay_cfg = { +- .de_type = SUN8I_MIXER_DE33, +- .scaler_mask = 0xf, +- .scanline_yuv = 4096, +- }, + .de_type = SUN8I_MIXER_DE33, + .mod_rate = 600000000, +- .ui_num = 3, +- .vi_num = 1, +- .map = {0, 6, 7, 8}, + }; + + static const struct of_device_id sun8i_mixer_of_table[] = { +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h +@@ -202,7 +202,6 @@ struct sun8i_mixer_cfg { + int ui_num; + unsigned int de_type; + unsigned long mod_rate; +- unsigned int map[6]; + }; + + struct sun8i_mixer { +@@ -216,7 +215,7 @@ struct sun8i_mixer { + struct clk *mod_clk; + + struct regmap *top_regs; +- struct regmap *disp_regs; ++ struct device *planes_dev; + }; + + enum { +@@ -252,13 +251,6 @@ sun8i_blender_base(struct sun8i_mixer *mixer) + return mixer->cfg->de_type == SUN8I_MIXER_DE3 ? DE3_BLD_BASE : DE2_BLD_BASE; + } + +-static inline struct regmap * +-sun8i_blender_regmap(struct sun8i_mixer *mixer) +-{ +- return mixer->cfg->de_type == SUN8I_MIXER_DE33 ? +- mixer->disp_regs : mixer->engine.regs; +-} +- + static inline u32 + sun8i_channel_base(struct sun8i_layer *layer) + { +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0038-drm-sun4i-Add-H616-TCON-TV-support.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0038-drm-sun4i-Add-H616-TCON-TV-support.patch new file mode 100644 index 000000000..bed1f9e49 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0038-drm-sun4i-Add-H616-TCON-TV-support.patch @@ -0,0 +1,74 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Tue, 30 Sep 2025 18:57:00 +0200 +Subject: drm/sun4i: Add H616 TCON TV support + +It needs additional quirk to enable HDMI pads. + +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun4i_tcon.c | 13 ++++++++++ + drivers/gpu/drm/sun4i/sun4i_tcon.h | 2 ++ + 2 files changed, 15 insertions(+) + +diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun4i_tcon.c ++++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c +@@ -1286,6 +1286,11 @@ static int sun4i_tcon_bind(struct device *dev, struct device *master, + tcon->id); + } + ++ if (tcon->quirks->hdmi_pad) ++ regmap_update_bits(tcon->regs, SUN4I_TCON_GCTL_REG, ++ SUN4I_TCON_GCTL_PAD_SEL, ++ SUN4I_TCON_GCTL_PAD_SEL); ++ + list_add_tail(&tcon->list, &drv->tcon_list); + + return 0; +@@ -1544,6 +1549,13 @@ static const struct sun4i_tcon_quirks sun20i_d1_lcd_quirks = { + .set_mux = sun8i_r40_tcon_tv_set_mux, + }; + ++static const struct sun4i_tcon_quirks sun50i_h616_tv_quirks = { ++ .has_channel_1 = true, ++ .polarity_in_ch0 = true, ++ .hdmi_pad = true, ++ .set_mux = sun8i_r40_tcon_tv_set_mux, ++}; ++ + /* sun4i_drv uses this list to check if a device node is a TCON */ + const struct of_device_id sun4i_tcon_of_table[] = { + { .compatible = "allwinner,sun4i-a10-tcon", .data = &sun4i_a10_quirks }, +@@ -1563,6 +1575,7 @@ const struct of_device_id sun4i_tcon_of_table[] = { + { .compatible = "allwinner,sun9i-a80-tcon-tv", .data = &sun9i_a80_tcon_tv_quirks }, + { .compatible = "allwinner,sun20i-d1-tcon-lcd", .data = &sun20i_d1_lcd_quirks }, + { .compatible = "allwinner,sun20i-d1-tcon-tv", .data = &sun8i_r40_tv_quirks }, ++ { .compatible = "allwinner,sun50i-h616-tcon-tv", .data = &sun50i_h616_tv_quirks }, + { } + }; + MODULE_DEVICE_TABLE(of, sun4i_tcon_of_table); +diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.h b/drivers/gpu/drm/sun4i/sun4i_tcon.h +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun4i_tcon.h ++++ b/drivers/gpu/drm/sun4i/sun4i_tcon.h +@@ -19,6 +19,7 @@ + + #define SUN4I_TCON_GCTL_REG 0x0 + #define SUN4I_TCON_GCTL_TCON_ENABLE BIT(31) ++#define SUN4I_TCON_GCTL_PAD_SEL BIT(1) + #define SUN4I_TCON_GCTL_IOMAP_MASK BIT(0) + #define SUN4I_TCON_GCTL_IOMAP_TCON1 (1 << 0) + #define SUN4I_TCON_GCTL_IOMAP_TCON0 (0 << 0) +@@ -243,6 +244,7 @@ struct sun4i_tcon_quirks { + bool needs_edp_reset; /* a80 edp reset needed for tcon0 access */ + bool supports_lvds; /* Does the TCON support an LVDS output? */ + bool polarity_in_ch0; /* some tcon1 channels have polarity bits in tcon0 pol register */ ++ bool hdmi_pad; /* h616 has to enable pad for HDMI */ + u8 dclk_min_div; /* minimum divider for TCON0 DCLK */ + + /* callback to handle tcon muxing options */ +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-add-sun50i-h616-hdmi-phy-support.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0039-srm-sun4i-Add-support-for-H616-HDMI-PHY.patch similarity index 59% rename from patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-add-sun50i-h616-hdmi-phy-support.patch rename to patch/kernel/archive/sunxi-6.18/patches.drm/0039-srm-sun4i-Add-support-for-H616-HDMI-PHY.patch index d1e28132f..47ff89e88 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.drm/drm-sun4i-add-sun50i-h616-hdmi-phy-support.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0039-srm-sun4i-Add-support-for-H616-HDMI-PHY.patch @@ -1,14 +1,18 @@ -From 6c8bbaf43b8eaf62d4682ce66a35fc7f341f4a13 Mon Sep 17 00:00:00 2001 -From: The-going <48602507+The-going@users.noreply.github.com> -Date: Mon, 10 Feb 2025 15:45:13 +0300 -Subject: [PATCH] drm: sun4i: add sun50i-h616-hdmi-phy support +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Tue, 30 Sep 2025 18:59:51 +0200 +Subject: srm/sun4i: Add support for H616 HDMI PHY +It needs separate configuration table, but in general, it's just +standard combination of Synopsys HDMI controller and PHY. + +Signed-off-by: Jernej Skrabec --- - drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 71 ++++++++++++++++++++++++++ + drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c | 71 ++++++++++ 1 file changed, 71 insertions(+) diff --git a/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c b/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c -index 4fa69c463dc4..8a07052037c3 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c +++ b/drivers/gpu/drm/sun4i/sun8i_hdmi_phy.c @@ -124,6 +124,66 @@ static const struct dw_hdmi_phy_config sun50i_h6_phy_config[] = { @@ -18,39 +22,39 @@ index 4fa69c463dc4..8a07052037c3 100644 +static const struct dw_hdmi_mpll_config sun50i_h616_mpll_cfg[] = { + { + 27000000, { -+ {0x00b3, 0x0003}, -+ {0x2153, 0x0003}, -+ {0x40f3, 0x0003}, ++ { 0x00b3, 0x0003 }, ++ { 0x2153, 0x0003 }, ++ { 0x40f3, 0x0003 }, + }, -+ }, { ++ }, { + 74250000, { -+ {0x0072, 0x0003}, -+ {0x2145, 0x0003}, -+ {0x4061, 0x0003}, ++ { 0x0072, 0x0003 }, ++ { 0x2145, 0x0003 }, ++ { 0x4061, 0x0003 }, + }, -+ }, { ++ }, { + 148500000, { -+ {0x0051, 0x0003}, -+ {0x214c, 0x0003}, -+ {0x4064, 0x0003}, ++ { 0x0051, 0x0003 }, ++ { 0x214c, 0x0003 }, ++ { 0x4064, 0x0003 }, + }, -+ }, { ++ }, { + 297000000, { -+ {0x0040, 0x0003}, -+ {0x3b4c, 0x0003}, -+ {0x5a64, 0x0003}, ++ { 0x0040, 0x0003 }, ++ { 0x3b4c, 0x0003 }, ++ { 0x5a64, 0x0003 }, + }, -+ }, { ++ }, { + 594000000, { -+ {0x1a40, 0x0003}, -+ {0x3b4c, 0x0003}, -+ {0x5a64, 0x0003}, ++ { 0x1a40, 0x0003 }, ++ { 0x3b4c, 0x0003 }, ++ { 0x5a64, 0x0003 }, + }, + }, { + ~0UL, { -+ {0x0000, 0x0000}, -+ {0x0000, 0x0000}, -+ {0x0000, 0x0000}, ++ { 0x0000, 0x0000 }, ++ { 0x0000, 0x0000 }, ++ { 0x0000, 0x0000 }, + }, + } +}; @@ -67,12 +71,12 @@ index 4fa69c463dc4..8a07052037c3 100644 + +static const struct dw_hdmi_phy_config sun50i_h616_phy_config[] = { + /*pixelclk symbol term vlev*/ -+ {27000000, 0x8009, 0x0007, 0x02b0}, -+ {74250000, 0x8019, 0x0004, 0x0290}, -+ {148500000, 0x8019, 0x0004, 0x0290}, -+ {297000000, 0x8039, 0x0004, 0x022b}, -+ {594000000, 0x8029, 0x0000, 0x008a}, -+ {~0UL, 0x0000, 0x0000, 0x0000} ++ { 27000000, 0x8009, 0x0007, 0x02b0}, ++ { 74250000, 0x8019, 0x0004, 0x0290}, ++ { 148500000, 0x8019, 0x0004, 0x0290}, ++ { 297000000, 0x8039, 0x0004, 0x022b}, ++ { 594000000, 0x8029, 0x0000, 0x008a}, ++ { ~0UL, 0x0000, 0x0000, 0x0000} +}; + static void sun8i_hdmi_phy_set_polarity(struct sun8i_hdmi_phy *phy, @@ -83,9 +87,9 @@ index 4fa69c463dc4..8a07052037c3 100644 }; +static const struct sun8i_hdmi_phy_variant sun50i_h616_hdmi_phy = { -+ .cur_ctr = sun50i_h616_cur_ctr, ++ .cur_ctr = sun50i_h616_cur_ctr, + .mpll_cfg = sun50i_h616_mpll_cfg, -+ .phy_cfg = sun50i_h616_phy_config, ++ .phy_cfg = sun50i_h616_phy_config, + .phy_init = &sun50i_hdmi_phy_init_h6, +}; + @@ -104,5 +108,5 @@ index 4fa69c463dc4..8a07052037c3 100644 }; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0040-drm-sun4i-Add-compatible-for-H616-display-engine.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0040-drm-sun4i-Add-compatible-for-H616-display-engine.patch new file mode 100644 index 000000000..e510f83e5 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0040-drm-sun4i-Add-compatible-for-H616-display-engine.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Tue, 23 Sep 2025 17:15:46 +0200 +Subject: drm/sun4i: Add compatible for H616 display engine + +Enable H616 display engine pipeline by adding respective compatible. + +Signed-off-by: Jernej Skrabec +--- + drivers/gpu/drm/sun4i/sun4i_drv.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/sun4i/sun4i_drv.c ++++ b/drivers/gpu/drm/sun4i/sun4i_drv.c +@@ -436,6 +436,7 @@ static const struct of_device_id sun4i_drv_of_table[] = { + { .compatible = "allwinner,sun20i-d1-display-engine" }, + { .compatible = "allwinner,sun50i-a64-display-engine" }, + { .compatible = "allwinner,sun50i-h6-display-engine" }, ++ { .compatible = "allwinner,sun50i-h616-display-engine" }, + { } + }; + MODULE_DEVICE_TABLE(of, sun4i_drv_of_table); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-h616-add-hdmi-support-for-zero2-and-zero3.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0041-arm64-dts-allwinner-h616-Add-display-pipeline.patch similarity index 55% rename from patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-h616-add-hdmi-support-for-zero2-and-zero3.patch rename to patch/kernel/archive/sunxi-6.18/patches.drm/0041-arm64-dts-allwinner-h616-Add-display-pipeline.patch index 1aa79ac1a..ab5e11eb4 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.armbian/arm64-dts-h616-add-hdmi-support-for-zero2-and-zero3.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0041-arm64-dts-allwinner-h616-Add-display-pipeline.patch @@ -1,81 +1,15 @@ -From 270e1512a91f294089822d2c3a3fcb8560d86561 Mon Sep 17 00:00:00 2001 -From: Gunjan Gupta -Date: Fri, 29 Dec 2023 11:18:33 +0000 -Subject: arm64: dts: h616: add hdmi support for zero2 and zero3 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Tue, 23 Sep 2025 17:08:11 +0200 +Subject: arm64: dts: allwinner: h616: Add display pipeline +Signed-off-by: Jernej Skrabec --- - .../allwinner/sun50i-h616-orangepi-zero.dtsi | 25 ++ - .../allwinner/sun50i-h616-orangepi-zero2.dts | 4 + - .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 213 ++++++++++++++++++ - 3 files changed, 242 insertions(+) + arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi | 310 ++++++++++ + 1 file changed, 310 insertions(+) -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi -index 01cf16ee81f9..d10c590de63c 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi -+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi -@@ -23,6 +23,17 @@ chosen { - stdout-path = "serial0:115200n8"; - }; - -+ connector { -+ compatible = "hdmi-connector"; -+ type = "d"; -+ -+ port { -+ hdmi_con_in: endpoint { -+ remote-endpoint = <&hdmi_out_con>; -+ }; -+ }; -+ }; -+ - leds { - compatible = "gpio-leds"; - -@@ -95,6 +106,10 @@ &codec { - status = "okay"; - }; - -+&de { -+ status = "okay"; -+}; -+ - &ehci1 { - status = "okay"; - }; -@@ -119,6 +134,16 @@ &gpu { - status = "okay"; - }; - -+&hdmi { -+ status = "okay"; -+}; -+ -+&hdmi_out { -+ hdmi_out_con: endpoint { -+ remote-endpoint = <&hdmi_con_in>; -+ }; -+}; -+ - &mdio0 { - ext_rgmii_phy: ethernet-phy@1 { - compatible = "ethernet-phy-ieee802.3-c22"; -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts -index 42c099483fdd..60dd0860f49f 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts -+++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts -@@ -29,6 +29,10 @@ &gpu { - status = "okay"; - }; - -+&hdmi { -+ hvcc-supply = <®_bldo1>; -+}; -+ - &mmc0 { - vmmc-supply = <®_dcdce>; - }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi -index 5c1e2dc77268..564c5853af97 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi @@ -7,8 +7,11 @@ @@ -95,15 +29,15 @@ index 5c1e2dc77268..564c5853af97 100644 }; + de: display-engine { -+ compatible = "allwinner,sun50i-h6-display-engine"; -+ allwinner,pipelines = <&mixer0>; ++ compatible = "allwinner,sun50i-h616-display-engine"; ++ allwinner,pipelines = <&mixer0>, <&mixer1>; + status = "disabled"; + }; + reserved-memory { #address-cells = <2>; #size-cells = <2>; -@@ -150,6 +159,50 @@ soc { +@@ -150,6 +159,82 @@ soc { #size-cells = <1>; ranges = <0x0 0x0 0x0 0x40000000>; @@ -126,15 +60,22 @@ index 5c1e2dc77268..564c5853af97 100644 + #reset-cells = <1>; + }; + -+ mixer0: mixer@100000 { ++ planes: planes@100000 { ++ compatible = "allwinner,sun50i-h616-de33-planes"; ++ reg = <0x100000 0x180000>; ++ allwinner,plane-mapping = <&display_clocks>; ++ }; ++ ++ mixer0: mixer@280000 { + compatible = "allwinner,sun50i-h616-de33-mixer-0"; -+ reg = <0x100000 0x100000>, -+ <0x8100 0x40>, -+ <0x280000 0x20000>; ++ reg = <0x280000 0x20000>, ++ <0x8100 0x40>; ++ reg-names = "display", "top"; + clocks = <&display_clocks CLK_BUS_MIXER0>, + <&display_clocks CLK_MIXER0>; + clock-names = "bus", "mod"; + resets = <&display_clocks RST_MIXER0>; ++ allwinner,planes = <&planes>; + + ports { + #address-cells = <1>; @@ -149,31 +90,37 @@ index 5c1e2dc77268..564c5853af97 100644 + }; + }; + }; ++ ++ mixer1: mixer@2a0000 { ++ compatible = "allwinner,sun50i-h616-de33-mixer-0"; ++ reg = <0x2a0000 0x20000>, ++ <0x8140 0x40>; ++ reg-names = "display", "top"; ++ clocks = <&display_clocks CLK_BUS_MIXER1>, ++ <&display_clocks CLK_MIXER1>; ++ clock-names = "bus", "mod"; ++ resets = <&display_clocks RST_MIXER1>; ++ allwinner,planes = <&planes>; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mixer1_out: port@1 { ++ reg = <1>; ++ ++ mixer1_out_tcon_top_mixer1: endpoint { ++ remote-endpoint = <&tcon_top_mixer1_in_mixer1>; ++ }; ++ }; ++ }; ++ }; + }; + gpu: gpu@1800000 { compatible = "allwinner,sun50i-h616-mali", "arm,mali-bifrost"; -@@ -193,12 +246,31 @@ syscon: syscon@3000000 { - #size-cells = <1>; - ranges; - -+ sram_a2: sram@100000 { -+ compatible = "mmio-sram"; -+ reg = <0x00100000 0x18000>; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ ranges = <0 0x00100000 0x18000>; -+ -+ scpi_sram: scpi-sram@17c00 { -+ compatible = "arm,scp-shmem"; -+ reg = <0x17c00 0x200>; -+ }; -+ }; -+ - sram_c: sram@28000 { - compatible = "mmio-sram"; - reg = <0x00028000 0x30000>; +@@ -188,6 +273,12 @@ sram_c: sram@28000 { #address-cells = <1>; #size-cells = <1>; ranges = <0 0x00028000 0x30000>; @@ -184,14 +131,13 @@ index 5c1e2dc77268..564c5853af97 100644 + reg = <0x0000 0x1e000>; + }; }; + }; - sram_c1: sram@1a00000 { -@@ -918,6 +990,147 @@ ohci3: usb@5311400 { +@@ -868,6 +959,225 @@ ohci3: usb@5311400 { status = "disabled"; }; + hdmi: hdmi@6000000 { -+ #sound-dai-cells = <0>; + compatible = "allwinner,sun50i-h616-dw-hdmi", + "allwinner,sun50i-h6-dw-hdmi"; + reg = <0x06000000 0x10000>; @@ -237,7 +183,8 @@ index 5c1e2dc77268..564c5853af97 100644 + }; + + tcon_top: tcon-top@6510000 { -+ compatible = "allwinner,sun50i-h6-tcon-top"; ++ compatible = "allwinner,sun50i-h616-tcon-top", ++ "allwinner,sun50i-h6-tcon-top"; + reg = <0x06510000 0x1000>; + clocks = <&ccu CLK_BUS_TCON_TOP>, + <&ccu CLK_TCON_TV0>; @@ -267,9 +214,41 @@ index 5c1e2dc77268..564c5853af97 100644 + #size-cells = <0>; + reg = <1>; + -+ tcon_top_mixer0_out_tcon_tv: endpoint@2 { ++ tcon_top_mixer0_out_tcon_lcd0: endpoint@0 { ++ reg = <0>; ++ remote-endpoint = <&tcon_lcd0_in_tcon_top_mixer0>; ++ }; ++ ++ tcon_top_mixer0_out_tcon_tv0: endpoint@2 { + reg = <2>; -+ remote-endpoint = <&tcon_tv_in_tcon_top_mixer0>; ++ remote-endpoint = <&tcon_tv0_in_tcon_top_mixer0>; ++ }; ++ }; ++ ++ tcon_top_mixer1_in: port@2 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <2>; ++ ++ tcon_top_mixer1_in_mixer1: endpoint@1 { ++ reg = <1>; ++ remote-endpoint = <&mixer1_out_tcon_top_mixer1>; ++ }; ++ }; ++ ++ tcon_top_mixer1_out: port@3 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <3>; ++ ++ tcon_top_mixer1_out_tcon_lcd0: endpoint@0 { ++ reg = <0>; ++ remote-endpoint = <&tcon_lcd0_in_tcon_top_mixer1>; ++ }; ++ ++ tcon_top_mixer1_out_tcon_tv0: endpoint@2 { ++ reg = <2>; ++ remote-endpoint = <&tcon_tv0_in_tcon_top_mixer1>; + }; + }; + @@ -278,9 +257,9 @@ index 5c1e2dc77268..564c5853af97 100644 + #size-cells = <0>; + reg = <4>; + -+ tcon_top_hdmi_in_tcon_tv: endpoint@0 { ++ tcon_top_hdmi_in_tcon_tv0: endpoint@0 { + reg = <0>; -+ remote-endpoint = <&tcon_tv_out_tcon_top>; ++ remote-endpoint = <&tcon_tv0_out_tcon_top>; + }; + }; + @@ -294,9 +273,47 @@ index 5c1e2dc77268..564c5853af97 100644 + }; + }; + -+ tcon_tv: lcd-controller@6515000 { -+ compatible = "allwinner,sun50i-h6-tcon-tv", -+ "allwinner,sun8i-r40-tcon-tv"; ++ tcon_lcd0: lcd-controller@6511000 { ++ compatible = "allwinner,sun50i-h616-tcon-lcd", ++ "allwinner,sun8i-r40-tcon-lcd"; ++ reg = <0x06511000 0x1000>; ++ interrupts = ; ++ clocks = <&ccu CLK_BUS_TCON_LCD0>, <&ccu CLK_TCON_LCD0>; ++ clock-names = "ahb", "tcon-ch0"; ++ clock-output-names = "tcon-data-clock"; ++ #clock-cells = <0>; ++ resets = <&ccu RST_BUS_TCON_LCD0>, <&ccu RST_BUS_LVDS>; ++ reset-names = "lcd", "lvds"; ++ status = "disabled"; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ tcon_lcd0_in: port@0 { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ reg = <0>; ++ ++ tcon_lcd0_in_tcon_top_mixer0: endpoint@0 { ++ reg = <0>; ++ remote-endpoint = <&tcon_top_mixer0_out_tcon_lcd0>; ++ }; ++ ++ tcon_lcd0_in_tcon_top_mixer1: endpoint@1 { ++ reg = <1>; ++ remote-endpoint = <&tcon_top_mixer1_out_tcon_lcd0>; ++ }; ++ }; ++ ++ tcon_lcd0_out: port@1 { ++ reg = <1>; ++ }; ++ }; ++ }; ++ ++ tcon_tv0: lcd-controller@6515000 { ++ compatible = "allwinner,sun50i-h616-tcon-tv"; + reg = <0x06515000 0x1000>; + interrupts = ; + clocks = <&ccu CLK_BUS_TCON_TV0>, @@ -310,22 +327,30 @@ index 5c1e2dc77268..564c5853af97 100644 + #address-cells = <1>; + #size-cells = <0>; + -+ tcon_tv_in: port@0 { ++ tcon_tv0_in: port@0 { ++ #address-cells = <1>; ++ #size-cells = <0>; + reg = <0>; + -+ tcon_tv_in_tcon_top_mixer0: endpoint { -+ remote-endpoint = <&tcon_top_mixer0_out_tcon_tv>; ++ tcon_tv0_in_tcon_top_mixer0: endpoint@0 { ++ reg = <0>; ++ remote-endpoint = <&tcon_top_mixer0_out_tcon_tv0>; ++ }; ++ ++ tcon_tv0_in_tcon_top_mixer1: endpoint@1 { ++ reg = <1>; ++ remote-endpoint = <&tcon_top_mixer1_out_tcon_tv0>; + }; + }; + -+ tcon_tv_out: port@1 { ++ tcon_tv0_out: port@1 { + #address-cells = <1>; + #size-cells = <0>; + reg = <1>; + -+ tcon_tv_out_tcon_top: endpoint@1 { ++ tcon_tv0_out_tcon_top: endpoint@1 { + reg = <1>; -+ remote-endpoint = <&tcon_top_hdmi_in_tcon_tv>; ++ remote-endpoint = <&tcon_top_hdmi_in_tcon_tv0>; + }; + }; + }; @@ -335,5 +360,5 @@ index 5c1e2dc77268..564c5853af97 100644 compatible = "allwinner,sun50i-h616-rtc"; reg = <0x07000000 0x400>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0042-arm64-dts-allwinner-h616-Enable-HDMI-on-several-boar.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0042-arm64-dts-allwinner-h616-Enable-HDMI-on-several-boar.patch new file mode 100644 index 000000000..7cc29ea74 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0042-arm64-dts-allwinner-h616-Enable-HDMI-on-several-boar.patch @@ -0,0 +1,303 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 16 Mar 2025 10:26:29 +0100 +Subject: arm64: dts: allwinner: h616: Enable HDMI on several boards + +Now that H616 display pipeline is added, enable HDMI on several boards. + +Signed-off-by: Jernej Skrabec +--- + arch/arm64/boot/dts/allwinner/sun50i-h313-tanix-tx1.dts | 26 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi | 21 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts | 5 ++ + arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts | 26 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts | 5 ++ + arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts | 26 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h618-yuzukihd-chameleon.dts | 26 ++++++++++ + 7 files changed, 135 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h313-tanix-tx1.dts b/arch/arm64/boot/dts/allwinner/sun50i-h313-tanix-tx1.dts +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h313-tanix-tx1.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h313-tanix-tx1.dts +@@ -26,6 +26,17 @@ chosen { + stdout-path = "serial0:115200n8"; + }; + ++ connector { ++ compatible = "hdmi-connector"; ++ type = "a"; ++ ++ port { ++ hdmi_con_in: endpoint { ++ remote-endpoint = <&hdmi_out_con>; ++ }; ++ }; ++ }; ++ + gpio-keys { + compatible = "gpio-keys"; + +@@ -75,6 +86,10 @@ &cpu0 { + cpu-supply = <®_dcdc2>; + }; + ++&de { ++ status = "okay"; ++}; ++ + &ehci0 { + status = "okay"; + }; +@@ -84,6 +99,17 @@ &gpu { + status = "okay"; + }; + ++&hdmi { ++ hvcc-supply = <®_aldo1>; ++ status = "okay"; ++}; ++ ++&hdmi_out { ++ hdmi_out_con: endpoint { ++ remote-endpoint = <&hdmi_con_in>; ++ }; ++}; ++ + &ir { + status = "okay"; + }; +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero.dtsi +@@ -22,6 +22,17 @@ chosen { + stdout-path = "serial0:115200n8"; + }; + ++ connector { ++ compatible = "hdmi-connector"; ++ type = "d"; ++ ++ port { ++ hdmi_con_in: endpoint { ++ remote-endpoint = <&hdmi_out_con>; ++ }; ++ }; ++ }; ++ + leds { + compatible = "gpio-leds"; + +@@ -64,6 +75,10 @@ &codec { + status = "okay"; + }; + ++&de { ++ status = "okay"; ++}; ++ + &ehci1 { + status = "okay"; + }; +@@ -81,6 +96,12 @@ &gpu { + status = "okay"; + }; + ++&hdmi_out { ++ hdmi_out_con: endpoint { ++ remote-endpoint = <&hdmi_con_in>; ++ }; ++}; ++ + &mdio0 { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-orangepi-zero2.dts +@@ -28,6 +28,11 @@ &gpu { + mali-supply = <®_dcdcc>; + }; + ++&hdmi { ++ hvcc-supply = <®_bldo1>; ++ status = "okay"; ++}; ++ + &mmc0 { + vmmc-supply = <®_dcdce>; + }; +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts +@@ -23,6 +23,17 @@ chosen { + stdout-path = "serial0:115200n8"; + }; + ++ connector { ++ compatible = "hdmi-connector"; ++ type = "a"; ++ ++ port { ++ hdmi_con_in: endpoint { ++ remote-endpoint = <&hdmi_out_con>; ++ }; ++ }; ++ }; ++ + reg_vcc5v: vcc5v { + /* board wide 5V supply directly from the DC input */ + compatible = "regulator-fixed"; +@@ -42,6 +53,10 @@ &cpu0 { + cpu-supply = <®_dcdca>; + }; + ++&de { ++ status = "okay"; ++}; ++ + &ehci0 { + status = "okay"; + }; +@@ -55,6 +70,17 @@ &gpu { + status = "okay"; + }; + ++&hdmi { ++ hvcc-supply = <®_bldo1>; ++ status = "okay"; ++}; ++ ++&hdmi_out { ++ hdmi_out_con: endpoint { ++ remote-endpoint = <&hdmi_con_in>; ++ }; ++}; ++ + &ir { + status = "okay"; + }; +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero3.dts +@@ -31,6 +31,11 @@ &gpu { + mali-supply = <®_dcdc1>; + }; + ++&hdmi { ++ hvcc-supply = <®_aldo1>; ++ status = "okay"; ++}; ++ + &mmc0 { + /* + * The schematic shows the card detect pin wired up to PF6, via an +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts +@@ -24,6 +24,17 @@ chosen { + stdout-path = "serial0:115200n8"; + }; + ++ connector { ++ compatible = "hdmi-connector"; ++ type = "a"; ++ ++ port { ++ hdmi_con_in: endpoint { ++ remote-endpoint = <&hdmi_out_con>; ++ }; ++ }; ++ }; ++ + reg_vcc5v: vcc5v { + /* board wide 5V supply directly from the DC input */ + compatible = "regulator-fixed"; +@@ -61,6 +72,10 @@ &cpu0 { + cpu-supply = <®_dcdc2>; + }; + ++&de { ++ status = "okay"; ++}; ++ + &ehci0 { + status = "okay"; + }; +@@ -74,6 +89,17 @@ &gpu { + status = "okay"; + }; + ++&hdmi { ++ hvcc-supply = <®_aldo1>; ++ status = "okay"; ++}; ++ ++&hdmi_out { ++ hdmi_out_con: endpoint { ++ remote-endpoint = <&hdmi_con_in>; ++ }; ++}; ++ + &ir { + status = "okay"; + }; +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-yuzukihd-chameleon.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-yuzukihd-chameleon.dts +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h618-yuzukihd-chameleon.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-yuzukihd-chameleon.dts +@@ -24,6 +24,17 @@ chosen { + stdout-path = "serial0:115200n8"; + }; + ++ connector { ++ compatible = "hdmi-connector"; ++ type = "a"; ++ ++ port { ++ hdmi_con_in: endpoint { ++ remote-endpoint = <&hdmi_out_con>; ++ }; ++ }; ++ }; ++ + reg_vcc5v: vcc5v { + /* board wide 5V supply directly from the USB-C socket */ + compatible = "regulator-fixed"; +@@ -52,6 +63,10 @@ &cpu0 { + cpu-supply = <®_dcdc2>; + }; + ++&de { ++ status = "okay"; ++}; ++ + &ehci0 { + status = "okay"; + }; +@@ -68,6 +83,17 @@ &ehci3 { + status = "okay"; + }; + ++&hdmi { ++ hvcc-supply = <®_aldo1>; ++ status = "okay"; ++}; ++ ++&hdmi_out { ++ hdmi_out_con: endpoint { ++ remote-endpoint = <&hdmi_con_in>; ++ }; ++}; ++ + &mmc0 { + bus-width = <4>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.drm/0043-T95-broken-CD.patch b/patch/kernel/archive/sunxi-6.18/patches.drm/0043-T95-broken-CD.patch new file mode 100644 index 000000000..be94ef896 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.drm/0043-T95-broken-CD.patch @@ -0,0 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Thu, 2 Oct 2025 18:30:29 +0200 +Subject: T95 broken CD + +Signed-off-by: Jernej Skrabec +--- + arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-x96-mate.dts +@@ -87,7 +87,7 @@ &ir { + + &mmc0 { + vmmc-supply = <®_dcdce>; +- cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ ++ broken-cd; + disable-wp; + bus-width = <4>; + status = "okay"; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.media/dma-sun6i-dma-add-sun50i-h616-support.patch b/patch/kernel/archive/sunxi-6.18/patches.media/dma-sun6i-dma-add-sun50i-h616-support.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.media/dma-sun6i-dma-add-sun50i-h616-support.patch rename to patch/kernel/archive/sunxi-6.18/patches.media/dma-sun6i-dma-add-sun50i-h616-support.patch index 477a21f75..18ae4c26b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.media/dma-sun6i-dma-add-sun50i-h616-support.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.media/dma-sun6i-dma-add-sun50i-h616-support.patch @@ -1,14 +1,14 @@ -From 672717a70d3fa52c55aa222a011d27dff2756787 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: The-going <48602507+The-going@users.noreply.github.com> Date: Mon, 7 Apr 2025 21:32:25 +0300 Subject: dma: sun6i-dma: add sun50i-h616 support --- - drivers/dma/sun6i-dma.c | 23 +++++++++++++++++++++++ + drivers/dma/sun6i-dma.c | 23 ++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c -index 2215ff877bf7..44b7b87ebea9 100644 +index 111111111111..222222222222 100644 --- a/drivers/dma/sun6i-dma.c +++ b/drivers/dma/sun6i-dma.c @@ -1244,6 +1244,28 @@ static struct sun6i_dma_config sun50i_h6_dma_cfg = { @@ -49,5 +49,5 @@ index 2215ff877bf7..44b7b87ebea9 100644 }; MODULE_DEVICE_TABLE(of, sun6i_dma_match); -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.media/media-Add-NV12-and-P010-AFBC-compressed-formats.patch b/patch/kernel/archive/sunxi-6.18/patches.media/media-Add-NV12-and-P010-AFBC-compressed-formats.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.media/media-Add-NV12-and-P010-AFBC-compressed-formats.patch rename to patch/kernel/archive/sunxi-6.18/patches.media/media-Add-NV12-and-P010-AFBC-compressed-formats.patch index 05cef248d..85f6a1b0d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.media/media-Add-NV12-and-P010-AFBC-compressed-formats.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.media/media-Add-NV12-and-P010-AFBC-compressed-formats.patch @@ -1,4 +1,4 @@ -From e43c6b985ac6d4f40a8e15526460c2d201d71407 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sat, 7 Oct 2023 09:43:35 +0200 Subject: media: Add NV12 and P010 AFBC compressed formats @@ -13,10 +13,10 @@ Signed-off-by: Jernej Skrabec 2 files changed, 6 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c -index 650dc1956f73..2e7bd2e89b02 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c -@@ -1552,6 +1552,8 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) +@@ -1555,6 +1555,8 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) case V4L2_PIX_FMT_PISP_COMP2_GBRG: descr = "PiSP 8b GBGB/RGRG mode2 compr"; break; case V4L2_PIX_FMT_PISP_COMP2_BGGR: descr = "PiSP 8b BGBG/GRGR mode2 compr"; break; case V4L2_PIX_FMT_PISP_COMP2_MONO: descr = "PiSP 8b monochrome mode2 compr"; break; @@ -26,7 +26,7 @@ index 650dc1956f73..2e7bd2e89b02 100644 if (fmt->description[0]) return; diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h -index 9e3b366d5fc7..6dccdc678dcf 100644 +index 111111111111..222222222222 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -698,6 +698,10 @@ struct v4l2_pix_format { @@ -41,5 +41,5 @@ index 9e3b366d5fc7..6dccdc678dcf 100644 #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */ #define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G') /* 8 GBGB.. RGRG.. */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.media/media-cedrus-Don-t-CPU-map-source-buffers.patch b/patch/kernel/archive/sunxi-6.18/patches.media/media-cedrus-Don-t-CPU-map-source-buffers.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.media/media-cedrus-Don-t-CPU-map-source-buffers.patch rename to patch/kernel/archive/sunxi-6.18/patches.media/media-cedrus-Don-t-CPU-map-source-buffers.patch index 15649d82c..a4580ff0f 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.media/media-cedrus-Don-t-CPU-map-source-buffers.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.media/media-cedrus-Don-t-CPU-map-source-buffers.patch @@ -1,4 +1,4 @@ -From 80b16fcddf1837c631796c25f3123b7adbbf815a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Tue, 4 Oct 2022 20:36:18 +0200 Subject: media: cedrus: Don't CPU map source buffers @@ -13,10 +13,10 @@ Signed-off-by: Jernej Skrabec 1 file changed, 1 insertion(+) diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c -index 77f78266f406..7f5a6a2363a5 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c -@@ -580,6 +580,7 @@ int cedrus_queue_init(void *priv, struct vb2_queue *src_vq, +@@ -593,6 +593,7 @@ int cedrus_queue_init(void *priv, struct vb2_queue *src_vq, src_vq->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; src_vq->io_modes = VB2_MMAP | VB2_DMABUF; @@ -25,5 +25,5 @@ index 77f78266f406..7f5a6a2363a5 100644 src_vq->buf_struct_size = sizeof(struct cedrus_buffer); src_vq->ops = &cedrus_qops; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.media/media-cedrus-Implement-AFBC-YUV420-formats-for-H265.patch b/patch/kernel/archive/sunxi-6.18/patches.media/media-cedrus-Implement-AFBC-YUV420-formats-for-H265.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.media/media-cedrus-Implement-AFBC-YUV420-formats-for-H265.patch rename to patch/kernel/archive/sunxi-6.18/patches.media/media-cedrus-Implement-AFBC-YUV420-formats-for-H265.patch index e9ca743f9..b8d9ce24d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.media/media-cedrus-Implement-AFBC-YUV420-formats-for-H265.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.media/media-cedrus-Implement-AFBC-YUV420-formats-for-H265.patch @@ -1,4 +1,4 @@ -From 81241983ba12f281a839a530da460088170cca2e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 8 Oct 2023 12:44:59 +0200 Subject: media: cedrus: Implement AFBC YUV420 formats for H265 @@ -10,18 +10,18 @@ Add support for them. Signed-off-by: Jernej Skrabec --- - drivers/staging/media/sunxi/cedrus/cedrus.h | 11 ++++++ - .../staging/media/sunxi/cedrus/cedrus_h265.c | 3 +- - .../staging/media/sunxi/cedrus/cedrus_hw.c | 16 +++++++++ - .../staging/media/sunxi/cedrus/cedrus_regs.h | 6 ++++ - .../staging/media/sunxi/cedrus/cedrus_video.c | 36 +++++++++++++++++++ + drivers/staging/media/sunxi/cedrus/cedrus.h | 11 +++ + drivers/staging/media/sunxi/cedrus/cedrus_h265.c | 3 +- + drivers/staging/media/sunxi/cedrus/cedrus_hw.c | 16 +++++ + drivers/staging/media/sunxi/cedrus/cedrus_regs.h | 6 ++ + drivers/staging/media/sunxi/cedrus/cedrus_video.c | 36 ++++++++++ 5 files changed, 71 insertions(+), 1 deletion(-) diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.h b/drivers/staging/media/sunxi/cedrus/cedrus.h -index 522c184e2afc..c7ec4dee8630 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus.h +++ b/drivers/staging/media/sunxi/cedrus/cedrus.h -@@ -268,6 +268,17 @@ cedrus_is_capable(struct cedrus_ctx *ctx, unsigned int capabilities) +@@ -273,6 +273,17 @@ cedrus_is_capable(struct cedrus_ctx *ctx, unsigned int capabilities) return (ctx->dev->capabilities & capabilities) == capabilities; } @@ -40,7 +40,7 @@ index 522c184e2afc..c7ec4dee8630 100644 u32 cedrus_get_num_of_controls(struct cedrus_ctx *ctx, u32 id); diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c -index 780da4a8b5af..1a7b0600cc51 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c @@ -120,7 +120,8 @@ static void cedrus_h265_frame_info_write_single(struct cedrus_ctx *ctx, @@ -54,7 +54,7 @@ index 780da4a8b5af..1a7b0600cc51 100644 cedrus_h265_frame_info_mv_col_buf_addr(buf, 0), cedrus_h265_frame_info_mv_col_buf_addr(buf, field_pic ? 1 : 0) diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_hw.c b/drivers/staging/media/sunxi/cedrus/cedrus_hw.c -index 32af0e96e762..5d769a124439 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus_hw.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_hw.c @@ -65,6 +65,18 @@ int cedrus_engine_enable(struct cedrus_ctx *ctx) @@ -85,10 +85,10 @@ index 32af0e96e762..5d769a124439 100644 + /* format is already set in cedrus_engine_enable() */ + break; case V4L2_PIX_FMT_NV12: - chroma_size = ALIGN(width, 16) * ALIGN(height, 16) / 2; - + case V4L2_PIX_FMT_NV21: + case V4L2_PIX_FMT_YUV420: diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h -index 05e6cbc548ab..c3dcd93a29eb 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus_regs.h +++ b/drivers/staging/media/sunxi/cedrus/cedrus_regs.h @@ -35,12 +35,18 @@ @@ -111,7 +111,7 @@ index 05e6cbc548ab..c3dcd93a29eb 100644 #define VE_MODE_DEC_H265 (0x04 << 0) #define VE_MODE_DEC_H264 (0x01 << 0) diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c -index 53ec3066274d..99011066e7d3 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c @@ -55,6 +55,22 @@ static struct cedrus_format cedrus_formats[] = { @@ -137,7 +137,7 @@ index 53ec3066274d..99011066e7d3 100644 { .pixelformat = V4L2_PIX_FMT_NV12, .directions = CEDRUS_DECODE_DST, -@@ -160,6 +176,26 @@ void cedrus_prepare_format(struct v4l2_pix_format *pix_fmt) +@@ -173,6 +189,26 @@ void cedrus_prepare_format(struct v4l2_pix_format *pix_fmt) sizeimage += bytesperline * height / 2; break; @@ -165,5 +165,5 @@ index 53ec3066274d..99011066e7d3 100644 pix_fmt->width = width; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.media/media-cedrus-Increase-H6-clock-rate.patch b/patch/kernel/archive/sunxi-6.18/patches.media/media-cedrus-Increase-H6-clock-rate.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.media/media-cedrus-Increase-H6-clock-rate.patch rename to patch/kernel/archive/sunxi-6.18/patches.media/media-cedrus-Increase-H6-clock-rate.patch index 1b6cdd1b8..1b94425c9 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.media/media-cedrus-Increase-H6-clock-rate.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.media/media-cedrus-Increase-H6-clock-rate.patch @@ -1,4 +1,4 @@ -From c0dffc32c3a65a1c25bf04f979faf8b6a82b88f8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Mon, 9 Oct 2023 20:16:27 +0200 Subject: media: cedrus: Increase H6 clock rate @@ -12,10 +12,10 @@ Signed-off-by: Jernej Skrabec 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c -index b91174246e58..08f8d994c99c 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus.c -@@ -648,7 +648,7 @@ static const struct cedrus_variant sun50i_h6_cedrus_variant = { +@@ -646,7 +646,7 @@ static const struct cedrus_variant sun50i_h6_cedrus_variant = { CEDRUS_CAPABILITY_H265_DEC | CEDRUS_CAPABILITY_H265_10_DEC | CEDRUS_CAPABILITY_VP8_DEC, @@ -25,5 +25,5 @@ index b91174246e58..08f8d994c99c 100644 static const struct of_device_id cedrus_dt_match[] = { -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.media/media-cedrus-add-format-filtering-based-on-depth-and-src-format.patch b/patch/kernel/archive/sunxi-6.18/patches.media/media-cedrus-add-format-filtering-based-on-depth-and-src-format.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.media/media-cedrus-add-format-filtering-based-on-depth-and-src-format.patch rename to patch/kernel/archive/sunxi-6.18/patches.media/media-cedrus-add-format-filtering-based-on-depth-and-src-format.patch index 462e3d712..be06b5964 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.media/media-cedrus-add-format-filtering-based-on-depth-and-src-format.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.media/media-cedrus-add-format-filtering-based-on-depth-and-src-format.patch @@ -1,4 +1,4 @@ -From be75f442cae72a4e646e1f5d7374f579ee026c3d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sat, 7 Oct 2023 09:45:25 +0200 Subject: media: cedrus: add format filtering based on depth and src format @@ -15,10 +15,10 @@ Signed-off-by: Jernej Skrabec 2 files changed, 9 insertions(+) diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.c b/drivers/staging/media/sunxi/cedrus/cedrus_video.c -index 7f5a6a2363a5..53ec3066274d 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus_video.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.c -@@ -87,6 +87,13 @@ static struct cedrus_format *cedrus_find_format(struct cedrus_ctx *ctx, +@@ -97,6 +97,13 @@ static struct cedrus_format *cedrus_find_format(struct cedrus_ctx *ctx, !(fmt->directions & directions)) continue; @@ -33,7 +33,7 @@ index 7f5a6a2363a5..53ec3066274d 100644 break; diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_video.h b/drivers/staging/media/sunxi/cedrus/cedrus_video.h -index 8e1afc16a6a1..c8e9909ecdee 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus_video.h +++ b/drivers/staging/media/sunxi/cedrus/cedrus_video.h @@ -20,6 +20,8 @@ struct cedrus_format { @@ -46,5 +46,5 @@ index 8e1afc16a6a1..c8e9909ecdee 100644 extern const struct v4l2_ioctl_ops cedrus_ioctl_ops; -- -2.35.3 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/nfc-pn544-Add-support-for-VBAT-PVDD-regulators.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0001-nfc-pn544-Add-support-for-VBAT-PVDD-regulators.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.megous/nfc-pn544-Add-support-for-VBAT-PVDD-regulators.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0001-nfc-pn544-Add-support-for-VBAT-PVDD-regulators.patch index 5e028cdf9..1e63597bd 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/nfc-pn544-Add-support-for-VBAT-PVDD-regulators.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0001-nfc-pn544-Add-support-for-VBAT-PVDD-regulators.patch @@ -1,4 +1,4 @@ -From efa45d11e0acc23471af017ee59d4e7bd3ed1937 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 10 Nov 2017 14:29:26 +0100 Subject: nfc: pn544: Add support for VBAT/PVDD regulators @@ -7,11 +7,11 @@ Regulators are required, so this can't go into mainline as is. Signed-off-by: Ondrej Jirman --- - drivers/nfc/pn544/i2c.c | 31 +++++++++++++++++++++++++++++-- + drivers/nfc/pn544/i2c.c | 31 +++++++++- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/drivers/nfc/pn544/i2c.c b/drivers/nfc/pn544/i2c.c -index a0dfb3f98d5a..4b980d87f7ae 100644 +index 111111111111..222222222222 100644 --- a/drivers/nfc/pn544/i2c.c +++ b/drivers/nfc/pn544/i2c.c @@ -16,6 +16,7 @@ @@ -102,5 +102,5 @@ index a0dfb3f98d5a..4b980d87f7ae 100644 phy->gpiod_en = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW); if (IS_ERR(phy->gpiod_en)) { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/bluetooth-bcm-Restore-drive_rts_on_open-true-behavior-on-bcm207.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0002-bluetooth-bcm-Restore-drive_rts_on_open-true-behavio.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/bluetooth-bcm-Restore-drive_rts_on_open-true-behavior-on-bcm207.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0002-bluetooth-bcm-Restore-drive_rts_on_open-true-behavio.patch index 83eaa2132..64442ed88 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/bluetooth-bcm-Restore-drive_rts_on_open-true-behavior-on-bcm207.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0002-bluetooth-bcm-Restore-drive_rts_on_open-true-behavio.patch @@ -1,4 +1,4 @@ -From 2301fedd353a65ab03e8ac19b43da8ba8498b437 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 7 Aug 2022 14:28:16 +0200 Subject: bluetooth: bcm: Restore drive_rts_on_open = true behavior on @@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c -index f96617b85d87..81c50df71547 100644 +index 111111111111..222222222222 100644 --- a/drivers/bluetooth/hci_bcm.c +++ b/drivers/bluetooth/hci_bcm.c @@ -1584,8 +1584,13 @@ static struct bcm_device_data cyw55572_device_data = { @@ -31,5 +31,5 @@ index f96617b85d87..81c50df71547 100644 { .compatible = "brcm,bcm4330-bt" }, { .compatible = "brcm,bcm4334-bt" }, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/mmc-add-delay-after-power-class-selection.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0003-mmc-add-delay-after-power-class-selection.patch similarity index 77% rename from patch/kernel/archive/sunxi-6.16/patches.megous/mmc-add-delay-after-power-class-selection.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0003-mmc-add-delay-after-power-class-selection.patch index a5c071f29..1b8725860 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/mmc-add-delay-after-power-class-selection.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0003-mmc-add-delay-after-power-class-selection.patch @@ -1,4 +1,4 @@ -From cc541c517e0dea4d8d362980eff9f3d2283ffbdb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 16 Mar 2018 20:31:55 +0100 Subject: mmc: add delay after power class selection @@ -12,10 +12,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 4 insertions(+) diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c -index 5be9b42d5057..4dcd60dd633c 100644 +index 111111111111..222222222222 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c -@@ -1850,6 +1850,8 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, +@@ -1851,6 +1851,8 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, */ mmc_select_powerclass(card); @@ -24,7 +24,7 @@ index 5be9b42d5057..4dcd60dd633c 100644 /* * Enable HPI feature (if supported) */ -@@ -1868,6 +1870,8 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, +@@ -1869,6 +1871,8 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, } } @@ -34,5 +34,5 @@ index 5be9b42d5057..4dcd60dd633c 100644 * If cache size is higher than 0, this indicates the existence of cache * and it can be turned on. Note that some eMMCs from Micron has been -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-PN544-NFC-support.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Add-PN544-NFC-support.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-PN544-NFC-support.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Add-PN544-NFC-support.patch index 181547e7a..51b84b33b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-PN544-NFC-support.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Add-PN544-NFC-support.patch @@ -1,4 +1,4 @@ -From 8c597603a316edf73fabf320a412b2b636c691cd Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 10 Nov 2017 14:33:28 +0100 Subject: ARM: dts: sun8i-a83t-tbs-a711: Add PN544 NFC support @@ -14,11 +14,11 @@ Interpreting schematics is an art form! :D Signed-off-by: Ondrej Jirman --- - .../boot/dts/allwinner/sun8i-a83t-tbs-a711.dts | 18 +++++++++++++++--- + arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts | 18 ++++++++-- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts -index 43982b106a4d..5cedbe2455db 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts @@ -190,6 +190,16 @@ accelerometer@18 { @@ -62,5 +62,5 @@ index 43982b106a4d..5cedbe2455db 100644 ®_eldo2 { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-powerup-down-support-for-the-3G.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0005-ARM-dts-sun8i-a83t-tbs-a711-Add-powerup-down-support.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-powerup-down-support-for-the-3G.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0005-ARM-dts-sun8i-a83t-tbs-a711-Add-powerup-down-support.patch index a7676d89c..ce789e8ec 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-powerup-down-support-for-the-3G.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0005-ARM-dts-sun8i-a83t-tbs-a711-Add-powerup-down-support.patch @@ -1,12 +1,9 @@ -From 5b1f89dbd335917afc7e2f63467562509eabf4d7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Myl=C3=A8ne=20Josserand?= Date: Thu, 6 Jul 2017 10:57:55 +0200 Subject: ARM: dts: sun8i-a83t-tbs-a711: Add powerup/down support for the 3G modem -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit The modem needs tree gpios to be powered-up: - PL10 = reset @@ -20,13 +17,13 @@ Thanks to that, the modem is powered up: Bus 001 Device 004: ID 19d2:ffeb Signed-off-by: Ondrej Jirman -Signed-off-by: Mylène Josserand +Signed-off-by: Mylene Josserand --- - arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts | 13 ++++++++++++- + arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts | 13 +++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts -index 5cedbe2455db..f7d8e5425233 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts @@ -118,7 +118,7 @@ reg_vmain: reg-vmain { @@ -57,5 +54,5 @@ index 5cedbe2455db..f7d8e5425233 100644 &cpu0 { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to-A83T-untes.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0006-ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to-A83T-untes.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0006-ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to.patch index 04118f18d..7c3f49e32 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to-A83T-untes.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0006-ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to.patch @@ -1,4 +1,4 @@ -From dbfa68bb8bff41a44713e8248f518f045b90f176 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 9 Sep 2019 06:02:10 +0200 Subject: ARM: dts: sun8i-a83t: Add cedrus video codec support to A83T @@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 10 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -index 6f88d8764e6a..e2d64a688db9 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi @@ -441,6 +441,16 @@ syscon: syscon@1c00000 { @@ -33,5 +33,5 @@ index 6f88d8764e6a..e2d64a688db9 100644 compatible = "allwinner,sun8i-a83t-dma"; reg = <0x01c02000 0x1000>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-suni-a83t-Add-i2s0-pins.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0007-ARM-dts-suni-a83t-Add-i2s0-pins.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-suni-a83t-Add-i2s0-pins.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0007-ARM-dts-suni-a83t-Add-i2s0-pins.patch index 3abcd83d3..016a60691 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-suni-a83t-Add-i2s0-pins.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0007-ARM-dts-suni-a83t-Add-i2s0-pins.patch @@ -1,4 +1,4 @@ -From d19697dd4b59d117a79f218bce9d0e0ec909d6e4 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 12 Nov 2017 19:03:39 +0100 Subject: ARM: dts: suni-a83t: Add i2s0 pins @@ -9,7 +9,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -index e2d64a688db9..ccaaa91af9db 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi @@ -829,6 +829,11 @@ spdif_tx_pin: spdif-tx-pin { @@ -25,5 +25,5 @@ index e2d64a688db9..ccaaa91af9db 100644 pins = "PB9", "PB10"; function = "uart0"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-sound-support-via-AC100-codec.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0008-ARM-dts-sun8i-a83t-tbs-a711-Add-sound-support-via-AC.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-sound-support-via-AC100-codec.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0008-ARM-dts-sun8i-a83t-tbs-a711-Add-sound-support-via-AC.patch index f763018ab..f43bbf118 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-sound-support-via-AC100-codec.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0008-ARM-dts-sun8i-a83t-tbs-a711-Add-sound-support-via-AC.patch @@ -1,4 +1,4 @@ -From 28d9bff7bbc1085a8126a9a70d7dfb3b6a62f1b9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 22 Feb 2020 23:40:29 +0100 Subject: ARM: dts: sun8i-a83t-tbs-a711: Add sound support via AC100 codec @@ -7,11 +7,11 @@ Subject: ARM: dts: sun8i-a83t-tbs-a711: Add sound support via AC100 codec Signed-off-by: Ondrej Jirman --- - .../dts/allwinner/sun8i-a83t-tbs-a711.dts | 85 +++++++++++++++++++ + arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts | 85 ++++++++++ 1 file changed, 85 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts -index f7d8e5425233..925891a1d6d9 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts @@ -145,6 +145,74 @@ modem { @@ -127,5 +127,5 @@ index f7d8e5425233..925891a1d6d9 100644 ac100_rtc: rtc { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-regulators-to-the-accelerometer.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0009-ARM-dts-sun8i-a83t-tbs-a711-Add-regulators-to-the-ac.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-regulators-to-the-accelerometer.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0009-ARM-dts-sun8i-a83t-tbs-a711-Add-regulators-to-the-ac.patch index f183934fd..946b7e553 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-regulators-to-the-accelerometer.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0009-ARM-dts-sun8i-a83t-tbs-a711-Add-regulators-to-the-ac.patch @@ -1,4 +1,4 @@ -From d3aafc0e82f025df6608fc273e11287bcaaed7e5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 23 Jun 2020 19:15:37 +0200 Subject: ARM: dts: sun8i-a83t-tbs-a711: Add regulators to the accelerometer @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts -index 925891a1d6d9..ce1a8d98b548 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts @@ -268,6 +268,8 @@ accelerometer@18 { @@ -26,5 +26,5 @@ index 925891a1d6d9..ce1a8d98b548 100644 /* NFC (NPC 100) */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-camera-sensors-HM5065-GC2145.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0010-ARM-dts-sun8i-a83t-tbs-a711-Add-camera-sensors-HM506.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-camera-sensors-HM5065-GC2145.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0010-ARM-dts-sun8i-a83t-tbs-a711-Add-camera-sensors-HM506.patch index 4a8653ebb..b99e7e9f2 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-camera-sensors-HM5065-GC2145.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0010-ARM-dts-sun8i-a83t-tbs-a711-Add-camera-sensors-HM506.patch @@ -1,4 +1,4 @@ -From b4f121b883403a1eacbe797574da04d8b9867075 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 23 Jun 2020 19:43:24 +0200 Subject: ARM: dts: sun8i-a83t-tbs-a711: Add camera sensors (HM5065, GC2145) @@ -25,11 +25,11 @@ This is required by camera sensors that are connected to them. Signed-off-by: Ondrej Jirman --- - .../dts/allwinner/sun8i-a83t-tbs-a711.dts | 101 +++++++++++++++++- + arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts | 101 +++++++++- 1 file changed, 99 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts -index ce1a8d98b548..ba3ea3199c69 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts @@ -70,6 +70,16 @@ backlight: backlight { @@ -176,5 +176,5 @@ index ce1a8d98b548..ba3ea3199c69 100644 regulator-name = "dvdd-csi-f"; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-flash-led-support.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0011-ARM-dts-sun8i-a83t-tbs-a711-Add-flash-led-support.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-flash-led-support.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0011-ARM-dts-sun8i-a83t-tbs-a711-Add-flash-led-support.patch index 53c35e7d7..c78223450 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-flash-led-support.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-6.18/0011-ARM-dts-sun8i-a83t-tbs-a711-Add-flash-led-support.patch @@ -1,4 +1,4 @@ -From 019b5fe6a62f804b0a3c1bc32b014bea4983dc50 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Wed, 8 Nov 2017 21:57:45 +0100 Subject: ARM: dts: sun8i-a83t-tbs-a711: Add flash led support @@ -8,7 +8,7 @@ Subject: ARM: dts: sun8i-a83t-tbs-a711: Add flash led support 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts -index ba3ea3199c69..23eb11e99b98 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts @@ -61,6 +61,15 @@ chosen { @@ -28,5 +28,5 @@ index ba3ea3199c69..23eb11e99b98 100644 compatible = "pwm-backlight"; pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/MAINTAINERS-Add-entry-for-Himax-HM5065.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0001-MAINTAINERS-Add-entry-for-Himax-HM5065.patch similarity index 71% rename from patch/kernel/archive/sunxi-6.16/patches.megous/MAINTAINERS-Add-entry-for-Himax-HM5065.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0001-MAINTAINERS-Add-entry-for-Himax-HM5065.patch index f9247398d..6ba1d0fc8 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/MAINTAINERS-Add-entry-for-Himax-HM5065.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0001-MAINTAINERS-Add-entry-for-Himax-HM5065.patch @@ -1,7 +1,7 @@ -From 2ce741f43a65732bd9078046c272743d06a41701 Mon Sep 17 00:00:00 2001 +From 1ad461d20cc68cb2117c54b72b97f09a5dab1200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 30 Sep 2017 21:31:35 +0200 -Subject: MAINTAINERS: Add entry for Himax HM5065 +Subject: [PATCH 01/12] MAINTAINERS: Add entry for Himax HM5065 Signed-off-by: Ondrej Jirman --- @@ -9,10 +9,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 6 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS -index c0b444e5fd5a..f00104b455d7 100644 +index e8f06145fb54..c2db58ffca32 100644 --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -10810,6 +10810,12 @@ L: linux-kernel@vger.kernel.org +@@ -11171,6 +11171,12 @@ L: linux-kernel@vger.kernel.org S: Maintained F: drivers/misc/hisi_hikey_usb.c @@ -26,5 +26,5 @@ index c0b444e5fd5a..f00104b455d7 100644 M: Job Noorman L: linux-input@vger.kernel.org -- -2.51.0 +2.43.0 diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-media-Add-bindings-for-Himax-HM5065-camera-sensor.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0002-dt-bindings-media-Add-bindings-for-Himax-HM5065-came.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-media-Add-bindings-for-Himax-HM5065-camera-sensor.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0002-dt-bindings-media-Add-bindings-for-Himax-HM5065-came.patch index abc84130f..2085842de 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-media-Add-bindings-for-Himax-HM5065-camera-sensor.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0002-dt-bindings-media-Add-bindings-for-Himax-HM5065-came.patch @@ -1,4 +1,4 @@ -From 34bcb830ea7b7a2a835604050fe3502f29951a9e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 30 Sep 2017 02:30:39 +0200 Subject: dt-bindings: media: Add bindings for Himax HM5065 camera sensor @@ -7,13 +7,12 @@ HM5065 is 5MP CMOS sensor... Signed-off-by: Ondrej Jirman --- - .../devicetree/bindings/media/i2c/hm5065.txt | 49 +++++++++++++++++++ + Documentation/devicetree/bindings/media/i2c/hm5065.txt | 49 ++++++++++ 1 file changed, 49 insertions(+) - create mode 100644 Documentation/devicetree/bindings/media/i2c/hm5065.txt diff --git a/Documentation/devicetree/bindings/media/i2c/hm5065.txt b/Documentation/devicetree/bindings/media/i2c/hm5065.txt new file mode 100644 -index 000000000000..92ba6cac0d2f +index 000000000000..111111111111 --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/hm5065.txt @@ -0,0 +1,49 @@ @@ -67,5 +66,5 @@ index 000000000000..92ba6cac0d2f + }; +}; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/hm5065-yaml-bindings-wip.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0003-hm5065-yaml-bindings-wip.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/hm5065-yaml-bindings-wip.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0003-hm5065-yaml-bindings-wip.patch index 2a5bfd257..24ab2fecb 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/hm5065-yaml-bindings-wip.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0003-hm5065-yaml-bindings-wip.patch @@ -1,16 +1,15 @@ -From a96f8d952aaf4b58aae5b59bf2c41ff5a2944de7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 20 May 2019 17:58:05 +0200 Subject: hm5065: yaml bindings (wip) --- - .../devicetree/bindings/media/i2c/hm5065.yaml | 90 +++++++++++++++++++ + Documentation/devicetree/bindings/media/i2c/hm5065.yaml | 90 ++++++++++ 1 file changed, 90 insertions(+) - create mode 100644 Documentation/devicetree/bindings/media/i2c/hm5065.yaml diff --git a/Documentation/devicetree/bindings/media/i2c/hm5065.yaml b/Documentation/devicetree/bindings/media/i2c/hm5065.yaml new file mode 100644 -index 000000000000..df7a4f514b3f +index 000000000000..111111111111 --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/hm5065.yaml @@ -0,0 +1,90 @@ @@ -105,5 +104,5 @@ index 000000000000..df7a4f514b3f + }; +}; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-hm5065-Add-subdev-driver-for-Himax-HM5065-camera-sensor.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0004-media-hm5065-Add-subdev-driver-for-Himax-HM5065-came.patch similarity index 99% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-hm5065-Add-subdev-driver-for-Himax-HM5065-camera-sensor.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0004-media-hm5065-Add-subdev-driver-for-Himax-HM5065-came.patch index 0468be366..78945e1e3 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-hm5065-Add-subdev-driver-for-Himax-HM5065-camera-sensor.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0004-media-hm5065-Add-subdev-driver-for-Himax-HM5065-came.patch @@ -1,4 +1,4 @@ -From 221ae31ff7197eb341df91ccd829dc0fe222a63f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 30 Sep 2017 02:39:48 +0200 Subject: media: hm5065: Add subdev driver for Himax HM5065 camera sensor @@ -16,15 +16,14 @@ Signed-off-by: Ondrej Jirman --- drivers/media/i2c/Kconfig | 10 + drivers/media/i2c/Makefile | 1 + - drivers/media/i2c/hm5065.c | 2207 ++++++++++++++++++++++++++++++++++++ + drivers/media/i2c/hm5065.c | 2207 ++++++++++ 3 files changed, 2218 insertions(+) - create mode 100644 drivers/media/i2c/hm5065.c diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig -index e68202954a8f..51ac8edd9857 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig -@@ -745,6 +745,16 @@ config VIDEO_VGXY61 +@@ -778,6 +778,16 @@ config VIDEO_VGXY61 source "drivers/media/i2c/ccs/Kconfig" source "drivers/media/i2c/et8ek8/Kconfig" @@ -42,17 +41,17 @@ index e68202954a8f..51ac8edd9857 100644 menu "Camera ISPs" diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile -index 5873d29433ee..69eede2101b9 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile -@@ -162,3 +162,4 @@ obj-$(CONFIG_VIDEO_VP27SMPX) += vp27smpx.o +@@ -165,3 +165,4 @@ obj-$(CONFIG_VIDEO_VP27SMPX) += vp27smpx.o obj-$(CONFIG_VIDEO_VPX3220) += vpx3220.o obj-$(CONFIG_VIDEO_WM8739) += wm8739.o obj-$(CONFIG_VIDEO_WM8775) += wm8775.o +obj-$(CONFIG_VIDEO_HM5065) += hm5065.o diff --git a/drivers/media/i2c/hm5065.c b/drivers/media/i2c/hm5065.c new file mode 100644 -index 000000000000..a3500a4c1441 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/media/i2c/hm5065.c @@ -0,0 +1,2207 @@ @@ -2264,5 +2263,5 @@ index 000000000000..a3500a4c1441 +MODULE_DESCRIPTION("HM5065 Camera Subdev Driver"); +MODULE_LICENSE("GPL"); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-i2c-gc2145-Move-upstream-driver-out-of-the-way.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0005-media-i2c-gc2145-Move-upstream-driver-out-of-the-way.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-i2c-gc2145-Move-upstream-driver-out-of-the-way.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0005-media-i2c-gc2145-Move-upstream-driver-out-of-the-way.patch index 649efb24c..d4d12455d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-i2c-gc2145-Move-upstream-driver-out-of-the-way.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0005-media-i2c-gc2145-Move-upstream-driver-out-of-the-way.patch @@ -1,4 +1,4 @@ -From 04d24d569d041161f44cde6acff2999fd9b73fae Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 13 Jan 2024 21:00:27 +0100 Subject: media: i2c: gc2145: Move upstream driver out of the way @@ -12,13 +12,12 @@ Signed-off-by: Ondrej Jirman drivers/media/i2c/Makefile | 2 +- drivers/media/i2c/{gc2145.c => gc2145-mipi.c} | 0 3 files changed, 3 insertions(+), 3 deletions(-) - rename drivers/media/i2c/{gc2145.c => gc2145-mipi.c} (100%) diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig -index 51ac8edd9857..a32b6c148e9f 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig -@@ -90,9 +90,9 @@ config VIDEO_GC08A3 +@@ -100,9 +100,9 @@ config VIDEO_GC08A3 To compile this driver as a module, choose M here: the module will be called gc08a3. @@ -31,11 +30,11 @@ index 51ac8edd9857..a32b6c148e9f 100644 This is a V4L2 sensor-level driver for GalaxyCore GC2145 2 Mpixel camera. diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile -index 69eede2101b9..c428378924a3 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile -@@ -40,7 +40,7 @@ obj-$(CONFIG_VIDEO_ET8EK8) += et8ek8/ - obj-$(CONFIG_VIDEO_GC0308) += gc0308.o +@@ -41,7 +41,7 @@ obj-$(CONFIG_VIDEO_GC0308) += gc0308.o + obj-$(CONFIG_VIDEO_GC0310) += gc0310.o obj-$(CONFIG_VIDEO_GC05A2) += gc05a2.o obj-$(CONFIG_VIDEO_GC08A3) += gc08a3.o -obj-$(CONFIG_VIDEO_GC2145) += gc2145.o @@ -48,5 +47,5 @@ similarity index 100% rename from drivers/media/i2c/gc2145.c rename to drivers/media/i2c/gc2145-mipi.c -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-Galaxycore-camera-module-driver.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0006-media-gc2145-Galaxycore-camera-module-driver.patch similarity index 99% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-Galaxycore-camera-module-driver.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0006-media-gc2145-Galaxycore-camera-module-driver.patch index 5d7fe8e46..afefa2650 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-Galaxycore-camera-module-driver.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0006-media-gc2145-Galaxycore-camera-module-driver.patch @@ -1,4 +1,4 @@ -From d7b8e4fcb6bec026c30eadf8c6d8e76bbcc2883a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 23 Jun 2020 19:51:18 +0200 Subject: media: gc2145: Galaxycore camera module driver @@ -9,15 +9,14 @@ Signed-off-by: Ondrej Jirman --- drivers/media/i2c/Kconfig | 10 + drivers/media/i2c/Makefile | 1 + - drivers/media/i2c/gc2145.c | 2252 ++++++++++++++++++++++++++++++++++++ + drivers/media/i2c/gc2145.c | 2252 ++++++++++ 3 files changed, 2263 insertions(+) - create mode 100644 drivers/media/i2c/gc2145.c diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig -index a32b6c148e9f..988bf3abaec1 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig -@@ -755,6 +755,16 @@ config VIDEO_HM5065 +@@ -788,6 +788,16 @@ config VIDEO_HM5065 This is a V4L2 sensor-level driver for Himax HM5065 5 Mpixel camera. @@ -35,17 +34,17 @@ index a32b6c148e9f..988bf3abaec1 100644 menu "Camera ISPs" diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile -index c428378924a3..bace20fd6e13 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile -@@ -163,3 +163,4 @@ obj-$(CONFIG_VIDEO_VPX3220) += vpx3220.o +@@ -166,3 +166,4 @@ obj-$(CONFIG_VIDEO_VPX3220) += vpx3220.o obj-$(CONFIG_VIDEO_WM8739) += wm8739.o obj-$(CONFIG_VIDEO_WM8775) += wm8775.o obj-$(CONFIG_VIDEO_HM5065) += hm5065.o +obj-$(CONFIG_VIDEO_GC2145) += gc2145.o diff --git a/drivers/media/i2c/gc2145.c b/drivers/media/i2c/gc2145.c new file mode 100644 -index 000000000000..cc85ac772d5a +index 000000000000..111111111111 --- /dev/null +++ b/drivers/media/i2c/gc2145.c @@ -0,0 +1,2252 @@ @@ -2302,5 +2301,5 @@ index 000000000000..cc85ac772d5a +MODULE_DESCRIPTION("GC2145 Camera Subdev Driver"); +MODULE_LICENSE("GPL"); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-Added-BGGR-bayer-mode.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0007-media-gc2145-Added-BGGR-bayer-mode.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-Added-BGGR-bayer-mode.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0007-media-gc2145-Added-BGGR-bayer-mode.patch index 5041b0bfe..02b641904 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-Added-BGGR-bayer-mode.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0007-media-gc2145-Added-BGGR-bayer-mode.patch @@ -1,4 +1,4 @@ -From b1451189507e0d1d0d425f1fa4477e9869c8dd00 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Martijn Braam Date: Fri, 4 Sep 2020 17:35:39 +0200 Subject: media: gc2145: Added BGGR bayer mode @@ -10,7 +10,7 @@ in v4l, mostly because they're mirrored. 1 file changed, 5 insertions(+) diff --git a/drivers/media/i2c/gc2145.c b/drivers/media/i2c/gc2145.c -index cc85ac772d5a..7539b122eeef 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/gc2145.c +++ b/drivers/media/i2c/gc2145.c @@ -187,6 +187,11 @@ static const struct gc2145_pixfmt gc2145_formats[] = { @@ -26,5 +26,5 @@ index cc85ac772d5a..7539b122eeef 100644 static const struct gc2145_pixfmt *gc2145_find_format(u32 code) -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-Disable-debug-output.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0008-media-gc2145-Disable-debug-output.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-Disable-debug-output.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0008-media-gc2145-Disable-debug-output.patch index 1da1d9efb..fb8be19f5 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-Disable-debug-output.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0008-media-gc2145-Disable-debug-output.patch @@ -1,4 +1,4 @@ -From aa006146fa6fab6e5990824db17a335624414925 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Wed, 27 Oct 2021 17:22:51 +0200 Subject: media: gc2145: Disable debug output @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/gc2145.c b/drivers/media/i2c/gc2145.c -index 7539b122eeef..df15b72651e2 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/gc2145.c +++ b/drivers/media/i2c/gc2145.c @@ -8,7 +8,7 @@ @@ -33,5 +33,5 @@ index 7539b122eeef..df15b72651e2 100644 } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-Add-PIXEL_RATE-HBLANK-and-VBLANK-controls.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0009-media-gc2145-Add-PIXEL_RATE-HBLANK-and-VBLANK-contro.patch similarity index 98% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-Add-PIXEL_RATE-HBLANK-and-VBLANK-controls.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0009-media-gc2145-Add-PIXEL_RATE-HBLANK-and-VBLANK-contro.patch index 55ba4a484..dc767de75 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-Add-PIXEL_RATE-HBLANK-and-VBLANK-controls.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0009-media-gc2145-Add-PIXEL_RATE-HBLANK-and-VBLANK-contro.patch @@ -1,14 +1,14 @@ -From 385d1b0778f7dd86842459c02a5702330371382b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Benjamin Schaaf Date: Mon, 22 Nov 2021 23:38:26 +1100 Subject: media: gc2145: Add PIXEL_RATE, HBLANK and VBLANK controls --- - drivers/media/i2c/gc2145.c | 469 ++++++++++++++++++++----------------- + drivers/media/i2c/gc2145.c | 469 +++++----- 1 file changed, 258 insertions(+), 211 deletions(-) diff --git a/drivers/media/i2c/gc2145.c b/drivers/media/i2c/gc2145.c -index df15b72651e2..749dce832aa0 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/gc2145.c +++ b/drivers/media/i2c/gc2145.c @@ -216,6 +216,9 @@ static const char * const gc2145_supply_name[] = { @@ -545,5 +545,5 @@ index df15b72651e2..749dce832aa0 100644 mutex_unlock(&sensor->lock); return ret; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-implement-system-suspend.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0010-media-gc2145-implement-system-suspend.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-implement-system-suspend.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0010-media-gc2145-implement-system-suspend.patch index 63878c44e..e7c7dea8a 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-implement-system-suspend.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0010-media-gc2145-implement-system-suspend.patch @@ -1,4 +1,4 @@ -From 3f9659775c39e3e333f8b68f3baf1bf2d8c5053a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andrey Skvortsov Date: Mon, 14 Aug 2023 13:27:08 +0300 Subject: media: gc2145: implement system suspend @@ -9,11 +9,11 @@ system. Sometimes system hanged during a resume. Signed-off-by: Andrey Skvortsov --- - drivers/media/i2c/gc2145.c | 37 +++++++++++++++++++++++++++++++++++++ + drivers/media/i2c/gc2145.c | 37 ++++++++++ 1 file changed, 37 insertions(+) diff --git a/drivers/media/i2c/gc2145.c b/drivers/media/i2c/gc2145.c -index 749dce832aa0..429d86bf5f01 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/gc2145.c +++ b/drivers/media/i2c/gc2145.c @@ -2275,6 +2275,42 @@ static void gc2145_remove(struct i2c_client *client) @@ -68,5 +68,5 @@ index 749dce832aa0..429d86bf5f01 100644 .id_table = gc2145_id, .probe = gc2145_probe, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-fix-white-balance-colors.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0011-media-gc2145-fix-white-balance-colors.patch similarity index 97% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-fix-white-balance-colors.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0011-media-gc2145-fix-white-balance-colors.patch index 401f4e348..e0ca3d072 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-gc2145-fix-white-balance-colors.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0011-media-gc2145-fix-white-balance-colors.patch @@ -1,4 +1,4 @@ -From d808d7dd89700ff848065f37bcfeea01b8631bce Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andrey Skvortsov Date: Sat, 26 Aug 2023 12:10:49 +0300 Subject: media: gc2145: fix white-balance colors @@ -20,11 +20,11 @@ rm /usr/share/megapixels/config/pine64,pinephone,front.dcp Signed-off-by: Andrey Skvortsov --- - drivers/media/i2c/gc2145.c | 118 ++++++++++++++++++++++++++++++------- + drivers/media/i2c/gc2145.c | 118 ++++++++-- 1 file changed, 97 insertions(+), 21 deletions(-) diff --git a/drivers/media/i2c/gc2145.c b/drivers/media/i2c/gc2145.c -index 429d86bf5f01..b505b3f07387 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/gc2145.c +++ b/drivers/media/i2c/gc2145.c @@ -1,6 +1,7 @@ @@ -179,5 +179,5 @@ index 429d86bf5f01..b505b3f07387 100644 gc2145_tx_write8(sensor, 0x101, x1 / x_ratio); gc2145_tx_write8(sensor, 0x102, x2 / x_ratio); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-i2c-gc2145-Parse-and-register-properties.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0012-media-i2c-gc2145-Parse-and-register-properties.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-i2c-gc2145-Parse-and-register-properties.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0012-media-i2c-gc2145-Parse-and-register-properties.patch index c6b2ceb77..80b427f66 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-i2c-gc2145-Parse-and-register-properties.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-cams-6.18/0012-media-i2c-gc2145-Parse-and-register-properties.patch @@ -1,4 +1,4 @@ -From 42ac1b1b033051a109ec5f2f796d5c598c266beb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Robert Mader Date: Mon, 6 May 2024 16:36:05 -0700 Subject: media: i2c: gc2145: Parse and register properties @@ -12,7 +12,7 @@ Signed-off-by: Robert Mader 1 file changed, 9 insertions(+) diff --git a/drivers/media/i2c/gc2145.c b/drivers/media/i2c/gc2145.c -index b505b3f07387..d80e457f275b 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/gc2145.c +++ b/drivers/media/i2c/gc2145.c @@ -1272,6 +1272,7 @@ static int gc2145_init_controls(struct gc2145_dev *sensor) @@ -39,5 +39,5 @@ index b505b3f07387..d80e457f275b 100644 /* Test patterns */ ctrls->test_pattern = -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-leds-Add-a-binding-for-AXP813-charger-led.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-chgled-6.18/0001-dt-bindings-leds-Add-a-binding-for-AXP813-charger-le.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-leds-Add-a-binding-for-AXP813-charger-led.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-chgled-6.18/0001-dt-bindings-leds-Add-a-binding-for-AXP813-charger-le.patch index e068bed2e..3ad68ac23 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-leds-Add-a-binding-for-AXP813-charger-led.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-chgled-6.18/0001-dt-bindings-leds-Add-a-binding-for-AXP813-charger-le.patch @@ -1,4 +1,4 @@ -From 059ef07ac6ec8cb6df756402278c0408b0d7cb5d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 23 Feb 2020 13:40:15 +0100 Subject: dt-bindings: leds: Add a binding for AXP813 charger led @@ -7,13 +7,12 @@ The AXP813 PMIC can control one LED. Add binding to represent the LED. Signed-off-by: Ondrej Jirman --- - .../devicetree/bindings/leds/leds-axp20x.yaml | 24 +++++++++++++++++++ + Documentation/devicetree/bindings/leds/leds-axp20x.yaml | 24 ++++++++++ 1 file changed, 24 insertions(+) - create mode 100644 Documentation/devicetree/bindings/leds/leds-axp20x.yaml diff --git a/Documentation/devicetree/bindings/leds/leds-axp20x.yaml b/Documentation/devicetree/bindings/leds/leds-axp20x.yaml new file mode 100644 -index 000000000000..110edae82204 +index 000000000000..111111111111 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/leds-axp20x.yaml @@ -0,0 +1,24 @@ @@ -42,5 +41,5 @@ index 000000000000..110edae82204 +required: + - compatible -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/leds-axp20x-Support-charger-LED-on-AXP20x-like-PMICs.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-chgled-6.18/0002-leds-axp20x-Support-charger-LED-on-AXP20x-like-PMICs.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.megous/leds-axp20x-Support-charger-LED-on-AXP20x-like-PMICs.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-chgled-6.18/0002-leds-axp20x-Support-charger-LED-on-AXP20x-like-PMICs.patch index 05bf96be0..16e669f09 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/leds-axp20x-Support-charger-LED-on-AXP20x-like-PMICs.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-chgled-6.18/0002-leds-axp20x-Support-charger-LED-on-AXP20x-like-PMICs.patch @@ -1,4 +1,4 @@ -From ee885f8f16b9702908a3b0e52f87b060a60311f1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Thu, 4 Feb 2021 00:55:20 +0100 Subject: leds: axp20x: Support charger LED on AXP20x like PMICs @@ -15,15 +15,14 @@ that without changes. Signed-off-by: Ondrej Jirman --- - drivers/leds/Kconfig | 15 +++ + drivers/leds/Kconfig | 15 + drivers/leds/Makefile | 1 + - drivers/leds/leds-axp20x.c | 253 +++++++++++++++++++++++++++++++++++++ + drivers/leds/leds-axp20x.c | 253 ++++++++++ drivers/mfd/axp20x.c | 3 + 4 files changed, 272 insertions(+) - create mode 100644 drivers/leds/leds-axp20x.c diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig -index 6e3dce7e35a4..0bdb955085c6 100644 +index 111111111111..222222222222 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig @@ -1013,6 +1013,14 @@ config LEDS_IP30 @@ -56,7 +55,7 @@ index 6e3dce7e35a4..0bdb955085c6 100644 comment "Flash and Torch LED drivers" diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile -index 9a0333ec1a86..70c736509397 100644 +index 111111111111..222222222222 100644 --- a/drivers/leds/Makefile +++ b/drivers/leds/Makefile @@ -98,6 +98,7 @@ obj-$(CONFIG_LEDS_UPBOARD) += leds-upboard.o @@ -69,7 +68,7 @@ index 9a0333ec1a86..70c736509397 100644 obj-$(CONFIG_LEDS_EXPRESSWIRE) += leds-expresswire.o diff --git a/drivers/leds/leds-axp20x.c b/drivers/leds/leds-axp20x.c new file mode 100644 -index 000000000000..e2877af1032a +index 000000000000..111111111111 --- /dev/null +++ b/drivers/leds/leds-axp20x.c @@ -0,0 +1,253 @@ @@ -327,7 +326,7 @@ index 000000000000..e2877af1032a +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:leds-axp20x"); diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c -index 25c639b348cd..56364d6baa36 100644 +index 111111111111..222222222222 100644 --- a/drivers/mfd/axp20x.c +++ b/drivers/mfd/axp20x.c @@ -1216,6 +1216,9 @@ static const struct mfd_cell axp813_cells[] = { @@ -341,5 +340,5 @@ index 25c639b348cd..56364d6baa36 100644 }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-axp813-Add-charger-LED.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-chgled-6.18/0003-ARM-dts-axp813-Add-charger-LED.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-axp813-Add-charger-LED.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-chgled-6.18/0003-ARM-dts-axp813-Add-charger-LED.patch index a1f4c4861..1a7551266 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-axp813-Add-charger-LED.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-chgled-6.18/0003-ARM-dts-axp813-Add-charger-LED.patch @@ -1,4 +1,4 @@ -From 3b1f07be7287ba414ee6920c1d5a22d200733b37 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 14 Nov 2017 02:47:51 +0100 Subject: ARM: dts: axp813: Add charger LED @@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/axp81x.dtsi b/arch/arm/boot/dts/allwinner/axp81x.dtsi -index ebaf1c3ce8db..a4b1be159b02 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/axp81x.dtsi +++ b/arch/arm/boot/dts/allwinner/axp81x.dtsi @@ -161,4 +161,9 @@ reg_drivevbus: drivevbus { @@ -26,5 +26,5 @@ index ebaf1c3ce8db..a4b1be159b02 100644 + }; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Enable-charging-LED.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-chgled-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Enable-charging-LED.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Enable-charging-LED.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-chgled-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Enable-charging-LED.patch index 1cadc0ba8..cd36c5bf9 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Enable-charging-LED.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-chgled-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Enable-charging-LED.patch @@ -1,4 +1,4 @@ -From 0395da54b8196c91aa132f56e6ab0d0e4abdc589 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 23 Feb 2020 13:21:58 +0100 Subject: ARM: dts: sun8i-a83t-tbs-a711: Enable charging LED @@ -12,10 +12,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts -index 6a90763d8736..6edeaf8ed431 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts -@@ -519,6 +519,10 @@ &battery_power_supply { +@@ -514,6 +514,10 @@ &battery_power_supply { status = "okay"; }; @@ -27,5 +27,5 @@ index 6a90763d8736..6edeaf8ed431 100644 regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-input-gpio-vibrator-Don-t-require-enable-gpios.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-vibrator-6.18/0001-dt-bindings-input-gpio-vibrator-Don-t-require-enable.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-input-gpio-vibrator-Don-t-require-enable-gpios.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-vibrator-6.18/0001-dt-bindings-input-gpio-vibrator-Don-t-require-enable.patch index 5dcc542b4..bd4c92b5e 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-input-gpio-vibrator-Don-t-require-enable-gpios.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-vibrator-6.18/0001-dt-bindings-input-gpio-vibrator-Don-t-require-enable.patch @@ -1,4 +1,4 @@ -From 98a5484643843d4e6fceadc7c8cfa54c512bd7d6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 23 Feb 2020 00:00:00 +0100 Subject: dt-bindings: input: gpio-vibrator: Don't require enable-gpios @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/input/gpio-vibrator.yaml b/Documentation/devicetree/bindings/input/gpio-vibrator.yaml -index 2384465eaa19..082ac06471db 100644 +index 111111111111..222222222222 100644 --- a/Documentation/devicetree/bindings/input/gpio-vibrator.yaml +++ b/Documentation/devicetree/bindings/input/gpio-vibrator.yaml @@ -24,7 +24,12 @@ properties: @@ -31,5 +31,5 @@ index 2384465eaa19..082ac06471db 100644 additionalProperties: false -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-gpio-vibra-Allow-to-use-vcc-supply-alone-to-control-the-v.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-vibrator-6.18/0002-input-gpio-vibra-Allow-to-use-vcc-supply-alone-to-co.patch similarity index 93% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-gpio-vibra-Allow-to-use-vcc-supply-alone-to-control-the-v.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-vibrator-6.18/0002-input-gpio-vibra-Allow-to-use-vcc-supply-alone-to-co.patch index 803df7ff6..268e345cb 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-gpio-vibra-Allow-to-use-vcc-supply-alone-to-control-the-v.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-vibrator-6.18/0002-input-gpio-vibra-Allow-to-use-vcc-supply-alone-to-co.patch @@ -1,4 +1,4 @@ -From 45e08489668b33255f20cdba3b2927fc4cb2c8eb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 8 Sep 2023 01:07:30 +0200 Subject: input: gpio-vibra: Allow to use vcc-supply alone to control the @@ -13,11 +13,11 @@ and bail out in probe in such a case. Signed-off-by: Ondrej Jirman --- - drivers/input/misc/gpio-vibra.c | 25 ++++++++++++++++++------- + drivers/input/misc/gpio-vibra.c | 25 +++++++--- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/drivers/input/misc/gpio-vibra.c b/drivers/input/misc/gpio-vibra.c -index ad44b4d18a2a..de24e28458b0 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/misc/gpio-vibra.c +++ b/drivers/input/misc/gpio-vibra.c @@ -39,7 +39,7 @@ static int gpio_vibrator_start(struct gpio_vibrator *vibrator) @@ -72,5 +72,5 @@ index ad44b4d18a2a..de24e28458b0 100644 vibrator->input->name = "gpio-vibrator"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-support-for-the-vibrator-motor.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-vibrator-6.18/0003-ARM-dts-sun8i-a83t-tbs-a711-Add-support-for-the-vibr.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-support-for-the-vibrator-motor.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-vibrator-6.18/0003-ARM-dts-sun8i-a83t-tbs-a711-Add-support-for-the-vibr.patch index dbb3fbfa8..44a900f2a 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Add-support-for-the-vibrator-motor.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-vibrator-6.18/0003-ARM-dts-sun8i-a83t-tbs-a711-Add-support-for-the-vibr.patch @@ -1,4 +1,4 @@ -From bc4e7ff402a8509cfc6a1c65c434b76adab1b767 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 9 Nov 2019 23:55:48 +0100 Subject: ARM: dts: sun8i-a83t-tbs-a711: Add support for the vibrator motor @@ -19,7 +19,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts -index 23eb11e99b98..81e1271482ed 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts @@ -118,6 +118,11 @@ panel_input: endpoint { @@ -35,5 +35,5 @@ index 23eb11e99b98..81e1271482ed 100644 compatible = "regulator-fixed"; regulator-name = "gps"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Increase-voltage-on-the-vibrator.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-vibrator-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Increase-voltage-on-the-.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Increase-voltage-on-the-vibrator.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a711-vibrator-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Increase-voltage-on-the-.patch index 54621b452..634ec7b89 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Increase-voltage-on-the-vibrator.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a711-vibrator-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Increase-voltage-on-the-.patch @@ -1,4 +1,4 @@ -From 0676a665a91d8b48e0d7042a15809ff8e5378762 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 8 Dec 2017 12:44:22 +0100 Subject: ARM: dts: sun8i-a83t-tbs-a711: Increase voltage on the vibrator @@ -11,10 +11,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts -index 81e1271482ed..6a90763d8736 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts -@@ -650,8 +650,8 @@ ®_ldo_io0 { +@@ -654,8 +654,8 @@ ®_ldo_io0 { }; ®_ldo_io1 { @@ -26,5 +26,5 @@ index 81e1271482ed..6a90763d8736 100644 status = "okay"; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/mailbox-Allow-to-run-mailbox-while-timekeeping-is-suspended.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0001-mailbox-Allow-to-run-mailbox-while-timekeeping-is-su.patch similarity index 81% rename from patch/kernel/archive/sunxi-6.16/patches.megous/mailbox-Allow-to-run-mailbox-while-timekeeping-is-suspended.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0001-mailbox-Allow-to-run-mailbox-while-timekeeping-is-su.patch index d91dd4696..00fe8e417 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/mailbox-Allow-to-run-mailbox-while-timekeeping-is-suspended.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0001-mailbox-Allow-to-run-mailbox-while-timekeeping-is-su.patch @@ -1,4 +1,4 @@ -From ddcf008387a37a5aa76118c77ba3554a3ef3475a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 2 Nov 2019 15:09:01 +0100 Subject: mailbox: Allow to run mailbox while timekeeping is suspended @@ -10,14 +10,14 @@ timekeeping is suspended, instead of using hrtimer. Signed-off-by: Ondrej Jirman --- - drivers/mailbox/mailbox.c | 20 +++++++++++++++++++- + drivers/mailbox/mailbox.c | 20 +++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c -index 5cd8ae222073..022eeaf6cb5a 100644 +index 111111111111..222222222222 100644 --- a/drivers/mailbox/mailbox.c +++ b/drivers/mailbox/mailbox.c -@@ -73,7 +73,7 @@ static void msg_submit(struct mbox_chan *chan) +@@ -74,7 +74,7 @@ static void msg_submit(struct mbox_chan *chan) } } @@ -26,7 +26,7 @@ index 5cd8ae222073..022eeaf6cb5a 100644 /* kick start the timer immediately to avoid delays */ scoped_guard(spinlock_irqsave, &chan->mbox->poll_hrt_lock) hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL); -@@ -256,6 +256,24 @@ int mbox_send_message(struct mbox_chan *chan, void *mssg) +@@ -257,6 +257,24 @@ int mbox_send_message(struct mbox_chan *chan, void *mssg) msg_submit(chan); @@ -52,5 +52,5 @@ index 5cd8ae222073..022eeaf6cb5a 100644 unsigned long wait; int ret; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-sunxi-Add-experimental-suspend-to-memory-implementation-for.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0002-ARM-sunxi-Add-experimental-suspend-to-memory-impleme.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-sunxi-Add-experimental-suspend-to-memory-implementation-for.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0002-ARM-sunxi-Add-experimental-suspend-to-memory-impleme.patch index 08ab1286c..f88f652ac 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-sunxi-Add-experimental-suspend-to-memory-implementation-for.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0002-ARM-sunxi-Add-experimental-suspend-to-memory-impleme.patch @@ -1,4 +1,4 @@ -From 44ed294ee215d25c629c547d7aa767d6d474f658 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Wed, 23 Oct 2019 05:06:29 +0200 Subject: ARM: sunxi: Add experimental suspend to memory implementation for @@ -8,11 +8,11 @@ This just ends with WFI, but all secondary CPUs will be shut down. Signed-off-by: Ondrej Jirman --- - arch/arm/mach-sunxi/sunxi.c | 46 +++++++++++++++++++++++++++++++++++++ + arch/arm/mach-sunxi/sunxi.c | 46 ++++++++++ 1 file changed, 46 insertions(+) diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c -index e1b7945aac99..2d6b7b4528e9 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/mach-sunxi/sunxi.c +++ b/arch/arm/mach-sunxi/sunxi.c @@ -12,10 +12,13 @@ @@ -84,5 +84,5 @@ index e1b7945aac99..2d6b7b4528e9 100644 static const char * const sun9i_board_dt_compat[] = { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-sunxi-sunxi_cpu0_hotplug_support_set-is-not-supported-on-A8.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0003-ARM-sunxi-sunxi_cpu0_hotplug_support_set-is-not-supp.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-sunxi-sunxi_cpu0_hotplug_support_set-is-not-supported-on-A8.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0003-ARM-sunxi-sunxi_cpu0_hotplug_support_set-is-not-supp.patch index 9c6dff72b..a27188f45 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-sunxi-sunxi_cpu0_hotplug_support_set-is-not-supported-on-A8.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0003-ARM-sunxi-sunxi_cpu0_hotplug_support_set-is-not-supp.patch @@ -1,4 +1,4 @@ -From ff4d244c254a1dbca345d139552df8e96a74d76d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Wed, 23 Oct 2019 05:08:04 +0200 Subject: ARM: sunxi: sunxi_cpu0_hotplug_support_set is not supported on A83T @@ -9,7 +9,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 3 insertions(+) diff --git a/arch/arm/mach-sunxi/mc_smp.c b/arch/arm/mach-sunxi/mc_smp.c -index 277f6aa8e6c2..ca237d50db4b 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/mach-sunxi/mc_smp.c +++ b/arch/arm/mach-sunxi/mc_smp.c @@ -146,6 +146,9 @@ static int sunxi_cpu_power_switch_set(unsigned int cpu, unsigned int cluster, @@ -23,5 +23,5 @@ index 277f6aa8e6c2..ca237d50db4b 100644 writel(CPU0_SUPPORT_HOTPLUG_MAGIC0, sram_b_smp_base); writel(CPU0_SUPPORT_HOTPLUG_MAGIC1, sram_b_smp_base + 0x4); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/firmware-scpi-Add-support-for-sending-a-SCPI_CMD_SET_SYS_PWR_ST.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0004-firmware-scpi-Add-support-for-sending-a-SCPI_CMD_SET.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.megous/firmware-scpi-Add-support-for-sending-a-SCPI_CMD_SET_SYS_PWR_ST.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0004-firmware-scpi-Add-support-for-sending-a-SCPI_CMD_SET.patch index c5944a29a..8cefeec21 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/firmware-scpi-Add-support-for-sending-a-SCPI_CMD_SET_SYS_PWR_ST.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0004-firmware-scpi-Add-support-for-sending-a-SCPI_CMD_SET.patch @@ -1,4 +1,4 @@ -From 92e17d313943f86a74fb5348821f2076ed66d58e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 2 Nov 2019 15:14:10 +0100 Subject: firmware: scpi: Add support for sending a SCPI_CMD_SET_SYS_PWR_STATE @@ -22,7 +22,7 @@ Signed-off-by: Ondrej Jirman 2 files changed, 11 insertions(+) diff --git a/drivers/firmware/arm_scpi.c b/drivers/firmware/arm_scpi.c -index 87c323de17b9..0967c9212653 100644 +index 111111111111..222222222222 100644 --- a/drivers/firmware/arm_scpi.c +++ b/drivers/firmware/arm_scpi.c @@ -187,6 +187,7 @@ enum scpi_drv_cmds { @@ -71,7 +71,7 @@ index 87c323de17b9..0967c9212653 100644 struct scpi_ops *get_scpi_ops(void) diff --git a/include/linux/scpi_protocol.h b/include/linux/scpi_protocol.h -index d2176a56828a..6169348c3b72 100644 +index 111111111111..222222222222 100644 --- a/include/linux/scpi_protocol.h +++ b/include/linux/scpi_protocol.h @@ -76,6 +76,7 @@ struct scpi_ops { @@ -83,5 +83,5 @@ index d2176a56828a..6169348c3b72 100644 #if IS_REACHABLE(CONFIG_ARM_SCPI_PROTOCOL) -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-sunxi-Use-SCPI-to-send-suspend-message-to-SCP-on-A83T.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0005-ARM-sunxi-Use-SCPI-to-send-suspend-message-to-SCP-on.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-sunxi-Use-SCPI-to-send-suspend-message-to-SCP-on-A83T.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0005-ARM-sunxi-Use-SCPI-to-send-suspend-message-to-SCP-on.patch index 669799011..04cd3debb 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-sunxi-Use-SCPI-to-send-suspend-message-to-SCP-on-A83T.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0005-ARM-sunxi-Use-SCPI-to-send-suspend-message-to-SCP-on.patch @@ -1,4 +1,4 @@ -From 368c89a83102c2b8e8c6acf72963bfb90caa1d24 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 2 Nov 2019 15:21:04 +0100 Subject: ARM: sunxi: Use SCPI to send suspend message to SCP on A83T @@ -13,11 +13,11 @@ We use undefined value of 3, to mean SUSPEND_SYSTEM. SCP should: Signed-off-by: Ondrej Jirman --- - arch/arm/mach-sunxi/sunxi.c | 15 +++++++++++++-- + arch/arm/mach-sunxi/sunxi.c | 15 ++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c -index 2d6b7b4528e9..d4c25c33455d 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/mach-sunxi/sunxi.c +++ b/arch/arm/mach-sunxi/sunxi.c @@ -14,6 +14,7 @@ @@ -50,5 +50,5 @@ index 2d6b7b4528e9..d4c25c33455d 100644 } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/gnss-ubx-Send-soft-powerdown-message-on-suspend.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0006-gnss-ubx-Send-soft-powerdown-message-on-suspend.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/gnss-ubx-Send-soft-powerdown-message-on-suspend.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0006-gnss-ubx-Send-soft-powerdown-message-on-suspend.patch index 972707af4..6ed9ced3f 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/gnss-ubx-Send-soft-powerdown-message-on-suspend.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0006-gnss-ubx-Send-soft-powerdown-message-on-suspend.patch @@ -1,15 +1,15 @@ -From 06873d985e4124a65dcadedd6aa327a1de69fcb4 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Wed, 23 Oct 2019 05:08:35 +0200 Subject: gnss: ubx: Send soft powerdown message on suspend Signed-off-by: Ondrej Jirman --- - drivers/gnss/ubx.c | 35 +++++++++++++++++++++++++++++++++++ + drivers/gnss/ubx.c | 35 ++++++++++ 1 file changed, 35 insertions(+) diff --git a/drivers/gnss/ubx.c b/drivers/gnss/ubx.c -index 92402f6082c4..fd0ccb054477 100644 +index 111111111111..222222222222 100644 --- a/drivers/gnss/ubx.c +++ b/drivers/gnss/ubx.c @@ -33,11 +33,46 @@ static int ubx_set_active(struct gnss_serial *gserial) @@ -60,5 +60,5 @@ index 92402f6082c4..fd0ccb054477 100644 if (ret) return ret; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-Export-CLK_DRAM-for-devfreq.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0007-clk-sunxi-ng-Export-CLK_DRAM-for-devfreq.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-Export-CLK_DRAM-for-devfreq.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0007-clk-sunxi-ng-Export-CLK_DRAM-for-devfreq.patch index 1c1304b7b..78c82f169 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-Export-CLK_DRAM-for-devfreq.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0007-clk-sunxi-ng-Export-CLK_DRAM-for-devfreq.patch @@ -1,4 +1,4 @@ -From ca6cbf9bc69e68eb939e42baf29d374e176104e8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sat, 3 Apr 2021 17:14:49 -0500 Subject: clk: sunxi-ng: Export CLK_DRAM for devfreq @@ -13,7 +13,7 @@ Signed-off-by: Samuel Holland 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-a83t.h b/drivers/clk/sunxi-ng/ccu-sun8i-a83t.h -index 40e575ba51d2..6c927bc75224 100644 +index 111111111111..222222222222 100644 --- a/drivers/clk/sunxi-ng/ccu-sun8i-a83t.h +++ b/drivers/clk/sunxi-ng/ccu-sun8i-a83t.h @@ -42,12 +42,8 @@ @@ -30,7 +30,7 @@ index 40e575ba51d2..6c927bc75224 100644 #define CLK_NUMBER (CLK_GPU_HYD + 1) diff --git a/include/dt-bindings/clock/sun8i-a83t-ccu.h b/include/dt-bindings/clock/sun8i-a83t-ccu.h -index 78af5085f630..affe1857eb54 100644 +index 111111111111..222222222222 100644 --- a/include/dt-bindings/clock/sun8i-a83t-ccu.h +++ b/include/dt-bindings/clock/sun8i-a83t-ccu.h @@ -116,10 +116,9 @@ @@ -55,5 +55,5 @@ index 78af5085f630..affe1857eb54 100644 #define CLK_MIPI_DSI1 97 #define CLK_GPU_CORE 98 -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-MBUS-node.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0008-ARM-dts-sun8i-a83t-Add-MBUS-node.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-MBUS-node.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0008-ARM-dts-sun8i-a83t-Add-MBUS-node.patch index 5c9076adc..456a7cd5d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-MBUS-node.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/a83t-suspend-6.18/0008-ARM-dts-sun8i-a83t-Add-MBUS-node.patch @@ -1,15 +1,15 @@ -From 7c46723de140a192eb485cfdf9ca4ee467d93b1f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sat, 3 Apr 2021 20:53:26 -0500 Subject: ARM: dts: sun8i: a83t: Add MBUS node Signed-off-by: Samuel Holland --- - arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi | 15 +++++++++++++++ + arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi | 15 ++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -index ccaaa91af9db..53f0d0360f47 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi @@ -1056,6 +1056,21 @@ mdio: mdio { @@ -35,5 +35,5 @@ index ccaaa91af9db..53f0d0360f47 100644 compatible = "arm,gic-400"; reg = <0x01c81000 0x1000>, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/phy-allwinner-sun4i-usb-Add-support-for-usb_role_switch.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0001-phy-allwinner-sun4i-usb-Add-support-for-usb_role_swi.patch similarity index 93% rename from patch/kernel/archive/sunxi-6.16/patches.megous/phy-allwinner-sun4i-usb-Add-support-for-usb_role_switch.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0001-phy-allwinner-sun4i-usb-Add-support-for-usb_role_swi.patch index cc7842ff7..d17d1b40e 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/phy-allwinner-sun4i-usb-Add-support-for-usb_role_switch.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0001-phy-allwinner-sun4i-usb-Add-support-for-usb_role_swi.patch @@ -1,4 +1,4 @@ -From 9384e9542ba3502e2908036be9020bb65ffc3400 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 8 Jun 2020 00:11:06 +0200 Subject: phy: allwinner: sun4i-usb: Add support for usb_role_switch @@ -8,11 +8,11 @@ This allow controlling the usb0 data role from a typec port driver. Signed-off-by: Ondrej Jirman --- drivers/phy/allwinner/Kconfig | 1 + - drivers/phy/allwinner/phy-sun4i-usb.c | 51 ++++++++++++++++++++++++++- + drivers/phy/allwinner/phy-sun4i-usb.c | 51 +++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/drivers/phy/allwinner/Kconfig b/drivers/phy/allwinner/Kconfig -index fb584518b2d0..e93a53139460 100644 +index 111111111111..222222222222 100644 --- a/drivers/phy/allwinner/Kconfig +++ b/drivers/phy/allwinner/Kconfig @@ -12,6 +12,7 @@ config PHY_SUN4I_USB @@ -24,7 +24,7 @@ index fb584518b2d0..e93a53139460 100644 Enable this to support the transceiver that is part of Allwinner sunxi SoCs. diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c -index 29b8fd4b9351..3a42865f9a5b 100644 +index 111111111111..222222222222 100644 --- a/drivers/phy/allwinner/phy-sun4i-usb.c +++ b/drivers/phy/allwinner/phy-sun4i-usb.c @@ -31,6 +31,7 @@ @@ -117,7 +117,7 @@ index 29b8fd4b9351..3a42865f9a5b 100644 data->base = devm_platform_ioremap_resource_byname(pdev, "phy_ctrl"); if (IS_ERR(data->base)) return PTR_ERR(data->base); -@@ -895,6 +927,23 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) +@@ -898,6 +930,23 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) return PTR_ERR(phy_provider); } @@ -142,5 +142,5 @@ index 29b8fd4b9351..3a42865f9a5b 100644 return 0; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/regulator-axp20x-Add-support-for-vin-supply-for-drivevbus.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0002-regulator-axp20x-Add-support-for-vin-supply-for-driv.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/regulator-axp20x-Add-support-for-vin-supply-for-drivevbus.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0002-regulator-axp20x-Add-support-for-vin-supply-for-driv.patch index 3bf781891..a1396fabd 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/regulator-axp20x-Add-support-for-vin-supply-for-drivevbus.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0002-regulator-axp20x-Add-support-for-vin-supply-for-driv.patch @@ -1,4 +1,4 @@ -From 849676865a11e1e2289eeb3be821f9e19ea12c0b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 8 Jun 2020 00:15:04 +0200 Subject: regulator: axp20x: Add support for vin-supply for drivevbus @@ -9,11 +9,11 @@ specify the supply using the vin-supply property. Signed-off-by: Ondrej Jirman --- - drivers/regulator/axp20x-regulator.c | 30 +++++++++++++++++++++++++--- + drivers/regulator/axp20x-regulator.c | 30 +++++++++- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c -index da891415efc0..2c2a0b38f969 100644 +index 111111111111..222222222222 100644 --- a/drivers/regulator/axp20x-regulator.c +++ b/drivers/regulator/axp20x-regulator.c @@ -1728,12 +1728,36 @@ static int axp20x_regulator_probe(struct platform_device *pdev) @@ -57,5 +57,5 @@ index da891415efc0..2c2a0b38f969 100644 dev_err(&pdev->dev, "Failed to register drivevbus\n"); return PTR_ERR(rdev); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/regulator-axp20x-Turn-N_VBUSEN-to-input-on-x-powers-sense-vbus-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0003-regulator-axp20x-Turn-N_VBUSEN-to-input-on-x-powers-.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.megous/regulator-axp20x-Turn-N_VBUSEN-to-input-on-x-powers-sense-vbus-.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0003-regulator-axp20x-Turn-N_VBUSEN-to-input-on-x-powers-.patch index 3d8cc915b..98ef09286 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/regulator-axp20x-Turn-N_VBUSEN-to-input-on-x-powers-sense-vbus-.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0003-regulator-axp20x-Turn-N_VBUSEN-to-input-on-x-powers-.patch @@ -1,4 +1,4 @@ -From f241ce33c2539195316bdb39a4d41b82d500d57f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 9 Jun 2020 22:00:36 +0200 Subject: regulator: axp20x: Turn N_VBUSEN to input on x-powers,sense-vbus-en @@ -10,12 +10,12 @@ not charge when the board is generating VBUS voltage itself. Signed-off-by: Ondrej Jirman --- - .../arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts | 4 ++++ - drivers/regulator/axp20x-regulator.c | 8 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts | 4 ++++ + drivers/regulator/axp20x-regulator.c | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts -index c4e3547e02e9..ec4927dfe9dc 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts @@ -15,6 +15,10 @@ wifi_pwrseq: wifi-pwrseq { @@ -28,9 +28,9 @@ index c4e3547e02e9..ec4927dfe9dc 100644 + &backlight { power-supply = <®_ldo_io0>; - lth-brightness = <10>; + /* diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c -index 2c2a0b38f969..f48d03be42f8 100644 +index 111111111111..222222222222 100644 --- a/drivers/regulator/axp20x-regulator.c +++ b/drivers/regulator/axp20x-regulator.c @@ -1727,6 +1727,14 @@ static int axp20x_regulator_probe(struct platform_device *pdev) @@ -49,5 +49,5 @@ index 2c2a0b38f969..f48d03be42f8 100644 struct regulator_desc *new_desc; bool drivevbus_vin = false; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/drm-bridge-dw-hdmi-Allow-to-accept-HPD-status-from-other-driver.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0004-drm-bridge-dw-hdmi-Allow-to-accept-HPD-status-from-o.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.megous/drm-bridge-dw-hdmi-Allow-to-accept-HPD-status-from-other-driver.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0004-drm-bridge-dw-hdmi-Allow-to-accept-HPD-status-from-o.patch index 2d90ba953..dddcbb8e6 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/drm-bridge-dw-hdmi-Allow-to-accept-HPD-status-from-other-driver.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0004-drm-bridge-dw-hdmi-Allow-to-accept-HPD-status-from-o.patch @@ -1,4 +1,4 @@ -From e805834532c1b09ab54b15717f0a59b26f397cb2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 1 Sep 2023 00:57:04 +0200 Subject: drm: bridge: dw-hdmi: Allow to accept HPD status from other drivers @@ -7,22 +7,22 @@ This change allows other drivers to provide HPD status. Signed-off-by: Ondrej Jirman --- - drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 63 +++++++++++++++++++++-- + drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 63 +++++++++- 1 file changed, 59 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index 8791408dd1ff..ecf274b068d5 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -@@ -9,6 +9,7 @@ - #include +@@ -10,6 +10,7 @@ #include #include + #include +#include #include #include #include -@@ -195,6 +196,8 @@ struct dw_hdmi { +@@ -196,6 +197,8 @@ struct dw_hdmi { hdmi_codec_plugged_cb plugged_cb; struct device *codec_dev; enum drm_connector_status last_connector_result; @@ -31,7 +31,7 @@ index 8791408dd1ff..ecf274b068d5 100644 }; #define HDMI_IH_PHY_STAT0_RX_SENSE \ -@@ -1686,6 +1689,12 @@ static void dw_hdmi_phy_disable(struct dw_hdmi *hdmi, void *data) +@@ -1687,6 +1690,12 @@ static void dw_hdmi_phy_disable(struct dw_hdmi *hdmi, void *data) enum drm_connector_status dw_hdmi_phy_read_hpd(struct dw_hdmi *hdmi, void *data) { @@ -44,7 +44,7 @@ index 8791408dd1ff..ecf274b068d5 100644 return hdmi_readb(hdmi, HDMI_PHY_STAT0) & HDMI_PHY_HPD ? connector_status_connected : connector_status_disconnected; } -@@ -1696,7 +1705,7 @@ void dw_hdmi_phy_update_hpd(struct dw_hdmi *hdmi, void *data, +@@ -1697,7 +1706,7 @@ void dw_hdmi_phy_update_hpd(struct dw_hdmi *hdmi, void *data, { u8 old_mask = hdmi->phy_mask; @@ -53,7 +53,7 @@ index 8791408dd1ff..ecf274b068d5 100644 hdmi->phy_mask |= HDMI_PHY_RX_SENSE; else hdmi->phy_mask &= ~HDMI_PHY_RX_SENSE; -@@ -3128,7 +3137,7 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) +@@ -3130,7 +3139,7 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) status = connector_status_disconnected; } @@ -62,7 +62,7 @@ index 8791408dd1ff..ecf274b068d5 100644 dev_dbg(hdmi->dev, "EVENT=%s\n", status == connector_status_connected ? "plugin" : "plugout"); -@@ -3314,6 +3323,25 @@ bool dw_hdmi_bus_fmt_is_420(struct dw_hdmi *hdmi) +@@ -3316,6 +3325,25 @@ bool dw_hdmi_bus_fmt_is_420(struct dw_hdmi *hdmi) } EXPORT_SYMBOL_GPL(dw_hdmi_bus_fmt_is_420); @@ -88,7 +88,7 @@ index 8791408dd1ff..ecf274b068d5 100644 struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev, const struct dw_hdmi_plat_data *plat_data) { -@@ -3356,15 +3384,38 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev, +@@ -3358,15 +3386,38 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev, if (ret < 0) return ERR_PTR(ret); @@ -129,7 +129,7 @@ index 8791408dd1ff..ecf274b068d5 100644 } else { dev_dbg(hdmi->dev, "no ddc property found\n"); } -@@ -3582,6 +3633,8 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev, +@@ -3584,6 +3635,8 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev, err_res: i2c_put_adapter(hdmi->ddc); @@ -138,7 +138,7 @@ index 8791408dd1ff..ecf274b068d5 100644 return ERR_PTR(ret); } -@@ -3589,6 +3642,8 @@ EXPORT_SYMBOL_GPL(dw_hdmi_probe); +@@ -3591,6 +3644,8 @@ EXPORT_SYMBOL_GPL(dw_hdmi_probe); void dw_hdmi_remove(struct dw_hdmi *hdmi) { @@ -148,5 +148,5 @@ index 8791408dd1ff..ecf274b068d5 100644 if (hdmi->audio && !IS_ERR(hdmi->audio)) -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/drm-bridge-dw-hdmi-Report-HDMI-hotplug-events.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0005-drm-bridge-dw-hdmi-Report-HDMI-hotplug-events.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.megous/drm-bridge-dw-hdmi-Report-HDMI-hotplug-events.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0005-drm-bridge-dw-hdmi-Report-HDMI-hotplug-events.patch index fc7e3fd95..ca3df8748 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/drm-bridge-dw-hdmi-Report-HDMI-hotplug-events.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0005-drm-bridge-dw-hdmi-Report-HDMI-hotplug-events.patch @@ -1,4 +1,4 @@ -From 2e4558922e9a16fa9e7d29b5a912279906dacb74 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 1 Sep 2023 00:59:08 +0200 Subject: drm: bridge: dw-hdmi: Report HDMI hotplug events @@ -9,10 +9,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -index ecf274b068d5..5a68f711895f 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c -@@ -2455,7 +2455,13 @@ static enum drm_connector_status dw_hdmi_detect(struct dw_hdmi *hdmi) +@@ -2456,7 +2456,13 @@ static enum drm_connector_status dw_hdmi_detect(struct dw_hdmi *hdmi) enum drm_connector_status result; result = hdmi->phy.ops->read_hpd(hdmi, hdmi->phy.data); @@ -27,7 +27,7 @@ index ecf274b068d5..5a68f711895f 100644 return result; } -@@ -3138,7 +3144,7 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) +@@ -3140,7 +3146,7 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id) } if (status != connector_status_unknown && !hdmi->extcon) { @@ -37,5 +37,5 @@ index ecf274b068d5..5a68f711895f 100644 "plugin" : "plugout"); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-anx7688-Add-driver-for-ANX7688-USB-C-HDMI-bridge.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0006-usb-typec-anx7688-Add-driver-for-ANX7688-USB-C-HDMI-.patch similarity index 99% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-anx7688-Add-driver-for-ANX7688-USB-C-HDMI-bridge.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0006-usb-typec-anx7688-Add-driver-for-ANX7688-USB-C-HDMI-.patch index 07c203d62..2cbc27bfb 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-anx7688-Add-driver-for-ANX7688-USB-C-HDMI-bridge.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/anx-6.18/0006-usb-typec-anx7688-Add-driver-for-ANX7688-USB-C-HDMI-.patch @@ -1,4 +1,4 @@ -From ce1a3ecc2fa0477b447fad617cf25b94d626a9f2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Thu, 13 Feb 2020 15:37:25 +0100 Subject: usb: typec: anx7688: Add driver for ANX7688 USB-C HDMI bridge @@ -39,12 +39,11 @@ Signed-off-by: Ondrej Jirman --- drivers/usb/typec/Kconfig | 12 + drivers/usb/typec/Makefile | 1 + - drivers/usb/typec/anx7688.c | 2196 +++++++++++++++++++++++++++++++++++ + drivers/usb/typec/anx7688.c | 2196 ++++++++++ 3 files changed, 2209 insertions(+) - create mode 100644 drivers/usb/typec/anx7688.c diff --git a/drivers/usb/typec/Kconfig b/drivers/usb/typec/Kconfig -index 2f80c2792dbd..982b7c444a1f 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/Kconfig +++ b/drivers/usb/typec/Kconfig @@ -52,6 +52,7 @@ source "drivers/usb/typec/ucsi/Kconfig" @@ -74,7 +73,7 @@ index 2f80c2792dbd..982b7c444a1f 100644 tristate "Richtek RT1719 Sink Only Type-C controller driver" depends on USB_ROLE_SWITCH || !USB_ROLE_SWITCH diff --git a/drivers/usb/typec/Makefile b/drivers/usb/typec/Makefile -index 7a368fea61bc..3f8ff94ad294 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/Makefile +++ b/drivers/usb/typec/Makefile @@ -7,6 +7,7 @@ obj-$(CONFIG_TYPEC_TCPM) += tcpm/ @@ -87,7 +86,7 @@ index 7a368fea61bc..3f8ff94ad294 100644 obj-$(CONFIG_TYPEC_RT1719) += rt1719.o diff --git a/drivers/usb/typec/anx7688.c b/drivers/usb/typec/anx7688.c new file mode 100644 -index 000000000000..51a986bdea21 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/usb/typec/anx7688.c @@ -0,0 +1,2196 @@ @@ -2035,7 +2034,7 @@ index 000000000000..51a986bdea21 + return ret; + + anx7688->vbus_in_supply = -+ devm_power_supply_get_by_phandle(dev, "vbus_in-supply"); ++ devm_power_supply_get_by_reference(dev, "vbus_in-supply"); + if (IS_ERR(anx7688->vbus_in_supply)) { + dev_err(dev, "Couldn't get the VBUS power supply\n"); + return PTR_ERR(anx7688->vbus_in_supply); @@ -2288,5 +2287,5 @@ index 000000000000..51a986bdea21 +MODULE_AUTHOR("Ondrej Jirman "); +MODULE_DESCRIPTION("Analogix ANX7688 USB-C DisplayPort bridge"); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/arasan-6.18/0001-sdhci-arasan-Add-runtime-PM-support.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/arasan-6.18/0001-sdhci-arasan-Add-runtime-PM-support.patch new file mode 100644 index 000000000..8d9389f1f --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/arasan-6.18/0001-sdhci-arasan-Add-runtime-PM-support.patch @@ -0,0 +1,155 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sun, 30 Apr 2023 18:35:08 +0200 +Subject: sdhci: arasan: Add runtime PM support + +Add runtime PM support in Arasan SDHCI driver. + +Signed-off-by: Manish Narani +--- + drivers/mmc/host/sdhci-of-arasan.c | 87 +++++++++- + 1 file changed, 85 insertions(+), 2 deletions(-) + +diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c +index 111111111111..222222222222 100644 +--- a/drivers/mmc/host/sdhci-of-arasan.c ++++ b/drivers/mmc/host/sdhci-of-arasan.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -29,6 +30,7 @@ + #include "sdhci-cqhci.h" + #include "sdhci-pltfm.h" + ++#define SDHCI_ARASAN_AUTOSUSPEND_DELAY 2000 /* ms */ + #define SDHCI_ARASAN_VENDOR_REGISTER 0x78 + + #define SDHCI_ARASAN_ITAPDLY_REGISTER 0xF0F8 +@@ -605,6 +607,68 @@ static const struct sdhci_pltfm_data sdhci_arasan_cqe_pdata = { + SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN, + }; + ++static int sdhci_arasan_runtime_suspend(struct device *dev) ++{ ++ struct platform_device *pdev = to_platform_device(dev); ++ struct sdhci_host *host = platform_get_drvdata(pdev); ++ struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); ++ struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); ++ int ret; ++ ++ if (sdhci_arasan->has_cqe) { ++ ret = cqhci_suspend(host->mmc); ++ if (ret) ++ return ret; ++ } ++ ++ sdhci_runtime_suspend_host(host); ++ ++ if (host->tuning_mode != SDHCI_TUNING_MODE_3) ++ mmc_retune_needed(host->mmc); ++ ++ clk_disable(pltfm_host->clk); ++ clk_disable(sdhci_arasan->clk_ahb); ++ ++ return 0; ++} ++ ++static int sdhci_arasan_runtime_resume(struct device *dev) ++{ ++ struct platform_device *pdev = to_platform_device(dev); ++ struct sdhci_host *host = platform_get_drvdata(pdev); ++ struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); ++ struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); ++ int ret; ++ ++ ret = clk_enable(sdhci_arasan->clk_ahb); ++ if (ret) { ++ dev_err(dev, "Cannot enable AHB clock.\n"); ++ return ret; ++ } ++ ++ ret = clk_enable(pltfm_host->clk); ++ if (ret) { ++ dev_err(dev, "Cannot enable SD clock.\n"); ++ goto err_disable_ahb; ++ } ++ ++ sdhci_runtime_resume_host(host, 0); ++ ++ if (sdhci_arasan->has_cqe) { ++ ret = cqhci_resume(host->mmc); ++ if (ret) ++ goto err_disable_all; ++ } ++ ++ return 0; ++ ++err_disable_all: ++ clk_disable(pltfm_host->clk); ++err_disable_ahb: ++ clk_disable(sdhci_arasan->clk_ahb); ++ return ret; ++} ++ + /** + * sdhci_arasan_suspend - Suspend method for the driver + * @dev: Address of the device structure +@@ -699,8 +763,11 @@ static int sdhci_arasan_resume(struct device *dev) + return 0; + } + +-static DEFINE_SIMPLE_DEV_PM_OPS(sdhci_arasan_dev_pm_ops, sdhci_arasan_suspend, +- sdhci_arasan_resume); ++static const struct dev_pm_ops sdhci_arasan_dev_pm_ops = { ++ SET_SYSTEM_SLEEP_PM_OPS(sdhci_arasan_suspend, sdhci_arasan_resume) ++ SET_RUNTIME_PM_OPS(sdhci_arasan_runtime_suspend, ++ sdhci_arasan_runtime_resume, NULL) ++}; + + /** + * sdhci_arasan_sdcardclk_recalc_rate - Return the card clock rate +@@ -2033,13 +2100,25 @@ static int sdhci_arasan_probe(struct platform_device *pdev) + if (of_device_is_compatible(np, "xlnx,versal-net-emmc")) + sdhci_arasan->internal_phy_reg = true; + ++ pm_runtime_get_noresume(&pdev->dev); ++ pm_runtime_set_active(&pdev->dev); ++ pm_runtime_enable(&pdev->dev); ++ pm_runtime_set_autosuspend_delay(&pdev->dev, ++ SDHCI_ARASAN_AUTOSUSPEND_DELAY); ++ pm_runtime_use_autosuspend(&pdev->dev); ++ + ret = sdhci_arasan_add_host(sdhci_arasan); + if (ret) + goto err_add_host; + ++ pm_runtime_put_autosuspend(&pdev->dev); ++ + return 0; + + err_add_host: ++ pm_runtime_disable(&pdev->dev); ++ pm_runtime_set_suspended(&pdev->dev); ++ pm_runtime_put_noidle(&pdev->dev); + if (!IS_ERR(sdhci_arasan->phy)) + phy_exit(sdhci_arasan->phy); + unreg_clk: +@@ -2065,6 +2144,10 @@ static void sdhci_arasan_remove(struct platform_device *pdev) + phy_exit(sdhci_arasan->phy); + } + ++ pm_runtime_get_sync(&pdev->dev); ++ pm_runtime_disable(&pdev->dev); ++ pm_runtime_put_noidle(&pdev->dev); ++ + sdhci_arasan_unregister_sdclk(&pdev->dev); + + sdhci_pltfm_remove(pdev); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-sound-Add-jack-type-property-to-sun8i-a33-codec.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0001-dt-bindings-sound-Add-jack-type-property-to-sun8i-a3.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-sound-Add-jack-type-property-to-sun8i-a33-codec.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0001-dt-bindings-sound-Add-jack-type-property-to-sun8i-a3.patch index afc3cf53e..7f9222aa9 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-sound-Add-jack-type-property-to-sun8i-a33-codec.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0001-dt-bindings-sound-Add-jack-type-property-to-sun8i-a3.patch @@ -1,4 +1,4 @@ -From 901accbff22299264f49c6209ac5e7e73e2e875a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 23 Feb 2024 00:47:12 +0100 Subject: dt-bindings: sound: Add jack-type property to sun8i-a33-codec @@ -8,11 +8,11 @@ on the board. Add proprty to describe the type of connector. Signed-off-by: Ondrej Jirman --- - .../bindings/sound/allwinner,sun8i-a33-codec.yaml | 9 +++++++++ + Documentation/devicetree/bindings/sound/allwinner,sun8i-a33-codec.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/allwinner,sun8i-a33-codec.yaml b/Documentation/devicetree/bindings/sound/allwinner,sun8i-a33-codec.yaml -index 63eadc4200ac..399fc00ad3f4 100644 +index 111111111111..222222222222 100644 --- a/Documentation/devicetree/bindings/sound/allwinner,sun8i-a33-codec.yaml +++ b/Documentation/devicetree/bindings/sound/allwinner,sun8i-a33-codec.yaml @@ -44,6 +44,15 @@ properties: @@ -32,5 +32,5 @@ index 63eadc4200ac..399fc00ad3f4 100644 - "#sound-dai-cells" - compatible -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-sun8i-codec-Allow-the-jack-type-to-be-set-via-device-tree.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0002-ASoC-sun8i-codec-Allow-the-jack-type-to-be-set-via-d.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-sun8i-codec-Allow-the-jack-type-to-be-set-via-device-tree.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0002-ASoC-sun8i-codec-Allow-the-jack-type-to-be-set-via-d.patch index 29d053659..e2c1e358d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-sun8i-codec-Allow-the-jack-type-to-be-set-via-device-tree.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0002-ASoC-sun8i-codec-Allow-the-jack-type-to-be-set-via-d.patch @@ -1,4 +1,4 @@ -From ac76eb562601f29b0bca131770d85936a398fac3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 2 Mar 2024 14:55:31 +0100 Subject: ASoC: sun8i-codec: Allow the jack type to be set via device tree @@ -8,11 +8,11 @@ simple-sound-card. Signed-off-by: Ondrej Jirman --- - sound/soc/sunxi/sun8i-codec.c | 13 +++++++++++++ + sound/soc/sunxi/sun8i-codec.c | 13 ++++++++++ 1 file changed, 13 insertions(+) diff --git a/sound/soc/sunxi/sun8i-codec.c b/sound/soc/sunxi/sun8i-codec.c -index 7b3496caa31e..44ed07595c87 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/sunxi/sun8i-codec.c +++ b/sound/soc/sunxi/sun8i-codec.c @@ -1560,6 +1560,18 @@ static void sun8i_codec_disable_jack_detect(struct snd_soc_component *component) @@ -43,5 +43,5 @@ index 7b3496caa31e..44ed07595c87 100644 .idle_bias_on = 1, .suspend_bias_off = 1, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-sun8i-codec-define-button-keycodes.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0003-ASoC-sun8i-codec-define-button-keycodes.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-sun8i-codec-define-button-keycodes.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0003-ASoC-sun8i-codec-define-button-keycodes.patch index 862ce1d51..b811f2053 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-sun8i-codec-define-button-keycodes.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0003-ASoC-sun8i-codec-define-button-keycodes.patch @@ -1,4 +1,4 @@ -From 4034f4e90fe681ff4645fe724424ae48f3909e19 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 23 Feb 2024 01:58:40 +0100 Subject: ASoC: sun8i-codec: define button keycodes @@ -9,7 +9,7 @@ This is likely not upstreamable, but simple. :) 1 file changed, 7 insertions(+) diff --git a/sound/soc/sunxi/sun8i-codec.c b/sound/soc/sunxi/sun8i-codec.c -index 44ed07595c87..9bf5dab1b803 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/sunxi/sun8i-codec.c +++ b/sound/soc/sunxi/sun8i-codec.c @@ -1538,6 +1538,13 @@ static int sun8i_codec_enable_jack_detect(struct snd_soc_component *component, @@ -27,5 +27,5 @@ index 44ed07595c87..9bf5dab1b803 100644 } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-sun8i-codec-Add-debug-output-for-jack-detection.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0004-ASoC-sun8i-codec-Add-debug-output-for-jack-detection.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-sun8i-codec-Add-debug-output-for-jack-detection.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0004-ASoC-sun8i-codec-Add-debug-output-for-jack-detection.patch index e060d222b..8fc8028ee 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-sun8i-codec-Add-debug-output-for-jack-detection.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0004-ASoC-sun8i-codec-Add-debug-output-for-jack-detection.patch @@ -1,15 +1,15 @@ -From ed4d0a091a27c0cf4df577178de481f0b7f534db Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 17 Feb 2024 01:13:39 +0100 Subject: ASoC: sun8i-codec: Add debug output for jack detection Signed-off-by: Ondrej Jirman --- - sound/soc/sunxi/sun8i-codec.c | 32 +++++++++++++++++++++++++++++++- + sound/soc/sunxi/sun8i-codec.c | 32 +++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/sound/soc/sunxi/sun8i-codec.c b/sound/soc/sunxi/sun8i-codec.c -index 9bf5dab1b803..3dcaf4267e41 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/sunxi/sun8i-codec.c +++ b/sound/soc/sunxi/sun8i-codec.c @@ -9,6 +9,8 @@ @@ -125,5 +125,5 @@ index 9bf5dab1b803..3dcaf4267e41 100644 scodec->jack_last_sample = value; } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-sun8i-codec-Set-jack_type-from-DT-in-probe.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0005-ASoC-sun8i-codec-Set-jack_type-from-DT-in-probe.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-sun8i-codec-Set-jack_type-from-DT-in-probe.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0005-ASoC-sun8i-codec-Set-jack_type-from-DT-in-probe.patch index d0d3c002b..6127e9150 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-sun8i-codec-Set-jack_type-from-DT-in-probe.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0005-ASoC-sun8i-codec-Set-jack_type-from-DT-in-probe.patch @@ -1,4 +1,4 @@ -From 282f0e41b191b88d286081221ac40120252fb41f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 26 Mar 2024 17:38:38 +0100 Subject: ASoC: sun8i-codec: Set jack_type from DT in probe @@ -7,11 +7,11 @@ Jack type needs to be set in probe so that it can be used later on. Signed-off-by: Ondrej Jirman --- - sound/soc/sunxi/sun8i-codec.c | 14 +++++++------- + sound/soc/sunxi/sun8i-codec.c | 14 +++++----- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/sound/soc/sunxi/sun8i-codec.c b/sound/soc/sunxi/sun8i-codec.c -index 3dcaf4267e41..222eac963759 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/sunxi/sun8i-codec.c +++ b/sound/soc/sunxi/sun8i-codec.c @@ -1599,14 +1599,9 @@ static void sun8i_codec_disable_jack_detect(struct snd_soc_component *component) @@ -44,5 +44,5 @@ index 3dcaf4267e41..222eac963759 100644 scodec->clk_bus = devm_clk_get(&pdev->dev, "bus"); if (IS_ERR(scodec->clk_bus)) { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-simple-card-Allow-to-define-pins-for-aux-jack-devices.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0006-ASoC-simple-card-Allow-to-define-pins-for-aux-jack-d.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-simple-card-Allow-to-define-pins-for-aux-jack-devices.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0006-ASoC-simple-card-Allow-to-define-pins-for-aux-jack-d.patch index 360a9ac54..a43f64418 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-simple-card-Allow-to-define-pins-for-aux-jack-devices.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0006-ASoC-simple-card-Allow-to-define-pins-for-aux-jack-d.patch @@ -1,4 +1,4 @@ -From 8977f7a800aeac075fed063786f6f46e92a593eb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 14 May 2024 10:46:10 +0200 Subject: ASoC: simple-card: Allow to define pins for aux jack devices @@ -8,11 +8,11 @@ before upstreaming jack detection to codec driver. Signed-off-by: Ondrej Jirman --- - sound/soc/generic/simple-card-utils.c | 40 +++++++++++++++++++++++++++ + sound/soc/generic/simple-card-utils.c | 40 ++++++++++ 1 file changed, 40 insertions(+) diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c -index 355f7ec8943c..5de2e0612a87 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c @@ -879,6 +879,46 @@ int simple_util_init_aux_jacks(struct simple_util_priv *priv, char *prefix) @@ -63,5 +63,5 @@ index 355f7ec8943c..5de2e0612a87 100644 return 0; } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-a64-Increase-PLL_AUDIO-base-frequency.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0007-clk-sunxi-ng-a64-Increase-PLL_AUDIO-base-frequency.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-a64-Increase-PLL_AUDIO-base-frequency.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0007-clk-sunxi-ng-a64-Increase-PLL_AUDIO-base-frequency.patch index 98a73df6d..69f01daaf 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-a64-Increase-PLL_AUDIO-base-frequency.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0007-clk-sunxi-ng-a64-Increase-PLL_AUDIO-base-frequency.patch @@ -1,15 +1,15 @@ -From d2cd639991705e5180a9cb8566a08ea8d429087d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sun, 19 Jul 2020 17:10:15 -0500 Subject: clk: sunxi-ng: a64: Increase PLL_AUDIO base frequency Signed-off-by: Samuel Holland --- - drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 41 +++++++++++++++++++++------ + drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 41 ++++++++-- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c -index ba1ad267f123..4b3068bdfdf2 100644 +index 111111111111..222222222222 100644 --- a/drivers/clk/sunxi-ng/ccu-sun50i-a64.c +++ b/drivers/clk/sunxi-ng/ccu-sun50i-a64.c @@ -47,15 +47,35 @@ static struct ccu_nkmp pll_cpux_clk = { @@ -83,5 +83,5 @@ index ba1ad267f123..4b3068bdfdf2 100644 writel(0x515, reg + SUN50I_A64_PLL_MIPI_REG); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-mfd-Add-codec-related-properties-to-AC100-PMIC.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0008-dt-bindings-mfd-Add-codec-related-properties-to-AC10.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-mfd-Add-codec-related-properties-to-AC100-PMIC.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0008-dt-bindings-mfd-Add-codec-related-properties-to-AC10.patch index 45397c4fe..1944a1e81 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-mfd-Add-codec-related-properties-to-AC100-PMIC.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0008-dt-bindings-mfd-Add-codec-related-properties-to-AC10.patch @@ -1,4 +1,4 @@ -From 6745aeb621323a7d0b1022730c8ab32e4203520a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 17 Feb 2024 02:01:49 +0100 Subject: dt: bindings: mfd: Add codec related properties to AC100 PMIC @@ -9,11 +9,11 @@ the codec, and the node for analog part of the codec. Signed-off-by: Ondrej Jirman --- - .../bindings/mfd/x-powers,ac100.yaml | 38 +++++++++++++++++++ + Documentation/devicetree/bindings/mfd/x-powers,ac100.yaml | 38 ++++++++++ 1 file changed, 38 insertions(+) diff --git a/Documentation/devicetree/bindings/mfd/x-powers,ac100.yaml b/Documentation/devicetree/bindings/mfd/x-powers,ac100.yaml -index f3d8394b27e7..59ad898fbf85 100644 +index 111111111111..222222222222 100644 --- a/Documentation/devicetree/bindings/mfd/x-powers,ac100.yaml +++ b/Documentation/devicetree/bindings/mfd/x-powers,ac100.yaml @@ -34,11 +34,39 @@ properties: @@ -80,5 +80,5 @@ index f3d8394b27e7..59ad898fbf85 100644 ac100_rtc: rtc { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/sound-soc-ac100-codec-Support-analog-part-of-X-Powers-AC100-cod.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0009-sound-soc-ac100-codec-Support-analog-part-of-X-Power.patch similarity index 99% rename from patch/kernel/archive/sunxi-6.16/patches.megous/sound-soc-ac100-codec-Support-analog-part-of-X-Powers-AC100-cod.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0009-sound-soc-ac100-codec-Support-analog-part-of-X-Power.patch index 04891678a..820af02a8 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/sound-soc-ac100-codec-Support-analog-part-of-X-Powers-AC100-cod.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0009-sound-soc-ac100-codec-Support-analog-part-of-X-Power.patch @@ -1,4 +1,4 @@ -From c0952f0527cadd6d0631f88e72d7e82f3e1c4c31 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 12 Nov 2017 23:09:14 +0100 Subject: sound: soc: ac100-codec: Support analog part of X-Powers AC100 codec @@ -11,12 +11,11 @@ Signed-off-by: Ondrej Jirman include/linux/mfd/ac100.h | 1 + sound/soc/sunxi/Kconfig | 11 + sound/soc/sunxi/Makefile | 1 + - sound/soc/sunxi/ac100-codec.c | 990 ++++++++++++++++++++++++++++++++++ + sound/soc/sunxi/ac100-codec.c | 990 ++++++++++ 5 files changed, 1006 insertions(+) - create mode 100644 sound/soc/sunxi/ac100-codec.c diff --git a/drivers/mfd/ac100.c b/drivers/mfd/ac100.c -index 8f47c392cbd1..6cc9b1035642 100644 +index 111111111111..222222222222 100644 --- a/drivers/mfd/ac100.c +++ b/drivers/mfd/ac100.c @@ -79,6 +79,9 @@ static struct mfd_cell ac100_cells[] = { @@ -30,7 +29,7 @@ index 8f47c392cbd1..6cc9b1035642 100644 .name = "ac100-rtc", .of_compatible = "x-powers,ac100-rtc", diff --git a/include/linux/mfd/ac100.h b/include/linux/mfd/ac100.h -index 88005c3a1b2d..621bd10b79b2 100644 +index 111111111111..222222222222 100644 --- a/include/linux/mfd/ac100.h +++ b/include/linux/mfd/ac100.h @@ -80,6 +80,7 @@ struct ac100_dev { @@ -42,7 +41,7 @@ index 88005c3a1b2d..621bd10b79b2 100644 /* ADC digital audio processing (high pass filter & auto gain control */ #define AC100_ADC_DAP_L_STA 0x80 diff --git a/sound/soc/sunxi/Kconfig b/sound/soc/sunxi/Kconfig -index 1f18f016acbb..7b2b3bcb062e 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/sunxi/Kconfig +++ b/sound/soc/sunxi/Kconfig @@ -22,6 +22,17 @@ config SND_SUN8I_CODEC @@ -64,7 +63,7 @@ index 1f18f016acbb..7b2b3bcb062e 100644 tristate "Allwinner sun8i Codec Analog Controls Support" depends on MACH_SUN8I || (ARM64 && ARCH_SUNXI) || COMPILE_TEST diff --git a/sound/soc/sunxi/Makefile b/sound/soc/sunxi/Makefile -index 4483fe9c94ef..6131aea97efa 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/sunxi/Makefile +++ b/sound/soc/sunxi/Makefile @@ -1,4 +1,5 @@ @@ -75,7 +74,7 @@ index 4483fe9c94ef..6131aea97efa 100644 obj-$(CONFIG_SND_SUN4I_SPDIF) += sun4i-spdif.o diff --git a/sound/soc/sunxi/ac100-codec.c b/sound/soc/sunxi/ac100-codec.c new file mode 100644 -index 000000000000..a36c168d4994 +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi/ac100-codec.c @@ -0,0 +1,990 @@ @@ -1070,5 +1069,5 @@ index 000000000000..a36c168d4994 +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:ac100-codec"); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/sound-soc-sun8i-codec-Add-support-for-digital-part-of-the-AC100.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0010-sound-soc-sun8i-codec-Add-support-for-digital-part-o.patch similarity index 98% rename from patch/kernel/archive/sunxi-6.16/patches.megous/sound-soc-sun8i-codec-Add-support-for-digital-part-of-the-AC100.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0010-sound-soc-sun8i-codec-Add-support-for-digital-part-o.patch index 2142043ac..87535fec2 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/sound-soc-sun8i-codec-Add-support-for-digital-part-of-the-AC100.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0010-sound-soc-sun8i-codec-Add-support-for-digital-part-o.patch @@ -1,4 +1,4 @@ -From aa96ef7e331de5408b1cc3bb3eccefcdeae1a547 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 9 Feb 2020 17:58:59 +0100 Subject: sound: soc: sun8i-codec: Add support for digital part of the AC100 @@ -18,11 +18,11 @@ by the codec driver. Signed-off-by: Ondrej Jirman --- sound/soc/sunxi/Kconfig | 4 +- - sound/soc/sunxi/sun8i-codec.c | 216 ++++++++++++++++++++++++++++++++-- + sound/soc/sunxi/sun8i-codec.c | 216 +++++++++- 2 files changed, 212 insertions(+), 8 deletions(-) diff --git a/sound/soc/sunxi/Kconfig b/sound/soc/sunxi/Kconfig -index 7b2b3bcb062e..f87b061f59b2 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/sunxi/Kconfig +++ b/sound/soc/sunxi/Kconfig @@ -16,9 +16,11 @@ config SND_SUN8I_CODEC @@ -39,7 +39,7 @@ index 7b2b3bcb062e..f87b061f59b2 100644 Say Y or M if you want to add sun8i digital audio codec support. diff --git a/sound/soc/sunxi/sun8i-codec.c b/sound/soc/sunxi/sun8i-codec.c -index 222eac963759..3ca0a52b4639 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/sunxi/sun8i-codec.c +++ b/sound/soc/sunxi/sun8i-codec.c @@ -21,7 +21,9 @@ @@ -367,5 +367,5 @@ index 222eac963759..3ca0a52b4639 100644 }; MODULE_DEVICE_TABLE(of, sun8i_codec_of_match); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-ec25-New-codec-driver-for-the-EC25-modem.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0011-ASoC-ec25-New-codec-driver-for-the-EC25-modem.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-ec25-New-codec-driver-for-the-EC25-modem.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0011-ASoC-ec25-New-codec-driver-for-the-EC25-modem.patch index 7357485f2..21647a3e3 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ASoC-ec25-New-codec-driver-for-the-EC25-modem.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/audio-6.18/0011-ASoC-ec25-New-codec-driver-for-the-EC25-modem.patch @@ -1,4 +1,4 @@ -From 82745a579de223e56b7c35c8e4a5e7f9e91e409c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Fri, 25 Sep 2020 21:42:52 -0500 Subject: ASoC: ec25: New codec driver for the EC25 modem @@ -9,17 +9,16 @@ an 8 kHz or 16 kHz sameple rate. Suggested-by: Luca Weiss Signed-off-by: Samuel Holland --- - sound/soc/codecs/Kconfig | 3 ++ + sound/soc/codecs/Kconfig | 3 + sound/soc/codecs/Makefile | 2 + - sound/soc/codecs/ec25.c | 94 +++++++++++++++++++++++++++++++++++++++ + sound/soc/codecs/ec25.c | 94 ++++++++++ 3 files changed, 99 insertions(+) - create mode 100644 sound/soc/codecs/ec25.c diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig -index 126f897312d4..28ec636f5a7b 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig -@@ -1174,6 +1174,9 @@ config SND_SOC_HDMI_CODEC +@@ -1176,6 +1176,9 @@ config SND_SOC_HDMI_CODEC select SND_PCM_IEC958 select HDMI @@ -30,7 +29,7 @@ index 126f897312d4..28ec636f5a7b 100644 tristate "Everest Semi ES7134 CODEC" diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile -index 6d7aa109ede7..e1923e1d283f 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile @@ -124,6 +124,7 @@ snd-soc-da7219-y := da7219.o da7219-aad.o @@ -41,7 +40,7 @@ index 6d7aa109ede7..e1923e1d283f 100644 snd-soc-es7134-y := es7134.o snd-soc-es7241-y := es7241.o snd-soc-es83xx-dsm-common-y := es83xx-dsm-common.o -@@ -548,6 +549,7 @@ obj-$(CONFIG_SND_SOC_DA7219) += snd-soc-da7219.o +@@ -555,6 +556,7 @@ obj-$(CONFIG_SND_SOC_DA7219) += snd-soc-da7219.o obj-$(CONFIG_SND_SOC_DA732X) += snd-soc-da732x.o obj-$(CONFIG_SND_SOC_DA9055) += snd-soc-da9055.o obj-$(CONFIG_SND_SOC_DMIC) += snd-soc-dmic.o @@ -51,7 +50,7 @@ index 6d7aa109ede7..e1923e1d283f 100644 obj-$(CONFIG_SND_SOC_ES83XX_DSM_COMMON) += snd-soc-es83xx-dsm-common.o diff --git a/sound/soc/codecs/ec25.c b/sound/soc/codecs/ec25.c new file mode 100644 -index 000000000000..4f9b6b06cce7 +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/codecs/ec25.c @@ -0,0 +1,94 @@ @@ -150,5 +149,5 @@ index 000000000000..4f9b6b06cce7 +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:ec25"); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-Set-maximum-P-and-M-factors-to-1-for-H3-pll-cpux-c.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0001-clk-sunxi-ng-Set-maximum-P-and-M-factors-to-1-for-H3.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-Set-maximum-P-and-M-factors-to-1-for-H3-pll-cpux-c.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0001-clk-sunxi-ng-Set-maximum-P-and-M-factors-to-1-for-H3.patch index 7d8e0ce5d..3671fd729 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-Set-maximum-P-and-M-factors-to-1-for-H3-pll-cpux-c.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0001-clk-sunxi-ng-Set-maximum-P-and-M-factors-to-1-for-H3.patch @@ -1,4 +1,4 @@ -From 38441412836804c8b3add48632e2d587e2d90c02 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Thu, 12 Jan 2017 16:34:57 +0100 Subject: clk: sunxi-ng: Set maximum P and M factors to 1 for H3 pll-cpux clock @@ -16,11 +16,11 @@ so for example u-boot needs a similar patch. Signed-off-by: Ondrej Jirman --- - drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 24 +++++++++++++++--------- + drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 24 ++++++---- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-h3.c b/drivers/clk/sunxi-ng/ccu-sun8i-h3.c -index 740c4c97331c..33254d63ecb5 100644 +index 111111111111..222222222222 100644 --- a/drivers/clk/sunxi-ng/ccu-sun8i-h3.c +++ b/drivers/clk/sunxi-ng/ccu-sun8i-h3.c @@ -25,15 +25,21 @@ @@ -55,5 +55,5 @@ index 740c4c97331c..33254d63ecb5 100644 /* * The Audio PLL is supposed to have 4 outputs: 3 fixed factors from -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-Don-t-use-CPU-PLL-gating-and-CPUX-reparenting-to-H.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0002-clk-sunxi-ng-Don-t-use-CPU-PLL-gating-and-CPUX-repar.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-Don-t-use-CPU-PLL-gating-and-CPUX-reparenting-to-H.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0002-clk-sunxi-ng-Don-t-use-CPU-PLL-gating-and-CPUX-repar.patch index 45334d3bb..002009e5c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-Don-t-use-CPU-PLL-gating-and-CPUX-reparenting-to-H.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0002-clk-sunxi-ng-Don-t-use-CPU-PLL-gating-and-CPUX-repar.patch @@ -1,4 +1,4 @@ -From f002c96d415150a714932921d8361c910d7ceb1b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 10 Mar 2020 06:04:32 +0100 Subject: clk: sunxi-ng: Don't use CPU PLL gating and CPUX reparenting to HOSC @@ -8,11 +8,11 @@ causing cntvct jump backs on H3. Signed-off-by: Ondrej Jirman --- - drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 21 --------------------- + drivers/clk/sunxi-ng/ccu-sun8i-h3.c | 21 ---------- 1 file changed, 21 deletions(-) diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-h3.c b/drivers/clk/sunxi-ng/ccu-sun8i-h3.c -index 33254d63ecb5..9bd05a0488ff 100644 +index 111111111111..222222222222 100644 --- a/drivers/clk/sunxi-ng/ccu-sun8i-h3.c +++ b/drivers/clk/sunxi-ng/ccu-sun8i-h3.c @@ -1029,20 +1029,6 @@ static const struct sunxi_ccu_desc sun50i_h5_ccu_desc = { @@ -51,5 +51,5 @@ index 33254d63ecb5..9bd05a0488ff 100644 } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-Use-my-own-more-aggressive-OPPs-on-H3.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0003-ARM-dts-sun8i-h3-Use-my-own-more-aggressive-OPPs-on-.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-Use-my-own-more-aggressive-OPPs-on-H3.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0003-ARM-dts-sun8i-h3-Use-my-own-more-aggressive-OPPs-on-.patch index 90a7325f6..0c11d753d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-Use-my-own-more-aggressive-OPPs-on-H3.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0003-ARM-dts-sun8i-h3-Use-my-own-more-aggressive-OPPs-on-.patch @@ -1,15 +1,15 @@ -From cb05a11519a68c95d48d47b6d42fd68e81f51bb2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 17 Aug 2020 23:43:53 +0200 Subject: ARM: dts: sun8i-h3: Use my own more aggressive OPPs on H3 Signed-off-by: Ondrej Jirman --- - arch/arm/boot/dts/allwinner/sun8i-h3.dtsi | 36 +++++++++++++++++++++++ + arch/arm/boot/dts/allwinner/sun8i-h3.dtsi | 36 ++++++++++ 1 file changed, 36 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi b/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi -index cfd039840b43..4f19608b727c 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi @@ -48,6 +48,12 @@ cpu0_opp_table: opp-table-cpu { @@ -68,5 +68,5 @@ index cfd039840b43..4f19608b727c 100644 cpus { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-h5-Use-my-own-more-aggressive-OPPs-on-H5.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0004-arm64-dts-sun50i-h5-Use-my-own-more-aggressive-OPPs-.patch similarity index 93% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-h5-Use-my-own-more-aggressive-OPPs-on-H5.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0004-arm64-dts-sun50i-h5-Use-my-own-more-aggressive-OPPs-.patch index 91ac04489..ee8eab4ad 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-h5-Use-my-own-more-aggressive-OPPs-on-H5.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0004-arm64-dts-sun50i-h5-Use-my-own-more-aggressive-OPPs-.patch @@ -1,15 +1,15 @@ -From d3a05ab7280719e14989495aa6bc409ba52c70ae Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 17 Aug 2020 23:43:53 +0200 Subject: arm64: dts: sun50i-h5: Use my own more aggressive OPPs on H5 Signed-off-by: Ondrej Jirman --- - .../boot/dts/allwinner/sun50i-h5-cpu-opp.dtsi | 44 +++++++++---------- + arch/arm64/boot/dts/allwinner/sun50i-h5-cpu-opp.dtsi | 44 +++++----- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-cpu-opp.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h5-cpu-opp.dtsi -index 1afad8b437d7..a74463c8cc52 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-cpu-opp.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-cpu-opp.dtsi @@ -6,57 +6,57 @@ cpu_opp_table: opp-table-cpu { @@ -93,5 +93,5 @@ index 1afad8b437d7..a74463c8cc52 100644 }; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-orange-pi-pc-Increase-max-CPUX-voltage-to-1.4V.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0005-ARM-dts-sun8i-h3-orange-pi-pc-Increase-max-CPUX-volt.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-orange-pi-pc-Increase-max-CPUX-voltage-to-1.4V.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0005-ARM-dts-sun8i-h3-orange-pi-pc-Increase-max-CPUX-volt.patch index bc6e3e339..4302160cc 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-orange-pi-pc-Increase-max-CPUX-voltage-to-1.4V.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0005-ARM-dts-sun8i-h3-orange-pi-pc-Increase-max-CPUX-volt.patch @@ -1,4 +1,4 @@ -From 64f543a201145dfbc832be06aa3dc6d942d96bf1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 13 May 2018 21:00:43 +0200 Subject: ARM: dts: sun8i-h3-orange-pi-pc: Increase max CPUX voltage to 1.4V @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts -index b96e015f54ee..92a58e362004 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts @@ -194,7 +194,8 @@ reg_vdd_cpux: regulator@65 { @@ -27,5 +27,5 @@ index b96e015f54ee..92a58e362004 100644 regulator-always-on; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Improve-CPU-OPP-tables-go-up-to-1.8GHz.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0006-ARM-dts-sun8i-a83t-Improve-CPU-OPP-tables-go-up-to-1.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Improve-CPU-OPP-tables-go-up-to-1.8GHz.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0006-ARM-dts-sun8i-a83t-Improve-CPU-OPP-tables-go-up-to-1.patch index 90b9916dd..8eb6d8cc9 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Improve-CPU-OPP-tables-go-up-to-1.8GHz.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0006-ARM-dts-sun8i-a83t-Improve-CPU-OPP-tables-go-up-to-1.patch @@ -1,4 +1,4 @@ -From 75d25c0f809655532b54cdabe4e5ac810c1fa0cc Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 1 Sep 2019 23:56:49 +0200 Subject: ARM: dts: sun8i-a83t: Improve CPU OPP tables (go up to 1.8GHz) @@ -8,11 +8,11 @@ bins. Signed-off-by: Ondrej Jirman --- - arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi | 80 ++++++--------------- + arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi | 80 +++------- 1 file changed, 22 insertions(+), 58 deletions(-) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -index 53f0d0360f47..f83aded98482 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi @@ -210,45 +210,27 @@ opp-480000000 { @@ -130,5 +130,5 @@ index 53f0d0360f47..f83aded98482 100644 }; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/cpufreq-sun50i-Show-detected-CPU-bin-for-easier-debugging.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0007-cpufreq-sun50i-Show-detected-CPU-bin-for-easier-debu.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/cpufreq-sun50i-Show-detected-CPU-bin-for-easier-debugging.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0007-cpufreq-sun50i-Show-detected-CPU-bin-for-easier-debu.patch index fda2db913..33ea08776 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/cpufreq-sun50i-Show-detected-CPU-bin-for-easier-debugging.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-opp-6.18/0007-cpufreq-sun50i-Show-detected-CPU-bin-for-easier-debu.patch @@ -1,4 +1,4 @@ -From 362e712ca085c612a3325789df035bbb699348aa Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Thu, 31 Oct 2019 18:31:32 +0100 Subject: cpufreq: sun50i: Show detected CPU bin, for easier debugging @@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+) diff --git a/drivers/cpufreq/sun50i-cpufreq-nvmem.c b/drivers/cpufreq/sun50i-cpufreq-nvmem.c -index 744312a44279..d8c1be2b30fb 100644 +index 111111111111..222222222222 100644 --- a/drivers/cpufreq/sun50i-cpufreq-nvmem.c +++ b/drivers/cpufreq/sun50i-cpufreq-nvmem.c @@ -268,6 +268,8 @@ static int sun50i_cpufreq_nvmem_probe(struct platform_device *pdev) @@ -25,5 +25,5 @@ index 744312a44279..d8c1be2b30fb 100644 struct device *cpu_dev = get_cpu_device(cpu); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-Mark-TWD-clocks-as-critical.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0001-clk-sunxi-ng-Mark-TWD-clocks-as-critical.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-Mark-TWD-clocks-as-critical.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0001-clk-sunxi-ng-Mark-TWD-clocks-as-critical.patch index a9e55e367..c5a0037f9 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/clk-sunxi-ng-Mark-TWD-clocks-as-critical.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0001-clk-sunxi-ng-Mark-TWD-clocks-as-critical.patch @@ -1,4 +1,4 @@ -From 4c7904aa4949e751c1313da5bb69c5c0656b54dd Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sat, 28 May 2022 18:01:42 -0500 Subject: clk: sunxi-ng: Mark TWD clocks as critical @@ -13,7 +13,7 @@ Signed-off-by: Samuel Holland 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-a100-r.c b/drivers/clk/sunxi-ng/ccu-sun50i-a100-r.c -index cb0f8d110c32..ed17dd627b8b 100644 +index 111111111111..222222222222 100644 --- a/drivers/clk/sunxi-ng/ccu-sun50i-a100-r.c +++ b/drivers/clk/sunxi-ng/ccu-sun50i-a100-r.c @@ -91,7 +91,7 @@ static SUNXI_CCU_GATE_DATA(r_apb1_timer_clk, "r-apb1-timer", clk_parent_r_apb1, @@ -26,7 +26,7 @@ index cb0f8d110c32..ed17dd627b8b 100644 static const char * const r_apb1_pwm_clk_parents[] = { "dcxo24M", "osc32k", "iosc" }; diff --git a/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c b/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c -index acb4e8b9b1ba..3d08d7f6642a 100644 +index 111111111111..222222222222 100644 --- a/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c +++ b/drivers/clk/sunxi-ng/ccu-sun50i-h6-r.c @@ -85,7 +85,7 @@ static struct ccu_div r_apb2_clk = { @@ -39,7 +39,7 @@ index acb4e8b9b1ba..3d08d7f6642a 100644 0x13c, BIT(0), 0); static SUNXI_CCU_GATE(r_apb2_uart_clk, "r-apb2-uart", "r-apb2", diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-r.c b/drivers/clk/sunxi-ng/ccu-sun8i-r.c -index 0e324344673b..98e7d98e6685 100644 +index 111111111111..222222222222 100644 --- a/drivers/clk/sunxi-ng/ccu-sun8i-r.c +++ b/drivers/clk/sunxi-ng/ccu-sun8i-r.c @@ -73,7 +73,7 @@ static SUNXI_CCU_GATE_HWS(apb0_uart_clk, "apb0-uart", @@ -52,5 +52,5 @@ index 0e324344673b..98e7d98e6685 100644 static const char * const r_mod0_default_parents[] = { "osc32k", "osc24M" }; static SUNXI_CCU_MP_WITH_MUX_GATE(ir_clk, "ir", -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/firmware-arm_scpi-Support-unidirectional-mailbox-channels.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0002-firmware-arm_scpi-Support-unidirectional-mailbox-cha.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.megous/firmware-arm_scpi-Support-unidirectional-mailbox-channels.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0002-firmware-arm_scpi-Support-unidirectional-mailbox-cha.patch index d247e26b1..5df8a4f3b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/firmware-arm_scpi-Support-unidirectional-mailbox-channels.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0002-firmware-arm_scpi-Support-unidirectional-mailbox-cha.patch @@ -1,4 +1,4 @@ -From c608cd8089e3f73037e77a061af2038508ba90cd Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Tue, 5 Mar 2019 22:02:41 -0600 Subject: firmware: arm_scpi: Support unidirectional mailbox channels @@ -14,11 +14,11 @@ one), this new mode only supports a single SCPI channel. Signed-off-by: Samuel Holland --- - drivers/firmware/arm_scpi.c | 58 +++++++++++++++++++++++++++++-------- + drivers/firmware/arm_scpi.c | 58 ++++++++-- 1 file changed, 46 insertions(+), 12 deletions(-) diff --git a/drivers/firmware/arm_scpi.c b/drivers/firmware/arm_scpi.c -index 0967c9212653..46c541bd9447 100644 +index 111111111111..222222222222 100644 --- a/drivers/firmware/arm_scpi.c +++ b/drivers/firmware/arm_scpi.c @@ -237,7 +237,8 @@ struct scpi_xfer { @@ -123,5 +123,5 @@ index 0967c9212653..46c541bd9447 100644 } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sunxi-a83t-Add-SCPI-protocol.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0003-ARM-dts-sunxi-a83t-Add-SCPI-protocol.patch similarity index 80% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sunxi-a83t-Add-SCPI-protocol.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0003-ARM-dts-sunxi-a83t-Add-SCPI-protocol.patch index 587236896..39a03e5c6 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sunxi-a83t-Add-SCPI-protocol.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0003-ARM-dts-sunxi-a83t-Add-SCPI-protocol.patch @@ -1,18 +1,18 @@ -From ae4167d13fa154234c7fc616fa7a57d60020cc39 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Wed, 1 Jan 2020 16:14:29 -0600 Subject: ARM: dts: sunxi: a83t: Add SCPI protocol Signed-off-by: Samuel Holland --- - arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi | 21 +++++++++++++++++++++ + arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi | 21 ++++++++++ 1 file changed, 21 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -index 47c8541f7779..e5f003d00f03 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -@@ -284,6 +284,13 @@ opp-1800000000 { +@@ -270,6 +270,13 @@ opp-1800000000 { }; }; @@ -26,7 +26,7 @@ index 47c8541f7779..e5f003d00f03 100644 soc { compatible = "simple-bus"; #address-cells = <1>; -@@ -417,6 +424,20 @@ syscon: syscon@1c00000 { +@@ -403,6 +410,20 @@ syscon: syscon@1c00000 { compatible = "allwinner,sun8i-a83t-system-controller", "syscon"; reg = <0x01c00000 0x1000>; @@ -48,5 +48,5 @@ index 47c8541f7779..e5f003d00f03 100644 video-codec@01c0e000 { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0004-ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0004-ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch index eff5f854c..fe229c649 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0004-ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch @@ -1,17 +1,17 @@ -From bb01531627146b6235b863e36fa978cef608d538 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Wed, 1 Jan 2020 16:12:36 -0600 Subject: ARM: dts: sunxi: h3/h5: Add SCPI protocol Signed-off-by: Samuel Holland --- - arch/arm/boot/dts/allwinner/sun8i-h3.dtsi | 13 +++++++++++++ - arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi | 7 +++++++ - arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi | 13 +++++++++++++ + arch/arm/boot/dts/allwinner/sun8i-h3.dtsi | 13 ++++++++++ + arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi | 7 +++++ + arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi | 13 ++++++++++ 3 files changed, 33 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi b/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi -index 4f19608b727c..2b28c1306405 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi @@ -206,6 +206,19 @@ syscon: system-control@1c00000 { @@ -35,10 +35,10 @@ index 4f19608b727c..2b28c1306405 100644 compatible = "mmio-sram"; reg = <0x01d00000 0x80000>; diff --git a/arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi -index a872fc586ab6..ebc64458084c 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi +++ b/arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi -@@ -120,6 +120,13 @@ de: display-engine { +@@ -106,6 +106,13 @@ de: display-engine { status = "disabled"; }; @@ -53,7 +53,7 @@ index a872fc586ab6..ebc64458084c 100644 compatible = "simple-bus"; #address-cells = <1>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi -index 01a29c1988a6..49481e725a4e 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi @@ -82,6 +82,19 @@ syscon: system-control@1c00000 { @@ -77,5 +77,5 @@ index 01a29c1988a6..49481e725a4e 100644 compatible = "mmio-sram"; reg = <0x00018000 0x1c000>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileges-over-SCP.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0005-ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileg.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileges-over-SCP.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0005-ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileg.patch index f436173f1..43e961108 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileges-over-SCP.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0005-ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileg.patch @@ -1,4 +1,4 @@ -From 059050249c1d35276ebc8323bcddeee8510e2c1e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 23 Jun 2020 19:19:46 +0200 Subject: ARM: dts: sun8i-a83t-tbs-a711: Give Linux more privileges over SCPI @@ -11,10 +11,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -index e5f003d00f03..e901c62e9075 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -@@ -286,7 +286,7 @@ opp-1800000000 { +@@ -272,7 +272,7 @@ opp-1800000000 { scpi_protocol: scpi { compatible = "arm,scpi"; @@ -23,7 +23,7 @@ index e5f003d00f03..e901c62e9075 100644 mbox-names = "tx", "rx"; shmem = <&scpi_sram>; }; -@@ -424,6 +424,9 @@ syscon: syscon@1c00000 { +@@ -410,6 +410,9 @@ syscon: syscon@1c00000 { compatible = "allwinner,sun8i-a83t-system-controller", "syscon"; reg = <0x01c00000 0x1000>; @@ -33,7 +33,7 @@ index e5f003d00f03..e901c62e9075 100644 sram_a2: sram@40000 { compatible = "mmio-sram"; -@@ -434,7 +437,7 @@ sram_a2: sram@40000 { +@@ -420,7 +423,7 @@ sram_a2: sram@40000 { scpi_sram: scp-shmem@13c00 { compatible = "arm,scp-shmem"; @@ -43,5 +43,5 @@ index e5f003d00f03..e901c62e9075 100644 }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/rtc-sun6i-Allow-RTC-wakeup-after-shutdown.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0006-rtc-sun6i-Allow-RTC-wakeup-after-shutdown.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/rtc-sun6i-Allow-RTC-wakeup-after-shutdown.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0006-rtc-sun6i-Allow-RTC-wakeup-after-shutdown.patch index b1f8336fe..063bc0171 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/rtc-sun6i-Allow-RTC-wakeup-after-shutdown.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/aw-suspend-6.18/0006-rtc-sun6i-Allow-RTC-wakeup-after-shutdown.patch @@ -1,4 +1,4 @@ -From fc0d46cc7c7ca6691326354d96a2940a5c5a85a8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sat, 2 Jan 2021 15:52:27 -0600 Subject: rtc: sun6i: Allow RTC wakeup after shutdown @@ -10,11 +10,11 @@ during the shutdown process, so the RTC alarm also works after shutdown. Signed-off-by: Samuel Holland --- - drivers/rtc/rtc-sun6i.c | 12 +++++++++++- + drivers/rtc/rtc-sun6i.c | 12 +++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c -index e5e6013d080e..c8eca3b1b96d 100644 +index 111111111111..222222222222 100644 --- a/drivers/rtc/rtc-sun6i.c +++ b/drivers/rtc/rtc-sun6i.c @@ -710,6 +710,7 @@ static struct nvmem_config sun6i_rtc_nvmem_cfg = { @@ -65,5 +65,5 @@ index e5e6013d080e..c8eca3b1b96d 100644 .name = "sun6i-rtc", .of_match_table = sun6i_rtc_dt_ids, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-axp20x-adc-allow-to-use-TS-pin-as-GPADC.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0001-dt-bindings-axp20x-adc-allow-to-use-TS-pin-as-GPADC.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-axp20x-adc-allow-to-use-TS-pin-as-GPADC.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0001-dt-bindings-axp20x-adc-allow-to-use-TS-pin-as-GPADC.patch index 5f2271bdc..e39f56fe4 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/dt-bindings-axp20x-adc-allow-to-use-TS-pin-as-GPADC.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0001-dt-bindings-axp20x-adc-allow-to-use-TS-pin-as-GPADC.patch @@ -1,4 +1,4 @@ -From c436c559658b7d5e26176d52504b4a5a4fda73dc Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Tue, 10 Sep 2019 12:02:23 +0800 Subject: dt-bindings: axp20x-adc: allow to use TS pin as GPADC @@ -10,11 +10,11 @@ Add the property to enable this mode. Signed-off-by: Icenowy Zheng --- - .../devicetree/bindings/iio/adc/x-powers,axp209-adc.yaml | 5 +++++ + Documentation/devicetree/bindings/iio/adc/x-powers,axp209-adc.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/iio/adc/x-powers,axp209-adc.yaml b/Documentation/devicetree/bindings/iio/adc/x-powers,axp209-adc.yaml -index 1caa896fce82..46ed0cdd925e 100644 +index 111111111111..222222222222 100644 --- a/Documentation/devicetree/bindings/iio/adc/x-powers,axp209-adc.yaml +++ b/Documentation/devicetree/bindings/iio/adc/x-powers,axp209-adc.yaml @@ -73,6 +73,11 @@ properties: @@ -30,5 +30,5 @@ index 1caa896fce82..46ed0cdd925e 100644 examples: -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/iio-adc-axp20x_adc-allow-to-set-TS-pin-to-GPADC-mode.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0002-iio-adc-axp20x_adc-allow-to-set-TS-pin-to-GPADC-mode.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/iio-adc-axp20x_adc-allow-to-set-TS-pin-to-GPADC-mode.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0002-iio-adc-axp20x_adc-allow-to-set-TS-pin-to-GPADC-mode.patch index 757161411..04bdfd548 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/iio-adc-axp20x_adc-allow-to-set-TS-pin-to-GPADC-mode.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0002-iio-adc-axp20x_adc-allow-to-set-TS-pin-to-GPADC-mode.patch @@ -1,4 +1,4 @@ -From a1f9386131173c601dc3d8d9232d5e39b81388ab Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Tue, 10 Sep 2019 12:03:32 +0800 Subject: iio: adc: axp20x_adc: allow to set TS pin to GPADC mode @@ -14,7 +14,7 @@ Signed-off-by: Icenowy Zheng 1 file changed, 6 insertions(+) diff --git a/drivers/iio/adc/axp20x_adc.c b/drivers/iio/adc/axp20x_adc.c -index 1b49325ec1ce..9b15298eb152 100644 +index 111111111111..222222222222 100644 --- a/drivers/iio/adc/axp20x_adc.c +++ b/drivers/iio/adc/axp20x_adc.c @@ -58,6 +58,7 @@ @@ -38,5 +38,5 @@ index 1b49325ec1ce..9b15298eb152 100644 if (info->data->adc_rate) info->data->adc_rate(info, 100); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-axp20x_battery-Allow-to-set-target-voltage-to-4.35V.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0003-power-axp20x_battery-Allow-to-set-target-voltage-to-.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-axp20x_battery-Allow-to-set-target-voltage-to-4.35V.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0003-power-axp20x_battery-Allow-to-set-target-voltage-to-.patch index 216e98d0e..6524ffa1b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-axp20x_battery-Allow-to-set-target-voltage-to-4.35V.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0003-power-axp20x_battery-Allow-to-set-target-voltage-to-.patch @@ -1,4 +1,4 @@ -From 46493cb95bcc10a72c1103a26d794776c8968240 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Thu, 27 Feb 2020 00:53:17 +0100 Subject: power: axp20x_battery: Allow to set target voltage to 4.35V @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 5 insertions(+) diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c -index 50ca8e110085..a72a4afd43db 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_battery.c +++ b/drivers/power/supply/axp20x_battery.c @@ -632,6 +632,11 @@ static int axp20x_battery_set_max_voltage(struct axp20x_batt_ps *axp20x_batt, @@ -27,5 +27,5 @@ index 50ca8e110085..a72a4afd43db 100644 /* * AXP20x max voltage can be set to 4.36V and AXP22X max voltage -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Add-support-for-reporting-OCV.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0004-power-supply-axp20x_battery-Add-support-for-reportin.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Add-support-for-reporting-OCV.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0004-power-supply-axp20x_battery-Add-support-for-reportin.patch index 13acc9db8..0e2debb1f 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Add-support-for-reporting-OCV.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0004-power-supply-axp20x_battery-Add-support-for-reportin.patch @@ -1,4 +1,4 @@ -From 90dfd973389661adcf4cb0d7594ef6d2ffa4f996 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 28 Feb 2020 19:16:46 +0100 Subject: power: supply: axp20x_battery: Add support for reporting OCV @@ -7,11 +7,11 @@ Export OCV reported by PMIC via sysfs. Signed-off-by: Ondrej Jirman --- - drivers/power/supply/axp20x_battery.c | 23 +++++++++++++++++++++++ + drivers/power/supply/axp20x_battery.c | 23 ++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c -index a72a4afd43db..551cbe0b0f97 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_battery.c +++ b/drivers/power/supply/axp20x_battery.c @@ -273,6 +273,25 @@ static int axp717_get_constant_charge_current(struct axp20x_batt_ps *axp, @@ -59,5 +59,5 @@ index a72a4afd43db..551cbe0b0f97 100644 }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/regulator-axp20x-Enable-over-temperature-protection-and-16s-res.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0005-regulator-axp20x-Enable-over-temperature-protection-.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/regulator-axp20x-Enable-over-temperature-protection-and-16s-res.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0005-regulator-axp20x-Enable-over-temperature-protection-.patch index bcc906be9..2b3d7da9d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/regulator-axp20x-Enable-over-temperature-protection-and-16s-res.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0005-regulator-axp20x-Enable-over-temperature-protection-.patch @@ -1,4 +1,4 @@ -From aeacc51e5cbf50b6ba83e4eaedc898d84faee2d3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 18 Feb 2020 23:57:20 +0100 Subject: regulator: axp20x: Enable over-temperature protection and 16s reset @@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 7 insertions(+) diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c -index f48d03be42f8..43dba61ca59b 100644 +index 111111111111..222222222222 100644 --- a/drivers/regulator/axp20x-regulator.c +++ b/drivers/regulator/axp20x-regulator.c @@ -92,6 +92,8 @@ @@ -37,5 +37,5 @@ index f48d03be42f8..43dba61ca59b 100644 } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Setup-thermal-regulation-experiment.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0006-power-supply-axp20x_battery-Setup-thermal-regulation.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Setup-thermal-regulation-experiment.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0006-power-supply-axp20x_battery-Setup-thermal-regulation.patch index e806e4d89..ff7931364 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Setup-thermal-regulation-experiment.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0006-power-supply-axp20x_battery-Setup-thermal-regulation.patch @@ -1,4 +1,4 @@ -From 543cdf679cbe303243af83c06431058a9d5930d9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Wed, 23 Sep 2020 14:59:41 +0200 Subject: power: supply: axp20x_battery: Setup thermal regulation @@ -10,11 +10,11 @@ None of this is tested to actually work. Signed-off-by: Ondrej Jirman --- - drivers/power/supply/axp20x_battery.c | 53 +++++++++++++++++++++++++++ + drivers/power/supply/axp20x_battery.c | 53 ++++++++++ 1 file changed, 53 insertions(+) diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c -index 551cbe0b0f97..132c0d8f9175 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_battery.c +++ b/drivers/power/supply/axp20x_battery.c @@ -1167,6 +1167,59 @@ static int axp20x_power_probe(struct platform_device *pdev) @@ -78,5 +78,5 @@ index 551cbe0b0f97..132c0d8f9175 100644 } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Fix-charging-done-detection.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0007-power-supply-axp20x_battery-Fix-charging-done-detect.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Fix-charging-done-detection.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0007-power-supply-axp20x_battery-Fix-charging-done-detect.patch index 79c6425ad..e897bb20d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Fix-charging-done-detection.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0007-power-supply-axp20x_battery-Fix-charging-done-detect.patch @@ -1,4 +1,4 @@ -From 488236884b035bc7e3ab2ac27b5abb4bfbb82b3e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sat, 29 Feb 2020 00:55:09 -0600 Subject: power: supply: axp20x_battery: Fix charging done detection @@ -9,7 +9,7 @@ Signed-off-by: Samuel Holland 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c -index 132c0d8f9175..3d64d7c8c47b 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_battery.c +++ b/drivers/power/supply/axp20x_battery.c @@ -38,6 +38,7 @@ @@ -36,5 +36,5 @@ index 132c0d8f9175..3d64d7c8c47b 100644 return 0; } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/mfd-axp20x-Add-battery-IRQ-resources.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0008-mfd-axp20x-Add-battery-IRQ-resources.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.megous/mfd-axp20x-Add-battery-IRQ-resources.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0008-mfd-axp20x-Add-battery-IRQ-resources.patch index aac6f7107..799a58dcc 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/mfd-axp20x-Add-battery-IRQ-resources.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0008-mfd-axp20x-Add-battery-IRQ-resources.patch @@ -1,15 +1,15 @@ -From 561e373144469232ae9a06314590de367ca43d66 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sat, 29 Feb 2020 01:01:58 -0600 Subject: mfd: axp20x: Add battery IRQ resources Signed-off-by: Samuel Holland --- - drivers/mfd/axp20x.c | 36 ++++++++++++++++++++++++++++++++++++ + drivers/mfd/axp20x.c | 36 ++++++++++ 1 file changed, 36 insertions(+) diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c -index 56364d6baa36..2e30a1cd56a3 100644 +index 111111111111..222222222222 100644 --- a/drivers/mfd/axp20x.c +++ b/drivers/mfd/axp20x.c @@ -312,6 +312,15 @@ static const struct resource axp20x_ac_power_supply_resources[] = { @@ -98,5 +98,5 @@ index 56364d6baa36..2e30a1cd56a3 100644 .name = "axp20x-ac-power-supply", .of_compatible = "x-powers,axp813-ac-power-supply", -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Send-uevents-for-status-changes.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0009-power-supply-axp20x_battery-Send-uevents-for-status-.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Send-uevents-for-status-changes.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0009-power-supply-axp20x_battery-Send-uevents-for-status-.patch index 765f7804d..3eb9b8e01 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Send-uevents-for-status-changes.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0009-power-supply-axp20x_battery-Send-uevents-for-status-.patch @@ -1,15 +1,15 @@ -From d9a8e2ce4c70a517e32da1371f2f3b295a80abe2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 5 Apr 2025 18:14:35 +0200 Subject: power: supply: axp20x_battery: Send uevents for status changes Signed-off-by: Samuel Holland --- - drivers/power/supply/axp20x_battery.c | 56 ++++++++++++++++++++++++++- + drivers/power/supply/axp20x_battery.c | 56 +++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c -index 3d64d7c8c47b..ee94d9527153 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_battery.c +++ b/drivers/power/supply/axp20x_battery.c @@ -92,8 +92,15 @@ @@ -145,5 +145,5 @@ index 3d64d7c8c47b..ee94d9527153 100644 }, }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Monitor-battery-health.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0010-power-supply-axp20x_battery-Monitor-battery-health.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Monitor-battery-health.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0010-power-supply-axp20x_battery-Monitor-battery-health.patch index 06c1f3b8c..d94a95174 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x_battery-Monitor-battery-health.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0010-power-supply-axp20x_battery-Monitor-battery-health.patch @@ -1,15 +1,15 @@ -From c2539f144cef118aee2e09cda0b8c0c58d368fe2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sat, 29 Feb 2020 01:04:33 -0600 Subject: power: supply: axp20x_battery: Monitor battery health Signed-off-by: Samuel Holland --- - drivers/power/supply/axp20x_battery.c | 58 ++++++++++++++++++++++++++- + drivers/power/supply/axp20x_battery.c | 58 +++++++++- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c -index ee94d9527153..81a2d15942b0 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_battery.c +++ b/drivers/power/supply/axp20x_battery.c @@ -125,6 +125,7 @@ struct axp20x_batt_ps { @@ -113,5 +113,5 @@ index ee94d9527153..81a2d15942b0 100644 axp20x_batt->data->set_bat_info(pdev, axp20x_batt, info); power_supply_put_battery_info(axp20x_batt->batt, info); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-usb-power-Change-Vbus-hold-voltage-to-4.5V.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0011-power-supply-axp20x-usb-power-Change-Vbus-hold-volta.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-usb-power-Change-Vbus-hold-voltage-to-4.5V.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0011-power-supply-axp20x-usb-power-Change-Vbus-hold-volta.patch index d0345d552..4cfa88150 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-usb-power-Change-Vbus-hold-voltage-to-4.5V.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0011-power-supply-axp20x-usb-power-Change-Vbus-hold-volta.patch @@ -1,4 +1,4 @@ -From 9880eaca7a2f62b2f7ae42e75f302294e83181df Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 14 Dec 2020 07:42:08 +0100 Subject: power: supply: axp20x-usb-power: Change Vbus hold voltage to 4.5V @@ -7,11 +7,11 @@ This fixes USB-PD charger resets. Signed-off-by: Ondrej Jirman --- - drivers/power/supply/axp20x_usb_power.c | 12 ++++++++++++ + drivers/power/supply/axp20x_usb_power.c | 12 ++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/power/supply/axp20x_usb_power.c b/drivers/power/supply/axp20x_usb_power.c -index e75d1e377ac1..0b655274dadb 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_usb_power.c +++ b/drivers/power/supply/axp20x_usb_power.c @@ -1011,6 +1011,18 @@ static int axp20x_usb_power_probe(struct platform_device *pdev) @@ -34,5 +34,5 @@ index e75d1e377ac1..0b655274dadb 100644 psy_cfg.drv_data = power; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-axp803-Add-interrupts-for-low-battery-power-condition.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0012-power-axp803-Add-interrupts-for-low-battery-power-co.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-axp803-Add-interrupts-for-low-battery-power-condition.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0012-power-axp803-Add-interrupts-for-low-battery-power-co.patch index 39fb99851..15bcf69cd 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-axp803-Add-interrupts-for-low-battery-power-condition.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0012-power-axp803-Add-interrupts-for-low-battery-power-co.patch @@ -1,4 +1,4 @@ -From 3e4b43db829267e63a613fe706770e99e48fdd5f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 14 Mar 2021 15:49:34 +0100 Subject: power: axp803: Add interrupts for low battery power condition @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 2 files changed, 4 insertions(+) diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c -index 2e30a1cd56a3..a18a55b7c052 100644 +index 111111111111..222222222222 100644 --- a/drivers/mfd/axp20x.c +++ b/drivers/mfd/axp20x.c @@ -394,6 +394,8 @@ static const struct resource axp803_battery_resources[] = { @@ -26,7 +26,7 @@ index 2e30a1cd56a3..a18a55b7c052 100644 static const struct resource axp803_pek_resources[] = { diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c -index 81a2d15942b0..1eca1ad48c46 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_battery.c +++ b/drivers/power/supply/axp20x_battery.c @@ -1119,6 +1119,8 @@ static const struct axp_irq_data axp813_irqs[] = { @@ -39,5 +39,5 @@ index 81a2d15942b0..1eca1ad48c46 100644 { "BATT_CHG_TEMP_HIGH_END", axp20x_battery_temp_normal_irq }, { "BATT_CHG_TEMP_LOW", axp20x_battery_temp_cold_irq }, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-battery-Support-POWER_SUPPLY_PROP_CHARGE_BE.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0013-power-supply-axp20x-battery-Support-POWER_SUPPLY_PRO.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-battery-Support-POWER_SUPPLY_PROP_CHARGE_BE.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0013-power-supply-axp20x-battery-Support-POWER_SUPPLY_PRO.patch index 36ee53542..392a75d9f 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-battery-Support-POWER_SUPPLY_PROP_CHARGE_BE.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0013-power-supply-axp20x-battery-Support-POWER_SUPPLY_PRO.patch @@ -1,4 +1,4 @@ -From e1e4ad3c4acf9ea58571579b9a3eddee393f046b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 2 Apr 2022 02:50:14 +0200 Subject: power: supply: axp20x-battery: Support @@ -8,11 +8,11 @@ Support force disabling the charger in a more standardized way. Signed-off-by: Ondrej Jirman --- - drivers/power/supply/axp20x_battery.c | 31 +++++++++++++++++++++++++++ + drivers/power/supply/axp20x_battery.c | 31 ++++++++++ 1 file changed, 31 insertions(+) diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c -index 1eca1ad48c46..d2c153ee0d88 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_battery.c +++ b/drivers/power/supply/axp20x_battery.c @@ -320,6 +320,19 @@ static int axp20x_battery_get_prop(struct power_supply *psy, @@ -82,5 +82,5 @@ index 1eca1ad48c46..d2c153ee0d88 100644 static const struct power_supply_desc axp717_batt_ps_desc = { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-battery-Enable-poweron-by-RTC-alarm.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0014-power-supply-axp20x-battery-Enable-poweron-by-RTC-al.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-battery-Enable-poweron-by-RTC-alarm.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0014-power-supply-axp20x-battery-Enable-poweron-by-RTC-al.patch index 3f8fbdeb6..9f871a085 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-battery-Enable-poweron-by-RTC-alarm.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0014-power-supply-axp20x-battery-Enable-poweron-by-RTC-al.patch @@ -1,4 +1,4 @@ -From 24a2fadfced9799dd7ea4195edc3cf5f59a5d960 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 27 Aug 2022 20:50:43 +0200 Subject: power: supply: axp20x-battery: Enable poweron by RTC alarm @@ -15,7 +15,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 5 insertions(+) diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c -index d2c153ee0d88..b3c493b01bda 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_battery.c +++ b/drivers/power/supply/axp20x_battery.c @@ -1354,6 +1354,11 @@ static int axp20x_power_probe(struct platform_device *pdev) @@ -31,5 +31,5 @@ index d2c153ee0d88..b3c493b01bda 100644 return 0; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-battery-Add-support-for-POWER_SUPPLY_PROP_E.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0015-power-supply-axp20x-battery-Add-support-for-POWER_SU.patch similarity index 93% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-battery-Add-support-for-POWER_SUPPLY_PROP_E.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0015-power-supply-axp20x-battery-Add-support-for-POWER_SU.patch index a3562a1ee..ee1c19995 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-battery-Add-support-for-POWER_SUPPLY_PROP_E.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0015-power-supply-axp20x-battery-Add-support-for-POWER_SU.patch @@ -1,4 +1,4 @@ -From dc52e71a420ed1baba6c504500d62806f72c5092 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Thu, 10 Nov 2022 20:05:58 +0100 Subject: power: supply: axp20x-battery: Add support for @@ -8,11 +8,11 @@ Report total battery capacity. Signed-off-by: Ondrej Jirman --- - drivers/power/supply/axp20x_battery.c | 30 +++++++++++++++++++++++---- + drivers/power/supply/axp20x_battery.c | 30 ++++++++-- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c -index b3c493b01bda..26ee5629faff 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_battery.c +++ b/drivers/power/supply/axp20x_battery.c @@ -130,6 +130,7 @@ struct axp20x_batt_ps { @@ -86,5 +86,5 @@ index b3c493b01bda..26ee5629faff 100644 /* Request irqs after registering, as irqs may trigger immediately */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-Add-support-for-USB_BC_ENABLED-and-USB_DCP_INPUT_C.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0016-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-Add-support-for-USB_BC_ENABLED-and-USB_DCP_INPUT_C.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0016-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch index 6f79c13e0..aeba00dd5 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-Add-support-for-USB_BC_ENABLED-and-USB_DCP_INPUT_C.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0016-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch @@ -1,4 +1,4 @@ -From c271a238f52a6955996c8b781ada54e980993809 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 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: power: supply: Add support for USB_BC_ENABLED and @@ -15,7 +15,7 @@ Signed-off-by: Ondrej Jirman 2 files changed, 4 insertions(+) diff --git a/drivers/power/supply/power_supply_sysfs.c b/drivers/power/supply/power_supply_sysfs.c -index 18e5e84a81c6..871bcf11f8cc 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/power_supply_sysfs.c +++ b/drivers/power/supply/power_supply_sysfs.c @@ -216,6 +216,8 @@ static struct power_supply_attr power_supply_attrs[] __ro_after_init = { @@ -28,7 +28,7 @@ index 18e5e84a81c6..871bcf11f8cc 100644 POWER_SUPPLY_ATTR(PRECHARGE_CURRENT), POWER_SUPPLY_ATTR(CHARGE_TERM_CURRENT), diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h -index 0cca01b5607b..83b976c57faf 100644 +index 111111111111..222222222222 100644 --- a/include/linux/power_supply.h +++ b/include/linux/power_supply.h @@ -168,6 +168,8 @@ enum power_supply_property { @@ -41,5 +41,5 @@ index 0cca01b5607b..83b976c57faf 100644 POWER_SUPPLY_PROP_SCOPE, POWER_SUPPLY_PROP_PRECHARGE_CURRENT, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-usb-power-Add-missing-interrupts.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0017-power-supply-axp20x-usb-power-Add-missing-interrupts.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-usb-power-Add-missing-interrupts.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0017-power-supply-axp20x-usb-power-Add-missing-interrupts.patch index f84469b5a..78c35bd3c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-usb-power-Add-missing-interrupts.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0017-power-supply-axp20x-usb-power-Add-missing-interrupts.patch @@ -1,4 +1,4 @@ -From 6dd47cd1ee0965e25b854984bcf9f3c1d35eaad5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 15 Mar 2024 21:48:34 +0100 Subject: power: supply: axp20x-usb-power: Add missing interrupts @@ -9,11 +9,11 @@ to get BC results ASAP. Signed-off-by: Ondrej Jirman --- drivers/mfd/axp20x.c | 2 ++ - drivers/power/supply/axp20x_usb_power.c | 11 +++++++++-- + drivers/power/supply/axp20x_usb_power.c | 11 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c -index a18a55b7c052..96a675f525cd 100644 +index 111111111111..222222222222 100644 --- a/drivers/mfd/axp20x.c +++ b/drivers/mfd/axp20x.c @@ -348,6 +348,8 @@ static const struct resource axp717_usb_power_supply_resources[] = { @@ -26,7 +26,7 @@ index a18a55b7c052..96a675f525cd 100644 static const struct resource axp22x_pek_resources[] = { diff --git a/drivers/power/supply/axp20x_usb_power.c b/drivers/power/supply/axp20x_usb_power.c -index 0b655274dadb..20c9c0474e75 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_usb_power.c +++ b/drivers/power/supply/axp20x_usb_power.c @@ -728,6 +728,13 @@ static const char * const axp717_irq_names[] = { @@ -55,5 +55,5 @@ index 0b655274dadb..20c9c0474e75 100644 .curr_lim_table_size = ARRAY_SIZE(axp813_usb_curr_lim_table), .curr_lim_fld = REG_FIELD(AXP22X_CHRG_CTRL3, 4, 7), -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-battery-Improve-probe-error-reporting.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0018-power-supply-axp20x-battery-Improve-probe-error-repo.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-battery-Improve-probe-error-reporting.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0018-power-supply-axp20x-battery-Improve-probe-error-repo.patch index 8cae3a8d1..f6d702533 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/power-supply-axp20x-battery-Improve-probe-error-reporting.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/axp-6.18/0018-power-supply-axp20x-battery-Improve-probe-error-repo.patch @@ -1,4 +1,4 @@ -From c527915eb794fac0a75fce1fa096e2133050e25b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 7 Jan 2025 18:53:23 +0100 Subject: power: supply: axp20x-battery: Improve probe error reporting @@ -7,11 +7,11 @@ Use dev_err_probe in places... Signed-off-by: Ondrej Jirman --- - drivers/power/supply/axp20x_battery.c | 28 ++++++++++++--------------- + drivers/power/supply/axp20x_battery.c | 28 ++++------ 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/drivers/power/supply/axp20x_battery.c b/drivers/power/supply/axp20x_battery.c -index 26ee5629faff..d16ef16f2c61 100644 +index 111111111111..222222222222 100644 --- a/drivers/power/supply/axp20x_battery.c +++ b/drivers/power/supply/axp20x_battery.c @@ -1283,16 +1283,15 @@ static int axp20x_power_probe(struct platform_device *pdev) @@ -65,5 +65,5 @@ index 26ee5629faff..d16ef16f2c61 100644 /* -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/besdbg-6.18/0001-besdbg-Add-a-debug-driver-for-controlling-the-wifi-c.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/besdbg-6.18/0001-besdbg-Add-a-debug-driver-for-controlling-the-wifi-c.patch new file mode 100644 index 000000000..020e0a50b --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/besdbg-6.18/0001-besdbg-Add-a-debug-driver-for-controlling-the-wifi-c.patch @@ -0,0 +1,627 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Mon, 14 Aug 2023 08:22:40 +0200 +Subject: besdbg: Add a debug driver for controlling the wifi chip + +With this driver, it's possible to perform any test of the wifi +firmware from userspace without having to recompile the kernel. + +Signed-off-by: Ondrej Jirman +--- + drivers/net/wireless/st/cw1200/Makefile | 2 + + drivers/net/wireless/st/cw1200/besdbg.c | 594 ++++++++++ + 2 files changed, 596 insertions(+) + +diff --git a/drivers/net/wireless/st/cw1200/Makefile b/drivers/net/wireless/st/cw1200/Makefile +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/Makefile ++++ b/drivers/net/wireless/st/cw1200/Makefile +@@ -20,3 +20,5 @@ cw1200_wlan_spi-y := cw1200_spi.o + obj-$(CONFIG_CW1200) += cw1200_core.o + obj-$(CONFIG_CW1200_WLAN_SDIO) += cw1200_wlan_sdio.o + obj-$(CONFIG_CW1200_WLAN_SPI) += cw1200_wlan_spi.o ++ ++obj-m += besdbg.o +diff --git a/drivers/net/wireless/st/cw1200/besdbg.c b/drivers/net/wireless/st/cw1200/besdbg.c +new file mode 100644 +index 000000000000..111111111111 +--- /dev/null ++++ b/drivers/net/wireless/st/cw1200/besdbg.c +@@ -0,0 +1,594 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++// Written by Ondrej Jirman 2023-2024 ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cw1200.h" ++#include "hwbus.h" ++#include "hwio.h" ++ ++#include ++#include ++ ++struct besdbg_data { ++ __u32 reg; ++ __u32 len; ++ __u64 data; ++}; ++ ++struct besdbg_gpio { ++ __u32 gpio; ++ __u32 val; ++}; ++ ++#define BESDBG_MAGIC 0xEE ++ ++#define BESDBG_GPIO_WAKEUP_DEV 1 ++#define BESDBG_GPIO_WAKEUP_HOST 2 ++#define BESDBG_GPIO_REGON 3 ++ ++#define BESDBG_IOCTL_RESET _IO(BESDBG_MAGIC, 0x10) ++#define BESDBG_IOCTL_REG_READ _IOR(BESDBG_MAGIC, 0x11, struct besdbg_data) ++#define BESDBG_IOCTL_REG_WRITE _IOW(BESDBG_MAGIC, 0x12, struct besdbg_data) ++#define BESDBG_IOCTL_MEM_READ _IOR(BESDBG_MAGIC, 0x13, struct besdbg_data) ++#define BESDBG_IOCTL_MEM_WRITE _IOW(BESDBG_MAGIC, 0x14, struct besdbg_data) ++#define BESDBG_IOCTL_GPIO _IOR(BESDBG_MAGIC, 0x15, struct besdbg_gpio) ++ ++#define SDIO_BLOCK_SIZE (512) ++ ++static struct class *besdbg_class; ++ ++struct besdbg_priv { ++ struct sdio_func *func; ++ struct gpio_desc *wakeup_device_gpio; ++ struct gpio_desc *wakeup_host_gpio; ++ struct gpio_desc *regon_gpio; ++ struct cdev cdev; ++ dev_t major; ++ int irq; ++ ++ spinlock_t lock; ++ int interrupted; ++ wait_queue_head_t poll_wait; ++}; ++ ++/* bes sdio slave regs can only be accessed by command52 ++ * if a WORD or DWORD reg wants to be accessed, ++ * please combine the results of multiple command52 ++ */ ++static int bes2600_sdio_reg_read(struct besdbg_priv *self, u32 reg, ++ void *dst, int count) ++{ ++ int ret = 0; ++ if (count <= 0 || !dst) ++ return -EINVAL; ++ ++ while (count && !ret) { ++ *(u8 *)dst = sdio_readb(self->func, reg, &ret); ++ ++ dst++; ++ reg++; ++ count--; ++ } ++ ++ return ret; ++} ++ ++static int bes2600_sdio_reg_write(struct besdbg_priv *self, u32 reg, ++ const void *src, int count) ++{ ++ int ret = 0; ++ if (count <= 0 || !src) ++ return -EINVAL; ++ ++ while (count && !ret) { ++ sdio_writeb(self->func, *(u8 *)src, reg, &ret); ++ ++ src++; ++ reg++; ++ count--; ++ } ++ ++ return ret; ++} ++ ++#if 0 ++static int bes2600_sdio_mem_helper(struct besdbg_priv *self, u8 *data, int count, int write) ++{ ++ int off = 0; ++ int ret; ++ ++ while (off < count) { ++ int block = min(count - off, ); ++ ++ if (write) ++ ret = sdio_memcpy_toio(func, block, data + off, block); ++ else ++ ret = sdio_memcpy_fromio(func, data + off, block, block); ++ if (ret) ++ return ret; ++ ++ off += size; ++ } ++ ++ return 0; ++} ++#endif ++ ++static __poll_t besdbg_poll(struct file *fp, struct poll_table_struct *wait) ++{ ++ struct besdbg_priv* self = fp->private_data; ++ unsigned long flags; ++ __poll_t mask = 0; ++ ++ poll_wait(fp, &self->poll_wait, wait); ++ ++ spin_lock_irqsave(&self->lock, flags); ++ if (self->interrupted) ++ mask = EPOLLIN | EPOLLRDNORM; ++ self->interrupted = false; ++ spin_unlock_irqrestore(&self->lock, flags); ++ ++ return mask; ++} ++ ++static int besdbg_open(struct inode *ip, struct file *fp) ++{ ++ struct besdbg_priv* self = container_of(ip->i_cdev, ++ struct besdbg_priv, cdev); ++ ++ fp->private_data = self; ++ ++ nonseekable_open(ip, fp); ++ return 0; ++} ++ ++static int besdbg_release(struct inode *ip, struct file *fp) ++{ ++// struct besdbg_priv* self = fp->private_data; ++ ++ return 0; ++} ++ ++static long besdbg_ioctl(struct file *fp, unsigned int cmd, unsigned long arg) ++{ ++ struct besdbg_priv* self = fp->private_data; ++ struct device *dev = &self->func->dev; ++ void __user *argp = (void __user *)arg; ++ long ret; ++ ++ switch (cmd) { ++ case BESDBG_IOCTL_GPIO: { ++ struct besdbg_gpio r; ++ ++ if (copy_from_user(&r, argp, sizeof(r))) ++ return -EFAULT; ++ ++ switch (r.gpio) { ++ case BESDBG_GPIO_WAKEUP_DEV: ++ gpiod_set_value(self->wakeup_device_gpio, r.val); ++ break; ++ case BESDBG_GPIO_REGON: ++ gpiod_set_value(self->regon_gpio, r.val); ++ break; ++ case BESDBG_GPIO_WAKEUP_HOST: ++ r.val = gpiod_get_value(self->wakeup_host_gpio); ++ ++ if (copy_to_user(argp, &r, sizeof(r))) ++ return -EFAULT; ++ ++ break; ++ default: ++ return -EINVAL; ++ } ++ return 0; ++ } ++ ++ case BESDBG_IOCTL_REG_READ: { ++ struct besdbg_data r; ++ ++ if (copy_from_user(&r, argp, sizeof(r))) ++ return -EFAULT; ++ ++ if (r.len > 32 || r.len == 0 || !r.data) ++ return -EINVAL; ++ ++ u8 *data = kmalloc(r.len, GFP_KERNEL); ++ if (!data) ++ return -ENOMEM; ++ ++ sdio_claim_host(self->func); ++ ret = bes2600_sdio_reg_read(self, r.reg, data, r.len); ++ sdio_release_host(self->func); ++ ++ if (ret) { ++ dev_err(dev, "read failed\n"); ++ kfree(data); ++ return ret; ++ } ++ ++ if (copy_to_user((void __user *)r.data, data, r.len)) { ++ kfree(data); ++ return -EFAULT; ++ } ++ ++ kfree(data); ++ return 0; ++ } ++ ++ case BESDBG_IOCTL_REG_WRITE: { ++ struct besdbg_data r; ++ ++ if (copy_from_user(&r, argp, sizeof(r))) ++ return -EFAULT; ++ ++ if (r.len > 64 * 1024 || r.len == 0 || !r.data) ++ return -EINVAL; ++ ++ u8 *data = kmalloc(r.len, GFP_KERNEL); ++ if (!data) ++ return -ENOMEM; ++ ++ if (copy_from_user(data, (void __user *)r.data, r.len)) ++ return -EFAULT; ++ ++ sdio_claim_host(self->func); ++ ret = bes2600_sdio_reg_write(self, r.reg, data, r.len); ++ sdio_release_host(self->func); ++ ++ kfree(data); ++ ++ if (ret) { ++ dev_err(dev, "read failed\n"); ++ return ret; ++ } ++ ++ return 0; ++ } ++ ++ case BESDBG_IOCTL_MEM_READ: { ++ struct besdbg_data r; ++ ++ if (copy_from_user(&r, argp, sizeof(r))) ++ return -EFAULT; ++ ++ if (r.len > 1024 * 64 || r.len == 0 || !r.data) ++ return -EINVAL; ++ ++ u8 *data = kmalloc(r.len, GFP_KERNEL); ++ if (!data) ++ return -ENOMEM; ++ ++ sdio_claim_host(self->func); ++ ret = sdio_memcpy_fromio(self->func, data, r.reg, r.len); ++ sdio_release_host(self->func); ++ ++ if (ret) { ++ dev_err(dev, "read failed\n"); ++ kfree(data); ++ return ret; ++ } ++ ++ if (copy_to_user((void __user *)r.data, data, r.len)) { ++ kfree(data); ++ return -EFAULT; ++ } ++ ++ kfree(data); ++ return 0; ++ } ++ ++ case BESDBG_IOCTL_MEM_WRITE: { ++ struct besdbg_data r; ++ ++ if (copy_from_user(&r, argp, sizeof(r))) ++ return -EFAULT; ++ ++ if (r.len > 64 * 1024 || r.len == 0 || !r.data) ++ return -EINVAL; ++ ++ u8 *data = kmalloc(r.len, GFP_KERNEL); ++ if (!data) ++ return -ENOMEM; ++ ++ if (copy_from_user(data, (void __user *)r.data, r.len)) ++ return -EFAULT; ++ ++ sdio_claim_host(self->func); ++ ret = sdio_memcpy_toio(self->func, r.reg, data, r.len); ++ sdio_release_host(self->func); ++ ++ kfree(data); ++ ++ if (ret) { ++ dev_err(dev, "read failed\n"); ++ return ret; ++ } ++ ++ return 0; ++ } ++ } ++ ++ return -EINVAL; ++} ++ ++static const struct file_operations besdbg_fops = { ++ .owner = THIS_MODULE, ++ .open = besdbg_open, ++ .release = besdbg_release, ++ .unlocked_ioctl = besdbg_ioctl, ++ .llseek = noop_llseek, ++ //.read = besdbg_read, ++ .poll = besdbg_poll, ++}; ++ ++static void besdbg_irq_handler(struct besdbg_priv *self) ++{ ++ struct device *dev = &self->func->dev; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&self->lock, flags); ++ self->interrupted = true; ++ spin_unlock_irqrestore(&self->lock, flags); ++ ++ dev_err(dev, "interrupt\n"); ++ wake_up_interruptible(&self->poll_wait); ++} ++ ++static irqreturn_t besdbg_gpio_irq(int irq, void *dev_id) ++{ ++ struct besdbg_priv *self = dev_id; ++ ++ sdio_claim_host(self->func); ++ besdbg_irq_handler(self); ++ sdio_release_host(self->func); ++ ++ return IRQ_HANDLED; ++} ++ ++static int besdbg_request_irq(struct besdbg_priv *self) ++{ ++ int ret; ++ u8 cccr; ++ ++ cccr = sdio_f0_readb(self->func, SDIO_CCCR_IENx, &ret); ++ if (ret) ++ return ret; ++ ++ cccr |= BIT(0) | BIT(self->func->num); ++ ++ sdio_f0_writeb(self->func, cccr, SDIO_CCCR_IENx, &ret); ++ if (ret) ++ return ret; ++ ++ return request_threaded_irq(self->irq, NULL, besdbg_gpio_irq, ++ IRQF_TRIGGER_RISING | IRQF_ONESHOT, ++ "besdbg_gpio_irq", self); ++} ++ ++static void besdbg_sdio_irq_handler(struct sdio_func *func) ++{ ++ struct besdbg_priv *self = sdio_get_drvdata(func); ++ ++ besdbg_irq_handler(self); ++} ++ ++static int besdbg_sdio_irq_subscribe(struct besdbg_priv *self) ++{ ++ int ret = 0; ++ ++ sdio_claim_host(self->func); ++ if (self->irq >= 0) ++ ret = besdbg_request_irq(self); ++ else ++ ret = sdio_claim_irq(self->func, besdbg_sdio_irq_handler); ++ sdio_release_host(self->func); ++ ++ return ret; ++} ++ ++static int besdbg_sdio_irq_unsubscribe(struct besdbg_priv *self) ++{ ++ int ret = 0; ++ ++ if (self->irq >= 0) { ++ free_irq(self->irq, self); ++ } else { ++ sdio_claim_host(self->func); ++ ret = sdio_release_irq(self->func); ++ sdio_release_host(self->func); ++ } ++ ++ return ret; ++} ++ ++static int besdbg_probe(struct sdio_func *func, const struct sdio_device_id *id) ++{ ++ struct device *dev = &func->dev; ++ struct besdbg_priv *self; ++ int ret; ++ ++ if (func->num != 0x01) ++ return -ENODEV; ++ ++ if (!of_device_is_compatible(dev->of_node, "bestechnic,bes2600")) { ++ dev_err(dev, "OF node for function 1 is missing\n"); ++ return -ENODEV; ++ } ++ ++ dev_info(dev, "probe start %d\n", func->num); ++ ++ self = devm_kzalloc(dev, sizeof(*self), GFP_KERNEL); ++ if (!self) ++ return -ENOMEM; ++ ++ self->func = func; ++ init_waitqueue_head(&self->poll_wait); ++ spin_lock_init(&self->lock); ++ ++ func->card->quirks |= MMC_QUIRK_LENIENT_FN0; ++ //func->card->quirks |= MMC_QUIRK_BROKEN_BYTE_MODE_512; ++ ++ self->wakeup_device_gpio = devm_gpiod_get(dev, "device-wakeup", GPIOD_OUT_LOW); ++ if (IS_ERR(self->wakeup_device_gpio)) ++ return dev_err_probe(dev, PTR_ERR(self->wakeup_device_gpio), ++ "can't get device-wakeup gpio\n"); ++/* ++ self->wakeup_host_gpio = devm_gpiod_get(dev, "host-wakeup", GPIOD_IN); ++ if (IS_ERR(self->wakeup_host_gpio)) ++ return dev_err_probe(dev, PTR_ERR(self->wakeup_host_gpio), ++ "can't get host-wakeup gpio\n"); ++*/ ++ self->regon_gpio = devm_gpiod_get(dev, "regon", GPIOD_OUT_LOW); ++ if (IS_ERR(self->regon_gpio)) ++ return dev_err_probe(dev, PTR_ERR(self->regon_gpio), ++ "can't get regon gpio\n"); ++ ++/* ++ self->irq = gpiod_to_irq(self->wakeup_host_gpio); ++ if (self->irq < 0) { ++ dev_err(dev, "Could not get host wakeup irq\n"); ++ return self->irq; ++ } ++*/ ++ //self->irq = -1; ++ ++ self->irq = irq_of_parse_and_map(dev->of_node, 0); ++ if (!self->irq) { ++ dev_warn(dev, "No irq in platform data\n"); ++ self->irq = -1; ++ } ++ ++ ret = alloc_chrdev_region(&self->major, 0, 1, "besdbg"); ++ if (ret) { ++ dev_err(dev, "can't allocate chrdev region"); ++ return ret; ++ } ++ ++ cdev_init(&self->cdev, &besdbg_fops); ++ self->cdev.owner = THIS_MODULE; ++ ret = cdev_add(&self->cdev, self->major, 1); ++ if (ret) { ++ dev_err(dev, "can't add cdev"); ++ goto err_unreg_chrev_region; ++ } ++ ++ struct device *sdev = device_create(besdbg_class, dev, self->major, self, "besdbg"); ++ if (IS_ERR(sdev)) { ++ ret = PTR_ERR(sdev); ++ goto err_cdev; ++ } ++ ++ sdio_set_drvdata(func, self); ++ ++ sdio_claim_host(func); ++ ret = sdio_enable_func(func); ++ if (ret) ++ dev_warn(dev, "can't enable func %d\n", ret); ++ sdio_release_host(func); ++ ++ ret = besdbg_sdio_irq_subscribe(self); ++ if (ret) ++ dev_warn(dev, "can't subscribe to irq %d\n", ret); ++ ++ dev_info(dev, "probe success\n"); ++ ++ return 0; ++ ++err_cdev: ++ cdev_del(&self->cdev); ++err_unreg_chrev_region: ++ unregister_chrdev_region(self->major, 0); ++ return ret; ++} ++ ++static void besdbg_remove(struct sdio_func *func) ++{ ++ struct besdbg_priv *self = sdio_get_drvdata(func); ++ struct device *dev = &func->dev; ++ ++ if (!self) ++ return; ++ ++ dev_info(dev, "remove\n"); ++ ++ cdev_del(&self->cdev); ++ unregister_chrdev_region(self->major, 1); ++ device_destroy(besdbg_class, self->major); ++ ++ besdbg_sdio_irq_unsubscribe(self); ++ ++ sdio_claim_host(func); ++ sdio_disable_func(func); ++ sdio_release_host(func); ++ ++ sdio_set_drvdata(func, NULL); ++ ++ gpiod_set_value(self->wakeup_device_gpio, 0); ++ gpiod_set_value(self->regon_gpio, 0); ++} ++ ++static const struct sdio_device_id besdbg_ids[] = { ++ { SDIO_DEVICE(0xbe57, 0x2002), }, ++ { }, ++}; ++MODULE_DEVICE_TABLE(sdio, besdbg_ids); ++ ++static struct sdio_driver besdbg_sdio_driver = { ++ .name = "besdbg_sdio", ++ .id_table = besdbg_ids, ++ .probe = besdbg_probe, ++ .remove = besdbg_remove, ++}; ++ ++//module_sdio_driver(besdbg_sdio_driver); ++ ++static int __init besdbg_driver_init(void) ++{ ++ int ret; ++ ++ pr_err("besdbg init\n"); ++ ++ besdbg_class = class_create("besdbg"); ++ if (IS_ERR(besdbg_class)) ++ return PTR_ERR(besdbg_class); ++ ++ ret = sdio_register_driver(&besdbg_sdio_driver); ++ if (ret) { ++ class_destroy(besdbg_class); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static void __exit besdbg_driver_exit(void) ++{ ++ pr_err("besdbg exit\n"); ++ ++ sdio_unregister_driver(&besdbg_sdio_driver); ++ class_destroy(besdbg_class); ++} ++ ++module_init(besdbg_driver_init); ++module_exit(besdbg_driver_exit); ++ ++MODULE_AUTHOR("Ondrej Jirman "); ++MODULE_DESCRIPTION("BES2600 SDIO debug driver"); ++MODULE_LICENSE("GPL"); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/besdbg-6.18/0002-mmc-Add-pwrseq_bes-driver-for-powering-up-BES2600-on.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/besdbg-6.18/0002-mmc-Add-pwrseq_bes-driver-for-powering-up-BES2600-on.patch new file mode 100644 index 000000000..e2a71d899 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/besdbg-6.18/0002-mmc-Add-pwrseq_bes-driver-for-powering-up-BES2600-on.patch @@ -0,0 +1,167 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Mon, 29 Apr 2024 14:22:36 +0200 +Subject: mmc: Add pwrseq_bes driver for powering up BES2600 on PineTab2 + +This is Pinetab2 specific driver that deals with intricacies of +powering up BES2600 chip on PT2. + +Signed-off-by: Ondrej Jirman +--- + drivers/mmc/core/Makefile | 1 + + drivers/mmc/core/pwrseq_bes.c | 132 ++++++++++ + 2 files changed, 133 insertions(+) + +diff --git a/drivers/mmc/core/Makefile b/drivers/mmc/core/Makefile +index 111111111111..222222222222 100644 +--- a/drivers/mmc/core/Makefile ++++ b/drivers/mmc/core/Makefile +@@ -13,6 +13,7 @@ mmc_core-$(CONFIG_OF) += pwrseq.o + obj-$(CONFIG_PWRSEQ_SIMPLE) += pwrseq_simple.o + obj-$(CONFIG_PWRSEQ_SD8787) += pwrseq_sd8787.o + obj-$(CONFIG_PWRSEQ_EMMC) += pwrseq_emmc.o ++obj-y += pwrseq_bes.o + mmc_core-$(CONFIG_DEBUG_FS) += debugfs.o + obj-$(CONFIG_MMC_BLOCK) += mmc_block.o + mmc_block-objs := block.o queue.o +diff --git a/drivers/mmc/core/pwrseq_bes.c b/drivers/mmc/core/pwrseq_bes.c +new file mode 100644 +index 000000000000..111111111111 +--- /dev/null ++++ b/drivers/mmc/core/pwrseq_bes.c +@@ -0,0 +1,132 @@ ++// SPDX-License-Identifier: GPL-2.0-only ++// Written by Ondrej Jirman 2024 ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "pwrseq.h" ++ ++struct mmc_pwrseq_bes { ++ struct mmc_pwrseq pwrseq; ++ bool clk_enabled; ++ struct clk *ext_clk; ++ struct gpio_desc *pwrkey_gpio; ++ struct gpio_desc *reset_gpio; ++ struct gpio_desc *pwren_gpio; ++}; ++ ++#define to_pwrseq_bes(p) container_of(p, struct mmc_pwrseq_bes, pwrseq) ++ ++static void mmc_pwrseq_bes_pre_power_on(struct mmc_host *host) ++{ ++ struct mmc_pwrseq_bes *pwrseq = to_pwrseq_bes(host->pwrseq); ++ ++ if (!pwrseq->clk_enabled) { ++ clk_prepare_enable(pwrseq->ext_clk); ++ pwrseq->clk_enabled = true; ++ } ++ ++ gpiod_set_value_cansleep(pwrseq->pwrkey_gpio, 0); ++ gpiod_set_value_cansleep(pwrseq->reset_gpio, 0); ++ gpiod_set_value_cansleep(pwrseq->pwren_gpio, 1); ++ usleep_range(10000, 12000); ++} ++ ++static void mmc_pwrseq_bes_post_power_on(struct mmc_host *host) ++{ ++ struct mmc_pwrseq_bes *pwrseq = to_pwrseq_bes(host->pwrseq); ++ ++ gpiod_set_value_cansleep(pwrseq->pwrkey_gpio, 1); ++ usleep_range(15000, 16000); // this is the minimum that works ++ gpiod_set_value_cansleep(pwrseq->pwrkey_gpio, 0); ++ usleep_range(10000, 12000); // works ++} ++ ++static void mmc_pwrseq_bes_power_off(struct mmc_host *host) ++{ ++ struct mmc_pwrseq_bes *pwrseq = to_pwrseq_bes(host->pwrseq); ++ ++ ++ if (pwrseq->clk_enabled) { ++ clk_disable_unprepare(pwrseq->ext_clk); ++ pwrseq->clk_enabled = false; ++ } ++ ++ gpiod_set_value_cansleep(pwrseq->pwren_gpio, 0); ++ msleep(100); ++} ++ ++static const struct mmc_pwrseq_ops mmc_pwrseq_bes_ops = { ++ .pre_power_on = mmc_pwrseq_bes_pre_power_on, ++ .post_power_on = mmc_pwrseq_bes_post_power_on, ++ .power_off = mmc_pwrseq_bes_power_off, ++}; ++ ++static const struct of_device_id mmc_pwrseq_bes_of_match[] = { ++ { .compatible = "mmc-pwrseq-bes",}, ++ {/* sentinel */}, ++}; ++MODULE_DEVICE_TABLE(of, mmc_pwrseq_bes_of_match); ++ ++static int mmc_pwrseq_bes_probe(struct platform_device *pdev) ++{ ++ struct mmc_pwrseq_bes *pwrseq; ++ struct device *dev = &pdev->dev; ++ ++ pwrseq = devm_kzalloc(dev, sizeof(*pwrseq), GFP_KERNEL); ++ if (!pwrseq) ++ return -ENOMEM; ++ ++ pwrseq->ext_clk = devm_clk_get(dev, "ext_clock"); ++ if (IS_ERR(pwrseq->ext_clk)) ++ return dev_err_probe(dev, PTR_ERR(pwrseq->ext_clk), "can't get ext_clock\n"); ++ ++ pwrseq->pwrkey_gpio = devm_gpiod_get(dev, "pwrkey", GPIOD_OUT_LOW); ++ if (IS_ERR(pwrseq->pwrkey_gpio)) ++ return dev_err_probe(dev, PTR_ERR(pwrseq->pwrkey_gpio), "can't get pwrkey gpio\n"); ++ ++ pwrseq->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); ++ if (IS_ERR(pwrseq->reset_gpio)) ++ return dev_err_probe(dev, PTR_ERR(pwrseq->reset_gpio), "can't get reset gpio\n"); ++ ++ pwrseq->pwren_gpio = devm_gpiod_get(dev, "pwren", GPIOD_OUT_LOW); ++ if (IS_ERR(pwrseq->pwren_gpio)) ++ return dev_err_probe(dev, PTR_ERR(pwrseq->pwren_gpio), "can't get pwren gpio\n"); ++ ++ pwrseq->pwrseq.dev = dev; ++ pwrseq->pwrseq.ops = &mmc_pwrseq_bes_ops; ++ pwrseq->pwrseq.owner = THIS_MODULE; ++ platform_set_drvdata(pdev, pwrseq); ++ ++ return mmc_pwrseq_register(&pwrseq->pwrseq); ++} ++ ++static void mmc_pwrseq_bes_remove(struct platform_device *pdev) ++{ ++ struct mmc_pwrseq_bes *pwrseq = platform_get_drvdata(pdev); ++ ++ mmc_pwrseq_unregister(&pwrseq->pwrseq); ++} ++ ++static struct platform_driver mmc_pwrseq_bes_driver = { ++ .probe = mmc_pwrseq_bes_probe, ++ .remove = mmc_pwrseq_bes_remove, ++ .driver = { ++ .name = "pwrseq_bes", ++ .of_match_table = mmc_pwrseq_bes_of_match, ++ }, ++}; ++ ++module_platform_driver(mmc_pwrseq_bes_driver); ++MODULE_LICENSE("GPL v2"); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/bluetooth-h5-Don-t-re-initialize-rtl8723cs-on-resume.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/bt-6.18/0001-bluetooth-h5-Don-t-re-initialize-rtl8723cs-on-resume.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.megous/bluetooth-h5-Don-t-re-initialize-rtl8723cs-on-resume.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/bt-6.18/0001-bluetooth-h5-Don-t-re-initialize-rtl8723cs-on-resume.patch index 8beb71be0..beeb40dfa 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/bluetooth-h5-Don-t-re-initialize-rtl8723cs-on-resume.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/bt-6.18/0001-bluetooth-h5-Don-t-re-initialize-rtl8723cs-on-resume.patch @@ -1,4 +1,4 @@ -From d1b8c3ed5aea01c318002f6842f5391fd6d68a76 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 30 Apr 2023 18:12:17 +0200 Subject: bluetooth: h5: Don't re-initialize rtl8723cs on resume @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c -index d0d4420c1a0f..7e7b65a499cc 100644 +index 111111111111..222222222222 100644 --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c @@ -1108,7 +1108,7 @@ static const struct of_device_id rtl_bluetooth_of_match[] = { @@ -22,7 +22,7 @@ index d0d4420c1a0f..7e7b65a499cc 100644 + .data = (const void *)&h5_data_rtl8822cs }, { .compatible = "realtek,rtl8723ds-bt", .data = (const void *)&h5_data_rtl8723bs }, - #endif + { .compatible = "realtek,rtl8723cs-bt", -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0001-cw1200-support-loading-cw1x60-FW.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0001-cw1200-support-loading-cw1x60-FW.patch new file mode 100644 index 000000000..e24988bcf --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0001-cw1200-support-loading-cw1x60-FW.patch @@ -0,0 +1,98 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Wed, 23 Jun 2021 19:54:56 +0200 +Subject: cw1200: support loading cw1x60 FW + +Signed-off-by: Jernej Skrabec +--- + drivers/net/wireless/st/cw1200/fwio.c | 47 ++++++++-- + drivers/net/wireless/st/cw1200/hwio.h | 1 + + 2 files changed, 42 insertions(+), 6 deletions(-) + +diff --git a/drivers/net/wireless/st/cw1200/fwio.c b/drivers/net/wireless/st/cw1200/fwio.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/fwio.c ++++ b/drivers/net/wireless/st/cw1200/fwio.c +@@ -48,6 +48,39 @@ static int cw1200_get_hw_type(u32 config_reg_val, int *major_revision) + return hw_type; + } + ++static int cw1200_load_bootloader(struct cw1200_common *priv) ++{ ++ const struct firmware *bootloader = NULL; ++ const char *bl_path = BOOTLOADER_CW1X60; ++ u32 *data, i, addr = AHB_MEMORY_ADDRESS; ++ int ret; ++ ++ ret = request_firmware(&bootloader, bl_path, priv->pdev); ++ if (ret) { ++ pr_err("Can't load bootloader file %s.\n", bl_path); ++ goto error; ++ } ++ ++ data = (u32 *)bootloader->data; ++ for (i = 0; i < bootloader->size / 4; i++, addr += 4) { ++ ret = cw1200_reg_write_32(priv, ++ ST90TDS_SRAM_BASE_ADDR_REG_ID, addr); ++ if (ret < 0) ++ goto error; ++ ret = cw1200_reg_write_32(priv, ++ ST90TDS_AHB_DPORT_REG_ID, data[i]); ++ if (ret < 0) ++ goto error; ++ } ++ ++ pr_info("Bootloader download complete\n"); ++ ++error: ++ release_firmware(bootloader); ++ ++ return ret; ++} ++ + static int cw1200_load_firmware_cw1200(struct cw1200_common *priv) + { + int ret, block, num_blocks; +@@ -128,9 +161,11 @@ static int cw1200_load_firmware_cw1200(struct cw1200_common *priv) + APB_WRITE(DOWNLOAD_STATUS_REG, DOWNLOAD_PENDING); + APB_WRITE(DOWNLOAD_FLAGS_REG, 0); + +- /* Write the NOP Instruction */ +- REG_WRITE(ST90TDS_SRAM_BASE_ADDR_REG_ID, 0xFFF20000); +- REG_WRITE(ST90TDS_AHB_DPORT_REG_ID, 0xEAFFFFFE); ++ if (priv->hw_revision != CW1X60_HW_REV) { ++ /* Write the NOP Instruction */ ++ REG_WRITE(ST90TDS_SRAM_BASE_ADDR_REG_ID, 0xFFF20000); ++ REG_WRITE(ST90TDS_AHB_DPORT_REG_ID, 0xEAFFFFFE); ++ } + + /* Release CPU from RESET */ + REG_READ(ST90TDS_CONFIG_REG_ID, val32); +@@ -469,9 +504,9 @@ int cw1200_load_firmware(struct cw1200_common *priv) + switch (priv->hw_type) { + case HIF_8601_SILICON: + if (priv->hw_revision == CW1X60_HW_REV) { +- pr_err("Can't handle CW1160/1260 firmware load yet.\n"); +- ret = -ENOTSUPP; +- goto out; ++ ret = cw1200_load_bootloader(priv); ++ if (ret) ++ goto out; + } + ret = cw1200_load_firmware_cw1200(priv); + break; +diff --git a/drivers/net/wireless/st/cw1200/hwio.h b/drivers/net/wireless/st/cw1200/hwio.h +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/hwio.h ++++ b/drivers/net/wireless/st/cw1200/hwio.h +@@ -89,6 +89,7 @@ struct download_cntl_t { + + + #define SYS_BASE_ADDR_SILICON (0) ++#define AHB_MEMORY_ADDRESS (SYS_BASE_ADDR_SILICON + 0x08000000) + #define PAC_BASE_ADDRESS_SILICON (SYS_BASE_ADDR_SILICON + 0x09000000) + #define PAC_SHARED_MEMORY_SILICON (PAC_BASE_ADDRESS_SILICON) + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0002-cw1200-xr819-hacks.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0002-cw1200-xr819-hacks.patch new file mode 100644 index 000000000..602339a85 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0002-cw1200-xr819-hacks.patch @@ -0,0 +1,391 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sat, 3 Jul 2021 08:59:21 +0200 +Subject: cw1200: xr819 hacks + +Signed-off-by: Jernej Skrabec +--- + drivers/net/wireless/st/cw1200/cw1200.h | 7 +- + drivers/net/wireless/st/cw1200/cw1200_sdio.c | 59 +++++++++- + drivers/net/wireless/st/cw1200/cw1200_spi.c | 3 +- + drivers/net/wireless/st/cw1200/fwio.c | 20 +++- + drivers/net/wireless/st/cw1200/fwio.h | 3 + + drivers/net/wireless/st/cw1200/main.c | 9 +- + drivers/net/wireless/st/cw1200/queue.h | 7 +- + drivers/net/wireless/st/cw1200/sta.c | 46 +++++--- + drivers/net/wireless/st/cw1200/wsm.c | 9 ++ + 9 files changed, 128 insertions(+), 35 deletions(-) + +diff --git a/drivers/net/wireless/st/cw1200/cw1200.h b/drivers/net/wireless/st/cw1200/cw1200.h +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/cw1200.h ++++ b/drivers/net/wireless/st/cw1200/cw1200.h +@@ -117,6 +117,10 @@ struct cw1200_common { + CW1200_HW_REV_CUT22 = 22, + CW1X60_HW_REV = 40, + } hw_revision; ++ enum cw1200_fw_api { ++ CW1200_FW_API_ORIGINAL = 0, ++ CW1200_FW_API_XRADIO, ++ } fw_api; + int hw_refclk; + bool hw_have_5ghz; + const struct firmware *sdd; +@@ -292,7 +296,8 @@ int cw1200_core_probe(const struct hwbus_ops *hwbus_ops, + struct device *pdev, + struct cw1200_common **pself, + int ref_clk, const u8 *macaddr, +- const char *sdd_path, bool have_5ghz); ++ const char *sdd_path, bool have_5ghz, ++ unsigned int fw_api); + void cw1200_core_release(struct cw1200_common *self); + + #define FWLOAD_BLOCK_SIZE (1024) +diff --git a/drivers/net/wireless/st/cw1200/cw1200_sdio.c b/drivers/net/wireless/st/cw1200/cw1200_sdio.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/cw1200_sdio.c ++++ b/drivers/net/wireless/st/cw1200/cw1200_sdio.c +@@ -15,6 +15,9 @@ + #include + #include + #include ++#include ++#include ++#include + #include + + #include "cw1200.h" +@@ -30,9 +33,7 @@ MODULE_LICENSE("GPL"); + + /* Default platform data for Sagrad modules */ + static struct cw1200_platform_data_sdio sagrad_109x_evk_platform_data = { +- .ref_clk = 38400, +- .have_5ghz = false, +- .sdd_file = "sdd_sagrad_1091_1098.bin", ++ .ref_clk = 24000, + }; + + /* Allow platform data to be overridden */ +@@ -50,8 +51,15 @@ struct hwbus_priv { + }; + + static const struct sdio_device_id cw1200_sdio_ids[] = { +- { SDIO_DEVICE(SDIO_VENDOR_ID_STE, SDIO_DEVICE_ID_STE_CW1200) }, +- { /* end: all zeroes */ }, ++ { ++ SDIO_DEVICE(SDIO_VENDOR_ID_STE, SDIO_DEVICE_ID_STE_CW1200), ++ .driver_data = CW1200_FW_API_ORIGINAL ++ }, ++ { ++ SDIO_DEVICE(SDIO_VENDOR_ID_STE, 0x2281), ++ .driver_data = CW1200_FW_API_XRADIO ++ }, ++ { /* end: all zeroes */ }, + }; + MODULE_DEVICE_TABLE(sdio, cw1200_sdio_ids); + +@@ -274,6 +282,41 @@ static const struct hwbus_ops cw1200_sdio_hwbus_ops = { + .power_mgmt = cw1200_sdio_pm, + }; + ++static const struct of_device_id xradio_sdio_of_match_table[] = { ++ { .compatible = "xradio,xr819" }, ++ { } ++}; ++ ++static int cw1200_probe_of(struct sdio_func *func) ++{ ++ struct device *dev = &func->dev; ++ struct device_node *np = dev->of_node; ++ const struct of_device_id *of_id; ++ u8 *macaddr; ++ int irq; ++ ++ of_id = of_match_node(xradio_sdio_of_match_table, np); ++ if (!of_id) ++ return -ENODEV; ++ ++ irq = irq_of_parse_and_map(np, 0); ++ if (!irq) { ++ pr_err("SDIO: No irq in platform data\n"); ++ return -EINVAL; ++ } ++ ++ global_plat_data->irq = irq; ++ ++ macaddr = devm_kmalloc(dev, ETH_ALEN, GFP_KERNEL); ++ if (!macaddr) ++ return -ENOMEM; ++ ++ if (!of_get_mac_address(np, macaddr)) ++ global_plat_data->macaddr = macaddr; ++ ++ return 0; ++} ++ + /* Probe Function to be called by SDIO stack when device is discovered */ + static int cw1200_sdio_probe(struct sdio_func *func, + const struct sdio_device_id *id) +@@ -287,6 +330,8 @@ static int cw1200_sdio_probe(struct sdio_func *func, + if (func->num != 0x01) + return -ENODEV; + ++ cw1200_probe_of(func); ++ + self = kzalloc(sizeof(*self), GFP_KERNEL); + if (!self) { + pr_err("Can't allocate SDIO hwbus_priv.\n"); +@@ -294,6 +339,7 @@ static int cw1200_sdio_probe(struct sdio_func *func, + } + + func->card->quirks |= MMC_QUIRK_LENIENT_FN0; ++ func->card->quirks |= MMC_QUIRK_BROKEN_BYTE_MODE_512; + + self->pdata = global_plat_data; /* FIXME */ + self->func = func; +@@ -309,7 +355,8 @@ static int cw1200_sdio_probe(struct sdio_func *func, + self->pdata->ref_clk, + self->pdata->macaddr, + self->pdata->sdd_file, +- self->pdata->have_5ghz); ++ self->pdata->have_5ghz, ++ id->driver_data); + if (status) { + cw1200_sdio_irq_unsubscribe(self); + sdio_claim_host(func); +diff --git a/drivers/net/wireless/st/cw1200/cw1200_spi.c b/drivers/net/wireless/st/cw1200/cw1200_spi.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/cw1200_spi.c ++++ b/drivers/net/wireless/st/cw1200/cw1200_spi.c +@@ -421,7 +421,8 @@ static int cw1200_spi_probe(struct spi_device *func) + self->pdata->ref_clk, + self->pdata->macaddr, + self->pdata->sdd_file, +- self->pdata->have_5ghz); ++ self->pdata->have_5ghz, ++ CW1200_FW_API_ORIGINAL); + + if (status) { + cw1200_spi_irq_unsubscribe(self); +diff --git a/drivers/net/wireless/st/cw1200/fwio.c b/drivers/net/wireless/st/cw1200/fwio.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/fwio.c ++++ b/drivers/net/wireless/st/cw1200/fwio.c +@@ -51,10 +51,15 @@ static int cw1200_get_hw_type(u32 config_reg_val, int *major_revision) + static int cw1200_load_bootloader(struct cw1200_common *priv) + { + const struct firmware *bootloader = NULL; +- const char *bl_path = BOOTLOADER_CW1X60; + u32 *data, i, addr = AHB_MEMORY_ADDRESS; ++ const char *bl_path; + int ret; + ++ if (priv->fw_api == CW1200_FW_API_XRADIO) ++ bl_path = BOOTLOADER_XRADIO; ++ else ++ bl_path = BOOTLOADER_CW1X60; ++ + ret = request_firmware(&bootloader, bl_path, priv->pdev); + if (ret) { + pr_err("Can't load bootloader file %s.\n", bl_path); +@@ -145,9 +150,16 @@ static int cw1200_load_firmware_cw1200(struct cw1200_common *priv) + priv->sdd_path = SDD_FILE_22; + break; + case CW1X60_HW_REV: +- fw_path = FIRMWARE_CW1X60; +- if (!priv->sdd_path) +- priv->sdd_path = SDD_FILE_CW1X60; ++ if (priv->fw_api == CW1200_FW_API_XRADIO) ++ fw_path = FIRMWARE_XRADIO; ++ else ++ fw_path = FIRMWARE_CW1X60; ++ if (!priv->sdd_path) { ++ if (priv->fw_api == CW1200_FW_API_XRADIO) ++ priv->sdd_path = SDD_FILE_XRADIO; ++ else ++ priv->sdd_path = SDD_FILE_CW1X60; ++ } + break; + default: + pr_err("Invalid silicon revision %d.\n", priv->hw_revision); +diff --git a/drivers/net/wireless/st/cw1200/fwio.h b/drivers/net/wireless/st/cw1200/fwio.h +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/fwio.h ++++ b/drivers/net/wireless/st/cw1200/fwio.h +@@ -15,12 +15,15 @@ + #define FWIO_H_INCLUDED + + #define BOOTLOADER_CW1X60 "boot_cw1x60.bin" ++#define BOOTLOADER_XRADIO "boot_xr819.bin" + #define FIRMWARE_CW1X60 "wsm_cw1x60.bin" ++#define FIRMWARE_XRADIO "fw_xr819.bin" + #define FIRMWARE_CUT22 "wsm_22.bin" + #define FIRMWARE_CUT20 "wsm_20.bin" + #define FIRMWARE_CUT11 "wsm_11.bin" + #define FIRMWARE_CUT10 "wsm_10.bin" + #define SDD_FILE_CW1X60 "sdd_cw1x60.bin" ++#define SDD_FILE_XRADIO "sdd_xr819.bin" + #define SDD_FILE_22 "sdd_22.bin" + #define SDD_FILE_20 "sdd_20.bin" + #define SDD_FILE_11 "sdd_11.bin" +diff --git a/drivers/net/wireless/st/cw1200/main.c b/drivers/net/wireless/st/cw1200/main.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/main.c ++++ b/drivers/net/wireless/st/cw1200/main.c +@@ -255,7 +255,8 @@ static const struct wiphy_wowlan_support cw1200_wowlan_support = { + + + static struct ieee80211_hw *cw1200_init_common(const u8 *macaddr, +- const bool have_5ghz) ++ const bool have_5ghz, ++ unsigned int fw_api) + { + int i, band; + struct ieee80211_hw *hw; +@@ -271,6 +272,7 @@ static struct ieee80211_hw *cw1200_init_common(const u8 *macaddr, + priv->mode = NL80211_IFTYPE_UNSPECIFIED; + priv->rates = cw1200_rates; /* TODO: fetch from FW */ + priv->mcs_rates = cw1200_n_rates; ++ priv->fw_api = fw_api; + if (cw1200_ba_rx_tids != -1) + priv->ba_rx_tid_mask = cw1200_ba_rx_tids; + else +@@ -522,7 +524,8 @@ int cw1200_core_probe(const struct hwbus_ops *hwbus_ops, + struct device *pdev, + struct cw1200_common **core, + int ref_clk, const u8 *macaddr, +- const char *sdd_path, bool have_5ghz) ++ const char *sdd_path, bool have_5ghz, ++ unsigned int fw_api) + { + int err = -EINVAL; + struct ieee80211_hw *dev; +@@ -532,7 +535,7 @@ int cw1200_core_probe(const struct hwbus_ops *hwbus_ops, + .disable_more_flag_usage = true, + }; + +- dev = cw1200_init_common(macaddr, have_5ghz); ++ dev = cw1200_init_common(macaddr, have_5ghz, fw_api); + if (!dev) + goto err; + +diff --git a/drivers/net/wireless/st/cw1200/queue.h b/drivers/net/wireless/st/cw1200/queue.h +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/queue.h ++++ b/drivers/net/wireless/st/cw1200/queue.h +@@ -101,7 +101,12 @@ bool cw1200_queue_stats_is_empty(struct cw1200_queue_stats *stats, + + static inline u8 cw1200_queue_get_queue_id(u32 packet_id) + { +- return (packet_id >> 16) & 0xFF; ++ return (packet_id >> 16) & 0xF; ++} ++ ++static inline u8 cw1200_queue_get_link_id(u32 packet_id) ++{ ++ return (packet_id >> 24) & 0xF; + } + + static inline u8 cw1200_queue_get_generation(u32 packet_id) +diff --git a/drivers/net/wireless/st/cw1200/sta.c b/drivers/net/wireless/st/cw1200/sta.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/sta.c ++++ b/drivers/net/wireless/st/cw1200/sta.c +@@ -343,28 +343,34 @@ int cw1200_config(struct ieee80211_hw *dev, int radio_idx, u32 changed) + if ((changed & IEEE80211_CONF_CHANGE_CHANNEL) && + (priv->channel != conf->chandef.chan)) { + struct ieee80211_channel *ch = conf->chandef.chan; +- struct wsm_switch_channel channel = { +- .channel_number = ch->hw_value, +- }; ++ + pr_debug("[STA] Freq %d (wsm ch: %d).\n", + ch->center_freq, ch->hw_value); + +- /* __cw1200_flush() implicitly locks tx, if successful */ +- if (!__cw1200_flush(priv, false)) { +- if (!wsm_switch_channel(priv, &channel)) { +- ret = wait_event_timeout(priv->channel_switch_done, +- !priv->channel_switch_in_progress, +- 3 * HZ); +- if (ret) { +- /* Already unlocks if successful */ +- priv->channel = ch; +- ret = 0; ++ if (priv->fw_api == CW1200_FW_API_XRADIO) { ++ priv->channel = ch; ++ } else { ++ struct wsm_switch_channel channel = { ++ .channel_number = ch->hw_value, ++ }; ++ ++ /* __cw1200_flush() implicitly locks tx, if successful */ ++ if (!__cw1200_flush(priv, false)) { ++ if (!wsm_switch_channel(priv, &channel)) { ++ ret = wait_event_timeout(priv->channel_switch_done, ++ !priv->channel_switch_in_progress, ++ 3 * HZ); ++ if (ret) { ++ /* Already unlocks if successful */ ++ priv->channel = ch; ++ ret = 0; ++ } else { ++ ret = -ETIMEDOUT; ++ } + } else { +- ret = -ETIMEDOUT; ++ /* Unlock if switch channel fails */ ++ wsm_unlock_tx(priv); + } +- } else { +- /* Unlock if switch channel fails */ +- wsm_unlock_tx(priv); + } + } + } +@@ -1304,7 +1310,7 @@ static void cw1200_do_join(struct cw1200_common *priv) + } + + /* Enable asynchronous join calls */ +- if (!priv->vif->cfg.ibss_joined) { ++ if (priv->fw_api != CW1200_FW_API_XRADIO && !priv->vif->cfg.ibss_joined) { + join.flags |= WSM_JOIN_FLAGS_FORCE; + join.flags |= WSM_JOIN_FLAGS_FORCE_WITH_COMPLETE_IND; + } +@@ -1744,7 +1750,9 @@ void cw1200_set_cts_work(struct work_struct *work) + + wsm_write_mib(priv, WSM_MIB_ID_NON_ERP_PROTECTION, + &use_cts_prot, sizeof(use_cts_prot)); +- wsm_update_ie(priv, &update_ie); ++ if (priv->fw_api != CW1200_FW_API_XRADIO || ++ priv->mode != NL80211_IFTYPE_STATION) ++ wsm_update_ie(priv, &update_ie); + + return; + } +diff --git a/drivers/net/wireless/st/cw1200/wsm.c b/drivers/net/wireless/st/cw1200/wsm.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/wsm.c ++++ b/drivers/net/wireless/st/cw1200/wsm.c +@@ -360,9 +360,18 @@ static int wsm_tx_confirm(struct cw1200_common *priv, + tx_confirm.tx_rate = WSM_GET8(buf); + tx_confirm.ack_failures = WSM_GET8(buf); + tx_confirm.flags = WSM_GET16(buf); ++ if (priv->fw_api == CW1200_FW_API_XRADIO) { ++ /* rate_try[3] */ ++ WSM_GET32(buf); ++ WSM_GET32(buf); ++ WSM_GET32(buf); ++ } + tx_confirm.media_delay = WSM_GET32(buf); + tx_confirm.tx_queue_delay = WSM_GET32(buf); + ++ if (priv->fw_api == CW1200_FW_API_XRADIO) ++ link_id = cw1200_queue_get_link_id(tx_confirm.packet_id); ++ + cw1200_tx_confirm_cb(priv, link_id, &tx_confirm); + return 0; + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0003-cw1200-use-kmalloc-allocation-instead-of-stack.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0003-cw1200-use-kmalloc-allocation-instead-of-stack.patch new file mode 100644 index 000000000..248c0565f --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0003-cw1200-use-kmalloc-allocation-instead-of-stack.patch @@ -0,0 +1,278 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Tue, 22 Jun 2021 22:12:12 +0200 +Subject: cw1200: use kmalloc() allocation instead of stack + +It turns out that if CONFIG_VMAP_STACK is enabled and src or dst is +memory allocated on stack, SDIO operations fail due to invalid memory +address conversion. + +Fix that by using kmalloc() allocated memory for read/write 16/32 +funtions. + +Signed-off-by: Jernej Skrabec +--- + drivers/net/wireless/st/cw1200/bh.c | 11 +- + drivers/net/wireless/st/cw1200/hwio.c | 52 +++++- + drivers/net/wireless/st/cw1200/hwio.h | 93 ++++++++-- + 3 files changed, 126 insertions(+), 30 deletions(-) + +diff --git a/drivers/net/wireless/st/cw1200/bh.c b/drivers/net/wireless/st/cw1200/bh.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/bh.c ++++ b/drivers/net/wireless/st/cw1200/bh.c +@@ -415,9 +415,13 @@ static int cw1200_bh(void *arg) + int pending_tx = 0; + int tx_burst; + long status; +- u32 dummy; ++ u32 *dummy; + int ret; + ++ dummy = kmalloc(sizeof(*dummy), GFP_KERNEL); ++ if (!dummy) ++ return -ENOMEM; ++ + for (;;) { + if (!priv->hw_bufs_used && + priv->powersave_enabled && +@@ -439,7 +443,7 @@ static int cw1200_bh(void *arg) + (atomic_read(&priv->bh_rx) == 0) && + (atomic_read(&priv->bh_tx) == 0)) + cw1200_reg_read(priv, ST90TDS_CONFIG_REG_ID, +- &dummy, sizeof(dummy)); ++ dummy, sizeof(*dummy)); + + pr_debug("[BH] waiting ...\n"); + status = wait_event_interruptible_timeout(priv->bh_wq, ({ +@@ -601,5 +605,8 @@ static int cw1200_bh(void *arg) + priv->bh_error = 1; + /* TODO: schedule_work(recovery) */ + } ++ ++ kfree(dummy); ++ + return 0; + } +diff --git a/drivers/net/wireless/st/cw1200/hwio.c b/drivers/net/wireless/st/cw1200/hwio.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/hwio.c ++++ b/drivers/net/wireless/st/cw1200/hwio.c +@@ -66,33 +66,65 @@ static int __cw1200_reg_write(struct cw1200_common *priv, u16 addr, + static inline int __cw1200_reg_read_32(struct cw1200_common *priv, + u16 addr, u32 *val) + { +- __le32 tmp; +- int i = __cw1200_reg_read(priv, addr, &tmp, sizeof(tmp), 0); +- *val = le32_to_cpu(tmp); ++ __le32 *tmp; ++ int i; ++ ++ tmp = kmalloc(sizeof(*tmp), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ i = __cw1200_reg_read(priv, addr, tmp, sizeof(*tmp), 0); ++ *val = le32_to_cpu(*tmp); ++ kfree(tmp); + return i; + } + + static inline int __cw1200_reg_write_32(struct cw1200_common *priv, + u16 addr, u32 val) + { +- __le32 tmp = cpu_to_le32(val); +- return __cw1200_reg_write(priv, addr, &tmp, sizeof(tmp), 0); ++ __le32 *tmp; ++ int i; ++ ++ tmp = kmalloc(sizeof(*tmp), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ *tmp = cpu_to_le32(val); ++ i = __cw1200_reg_write(priv, addr, tmp, sizeof(*tmp), 0); ++ kfree(tmp); ++ return i; + } + + static inline int __cw1200_reg_read_16(struct cw1200_common *priv, + u16 addr, u16 *val) + { +- __le16 tmp; +- int i = __cw1200_reg_read(priv, addr, &tmp, sizeof(tmp), 0); +- *val = le16_to_cpu(tmp); ++ __le16 *tmp; ++ int i; ++ ++ tmp = kmalloc(sizeof(*tmp), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ i = __cw1200_reg_read(priv, addr, tmp, sizeof(*tmp), 0); ++ *val = le16_to_cpu(*tmp); ++ kfree(tmp); + return i; + } + + static inline int __cw1200_reg_write_16(struct cw1200_common *priv, + u16 addr, u16 val) + { +- __le16 tmp = cpu_to_le16(val); +- return __cw1200_reg_write(priv, addr, &tmp, sizeof(tmp), 0); ++ __le16 *tmp; ++ int i; ++ ++ tmp = kmalloc(sizeof(*tmp), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ *tmp = cpu_to_le16(val); ++ i = __cw1200_reg_write(priv, addr, tmp, sizeof(*tmp), 0); ++ kfree(tmp); ++ return i; + } + + int cw1200_reg_read(struct cw1200_common *priv, u16 addr, void *buf, +diff --git a/drivers/net/wireless/st/cw1200/hwio.h b/drivers/net/wireless/st/cw1200/hwio.h +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/hwio.h ++++ b/drivers/net/wireless/st/cw1200/hwio.h +@@ -167,34 +167,65 @@ int cw1200_reg_write(struct cw1200_common *priv, u16 addr, + static inline int cw1200_reg_read_16(struct cw1200_common *priv, + u16 addr, u16 *val) + { +- __le32 tmp; ++ __le32 *tmp; + int i; +- i = cw1200_reg_read(priv, addr, &tmp, sizeof(tmp)); +- *val = le32_to_cpu(tmp) & 0xfffff; ++ ++ tmp = kmalloc(sizeof(*tmp), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ i = cw1200_reg_read(priv, addr, tmp, sizeof(*tmp)); ++ *val = le32_to_cpu(*tmp) & 0xfffff; ++ kfree(tmp); + return i; + } + + static inline int cw1200_reg_write_16(struct cw1200_common *priv, + u16 addr, u16 val) + { +- __le32 tmp = cpu_to_le32((u32)val); +- return cw1200_reg_write(priv, addr, &tmp, sizeof(tmp)); ++ __le32 *tmp; ++ int i; ++ ++ tmp = kmalloc(sizeof(*tmp), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ *tmp = cpu_to_le32((u32)val); ++ i = cw1200_reg_write(priv, addr, tmp, sizeof(*tmp)); ++ kfree(tmp); ++ return i; + } + + static inline int cw1200_reg_read_32(struct cw1200_common *priv, + u16 addr, u32 *val) + { +- __le32 tmp; +- int i = cw1200_reg_read(priv, addr, &tmp, sizeof(tmp)); +- *val = le32_to_cpu(tmp); ++ __le32 *tmp; ++ int i; ++ ++ tmp = kmalloc(sizeof(*tmp), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ i = cw1200_reg_read(priv, addr, tmp, sizeof(*tmp)); ++ *val = le32_to_cpu(*tmp); ++ kfree(tmp); + return i; + } + + static inline int cw1200_reg_write_32(struct cw1200_common *priv, + u16 addr, u32 val) + { +- __le32 tmp = cpu_to_le32(val); +- return cw1200_reg_write(priv, addr, &tmp, sizeof(val)); ++ __le32 *tmp; ++ int i; ++ ++ tmp = kmalloc(sizeof(*tmp), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ *tmp = cpu_to_le32(val); ++ i = cw1200_reg_write(priv, addr, tmp, sizeof(val)); ++ kfree(tmp); ++ return i; + } + + int cw1200_indirect_read(struct cw1200_common *priv, u32 addr, void *buf, +@@ -221,24 +252,50 @@ static inline int cw1200_ahb_read(struct cw1200_common *priv, u32 addr, + static inline int cw1200_apb_read_32(struct cw1200_common *priv, + u32 addr, u32 *val) + { +- __le32 tmp; +- int i = cw1200_apb_read(priv, addr, &tmp, sizeof(tmp)); +- *val = le32_to_cpu(tmp); ++ __le32 *tmp; ++ int i; ++ ++ tmp = kmalloc(sizeof(*tmp), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ i = cw1200_apb_read(priv, addr, tmp, sizeof(*tmp)); ++ *val = le32_to_cpu(*tmp); ++ kfree(tmp); ++ + return i; + } + + static inline int cw1200_apb_write_32(struct cw1200_common *priv, + u32 addr, u32 val) + { +- __le32 tmp = cpu_to_le32(val); +- return cw1200_apb_write(priv, addr, &tmp, sizeof(val)); ++ __le32 *tmp; ++ int i; ++ ++ tmp = kmalloc(sizeof(*tmp), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ *tmp = cpu_to_le32(val); ++ i = cw1200_apb_write(priv, addr, tmp, sizeof(*tmp)); ++ kfree(tmp); ++ ++ return i; + } + static inline int cw1200_ahb_read_32(struct cw1200_common *priv, + u32 addr, u32 *val) + { +- __le32 tmp; +- int i = cw1200_ahb_read(priv, addr, &tmp, sizeof(tmp)); +- *val = le32_to_cpu(tmp); ++ __le32 *tmp; ++ int i; ++ ++ tmp = kmalloc(sizeof(*tmp), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ i = cw1200_ahb_read(priv, addr, tmp, sizeof(*tmp)); ++ *val = le32_to_cpu(*tmp); ++ kfree(tmp); ++ + return i; + } + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0004-net-wireless-cw1200-Add-support-for-BES2600.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0004-net-wireless-cw1200-Add-support-for-BES2600.patch new file mode 100644 index 000000000..27b6a55c8 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0004-net-wireless-cw1200-Add-support-for-BES2600.patch @@ -0,0 +1,1442 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sun, 6 Aug 2023 22:25:29 +0200 +Subject: net: wireless: cw1200: Add support for BES2600 + +Mostly just firmware loading is different. + +Signed-off-by: Ondrej Jirman +--- + drivers/net/wireless/st/cw1200/Makefile | 1 + + drivers/net/wireless/st/cw1200/bes2600.c | 1103 ++++++++++ + drivers/net/wireless/st/cw1200/bh.c | 5 + + drivers/net/wireless/st/cw1200/cw1200.h | 8 + + drivers/net/wireless/st/cw1200/cw1200_sdio.c | 36 +- + drivers/net/wireless/st/cw1200/fwio.c | 12 +- + drivers/net/wireless/st/cw1200/fwio.h | 4 + + drivers/net/wireless/st/cw1200/main.c | 7 +- + drivers/net/wireless/st/cw1200/wsm.c | 18 +- + drivers/net/wireless/st/cw1200/wsm.h | 1 + + 10 files changed, 1181 insertions(+), 14 deletions(-) + +diff --git a/drivers/net/wireless/st/cw1200/Makefile b/drivers/net/wireless/st/cw1200/Makefile +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/Makefile ++++ b/drivers/net/wireless/st/cw1200/Makefile +@@ -1,5 +1,6 @@ + # SPDX-License-Identifier: GPL-2.0 + cw1200_core-y := \ ++ bes2600.o \ + fwio.o \ + txrx.o \ + main.o \ +diff --git a/drivers/net/wireless/st/cw1200/bes2600.c b/drivers/net/wireless/st/cw1200/bes2600.c +new file mode 100644 +index 000000000000..111111111111 +--- /dev/null ++++ b/drivers/net/wireless/st/cw1200/bes2600.c +@@ -0,0 +1,1103 @@ ++/* ++ * Copyright (c) 2022, Bestechnic ++ * Copyright (c) 2023, Ondrej Jirman ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cw1200.h" ++#include "hwio.h" ++#include "fwio.h" ++ ++/* DPLL initial values */ ++#define DPLL_INIT_VAL_9000 (0x00000191) ++#define DPLL_INIT_VAL_BES2600 (0x0EC4F121) ++ ++/* Hardware Type Definitions */ ++#define HIF_8601_VERSATILE (0) ++#define HIF_8601_SILICON (1) ++#define HIF_9000_SILICON_VERSTAILE (2) ++ ++#define CW1250_CUT_11_ID_STR1 (0x302e3033) ++#define CW1250_CUT_11_ID_STR2 (0x33302e32) ++#define CW1250_CUT_11_ID_STR3 (0x3535) ++ ++#define SDIO_DEVICE_SEND_INT_LEN_SEPARATE ++ ++#define BES_TX_CTRL_REG_ID (0x0) ++ ++#ifdef SDIO_DEVICE_SEND_INT_LEN_SEPARATE ++#define BES_TX_NEXT_LEN_REG_ID (0x104) ++#else ++#define BES_TX_NEXT_LEN_REG_ID BES_TX_CTRL_REG_ID ++#endif ++ ++#define BES_TX_NEXT_LEN_MASK (0xffff) ++#define BES_TX_DATA_ADDR (0x0) ++ ++#define BES_HOST_INT_REG_ID (0x120) ++#define BES_HOST_INT (1 << 0) ++#define BES_AP_WAKEUP_CFG (1 << 1) ++#define BES_SUBSYSTEM_MCU_DEACTIVE (1 << 2) ++#define BES_SUBSYSTEM_MCU_ACTIVE (1 << 3) ++#define BES_SUBSYSTEM_WIFI_DEACTIVE (1 << 4) ++#define BES_SUBSYSTEM_WIFI_ACTIVE (1 << 5) ++#define BES_SUBSYSTEM_WIFI_DEBUG (1 << 6) ++#define BES_SUBSYSTEM_BT_DEACTIVE (1 << 7) ++#define BES_SUBSYSTEM_BT_ACTIVE (1 << 8) ++#define BES_SUBSYSTEM_SYSTEM_CLOSE (1 << 9) ++#define BES_SUBSYSTEM_BT_WAKEUP (1 << 10) ++#define BES_SUBSYSTEM_BT_SLEEP (1 << 11) ++ ++#define BES_AP_WAKEUP_TYPE_MASK 0xC ++#define BES_AP_WAKEUP_TYPE_SHIFT 2 ++#define BES_AP_WAKEUP_TYPE_GPIO 0 ++#define BES_AP_WAKEUP_TYPE_IF 1 ++ ++#define BES_AP_WAKEUP_REG_ID (0x124) ++#define BES_AP_WAKEUP_CFG_VALID (0x80) ++ ++#define BES_AP_WAKEUP_GPIO_MASK (0x3) ++#define BES_AP_WAKEUP_GPIO_HIGH (0x0) ++#define BES_AP_WAKEUP_GPIO_LOW (0x1) ++#define BES_AP_WAKEUP_GPIO_RISE (0x2) ++#define BES_AP_WAKEUP_GPIO_FALL (0x3) ++ ++#define BES_SLAVE_STATUS_REG_ID (0x10c) ++#define BES_SLAVE_STATUS_MCU_READY (1 << 0) ++#define BES_SLAVE_STATUS_DPD_READY (1 << 1) ++#define BES_SLAVE_STATUS_WIFI_READY (1 << 2) ++#define BES_SLAVE_STATUS_BT_READY (1 << 3) ++#define BES_SLAVE_STATUS_MCU_WAKEUP_READY (1 << 4) ++#define BES_SLAVE_STATUS_BT_WAKE_READY (1 << 5) ++#define BES_SLAVE_STATUS_DPD_LOG_READY (1 << 6) ++ ++#define PACKET_TOTAL_LEN(len) ((len) & 0xffff) ++#define PACKET_COUNT(len) (((len) >> 16) & 0xff) ++#define PAKCET_CRC8(len) (((len) >> 24) & 0xff) ++ ++#define BES_SDIO_RX_MULTIPLE_NUM (16) ++#define BES_SDIO_TX_MULTIPLE_NUM (16) ++#define BES_SDIO_TX_MULTIPLE_NUM_NOSIGNAL (1) ++ ++#define MAX_SDIO_TRANSFER_LEN (32768) ++ ++// dpd ++ ++#define DPD_VERSION_OFFSET 0x3AF4 ++#define DPD_BIN_SIZE 0x3B14 ++#define DPD_BIN_FILE_SIZE 0x4000 ++#define DPD_CUR_VERSION 7 ++ ++// firmware defs ++ ++#define BUF_SIZE 49152 ++#define RETRY_CNT_MAX 3 ++#define TIMEOUT_TIME 20 ++#define FRAME_HEADER_SIZE 0x04 ++#define CODE_DATA_USELESS_SIZE 0x04 ++ ++#define FRAME_HEADER_REPLY 0xB0 ++#define FRAME_HEADER_DOWNLOAD_INFO 0xB1 ++#define FRAME_HEADER_DOWNLOAD_DATA 0xB2 ++#define FRAME_HEADER_DOWNLOAD_END 0xB3 ++#define FRAME_HEADER_RUN_CODE 0xB4 ++ ++/****frame length get****/ ++#define BES_FW_MSG_TOTAL_LEN(msg) (sizeof(struct fw_msg_hdr_t) + ((struct fw_msg_hdr_t )(msg)).len) ++ ++#define BES2600_DPD_ADDR 0x2008C000 ++#define BES2600_FACTORY_ADDR 0x2008B000 ++ ++enum ERR_CODE { ++ ERR_NONE = 0x00, ++ ERR_LEN = 0x01, ++}; ++ ++struct frame_struct_t { ++ u8 type; ++ u8 frame_num; ++ u16 len; ++ u32 payload; ++}; ++ ++struct fw_msg_hdr_t { ++ u8 type; ++ u8 seq; ++ u16 len; ++}; ++ ++struct fw_info_t { ++ u32 len; ++ u32 addr; ++}; ++ ++struct download_fw_t { ++ u32 addr; ++ u8 data[0]; ++}; ++ ++struct fw_crc_t { ++ u32 crc32; ++}; ++ ++struct run_fw_t { ++ u32 addr; ++}; ++ ++struct exec_struct_t { ++ u32 entry; ++ u32 param; ++ u32 sp; ++ u32 exec_addr; ++}; ++ ++static int bes_slave_rx_ready(struct cw1200_common *priv, u8* buf_cnt, ++ u16* buf_len, int timeout) ++{ ++ int ret; ++ unsigned long start = jiffies; ++ ++ u8* buf_cnt_tmp = kmalloc(sizeof(*buf_cnt_tmp), GFP_KERNEL); ++ if (!buf_cnt_tmp) ++ return -ENOMEM; ++ ++ do { ++ ret = cw1200_reg_read(priv, 0x108, buf_cnt_tmp, 1); ++ if (!(ret || *buf_cnt_tmp)) { ++ mdelay(50); ++ continue; ++ } else if (ret) { ++ pr_err("%s err=%d\n", __func__, ret); ++ } else { ++ ret = cw1200_reg_read_16(priv, 0x109, buf_len); ++ } ++ break; ++ } while(time_before(jiffies, start + timeout)); ++ ++ *buf_cnt = *buf_cnt_tmp; ++ kfree(buf_cnt_tmp); ++ ++ return ret; ++} ++ ++static int bes_slave_tx_ready(struct cw1200_common *priv, u16 *tx_len, int timeout) ++{ ++ int ret, retry = 0; ++ ++ pr_debug("%s now=%lu\n", __func__, jiffies); ++ ++ msleep(2); ++ ++ ret = wait_for_completion_interruptible_timeout(&priv->fw_completion, timeout); ++ if (ret > 0) { ++ do { ++ ret = cw1200_reg_read_16(priv, 0, tx_len); ++ if (!ret && (*tx_len)) ++ break; ++ else ++ pr_err("%s,%d ret=%d tx_len=%x retry=%d\n", ++ __func__, __LINE__, ret, *tx_len, retry); ++ retry++; ++ } while(retry <= 5); ++ reinit_completion(&priv->fw_completion); ++ } else if(!ret) { ++ pr_err("%s now=%lu delta=%d\n", __func__, jiffies, timeout); ++ ret = -110; ++ } else { ++ // ret = -ERESTARTSYS, to be continued; ++ } ++ ++ return ret; ++} ++ ++/* ++static int bes_host_slave_sync(struct cw1200_common *priv) ++{ ++ u8 val; ++ int ret; ++ ++ ret = cw1200_reg_read(priv, BES_HOST_INT_REG_ID, &val, 1); ++ if (ret) { ++ pr_err("%s,%d err=%d\n", __func__, __LINE__, ret); ++ return ret; ++ } ++ ++ val |= BES_HOST_INT; ++ ret = cw1200_reg_write(priv, BES_HOST_INT_REG_ID, &val, 1); ++ if (ret) { ++ pr_err("%s,%d err=%d\n", __func__, __LINE__, ret); ++ } ++ return ret; ++} ++*/ ++ ++static int bes_firmware_download_write_reg(struct cw1200_common *priv, u32 addr, u32 val) ++{ ++ u8 frame_num = 0; ++ u8 buf_cnt = 0; ++ u16 tx_size = 0; ++ u16 rx_size = 0; ++ u32 length = 0; ++ u8 *short_buf; ++ int ret; ++ ++ struct fw_msg_hdr_t header; ++ struct fw_info_t fw_info; ++ struct download_fw_t download_addr; ++ ++ fw_info.addr = addr; ++ fw_info.len = 4; ++ ++ ret = bes_slave_rx_ready(priv, &buf_cnt, &tx_size, HZ); ++ if (!ret) { ++ pr_debug("sdio slave rx buf cnt:%d,buf len max:%d\n", buf_cnt, tx_size); ++ } else { ++ pr_err("wait bes sdio slave rx ready tiemout:%d\n", ret); ++ return ret; ++ } ++ ++ short_buf = kzalloc(512, GFP_KERNEL); ++ if (!short_buf) ++ return -ENOMEM; ++ ++ header.type = FRAME_HEADER_DOWNLOAD_INFO; ++ header.seq = frame_num; ++ header.len = sizeof(struct fw_info_t); ++ frame_num++; ++ memcpy(short_buf, (u8 *)&header, sizeof(struct fw_msg_hdr_t)); ++ memcpy(short_buf + sizeof(struct fw_msg_hdr_t), (u8 *)&fw_info, sizeof(struct fw_info_t)); ++ length = BES_FW_MSG_TOTAL_LEN(header); ++ length = length > 512 ? length : 512; ++ ret = cw1200_data_write(priv, short_buf, length); ++ if (ret) { ++ pr_err("tx download firmware info err:%d\n", ret); ++ goto err; ++ } ++ ++ ret = bes_slave_tx_ready(priv, &rx_size, HZ); ++ if (!ret) { ++ pr_debug("sdio slave tx ready %d bytes\n", rx_size); ++ } else { ++ pr_err("wait slave process failed:%d\n", ret); ++ goto err; ++ } ++ ++ ret = cw1200_data_read(priv, short_buf, rx_size); ++ if (ret) { ++ pr_err("rx download firmware info rsp err:%d\n", ret); ++ goto err; ++ } ++ ++ header.type = FRAME_HEADER_DOWNLOAD_DATA; ++ header.seq = frame_num; ++ header.len = 8; ++ frame_num++; ++ ++ download_addr.addr = fw_info.addr; ++ ++ memcpy(short_buf, (u8 *)&header, sizeof(struct fw_msg_hdr_t)); ++ memcpy(short_buf + sizeof(struct fw_msg_hdr_t), &download_addr.addr, sizeof(struct download_fw_t)); ++ memcpy(short_buf + sizeof(struct fw_msg_hdr_t) + sizeof(struct download_fw_t), &val, 4); ++ length = BES_FW_MSG_TOTAL_LEN(header); ++ ++ length = length > 512 ? length : 512; ++ ret = cw1200_data_write(priv, short_buf, length); ++ if (ret) { ++ pr_err("tx download fw data err:%d\n", ret); ++ goto err; ++ } ++ ret = bes_slave_tx_ready(priv, &rx_size, HZ); ++ if (!ret) { ++ pr_debug("bes_slave ready tx %d bytes\n", rx_size); ++ } else { ++ pr_err("wait slave process download fw data err:%d\n", ret); ++ goto err; ++ } ++ ++ ret = cw1200_data_read(priv, short_buf, rx_size); ++ if (ret) { ++ pr_err("rx tx download fw data rsp err:%d\n", ret); ++ goto err; ++ } ++ ++err: ++ kfree(short_buf); ++ return ret; ++} ++ ++static int bes_frame_rsp_check(struct cw1200_common *priv, void *rsp, u8 frame_num) ++{ ++ int ret = 0; ++ struct frame_struct_t *pframe = (struct frame_struct_t *)rsp; ++ if (pframe->type == FRAME_HEADER_REPLY) { ++ if (pframe->frame_num == frame_num) { ++ if (pframe->len == 4) { ++ if (pframe->payload == ERR_NONE) { ++ pr_debug("bes slave download firmware is ready\n"); ++ } else { ++ pr_err("frame payload=0x%x\n", pframe->payload); ++ ret = -200; ++ } ++ } else { ++ pr_err("payload len error:%u\n", pframe->len); ++ ret = -201; ++ } ++ } else { ++ pr_err("frame num err. 0x%x != 0x%x. len:%u\n", ++ pframe->frame_num, frame_num, pframe->len); ++ ret = -202; ++ } ++ } else { ++ pr_err("frame type err. type 0x%x num=0x%x(0x%x), len:%u\n", ++ pframe->type, pframe->frame_num, frame_num, pframe->len); ++ ret = -203; ++ } ++ return ret; ++} ++ ++static int bes_firmware_download_write_mem(struct cw1200_common *priv, const u32 addr, const u8 *data, const u32 len) ++{ ++ u8 frame_num = 0; ++ u8 last_frame_num = 0; ++ u8 buf_cnt = 0; ++ ++ u16 tx_size = 0; ++ u16 rx_size = 0; ++ ++ u32 length = 0; ++ u32 code_length = len; ++ u32 retry_cnt = 0; ++ int ret; ++ ++ const u8 *data_p; ++ u8 *short_buf, *long_buf; ++ ++ struct fw_msg_hdr_t header; ++ struct fw_info_t fw_info; ++ struct download_fw_t download_addr; ++ struct fw_crc_t crc32_t; ++ ++retry: ++ fw_info.addr = addr; ++ fw_info.len = len; ++ data_p = data; ++ ++ crc32_t.crc32 = 0; ++ crc32_t.crc32 ^= 0xffffffffL; ++ crc32_t.crc32 = crc32_le(crc32_t.crc32, (u8 *)data, len); ++ crc32_t.crc32 ^= 0xffffffffL; ++ ++ ret = bes_slave_rx_ready(priv, &buf_cnt, &tx_size, HZ); ++ if (!ret) { ++ pr_debug("sdio slave rx buf cnt:%d,buf len max:%d\n", buf_cnt, tx_size); ++ } else { ++ pr_info("wait bes sdio slave rx ready tiemout:%d\n", ret); ++ return ret; ++ } ++ ++ header.type = FRAME_HEADER_DOWNLOAD_INFO; ++ header.seq = frame_num; ++ header.len = sizeof(struct fw_info_t); ++ last_frame_num = frame_num; ++ frame_num++; ++ ++ short_buf = kzalloc(512, GFP_KERNEL); ++ if (!short_buf) ++ return -ENOMEM; ++ memcpy(short_buf, (u8 *)&header, sizeof(struct fw_msg_hdr_t)); ++ memcpy(short_buf + sizeof(struct fw_msg_hdr_t), (u8 *)&fw_info, sizeof(struct fw_info_t)); ++ length = BES_FW_MSG_TOTAL_LEN(header); ++ ++ if (tx_size > length) { ++ pr_debug("%s", "tx download firmware info\n"); ++ } else { ++ pr_info("%s:%d bes slave has no enough buffer%d/%d\n", __func__, __LINE__, tx_size, length); ++ goto err1; ++ } ++ ++ length = length > 512 ? length : 512; ++ ret = cw1200_data_write(priv, short_buf, length); ++ if (ret) { ++ pr_err("tx download firmware info err:%d\n", ret); ++ goto err1; ++ } ++ ++ ret = bes_slave_tx_ready(priv, &rx_size, HZ); ++ if (!ret) { ++ pr_debug("sdio slave tx ready %d bytes\n", rx_size); ++ } else { ++ pr_info("wait slave process failed:%d\n", ret); ++ goto err1; ++ } ++ ++ ret = cw1200_data_read(priv, short_buf, rx_size); ++ if (ret) { ++ pr_err("rx download firmware info rsp err:%d\n", ret); ++ goto err1; ++ } ++ ++ //check device rx status ++ ret = bes_frame_rsp_check(priv, short_buf, last_frame_num); ++ if (ret) { ++ pr_err("rsp download firmware info err:%d\n", ret); ++ goto err1; ++ } ++ ++ //download firmware ++ long_buf = kmalloc(1024 * 32, GFP_KERNEL); ++ if (!long_buf) { ++ pr_err("%s:%d fw failed to allocate memory\n",__func__, __LINE__); ++ ret = -ENOMEM; ++ goto err1; ++ } ++ download_addr.addr = fw_info.addr; ++ ++ while (code_length) { ++ ++ ret = bes_slave_rx_ready(priv, &buf_cnt, &tx_size, HZ); ++ if (ret) { ++ goto err2; ++ } else { ++ pr_debug("bes salve rx ready %d bytes\n", tx_size); ++ } ++ ++ if ((tx_size < 4) || (tx_size % 4)) { ++ pr_err("%s:%d tx size=%d\n", __func__, __LINE__, tx_size); ++ ret = -203; ++ goto err2; ++ } ++ ++ if ((code_length + sizeof(struct fw_msg_hdr_t) + sizeof(struct download_fw_t)) < tx_size) { ++ length = code_length + sizeof(struct download_fw_t); ++ } else { ++ length = tx_size - sizeof(struct fw_msg_hdr_t); ++ } ++ ++ header.type = FRAME_HEADER_DOWNLOAD_DATA; ++ header.seq = frame_num; ++ header.len = length; ++ last_frame_num = frame_num; ++ frame_num++; ++ ++ memcpy(long_buf, (u8 *)&header, sizeof(struct fw_msg_hdr_t)); ++ memcpy(long_buf + sizeof(struct fw_msg_hdr_t), &download_addr.addr, sizeof(struct download_fw_t)); ++ length -= sizeof(struct download_fw_t);//real data length ++ memcpy(long_buf + sizeof(struct fw_msg_hdr_t) + sizeof(struct download_fw_t), data_p, length); ++ ++ length += (sizeof(struct fw_msg_hdr_t) + sizeof(struct download_fw_t)); ++ ++ pr_debug("tx_download_firmware_data:%x %d\n", download_addr.addr, length); ++ ++ ret = cw1200_data_write(priv, long_buf, length > 512 ? length : 512); ++ if (ret) { ++ pr_err("tx download fw data err:%d\n", ret); ++ goto err2; ++ } ++ length -= (sizeof(struct fw_msg_hdr_t) + sizeof(struct download_fw_t)); ++ ++ ret = bes_slave_tx_ready(priv, &rx_size, HZ); ++ if (!ret) { ++ pr_debug("bes_slave ready tx %d bytes\n", rx_size); ++ } else { ++ pr_err("wait slave process download fw data err:%d\n", ret); ++ goto err2; ++ } ++ ++ ret = cw1200_data_read(priv, short_buf, rx_size); ++ if (ret) { ++ pr_err("rx tx download fw data rsp err:%d\n", ret); ++ goto err2; ++ } ++ ++ //check device rx status ++ ret = bes_frame_rsp_check(priv, short_buf, last_frame_num); ++ if (ret) { ++ pr_err("rsp tx download fw err:%d\n", ret); ++ goto err2; ++ } ++ ++ code_length -= length; ++ data_p += length; ++ download_addr.addr += length; ++ pr_debug("already tx fw size:%x/%x\n", download_addr.addr - fw_info.addr, fw_info.len); ++ } ++ ++ //Notify Device:The firmware download is complete ++ ++ ret = bes_slave_rx_ready(priv, &buf_cnt, &tx_size, HZ); ++ if (ret) { ++ goto err2; ++ } else { ++ pr_debug("bes salve rx ready %d bytes\n", tx_size); ++ } ++ ++ header.type = FRAME_HEADER_DOWNLOAD_END; ++ header.seq = frame_num; ++ header.len = sizeof(struct fw_crc_t); ++ last_frame_num = frame_num; ++ frame_num++; ++ ++ memcpy(short_buf, (u8 *)&header, sizeof(struct fw_msg_hdr_t)); ++ memcpy(short_buf + sizeof(struct fw_msg_hdr_t), (u8 *)&crc32_t.crc32, sizeof(struct fw_crc_t)); ++ length = BES_FW_MSG_TOTAL_LEN(header); ++ ++ pr_debug("%s", "tx download firmware complete command\n"); ++ ++ length = length > 512 ? length : 512; ++ ret = cw1200_data_write(priv, short_buf, length); ++ if (ret) { ++ pr_err("tx downlod firmware complete command err:%d\n", ret); ++ goto err2; ++ } ++ ++ ret = bes_slave_tx_ready(priv, &rx_size, HZ); ++ if (!ret) { ++ pr_debug("bes_slave ready tx %d bytes\n", rx_size); ++ } else { ++ pr_err("wait slave process download fw data err:%d\n", ret); ++ goto err2; ++ } ++ ++ ret = cw1200_data_read(priv, short_buf, rx_size); ++ if (ret) { ++ pr_err("receive download firmware complete cmd rsp err:%d\n", ret); ++ goto err2; ++ } ++ ++ //check device rx status ++ ret = bes_frame_rsp_check(priv, short_buf, last_frame_num); ++ if (ret) { ++ pr_err("rsp download firmware complete err:%d\n", ret); ++ goto err2; ++ } ++err2: ++ kfree(long_buf); ++err1: ++ kfree(short_buf); ++ ++ if (ret && retry_cnt < 3) { ++ retry_cnt++; ++ goto retry; ++ } ++ return ret; ++} ++ ++static void bes_parse_fw_info(struct cw1200_common *priv, const u8 *data, u32 data_len, u32 *load_addr, u32 *crc32) ++{ ++ u8 buffer[16]; ++ struct exec_struct_t exec_struct; ++ u32 exec_addr_last4byte; ++ u32 crc_le = 0; ++ ++ crc_le = crc32_le(0xffffffffL, (u8 *)data, data_len - CODE_DATA_USELESS_SIZE); ++ crc_le ^= 0xffffffffL; ++ ++ // read entry,param,sp,exec_addr ++ ++ memcpy((u8 *)buffer, (u8 *)data, sizeof(exec_struct)); ++ exec_struct.entry = ((struct exec_struct_t *)buffer)->entry;//PC ++ exec_struct.param = ((struct exec_struct_t *)buffer)->param; ++ exec_struct.sp = ((struct exec_struct_t *)buffer)->sp; ++ exec_struct.exec_addr = ((struct exec_struct_t *)buffer)->exec_addr;//load addr ++ ++ pr_debug("crc32 :0x%08X\n", crc_le); ++ pr_debug("exec_struct.entry :0x%08X\n", exec_struct.entry); ++ pr_debug("exec_struct.param :0x%08X\n", exec_struct.param); ++ pr_debug("exec_struct.sp :0x%08X\n", exec_struct.sp); ++ pr_debug("exec_struct.exec_addr:0x%08X\n", exec_struct.exec_addr); ++ ++ exec_addr_last4byte = (*((u32 *)(data + data_len - 4))); ++ ++ pr_debug("exec_addr_last4byte :0x%08X\n", exec_addr_last4byte); ++ if ((!exec_struct.exec_addr) || (exec_struct.exec_addr != exec_addr_last4byte && exec_addr_last4byte)) { ++ exec_struct.exec_addr = exec_addr_last4byte; ++ pr_debug("exec_addr_last4byte covered exec_struct.exec_addr\n"); ++ } ++ ++ pr_debug("final exec_struct.exec_addr:0x%08X\n", exec_struct.exec_addr); ++ ++ *load_addr = exec_struct.exec_addr; ++ ++ *crc32 = crc_le; ++} ++ ++static const u8* bes2600_get_firmware_version_info(struct cw1200_common *priv, const u8 *data, u32 count) ++{ ++ int i = 0; ++ const u8 *tmp_ptr = NULL; ++ const char month[12][4] = { ++ "Jan", "Feb", "Mar", "Apr", "May", "Jun", ++ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ++ }; ++ ++ if(!data || count < 4) ++ return NULL; ++ ++ for(tmp_ptr = data + count - 3; tmp_ptr > data; tmp_ptr -= 1) { ++ for(i = 0; i < 12; i++) { ++ if(memcmp(tmp_ptr, month[i], 3) == 0) { ++ return tmp_ptr; ++ } ++ } ++ } ++ ++ return NULL; ++} ++ ++static int bes_firmware_download(struct cw1200_common *priv, const char *fw_name, bool auto_run) ++{ ++ u8 frame_num = 0; ++ u8 last_frame_num = 0; ++ u8 buf_cnt = 0; ++ ++ u16 tx_size = 0; ++ u16 rx_size = 0; ++ ++ u32 length = 0; ++ u32 code_length = 0; ++ u32 retry_cnt = 0; ++ int ret; ++ const u8 *fw_ver_ptr; ++ const u8 *data_p; ++ u8 *short_buf, *long_buf; ++ ++ const struct firmware *fw_bin; ++ ++ struct fw_msg_hdr_t header; ++ struct fw_info_t fw_info; ++ struct download_fw_t download_addr; ++ struct fw_crc_t crc32_t; ++ struct run_fw_t run_addr; ++ ++retry: ++ ret = request_firmware(&fw_bin, fw_name, NULL); ++ if (ret) { ++ pr_err("request firmware err:%d\n", ret); ++ return ret; ++ } ++ pr_debug("%s fw.size=%ld\n", __func__, (long)fw_bin->size); ++ ++ bes_parse_fw_info(priv, fw_bin->data, fw_bin->size, &fw_info.addr, &crc32_t.crc32); ++ ++ fw_ver_ptr = bes2600_get_firmware_version_info(priv, fw_bin->data, fw_bin->size); ++ if(fw_ver_ptr == NULL) ++ pr_err("------Firmware version get failed\n"); ++ else ++ pr_info("------Firmware: %s version :%s\n", fw_name ,fw_ver_ptr); ++ ++ pr_debug("------load addr :0x%08X\n", fw_info.addr); ++ pr_debug("------data crc :0x%08X\n", crc32_t.crc32); ++ ++ code_length = fw_bin->size - CODE_DATA_USELESS_SIZE; ++ pr_debug("------code size :%d\n", code_length); ++ ++ fw_info.len = code_length; ++ data_p = fw_bin->data; ++ ++ ret = bes_slave_rx_ready(priv, &buf_cnt, &tx_size, HZ); ++ if (!ret) { ++ pr_debug("sdio slave rx buf cnt:%d,buf len max:%d\n", buf_cnt, tx_size); ++ } else { ++ pr_info("wait bes sdio slave rx ready tiemout:%d\n", ret); ++ return ret; ++ } ++ ++ header.type = FRAME_HEADER_DOWNLOAD_INFO; ++ header.seq = frame_num; ++ header.len = sizeof(struct fw_info_t); ++ last_frame_num = frame_num; ++ frame_num++; ++ ++ short_buf = kzalloc(512, GFP_KERNEL); ++ if (!short_buf) ++ return -ENOMEM; ++ memcpy(short_buf, (u8 *)&header, sizeof(struct fw_msg_hdr_t)); ++ memcpy(short_buf + sizeof(struct fw_msg_hdr_t), (u8 *)&fw_info, sizeof(struct fw_info_t)); ++ length = BES_FW_MSG_TOTAL_LEN(header); ++ ++ pr_info("Fw Info: %*ph", length, short_buf); ++ ++ if (tx_size > length) { ++ pr_debug("%s", "tx download firmware info\n"); ++ } else { ++ pr_info("%s:%d bes slave has no enough buffer%d/%d\n", __func__, __LINE__, tx_size, length); ++ goto err1; ++ } ++ ++ length = length > 512 ? length : 512; ++ ret = cw1200_data_write(priv, short_buf, length); ++ if (ret) { ++ pr_err("tx download firmware info err:%d\n", ret); ++ goto err1; ++ } ++ ++ ret = bes_slave_tx_ready(priv, &rx_size, HZ); ++ if (!ret) { ++ pr_debug("sdio slave tx ready %d bytes\n", rx_size); ++ } else { ++ pr_info("wait slave process failed:%d\n", ret); ++ goto err1; ++ } ++ ++ ret = cw1200_data_read(priv, short_buf, rx_size); ++ if (ret) { ++ pr_err("rx download firmware info rsp err:%d\n", ret); ++ goto err1; ++ } ++ ++ //check device rx status ++ ret = bes_frame_rsp_check(priv, short_buf, last_frame_num); ++ if (ret) { ++ pr_err("rsp download firmware info err:%d\n", ret); ++ goto err1; ++ } ++ ++ //download firmware ++ long_buf = kmalloc(1024 * 32, GFP_KERNEL); ++ if (!long_buf) { ++ pr_err("%s:%d fw failed to allocate memory\n",__func__, __LINE__); ++ ret = -ENOMEM; ++ goto err1; ++ } ++ download_addr.addr = fw_info.addr; ++ ++ while (code_length) { ++ ret = bes_slave_rx_ready(priv, &buf_cnt, &tx_size, HZ); ++ if (ret) { ++ goto err2; ++ } else { ++ pr_debug("bes salve rx ready %d bytes\n", tx_size); ++ } ++ ++ if ((tx_size < 4) || (tx_size % 4)) { ++ pr_err("%s:%d tx size=%d\n", __func__, __LINE__, tx_size); ++ ret = -203; ++ goto err2; ++ } ++ ++ if ((code_length + sizeof(struct fw_msg_hdr_t) + sizeof(struct download_fw_t)) < tx_size) { ++ length = code_length + sizeof(struct download_fw_t); ++ } else { ++ length = tx_size - sizeof(struct fw_msg_hdr_t); ++ } ++ ++ header.type = FRAME_HEADER_DOWNLOAD_DATA; ++ header.seq = frame_num; ++ header.len = length; ++ last_frame_num = frame_num; ++ frame_num++; ++ ++ memcpy(long_buf, (u8 *)&header, sizeof(struct fw_msg_hdr_t)); ++ memcpy(long_buf + sizeof(struct fw_msg_hdr_t), &download_addr.addr, sizeof(struct download_fw_t)); ++ length -= sizeof(struct download_fw_t);//real data length ++ memcpy(long_buf + sizeof(struct fw_msg_hdr_t) + sizeof(struct download_fw_t), data_p, length); ++ ++ length += (sizeof(struct fw_msg_hdr_t) + sizeof(struct download_fw_t)); ++ ++ //mdelay(5000); ++ pr_debug("tx_download_firmware_data:%x %d\n", download_addr.addr, length); ++ ++ ret = cw1200_data_write(priv, long_buf, length > 512 ? length : 512); ++ if (ret) { ++ pr_err("tx download fw data err:%d\n", ret); ++ goto err2; ++ } ++ length -= (sizeof(struct fw_msg_hdr_t) + sizeof(struct download_fw_t)); ++ ++ ret = bes_slave_tx_ready(priv, &rx_size, HZ); ++ if (!ret) { ++ pr_debug("bes_slave ready tx %d bytes\n", rx_size); ++ } else { ++ pr_err("wait slave process download fw data err:%d\n", ret); ++ goto err2; ++ } ++ ++ ret = cw1200_data_read(priv, short_buf, rx_size); ++ if (ret) { ++ pr_err("rx tx download fw data rsp err:%d\n", ret); ++ goto err2; ++ } ++ ++ //check device rx status ++ ret = bes_frame_rsp_check(priv, short_buf, last_frame_num); ++ if (ret) { ++ pr_err("rsp tx download fw err:%d\n", ret); ++ goto err2; ++ } ++ ++ code_length -= length; ++ data_p += length; ++ download_addr.addr += length; ++ pr_debug("already tx fw size:%x/%x\n", download_addr.addr - fw_info.addr, fw_info.len); ++ } ++ ++ //Notify Device:The firmware download is complete ++ ++ ret = bes_slave_rx_ready(priv, &buf_cnt, &tx_size, HZ); ++ if (ret) { ++ goto err2; ++ } else { ++ pr_debug("bes salve rx ready %d bytes\n", tx_size); ++ } ++ ++ header.type = FRAME_HEADER_DOWNLOAD_END; ++ header.seq = frame_num; ++ header.len = sizeof(struct fw_crc_t); ++ last_frame_num = frame_num; ++ frame_num++; ++ ++ memcpy(short_buf, (u8 *)&header, sizeof(struct fw_msg_hdr_t)); ++ memcpy(short_buf + sizeof(struct fw_msg_hdr_t), (u8 *)&crc32_t.crc32, sizeof(struct fw_crc_t)); ++ length = BES_FW_MSG_TOTAL_LEN(header); ++ ++ pr_debug("%s", "tx download firmware complete command\n"); ++ ++ length = length > 512 ? length : 512; ++ ret = cw1200_data_write(priv, short_buf, length); ++ if (ret) { ++ pr_err("tx downlod firmware complete command err:%d\n", ret); ++ goto err2; ++ } ++ ++ ret = bes_slave_tx_ready(priv, &rx_size, HZ); ++ if (!ret) { ++ pr_debug("bes_slave ready tx %d bytes\n", rx_size); ++ } else { ++ pr_err("wait slave process download fw data err:%d\n", ret); ++ goto err2; ++ } ++ ++ ret = cw1200_data_read(priv, short_buf, rx_size); ++ if (ret) { ++ pr_err("receive download firmware complete cmd rsp err:%d\n", ret); ++ goto err2; ++ } ++ ++ //check device rx status ++ ret = bes_frame_rsp_check(priv, short_buf, last_frame_num); ++ if (ret) { ++ pr_err("rsp download firmware complete err:%d\n", ret); ++ goto err2; ++ } ++ ++ if (auto_run == false) { ++ pr_info("partial firmware(%s) is downloaded successfully\n", fw_name); ++ goto err2; ++ } ++ ++ ret = bes_slave_rx_ready(priv, &buf_cnt, &tx_size, HZ); ++ if (ret) { ++ goto err2; ++ } else { ++ pr_debug("bes salve rx ready %d bytes\n", tx_size); ++ } ++ ++ //Notify Device:Run firmware ++ run_addr.addr = fw_info.addr; ++ ++ header.type = FRAME_HEADER_RUN_CODE; ++ header.seq = frame_num; ++ header.len = sizeof(struct run_fw_t); ++ last_frame_num = frame_num; ++ frame_num++; ++ ++ memcpy(short_buf, (u8 *)&header, sizeof(struct fw_msg_hdr_t)); ++ memcpy(short_buf + sizeof(struct fw_msg_hdr_t), (u8 *)&run_addr.addr, sizeof(struct run_fw_t)); ++ length = BES_FW_MSG_TOTAL_LEN(header); ++ ++ pr_debug("tx run firmware command:0x%X\n", run_addr.addr); ++ ++ length = length > 512 ? length : 512; ++ ret = cw1200_data_write(priv, short_buf, length); ++ if (ret) { ++ pr_err("tx run firmware command err:%d\n", ret); ++ goto err2; ++ } ++ ++ ret = bes_slave_tx_ready(priv, &rx_size, HZ); ++ if (!ret) { ++ pr_debug("bes_slave ready tx %d bytes\n", rx_size); ++ } else { ++ pr_err("wait slave process run fw cmd err:%d\n", ret); ++ goto err2; ++ } ++ ++ ret = cw1200_data_read(priv, short_buf, rx_size); ++ if (ret) { ++ pr_err("rx run firmware command err:%d\n", ret); ++ goto err2; ++ } ++ ++ //check device rx status ++ ret = bes_frame_rsp_check(priv, short_buf, last_frame_num); ++ if (ret) { ++ pr_err("rsp run firmware command err:%d\n", ret); ++ goto err2; ++ } ++ ++ pr_info("%s", "firmware is downloaded successfully and is already running\n"); ++ msleep(500); ++ ++err2: ++ kfree(long_buf); ++err1: ++ kfree(short_buf); ++ release_firmware(fw_bin); ++ if (ret && retry_cnt < 3) { ++ retry_cnt++; ++ goto retry; ++ } ++ return ret; ++} ++ ++static int bes_read_dpd_data(struct cw1200_common *priv) ++{ ++ u16 dpd_size = 0; ++ int ret = 0; ++ u8 *dpd_buf = NULL; ++ u8* mcu_status; ++ unsigned long wait_timeout; ++ ++ mcu_status = kmalloc(sizeof(*mcu_status), GFP_KERNEL); ++ if (!mcu_status) ++ return -ENOMEM; ++ ++ *mcu_status = 0; ++ ++ /* wait for device ready */ ++ wait_timeout = jiffies + 15 * HZ; ++ do { ++ msleep(100); ++ ret = cw1200_reg_read(priv, BES_SLAVE_STATUS_REG_ID, mcu_status, 1); ++ } while(((ret == 0) || (ret == -84)) && ++ !(*mcu_status & BES_SLAVE_STATUS_DPD_READY) && ++ time_before(jiffies, wait_timeout)); ++ ++ kfree(mcu_status); ++ ++ /* check if read dpd error */ ++ if(ret < 0 || time_after(jiffies, wait_timeout)) { ++ pr_err("wait dpd data ready failed:%d\n", ret); ++ return -1; ++ } ++ ++ /* wait dpd read ready */ ++ ret = bes_slave_tx_ready(priv, &dpd_size, HZ); ++ if (ret) { ++ pr_err("wait dpd data failed:%d\n", ret); ++ return -1; ++ } ++ ++ /* dpd size check */ ++ if (dpd_size != DPD_BIN_SIZE) { ++ pr_err("get dpd data size err:%u\n", dpd_size); ++ return -1; ++ } ++ ++ /* read dpd data */ ++ dpd_buf = kmalloc(DPD_BIN_FILE_SIZE, GFP_KERNEL); ++ if(!dpd_buf) { ++ pr_err("allocate dpd buffer failed.\n"); ++ return -1; ++ } ++ ++ ret = cw1200_data_read(priv, dpd_buf, dpd_size); ++ pr_info("read dpd data size:%d\n", dpd_size); ++ if (ret) { ++ pr_err("read dpd data failed:%d\n", ret); ++ return -1; ++ } ++ ++ /* update dpd data */ ++ u32 cal_crc = 0; ++ u32 dpd_crc = le32_to_cpup((__le32 *)(dpd_buf)); ++ ++ /* check if the dpd data is valid */ ++ cal_crc ^= 0xffffffffL; ++ cal_crc = crc32_le(cal_crc, dpd_buf + 4, dpd_size - 4); ++ cal_crc ^= 0xffffffffL; ++ if (cal_crc != dpd_crc) { ++ pr_err("bes2600 dpd data check failed, calc_crc:0x%08x dpd_crc: 0x%08x\n", ++ cal_crc, dpd_crc); ++ return -1; ++ } ++ ++ pr_info("bes2600 dpd cali pass.\n"); ++ ++ return ret; ++} ++ ++int bes2600_load_firmware(struct cw1200_common *priv) ++{ ++ int ret = 0; ++ const struct firmware *fac_bin; ++ ++ init_completion(&priv->fw_completion); ++ priv->fw_completion_on_irq = true; ++ ++ ret = bes_firmware_download_write_reg(priv, 0x40100000, 0x802006); ++ if (ret) { ++ pr_err( "failed to write 0x40100000\n"); ++ return ret; ++ } ++ ++ ret = bes_firmware_download_write_reg(priv, 0x4008602C, 0x3E00C000); ++ if (ret) { ++ pr_err( "failed to write 0x4008602C\n"); ++ return ret; ++ } ++ ++ ret = request_firmware(&fac_bin, "bes2600/factory.bin", NULL); ++ if (ret) ++ return ret; ++ ++ if (fac_bin->size != 72) { ++ pr_err( "factory.bin size check failed\n"); ++ release_firmware(fac_bin); ++ return -E2BIG; ++ } ++ ++ ret = bes_firmware_download_write_mem(priv, BES2600_FACTORY_ADDR, fac_bin->data, fac_bin->size); ++ release_firmware(fac_bin); ++ if (ret) { ++ pr_err("download factory data failed.\n"); ++ return ret; ++ } ++ ++ pr_info("bes2600 download cali and wifi signal firmware.\n"); ++ ret = bes_firmware_download(priv, BES2600_LOAD_BOOT_NAME, true); ++ if (ret) { ++ pr_err("download dpd cali firmware failed\n"); ++ return ret; ++ } ++ ++ if (!ret) { ++ pr_info("bes2600 read dpd cali data.\n"); ++ ret = bes_read_dpd_data(priv); ++ if (ret) { ++ pr_err("read dpd data failed.\n"); ++ return ret; ++ } ++ } ++ ++ ret = bes_firmware_download(priv, BES2600_LOAD_FW_NAME, true); ++ if (ret) { ++ pr_err("download normal firmware failed.\n"); ++ return ret; ++ } ++ ++ priv->fw_completion_on_irq = false; ++ ++ return ret; ++} +diff --git a/drivers/net/wireless/st/cw1200/bh.c b/drivers/net/wireless/st/cw1200/bh.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/bh.c ++++ b/drivers/net/wireless/st/cw1200/bh.c +@@ -95,6 +95,11 @@ void cw1200_irq_handler(struct cw1200_common *priv) + { + pr_debug("[BH] irq.\n"); + ++ if (priv->fw_completion_on_irq) { ++ complete(&priv->fw_completion); ++ return; ++ } ++ + /* Disable Interrupts! */ + /* NOTE: hwbus_ops->lock already held */ + __cw1200_irq_enable(priv, 0); +diff --git a/drivers/net/wireless/st/cw1200/cw1200.h b/drivers/net/wireless/st/cw1200/cw1200.h +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/cw1200.h ++++ b/drivers/net/wireless/st/cw1200/cw1200.h +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + #include + + #include "queue.h" +@@ -104,6 +105,10 @@ struct cw1200_common { + const struct hwbus_ops *hwbus_ops; + struct hwbus_priv *hwbus_priv; + ++ /* FW loading for BES2600 */ ++ struct completion fw_completion; ++ bool fw_completion_on_irq; ++ + /* Hardware information */ + enum { + HIF_9000_SILICON_VERSATILE = 0, +@@ -120,6 +125,7 @@ struct cw1200_common { + enum cw1200_fw_api { + CW1200_FW_API_ORIGINAL = 0, + CW1200_FW_API_XRADIO, ++ CW1200_FW_API_BES2600, + } fw_api; + int hw_refclk; + bool hw_have_5ghz; +@@ -322,4 +328,6 @@ static inline int cw1200_ht_ampdu_density(const struct cw1200_ht_info *ht_info) + return ht_info->ht_cap.ampdu_density; + } + ++int bes2600_load_firmware(struct cw1200_common *priv); ++ + #endif /* CW1200_H */ +diff --git a/drivers/net/wireless/st/cw1200/cw1200_sdio.c b/drivers/net/wireless/st/cw1200/cw1200_sdio.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/cw1200_sdio.c ++++ b/drivers/net/wireless/st/cw1200/cw1200_sdio.c +@@ -47,6 +47,7 @@ void __init cw1200_sdio_set_platform_data(struct cw1200_platform_data_sdio *pdat + struct hwbus_priv { + struct sdio_func *func; + struct cw1200_common *core; ++ struct gpio_desc *wakeup_device_gpio; + const struct cw1200_platform_data_sdio *pdata; + }; + +@@ -59,6 +60,10 @@ static const struct sdio_device_id cw1200_sdio_ids[] = { + SDIO_DEVICE(SDIO_VENDOR_ID_STE, 0x2281), + .driver_data = CW1200_FW_API_XRADIO + }, ++ { ++ SDIO_DEVICE(0xbe57, 0x2002), ++ .driver_data = CW1200_FW_API_BES2600, ++ }, + { /* end: all zeroes */ }, + }; + MODULE_DEVICE_TABLE(sdio, cw1200_sdio_ids); +@@ -284,6 +289,7 @@ static const struct hwbus_ops cw1200_sdio_hwbus_ops = { + + static const struct of_device_id xradio_sdio_of_match_table[] = { + { .compatible = "xradio,xr819" }, ++ { .compatible = "bestechnic,bes2600" }, + { } + }; + +@@ -301,18 +307,19 @@ static int cw1200_probe_of(struct sdio_func *func) + + irq = irq_of_parse_and_map(np, 0); + if (!irq) { +- pr_err("SDIO: No irq in platform data\n"); +- return -EINVAL; ++ pr_warn("SDIO: No irq in platform data\n"); ++ } else { ++ global_plat_data->irq = irq; + } + +- global_plat_data->irq = irq; +- + macaddr = devm_kmalloc(dev, ETH_ALEN, GFP_KERNEL); + if (!macaddr) + return -ENOMEM; + + if (!of_get_mac_address(np, macaddr)) + global_plat_data->macaddr = macaddr; ++ else ++ kfree(macaddr); + + return 0; + } +@@ -321,6 +328,7 @@ static int cw1200_probe_of(struct sdio_func *func) + static int cw1200_sdio_probe(struct sdio_func *func, + const struct sdio_device_id *id) + { ++ struct device *dev = &func->dev; + struct hwbus_priv *self; + int status; + +@@ -332,7 +340,7 @@ static int cw1200_sdio_probe(struct sdio_func *func, + + cw1200_probe_of(func); + +- self = kzalloc(sizeof(*self), GFP_KERNEL); ++ self = devm_kzalloc(dev, sizeof(*self), GFP_KERNEL); + if (!self) { + pr_err("Can't allocate SDIO hwbus_priv.\n"); + return -ENOMEM; +@@ -341,6 +349,20 @@ static int cw1200_sdio_probe(struct sdio_func *func, + func->card->quirks |= MMC_QUIRK_LENIENT_FN0; + func->card->quirks |= MMC_QUIRK_BROKEN_BYTE_MODE_512; + ++ if (id->driver_data == CW1200_FW_API_BES2600) { ++ global_plat_data->have_5ghz = true; ++ global_plat_data->ref_clk = 32768; ++ } ++ ++ self->wakeup_device_gpio = devm_gpiod_get_optional(dev, "device-wakeup", GPIOD_OUT_LOW); ++ if (IS_ERR(self->wakeup_device_gpio)) ++ return dev_err_probe(dev, PTR_ERR(self->wakeup_device_gpio), "can't get wakeup gpio"); ++ ++ if (self->wakeup_device_gpio) { ++ gpiod_direction_output(self->wakeup_device_gpio, 1); ++ msleep(10); ++ } ++ + self->pdata = global_plat_data; /* FIXME */ + self->func = func; + sdio_set_drvdata(func, self); +@@ -363,7 +385,7 @@ static int cw1200_sdio_probe(struct sdio_func *func, + sdio_disable_func(func); + sdio_release_host(func); + sdio_set_drvdata(func, NULL); +- kfree(self); ++ gpiod_direction_output(self->wakeup_device_gpio, 0); + } + + return status; +@@ -386,7 +408,7 @@ static void cw1200_sdio_disconnect(struct sdio_func *func) + sdio_disable_func(func); + sdio_release_host(func); + sdio_set_drvdata(func, NULL); +- kfree(self); ++ gpiod_direction_output(self->wakeup_device_gpio, 0); + } + } + +diff --git a/drivers/net/wireless/st/cw1200/fwio.c b/drivers/net/wireless/st/cw1200/fwio.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/fwio.c ++++ b/drivers/net/wireless/st/cw1200/fwio.c +@@ -55,7 +55,9 @@ static int cw1200_load_bootloader(struct cw1200_common *priv) + const char *bl_path; + int ret; + +- if (priv->fw_api == CW1200_FW_API_XRADIO) ++ if (priv->fw_api == CW1200_FW_API_BES2600) ++ bl_path = BES2600_LOAD_BOOT_NAME; ++ else if (priv->fw_api == CW1200_FW_API_XRADIO) + bl_path = BOOTLOADER_XRADIO; + else + bl_path = BOOTLOADER_CW1X60; +@@ -150,12 +152,16 @@ static int cw1200_load_firmware_cw1200(struct cw1200_common *priv) + priv->sdd_path = SDD_FILE_22; + break; + case CW1X60_HW_REV: +- if (priv->fw_api == CW1200_FW_API_XRADIO) ++ if (priv->fw_api == CW1200_FW_API_BES2600) ++ fw_path = BES2600_LOAD_FW_NAME; ++ else if (priv->fw_api == CW1200_FW_API_XRADIO) + fw_path = FIRMWARE_XRADIO; + else + fw_path = FIRMWARE_CW1X60; + if (!priv->sdd_path) { +- if (priv->fw_api == CW1200_FW_API_XRADIO) ++ if (priv->fw_api == CW1200_FW_API_BES2600) ++ priv->sdd_path = SDD_FILE_BES2600; ++ else if (priv->fw_api == CW1200_FW_API_XRADIO) + priv->sdd_path = SDD_FILE_XRADIO; + else + priv->sdd_path = SDD_FILE_CW1X60; +diff --git a/drivers/net/wireless/st/cw1200/fwio.h b/drivers/net/wireless/st/cw1200/fwio.h +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/fwio.h ++++ b/drivers/net/wireless/st/cw1200/fwio.h +@@ -29,6 +29,10 @@ + #define SDD_FILE_11 "sdd_11.bin" + #define SDD_FILE_10 "sdd_10.bin" + ++#define BES2600_LOAD_BOOT_NAME "bes2600/best2002_fw_boot_sdio.bin" ++#define BES2600_LOAD_FW_NAME "bes2600/best2002_fw_sdio.bin" ++#define SDD_FILE_BES2600 "bes2600/sdd.bin" ++ + int cw1200_load_firmware(struct cw1200_common *priv); + + /* SDD definitions */ +diff --git a/drivers/net/wireless/st/cw1200/main.c b/drivers/net/wireless/st/cw1200/main.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/main.c ++++ b/drivers/net/wireless/st/cw1200/main.c +@@ -519,6 +519,8 @@ u32 cw1200_dpll_from_clk(u16 clk_khz) + } + } + ++int bes2600_load_firmware(struct cw1200_common *priv); ++ + int cw1200_core_probe(const struct hwbus_ops *hwbus_ops, + struct hwbus_priv *hwbus, + struct device *pdev, +@@ -560,7 +562,10 @@ int cw1200_core_probe(const struct hwbus_ops *hwbus_ops, + if (err) + goto err1; + +- err = cw1200_load_firmware(priv); ++ if (priv->fw_api == CW1200_FW_API_BES2600) ++ err = bes2600_load_firmware(priv); ++ else ++ err = cw1200_load_firmware(priv); + if (err) + goto err2; + +diff --git a/drivers/net/wireless/st/cw1200/wsm.c b/drivers/net/wireless/st/cw1200/wsm.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/wsm.c ++++ b/drivers/net/wireless/st/cw1200/wsm.c +@@ -369,7 +369,7 @@ static int wsm_tx_confirm(struct cw1200_common *priv, + tx_confirm.media_delay = WSM_GET32(buf); + tx_confirm.tx_queue_delay = WSM_GET32(buf); + +- if (priv->fw_api == CW1200_FW_API_XRADIO) ++ if (priv->fw_api == CW1200_FW_API_XRADIO || priv->fw_api == CW1200_FW_API_BES2600) + link_id = cw1200_queue_get_link_id(tx_confirm.packet_id); + + cw1200_tx_confirm_cb(priv, link_id, &tx_confirm); +@@ -482,6 +482,10 @@ int wsm_set_bss_params(struct cw1200_common *priv, + WSM_PUT16(buf, arg->aid); + WSM_PUT32(buf, arg->operational_rate_set); + ++ if (priv->fw_api == CW1200_FW_API_BES2600) { ++ WSM_PUT32(buf, priv->ht_info.ht_cap.mcs.rx_mask[0] << 14); ++ } ++ + ret = wsm_cmd_send(priv, buf, NULL, + WSM_SET_BSS_PARAMS_REQ_ID, WSM_CMD_TIMEOUT); + +@@ -758,12 +762,20 @@ int wsm_map_link(struct cw1200_common *priv, const struct wsm_map_link *arg) + { + int ret; + struct wsm_buf *buf = &priv->wsm_cmd_buf; +- u16 cmd = 0x001C | WSM_TX_LINK_ID(arg->link_id); ++ u16 cmd = 0x001C; + + wsm_cmd_lock(priv); + + WSM_PUT(buf, &arg->mac_addr[0], sizeof(arg->mac_addr)); +- WSM_PUT16(buf, 0); ++ ++ if (priv->fw_api == CW1200_FW_API_BES2600) { ++ WSM_PUT8(buf, arg->unmap); ++ WSM_PUT8(buf, arg->link_id); ++ } else { ++ cmd |= WSM_TX_LINK_ID(arg->link_id); ++ ++ WSM_PUT16(buf, 0); ++ } + + ret = wsm_cmd_send(priv, buf, NULL, cmd, WSM_CMD_TIMEOUT); + +diff --git a/drivers/net/wireless/st/cw1200/wsm.h b/drivers/net/wireless/st/cw1200/wsm.h +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/wsm.h ++++ b/drivers/net/wireless/st/cw1200/wsm.h +@@ -1264,6 +1264,7 @@ struct wsm_map_link { + /* MAC address of the remote device */ + /* [in] */ u8 mac_addr[6]; + /* [in] */ u8 link_id; ++ /* [in] */ u8 unmap; + }; + + int wsm_map_link(struct cw1200_common *priv, const struct wsm_map_link *arg); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0005-cw1200-Improve-error-reporting-from-probe.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0005-cw1200-Improve-error-reporting-from-probe.patch new file mode 100644 index 000000000..4ebaf5e75 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0005-cw1200-Improve-error-reporting-from-probe.patch @@ -0,0 +1,89 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Mon, 14 Aug 2023 08:26:53 +0200 +Subject: cw1200: Improve error reporting from probe + +Signed-off-by: Ondrej Jirman +--- + drivers/net/wireless/st/cw1200/cw1200_sdio.c | 22 ++++++---- + 1 file changed, 14 insertions(+), 8 deletions(-) + +diff --git a/drivers/net/wireless/st/cw1200/cw1200_sdio.c b/drivers/net/wireless/st/cw1200/cw1200_sdio.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/cw1200_sdio.c ++++ b/drivers/net/wireless/st/cw1200/cw1200_sdio.c +@@ -293,7 +293,7 @@ static const struct of_device_id xradio_sdio_of_match_table[] = { + { } + }; + +-static int cw1200_probe_of(struct sdio_func *func) ++static int cw1200_probe_of(struct sdio_func *func, struct hwbus_priv *self) + { + struct device *dev = &func->dev; + struct device_node *np = dev->of_node; +@@ -302,12 +302,14 @@ static int cw1200_probe_of(struct sdio_func *func) + int irq; + + of_id = of_match_node(xradio_sdio_of_match_table, np); +- if (!of_id) ++ if (!of_id) { ++ dev_warn(dev, "OF device match failed\n"); + return -ENODEV; ++ } + + irq = irq_of_parse_and_map(np, 0); + if (!irq) { +- pr_warn("SDIO: No irq in platform data\n"); ++ dev_warn(dev, "No irq in platform data\n"); + } else { + global_plat_data->irq = irq; + } +@@ -316,9 +318,10 @@ static int cw1200_probe_of(struct sdio_func *func) + if (!macaddr) + return -ENOMEM; + +- if (!of_get_mac_address(np, macaddr)) ++ if (!of_get_mac_address(np, macaddr)) { ++ dev_warn(dev, "Found MAC address in OF: %pM\n", macaddr); + global_plat_data->macaddr = macaddr; +- else ++ } else + kfree(macaddr); + + return 0; +@@ -338,14 +341,14 @@ static int cw1200_sdio_probe(struct sdio_func *func, + if (func->num != 0x01) + return -ENODEV; + +- cw1200_probe_of(func); +- + self = devm_kzalloc(dev, sizeof(*self), GFP_KERNEL); + if (!self) { + pr_err("Can't allocate SDIO hwbus_priv.\n"); + return -ENOMEM; + } + ++ cw1200_probe_of(func, self); ++ + func->card->quirks |= MMC_QUIRK_LENIENT_FN0; + func->card->quirks |= MMC_QUIRK_BROKEN_BYTE_MODE_512; + +@@ -356,11 +359,14 @@ static int cw1200_sdio_probe(struct sdio_func *func, + + self->wakeup_device_gpio = devm_gpiod_get_optional(dev, "device-wakeup", GPIOD_OUT_LOW); + if (IS_ERR(self->wakeup_device_gpio)) +- return dev_err_probe(dev, PTR_ERR(self->wakeup_device_gpio), "can't get wakeup gpio"); ++ return dev_err_probe(dev, PTR_ERR(self->wakeup_device_gpio), ++ "can't get device-wakeup gpio\n"); + + if (self->wakeup_device_gpio) { + gpiod_direction_output(self->wakeup_device_gpio, 1); + msleep(10); ++ } else { ++ dev_warn(dev, "device-wakeup GPIO not found\n"); + } + + self->pdata = global_plat_data; /* FIXME */ +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0006-cw1200-Disable-automatic-module-loading-until-the-mo.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0006-cw1200-Disable-automatic-module-loading-until-the-mo.patch new file mode 100644 index 000000000..dcf710704 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0006-cw1200-Disable-automatic-module-loading-until-the-mo.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Mon, 7 Aug 2023 00:33:14 +0200 +Subject: cw1200: Disable automatic module loading (until the module is + working) + +Signed-off-by: Ondrej Jirman +--- + drivers/net/wireless/st/cw1200/cw1200_sdio.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/net/wireless/st/cw1200/cw1200_sdio.c b/drivers/net/wireless/st/cw1200/cw1200_sdio.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/cw1200_sdio.c ++++ b/drivers/net/wireless/st/cw1200/cw1200_sdio.c +@@ -66,7 +66,7 @@ static const struct sdio_device_id cw1200_sdio_ids[] = { + }, + { /* end: all zeroes */ }, + }; +-MODULE_DEVICE_TABLE(sdio, cw1200_sdio_ids); ++//MODULE_DEVICE_TABLE(sdio, cw1200_sdio_ids); + + /* hwbus_ops implemetation */ + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0007-cw1200-Enable-FW-loader-debug-mode.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0007-cw1200-Enable-FW-loader-debug-mode.patch new file mode 100644 index 000000000..9558fab02 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/cw1200-6.18/0007-cw1200-Enable-FW-loader-debug-mode.patch @@ -0,0 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Mon, 7 Aug 2023 00:33:32 +0200 +Subject: cw1200: Enable FW loader debug mode + +Signed-off-by: Ondrej Jirman +--- + drivers/net/wireless/st/cw1200/bes2600.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/net/wireless/st/cw1200/bes2600.c b/drivers/net/wireless/st/cw1200/bes2600.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/st/cw1200/bes2600.c ++++ b/drivers/net/wireless/st/cw1200/bes2600.c +@@ -3,6 +3,8 @@ + * Copyright (c) 2023, Ondrej Jirman + */ + ++#define DEBUG ++ + #include + #include + #include +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/Defconfigs-for-all-my-devices.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/defcon-6.18/0002-Defconfigs-for-all-my-devices.patch similarity index 99% rename from patch/kernel/archive/sunxi-6.16/patches.megous/Defconfigs-for-all-my-devices.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/defcon-6.18/0002-Defconfigs-for-all-my-devices.patch index 3666b4af6..262b81bbe 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/Defconfigs-for-all-my-devices.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/defcon-6.18/0002-Defconfigs-for-all-my-devices.patch @@ -1,27 +1,21 @@ -From 29fe01c39d6ca9a293d046938db4decde8f82e5b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 16 Sep 2019 00:35:50 +0200 Subject: Defconfigs for all my devices Signed-off-by: Ondrej Jirman --- - arch/arm/configs/orangepi_defconfig | 716 +++++++++++ - .../configs/pocketbook_touch_lux_3_defconfig | 408 +++++++ - arch/arm/configs/tbs_a711_defconfig | 519 ++++++++ - arch/arm64/configs/orangepi_defconfig | 1048 +++++++++++++++++ - arch/arm64/configs/pinephone_defconfig | 650 ++++++++++ - .../configs/pinephone_multidist_defconfig | 600 ++++++++++ + arch/arm/configs/orangepi_defconfig | 716 +++++++ + arch/arm/configs/pocketbook_touch_lux_3_defconfig | 408 ++++ + arch/arm/configs/tbs_a711_defconfig | 519 +++++ + arch/arm64/configs/orangepi_defconfig | 1048 ++++++++++ + arch/arm64/configs/pinephone_defconfig | 650 ++++++ + arch/arm64/configs/pinephone_multidist_defconfig | 600 ++++++ 6 files changed, 3941 insertions(+) - create mode 100644 arch/arm/configs/orangepi_defconfig - create mode 100644 arch/arm/configs/pocketbook_touch_lux_3_defconfig - create mode 100644 arch/arm/configs/tbs_a711_defconfig - create mode 100644 arch/arm64/configs/orangepi_defconfig - create mode 100644 arch/arm64/configs/pinephone_defconfig - create mode 100644 arch/arm64/configs/pinephone_multidist_defconfig diff --git a/arch/arm/configs/orangepi_defconfig b/arch/arm/configs/orangepi_defconfig new file mode 100644 -index 000000000000..56f2bafd3f7b +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/configs/orangepi_defconfig @@ -0,0 +1,716 @@ @@ -743,7 +737,7 @@ index 000000000000..56f2bafd3f7b +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/arch/arm/configs/pocketbook_touch_lux_3_defconfig b/arch/arm/configs/pocketbook_touch_lux_3_defconfig new file mode 100644 -index 000000000000..837cd9387dd8 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/configs/pocketbook_touch_lux_3_defconfig @@ -0,0 +1,408 @@ @@ -1157,7 +1151,7 @@ index 000000000000..837cd9387dd8 +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/arch/arm/configs/tbs_a711_defconfig b/arch/arm/configs/tbs_a711_defconfig new file mode 100644 -index 000000000000..f0936d6ecb31 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/configs/tbs_a711_defconfig @@ -0,0 +1,519 @@ @@ -1682,7 +1676,7 @@ index 000000000000..f0936d6ecb31 +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/arch/arm64/configs/orangepi_defconfig b/arch/arm64/configs/orangepi_defconfig new file mode 100644 -index 000000000000..eeb45f6561a2 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/configs/orangepi_defconfig @@ -0,0 +1,1048 @@ @@ -2736,7 +2730,7 @@ index 000000000000..eeb45f6561a2 +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/arch/arm64/configs/pinephone_defconfig b/arch/arm64/configs/pinephone_defconfig new file mode 100644 -index 000000000000..4565596238c7 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/configs/pinephone_defconfig @@ -0,0 +1,650 @@ @@ -3392,7 +3386,7 @@ index 000000000000..4565596238c7 +# CONFIG_RUNTIME_TESTING_MENU is not set diff --git a/arch/arm64/configs/pinephone_multidist_defconfig b/arch/arm64/configs/pinephone_multidist_defconfig new file mode 100644 -index 000000000000..cd73b632db72 +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm64/configs/pinephone_multidist_defconfig @@ -0,0 +1,600 @@ @@ -3997,5 +3991,5 @@ index 000000000000..cd73b632db72 +# CONFIG_STRICT_DEVMEM is not set +# CONFIG_RUNTIME_TESTING_MENU is not set -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ebaz4205-6.18/0001-Add-minimal-EBAZ4205-defconfig.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ebaz4205-6.18/0001-Add-minimal-EBAZ4205-defconfig.patch new file mode 100644 index 000000000..af96f2b7a --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ebaz4205-6.18/0001-Add-minimal-EBAZ4205-defconfig.patch @@ -0,0 +1,386 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Tue, 23 Apr 2024 23:58:44 +0200 +Subject: Add minimal EBAZ4205 defconfig + +Signed-off-by: Ondrej Jirman +--- + arch/arm/configs/ebaz4205_defconfig | 367 ++++++++++ + 1 file changed, 367 insertions(+) + +diff --git a/arch/arm/configs/ebaz4205_defconfig b/arch/arm/configs/ebaz4205_defconfig +new file mode 100644 +index 000000000000..111111111111 +--- /dev/null ++++ b/arch/arm/configs/ebaz4205_defconfig +@@ -0,0 +1,367 @@ ++CONFIG_KERNEL_LZ4=y ++CONFIG_SYSVIPC=y ++CONFIG_POSIX_MQUEUE=y ++CONFIG_HZ_PERIODIC=y ++CONFIG_NO_HZ=y ++CONFIG_HIGH_RES_TIMERS=y ++CONFIG_BPF_SYSCALL=y ++# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set ++CONFIG_PREEMPT_VOLUNTARY=y ++CONFIG_BSD_PROCESS_ACCT=y ++CONFIG_BSD_PROCESS_ACCT_V3=y ++CONFIG_TASKSTATS=y ++CONFIG_TASK_DELAY_ACCT=y ++CONFIG_TASK_XACCT=y ++CONFIG_TASK_IO_ACCOUNTING=y ++CONFIG_IKCONFIG=y ++CONFIG_IKCONFIG_PROC=y ++CONFIG_MEMCG=y ++CONFIG_BLK_CGROUP=y ++CONFIG_RT_GROUP_SCHED=y ++CONFIG_CGROUP_PIDS=y ++CONFIG_CGROUP_DEVICE=y ++CONFIG_CGROUP_BPF=y ++CONFIG_USER_NS=y ++CONFIG_SCHED_AUTOGROUP=y ++CONFIG_BLK_DEV_INITRD=y ++# CONFIG_RD_GZIP is not set ++# CONFIG_RD_BZIP2 is not set ++# CONFIG_RD_LZMA is not set ++# CONFIG_RD_XZ is not set ++# CONFIG_RD_LZO is not set ++# CONFIG_RD_LZ4 is not set ++# CONFIG_RD_ZSTD is not set ++CONFIG_PERF_EVENTS=y ++CONFIG_ARCH_ZYNQ=y ++CONFIG_ARM_ERRATA_430973=y ++CONFIG_ARM_ERRATA_814220=y ++CONFIG_SMP=y ++CONFIG_SCHED_MC=y ++CONFIG_HAVE_ARM_ARCH_TIMER=y ++CONFIG_MCPM=y ++CONFIG_ARM_PSCI=y ++CONFIG_HZ_1000=y ++# CONFIG_ARM_MODULE_PLTS is not set ++CONFIG_ARCH_FORCE_MAX_ORDER=11 ++CONFIG_ZBOOT_ROM_TEXT=0 ++CONFIG_ZBOOT_ROM_BSS=0 ++CONFIG_CPU_FREQ=y ++CONFIG_CPU_FREQ_STAT=y ++CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y ++CONFIG_CPU_FREQ_GOV_POWERSAVE=y ++CONFIG_CPU_FREQ_GOV_USERSPACE=y ++CONFIG_CPU_FREQ_GOV_ONDEMAND=y ++CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y ++CONFIG_CPUFREQ_DT=y ++CONFIG_CPU_IDLE=y ++CONFIG_CPU_IDLE_GOV_LADDER=y ++CONFIG_ARM_CPUIDLE=y ++CONFIG_VFP=y ++CONFIG_NEON=y ++CONFIG_KERNEL_MODE_NEON=y ++CONFIG_PM_WAKELOCKS=y ++CONFIG_PM_DEBUG=y ++CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y ++CONFIG_ENERGY_MODEL=y ++CONFIG_JUMP_LABEL=y ++# CONFIG_STACKPROTECTOR is not set ++CONFIG_MODULES=y ++CONFIG_MODULE_FORCE_LOAD=y ++CONFIG_MODULE_UNLOAD=y ++CONFIG_MODVERSIONS=y ++CONFIG_BLK_DEV_INTEGRITY=y ++CONFIG_BLK_DEV_THROTTLING=y ++CONFIG_BLK_WBT=y ++CONFIG_BLK_CGROUP_IOLATENCY=y ++# CONFIG_MQ_IOSCHED_DEADLINE is not set ++# CONFIG_MQ_IOSCHED_KYBER is not set ++CONFIG_BINFMT_MISC=y ++CONFIG_CMA=y ++CONFIG_CMA_DEBUGFS=y ++CONFIG_NET=y ++CONFIG_PACKET=y ++CONFIG_PACKET_DIAG=y ++CONFIG_UNIX=y ++CONFIG_UNIX_DIAG=y ++CONFIG_XFRM_USER=y ++CONFIG_XFRM_SUB_POLICY=y ++CONFIG_INET=y ++CONFIG_IP_MULTICAST=y ++CONFIG_IP_ADVANCED_ROUTER=y ++CONFIG_IP_MULTIPLE_TABLES=y ++CONFIG_IP_PNP=y ++CONFIG_IP_PNP_DHCP=y ++CONFIG_IP_PNP_BOOTP=y ++CONFIG_SYN_COOKIES=y ++# CONFIG_INET_DIAG is not set ++CONFIG_IPV6_OPTIMISTIC_DAD=y ++# CONFIG_IPV6_SIT is not set ++CONFIG_NETFILTER=y ++CONFIG_NETFILTER_NETLINK_QUEUE=y ++CONFIG_NETFILTER_NETLINK_LOG=y ++CONFIG_NF_CONNTRACK=y ++CONFIG_NF_CONNTRACK_MARK=y ++# CONFIG_NF_CT_PROTO_DCCP is not set ++# CONFIG_NF_CT_PROTO_SCTP is not set ++# CONFIG_NF_CT_PROTO_UDPLITE is not set ++CONFIG_NF_CONNTRACK_FTP=y ++CONFIG_NF_CONNTRACK_H323=y ++CONFIG_NF_CONNTRACK_IRC=y ++CONFIG_NF_CONNTRACK_NETBIOS_NS=y ++CONFIG_NF_CONNTRACK_SNMP=y ++CONFIG_NF_CONNTRACK_PPTP=y ++CONFIG_NF_CONNTRACK_SIP=y ++CONFIG_NF_CONNTRACK_TFTP=y ++CONFIG_NF_CT_NETLINK=y ++CONFIG_NETFILTER_NETLINK_GLUE_CT=y ++CONFIG_NF_TABLES=y ++CONFIG_NF_TABLES_INET=y ++CONFIG_NF_TABLES_NETDEV=y ++CONFIG_NFT_NUMGEN=y ++CONFIG_NFT_CT=y ++CONFIG_NFT_CONNLIMIT=y ++CONFIG_NFT_LOG=y ++CONFIG_NFT_LIMIT=y ++CONFIG_NFT_MASQ=y ++CONFIG_NFT_REDIR=y ++CONFIG_NFT_NAT=y ++CONFIG_NFT_TUNNEL=y ++CONFIG_NFT_QUEUE=y ++CONFIG_NFT_QUOTA=y ++CONFIG_NFT_REJECT=y ++CONFIG_NFT_HASH=y ++CONFIG_NFT_SOCKET=y ++CONFIG_NFT_OSF=y ++CONFIG_NFT_DUP_NETDEV=y ++CONFIG_NFT_FWD_NETDEV=y ++CONFIG_NFT_REJECT_NETDEV=y ++CONFIG_NF_FLOW_TABLE_INET=y ++CONFIG_NF_FLOW_TABLE=y ++CONFIG_IP_SET=y ++CONFIG_IP_SET_BITMAP_IP=y ++CONFIG_IP_SET_BITMAP_IPMAC=y ++CONFIG_IP_SET_BITMAP_PORT=y ++CONFIG_IP_SET_HASH_IP=y ++CONFIG_IP_SET_HASH_IPMARK=y ++CONFIG_IP_SET_HASH_IPPORT=y ++CONFIG_IP_SET_HASH_IPPORTIP=y ++CONFIG_IP_SET_HASH_IPPORTNET=y ++CONFIG_IP_SET_HASH_IPMAC=y ++CONFIG_IP_SET_HASH_MAC=y ++CONFIG_IP_SET_HASH_NETPORTNET=y ++CONFIG_IP_SET_HASH_NET=y ++CONFIG_IP_SET_HASH_NETNET=y ++CONFIG_IP_SET_HASH_NETPORT=y ++CONFIG_IP_SET_HASH_NETIFACE=y ++CONFIG_IP_SET_LIST_SET=y ++CONFIG_NFT_DUP_IPV4=y ++CONFIG_NFT_FIB_IPV4=y ++CONFIG_NF_TABLES_ARP=y ++CONFIG_NF_LOG_ARP=y ++CONFIG_NF_LOG_IPV4=y ++# CONFIG_NF_NAT_SNMP_BASIC is not set ++CONFIG_VLAN_8021Q=y ++# CONFIG_WIRELESS is not set ++CONFIG_UEVENT_HELPER=y ++CONFIG_DEVTMPFS=y ++CONFIG_DEVTMPFS_MOUNT=y ++# CONFIG_FW_CACHE is not set ++CONFIG_MTD=y ++CONFIG_MTD_CMDLINE_PARTS=y ++CONFIG_MTD_BLOCK_RO=y ++CONFIG_MTD_PARTITIONED_MASTER=y ++CONFIG_MTD_RAW_NAND=y ++CONFIG_MTD_NAND_PL35X=y ++# CONFIG_MTD_NAND_ECC_SW_HAMMING is not set ++CONFIG_MTD_NAND_ECC_SW_BCH=y ++CONFIG_MTD_UBI=y ++CONFIG_MTD_UBI_BLOCK=y ++CONFIG_OF_OVERLAY=y ++CONFIG_ZRAM=y ++CONFIG_ZRAM_DEF_COMP_ZSTD=y ++CONFIG_ZRAM_WRITEBACK=y ++CONFIG_ZRAM_MEMORY_TRACKING=y ++CONFIG_BLK_DEV_LOOP=y ++CONFIG_BLK_DEV_NBD=y ++CONFIG_NETDEVICES=y ++CONFIG_WIREGUARD=y ++CONFIG_TUN=y ++CONFIG_VETH=y ++# CONFIG_NET_VENDOR_ALACRITECH is not set ++# CONFIG_NET_VENDOR_AMAZON is not set ++# CONFIG_NET_VENDOR_AQUANTIA is not set ++# CONFIG_NET_VENDOR_ARC is not set ++# CONFIG_NET_VENDOR_ASIX is not set ++# CONFIG_NET_VENDOR_BROADCOM is not set ++CONFIG_MACB=y ++# CONFIG_NET_VENDOR_CAVIUM is not set ++# CONFIG_NET_VENDOR_CIRRUS is not set ++# CONFIG_NET_VENDOR_CORTINA is not set ++# CONFIG_NET_VENDOR_DAVICOM is not set ++# CONFIG_NET_VENDOR_ENGLEDER is not set ++# CONFIG_NET_VENDOR_EZCHIP is not set ++# CONFIG_NET_VENDOR_FARADAY is not set ++# CONFIG_NET_VENDOR_FUNGIBLE is not set ++# CONFIG_NET_VENDOR_GOOGLE is not set ++# CONFIG_NET_VENDOR_HISILICON is not set ++# CONFIG_NET_VENDOR_HUAWEI is not set ++# CONFIG_NET_VENDOR_INTEL is not set ++# CONFIG_NET_VENDOR_LITEX is not set ++# CONFIG_NET_VENDOR_MARVELL is not set ++# CONFIG_NET_VENDOR_MICREL is not set ++# CONFIG_NET_VENDOR_MICROCHIP is not set ++# CONFIG_NET_VENDOR_MICROSEMI is not set ++# CONFIG_NET_VENDOR_MICROSOFT is not set ++# CONFIG_NET_VENDOR_NI is not set ++# CONFIG_NET_VENDOR_NATSEMI is not set ++# CONFIG_NET_VENDOR_NETRONOME is not set ++# CONFIG_NET_VENDOR_PENSANDO is not set ++# CONFIG_NET_VENDOR_QUALCOMM is not set ++# CONFIG_NET_VENDOR_RENESAS is not set ++# CONFIG_NET_VENDOR_ROCKER is not set ++# CONFIG_NET_VENDOR_SAMSUNG is not set ++# CONFIG_NET_VENDOR_SEEQ is not set ++# CONFIG_NET_VENDOR_SOLARFLARE is not set ++# CONFIG_NET_VENDOR_SMSC is not set ++# CONFIG_NET_VENDOR_SOCIONEXT is not set ++# CONFIG_NET_VENDOR_STMICRO is not set ++# CONFIG_NET_VENDOR_SYNOPSYS is not set ++# CONFIG_NET_VENDOR_VERTEXCOM is not set ++# CONFIG_NET_VENDOR_VIA is not set ++# CONFIG_NET_VENDOR_WANGXUN is not set ++# CONFIG_NET_VENDOR_WIZNET is not set ++# CONFIG_NET_VENDOR_XILINX is not set ++# CONFIG_WLAN is not set ++# CONFIG_INPUT_KEYBOARD is not set ++# CONFIG_INPUT_MOUSE is not set ++# CONFIG_SERIO is not set ++# CONFIG_LEGACY_PTYS is not set ++CONFIG_SERIAL_8250=y ++# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set ++# CONFIG_SERIAL_8250_16550A_VARIANTS is not set ++CONFIG_SERIAL_8250_CONSOLE=y ++CONFIG_SERIAL_8250_NR_UARTS=8 ++CONFIG_SERIAL_8250_RUNTIME_UARTS=8 ++CONFIG_SERIAL_8250_DW=y ++CONFIG_SERIAL_OF_PLATFORM=y ++CONFIG_SERIAL_XILINX_PS_UART=y ++CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y ++CONFIG_NULL_TTY=y ++CONFIG_HVC_DCC=y ++CONFIG_SERIAL_DEV_BUS=y ++# CONFIG_HW_RANDOM is not set ++# CONFIG_PTP_1588_CLOCK is not set ++CONFIG_GPIOLIB=y ++# CONFIG_GPIO_CDEV_V1 is not set ++CONFIG_GPIO_ZYNQ=y ++# CONFIG_HWMON is not set ++CONFIG_WATCHDOG=y ++CONFIG_CADENCE_WATCHDOG=y ++CONFIG_REGULATOR=y ++CONFIG_REGULATOR_FIXED_VOLTAGE=y ++CONFIG_REGULATOR_USERSPACE_CONSUMER_OF=y ++# CONFIG_HID_SUPPORT is not set ++# CONFIG_USB_SUPPORT is not set ++CONFIG_MMC=y ++CONFIG_MMC_SDHCI=y ++CONFIG_MMC_SDHCI_PLTFM=y ++CONFIG_MMC_SDHCI_OF_ARASAN=y ++CONFIG_NEW_LEDS=y ++CONFIG_LEDS_CLASS=y ++CONFIG_EDAC=y ++CONFIG_EDAC_SYNOPSYS=y ++CONFIG_DMADEVICES=y ++CONFIG_PL330_DMA=y ++# CONFIG_VIRTIO_MENU is not set ++# CONFIG_VHOST_MENU is not set ++# CONFIG_IOMMU_SUPPORT is not set ++CONFIG_PM_DEVFREQ=y ++CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y ++CONFIG_DEVFREQ_GOV_PERFORMANCE=y ++CONFIG_DEVFREQ_GOV_POWERSAVE=y ++CONFIG_DEVFREQ_GOV_USERSPACE=y ++CONFIG_DEVFREQ_GOV_PASSIVE=y ++CONFIG_PM_DEVFREQ_EVENT=y ++CONFIG_MEMORY=y ++CONFIG_GENERIC_PHY=y ++CONFIG_ARM_CCI_PMU=y ++# CONFIG_ARM_CCI5xx_PMU is not set ++CONFIG_RAS=y ++CONFIG_FPGA=y ++CONFIG_FPGA_MGR_ZYNQ_FPGA=y ++CONFIG_VALIDATE_FS_PARSER=y ++CONFIG_F2FS_FS=y ++CONFIG_F2FS_FS_SECURITY=y ++CONFIG_F2FS_CHECK_FS=y ++CONFIG_F2FS_FS_COMPRESSION=y ++CONFIG_FS_ENCRYPTION=y ++CONFIG_FANOTIFY=y ++CONFIG_AUTOFS_FS=y ++CONFIG_FUSE_FS=y ++CONFIG_CUSE=y ++CONFIG_OVERLAY_FS=y ++CONFIG_OVERLAY_FS_INDEX=y ++CONFIG_OVERLAY_FS_METACOPY=y ++CONFIG_VFAT_FS=y ++CONFIG_PROC_CHILDREN=y ++CONFIG_TMPFS=y ++CONFIG_TMPFS_POSIX_ACL=y ++CONFIG_CONFIGFS_FS=y ++CONFIG_UBIFS_FS=y ++CONFIG_UBIFS_FS_ADVANCED_COMPR=y ++CONFIG_NFS_FS=y ++# CONFIG_NFS_V2 is not set ++# CONFIG_NFS_V3 is not set ++CONFIG_NFS_V4=y ++CONFIG_NFS_V4_1=y ++CONFIG_NFS_V4_2=y ++CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2=y ++CONFIG_NLS_CODEPAGE_437=y ++CONFIG_NLS_CODEPAGE_852=y ++CONFIG_NLS_ISO8859_1=y ++CONFIG_NLS_ISO8859_2=y ++CONFIG_NLS_UTF8=y ++CONFIG_KEYS_REQUEST_CACHE=y ++CONFIG_PERSISTENT_KEYRINGS=y ++CONFIG_BIG_KEYS=y ++CONFIG_ENCRYPTED_KEYS=y ++CONFIG_KEY_DH_OPERATIONS=y ++CONFIG_LSM="yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor" ++CONFIG_INIT_STACK_NONE=y ++CONFIG_CRYPTO_ECDH=y ++CONFIG_CRYPTO_CURVE25519=y ++CONFIG_CRYPTO_AES_TI=y ++CONFIG_CRYPTO_DES=y ++CONFIG_CRYPTO_ARC4=y ++CONFIG_CRYPTO_CHACHA20POLY1305=y ++CONFIG_CRYPTO_SEQIV=y ++CONFIG_CRYPTO_ECHAINIV=y ++CONFIG_CRYPTO_ESSIV=y ++CONFIG_CRYPTO_BLAKE2B=y ++CONFIG_CRYPTO_MD4=y ++CONFIG_CRYPTO_ANSI_CPRNG=y ++CONFIG_CRYPTO_USER_API_HASH=y ++CONFIG_CRYPTO_USER_API_SKCIPHER=y ++CONFIG_CRYPTO_USER_API_RNG=y ++CONFIG_CRYPTO_USER_API_AEAD=y ++CONFIG_CRYPTO_GHASH_ARM_CE=y ++CONFIG_CRYPTO_SHA1_ARM_NEON=y ++CONFIG_CRYPTO_SHA1_ARM_CE=y ++CONFIG_CRYPTO_SHA2_ARM_CE=y ++CONFIG_CRYPTO_SHA512_ARM=y ++CONFIG_CRYPTO_AES_ARM=y ++CONFIG_CRYPTO_AES_ARM_BS=y ++CONFIG_CRYPTO_AES_ARM_CE=y ++CONFIG_CRYPTO_CRC32_ARM_CE=y ++CONFIG_CRYPTO_CRCT10DIF_ARM_CE=y ++# CONFIG_CRYPTO_HW is not set ++CONFIG_CRC_CCITT=y ++CONFIG_CRC_T10DIF=y ++CONFIG_CRC64_ROCKSOFT=y ++CONFIG_CRC_ITU_T=y ++CONFIG_DMA_CMA=y ++CONFIG_CMA_SIZE_MBYTES=128 ++CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15 ++CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7 ++CONFIG_DEBUG_FS=y ++# CONFIG_RUNTIME_TESTING_MENU is not set +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ebaz4205-6.18/0002-dt-bindings-Add-Zynq-clocks.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ebaz4205-6.18/0002-dt-bindings-Add-Zynq-clocks.patch new file mode 100644 index 000000000..8135edd0f --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ebaz4205-6.18/0002-dt-bindings-Add-Zynq-clocks.patch @@ -0,0 +1,95 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Mon, 29 Apr 2024 13:57:52 +0200 +Subject: dt-bindings: Add Zynq clocks + +So that we don't have to remember magic numbers. + +Signed-off-by: Ondrej Jirman +--- + arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts | 2 + + include/dt-bindings/clock/xlnx-zynq-clk.h | 60 ++++++++++ + 2 files changed, 62 insertions(+) + +diff --git a/arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts b/arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts +index 111111111111..222222222222 100644 +--- a/arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts ++++ b/arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts +@@ -5,6 +5,8 @@ + /dts-v1/; + /include/ "zynq-7000.dtsi" + ++#include "dt-bindings/clock/xlnx-zynq-clk.h" ++ + / { + model = "Ebang EBAZ4205"; + compatible = "ebang,ebaz4205", "xlnx,zynq-7000"; +diff --git a/include/dt-bindings/clock/xlnx-zynq-clk.h b/include/dt-bindings/clock/xlnx-zynq-clk.h +new file mode 100644 +index 000000000000..111111111111 +--- /dev/null ++++ b/include/dt-bindings/clock/xlnx-zynq-clk.h +@@ -0,0 +1,60 @@ ++/* SPDX-License-Identifier: GPL-2.0 */ ++/* ++ * Xilinx Zynq Clocks ++ * ++ * Copyright (C) 2024 Ondrej Jirman ++ */ ++ ++#ifndef _DT_BINDINGS_CLK_ZYNQ_H ++#define _DT_BINDINGS_CLK_ZYNQ_H ++ ++#define CLK_ARMPLL 0 ++#define CLK_DDRPLL 1 ++#define CLK_IOPLL 2 ++#define CLK_CPU_6OR4X 3 ++#define CLK_CPU_3OR2X 4 ++#define CLK_CPU_2X 5 ++#define CLK_CPU_1X 6 ++#define CLK_DDR2X 7 ++#define CLK_DDR3X 8 ++#define CLK_DCI 9 ++#define CLK_LQSPI 10 ++#define CLK_SMC 11 ++#define CLK_PCAP 12 ++#define CLK_GEM0 13 ++#define CLK_GEM1 14 ++#define CLK_FCLK0 15 ++#define CLK_FCLK1 16 ++#define CLK_FCLK2 17 ++#define CLK_FCLK3 18 ++#define CLK_CAN0 19 ++#define CLK_CAN1 20 ++#define CLK_SDIO0 21 ++#define CLK_SDIO1 22 ++#define CLK_UART0 23 ++#define CLK_UART1 24 ++#define CLK_SPI0 25 ++#define CLK_SPI1 26 ++#define CLK_DMA 27 ++#define CLK_USB0_APER 28 ++#define CLK_USB1_APER 29 ++#define CLK_GEM0_APER 30 ++#define CLK_GEM1_APER 31 ++#define CLK_SDIO0_APER 32 ++#define CLK_SDIO1_APER 33 ++#define CLK_SPI0_APER 34 ++#define CLK_SPI1_APER 35 ++#define CLK_CAN0_APER 36 ++#define CLK_CAN1_APER 37 ++#define CLK_I2C0_APER 38 ++#define CLK_I2C1_APER 39 ++#define CLK_UART0_APER 40 ++#define CLK_UART1_APER 41 ++#define CLK_GPIO_APER 42 ++#define CLK_LQSPI_APER 43 ++#define CLK_SMC_APER 44 ++#define CLK_SWDT 45 ++#define CLK_DBG_TRC 46 ++#define CLK_DBG_APB 47 ++ ++#endif +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ebaz4205-6.18/0003-arm-xilinx-ebaz4205-Add-test-config-for-various-PL-p.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ebaz4205-6.18/0003-arm-xilinx-ebaz4205-Add-test-config-for-various-PL-p.patch new file mode 100644 index 000000000..0b131d528 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ebaz4205-6.18/0003-arm-xilinx-ebaz4205-Add-test-config-for-various-PL-p.patch @@ -0,0 +1,98 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Mon, 29 Apr 2024 13:58:39 +0200 +Subject: arm: xilinx: ebaz4205: Add test config for various PL peripherals + +Signed-off-by: Ondrej Jirman +--- + arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts | 74 ++++++++++ + 1 file changed, 74 insertions(+) + +diff --git a/arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts b/arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts +index 111111111111..222222222222 100644 +--- a/arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts ++++ b/arch/arm/boot/dts/xilinx/zynq-ebaz4205.dts +@@ -26,6 +26,80 @@ chosen { + }; + }; + ++&amba { ++ // GIC interrupts 29-32 ++ // cells: 0=spi/1=ppi intno 1=low-to-high edge triggered 4=active high level-sensitive ++ ++ serial@42c00000 { ++ compatible = "xlnx,xps-uartlite-1.00.a"; ++ reg = <0x42c00000 0x10000>; ++ clocks = <&clkc CLK_FCLK0>; ++ clock-names = "s_axi_aclk"; ++ interrupt-parent = <&intc>; ++ interrupts = <0 30 1>; ++ port-number = <0>; ++ current-speed = <115200>; ++ xlnx,data-bits = <8>; ++ xlnx,use-parity = <0>; ++ }; ++ ++ serial@42c10000 { ++ compatible = "xlnx,xps-uartlite-1.00.a"; ++ reg = <0x42c10000 0x10000>; ++ clocks = <&clkc CLK_FCLK0>; ++ clock-names = "s_axi_aclk"; ++ interrupt-parent = <&intc>; ++ interrupts = <0 32 1>; ++ port-number = <1>; ++ current-speed = <115200>; ++ xlnx,data-bits = <8>; ++ xlnx,use-parity = <0>; ++ }; ++ ++ i2c@41600000 { ++ compatible = "xlnx,axi-iic-2.1"; ++ clocks = <&clkc CLK_FCLK0>; ++ interrupt-parent = <&intc>; ++ interrupts = <0 29 4>; ++ reg = <0x41600000 0x10000>; ++ #size-cells = <0>; ++ #address-cells = <1>; ++ ++ sensor@40 { ++ reg = <0x40>; ++ compatible = "meas,htu21"; ++ }; ++ ++ sensor@77 { ++ reg = <0x77>; ++ compatible = "bosch,bmp180"; ++ }; ++ }; ++ ++ i2c@41610000 { ++ compatible = "xlnx,xps-iic-2.00.a"; ++ clocks = <&clkc CLK_FCLK0>; ++ interrupt-parent = <&intc>; ++ interrupts = <0 31 4>; ++ reg = <0x41610000 0x10000>; ++ #size-cells = <0>; ++ #address-cells = <1>; ++ }; ++ ++ gpio@41200000 { ++ compatible = "xlnx,xps-gpio-1.00.a"; ++ reg = <0x41200000 0x10000>; ++ clocks = <&clkc CLK_FCLK0>; ++ #gpio-cells = <2>; ++ gpio-controller; ++ xlnx,all-inputs = <0x0>; ++ xlnx,all-outputs = <0x0>; ++ xlnx,dout-default = <0x0>; ++ xlnx,gpio-width = <4>; ++ xlnx,tri-default = <0xFFFFFFFF>; ++ }; ++}; ++ + &clkc { + ps-clk-frequency = <33333333>; + fclk-enable = <8>; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-errors.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0001-sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-error.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.megous/sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-errors.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0001-sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-error.patch index eb3e53295..cfd9abd7e 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-errors.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0001-sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-error.patch @@ -1,4 +1,4 @@ -From bd83c5592609c8e66280117491c62337c0c5a249 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 2 Sep 2019 14:51:17 +0200 Subject: sunxi: Use dev_err_probe to handle EPROBE_DEFER errors @@ -9,13 +9,13 @@ Signed-off-by: Ondrej Jirman --- arch/arm/kernel/topology.c | 2 +- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 2 +- - drivers/i2c/busses/i2c-gpio.c | 11 +++++++++-- - drivers/phy/allwinner/phy-sun4i-usb.c | 16 ++++++++++------ - drivers/phy/allwinner/phy-sun6i-mipi-dphy.c | 6 ++++-- + drivers/i2c/busses/i2c-gpio.c | 11 +++++-- + drivers/phy/allwinner/phy-sun4i-usb.c | 16 ++++++---- + drivers/phy/allwinner/phy-sun6i-mipi-dphy.c | 6 ++-- 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c -index 2336ee2aa44a..20efde3cb1c2 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/kernel/topology.c +++ b/arch/arm/kernel/topology.c @@ -121,7 +121,7 @@ static void __init parse_dt_topology(void) @@ -28,10 +28,10 @@ index 2336ee2aa44a..20efde3cb1c2 100644 } diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c -index 8e359c9e0a09..ff6871e93730 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c -@@ -904,7 +904,7 @@ static int st7703_probe(struct mipi_dsi_device *dsi) +@@ -886,7 +886,7 @@ static int st7703_probe(struct mipi_dsi_device *dsi) ret = mipi_dsi_attach(dsi); if (ret < 0) { @@ -41,7 +41,7 @@ index 8e359c9e0a09..ff6871e93730 100644 return ret; } diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c -index f4355b17bfbf..3f158ca4b58f 100644 +index 111111111111..222222222222 100644 --- a/drivers/i2c/busses/i2c-gpio.c +++ b/drivers/i2c/busses/i2c-gpio.c @@ -314,6 +314,13 @@ static struct gpio_desc *i2c_gpio_get_desc(struct device *dev, @@ -70,7 +70,7 @@ index f4355b17bfbf..3f158ca4b58f 100644 return retdesc; } diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c -index 3a42865f9a5b..3d8d94594bc5 100644 +index 111111111111..222222222222 100644 --- a/drivers/phy/allwinner/phy-sun4i-usb.c +++ b/drivers/phy/allwinner/phy-sun4i-usb.c @@ -774,14 +774,16 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) @@ -93,7 +93,7 @@ index 3a42865f9a5b..3d8d94594bc5 100644 } @@ -789,7 +791,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) - data->vbus_power_supply = devm_power_supply_get_by_phandle(dev, + data->vbus_power_supply = devm_power_supply_get_by_reference(dev, "usb0_vbus_power-supply"); if (IS_ERR(data->vbus_power_supply)) { - dev_err(dev, "Couldn't get the VBUS power supply\n"); @@ -102,7 +102,7 @@ index 3a42865f9a5b..3d8d94594bc5 100644 return PTR_ERR(data->vbus_power_supply); } -@@ -822,8 +825,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) +@@ -831,8 +834,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) phy->vbus = devm_regulator_get_optional(dev, name); if (IS_ERR(phy->vbus)) { if (PTR_ERR(phy->vbus) == -EPROBE_DEFER) { @@ -113,7 +113,7 @@ index 3a42865f9a5b..3d8d94594bc5 100644 name); return -EPROBE_DEFER; } -@@ -838,7 +841,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) +@@ -847,7 +850,8 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev) phy->clk = devm_clk_get(dev, name); if (IS_ERR(phy->clk)) { @@ -124,10 +124,10 @@ index 3a42865f9a5b..3d8d94594bc5 100644 } diff --git a/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c b/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c -index a19a27cea860..0107514e7d2b 100644 +index 111111111111..222222222222 100644 --- a/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c +++ b/drivers/phy/allwinner/phy-sun6i-mipi-dphy.c -@@ -584,13 +584,15 @@ static int sun6i_dphy_probe(struct platform_device *pdev) +@@ -570,13 +570,15 @@ static int sun6i_dphy_probe(struct platform_device *pdev) dphy->regs = devm_regmap_init_mmio_clk(&pdev->dev, "bus", regs, &sun6i_dphy_regmap_config); if (IS_ERR(dphy->regs)) { @@ -146,5 +146,5 @@ index a19a27cea860..0107514e7d2b 100644 } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/thermal-sun8i-Be-loud-when-probe-fails.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0002-thermal-sun8i-Be-loud-when-probe-fails.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.megous/thermal-sun8i-Be-loud-when-probe-fails.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0002-thermal-sun8i-Be-loud-when-probe-fails.patch index 1a483b5dc..62b4bffe7 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/thermal-sun8i-Be-loud-when-probe-fails.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0002-thermal-sun8i-Be-loud-when-probe-fails.patch @@ -1,4 +1,4 @@ -From aea2a6a0dad79e34fb74777825991051c75d31a6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Wed, 8 Jul 2020 12:21:14 +0200 Subject: thermal: sun8i: Be loud when probe fails @@ -11,11 +11,11 @@ to probe. Signed-off-by: Ondrej Jirman --- - drivers/thermal/sun8i_thermal.c | 22 +++++++++++++++++++--- + drivers/thermal/sun8i_thermal.c | 22 ++++++++-- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/drivers/thermal/sun8i_thermal.c b/drivers/thermal/sun8i_thermal.c -index 22674790629a..1fc7fe3a1531 100644 +index 111111111111..222222222222 100644 --- a/drivers/thermal/sun8i_thermal.c +++ b/drivers/thermal/sun8i_thermal.c @@ -309,8 +309,13 @@ static int sun8i_ths_calibrate(struct ths_device *tmdev) @@ -84,5 +84,5 @@ index 22674790629a..1fc7fe3a1531 100644 return 0; } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/i2c-mv64xxx-Don-t-make-a-fuss-when-pinctrl-recovery-state-is-no.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0003-i2c-mv64xxx-Don-t-make-a-fuss-when-pinctrl-recovery-.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.megous/i2c-mv64xxx-Don-t-make-a-fuss-when-pinctrl-recovery-state-is-no.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0003-i2c-mv64xxx-Don-t-make-a-fuss-when-pinctrl-recovery-.patch index 39b61bd8a..547eb959a 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/i2c-mv64xxx-Don-t-make-a-fuss-when-pinctrl-recovery-state-is-no.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0003-i2c-mv64xxx-Don-t-make-a-fuss-when-pinctrl-recovery-.patch @@ -1,4 +1,4 @@ -From a4420f8cb0399502a5b1fd25f7dbd7320c1b7ef6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 17 Jan 2021 23:19:52 +0100 Subject: i2c: mv64xxx: Don't make a fuss when pinctrl recovery state is not @@ -12,10 +12,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 8 insertions(+) diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c -index 8fc26a511320..03447ef74845 100644 +index 111111111111..222222222222 100644 --- a/drivers/i2c/busses/i2c-mv64xxx.c +++ b/drivers/i2c/busses/i2c-mv64xxx.c -@@ -944,6 +944,14 @@ static int mv64xxx_i2c_init_recovery_info(struct mv64xxx_i2c_data *drv_data, +@@ -943,6 +943,14 @@ static int mv64xxx_i2c_init_recovery_info(struct mv64xxx_i2c_data *drv_data, return -ENODEV; } @@ -31,5 +31,5 @@ index 8fc26a511320..03447ef74845 100644 return 0; } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/iio-st_sensors-Don-t-report-error-when-the-device-is-not-presen.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0004-iio-st_sensors-Don-t-report-error-when-the-device-is.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/iio-st_sensors-Don-t-report-error-when-the-device-is-not-presen.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0004-iio-st_sensors-Don-t-report-error-when-the-device-is.patch index acc736010..b58d8b85b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/iio-st_sensors-Don-t-report-error-when-the-device-is-not-presen.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0004-iio-st_sensors-Don-t-report-error-when-the-device-is.patch @@ -1,4 +1,4 @@ -From 6cc7f49d7052b3f5178539112bafcf5985c3c1b7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 26 Jul 2025 23:56:17 +0200 Subject: iio: st_sensors: Don't report error when the device is not present on @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 7 insertions(+) diff --git a/drivers/iio/common/st_sensors/st_sensors_core.c b/drivers/iio/common/st_sensors/st_sensors_core.c -index dac593be5695..d19869123e67 100644 +index 111111111111..222222222222 100644 --- a/drivers/iio/common/st_sensors/st_sensors_core.c +++ b/drivers/iio/common/st_sensors/st_sensors_core.c @@ -599,6 +599,13 @@ int st_sensors_verify_id(struct iio_dev *indio_dev) @@ -31,5 +31,5 @@ index dac593be5695..d19869123e67 100644 "failed to read Who-Am-I register.\n"); } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/opp-core-Avoid-confusing-error-when-no-regulator-is-defined-in-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0005-opp-core-Avoid-confusing-error-when-no-regulator-is-.patch similarity index 81% rename from patch/kernel/archive/sunxi-6.16/patches.megous/opp-core-Avoid-confusing-error-when-no-regulator-is-defined-in-.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0005-opp-core-Avoid-confusing-error-when-no-regulator-is-.patch index c490b958a..728ff0ebc 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/opp-core-Avoid-confusing-error-when-no-regulator-is-defined-in-.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0005-opp-core-Avoid-confusing-error-when-no-regulator-is-.patch @@ -1,4 +1,4 @@ -From 5c9259b91a5e4d7adc9bfb2d3331109957e41c85 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 29 Oct 2022 23:16:51 +0200 Subject: opp: core: Avoid confusing error when no regulator is defined in DT @@ -11,10 +11,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 5 insertions(+) diff --git a/drivers/opp/core.c b/drivers/opp/core.c -index edbd60501cf0..562eabc9c360 100644 +index 111111111111..222222222222 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c -@@ -2166,6 +2166,11 @@ static int _opp_set_regulators(struct opp_table *opp_table, struct device *dev, +@@ -2265,6 +2265,11 @@ static int _opp_set_regulators(struct opp_table *opp_table, struct device *dev, for (i = 0; i < count; i++) { reg = regulator_get_optional(dev, names[i]); if (IS_ERR(reg)) { @@ -27,5 +27,5 @@ index edbd60501cf0..562eabc9c360 100644 "%s: no regulator (%s) found\n", __func__, names[i]); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/rtc-Print-which-error-caused-RTC-read-failure.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0006-rtc-Print-which-error-caused-RTC-read-failure.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/rtc-Print-which-error-caused-RTC-read-failure.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0006-rtc-Print-which-error-caused-RTC-read-failure.patch index 16d8c17e8..13af74798 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/rtc-Print-which-error-caused-RTC-read-failure.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/err-6.18/0006-rtc-Print-which-error-caused-RTC-read-failure.patch @@ -1,4 +1,4 @@ -From d92e4969a270a358d68542495a37a67f4f8e4484 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 2 Mar 2024 15:08:57 +0100 Subject: rtc: Print which error caused RTC read failure @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c -index b1a2be1f9e3b..3e9928262982 100644 +index 111111111111..222222222222 100644 --- a/drivers/rtc/class.c +++ b/drivers/rtc/class.c @@ -66,7 +66,8 @@ static void rtc_hctosys(struct rtc_device *rtc) @@ -27,5 +27,5 @@ index b1a2be1f9e3b..3e9928262982 100644 } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-missing-GPU-trip-point.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0001-ARM-dts-sun8i-a83t-Add-missing-GPU-trip-point.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-missing-GPU-trip-point.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0001-ARM-dts-sun8i-a83t-Add-missing-GPU-trip-point.patch index 981682b13..1b2de8675 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-missing-GPU-trip-point.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0001-ARM-dts-sun8i-a83t-Add-missing-GPU-trip-point.patch @@ -1,4 +1,4 @@ -From 455e56be4e202bd7dee9cf188e1063e874c8f5d8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 13 Mar 2023 06:02:27 +0100 Subject: ARM: dts: sun8i-a83t: Add missing GPU trip point @@ -11,10 +11,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -index e901c62e9075..19fbca52bf90 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -@@ -1307,6 +1307,15 @@ gpu_thermal: gpu-thermal { +@@ -1287,6 +1287,15 @@ gpu_thermal: gpu-thermal { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&ths 2>; @@ -31,5 +31,5 @@ index e901c62e9075..19fbca52bf90 100644 }; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-h5-Add-missing-GPU-trip-point.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0002-arm64-dts-sun50i-h5-Add-missing-GPU-trip-point.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-h5-Add-missing-GPU-trip-point.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0002-arm64-dts-sun50i-h5-Add-missing-GPU-trip-point.patch index d4dd59725..790766d2b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-h5-Add-missing-GPU-trip-point.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0002-arm64-dts-sun50i-h5-Add-missing-GPU-trip-point.patch @@ -1,4 +1,4 @@ -From 9ecccf77a9e6bdcaad4ab62225f14f4e42da0147 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 13 Mar 2023 06:02:46 +0100 Subject: arm64: dts: sun50i-h5: Add missing GPU trip point @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 9 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi -index 49481e725a4e..630fcab5defb 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi @@ -230,6 +230,15 @@ gpu-thermal { @@ -31,5 +31,5 @@ index 49481e725a4e..630fcab5defb 100644 }; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-Fix-LRADC-compatible.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0003-arm64-dts-allwinner-a64-Fix-LRADC-compatible.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-Fix-LRADC-compatible.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0003-arm64-dts-allwinner-a64-Fix-LRADC-compatible.patch index 1f7d9d1d4..73bc258c3 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-Fix-LRADC-compatible.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0003-arm64-dts-allwinner-a64-Fix-LRADC-compatible.patch @@ -1,4 +1,4 @@ -From 6ccacf9c0f118a48731436f46b0632e058e536fc Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Sun, 30 Jun 2019 22:45:34 +0800 Subject: arm64: dts: allwinner: a64: Fix LRADC compatible @@ -15,10 +15,10 @@ Signed-off-by: Icenowy Zheng 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index d53a6f7e086a..c061387abe41 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -921,7 +921,7 @@ spdif: spdif@1c21000 { +@@ -907,7 +907,7 @@ spdif: spdif@1c21000 { lradc: lradc@1c21800 { compatible = "allwinner,sun50i-a64-lradc", @@ -28,5 +28,5 @@ index d53a6f7e086a..c061387abe41 100644 interrupt-parent = <&r_intc>; interrupts = ; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-cedrus-Fix-failure-to-clean-up-hardware-on-probe-failure.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0004-media-cedrus-Fix-failure-to-clean-up-hardware-on-pro.patch similarity index 78% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-cedrus-Fix-failure-to-clean-up-hardware-on-probe-failure.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0004-media-cedrus-Fix-failure-to-clean-up-hardware-on-pro.patch index dc642572d..36243300b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-cedrus-Fix-failure-to-clean-up-hardware-on-probe-failure.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0004-media-cedrus-Fix-failure-to-clean-up-hardware-on-pro.patch @@ -1,4 +1,4 @@ -From a3de20c762463e20ec2b691d553894f4b48dae56 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sun, 26 Apr 2020 14:38:15 -0500 Subject: media: cedrus: Fix failure to clean up hardware on probe failure @@ -9,10 +9,10 @@ Signed-off-by: Samuel Holland 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c -index 52a9588462ce..b91174246e58 100644 +index 111111111111..222222222222 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus.c -@@ -478,7 +478,7 @@ static int cedrus_probe(struct platform_device *pdev) +@@ -476,7 +476,7 @@ static int cedrus_probe(struct platform_device *pdev) ret = v4l2_device_register(&pdev->dev, &dev->v4l2_dev); if (ret) { dev_err(&pdev->dev, "Failed to register V4L2 device\n"); @@ -21,7 +21,7 @@ index 52a9588462ce..b91174246e58 100644 } vfd = &dev->vfd; -@@ -539,6 +539,8 @@ static int cedrus_probe(struct platform_device *pdev) +@@ -537,6 +537,8 @@ static int cedrus_probe(struct platform_device *pdev) v4l2_m2m_release(dev->m2m_dev); err_v4l2: v4l2_device_unregister(&dev->v4l2_dev); @@ -31,5 +31,5 @@ index 52a9588462ce..b91174246e58 100644 return ret; } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0005-ASoC-rockchip-Fix-doubling-of-playback-speed-after-s.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0005-ASoC-rockchip-Fix-doubling-of-playback-speed-after-s.patch new file mode 100644 index 000000000..ee2512ab9 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0005-ASoC-rockchip-Fix-doubling-of-playback-speed-after-s.patch @@ -0,0 +1,45 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Mon, 15 Aug 2022 02:23:37 +0200 +Subject: ASoC: rockchip: Fix doubling of playback speed after system sleep + +There is some issue with CRU on RK3399 that can be reproduced by: + +- playing some audio and stopping the playback (so that runtime PM suspends I2S) +- putting system to deep sleep and resuming it (using mainline TF-A) +- playing some audio (audio plays at 2x the normal speed) + +If the audio is kept playing during system sleep cycle, the issue +does not manifest. Relevant registers in CRU are identical in bug/ +no-bug scenarios, so this patch is just touching the CRU registers +without actually changing anything in the end. Touching the registers +fixes the playback speed, though. + +Inspired by: https://github.com/djselbeck/linux/commit/cb4be5dec3fa18c4b344c11fed3fc57aa3bea424 + +Signed-off-by: Ondrej Jirman +--- + sound/soc/rockchip/rockchip_i2s.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s.c +index 111111111111..222222222222 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) + if (ret) + clk_disable_unprepare(i2s->mclk); + ++ if (ret == 0) { ++ unsigned long rate = clk_get_rate(i2s->mclk); ++ ++ clk_set_rate(i2s->mclk, rate - 1); ++ clk_set_rate(i2s->mclk, rate); ++ } ++ + return ret; + } + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs-where-it-s.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0006-usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs-where-it-s.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0006-usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs.patch index ba4f1c839..1fcc4d083 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs-where-it-s.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0006-usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs.patch @@ -1,4 +1,4 @@ -From 2f2bc8c3fbba94de0c43fc061a70f4e16d7c3bf5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 6 Mar 2023 01:19:52 +0100 Subject: usb: musb: sunxi: Avoid enabling host side code on SoCs where it's @@ -16,12 +16,12 @@ Issue: https://gitlab.com/postmarketOS/pmaports/-/issues/1478 Signed-off-by: Ondrej Jirman --- - drivers/usb/musb/musb_core.c | 10 ++++++++++ - drivers/usb/musb/sunxi.c | 30 +++++++++++++++++++++++------- + drivers/usb/musb/musb_core.c | 10 ++++ + drivers/usb/musb/sunxi.c | 30 +++++++--- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c -index c7234b236971..3de56934d066 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c @@ -976,6 +976,16 @@ static void musb_handle_intr_disconnect(struct musb *musb, u8 devctl) @@ -42,7 +42,7 @@ index c7234b236971..3de56934d066 100644 WARNING("unhandled DISCONNECT transition (%s)\n", musb_otg_state_string(musb)); diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c -index a6bd3e968cc7..70caed0fffc5 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/musb/sunxi.c +++ b/drivers/usb/musb/sunxi.c @@ -350,12 +350,6 @@ static int sunxi_musb_set_mode(struct musb *musb, u8 mode) @@ -103,5 +103,5 @@ index a6bd3e968cc7..70caed0fffc5 100644 if (IS_ERR(glue->usb_phy)) { dev_err(&pdev->dev, "Error registering usb-phy %ld\n", -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-Enforce-consistent-MMC-numbering.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0007-arm64-dts-allwinner-Enforce-consistent-MMC-numbering.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-Enforce-consistent-MMC-numbering.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0007-arm64-dts-allwinner-Enforce-consistent-MMC-numbering.patch index f0e8fcb0a..83735bced 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-Enforce-consistent-MMC-numbering.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0007-arm64-dts-allwinner-Enforce-consistent-MMC-numbering.patch @@ -1,4 +1,4 @@ -From 0a4a41fa8ade7228868aa848a58c2be52e3ebe75 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sun, 6 Dec 2020 11:15:34 -0600 Subject: arm64: dts: allwinner: Enforce consistent MMC numbering @@ -11,7 +11,7 @@ Signed-off-by: Samuel Holland 3 files changed, 18 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index c061387abe41..c4272550580c 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi @@ -18,6 +18,12 @@ / { @@ -28,7 +28,7 @@ index c061387abe41..c4272550580c 100644 #address-cells = <1>; #size-cells = <1>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi -index 630fcab5defb..a40826c507d0 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi @@ -6,6 +6,12 @@ @@ -45,7 +45,7 @@ index 630fcab5defb..a40826c507d0 100644 #address-cells = <1>; #size-cells = <0>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -index 9f1094bdb965..7d52ba6e5d6c 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi @@ -17,6 +17,12 @@ / { @@ -62,5 +62,5 @@ index 9f1094bdb965..7d52ba6e5d6c 100644 #address-cells = <1>; #size-cells = <0>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sunxi-Add-aliases-for-MMC.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0008-ARM-dts-sunxi-Add-aliases-for-MMC.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sunxi-Add-aliases-for-MMC.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0008-ARM-dts-sunxi-Add-aliases-for-MMC.patch index 849f588d4..cd9f5c926 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sunxi-Add-aliases-for-MMC.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0008-ARM-dts-sunxi-Add-aliases-for-MMC.patch @@ -1,4 +1,4 @@ -From 3e83ea68d7e6cbe55637ee15ca8d613b57496ca6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 25 Jan 2021 01:15:58 +0100 Subject: ARM: dts: sunxi: Add aliases for MMC @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 3 files changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun5i.dtsi b/arch/arm/boot/dts/allwinner/sun5i.dtsi -index 126b80f3ca70..a15effbbbc51 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun5i.dtsi +++ b/arch/arm/boot/dts/allwinner/sun5i.dtsi @@ -51,6 +51,12 @@ / { @@ -28,7 +28,7 @@ index 126b80f3ca70..a15effbbbc51 100644 #address-cells = <1>; #size-cells = <0>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -index 19fbca52bf90..20d7112c9192 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi @@ -57,6 +57,12 @@ / { @@ -45,7 +45,7 @@ index 19fbca52bf90..20d7112c9192 100644 #address-cells = <1>; #size-cells = <0>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi b/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi -index 2b28c1306405..a5bf9e0b5ec0 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-h3.dtsi @@ -44,6 +44,12 @@ @@ -62,5 +62,5 @@ index 2b28c1306405..a5bf9e0b5ec0 100644 compatible = "operating-points-v2"; opp-shared; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0009-drm-rockchip-Fix-panic-on-reboot-when-DRM-device-fai.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0009-drm-rockchip-Fix-panic-on-reboot-when-DRM-device-fai.patch new file mode 100644 index 000000000..4e20c3b90 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0009-drm-rockchip-Fix-panic-on-reboot-when-DRM-device-fai.patch @@ -0,0 +1,36 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 24 Sep 2022 21:54:23 +0200 +Subject: drm: rockchip: Fix panic on reboot when DRM device fails to bind + +When DRM device is freed, we need to clear the drvdata pointer, because +it now points to invalid memory. + +Signed-off-by: Ondrej Jirman +--- + drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c ++++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +@@ -206,6 +206,7 @@ static int rockchip_drm_bind(struct device *dev) + component_unbind_all(dev, drm_dev); + err_free: + drm_dev_put(drm_dev); ++ dev_set_drvdata(dev, NULL); + return ret; + } + +@@ -222,6 +223,7 @@ static void rockchip_drm_unbind(struct device *dev) + rockchip_iommu_cleanup(drm_dev); + + drm_dev_put(drm_dev); ++ dev_set_drvdata(dev, NULL); + } + + DEFINE_DRM_GEM_FOPS(rockchip_drm_driver_fops); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-gadget-Fix-dangling-pointer-in-netdev-private-data.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0010-usb-gadget-Fix-dangling-pointer-in-netdev-private-da.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-gadget-Fix-dangling-pointer-in-netdev-private-data.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0010-usb-gadget-Fix-dangling-pointer-in-netdev-private-da.patch index e8c1dca6f..042481bd3 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-gadget-Fix-dangling-pointer-in-netdev-private-data.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0010-usb-gadget-Fix-dangling-pointer-in-netdev-private-da.patch @@ -1,4 +1,4 @@ -From 1a3a502402d3288c5676fbf79d2e72e9e8e3e61a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Thu, 7 Sep 2023 14:07:26 +0200 Subject: usb: gadget: Fix dangling pointer in netdev private data @@ -13,19 +13,19 @@ issues. Signed-off-by: Ondrej Jirman --- - drivers/usb/gadget/function/f_ecm.c | 12 ++++++----- - drivers/usb/gadget/function/f_eem.c | 28 +++++++++++++------------- - drivers/usb/gadget/function/f_ncm.c | 9 ++++++--- - drivers/usb/gadget/function/f_rndis.c | 26 ++++++++++++------------ - drivers/usb/gadget/function/f_subset.c | 18 +++++++++++------ - drivers/usb/gadget/function/u_ether.c | 10 ++++----- + drivers/usb/gadget/function/f_ecm.c | 12 ++-- + drivers/usb/gadget/function/f_eem.c | 28 +++++----- + drivers/usb/gadget/function/f_ncm.c | 9 ++- + drivers/usb/gadget/function/f_rndis.c | 26 ++++----- + drivers/usb/gadget/function/f_subset.c | 18 ++++-- + drivers/usb/gadget/function/u_ether.c | 10 ++-- 6 files changed, 56 insertions(+), 47 deletions(-) diff --git a/drivers/usb/gadget/function/f_ecm.c b/drivers/usb/gadget/function/f_ecm.c -index 027226325039..70de3bfeaa6c 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/gadget/function/f_ecm.c +++ b/drivers/usb/gadget/function/f_ecm.c -@@ -685,14 +685,12 @@ ecm_bind(struct usb_configuration *c, struct usb_function *f) +@@ -689,14 +689,12 @@ ecm_bind(struct usb_configuration *c, struct usb_function *f) ecm_opts = container_of(f->fi, struct f_ecm_opts, func_inst); mutex_lock(&ecm_opts->lock); @@ -42,7 +42,7 @@ index 027226325039..70de3bfeaa6c 100644 mutex_unlock(&ecm_opts->lock); if (status) return status; -@@ -913,7 +911,9 @@ static void ecm_free(struct usb_function *f) +@@ -905,7 +903,9 @@ static void ecm_free(struct usb_function *f) static void ecm_unbind(struct usb_configuration *c, struct usb_function *f) { @@ -53,7 +53,7 @@ index 027226325039..70de3bfeaa6c 100644 DBG(c->cdev, "ecm unbind\n"); -@@ -926,6 +926,8 @@ static void ecm_unbind(struct usb_configuration *c, struct usb_function *f) +@@ -918,6 +918,8 @@ static void ecm_unbind(struct usb_configuration *c, struct usb_function *f) kfree(ecm->notify_req->buf); usb_ep_free_request(ecm->notify, ecm->notify_req); @@ -63,7 +63,7 @@ index 027226325039..70de3bfeaa6c 100644 static struct usb_function *ecm_alloc(struct usb_function_instance *fi) diff --git a/drivers/usb/gadget/function/f_eem.c b/drivers/usb/gadget/function/f_eem.c -index 6de81ea17274..b1e1a26808dd 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/gadget/function/f_eem.c +++ b/drivers/usb/gadget/function/f_eem.c @@ -247,28 +247,23 @@ static int eem_bind(struct usb_configuration *c, struct usb_function *f) @@ -104,7 +104,7 @@ index 6de81ea17274..b1e1a26808dd 100644 us = usb_gstrings_attach(cdev, eem_strings, ARRAY_SIZE(eem_string_defs)); -@@ -635,9 +630,14 @@ static void eem_free(struct usb_function *f) +@@ -640,9 +635,14 @@ static void eem_free(struct usb_function *f) static void eem_unbind(struct usb_configuration *c, struct usb_function *f) { @@ -120,10 +120,10 @@ index 6de81ea17274..b1e1a26808dd 100644 static struct usb_function *eem_alloc(struct usb_function_instance *fi) diff --git a/drivers/usb/gadget/function/f_ncm.c b/drivers/usb/gadget/function/f_ncm.c -index 58b0dd575af3..a27fd479030c 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/gadget/function/f_ncm.c +++ b/drivers/usb/gadget/function/f_ncm.c -@@ -1455,14 +1455,13 @@ static int ncm_bind(struct usb_configuration *c, struct usb_function *f) +@@ -1457,14 +1457,13 @@ static int ncm_bind(struct usb_configuration *c, struct usb_function *f) if (!ncm_opts->bound) { ncm_opts->net->mtu = (ncm_opts->max_segment_size - ETH_HLEN); status = gether_register_netdev(ncm_opts->net); @@ -133,14 +133,14 @@ index 58b0dd575af3..a27fd479030c 100644 mutex_unlock(&ncm_opts->lock); - if (status) - goto fail; + return status; - ncm_opts->bound = true; - + ncm_string_defs[1].s = ncm->ethaddr; + us = usb_gstrings_attach(cdev, ncm_strings, - ARRAY_SIZE(ncm_string_defs)); - if (IS_ERR(us)) { -@@ -1728,6 +1727,8 @@ static void ncm_free(struct usb_function *f) +@@ -1718,6 +1717,8 @@ static void ncm_free(struct usb_function *f) static void ncm_unbind(struct usb_configuration *c, struct usb_function *f) { struct f_ncm *ncm = func_to_ncm(f); @@ -149,7 +149,7 @@ index 58b0dd575af3..a27fd479030c 100644 DBG(c->cdev, "ncm unbind\n"); -@@ -1746,6 +1747,8 @@ static void ncm_unbind(struct usb_configuration *c, struct usb_function *f) +@@ -1736,6 +1737,8 @@ static void ncm_unbind(struct usb_configuration *c, struct usb_function *f) kfree(ncm->notify_req->buf); usb_ep_free_request(ncm->notify, ncm->notify_req); @@ -159,10 +159,10 @@ index 58b0dd575af3..a27fd479030c 100644 static struct usb_function *ncm_alloc(struct usb_function_instance *fi) diff --git a/drivers/usb/gadget/function/f_rndis.c b/drivers/usb/gadget/function/f_rndis.c -index 7cec19d65fb5..c2138f17a1c4 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/gadget/function/f_rndis.c +++ b/drivers/usb/gadget/function/f_rndis.c -@@ -658,7 +658,7 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f) +@@ -660,7 +660,7 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f) struct usb_composite_dev *cdev = c->cdev; struct f_rndis *rndis = func_to_rndis(f); struct usb_string *us; @@ -171,7 +171,7 @@ index 7cec19d65fb5..c2138f17a1c4 100644 struct usb_ep *ep; struct f_rndis_opts *rndis_opts; -@@ -681,20 +681,16 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f) +@@ -682,20 +682,16 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f) rndis_iad_descriptor.bFunctionSubClass = rndis_opts->subclass; rndis_iad_descriptor.bFunctionProtocol = rndis_opts->protocol; @@ -188,18 +188,18 @@ index 7cec19d65fb5..c2138f17a1c4 100644 - gether_set_gadget(rndis_opts->net, cdev->gadget); status = gether_register_netdev(rndis_opts->net); - if (status) -- goto fail; +- return status; - rndis_opts->bound = true; + if (!status) + rndis_opts->bound = true; } + mutex_unlock(&rndis_opts->lock); + if (status) -+ goto fail; ++ return status; us = usb_gstrings_attach(cdev, rndis_strings, ARRAY_SIZE(rndis_string_defs)); -@@ -954,7 +950,9 @@ static void rndis_free(struct usb_function *f) +@@ -939,7 +935,9 @@ static void rndis_free(struct usb_function *f) static void rndis_unbind(struct usb_configuration *c, struct usb_function *f) { @@ -210,7 +210,7 @@ index 7cec19d65fb5..c2138f17a1c4 100644 kfree(f->os_desc_table); f->os_desc_n = 0; -@@ -962,6 +960,8 @@ static void rndis_unbind(struct usb_configuration *c, struct usb_function *f) +@@ -947,6 +945,8 @@ static void rndis_unbind(struct usb_configuration *c, struct usb_function *f) kfree(rndis->notify_req->buf); usb_ep_free_request(rndis->notify, rndis->notify_req); @@ -220,7 +220,7 @@ index 7cec19d65fb5..c2138f17a1c4 100644 static struct usb_function *rndis_alloc(struct usb_function_instance *fi) diff --git a/drivers/usb/gadget/function/f_subset.c b/drivers/usb/gadget/function/f_subset.c -index ea3fdd842462..b595beb5f474 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/gadget/function/f_subset.c +++ b/drivers/usb/gadget/function/f_subset.c @@ -308,15 +308,16 @@ geth_bind(struct usb_configuration *c, struct usb_function *f) @@ -261,7 +261,7 @@ index ea3fdd842462..b595beb5f474 100644 static struct usb_function *geth_alloc(struct usb_function_instance *fi) diff --git a/drivers/usb/gadget/function/u_ether.c b/drivers/usb/gadget/function/u_ether.c -index f58590bf5e02..a522e9d43a3a 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/gadget/function/u_ether.c +++ b/drivers/usb/gadget/function/u_ether.c @@ -112,8 +112,10 @@ static void eth_get_drvinfo(struct net_device *net, struct ethtool_drvinfo *p) @@ -303,5 +303,5 @@ index f58590bf5e02..a522e9d43a3a 100644 EXPORT_SYMBOL_GPL(gether_set_gadget); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0011-mmc-dw-mmc-rockchip-fix-sdmmc-after-soft-reboot.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0011-mmc-dw-mmc-rockchip-fix-sdmmc-after-soft-reboot.patch new file mode 100644 index 000000000..d544fa6b7 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0011-mmc-dw-mmc-rockchip-fix-sdmmc-after-soft-reboot.patch @@ -0,0 +1,52 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Geis +Date: Sat, 22 Jan 2022 20:35:39 +0000 +Subject: mmc: dw-mmc-rockchip: fix sdmmc after soft reboot + +During shutdown the dw-mmc driver shuts down the vqmmc regulator. +This leads to situations where the sdmmc is unavailable after a soft +reboot. +Fix this by ensuring the vqmmc regulator is powered up on kernel +shutdown. + +Signed-off-by: Peter Geis +--- + drivers/mmc/host/dw_mmc-rockchip.c | 12 ++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c +index 111111111111..222222222222 100644 +--- a/drivers/mmc/host/dw_mmc-rockchip.c ++++ b/drivers/mmc/host/dw_mmc-rockchip.c +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + #include + + #include "dw_mmc.h" +@@ -573,9 +574,20 @@ static const struct dev_pm_ops dw_mci_rockchip_dev_pm_ops = { + RUNTIME_PM_OPS(dw_mci_runtime_suspend, dw_mci_runtime_resume, NULL) + }; + ++static void dw_mci_rockchip_shutdown(struct platform_device *pdev) ++{ ++ struct dw_mci *host = dev_get_drvdata(&pdev->dev); ++ struct mmc_host *mmc = host->slot->mmc; ++ ++ if (!IS_ERR(mmc->supply.vqmmc) && !(host->vqmmc_enabled)) ++ if(!regulator_enable(mmc->supply.vqmmc)) ++ host->vqmmc_enabled = true; ++} ++ + static struct platform_driver dw_mci_rockchip_pltfm_driver = { + .probe = dw_mci_rockchip_probe, + .remove = dw_mci_rockchip_remove, ++ .shutdown = dw_mci_rockchip_shutdown, + .driver = { + .name = "dwmmc_rockchip", + .probe_type = PROBE_PREFER_ASYNCHRONOUS, +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/Revert-drm-sun4i-lvds-Invert-the-LVDS-polarity.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0012-Revert-drm-sun4i-lvds-Invert-the-LVDS-polarity.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/Revert-drm-sun4i-lvds-Invert-the-LVDS-polarity.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0012-Revert-drm-sun4i-lvds-Invert-the-LVDS-polarity.patch index 11bedf0c1..001b2e444 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/Revert-drm-sun4i-lvds-Invert-the-LVDS-polarity.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0012-Revert-drm-sun4i-lvds-Invert-the-LVDS-polarity.patch @@ -1,4 +1,4 @@ -From 49999c3dbebce9f4542e5f0a9db55377c611c011 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 1 Nov 2020 02:57:38 +0100 Subject: Revert "drm/sun4i: lvds: Invert the LVDS polarity" @@ -9,7 +9,7 @@ This reverts commit 3bc46a083fa9f475dd2e0ab8717d9839b070b8d9. 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c -index 960e83c8291d..fca95b76e258 100644 +index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c @@ -476,7 +476,9 @@ static void sun4i_tcon0_mode_set_lvds(struct sun4i_tcon *tcon, @@ -24,5 +24,5 @@ index 960e83c8291d..fca95b76e258 100644 reg |= SUN4I_TCON0_LVDS_IF_BITWIDTH_24BITS; else -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/of-property-fw_devlink-Support-allwinner-sram-links.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0013-of-property-fw_devlink-Support-allwinner-sram-links.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/of-property-fw_devlink-Support-allwinner-sram-links.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0013-of-property-fw_devlink-Support-allwinner-sram-links.patch index a1561b8f2..439873fef 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/of-property-fw_devlink-Support-allwinner-sram-links.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0013-of-property-fw_devlink-Support-allwinner-sram-links.patch @@ -1,4 +1,4 @@ -From e28c92494b435a8bb8b42f385b08f95303c51e10 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 15 May 2021 21:43:44 +0200 Subject: of: property: fw_devlink: Support allwinner,sram links @@ -10,11 +10,11 @@ to. Signed-off-by: Ondrej Jirman --- - drivers/of/property.c | 22 ++++++++++++++++++++++ + drivers/of/property.c | 22 ++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/of/property.c b/drivers/of/property.c -index c1feb631e383..934468f306d2 100644 +index 111111111111..222222222222 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -1488,6 +1488,27 @@ static struct device_node *parse_remote_endpoint(struct device_node *np, @@ -54,5 +54,5 @@ index c1feb631e383..934468f306d2 100644 }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/Fix-broken-allwinner-sram-dependency-on-h616-h618.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0014-Fix-broken-allwinner-sram-dependency-on-h616-h618.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.megous/Fix-broken-allwinner-sram-dependency-on-h616-h618.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0014-Fix-broken-allwinner-sram-dependency-on-h616-h618.patch index 7cd7d55ec..74422a43f 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/Fix-broken-allwinner-sram-dependency-on-h616-h618.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0014-Fix-broken-allwinner-sram-dependency-on-h616-h618.patch @@ -1,4 +1,4 @@ -From e8b24e85296e6acfe0151a2ea9a7c8d498c85cd3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Mon, 4 Nov 2024 15:35:38 +0000 Subject: Fix broken allwinner,sram dependency on h616, h618 @@ -33,7 +33,7 @@ Signed-off-by: Steinar H. Gunderson 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/of/property.c b/drivers/of/property.c -index 934468f306d2..632520524453 100644 +index 111111111111..222222222222 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -1503,8 +1503,9 @@ static struct device_node *parse_allwinner_sram(struct device_node *np, @@ -49,5 +49,5 @@ index 934468f306d2..632520524453 100644 return sram_node; } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0015-arm64-dts-rockchip-rk356x-Fix-PCIe-register-map-and-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0015-arm64-dts-rockchip-rk356x-Fix-PCIe-register-map-and-.patch new file mode 100644 index 000000000..4d385dd54 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0015-arm64-dts-rockchip-rk356x-Fix-PCIe-register-map-and-.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 24 Sep 2022 21:59:07 +0200 +Subject: arm64: dts: rockchip: rk356x: Fix PCIe register map and ranges + +I have two Realtek PCIe wifi cards connected over the 4 port PCIe bridge +to Quartz64-A. The cards fail to work, when nvme SSD is connected at the +same time to the bridge. Without nvme connected, cards work fine. The +issue seems to be related to mixed use of devices which make use of I/O +ranges and memory ranges. + +This patch changes I/O, MEM and config mappings so that config and I/O +mappings use the 0xf4000000 outbound address space, and MEM range uses +the whole 0x300000000 outbound space. + +These values were suggested by pgwipeout: + + https://lore.kernel.org/lkml/875ygbsrf3.fsf@bloch.sibelius.xs4all.nl/T/#m84b5f6992cc26dffe0d3783c0d8c9c86e5e10c10 + +This is identical to how BSP does the mappings. + +This change to the regs/ranges makes the issue go away and both nvme and +wifi cards work when connected at the same time to the bridge. I tested +the nvme with large amount of reads/writes, both behind the PCIe bridge +and when directly connected to Quartz64-A board. + +Signed-off-by: Ondrej Jirman +--- + arch/arm64/boot/dts/rockchip/rk356x-base.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi b/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk356x-base.dtsi +@@ -966,7 +966,7 @@ pcie2x1: pcie@fe260000 { + <0 0 0 4 &pcie_intc 3>; + linux,pci-domain = <0>; + num-ib-windows = <6>; +- num-ob-windows = <2>; ++ num-ob-windows = <8>; + max-link-speed = <2>; + msi-map = <0x0 &its 0x0 0x1000>; + num-lanes = <1>; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/Fix-intptr_t-typedef.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0016-Fix-intptr_t-typedef.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/Fix-intptr_t-typedef.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0016-Fix-intptr_t-typedef.patch index 1b9ee7a58..b2ab99124 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/Fix-intptr_t-typedef.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0016-Fix-intptr_t-typedef.patch @@ -1,4 +1,4 @@ -From 5d46a9e553570329c9b6482186b28766ae1fae21 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 26 Aug 2023 10:55:24 +0200 Subject: Fix intptr_t typedef @@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 4 insertions(+) diff --git a/include/linux/types.h b/include/linux/types.h -index 6dfdb8e8e4c3..73bed912e7e8 100644 +index 111111111111..222222222222 100644 --- a/include/linux/types.h +++ b/include/linux/types.h @@ -40,7 +40,11 @@ typedef __kernel_uid16_t uid16_t; @@ -28,5 +28,5 @@ index 6dfdb8e8e4c3..73bed912e7e8 100644 #ifdef CONFIG_HAVE_UID16 /* This is defined by arch/{arch}/include/asm/posix_types.h */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/mmc-sunxi-mmc-Remove-runtime-PM.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0017-mmc-sunxi-mmc-Remove-runtime-PM.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.megous/mmc-sunxi-mmc-Remove-runtime-PM.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0017-mmc-sunxi-mmc-Remove-runtime-PM.patch index 8379e8d75..05f127a22 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/mmc-sunxi-mmc-Remove-runtime-PM.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0017-mmc-sunxi-mmc-Remove-runtime-PM.patch @@ -1,4 +1,4 @@ -From 33c5231e021131f742ab815a1211a81b2093814c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 15 Feb 2021 09:11:16 +0100 Subject: mmc: sunxi-mmc: Remove runtime-PM @@ -35,11 +35,11 @@ rootfs): Signed-off-by: Ondrej Jirman --- - drivers/mmc/host/sunxi-mmc.c | 35 +++++++++++++++++++---------------- - 1 file changed, 19 insertions(+), 16 deletions(-) + drivers/mmc/host/sunxi-mmc.c | 36 ++++++---- + 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c -index 1508eead5d01..30b596562281 100644 +index 111111111111..222222222222 100644 --- a/drivers/mmc/host/sunxi-mmc.c +++ b/drivers/mmc/host/sunxi-mmc.c @@ -949,9 +949,15 @@ static void sunxi_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) @@ -80,7 +80,7 @@ index 1508eead5d01..30b596562281 100644 } static void sunxi_mmc_hw_reset(struct mmc_host *mmc) -@@ -1464,10 +1470,10 @@ static int sunxi_mmc_probe(struct platform_device *pdev) +@@ -1461,10 +1467,10 @@ static int sunxi_mmc_probe(struct platform_device *pdev) if (ret) goto error_free_dma; @@ -95,7 +95,7 @@ index 1508eead5d01..30b596562281 100644 ret = mmc_add_host(mmc); if (ret) -@@ -1492,11 +1498,11 @@ static void sunxi_mmc_remove(struct platform_device *pdev) +@@ -1487,11 +1493,11 @@ static void sunxi_mmc_remove(struct platform_device *pdev) struct sunxi_mmc_host *host = mmc_priv(mmc); mmc_remove_host(mmc); @@ -108,9 +108,9 @@ index 1508eead5d01..30b596562281 100644 - } + //} dma_free_coherent(&pdev->dev, PAGE_SIZE, host->sg_cpu, host->sg_dma); - mmc_free_host(mmc); } -@@ -1531,7 +1537,6 @@ static int sunxi_mmc_runtime_suspend(struct device *dev) + +@@ -1524,23 +1530,25 @@ static int sunxi_mmc_runtime_suspend(struct device *dev) * Disabling the irq will prevent this. */ disable_irq(host->irq); @@ -118,26 +118,27 @@ index 1508eead5d01..30b596562281 100644 sunxi_mmc_disable(host); return 0; -@@ -1539,8 +1544,6 @@ static int sunxi_mmc_runtime_suspend(struct device *dev) - #endif + } ++/* static const struct dev_pm_ops sunxi_mmc_pm_ops = { -- SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, -- pm_runtime_force_resume) - SET_RUNTIME_PM_OPS(sunxi_mmc_runtime_suspend, - sunxi_mmc_runtime_resume, - NULL) -@@ -1550,8 +1553,8 @@ static struct platform_driver sunxi_mmc_driver = { +- SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume) ++ //SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume) + RUNTIME_PM_OPS(sunxi_mmc_runtime_suspend, sunxi_mmc_runtime_resume, NULL) + }; ++*/ + + static struct platform_driver sunxi_mmc_driver = { .driver = { .name = "sunxi-mmc", .probe_type = PROBE_PREFER_ASYNCHRONOUS, -- .of_match_table = sunxi_mmc_of_match, -- .pm = &sunxi_mmc_pm_ops, + .of_match_table = sunxi_mmc_of_match, +- .pm = pm_ptr(&sunxi_mmc_pm_ops), ++ //.pm = pm_ptr(&sunxi_mmc_pm_ops), + .of_match_table = of_match_ptr(sunxi_mmc_of_match), -+ //.pm = &sunxi_mmc_pm_ops, }, .probe = sunxi_mmc_probe, .remove = sunxi_mmc_remove, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/pci-Workaround-ITS-timeouts-on-poweroff-reboot-on-Orange-Pi-5-P.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0018-pci-Workaround-ITS-timeouts-on-poweroff-reboot-on-Or.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/pci-Workaround-ITS-timeouts-on-poweroff-reboot-on-Orange-Pi-5-P.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0018-pci-Workaround-ITS-timeouts-on-poweroff-reboot-on-Or.patch index 82217a918..ab862311d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/pci-Workaround-ITS-timeouts-on-poweroff-reboot-on-Orange-Pi-5-P.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0018-pci-Workaround-ITS-timeouts-on-poweroff-reboot-on-Or.patch @@ -1,4 +1,4 @@ -From 3f1a6443ef36006523a0f169352f2f69dfbf4a18 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Wed, 14 Jun 2023 00:48:21 +0200 Subject: pci: Workaround ITS timeouts on poweroff/reboot on Orange Pi 5 Plus @@ -15,7 +15,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/pcie/portdrv.c b/drivers/pci/pcie/portdrv.c -index d1b68c18444f..5b34298c3c92 100644 +index 111111111111..222222222222 100644 --- a/drivers/pci/pcie/portdrv.c +++ b/drivers/pci/pcie/portdrv.c @@ -743,7 +743,7 @@ static void pcie_portdrv_shutdown(struct pci_dev *dev) @@ -28,5 +28,5 @@ index d1b68c18444f..5b34298c3c92 100644 static pci_ers_result_t pcie_portdrv_error_detected(struct pci_dev *dev, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-serial-option-add-reset_resume-callback-for-WWAN-devices.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0019-usb-serial-option-add-reset_resume-callback-for-WWAN.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-serial-option-add-reset_resume-callback-for-WWAN-devices.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0019-usb-serial-option-add-reset_resume-callback-for-WWAN.patch index c0d6ab7fc..bd677b572 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-serial-option-add-reset_resume-callback-for-WWAN-devices.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0019-usb-serial-option-add-reset_resume-callback-for-WWAN.patch @@ -1,4 +1,4 @@ -From 6668c2e647703b7664475a4069d8cb5e08cdb535 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Thomas Thorne Date: Tue, 20 Sep 2022 20:34:57 -0400 Subject: usb: serial: option: add 'reset_resume' callback for WWAN devices @@ -17,10 +17,10 @@ However the rest of the patch is not needed/already upstreamed. 1 file changed, 1 insertion(+) diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c -index fc869b7f803f..dc050d59c082 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c -@@ -2498,6 +2498,7 @@ static struct usb_serial_driver option_1port_device = { +@@ -2536,6 +2536,7 @@ static struct usb_serial_driver option_1port_device = { #ifdef CONFIG_PM .suspend = usb_wwan_suspend, .resume = usb_wwan_resume, @@ -29,5 +29,5 @@ index fc869b7f803f..dc050d59c082 100644 }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5648-Fix-call-to-pm_runtime_set_suspended.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0020-media-ov5648-Fix-call-to-pm_runtime_set_suspended.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5648-Fix-call-to-pm_runtime_set_suspended.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0020-media-ov5648-Fix-call-to-pm_runtime_set_suspended.patch index 694479af7..6cd73e9d4 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5648-Fix-call-to-pm_runtime_set_suspended.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0020-media-ov5648-Fix-call-to-pm_runtime_set_suspended.patch @@ -1,4 +1,4 @@ -From 7705e258007194e67bfc2e1ae2b70861205ad890 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Wed, 24 Apr 2024 00:00:31 +0200 Subject: media: ov5648: Fix call to pm_runtime_set_suspended @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/i2c/ov5648.c b/drivers/media/i2c/ov5648.c -index 4b86d2631bd1..c691e235388a 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/ov5648.c +++ b/drivers/media/i2c/ov5648.c @@ -2566,8 +2566,8 @@ static int ov5648_probe(struct i2c_client *client) @@ -25,5 +25,5 @@ index 4b86d2631bd1..c691e235388a 100644 /* V4L2 subdev register */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0021-drm-rockchip-dw-mipi-dsi-rockchip-Fix-ISP1-PHY-initi.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0021-drm-rockchip-dw-mipi-dsi-rockchip-Fix-ISP1-PHY-initi.patch new file mode 100644 index 000000000..9ae3d514e --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0021-drm-rockchip-dw-mipi-dsi-rockchip-Fix-ISP1-PHY-initi.patch @@ -0,0 +1,35 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sun, 9 Jun 2024 14:30:12 +0200 +Subject: drm: rockchip: dw-mipi-dsi-rockchip: Fix ISP1 PHY initialization + +After suspend/resume cycle, ISP1 would stop receiving data. +Re-initializing DPHY during PHY power on fixes the issue. + +Signed-off-by: Ondrej Jirman +--- + drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c +index 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c ++++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c +@@ -1244,6 +1244,14 @@ static int dw_mipi_dsi_dphy_power_on(struct phy *phy) + goto err_phy_cfg_clk; + } + ++ if (dsi->cdata->dphy_rx_init) { ++ ret = dsi->cdata->dphy_rx_init(phy); ++ if (ret < 0) { ++ DRM_DEV_ERROR(dsi->dev, "hardware-specific phy init failed: %d\n", ret); ++ goto err_pwr_on; ++ } ++ } ++ + /* do soc-variant specific init */ + if (dsi->cdata->dphy_rx_power_on) { + ret = dsi->cdata->dphy_rx_power_on(phy); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-rk3399-Add-dmc_opp_table.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0022-arm64-dts-rk3399-Add-dmc_opp_table.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-rk3399-Add-dmc_opp_table.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0022-arm64-dts-rk3399-Add-dmc_opp_table.patch index fd4d35716..dbffd8778 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-rk3399-Add-dmc_opp_table.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0022-arm64-dts-rk3399-Add-dmc_opp_table.patch @@ -1,4 +1,4 @@ -From 7ff04b0bdae864def87539f21ed65134d883be29 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 22 Nov 2024 23:41:48 +0100 Subject: arm64: dts: rk3399: Add dmc_opp_table @@ -7,11 +7,11 @@ This was removed in v6.12. Re-add it with original values. Signed-off-by: Ondrej Jirman --- - arch/arm64/boot/dts/rockchip/rk3399.dtsi | 29 ++++++++++++++++++++++++ + arch/arm64/boot/dts/rockchip/rk3399.dtsi | 29 ++++++++++ 1 file changed, 29 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi -index 6bc1249d99e6..bb9205bebf9f 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi @@ -104,6 +104,31 @@ opp05 { @@ -58,5 +58,5 @@ index 6bc1249d99e6..bb9205bebf9f 100644 operating-points-v2 = <&gpu_opp_table>; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0023-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0023-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch new file mode 100644 index 000000000..ef4570ed2 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0023-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch @@ -0,0 +1,62 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Thu, 28 Nov 2024 11:16:31 +0100 +Subject: arm64: dts: rockchip: rk3399-s: Add DMC table + +This is used by Pinephone Pro. + +Signed-off-by: Ondrej Jirman +--- + arch/arm64/boot/dts/rockchip/rk3399-s.dtsi | 29 ++++++++++ + 1 file changed, 29 insertions(+) + +diff --git a/arch/arm64/boot/dts/rockchip/rk3399-s.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-s.dtsi +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3399-s.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3399-s.dtsi +@@ -92,6 +92,31 @@ opp05 { + opp-microvolt = <1100000 1100000 1150000>; + }; + }; ++ ++ dmc_opp_table: opp-table-3 { ++ compatible = "operating-points-v2"; ++ ++ opp00 { ++ opp-hz = /bits/ 64 <328000000>; ++ opp-microvolt = <900000>; ++ }; ++ opp01 { ++ opp-hz = /bits/ 64 <416000000>; ++ opp-microvolt = <900000>; ++ }; ++ opp02 { ++ opp-hz = /bits/ 64 <666000000>; ++ opp-microvolt = <900000>; ++ }; ++ opp03 { ++ opp-hz = /bits/ 64 <856000000>; ++ opp-microvolt = <900000>; ++ }; ++ opp04 { ++ opp-hz = /bits/ 64 <928000000>; ++ opp-microvolt = <925000>; ++ }; ++ }; + }; + + &cpu_l0 { +@@ -118,6 +143,10 @@ &cpu_b1 { + operating-points-v2 = <&cluster1_opp>; + }; + ++&dmc { ++ operating-points-v2 = <&dmc_opp_table>; ++}; ++ + &gpu { + operating-points-v2 = <&gpu_opp_table>; + }; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-failure.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0024-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch similarity index 77% rename from patch/kernel/archive/sunxi-6.16/patches.megous/Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-failure.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0024-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch index 485331a41..9a59ac4e4 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-failure.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fixes-6.18/0024-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch @@ -1,19 +1,19 @@ -From bfaf13fd69401d5c6e0f512277e3f84bd12b1036 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 9 Aug 2025 10:10:42 +0200 Subject: Revert "usb: dwc3: Abort suspend on soft disconnect failure" This reverts commit 630a1dec3b0eba2a695b9063f1c205d585cbfec9. --- - drivers/usb/dwc3/core.c | 9 ++------- - drivers/usb/dwc3/gadget.c | 22 +++++++++++++--------- + drivers/usb/dwc3/core.c | 9 +--- + drivers/usb/dwc3/gadget.c | 22 ++++++---- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c -index 8002c23a5a02..2bc775a747f2 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c -@@ -2422,7 +2422,6 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) +@@ -2425,7 +2425,6 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) { u32 reg; int i; @@ -21,7 +21,7 @@ index 8002c23a5a02..2bc775a747f2 100644 if (!pm_runtime_suspended(dwc->dev) && !PMSG_IS_AUTO(msg)) { dwc->susphy_state = (dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)) & -@@ -2441,9 +2440,7 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) +@@ -2444,9 +2443,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; @@ -32,7 +32,7 @@ index 8002c23a5a02..2bc775a747f2 100644 synchronize_irq(dwc->irq_gadget); dwc3_core_exit(dwc); break; -@@ -2478,9 +2475,7 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) +@@ -2481,9 +2478,7 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) break; if (dwc->current_otg_role == DWC3_OTG_ROLE_DEVICE) { @@ -44,10 +44,10 @@ index 8002c23a5a02..2bc775a747f2 100644 } diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c -index 6ab6c9f163b8..41a31d02de87 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c -@@ -4836,15 +4836,8 @@ int dwc3_gadget_suspend(struct dwc3 *dwc) +@@ -4842,15 +4842,8 @@ int dwc3_gadget_suspend(struct dwc3 *dwc) int ret; ret = dwc3_gadget_soft_disconnect(dwc); @@ -65,7 +65,7 @@ index 6ab6c9f163b8..41a31d02de87 100644 spin_lock_irqsave(&dwc->lock, flags); if (dwc->gadget_driver) -@@ -4852,6 +4845,17 @@ int dwc3_gadget_suspend(struct dwc3 *dwc) +@@ -4858,6 +4851,17 @@ int dwc3_gadget_suspend(struct dwc3 *dwc) spin_unlock_irqrestore(&dwc->lock, flags); return 0; @@ -84,5 +84,5 @@ index 6ab6c9f163b8..41a31d02de87 100644 int dwc3_gadget_resume(struct dwc3 *dwc) -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Slightly-increase-wait-time-for-BC1.2-result.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0001-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Slightly-increase-wait-time-for-BC1.2-result.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0001-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch index b916d3eed..24bc2b907 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Slightly-increase-wait-time-for-BC1.2-result.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0001-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch @@ -1,4 +1,4 @@ -From d23a432cc778455189537e497b2fe5077686eaca Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 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: usb: typec: fusb302: Slightly increase wait time for BC1.2 result @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index 870a71f953f6..b68f53f70f9a 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -447,9 +447,9 @@ static int tcpm_get_current_limit(struct tcpc_dev *dev) @@ -29,5 +29,5 @@ index 870a71f953f6..b68f53f70f9a 100644 if (extcon_get_state(chip->extcon, EXTCON_CHG_USB_SDP) == 1) current_limit = 500; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Set-the-current-before-enabling-pullups.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0002-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Set-the-current-before-enabling-pullups.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0002-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch index ad9105ac6..bb14ab06f 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Set-the-current-before-enabling-pullups.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0002-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch @@ -1,4 +1,4 @@ -From da54e4696c24203e3fafe2d08312ccac72a42d3a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 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: usb: typec: fusb302: Set the current before enabling pullups @@ -8,11 +8,11 @@ current setting being applied to CC pin. Signed-off-by: Ondrej Jirman --- - drivers/usb/typec/tcpm/fusb302.c | 16 ++++++++-------- + 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 b68f53f70f9a..5f4393b48c8a 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -637,6 +637,14 @@ static int tcpm_set_cc(struct tcpc_dev *dev, enum typec_cc_status cc) @@ -46,5 +46,5 @@ index b68f53f70f9a..5f4393b48c8a 100644 switch (cc) { case TYPEC_CC_RP_DEF: -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Extend-debugging-interface-with-driver-state-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0003-usb-typec-fusb302-Extend-debugging-interface-with-dr.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Extend-debugging-interface-with-driver-state-.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0003-usb-typec-fusb302-Extend-debugging-interface-with-dr.patch index 61e6dba86..721282412 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Extend-debugging-interface-with-driver-state-.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0003-usb-typec-fusb302-Extend-debugging-interface-with-dr.patch @@ -1,4 +1,4 @@ -From 5ea24d51821bcada6db6ff470f04dc77949dffdf Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 7 Nov 2021 19:29:06 +0100 Subject: usb: typec: fusb302: Extend debugging interface with driver state @@ -8,11 +8,11 @@ This is useful for debugging. Signed-off-by: Ondrej Jirman --- - drivers/usb/typec/tcpm/fusb302.c | 78 ++++++++++++++++++++++++++++++++ + drivers/usb/typec/tcpm/fusb302.c | 78 ++++++++++ 1 file changed, 78 insertions(+) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index 5f4393b48c8a..0c4c9dad4553 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -209,6 +209,81 @@ static int fusb302_debug_show(struct seq_file *s, void *v) @@ -108,5 +108,5 @@ index 5f4393b48c8a..0c4c9dad4553 100644 static void fusb302_debugfs_exit(struct fusb302_chip *chip) -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Retry-reading-of-CC-pins-status-if-activity-i.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0004-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Retry-reading-of-CC-pins-status-if-activity-i.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0004-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch index 6d60d193b..bb15a17c1 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Retry-reading-of-CC-pins-status-if-activity-i.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0004-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch @@ -1,4 +1,4 @@ -From 636cc1b239e43e2359ad66907679e95f6a96068a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 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: usb: typec: fusb302: Retry reading of CC pins status if activity is @@ -9,11 +9,11 @@ also help when this happens. Signed-off-by: Ondrej Jirman --- - drivers/usb/typec/tcpm/fusb302.c | 34 ++++++++++++++++++++++++++++++-- + 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 0c4c9dad4553..86184475002f 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -1325,6 +1325,36 @@ static int fusb302_handle_togdone_snk(struct fusb302_chip *chip, @@ -72,5 +72,5 @@ index 0c4c9dad4553..86184475002f 100644 return ret; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-More-useful-of-logging-status-on-interrupt.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0005-usb-typec-fusb302-More-useful-of-logging-status-on-i.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-More-useful-of-logging-status-on-interrupt.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0005-usb-typec-fusb302-More-useful-of-logging-status-on-i.patch index 771536fac..9c9e0e1f0 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-More-useful-of-logging-status-on-interrupt.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0005-usb-typec-fusb302-More-useful-of-logging-status-on-i.patch @@ -1,4 +1,4 @@ -From 8618ac54bfcb97c03e345cca7335f56351590d25 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 23 Nov 2021 17:55:34 +0100 Subject: usb: typec: fusb302: More useful of logging status on interrupt @@ -8,11 +8,11 @@ see how hardware state changes in time. Signed-off-by: Ondrej Jirman --- - drivers/usb/typec/tcpm/fusb302.c | 121 ++++++++++++++++++++++++++----- + drivers/usb/typec/tcpm/fusb302.c | 121 ++++++++-- 1 file changed, 104 insertions(+), 17 deletions(-) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index 86184475002f..8338954c2308 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -69,7 +69,7 @@ static const u8 rd_mda_value[] = { @@ -185,5 +185,5 @@ index 86184475002f..8338954c2308 100644 chip->cc1 = TYPEC_CC_OPEN; chip->cc2 = TYPEC_CC_OPEN; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-interrupt-is-n.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0006-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-interrupt-is-n.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0006-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch index 9aadc190a..3014b76c1 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-interrupt-is-n.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0006-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch @@ -1,4 +1,4 @@ -From f1ef44be900f311965351eff277860734461c108 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 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: usb: typec: fusb302: Update VBUS state even if VBUS interrupt is not @@ -8,11 +8,11 @@ This seems to improve robustness. Signed-off-by: Ondrej Jirman --- - drivers/usb/typec/tcpm/fusb302.c | 14 ++++++++------ + 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 8338954c2308..b8b8f0e96b63 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -1724,14 +1724,16 @@ static void fusb302_irq_work(struct work_struct *work) @@ -39,5 +39,5 @@ index 8338954c2308..b8b8f0e96b63 100644 if (interrupta & FUSB_REG_INTERRUPTA_TOGDONE) { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Add-OF-extcon-support.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0007-usb-typec-fusb302-Add-OF-extcon-support.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Add-OF-extcon-support.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0007-usb-typec-fusb302-Add-OF-extcon-support.patch index 9b4d8631d..73b966d29 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Add-OF-extcon-support.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0007-usb-typec-fusb302-Add-OF-extcon-support.patch @@ -1,4 +1,4 @@ -From 14453043353361c0065e30c899403408ea1751d2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 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: usb: typec: fusb302: Add OF extcon support @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 10 insertions(+) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index b8b8f0e96b63..74246d836019 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -520,6 +520,16 @@ static int tcpm_get_current_limit(struct tcpc_dev *dev) @@ -34,5 +34,5 @@ index b8b8f0e96b63..74246d836019 100644 return 0; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Fix-register-definitions.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0008-usb-typec-fusb302-Fix-register-definitions.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Fix-register-definitions.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0008-usb-typec-fusb302-Fix-register-definitions.patch index 0be3b033c..cab26f3cd 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Fix-register-definitions.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0008-usb-typec-fusb302-Fix-register-definitions.patch @@ -1,4 +1,4 @@ -From d672d78b89e93cc2e446a15d2bfbb8d5d29455e0 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 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: usb: typec: fusb302: Fix register definitions @@ -7,11 +7,11 @@ MEASURE_VBUS bit is at position 6. MDAC bits are also wrong. Signed-off-by: Ondrej Jirman --- - drivers/usb/typec/tcpm/fusb302_reg.h | 16 +++++++--------- + drivers/usb/typec/tcpm/fusb302_reg.h | 16 ++++------ 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/usb/typec/tcpm/fusb302_reg.h b/drivers/usb/typec/tcpm/fusb302_reg.h -index edc0e4b0f1e6..f37d226c5027 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/fusb302_reg.h +++ b/drivers/usb/typec/tcpm/fusb302_reg.h @@ -27,14 +27,13 @@ @@ -45,5 +45,5 @@ index edc0e4b0f1e6..f37d226c5027 100644 #define FUSB_REG_STATUS1A_TOGSS_SRC1 0x1 #define FUSB_REG_STATUS1A_TOGSS_SRC2 0x2 -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Clear-interrupts-before-we-start-toggling.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0009-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Clear-interrupts-before-we-start-toggling.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0009-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch index 8b5b10166..89b715474 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-fusb302-Clear-interrupts-before-we-start-toggling.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/fusb302-6.18/0009-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch @@ -1,4 +1,4 @@ -From 19b79cda1dcbf9b0c5284414d7cfa84dd308bac1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 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: usb: typec: fusb302: Clear interrupts before we start toggling @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 7 insertions(+) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c -index 74246d836019..14678850290e 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -588,6 +588,7 @@ static int fusb302_set_toggling(struct fusb302_chip *chip, @@ -36,5 +36,5 @@ index 74246d836019..14678850290e 100644 ret = fusb302_i2c_clear_bits(chip, FUSB_REG_MASKA, FUSB_REG_MASKA_TOGDONE); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0001-Input-goodix-Add-config-debugfs-file.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0001-Input-goodix-Add-config-debugfs-file.patch new file mode 100644 index 000000000..4ebccaea6 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0001-Input-goodix-Add-config-debugfs-file.patch @@ -0,0 +1,75 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= +Date: Mon, 22 Jun 2020 17:17:09 +0200 +Subject: Input: goodix: Add config debugfs file + +Signed-off-by: Ondrej Jirman +--- + drivers/input/touchscreen/goodix.c | 17 ++++++++++ + drivers/input/touchscreen/goodix.h | 1 + + 2 files changed, 18 insertions(+) + +diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c +index 111111111111..222222222222 100644 +--- a/drivers/input/touchscreen/goodix.c ++++ b/drivers/input/touchscreen/goodix.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include "goodix.h" + + #define GOODIX_GPIO_INT_NAME "irq" +@@ -1029,6 +1030,16 @@ static int goodix_get_gpio_config(struct goodix_ts_data *ts) + return 0; + } + ++static int ts_config_bin_show(struct seq_file *s, void *data) ++{ ++ struct goodix_ts_data *ts = s->private; ++ ++ seq_write(s, ts->config, ts->chip->config_len); ++ ++ return 0; ++} ++DEFINE_SHOW_ATTRIBUTE(ts_config_bin); ++ + /** + * goodix_read_config - Read the embedded configuration of the panel + * +@@ -1067,6 +1078,10 @@ static void goodix_read_config(struct goodix_ts_data *ts) + } + + ts->chip->calc_config_checksum(ts); ++ ++ ts->debug_root = debugfs_create_dir("goodix", NULL); ++ debugfs_create_file("config.bin", 0444, ts->debug_root, ts, ++ &ts_config_bin_fops); + } + + /** +@@ -1422,6 +1437,8 @@ static void goodix_ts_remove(struct i2c_client *client) + + if (ts->load_cfg_from_disk) + wait_for_completion(&ts->firmware_loading_complete); ++ ++ debugfs_remove(ts->debug_root); + } + + static int goodix_suspend(struct device *dev) +diff --git a/drivers/input/touchscreen/goodix.h b/drivers/input/touchscreen/goodix.h +index 111111111111..222222222222 100644 +--- a/drivers/input/touchscreen/goodix.h ++++ b/drivers/input/touchscreen/goodix.h +@@ -103,6 +103,7 @@ struct goodix_ts_data { + u8 main_clk[GOODIX_MAIN_CLK_LEN]; + int bak_ref_len; + u8 *bak_ref; ++ struct dentry *debug_root; + }; + + int goodix_i2c_read(struct i2c_client *client, u16 reg, u8 *buf, int len); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0002-Input-goodix-Add-option-to-power-off-the-controller-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0002-Input-goodix-Add-option-to-power-off-the-controller-.patch new file mode 100644 index 000000000..8137a45e2 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0002-Input-goodix-Add-option-to-power-off-the-controller-.patch @@ -0,0 +1,101 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= +Date: Sun, 25 Apr 2021 03:16:42 +0200 +Subject: Input: goodix: Add option to power off the controller during suspend + +For whatever reason the controller is not suspended on Pinephone +by the default procedure. It consumes quite a bit of power (~40mW) +during system sleep, and more when the screen is touched. + +Let's power off the controller during system sleep instead. + +Signed-off-by: Ondrej Jirman +--- + drivers/input/touchscreen/goodix.c | 37 ++++++++++ + drivers/input/touchscreen/goodix.h | 1 + + 2 files changed, 38 insertions(+) + +diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c +index 111111111111..222222222222 100644 +--- a/drivers/input/touchscreen/goodix.c ++++ b/drivers/input/touchscreen/goodix.c +@@ -1322,6 +1322,7 @@ static void goodix_disable_regulators(void *arg) + + static int goodix_ts_probe(struct i2c_client *client) + { ++ struct device_node *np = client->dev.of_node; + struct goodix_ts_data *ts; + const char *cfg_name; + int error; +@@ -1341,6 +1342,7 @@ static int goodix_ts_probe(struct i2c_client *client) + i2c_set_clientdata(client, ts); + init_completion(&ts->firmware_loading_complete); + ts->contact_size = GOODIX_CONTACT_SIZE; ++ ts->poweroff_in_suspend = of_property_read_bool(np, "poweroff-in-suspend"); + + error = goodix_get_gpio_config(ts); + if (error) +@@ -1450,6 +1452,15 @@ static int goodix_suspend(struct device *dev) + if (ts->load_cfg_from_disk) + wait_for_completion(&ts->firmware_loading_complete); + ++ if (ts->poweroff_in_suspend) { ++ goodix_free_irq(ts); ++ goodix_irq_direction_output(ts, 0); ++ gpiod_direction_output(ts->gpiod_rst, 0); ++ regulator_disable(ts->avdd28); ++ regulator_disable(ts->vddio); ++ return 0; ++ } ++ + /* We need gpio pins to suspend/resume */ + if (ts->irq_pin_access_method == IRQ_PIN_ACCESS_NONE) { + goodix_disable_irq(ts); +@@ -1495,6 +1506,32 @@ static int goodix_resume(struct device *dev) + u8 config_ver; + int error; + ++ if (ts->poweroff_in_suspend) { ++ error = regulator_enable(ts->avdd28); ++ if (error) { ++ dev_err(dev, "Regulator avdd28 enable failed.\n"); ++ return error; ++ } ++ ++ error = regulator_enable(ts->vddio); ++ if (error) { ++ dev_err(dev, "Regulator vddio enable failed.\n"); ++ return error; ++ } ++ ++ error = goodix_reset(ts); ++ if (error) { ++ dev_err(dev, "Controller reset failed.\n"); ++ return error; ++ } ++ ++ error = goodix_request_irq(ts); ++ if (error) ++ return error; ++ ++ return 0; ++ } ++ + if (ts->irq_pin_access_method == IRQ_PIN_ACCESS_NONE) { + goodix_enable_irq(ts); + return 0; +diff --git a/drivers/input/touchscreen/goodix.h b/drivers/input/touchscreen/goodix.h +index 111111111111..222222222222 100644 +--- a/drivers/input/touchscreen/goodix.h ++++ b/drivers/input/touchscreen/goodix.h +@@ -104,6 +104,7 @@ struct goodix_ts_data { + int bak_ref_len; + u8 *bak_ref; + struct dentry *debug_root; ++ bool poweroff_in_suspend; + }; + + int goodix_i2c_read(struct i2c_client *client, u16 reg, u8 *buf, int len); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0003-Input-goodix-Try-to-keep-regulator-enable-disable-ba.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0003-Input-goodix-Try-to-keep-regulator-enable-disable-ba.patch new file mode 100644 index 000000000..bb01871d7 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0003-Input-goodix-Try-to-keep-regulator-enable-disable-ba.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sun, 21 May 2023 01:26:59 +0200 +Subject: Input: goodix: Try to keep regulator enable/disable balanced + +Failure handling is still not optimal in this driver, but let's +try to improve it. + +Signed-off-by: Ondrej Jirman +--- + drivers/input/touchscreen/goodix.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c +index 111111111111..222222222222 100644 +--- a/drivers/input/touchscreen/goodix.c ++++ b/drivers/input/touchscreen/goodix.c +@@ -1515,6 +1515,7 @@ static int goodix_resume(struct device *dev) + + error = regulator_enable(ts->vddio); + if (error) { ++ regulator_disable(ts->avdd28); + dev_err(dev, "Regulator vddio enable failed.\n"); + return error; + } +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0004-input-touchscreen-goodix-Respect-IRQ-flags-from-DT-w.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0004-input-touchscreen-goodix-Respect-IRQ-flags-from-DT-w.patch new file mode 100644 index 000000000..ee8401932 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/goodix-6.18/0004-input-touchscreen-goodix-Respect-IRQ-flags-from-DT-w.patch @@ -0,0 +1,60 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= +Date: Mon, 18 Oct 2021 03:56:14 +0200 +Subject: input: touchscreen: goodix: Respect IRQ flags from DT when asked to + +Sometimes the IRQ flags determined from toucschreen config don't +work well. + +Signed-off-by: Ondrej Jirman +--- + drivers/input/touchscreen/goodix.c | 8 +++++++- + drivers/input/touchscreen/goodix.h | 1 + + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c +index 111111111111..222222222222 100644 +--- a/drivers/input/touchscreen/goodix.c ++++ b/drivers/input/touchscreen/goodix.c +@@ -544,12 +544,17 @@ static void goodix_free_irq(struct goodix_ts_data *ts) + + static int goodix_request_irq(struct goodix_ts_data *ts) + { ++ unsigned long irq_flags = ts->irq_flags; ++ + if (!ts->client->irq) + return 0; + ++ if (ts->use_dt_irqflags) ++ irq_flags = IRQF_ONESHOT; ++ + return devm_request_threaded_irq(&ts->client->dev, ts->client->irq, + NULL, goodix_ts_irq_handler, +- ts->irq_flags, ts->client->name, ts); ++ irq_flags, ts->client->name, ts); + } + + static int goodix_check_cfg_8(struct goodix_ts_data *ts, const u8 *cfg, int len) +@@ -1338,6 +1343,7 @@ static int goodix_ts_probe(struct i2c_client *client) + if (!ts) + return -ENOMEM; + ++ ts->use_dt_irqflags = of_property_read_bool(np, "use-dt-irq-flags"); + ts->client = client; + i2c_set_clientdata(client, ts); + init_completion(&ts->firmware_loading_complete); +diff --git a/drivers/input/touchscreen/goodix.h b/drivers/input/touchscreen/goodix.h +index 111111111111..222222222222 100644 +--- a/drivers/input/touchscreen/goodix.h ++++ b/drivers/input/touchscreen/goodix.h +@@ -81,6 +81,7 @@ struct goodix_ts_data { + const char *firmware_name; + struct touchscreen_properties prop; + unsigned int max_touch_num; ++ bool use_dt_irqflags; + unsigned int int_trigger_type; + struct regulator *avdd28; + struct regulator *vddio; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ASOC-sun9i-hdmi-audio-Initial-implementation.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0001-ASOC-sun9i-hdmi-audio-Initial-implementation.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ASOC-sun9i-hdmi-audio-Initial-implementation.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0001-ASOC-sun9i-hdmi-audio-Initial-implementation.patch index b7565c4c5..520a7ce8c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ASOC-sun9i-hdmi-audio-Initial-implementation.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0001-ASOC-sun9i-hdmi-audio-Initial-implementation.patch @@ -1,4 +1,4 @@ -From 1ab2cc80d4c013f9f63ff7cc0412894abad1b575 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Tue, 10 Nov 2020 20:42:44 +0100 Subject: ASOC: sun9i-hdmi-audio: Initial implementation @@ -10,14 +10,13 @@ V40. Signed-off-by: Jernej Skrabec --- - sound/soc/sunxi/Kconfig | 8 ++ + sound/soc/sunxi/Kconfig | 8 + sound/soc/sunxi/Makefile | 1 + - sound/soc/sunxi/sun9i-hdmi-audio.c | 178 +++++++++++++++++++++++++++++ + sound/soc/sunxi/sun9i-hdmi-audio.c | 178 ++++++++++ 3 files changed, 187 insertions(+) - create mode 100644 sound/soc/sunxi/sun9i-hdmi-audio.c diff --git a/sound/soc/sunxi/Kconfig b/sound/soc/sunxi/Kconfig -index f87b061f59b2..753c38c5d554 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/sunxi/Kconfig +++ b/sound/soc/sunxi/Kconfig @@ -76,6 +76,14 @@ config SND_SUN50I_DMIC @@ -36,7 +35,7 @@ index f87b061f59b2..753c38c5d554 100644 tristate select REGMAP diff --git a/sound/soc/sunxi/Makefile b/sound/soc/sunxi/Makefile -index 6131aea97efa..19800277105c 100644 +index 111111111111..222222222222 100644 --- a/sound/soc/sunxi/Makefile +++ b/sound/soc/sunxi/Makefile @@ -8,3 +8,4 @@ obj-$(CONFIG_SND_SUN50I_CODEC_ANALOG) += sun50i-codec-analog.o @@ -46,7 +45,7 @@ index 6131aea97efa..19800277105c 100644 +obj-$(CONFIG_SND_SUN9I_HDMI_AUDIO) += sun9i-hdmi-audio.o diff --git a/sound/soc/sunxi/sun9i-hdmi-audio.c b/sound/soc/sunxi/sun9i-hdmi-audio.c new file mode 100644 -index 000000000000..d64b208d6f03 +index 000000000000..111111111111 --- /dev/null +++ b/sound/soc/sunxi/sun9i-hdmi-audio.c @@ -0,0 +1,178 @@ @@ -229,5 +228,5 @@ index 000000000000..d64b208d6f03 +MODULE_AUTHOR("Jernej Skrabec "); +MODULE_LICENSE("GPL v2"); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sunxi-h3-h5-Add-hdmi-sound-card.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0002-ARM-dts-sunxi-h3-h5-Add-hdmi-sound-card.patch similarity index 77% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sunxi-h3-h5-Add-hdmi-sound-card.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0002-ARM-dts-sunxi-h3-h5-Add-hdmi-sound-card.patch index 4abe1f5f1..98263eeea 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sunxi-h3-h5-Add-hdmi-sound-card.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0002-ARM-dts-sunxi-h3-h5-Add-hdmi-sound-card.patch @@ -1,4 +1,4 @@ -From 52961661dcef9266fc76b8c4755004e1e013a643 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 11:04:58 +0200 Subject: ARM: dts: sunxi: h3/h5: Add hdmi sound card @@ -7,15 +7,15 @@ H3 and H5 support HDMI audio. Add a sound card node for it. Signed-off-by: Jernej Skrabec --- - arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi | 15 +++++++++++++++ + arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi | 15 ++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi -index 7df60515a903..0f19e7c00c50 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi +++ b/arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi -@@ -106,6 +106,20 @@ de: display-engine { - status = "disabled"; +@@ -113,6 +113,20 @@ scpi_protocol: scpi { + shmem = <&scpi_sram>; }; + sound_hdmi: sound_hdmi { @@ -35,7 +35,7 @@ index 7df60515a903..0f19e7c00c50 100644 soc { compatible = "simple-bus"; #address-cells = <1>; -@@ -818,6 +832,7 @@ csi: camera@1cb0000 { +@@ -825,6 +839,7 @@ csi: camera@1cb0000 { }; hdmi: hdmi@1ee0000 { @@ -44,5 +44,5 @@ index 7df60515a903..0f19e7c00c50 100644 "allwinner,sun8i-a83t-dw-hdmi"; reg = <0x01ee0000 0x10000>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-with-hdmi.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0003-ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-wi.patch similarity index 81% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-with-hdmi.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0003-ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-wi.patch index 7c528857e..7ad8f3cde 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-with-hdmi.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0003-ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-wi.patch @@ -1,4 +1,4 @@ -From 5323f01be1bd567087b616965c90581d2fc8ed08 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 11:06:37 +0200 Subject: ARM: dts: sun8i: h3: Enable hdmi sound card on boards with hdmi @@ -8,20 +8,20 @@ Enable HDMI sound card on all H3 boards with HDMI connector. Signed-off-by: Jernej Skrabec --- - arch/arm/boot/dts/allwinner/sun8i-h3-beelink-x2.dts | 8 ++++++++ - .../dts/allwinner/sun8i-h3-emlid-neutis-n5h3-devboard.dts | 8 ++++++++ - arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1-plus.dts | 8 ++++++++ - arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1.dts | 8 ++++++++ - arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-2.dts | 8 ++++++++ - arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-lite.dts | 8 ++++++++ - arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts | 8 ++++++++ - arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts | 8 ++++++++ - .../boot/dts/allwinner/sun8i-h3-orangepi-zero-plus2.dts | 8 ++++++++ - arch/arm/boot/dts/allwinner/sun8i-h3-rervision-dvk.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-h3-beelink-x2.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-h3-emlid-neutis-n5h3-devboard.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1-plus.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-2.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-lite.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-zero-plus2.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-h3-rervision-dvk.dts | 8 ++++++++ 10 files changed, 80 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-beelink-x2.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-beelink-x2.dts -index 5b77300307de..2fa04f508216 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-beelink-x2.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-beelink-x2.dts @@ -159,6 +159,10 @@ hdmi_out_con: endpoint { @@ -47,7 +47,7 @@ index 5b77300307de..2fa04f508216 100644 pinctrl-names = "default"; pinctrl-0 = <&spdif_tx_pin>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-emlid-neutis-n5h3-devboard.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-emlid-neutis-n5h3-devboard.dts -index 02fbe00cde97..61d6529dcc70 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-emlid-neutis-n5h3-devboard.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-emlid-neutis-n5h3-devboard.dts @@ -70,3 +70,11 @@ hdmi_out_con: endpoint { @@ -63,7 +63,7 @@ index 02fbe00cde97..61d6529dcc70 100644 + status = "okay"; +}; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1-plus.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1-plus.dts -index 59bd0746acf8..10ae138b14f0 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1-plus.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1-plus.dts @@ -118,6 +118,10 @@ hdmi_out_con: endpoint { @@ -89,7 +89,7 @@ index 59bd0746acf8..10ae138b14f0 100644 pinctrl-names = "default"; pinctrl-0 = <&uart3_pins>, <&uart3_rts_cts_pins>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1.dts -index 69243dcb30a6..9393779f33b6 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1.dts @@ -91,6 +91,10 @@ hdmi_out_con: endpoint { @@ -112,7 +112,7 @@ index 69243dcb30a6..9393779f33b6 100644 + status = "okay"; +}; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-2.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-2.dts -index d2ae47b074bf..7fac0c8906e8 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-2.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-2.dts @@ -145,6 +145,10 @@ hdmi_out_con: endpoint { @@ -138,7 +138,7 @@ index d2ae47b074bf..7fac0c8906e8 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-lite.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-lite.dts -index 6a4316a52469..28ec2a5b1a5c 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-lite.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-lite.dts @@ -120,6 +120,10 @@ hdmi_out_con: endpoint { @@ -164,7 +164,7 @@ index 6a4316a52469..28ec2a5b1a5c 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts -index 59f6f6d5e7ca..927fd1bab07d 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts @@ -146,6 +146,10 @@ hdmi_out_con: endpoint { @@ -190,7 +190,7 @@ index 59f6f6d5e7ca..927fd1bab07d 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts -index 92a58e362004..624e248e3ffc 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc.dts @@ -147,6 +147,10 @@ hdmi_out_con: endpoint { @@ -216,10 +216,10 @@ index 92a58e362004..624e248e3ffc 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-zero-plus2.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-zero-plus2.dts -index 7a6444a10e25..4073d34af23c 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-zero-plus2.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-zero-plus2.dts -@@ -117,6 +117,10 @@ hdmi_out_con: endpoint { +@@ -131,6 +131,10 @@ hdmi_out_con: endpoint { }; }; @@ -230,7 +230,7 @@ index 7a6444a10e25..4073d34af23c 100644 &mmc0 { vmmc-supply = <®_vcc3v3>; bus-width = <4>; -@@ -155,6 +159,10 @@ &ohci0 { +@@ -169,6 +173,10 @@ &ohci0 { status = "okay"; }; @@ -242,7 +242,7 @@ index 7a6444a10e25..4073d34af23c 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-rervision-dvk.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-rervision-dvk.dts -index 4738f3a9efe4..ee645912ee39 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-rervision-dvk.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-rervision-dvk.dts @@ -69,6 +69,10 @@ hdmi_out_con: endpoint { @@ -268,5 +268,5 @@ index 4738f3a9efe4..ee645912ee39 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h2-plus-bananapi-m2-zero-Enable-HDMI-audio.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0004-ARM-dts-sun8i-h2-plus-bananapi-m2-zero-Enable-HDMI-a.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h2-plus-bananapi-m2-zero-Enable-HDMI-audio.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0004-ARM-dts-sun8i-h2-plus-bananapi-m2-zero-Enable-HDMI-a.patch index 8321d9517..1daa79ccb 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h2-plus-bananapi-m2-zero-Enable-HDMI-audio.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0004-ARM-dts-sun8i-h2-plus-bananapi-m2-zero-Enable-HDMI-a.patch @@ -1,4 +1,4 @@ -From 9ed682abf8c8c9b0f701562789f208757b8f39ca Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 11:14:51 +0200 Subject: ARM: dts: sun8i: h2-plus: bananapi-m2-zero: Enable HDMI audio @@ -8,11 +8,11 @@ it. Signed-off-by: Jernej Skrabec --- - .../boot/dts/allwinner/sun8i-h2-plus-bananapi-m2-zero.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-h2-plus-bananapi-m2-zero.dts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-h2-plus-bananapi-m2-zero.dts b/arch/arm/boot/dts/allwinner/sun8i-h2-plus-bananapi-m2-zero.dts -index d3a7c9fa23e4..f40c2d0483b5 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h2-plus-bananapi-m2-zero.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h2-plus-bananapi-m2-zero.dts @@ -133,6 +133,10 @@ hdmi_out_con: endpoint { @@ -38,5 +38,5 @@ index d3a7c9fa23e4..f40c2d0483b5 100644 dr_mode = "otg"; status = "okay"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-hdmi-sound-card.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0005-ARM-dts-sun8i-a83t-Add-hdmi-sound-card.patch similarity index 80% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-hdmi-sound-card.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0005-ARM-dts-sun8i-a83t-Add-hdmi-sound-card.patch index db8104697..185fc3991 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Add-hdmi-sound-card.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0005-ARM-dts-sun8i-a83t-Add-hdmi-sound-card.patch @@ -1,4 +1,4 @@ -From 4e1ffe039332d9041531f512c208506e571d0a5c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 11:32:57 +0200 Subject: ARM: dts: sun8i: a83t: Add hdmi sound card @@ -7,14 +7,14 @@ A83t support HDMI audio. Add a sound card node for it. Signed-off-by: Jernej Skrabec --- - arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi | 15 +++++++++++++++ + arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi | 15 ++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -index f83aded98482..c6e5d556f9f6 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -@@ -150,6 +150,20 @@ cpu103: cpu@103 { +@@ -156,6 +156,20 @@ cpu103: cpu@103 { }; }; @@ -35,7 +35,7 @@ index f83aded98482..c6e5d556f9f6 100644 timer { compatible = "arm,armv7-timer"; interrupts = , -@@ -1059,6 +1073,7 @@ csi: camera@1cb0000 { +@@ -1089,6 +1103,7 @@ csi: camera@1cb0000 { }; hdmi: hdmi@1ee0000 { @@ -44,5 +44,5 @@ index f83aded98482..c6e5d556f9f6 100644 reg = <0x01ee0000 0x10000>; reg-io-width = <1>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Enable-hdmi-sound-card-on-boards-with-hdmi.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0006-ARM-dts-sun8i-a83t-Enable-hdmi-sound-card-on-boards-.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Enable-hdmi-sound-card-on-boards-with-hdmi.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0006-ARM-dts-sun8i-a83t-Enable-hdmi-sound-card-on-boards-.patch index 66c50f695..a0551d7c2 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Enable-hdmi-sound-card-on-boards-with-hdmi.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0006-ARM-dts-sun8i-a83t-Enable-hdmi-sound-card-on-boards-.patch @@ -1,4 +1,4 @@ -From ea78de6c4aab8eff9974c40fbefa36042e794c5e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 11:34:43 +0200 Subject: ARM: dts: sun8i: a83t: Enable hdmi sound card on boards with hdmi @@ -8,12 +8,12 @@ Enable HDMI sound card on all A83t boards with HDMI connector. Signed-off-by: Jernej Skrabec --- - arch/arm/boot/dts/allwinner/sun8i-a83t-bananapi-m3.dts | 8 ++++++++ - .../arm/boot/dts/allwinner/sun8i-a83t-cubietruck-plus.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-a83t-bananapi-m3.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-a83t-cubietruck-plus.dts | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t-bananapi-m3.dts b/arch/arm/boot/dts/allwinner/sun8i-a83t-bananapi-m3.dts -index 32e811fa23e2..9a7117bca70d 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t-bananapi-m3.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t-bananapi-m3.dts @@ -162,6 +162,10 @@ hdmi_out_con: endpoint { @@ -39,7 +39,7 @@ index 32e811fa23e2..9a7117bca70d 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pb_pins>; diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t-cubietruck-plus.dts b/arch/arm/boot/dts/allwinner/sun8i-a83t-cubietruck-plus.dts -index d5e6ddaffbce..d4d834084b12 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t-cubietruck-plus.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t-cubietruck-plus.dts @@ -197,6 +197,10 @@ hdmi_out_con: endpoint { @@ -65,5 +65,5 @@ index d5e6ddaffbce..d4d834084b12 100644 status = "okay"; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-r40-Add-hdmi-sound-card.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0007-ARM-dts-sun8i-r40-Add-hdmi-sound-card.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-r40-Add-hdmi-sound-card.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0007-ARM-dts-sun8i-r40-Add-hdmi-sound-card.patch index 917191d14..5398fb6f1 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-r40-Add-hdmi-sound-card.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0007-ARM-dts-sun8i-r40-Add-hdmi-sound-card.patch @@ -1,4 +1,4 @@ -From f72b5462f63489d3e37b03a9a7f778d5842f0620 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 11:50:56 +0200 Subject: ARM: dts: sun8i: r40: Add hdmi sound card @@ -7,11 +7,11 @@ R40 support HDMI audio. Add a sound card node for it. Signed-off-by: Jernej Skrabec --- - arch/arm/boot/dts/allwinner/sun8i-r40.dtsi | 15 +++++++++++++++ + arch/arm/boot/dts/allwinner/sun8i-r40.dtsi | 15 ++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-r40.dtsi b/arch/arm/boot/dts/allwinner/sun8i-r40.dtsi -index fa162f7fa9f0..135aca6a8b1a 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-r40.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-r40.dtsi @@ -124,6 +124,20 @@ de: display-engine { @@ -44,5 +44,5 @@ index fa162f7fa9f0..135aca6a8b1a 100644 "allwinner,sun8i-a83t-dw-hdmi"; reg = <0x01ee0000 0x10000>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-r40-bananapi-m2-ultra-Enable-HDMI-audio.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0008-ARM-dts-sun8i-r40-bananapi-m2-ultra-Enable-HDMI-audi.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-r40-bananapi-m2-ultra-Enable-HDMI-audio.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0008-ARM-dts-sun8i-r40-bananapi-m2-ultra-Enable-HDMI-audi.patch index 0b8457e1e..b2df7cfcb 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-r40-bananapi-m2-ultra-Enable-HDMI-audio.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0008-ARM-dts-sun8i-r40-bananapi-m2-ultra-Enable-HDMI-audi.patch @@ -1,4 +1,4 @@ -From 42a96825b819aef86f3c08ba6eb435cf4262c10c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 11:52:43 +0200 Subject: ARM: dts: sun8i: r40: bananapi-m2-ultra: Enable HDMI audio @@ -8,11 +8,11 @@ it. Signed-off-by: Jernej Skrabec --- - .../boot/dts/allwinner/sun8i-r40-bananapi-m2-ultra.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-r40-bananapi-m2-ultra.dts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/boot/dts/allwinner/sun8i-r40-bananapi-m2-ultra.dts -index cd2351acc32f..a91213e8d2c1 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-r40-bananapi-m2-ultra.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-r40-bananapi-m2-ultra.dts @@ -169,6 +169,10 @@ axp22x: pmic@34 { @@ -38,5 +38,5 @@ index cd2351acc32f..a91213e8d2c1 100644 status = "okay"; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-v40-bananapi-m2-berry-Enable-HDMI-audio.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0009-ARM-dts-sun8i-v40-bananapi-m2-berry-Enable-HDMI-audi.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-v40-bananapi-m2-berry-Enable-HDMI-audio.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0009-ARM-dts-sun8i-v40-bananapi-m2-berry-Enable-HDMI-audi.patch index 52396b77e..6c6a17342 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-v40-bananapi-m2-berry-Enable-HDMI-audio.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0009-ARM-dts-sun8i-v40-bananapi-m2-berry-Enable-HDMI-audi.patch @@ -1,4 +1,4 @@ -From f7ebb1938b694b81fa4be16f1bd191aeb30ab6be Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 12:00:46 +0200 Subject: ARM: dts: sun8i: v40: bananapi-m2-berry: Enable HDMI audio @@ -8,11 +8,11 @@ it. Signed-off-by: Jernej Skrabec --- - .../boot/dts/allwinner/sun8i-v40-bananapi-m2-berry.dts | 8 ++++++++ + arch/arm/boot/dts/allwinner/sun8i-v40-bananapi-m2-berry.dts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-v40-bananapi-m2-berry.dts b/arch/arm/boot/dts/allwinner/sun8i-v40-bananapi-m2-berry.dts -index 6575ef274453..0e1395a3d052 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-v40-bananapi-m2-berry.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-v40-bananapi-m2-berry.dts @@ -160,6 +160,10 @@ axp22x: pmic@34 { @@ -38,5 +38,5 @@ index 6575ef274453..0e1395a3d052 100644 status = "okay"; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0010-arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch similarity index 80% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0010-arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch index 6410d9954..caaf28388 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0010-arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch @@ -1,4 +1,4 @@ -From 82458044eed7f24ff5810818c05aaceb87522ddf Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Tue, 10 Nov 2020 20:43:28 +0100 Subject: arm64: dts: allwinner: h6: Add hdmi sound card @@ -7,14 +7,14 @@ H6 supports HDMI audio. Add a sound card node for it. Signed-off-by: Jernej Skrabec --- - arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 16 ++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 16 ++++++++++ 1 file changed, 16 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -index 73e8604315c5..ff67281bc090 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi -@@ -122,6 +122,20 @@ psci { +@@ -128,6 +128,20 @@ psci { method = "smc"; }; @@ -35,7 +35,7 @@ index 73e8604315c5..ff67281bc090 100644 timer { compatible = "arm,armv8-timer"; arm,no-tick-in-suspend; -@@ -135,6 +149,7 @@ timer { +@@ -141,6 +155,7 @@ timer { (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; }; @@ -43,7 +43,7 @@ index 73e8604315c5..ff67281bc090 100644 soc { compatible = "simple-bus"; #address-cells = <1>; -@@ -813,6 +828,7 @@ ohci3: usb@5311400 { +@@ -819,6 +834,7 @@ ohci3: usb@5311400 { }; hdmi: hdmi@6000000 { @@ -52,5 +52,5 @@ index 73e8604315c5..ff67281bc090 100644 reg = <0x06000000 0x10000>; reg-io-width = <1>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boards-with-hd.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0011-arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boa.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boards-with-hd.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0011-arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boa.patch index b1f383480..1f9e4e3bd 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boards-with-hd.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0011-arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boa.patch @@ -1,4 +1,4 @@ -From ff19a25fd2ae104ad9bc5c9bb49cec698552bff2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 11 Jan 2022 13:08:47 +0100 Subject: arm64: dts: allwinner: h6: Enable hdmi sound card on boards with hdmi @@ -15,7 +15,7 @@ Signed-off-by: Jernej Skrabec 4 files changed, 32 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts -index 2c64d834a2c4..bf1e98ded8f5 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts @@ -119,6 +119,10 @@ hdmi_out_con: endpoint { @@ -41,10 +41,10 @@ index 2c64d834a2c4..bf1e98ded8f5 100644 pinctrl-names = "default"; pinctrl-0 = <&spdif_tx_pin>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts -index cd1dd0192181..4cc21a55a7c1 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts -@@ -167,6 +167,10 @@ ext_rgmii_phy: ethernet-phy@1 { +@@ -128,6 +128,10 @@ hdmi_out_con: endpoint { }; }; @@ -55,7 +55,7 @@ index cd1dd0192181..4cc21a55a7c1 100644 &mmc0 { vmmc-supply = <®_cldo1>; cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ -@@ -340,6 +344,10 @@ &rtc { +@@ -300,6 +304,10 @@ &rtc { clocks = <&ext_osc32k>; }; @@ -67,7 +67,7 @@ index cd1dd0192181..4cc21a55a7c1 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_ph_pins>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi -index e34dbb992021..283ccedf61ad 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi @@ -91,6 +91,10 @@ hdmi_out_con: endpoint { @@ -93,7 +93,7 @@ index e34dbb992021..283ccedf61ad 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_ph_pins>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts -index fa7a765ee828..95aea02bce40 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts @@ -123,6 +123,10 @@ hdmi_out_con: endpoint { @@ -119,5 +119,5 @@ index fa7a765ee828..95aea02bce40 100644 * The CS pin is shared with the MMC2 CMD pin, so we cannot have the SPI * flash and eMMC at the same time, as one of them would fail probing. -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0012-arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch similarity index 78% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0012-arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch index 2867f91fe..d8d389f7b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0012-arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch @@ -1,4 +1,4 @@ -From cb90c0e2677a987f4928d2030c7af510b1baf629 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 10:39:56 +0200 Subject: arm64: dts: allwinner: a64: Add hdmi sound card @@ -7,14 +7,14 @@ A64 supports HDMI audio. Add a sound card node for it. Signed-off-by: Jernej Skrabec --- - arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 15 +++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 15 ++++++++++ 1 file changed, 15 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index 0fecf0abb204..9a43bcc2f489 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -196,6 +196,20 @@ link0_codec: codec { +@@ -202,6 +202,20 @@ link0_codec: codec { }; }; @@ -35,7 +35,7 @@ index 0fecf0abb204..9a43bcc2f489 100644 timer { compatible = "arm,armv8-timer"; allwinner,erratum-unknown1; -@@ -1261,6 +1275,7 @@ deinterlace: deinterlace@1e00000 { +@@ -1267,6 +1281,7 @@ deinterlace: deinterlace@1e00000 { }; hdmi: hdmi@1ee0000 { @@ -44,5 +44,5 @@ index 0fecf0abb204..9a43bcc2f489 100644 "allwinner,sun8i-a83t-dw-hdmi"; reg = <0x01ee0000 0x10000>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-Enable-hdmi-sound-card-on-boards-with-h.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0013-arm64-dts-allwinner-a64-Enable-hdmi-sound-card-on-bo.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-Enable-hdmi-sound-card-on-boards-with-h.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0013-arm64-dts-allwinner-a64-Enable-hdmi-sound-card-on-bo.patch index fa055462c..fc0864a61 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-Enable-hdmi-sound-card-on-boards-with-h.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0013-arm64-dts-allwinner-a64-Enable-hdmi-sound-card-on-bo.patch @@ -1,4 +1,4 @@ -From 46db097304f674f7daff29b6710463e1b6ac62e0 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 10:42:16 +0200 Subject: arm64: dts: allwinner: a64: Enable hdmi sound card on boards with @@ -9,17 +9,17 @@ Enable HDMI sound card on all A64 boards with HDMI connector. Signed-off-by: Jernej Skrabec --- - arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 8 ++++++++ - arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts | 8 ++++++++ - arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts | 7 +++++++ - arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts | 8 ++++++++ - arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 8 ++++++++ - .../boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts | 8 ++++++++ - arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts | 8 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 8 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts | 8 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts | 7 +++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts | 8 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 8 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts | 8 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts | 8 ++++++++ 7 files changed, 55 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts -index d1f415acd7b5..0b68888c9eef 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts @@ -130,6 +130,10 @@ &i2c1_pins { @@ -45,7 +45,7 @@ index d1f415acd7b5..0b68888c9eef 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pb_pins>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts -index dec9960a7440..b6142224c329 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts @@ -102,6 +102,10 @@ &i2c1_pins { @@ -71,7 +71,7 @@ index dec9960a7440..b6142224c329 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pb_pins>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts -index fd3794678c33..0cc2e11dcb92 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts @@ -120,6 +120,10 @@ hdmi_out_con: endpoint { @@ -96,7 +96,7 @@ index fd3794678c33..0cc2e11dcb92 100644 }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts -index c8303a66438d..9194ca4b1e19 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts @@ -137,6 +137,10 @@ hdmi_out_con: endpoint { @@ -122,7 +122,7 @@ index c8303a66438d..9194ca4b1e19 100644 status = "okay"; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts -index 3256acec1ff9..1e6c0e2f5dad 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts @@ -107,6 +107,10 @@ &i2c1_pins { @@ -148,7 +148,7 @@ index 3256acec1ff9..1e6c0e2f5dad 100644 &spdif { status = "disabled"; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts -index 231e652cab67..6a009b06c5bb 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts @@ -96,6 +96,10 @@ hdmi_out_con: endpoint { @@ -174,7 +174,7 @@ index 231e652cab67..6a009b06c5bb 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pb_pins>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts -index ec055510af8b..992dc947551d 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts @@ -150,6 +150,10 @@ anx6345_in: endpoint { @@ -200,5 +200,5 @@ index ec055510af8b..992dc947551d 100644 pinctrl-names = "default"; pinctrl-0 = <&lcd_rgb666_pins>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boards-with-hd.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0014-arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boa.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boards-with-hd.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0014-arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boa.patch index 3e7c0d0dc..c555a801d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boards-with-hd.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0014-arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boa.patch @@ -1,4 +1,4 @@ -From cf056f9d1d534ffae9793137b755214549cdb572 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Sun, 9 May 2021 12:40:31 +0200 Subject: arm64: dts: allwinner: h5: Enable hdmi sound card on boards with hdmi @@ -8,14 +8,14 @@ Enable HDMI sound card on all H5 boards with HDMI connector. Signed-off-by: Jernej Skrabec --- - .../dts/allwinner/sun50i-h5-emlid-neutis-n5-devboard.dts | 8 ++++++++ - arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts | 8 ++++++++ - .../arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts | 8 ++++++++ - .../boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts | 8 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h5-emlid-neutis-n5-devboard.dts | 8 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts | 8 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts | 8 ++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts | 8 ++++++++ 4 files changed, 32 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-emlid-neutis-n5-devboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-emlid-neutis-n5-devboard.dts -index 076a0b983101..5882b62097a9 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-emlid-neutis-n5-devboard.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-emlid-neutis-n5-devboard.dts @@ -69,3 +69,11 @@ hdmi_out_con: endpoint { @@ -31,7 +31,7 @@ index 076a0b983101..5882b62097a9 100644 + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts -index 0f29da7d51e6..f420acc6f49f 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts @@ -145,6 +145,10 @@ hdmi_out_con: endpoint { @@ -57,7 +57,7 @@ index 0f29da7d51e6..f420acc6f49f 100644 status = "okay"; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts -index d4fc4e60e4e7..42d0ffa4a864 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts @@ -145,6 +145,10 @@ hdmi_out_con: endpoint { @@ -83,7 +83,7 @@ index d4fc4e60e4e7..42d0ffa4a864 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts -index 3eb986c354a9..281d37d46d43 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts @@ -77,6 +77,10 @@ hdmi_out_con: endpoint { @@ -109,5 +109,5 @@ index 3eb986c354a9..281d37d46d43 100644 pinctrl-names = "default"; pinctrl-0 = <&uart0_pa_pins>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/Move-a-node-to-avoid-merge-conflict.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0015-Move-a-node-to-avoid-merge-conflict.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/Move-a-node-to-avoid-merge-conflict.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0015-Move-a-node-to-avoid-merge-conflict.patch index 120b7db20..53bf2c180 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/Move-a-node-to-avoid-merge-conflict.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/hdmi-audio-6.18/0015-Move-a-node-to-avoid-merge-conflict.patch @@ -1,7 +1,7 @@ -From c3623224b8c0f881cd2f75fe43399d765612dcfd Mon Sep 17 00:00:00 2001 +From c4afbe87364d17ffa9cc04335ef63d174fb65056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 9 May 2021 23:43:21 +0200 -Subject: Move a node to avoid merge conflict +Subject: [PATCH 15/15] Move a node to avoid merge conflict --- arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi | 12 ++++----- @@ -40,10 +40,10 @@ index 0f19e7c00c50..a872fc586ab6 100644 compatible = "simple-bus"; #address-cells = <1>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts -index 4cc21a55a7c1..e05cf8eb5474 100644 +index 447e49d1b8bd..c14dbb720621 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts -@@ -128,6 +128,10 @@ &gpu { +@@ -118,6 +118,10 @@ &gpu { status = "okay"; }; @@ -54,7 +54,7 @@ index 4cc21a55a7c1..e05cf8eb5474 100644 &hdmi { status = "okay"; }; -@@ -167,10 +171,6 @@ ext_rgmii_phy: ethernet-phy@1 { +@@ -128,10 +132,6 @@ hdmi_out_con: endpoint { }; }; @@ -111,5 +111,5 @@ index ff67281bc090..9f1094bdb965 100644 soc { compatible = "simple-bus"; -- -2.51.0 +2.43.0 diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/husb311-6.18/0001-usb-typec-husb311-Add-HUSB311-TCPI-driver.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/husb311-6.18/0001-usb-typec-husb311-Add-HUSB311-TCPI-driver.patch new file mode 100644 index 000000000..8eee7d6c2 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/husb311-6.18/0001-usb-typec-husb311-Add-HUSB311-TCPI-driver.patch @@ -0,0 +1,344 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 22 Jul 2023 00:04:04 +0200 +Subject: usb: typec: husb311: Add HUSB311 TCPI driver + +This is copy from Rockchip BSP tree. + +Signed-off-by: Ondrej Jirman +--- + drivers/usb/typec/tcpm/Kconfig | 7 + + drivers/usb/typec/tcpm/Makefile | 1 + + drivers/usb/typec/tcpm/tcpci_husb311.c | 293 ++++++++++ + 3 files changed, 301 insertions(+) + +diff --git a/drivers/usb/typec/tcpm/Kconfig b/drivers/usb/typec/tcpm/Kconfig +index 111111111111..222222222222 100644 +--- a/drivers/usb/typec/tcpm/Kconfig ++++ b/drivers/usb/typec/tcpm/Kconfig +@@ -20,6 +20,13 @@ config TYPEC_TCPCI + + if TYPEC_TCPCI + ++config TYPEC_HUSB311 ++ tristate "Hynetek HUSB311 Type-C chip driver" ++ help ++ Hynetek HUSB311 Type-C chip driver that works with ++ Type-C Port Controller Manager to provide USB PD and USB ++ Type-C functionalities. ++ + config TYPEC_RT1711H + tristate "Richtek RT1711H Type-C chip driver" + help +diff --git a/drivers/usb/typec/tcpm/Makefile b/drivers/usb/typec/tcpm/Makefile +index 111111111111..222222222222 100644 +--- a/drivers/usb/typec/tcpm/Makefile ++++ b/drivers/usb/typec/tcpm/Makefile +@@ -9,4 +9,5 @@ obj-$(CONFIG_TYPEC_MT6360) += tcpci_mt6360.o + obj-$(CONFIG_TYPEC_TCPCI_MT6370) += tcpci_mt6370.o + obj-$(CONFIG_TYPEC_TCPCI_MAXIM) += tcpci_maxim.o + tcpci_maxim-y += tcpci_maxim_core.o maxim_contaminant.o ++obj-$(CONFIG_TYPEC_HUSB311) += tcpci_husb311.o + obj-$(CONFIG_TYPEC_QCOM_PMIC) += qcom/ +diff --git a/drivers/usb/typec/tcpm/tcpci_husb311.c b/drivers/usb/typec/tcpm/tcpci_husb311.c +new file mode 100644 +index 000000000000..111111111111 +--- /dev/null ++++ b/drivers/usb/typec/tcpm/tcpci_husb311.c +@@ -0,0 +1,293 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Copyright (C) 2021 Rockchip Co.,Ltd. ++ * Author: Wang Jie ++ * ++ * Hynetek Husb311 Type-C Chip Driver ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define HUSB311_VID 0x2E99 ++#define HUSB311_PID 0x0311 ++#define HUSB311_TCPC_POWER 0x90 ++#define HUSB311_TCPC_SOFTRESET 0xA0 ++#define HUSB311_TCPC_FILTER 0xA1 ++#define HUSB311_TCPC_TDRP 0xA2 ++#define HUSB311_TCPC_DCSRCDRP 0xA3 ++ ++struct husb311_chip { ++ struct tcpci_data data; ++ struct tcpci *tcpci; ++ struct device *dev; ++ struct regulator *vbus; ++ bool vbus_on; ++}; ++ ++static int husb311_read8(struct husb311_chip *chip, unsigned int reg, u8 *val) ++{ ++ return regmap_raw_read(chip->data.regmap, reg, val, sizeof(u8)); ++} ++ ++static int husb311_write8(struct husb311_chip *chip, unsigned int reg, u8 val) ++{ ++ return regmap_raw_write(chip->data.regmap, reg, &val, sizeof(u8)); ++} ++ ++static int husb311_write16(struct husb311_chip *chip, unsigned int reg, u16 val) ++{ ++ return regmap_raw_write(chip->data.regmap, reg, &val, sizeof(u16)); ++} ++ ++static const struct regmap_config husb311_regmap_config = { ++ .reg_bits = 8, ++ .val_bits = 8, ++ .max_register = 0xFF, /* 0x80 .. 0xFF are vendor defined */ ++}; ++ ++static struct husb311_chip *tdata_to_husb311(struct tcpci_data *tdata) ++{ ++ return container_of(tdata, struct husb311_chip, data); ++} ++ ++static int husb311_sw_reset(struct husb311_chip *chip) ++{ ++ /* soft reset */ ++ return husb311_write8(chip, HUSB311_TCPC_SOFTRESET, 0x01); ++} ++ ++static int husb311_init(struct tcpci *tcpci, struct tcpci_data *tdata) ++{ ++ int ret; ++ struct husb311_chip *chip = tdata_to_husb311(tdata); ++ ++ /* tTCPCfilter : (26.7 * val) us */ ++ ret = husb311_write8(chip, HUSB311_TCPC_FILTER, 0x0F); ++ /* tDRP : (51.2 + 6.4 * val) ms */ ++ ret |= husb311_write8(chip, HUSB311_TCPC_TDRP, 0x04); ++ /* dcSRC.DRP : 33% */ ++ ret |= husb311_write16(chip, HUSB311_TCPC_DCSRCDRP, 330); ++ ++ if (ret < 0) ++ dev_err(chip->dev, "fail to init registers(%d)\n", ret); ++ ++ return ret; ++} ++ ++static int husb311_set_vbus(struct tcpci *tcpci, struct tcpci_data *tdata, ++ bool on, bool charge) ++{ ++ struct husb311_chip *chip = tdata_to_husb311(tdata); ++ int ret = 0; ++ ++ if (chip->vbus_on == on) { ++ dev_dbg(chip->dev, "vbus is already %s", on ? "On" : "Off"); ++ goto done; ++ } ++ ++ if (on) ++ ret = regulator_enable(chip->vbus); ++ else ++ ret = regulator_disable(chip->vbus); ++ if (ret < 0) { ++ dev_err(chip->dev, "cannot %s vbus regulator, ret=%d", ++ on ? "enable" : "disable", ret); ++ goto done; ++ } ++ ++ chip->vbus_on = on; ++ ++done: ++ return ret; ++} ++ ++static irqreturn_t husb311_irq(int irq, void *dev_id) ++{ ++ struct husb311_chip *chip = dev_id; ++ ++ return tcpci_irq(chip->tcpci); ++} ++ ++static int husb311_check_revision(struct i2c_client *i2c) ++{ ++ int ret; ++ ++ ret = i2c_smbus_read_word_data(i2c, TCPC_VENDOR_ID); ++ if (ret < 0) { ++ dev_err(&i2c->dev, "fail to read Vendor id(%d)\n", ret); ++ return ret; ++ } ++ ++ if (ret != HUSB311_VID) { ++ dev_err(&i2c->dev, "vid is not correct, 0x%04x\n", ret); ++ return -ENODEV; ++ } ++ ++ ret = i2c_smbus_read_word_data(i2c, TCPC_PRODUCT_ID); ++ if (ret < 0) { ++ dev_err(&i2c->dev, "fail to read Product id(%d)\n", ret); ++ return ret; ++ } ++ ++ if (ret != HUSB311_PID) { ++ dev_err(&i2c->dev, "pid is not correct, 0x%04x\n", ret); ++ return -ENODEV; ++ } ++ ++ return 0; ++} ++ ++static int husb311_probe(struct i2c_client *client) ++{ ++ int ret; ++ struct husb311_chip *chip; ++ ++ ret = husb311_check_revision(client); ++ if (ret < 0) { ++ dev_err(&client->dev, "check vid/pid fail(%d)\n", ret); ++ return ret; ++ } ++ ++ chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL); ++ if (!chip) ++ return -ENOMEM; ++ ++ chip->data.regmap = devm_regmap_init_i2c(client, ++ &husb311_regmap_config); ++ if (IS_ERR(chip->data.regmap)) ++ return PTR_ERR(chip->data.regmap); ++ ++ chip->dev = &client->dev; ++ i2c_set_clientdata(client, chip); ++ ++ chip->vbus = devm_regulator_get_optional(chip->dev, "vbus"); ++ if (IS_ERR(chip->vbus)) { ++ ret = PTR_ERR(chip->vbus); ++ chip->vbus = NULL; ++ if (ret != -ENODEV) ++ return ret; ++ } ++ ++ ret = husb311_sw_reset(chip); ++ if (ret < 0) { ++ dev_err(chip->dev, "fail to soft reset, ret = %d\n", ret); ++ return ret; ++ } ++ ++ if (chip->vbus) ++ chip->data.set_vbus = husb311_set_vbus; ++ chip->data.init = husb311_init; ++ chip->tcpci = tcpci_register_port(chip->dev, &chip->data); ++ if (IS_ERR(chip->tcpci)) ++ return PTR_ERR(chip->tcpci); ++ ++ ret = devm_request_threaded_irq(chip->dev, client->irq, NULL, ++ husb311_irq, ++ IRQF_ONESHOT | IRQF_TRIGGER_LOW, ++ client->name, chip); ++ if (ret < 0) { ++ tcpci_unregister_port(chip->tcpci); ++ return ret; ++ } ++ ++ enable_irq_wake(client->irq); ++ ++ return 0; ++} ++ ++static void husb311_remove(struct i2c_client *client) ++{ ++ struct husb311_chip *chip = i2c_get_clientdata(client); ++ ++ tcpci_unregister_port(chip->tcpci); ++} ++ ++static int husb311_pm_suspend(struct device *dev) ++{ ++ struct husb311_chip *chip = dev->driver_data; ++ int ret = 0; ++ u8 pwr; ++ ++ /* ++ * Disable 12M oscillator to save power consumption, and it will be ++ * enabled automatically when INT occur after system resume. ++ */ ++ ret = husb311_read8(chip, HUSB311_TCPC_POWER, &pwr); ++ if (ret < 0) ++ return ret; ++ ++ pwr &= ~BIT(0); ++ ret = husb311_write8(chip, HUSB311_TCPC_POWER, pwr); ++ if (ret < 0) ++ return ret; ++ ++ return 0; ++} ++ ++static int husb311_pm_resume(struct device *dev) ++{ ++ struct husb311_chip *chip = dev->driver_data; ++ int ret = 0; ++ u8 pwr; ++ ++ /* ++ * When the power of husb311 is lost or i2c read failed in PM S/R ++ * process, we must reset the tcpm port first to ensure the devices ++ * can attach again. ++ */ ++ ret = husb311_read8(chip, HUSB311_TCPC_POWER, &pwr); ++ if (pwr & BIT(0) || ret < 0) { ++ ret = husb311_sw_reset(chip); ++ if (ret < 0) { ++ dev_err(chip->dev, "fail to soft reset, ret = %d\n", ret); ++ return ret; ++ } ++ ++ tcpm_tcpc_reset(tcpci_get_tcpm_port(chip->tcpci)); ++ } ++ ++ return 0; ++} ++ ++static const struct i2c_device_id husb311_id[] = { ++ { "husb311", 0 }, ++ { } ++}; ++MODULE_DEVICE_TABLE(i2c, husb311_id); ++ ++#ifdef CONFIG_OF ++static const struct of_device_id husb311_of_match[] = { ++ { .compatible = "hynetek,husb311" }, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, husb311_of_match); ++#endif ++ ++static const struct dev_pm_ops husb311_pm_ops = { ++ .suspend = husb311_pm_suspend, ++ .resume = husb311_pm_resume, ++}; ++ ++static struct i2c_driver husb311_i2c_driver = { ++ .driver = { ++ .name = "husb311", ++ .pm = &husb311_pm_ops, ++ .of_match_table = of_match_ptr(husb311_of_match), ++ }, ++ .probe = husb311_probe, ++ .remove = husb311_remove, ++ .id_table = husb311_id, ++}; ++module_i2c_driver(husb311_i2c_driver); ++ ++MODULE_AUTHOR("Wang Jie "); ++MODULE_DESCRIPTION("Husb311 USB Type-C Port Controller Interface Driver"); ++MODULE_LICENSE("GPL v2"); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0001-media-i2c-imx258-Add-i2c-supply.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0001-media-i2c-imx258-Add-i2c-supply.patch new file mode 100644 index 000000000..f2780f842 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0001-media-i2c-imx258-Add-i2c-supply.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sun, 22 May 2022 03:25:06 +0200 +Subject: media: i2c: imx258: Add i2c supply + +Sensor depends on I2C bus to be powered up to work. + +Signed-off-by: Ondrej Jirman +--- + drivers/media/i2c/imx258.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/media/i2c/imx258.c b/drivers/media/i2c/imx258.c +index 111111111111..222222222222 100644 +--- a/drivers/media/i2c/imx258.c ++++ b/drivers/media/i2c/imx258.c +@@ -486,6 +486,7 @@ static const char * const imx258_supply_name[] = { + "vana", /* Analog (2.8V) supply */ + "vdig", /* Digital Core (1.2V) supply */ + "vif", /* IF (1.8V) supply */ ++ "i2c", /* I2C BUS I/O (1.8V) supply */ + }; + + #define IMX258_NUM_SUPPLIES ARRAY_SIZE(imx258_supply_name) +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0002-media-i2c-imx258-Add-debug-register-access.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0002-media-i2c-imx258-Add-debug-register-access.patch new file mode 100644 index 000000000..08ed89f58 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0002-media-i2c-imx258-Add-debug-register-access.patch @@ -0,0 +1,81 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Thu, 9 Jun 2022 01:04:18 +0200 +Subject: media: i2c: imx258: Add debug register access + +This is useful during development. + +Signed-off-by: Ondrej Jirman +--- + drivers/media/i2c/imx258.c | 48 ++++++++++ + 1 file changed, 48 insertions(+) + +diff --git a/drivers/media/i2c/imx258.c b/drivers/media/i2c/imx258.c +index 111111111111..222222222222 100644 +--- a/drivers/media/i2c/imx258.c ++++ b/drivers/media/i2c/imx258.c +@@ -1192,6 +1192,53 @@ static int imx258_identify_module(struct imx258 *imx258) + return 0; + } + ++#ifdef CONFIG_VIDEO_ADV_DEBUG ++static int imx258_g_register(struct v4l2_subdev *sd, ++ struct v4l2_dbg_register *reg) ++{ ++ struct imx258 *imx258 = to_imx258(sd); ++ u64 val = 0; ++ int ret; ++ ++ if (reg->reg > 0xffff) ++ return -EINVAL; ++ ++ reg->size = 1; ++ ++ mutex_lock(&imx258->mutex); ++ ret = cci_read(imx258->regmap, CCI_REG8(reg->reg), &val, NULL); ++ mutex_unlock(&imx258->mutex); ++ if (ret) ++ return -EIO; ++ ++ reg->val = val; ++ return 0; ++} ++ ++static int imx258_s_register(struct v4l2_subdev *sd, ++ const struct v4l2_dbg_register *reg) ++{ ++ struct imx258 *imx258 = to_imx258(sd); ++ int ret; ++ ++ if (reg->reg > 0xffff || reg->val > 0xff) ++ return -EINVAL; ++ ++ mutex_lock(&imx258->mutex); ++ ret = cci_write(imx258->regmap, CCI_REG8(reg->reg), reg->val, NULL); ++ mutex_unlock(&imx258->mutex); ++ ++ return ret; ++} ++#endif ++ ++static const struct v4l2_subdev_core_ops imx258_core_ops = { ++#ifdef CONFIG_VIDEO_ADV_DEBUG ++ .g_register = imx258_g_register, ++ .s_register = imx258_s_register, ++#endif ++}; ++ + static const struct v4l2_subdev_video_ops imx258_video_ops = { + .s_stream = imx258_set_stream, + }; +@@ -1205,6 +1252,7 @@ static const struct v4l2_subdev_pad_ops imx258_pad_ops = { + }; + + static const struct v4l2_subdev_ops imx258_subdev_ops = { ++ .core = &imx258_core_ops, + .video = &imx258_video_ops, + .pad = &imx258_pad_ops, + }; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0003-media-imx258-Add-reset-gpio.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0003-media-imx258-Add-reset-gpio.patch new file mode 100644 index 000000000..2d2a9addd --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0003-media-imx258-Add-reset-gpio.patch @@ -0,0 +1,69 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Mon, 9 Sep 2024 16:49:41 +0200 +Subject: media: imx258: Add reset gpio + +IMX258 features a reset input that needs to be controlled when powering +up the chip. + +Signed-off-by: Ondrej Jirman +--- + drivers/media/i2c/imx258.c | 15 ++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/drivers/media/i2c/imx258.c b/drivers/media/i2c/imx258.c +index 111111111111..222222222222 100644 +--- a/drivers/media/i2c/imx258.c ++++ b/drivers/media/i2c/imx258.c +@@ -681,6 +681,7 @@ struct imx258 { + struct mutex mutex; + + struct clk *clk; ++ struct gpio_desc *reset_gpio; + struct regulator_bulk_data supplies[IMX258_NUM_SUPPLIES]; + }; + +@@ -1113,12 +1114,20 @@ static int imx258_power_on(struct device *dev) + return ret; + } + ++ mdelay(20); ++ + ret = clk_prepare_enable(imx258->clk); + if (ret) { + dev_err(dev, "failed to enable clock\n"); + regulator_bulk_disable(IMX258_NUM_SUPPLIES, imx258->supplies); + } + ++ usleep_range(1000, 2000); ++ ++ gpiod_set_value_cansleep(imx258->reset_gpio, 0); ++ ++ usleep_range(400, 500); ++ + return ret; + } + +@@ -1128,6 +1137,7 @@ static int imx258_power_off(struct device *dev) + struct imx258 *imx258 = to_imx258(sd); + + clk_disable_unprepare(imx258->clk); ++ gpiod_set_value_cansleep(imx258->reset_gpio, 1); + regulator_bulk_disable(IMX258_NUM_SUPPLIES, imx258->supplies); + + return 0; +@@ -1424,6 +1434,11 @@ static int imx258_probe(struct i2c_client *client) + return dev_err_probe(imx258->dev, ret, + "failed to get regulators\n"); + ++ imx258->reset_gpio = devm_gpiod_get_optional(&client->dev, "reset", ++ GPIOD_OUT_HIGH); ++ if (IS_ERR(imx258->reset_gpio)) ++ return PTR_ERR(imx258->reset_gpio); ++ + imx258->clk = devm_v4l2_sensor_clk_get_legacy(imx258->dev, NULL, false, + 0); + if (IS_ERR(imx258->clk)) +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0004-media-imx258-Drop-interface-speed-to-1224-mbps.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0004-media-imx258-Drop-interface-speed-to-1224-mbps.patch new file mode 100644 index 000000000..dd1cf7ef8 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/imx258-6.18/0004-media-imx258-Drop-interface-speed-to-1224-mbps.patch @@ -0,0 +1,78 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sun, 15 Sep 2024 23:41:50 +0200 +Subject: 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. + +Signed-off-by: Ondrej Jirman +--- + drivers/media/i2c/imx258.c | 16 +++++----- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/drivers/media/i2c/imx258.c b/drivers/media/i2c/imx258.c +index 111111111111..222222222222 100644 +--- a/drivers/media/i2c/imx258.c ++++ b/drivers/media/i2c/imx258.c +@@ -213,12 +213,12 @@ static const struct cci_reg_sequence mipi_1267mbps_19_2mhz_4l[] = { + { IMX258_REG_REQ_LINK_BIT_RATE_MBPS_L, 0 }, + }; + +-static const struct cci_reg_sequence mipi_1272mbps_24mhz_2l[] = { ++static const struct cci_reg_sequence mipi_1224mbps_24mhz_2l[] = { + { IMX258_REG_EXCK_FREQ, 0x1800 }, + { IMX258_REG_IVTPXCK_DIV, 10 }, + { IMX258_REG_IVTSYCK_DIV, 2 }, + { IMX258_REG_PREPLLCK_VT_DIV, 4 }, +- { IMX258_REG_PLL_IVT_MPY, 212 }, ++ { IMX258_REG_PLL_IVT_MPY, 204 }, + { IMX258_REG_IOPPXCK_DIV, 10 }, + { IMX258_REG_IOPSYCK_DIV, 1 }, + { IMX258_REG_PREPLLCK_OP_DIV, 2 }, +@@ -226,16 +226,16 @@ static const struct cci_reg_sequence mipi_1272mbps_24mhz_2l[] = { + { IMX258_REG_PLL_MULT_DRIV, 0 }, + + { IMX258_REG_CSI_LANE_MODE, 1 }, +- { IMX258_REG_REQ_LINK_BIT_RATE_MBPS_H, 1272 * 2 }, ++ { IMX258_REG_REQ_LINK_BIT_RATE_MBPS_H, 1224 * 2 }, + { IMX258_REG_REQ_LINK_BIT_RATE_MBPS_L, 0 }, + }; + +-static const struct cci_reg_sequence mipi_1272mbps_24mhz_4l[] = { ++static const struct cci_reg_sequence mipi_1224mbps_24mhz_4l[] = { + { IMX258_REG_EXCK_FREQ, 0x1800 }, + { IMX258_REG_IVTPXCK_DIV, 5 }, + { IMX258_REG_IVTSYCK_DIV, 2 }, + { IMX258_REG_PREPLLCK_VT_DIV, 4 }, +- { IMX258_REG_PLL_IVT_MPY, 212 }, ++ { IMX258_REG_PLL_IVT_MPY, 204 }, + { IMX258_REG_IOPPXCK_DIV, 10 }, + { IMX258_REG_IOPSYCK_DIV, 1 }, + { IMX258_REG_PREPLLCK_OP_DIV, 2 }, +@@ -243,7 +243,7 @@ static const struct cci_reg_sequence mipi_1272mbps_24mhz_4l[] = { + { IMX258_REG_PLL_MULT_DRIV, 0 }, + + { IMX258_REG_CSI_LANE_MODE, 3 }, +- { IMX258_REG_REQ_LINK_BIT_RATE_MBPS_H, 1272 * 4 }, ++ { IMX258_REG_REQ_LINK_BIT_RATE_MBPS_H, 1224 * 4 }, + { IMX258_REG_REQ_LINK_BIT_RATE_MBPS_L, 0 }, + }; + +@@ -568,11 +568,11 @@ static const struct imx258_link_freq_config link_freq_configs_24[] = { + .link_cfg = { + [IMX258_2_LANE_MODE] = { + .lf_to_pix_rate_factor = 2, +- .reg_list = REGS(mipi_1272mbps_24mhz_2l), ++ .reg_list = REGS(mipi_1224mbps_24mhz_2l), + }, + [IMX258_4_LANE_MODE] = { + .lf_to_pix_rate_factor = 4, +- .reg_list = REGS(mipi_1272mbps_24mhz_4l), ++ .reg_list = REGS(mipi_1224mbps_24mhz_4l), + }, + } + }, +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/misc-modem-power-Power-manager-for-modems.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/modem-6.18/0001-misc-modem-power-Power-manager-for-modems.patch similarity index 99% rename from patch/kernel/archive/sunxi-6.16/patches.megous/misc-modem-power-Power-manager-for-modems.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/modem-6.18/0001-misc-modem-power-Power-manager-for-modems.patch index 55442893e..5af291d03 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/misc-modem-power-Power-manager-for-modems.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/modem-6.18/0001-misc-modem-power-Power-manager-for-modems.patch @@ -1,4 +1,4 @@ -From 48722668c4da2bbe831afcbb16d5a3c43a17e33e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 12 Nov 2017 02:10:15 +0100 Subject: misc: modem-power: Power manager for modems @@ -16,12 +16,11 @@ Signed-off-by: Ondrej Jirman --- drivers/misc/Kconfig | 7 + drivers/misc/Makefile | 1 + - drivers/misc/modem-power.c | 1990 ++++++++++++++++++++++++++++++++++++ + drivers/misc/modem-power.c | 1990 ++++++++++ 3 files changed, 1998 insertions(+) - create mode 100644 drivers/misc/modem-power.c diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig -index b9ca56930003..1525637d1b4b 100644 +index 111111111111..222222222222 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -644,6 +644,13 @@ config MCHP_LAN966X_PCI @@ -39,17 +38,17 @@ index b9ca56930003..1525637d1b4b 100644 source "drivers/misc/eeprom/Kconfig" source "drivers/misc/cb710/Kconfig" diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile -index 917b9a7183aa..634517bc9a2b 100644 +index 111111111111..222222222222 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile -@@ -75,3 +75,4 @@ lan966x-pci-objs += lan966x_pci.dtbo.o - obj-$(CONFIG_MCHP_LAN966X_PCI) += lan966x-pci.o +@@ -75,3 +75,4 @@ obj-$(CONFIG_MCHP_LAN966X_PCI) += lan966x-pci.o obj-y += keba/ obj-y += amd-sbi/ + obj-$(CONFIG_MISC_RP1) += rp1/ +obj-$(CONFIG_MODEM_POWER) += modem-power.o diff --git a/drivers/misc/modem-power.c b/drivers/misc/modem-power.c new file mode 100644 -index 000000000000..36204f30316b +index 000000000000..111111111111 --- /dev/null +++ b/drivers/misc/modem-power.c @@ -0,0 +1,1990 @@ @@ -2044,5 +2043,5 @@ index 000000000000..36204f30316b + +// }}} -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/net-stmmac-sun8i-Use-devm_regulator_get-for-PHY-regulator.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/opi3-eth-6.18/0001-net-stmmac-sun8i-Use-devm_regulator_get-for-PHY-regu.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.megous/net-stmmac-sun8i-Use-devm_regulator_get-for-PHY-regulator.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/opi3-eth-6.18/0001-net-stmmac-sun8i-Use-devm_regulator_get-for-PHY-regu.patch index e3ea6320e..84f84cf9c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/net-stmmac-sun8i-Use-devm_regulator_get-for-PHY-regulator.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/opi3-eth-6.18/0001-net-stmmac-sun8i-Use-devm_regulator_get-for-PHY-regu.patch @@ -1,4 +1,4 @@ -From 41d867cddaf5e97ec163019d673ae15e184beea3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Wed, 27 Mar 2019 13:21:06 +0100 Subject: net: stmmac: sun8i: Use devm_regulator_get for PHY regulator @@ -17,14 +17,14 @@ code will be simpler. Signed-off-by: Ondrej Jirman --- - .../net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 27 +++++++------------ + drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 27 ++++------ 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -index 2796dc426943..ada4a93ded39 100644 +index 111111111111..222222222222 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -@@ -588,12 +588,10 @@ static int sun8i_dwmac_init(struct platform_device *pdev, void *priv) +@@ -577,12 +577,10 @@ static int sun8i_dwmac_init(struct platform_device *pdev, void *priv) struct sunxi_priv_data *gmac = priv; int ret; @@ -41,7 +41,7 @@ index 2796dc426943..ada4a93ded39 100644 } if (gmac->use_internal_phy) { -@@ -605,8 +603,7 @@ static int sun8i_dwmac_init(struct platform_device *pdev, void *priv) +@@ -594,8 +592,7 @@ static int sun8i_dwmac_init(struct platform_device *pdev, void *priv) return 0; err_disable_regulator: @@ -51,7 +51,7 @@ index 2796dc426943..ada4a93ded39 100644 return ret; } -@@ -1051,8 +1048,7 @@ static void sun8i_dwmac_exit(struct platform_device *pdev, void *priv) +@@ -1012,8 +1009,7 @@ static void sun8i_dwmac_exit(struct platform_device *pdev, void *priv) if (gmac->variant->soc_has_internal_phy) sun8i_dwmac_unpower_internal_phy(gmac); @@ -61,7 +61,7 @@ index 2796dc426943..ada4a93ded39 100644 } static void sun8i_dwmac_set_mac_loopback(void __iomem *ioaddr, bool enable) -@@ -1175,13 +1171,10 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) +@@ -1136,13 +1132,10 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) } /* Optional regulator for PHY */ @@ -80,5 +80,5 @@ index 2796dc426943..ada4a93ded39 100644 /* The "GMAC clock control" register might be located in the * CCU address range (on the R40), or the system control address -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/net-stmmac-sun8i-Rename-PHY-regulator-variable-to-regulator_phy.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/opi3-eth-6.18/0002-net-stmmac-sun8i-Rename-PHY-regulator-variable-to-re.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.megous/net-stmmac-sun8i-Rename-PHY-regulator-variable-to-regulator_phy.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/opi3-eth-6.18/0002-net-stmmac-sun8i-Rename-PHY-regulator-variable-to-re.patch index ec35e705e..3bc61f00d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/net-stmmac-sun8i-Rename-PHY-regulator-variable-to-regulator_phy.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/opi3-eth-6.18/0002-net-stmmac-sun8i-Rename-PHY-regulator-variable-to-re.patch @@ -1,4 +1,4 @@ -From 4bc2d5b9f73d952e97473128d1ad7927bcfceece Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 20 Aug 2019 14:29:29 +0200 Subject: net: stmmac: sun8i: Rename PHY regulator variable to regulator_phy @@ -8,14 +8,14 @@ what the regulator is for. Signed-off-by: Ondrej Jirman --- - .../net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 18 +++++++++--------- + drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 18 +++++----- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -index ada4a93ded39..6b24bbc6c9c2 100644 +index 111111111111..222222222222 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -@@ -60,7 +60,7 @@ struct emac_variant { +@@ -55,7 +55,7 @@ struct emac_variant { /* struct sunxi_priv_data - hold all sunxi private data * @ephy_clk: reference to the optional EPHY clock for the internal PHY @@ -24,7 +24,7 @@ index ada4a93ded39..6b24bbc6c9c2 100644 * @rst_ephy: reference to the optional EPHY reset for the internal PHY * @variant: reference to the current board variant * @regmap: regmap for using the syscon -@@ -70,7 +70,7 @@ struct emac_variant { +@@ -65,7 +65,7 @@ struct emac_variant { */ struct sunxi_priv_data { struct clk *ephy_clk; @@ -33,7 +33,7 @@ index ada4a93ded39..6b24bbc6c9c2 100644 struct reset_control *rst_ephy; const struct emac_variant *variant; struct regmap_field *regmap_field; -@@ -588,9 +588,9 @@ static int sun8i_dwmac_init(struct platform_device *pdev, void *priv) +@@ -577,9 +577,9 @@ static int sun8i_dwmac_init(struct platform_device *pdev, void *priv) struct sunxi_priv_data *gmac = priv; int ret; @@ -45,7 +45,7 @@ index ada4a93ded39..6b24bbc6c9c2 100644 return ret; } -@@ -603,7 +603,7 @@ static int sun8i_dwmac_init(struct platform_device *pdev, void *priv) +@@ -592,7 +592,7 @@ static int sun8i_dwmac_init(struct platform_device *pdev, void *priv) return 0; err_disable_regulator: @@ -54,7 +54,7 @@ index ada4a93ded39..6b24bbc6c9c2 100644 return ret; } -@@ -1048,7 +1048,7 @@ static void sun8i_dwmac_exit(struct platform_device *pdev, void *priv) +@@ -1009,7 +1009,7 @@ static void sun8i_dwmac_exit(struct platform_device *pdev, void *priv) if (gmac->variant->soc_has_internal_phy) sun8i_dwmac_unpower_internal_phy(gmac); @@ -63,7 +63,7 @@ index ada4a93ded39..6b24bbc6c9c2 100644 } static void sun8i_dwmac_set_mac_loopback(void __iomem *ioaddr, bool enable) -@@ -1171,9 +1171,9 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) +@@ -1132,9 +1132,9 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) } /* Optional regulator for PHY */ @@ -77,5 +77,5 @@ index ada4a93ded39..6b24bbc6c9c2 100644 /* The "GMAC clock control" register might be located in the -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/net-stmmac-sun8i-Add-support-for-enabling-a-regulator-for-PHY-I.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/opi3-eth-6.18/0003-net-stmmac-sun8i-Add-support-for-enabling-a-regulato.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.megous/net-stmmac-sun8i-Add-support-for-enabling-a-regulator-for-PHY-I.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/opi3-eth-6.18/0003-net-stmmac-sun8i-Add-support-for-enabling-a-regulato.patch index 9ed77cc7a..774659bbd 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/net-stmmac-sun8i-Add-support-for-enabling-a-regulator-for-PHY-I.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/opi3-eth-6.18/0003-net-stmmac-sun8i-Add-support-for-enabling-a-regulato.patch @@ -1,4 +1,4 @@ -From fa80f05a68181f0bc64355a0f39e1d155a2f6fe0 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 20 Aug 2019 14:31:38 +0200 Subject: net: stmmac: sun8i: Add support for enabling a regulator for PHY I/O @@ -12,14 +12,14 @@ driver. Signed-off-by: Ondrej Jirman --- - .../net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 20 ++++++++++++++++++- + drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 20 +++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -index 6b24bbc6c9c2..11a14451b6dd 100644 +index 111111111111..222222222222 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -@@ -61,6 +61,8 @@ struct emac_variant { +@@ -56,6 +56,8 @@ struct emac_variant { /* struct sunxi_priv_data - hold all sunxi private data * @ephy_clk: reference to the optional EPHY clock for the internal PHY * @regulator_phy: reference to the optional regulator @@ -28,7 +28,7 @@ index 6b24bbc6c9c2..11a14451b6dd 100644 * @rst_ephy: reference to the optional EPHY reset for the internal PHY * @variant: reference to the current board variant * @regmap: regmap for using the syscon -@@ -71,6 +73,7 @@ struct emac_variant { +@@ -66,6 +68,7 @@ struct emac_variant { struct sunxi_priv_data { struct clk *ephy_clk; struct regulator *regulator_phy; @@ -36,7 +36,7 @@ index 6b24bbc6c9c2..11a14451b6dd 100644 struct reset_control *rst_ephy; const struct emac_variant *variant; struct regmap_field *regmap_field; -@@ -588,10 +591,16 @@ static int sun8i_dwmac_init(struct platform_device *pdev, void *priv) +@@ -577,10 +580,16 @@ static int sun8i_dwmac_init(struct platform_device *pdev, void *priv) struct sunxi_priv_data *gmac = priv; int ret; @@ -54,7 +54,7 @@ index 6b24bbc6c9c2..11a14451b6dd 100644 } if (gmac->use_internal_phy) { -@@ -604,6 +613,8 @@ static int sun8i_dwmac_init(struct platform_device *pdev, void *priv) +@@ -593,6 +602,8 @@ static int sun8i_dwmac_init(struct platform_device *pdev, void *priv) err_disable_regulator: regulator_disable(gmac->regulator_phy); @@ -63,7 +63,7 @@ index 6b24bbc6c9c2..11a14451b6dd 100644 return ret; } -@@ -1049,6 +1060,7 @@ static void sun8i_dwmac_exit(struct platform_device *pdev, void *priv) +@@ -1010,6 +1021,7 @@ static void sun8i_dwmac_exit(struct platform_device *pdev, void *priv) sun8i_dwmac_unpower_internal_phy(gmac); regulator_disable(gmac->regulator_phy); @@ -71,7 +71,7 @@ index 6b24bbc6c9c2..11a14451b6dd 100644 } static void sun8i_dwmac_set_mac_loopback(void __iomem *ioaddr, bool enable) -@@ -1176,6 +1188,12 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) +@@ -1137,6 +1149,12 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) return dev_err_probe(dev, PTR_ERR(gmac->regulator_phy), "Failed to get PHY regulator\n"); @@ -85,5 +85,5 @@ index 6b24bbc6c9c2..11a14451b6dd 100644 * CCU address range (on the R40), or the system control address * range (on most other sun8i and later SoCs). -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-orange-pi-3-Enable-ethernet.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/opi3-eth-6.18/0004-arm64-dts-allwinner-orange-pi-3-Enable-ethernet.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-orange-pi-3-Enable-ethernet.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/opi3-eth-6.18/0004-arm64-dts-allwinner-orange-pi-3-Enable-ethernet.patch index 7fd0add8a..dc63a5229 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-orange-pi-3-Enable-ethernet.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/opi3-eth-6.18/0004-arm64-dts-allwinner-orange-pi-3-Enable-ethernet.patch @@ -1,4 +1,4 @@ -From da61763234048d21610acb51d67924cf4aaabcd9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 20 Aug 2019 14:54:48 +0200 Subject: arm64: dts: allwinner: orange-pi-3: Enable ethernet @@ -25,11 +25,11 @@ of the range of working values was chosen. Signed-off-by: Ondrej Jirman --- - .../dts/allwinner/sun50i-h6-orangepi-3.dts | 40 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts | 40 ++++++++++ 1 file changed, 40 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts -index dc7381c944c9..cd1dd0192181 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts @@ -15,6 +15,7 @@ / { @@ -56,8 +56,8 @@ index dc7381c944c9..cd1dd0192181 100644 reg_vcc33_wifi: vcc33-wifi { /* Always on 3.3V regulator for WiFi and BT */ compatible = "regulator-fixed"; -@@ -128,6 +138,35 @@ hdmi_out_con: endpoint { - }; +@@ -132,6 +142,35 @@ &i2s1 { + status = "okay"; }; +&emac { @@ -92,7 +92,7 @@ index dc7381c944c9..cd1dd0192181 100644 &mmc0 { vmmc-supply = <®_cldo1>; cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ -@@ -208,6 +247,7 @@ reg_aldo2: aldo2 { +@@ -212,6 +251,7 @@ reg_aldo2: aldo2 { regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc33-audio-tv-ephy-mac"; @@ -101,5 +101,5 @@ index dc7381c944c9..cd1dd0192181 100644 /* ALDO3 is shorted to CLDO1 */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Experiment-Try-to-disable-denoising-sharpening.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0001-media-ov5640-Experiment-Try-to-disable-denoising-sha.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Experiment-Try-to-disable-denoising-sharpening.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0001-media-ov5640-Experiment-Try-to-disable-denoising-sha.patch index 605d9083b..22e58647c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Experiment-Try-to-disable-denoising-sharpening.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0001-media-ov5640-Experiment-Try-to-disable-denoising-sha.patch @@ -1,4 +1,4 @@ -From a9079e289ab17afbf6e56ba480646749bbe63200 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 24 Jan 2020 18:25:59 +0100 Subject: media: ov5640: [Experiment] Try to disable denoising/sharpening @@ -7,11 +7,11 @@ Not sure how this works exactly. More tests are needed. Signed-off-by: Ondrej Jirman --- - drivers/media/i2c/ov5640.c | 17 +++++++++++++++++ + drivers/media/i2c/ov5640.c | 17 ++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c -index 0dae0438aa80..e408946782c6 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/ov5640.c +++ b/drivers/media/i2c/ov5640.c @@ -2327,6 +2327,7 @@ static int ov5640_set_mode(struct ov5640_dev *sensor) @@ -46,5 +46,5 @@ index 0dae0438aa80..e408946782c6 100644 sensor->last_mode = mode; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Sleep-after-poweroff-to-ensure-next-poweron-is-not.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0002-media-ov5640-Sleep-after-poweroff-to-ensure-next-pow.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Sleep-after-poweroff-to-ensure-next-poweron-is-not.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0002-media-ov5640-Sleep-after-poweroff-to-ensure-next-pow.patch index ff811b36b..3bd664574 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Sleep-after-poweroff-to-ensure-next-poweron-is-not.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0002-media-ov5640-Sleep-after-poweroff-to-ensure-next-pow.patch @@ -1,4 +1,4 @@ -From 9ddb83d2597da91098fcd2362b3eee19cd889ffb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 26 Jan 2020 00:19:40 +0100 Subject: media: ov5640: Sleep after poweroff to ensure next poweron is not too @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+) diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c -index e408946782c6..78a24f58888c 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/ov5640.c +++ b/drivers/media/i2c/ov5640.c @@ -2535,6 +2535,7 @@ static void ov5640_set_power_off(struct ov5640_dev *sensor) @@ -25,5 +25,5 @@ index e408946782c6..78a24f58888c 100644 static int ov5640_set_power_mipi(struct ov5640_dev *sensor, bool on) -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Don-t-powerup-the-sensor-during-driver-probe.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0003-media-ov5640-Don-t-powerup-the-sensor-during-driver-.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Don-t-powerup-the-sensor-during-driver-probe.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0003-media-ov5640-Don-t-powerup-the-sensor-during-driver-.patch index c64452d45..77e27de41 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Don-t-powerup-the-sensor-during-driver-probe.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0003-media-ov5640-Don-t-powerup-the-sensor-during-driver-.patch @@ -1,4 +1,4 @@ -From b5e86ca2fe4bafa43cd73a0390a998bc90b3c8d9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Wed, 8 Nov 2023 19:13:37 +0100 Subject: media: ov5640: Don't powerup the sensor during driver probe @@ -9,11 +9,11 @@ pipeline via s_power callback, later on. Signed-off-by: Ondrej Jirman --- - drivers/media/i2c/ov5640.c | 55 +++++++++----------------------------- - 1 file changed, 12 insertions(+), 43 deletions(-) + drivers/media/i2c/ov5640.c | 54 +++------- + 1 file changed, 12 insertions(+), 42 deletions(-) diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c -index 78a24f58888c..0e98ed8b3e08 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/ov5640.c +++ b/drivers/media/i2c/ov5640.c @@ -2497,6 +2497,7 @@ static void ov5640_powerup_sequence(struct ov5640_dev *sensor) @@ -38,7 +38,7 @@ index 78a24f58888c..0e98ed8b3e08 100644 return 0; power_off: -@@ -3841,28 +3849,6 @@ static int ov5640_get_regulators(struct ov5640_dev *sensor) +@@ -3838,28 +3846,6 @@ static int ov5640_get_regulators(struct ov5640_dev *sensor) sensor->supplies); } @@ -67,7 +67,7 @@ index 78a24f58888c..0e98ed8b3e08 100644 static int ov5640_probe(struct i2c_client *client) { struct device *dev = &client->dev; -@@ -3963,35 +3949,16 @@ static int ov5640_probe(struct i2c_client *client) +@@ -3959,34 +3945,16 @@ static int ov5640_probe(struct i2c_client *client) if (ret) goto entity_cleanup; @@ -93,7 +93,6 @@ index 78a24f58888c..0e98ed8b3e08 100644 + pm_runtime_enable(dev); pm_runtime_set_autosuspend_delay(dev, 1000); pm_runtime_use_autosuspend(dev); -- pm_runtime_mark_last_busy(dev); - pm_runtime_put_autosuspend(dev); return 0; @@ -105,7 +104,7 @@ index 78a24f58888c..0e98ed8b3e08 100644 free_ctrls: v4l2_ctrl_handler_free(&sensor->ctrls.handler); entity_cleanup: -@@ -4006,6 +3973,8 @@ static void ov5640_remove(struct i2c_client *client) +@@ -4001,6 +3969,8 @@ static void ov5640_remove(struct i2c_client *client) struct ov5640_dev *sensor = to_ov5640_dev(sd); struct device *dev = &client->dev; @@ -115,5 +114,5 @@ index 78a24f58888c..0e98ed8b3e08 100644 if (!pm_runtime_status_suspended(dev)) ov5640_sensor_suspend(dev); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-set-default-ae-target-lower.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0004-media-ov5640-set-default-ae-target-lower.patch similarity index 80% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-set-default-ae-target-lower.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0004-media-ov5640-set-default-ae-target-lower.patch index 01c2e3d54..7d4775660 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-set-default-ae-target-lower.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0004-media-ov5640-set-default-ae-target-lower.patch @@ -1,4 +1,4 @@ -From d46586eca46bf3e85854e61ac90c6d22d5092469 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Martijn Braam Date: Wed, 7 Oct 2020 17:33:43 +0200 Subject: media: ov5640: set default ae target lower @@ -10,10 +10,10 @@ the exposure target one stop lower. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c -index 0e98ed8b3e08..4e0803484fd4 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/ov5640.c +++ b/drivers/media/i2c/ov5640.c -@@ -3875,7 +3875,7 @@ static int ov5640_probe(struct i2c_client *client) +@@ -3872,7 +3872,7 @@ static int ov5640_probe(struct i2c_client *client) sensor->current_link_freq = ov5640_csi2_link_freqs[OV5640_DEFAULT_LINK_FREQ]; @@ -23,5 +23,5 @@ index 0e98ed8b3e08..4e0803484fd4 100644 endpoint = fwnode_graph_get_next_endpoint(dev_fwnode(&client->dev), NULL); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Improve-error-reporting.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0005-media-ov5640-Improve-error-reporting.patch similarity index 80% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Improve-error-reporting.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0005-media-ov5640-Improve-error-reporting.patch index c28c8cea3..821dcc160 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Improve-error-reporting.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0005-media-ov5640-Improve-error-reporting.patch @@ -1,4 +1,4 @@ -From 99132bcca8ec0cfe040be718c89c754ef0051804 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 22 Oct 2021 19:52:49 +0200 Subject: media: ov5640: Improve error reporting @@ -11,10 +11,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c -index 4e0803484fd4..0ff3a2c51d4d 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/ov5640.c +++ b/drivers/media/i2c/ov5640.c -@@ -3940,8 +3940,10 @@ static int ov5640_probe(struct i2c_client *client) +@@ -3936,8 +3936,10 @@ static int ov5640_probe(struct i2c_client *client) return ret; ret = ov5640_get_regulators(sensor); @@ -26,7 +26,7 @@ index 4e0803484fd4..0ff3a2c51d4d 100644 mutex_init(&sensor->lock); -@@ -3950,8 +3952,10 @@ static int ov5640_probe(struct i2c_client *client) +@@ -3946,8 +3948,10 @@ static int ov5640_probe(struct i2c_client *client) goto entity_cleanup; ret = v4l2_async_register_subdev_sensor(&sensor->sd); @@ -39,5 +39,5 @@ index 4e0803484fd4..0ff3a2c51d4d 100644 pm_runtime_enable(dev); pm_runtime_set_autosuspend_delay(dev, 1000); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Implement-autofocus.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0006-media-ov5640-Implement-autofocus.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Implement-autofocus.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0006-media-ov5640-Implement-autofocus.patch index f82fb6801..118a95c36 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Implement-autofocus.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0006-media-ov5640-Implement-autofocus.patch @@ -1,4 +1,4 @@ -From 639e94cc1789aa3841edefb3846c97059479b1fd Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 7 Aug 2022 15:17:09 +0200 Subject: media: ov5640: Implement autofocus @@ -11,11 +11,11 @@ this at least makes it possible to focus on the center of the sensor. Signed-off-by: Martijn Braam --- - drivers/media/i2c/ov5640.c | 279 +++++++++++++++++++++++++++++++++++++ + drivers/media/i2c/ov5640.c | 279 ++++++++++ 1 file changed, 279 insertions(+) diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c -index 0ff3a2c51d4d..83206c5b649a 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/ov5640.c +++ b/drivers/media/i2c/ov5640.c @@ -9,6 +9,7 @@ @@ -341,8 +341,8 @@ index 0ff3a2c51d4d..83206c5b649a 100644 + break; } - pm_runtime_mark_last_busy(&sensor->i2c_client->dev); -@@ -3414,6 +3666,18 @@ static int ov5640_s_ctrl(struct v4l2_ctrl *ctrl) + pm_runtime_put_autosuspend(&sensor->i2c_client->dev); +@@ -3413,6 +3665,18 @@ static int ov5640_s_ctrl(struct v4l2_ctrl *ctrl) case V4L2_CID_AUTO_WHITE_BALANCE: ret = ov5640_set_ctrl_white_balance(sensor, ctrl->val); break; @@ -361,7 +361,7 @@ index 0ff3a2c51d4d..83206c5b649a 100644 case V4L2_CID_HUE: ret = ov5640_set_ctrl_hue(sensor, ctrl->val); break; -@@ -3514,6 +3778,20 @@ static int ov5640_init_controls(struct ov5640_dev *sensor) +@@ -3512,6 +3776,20 @@ static int ov5640_init_controls(struct ov5640_dev *sensor) ctrls->gain = v4l2_ctrl_new_std(hdl, ops, V4L2_CID_ANALOGUE_GAIN, 0, 1023, 1, 0); @@ -382,7 +382,7 @@ index 0ff3a2c51d4d..83206c5b649a 100644 ctrls->saturation = v4l2_ctrl_new_std(hdl, ops, V4L2_CID_SATURATION, 0, 255, 1, 64); ctrls->hue = v4l2_ctrl_new_std(hdl, ops, V4L2_CID_HUE, -@@ -3560,6 +3838,7 @@ static int ov5640_init_controls(struct ov5640_dev *sensor) +@@ -3558,6 +3836,7 @@ static int ov5640_init_controls(struct ov5640_dev *sensor) v4l2_ctrl_auto_cluster(3, &ctrls->auto_wb, 0, false); v4l2_ctrl_auto_cluster(2, &ctrls->auto_gain, 0, true); v4l2_ctrl_auto_cluster(2, &ctrls->auto_exp, 1, true); @@ -391,5 +391,5 @@ index 0ff3a2c51d4d..83206c5b649a 100644 sensor->sd.ctrl_handler = hdl; return 0; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Improve-firmware-load-time.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0007-media-ov5640-Improve-firmware-load-time.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Improve-firmware-load-time.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0007-media-ov5640-Improve-firmware-load-time.patch index 70509aeaa..ca99421ec 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Improve-firmware-load-time.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0007-media-ov5640-Improve-firmware-load-time.patch @@ -1,4 +1,4 @@ -From 39760aef81cfc8305d04f65e9a6149519b8d9352 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Benjamin Schaaf Date: Mon, 22 Nov 2021 23:38:26 +1100 Subject: media: ov5640: Improve firmware load time @@ -9,11 +9,11 @@ loading it, so there's no need for a long timeout or retry. The firmware can also not be loaded when the sensor isn't powered on, so don't bother trying. --- - drivers/media/i2c/ov5640.c | 97 ++++++++++++++++++++++++++++---------- + drivers/media/i2c/ov5640.c | 97 +++++++--- 1 file changed, 71 insertions(+), 26 deletions(-) diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c -index 83206c5b649a..93cfd1b51713 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/ov5640.c +++ b/drivers/media/i2c/ov5640.c @@ -1232,6 +1232,8 @@ static int ov5640_write_reg(struct ov5640_dev *sensor, u16 reg, u8 val) @@ -173,5 +173,5 @@ index 83206c5b649a..93cfd1b51713 100644 return 0; } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Fix-focus-commands-blocking-until-complete.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0008-media-ov5640-Fix-focus-commands-blocking-until-compl.patch similarity index 93% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Fix-focus-commands-blocking-until-complete.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0008-media-ov5640-Fix-focus-commands-blocking-until-compl.patch index 33ade7240..eeced3f86 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Fix-focus-commands-blocking-until-complete.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0008-media-ov5640-Fix-focus-commands-blocking-until-compl.patch @@ -1,4 +1,4 @@ -From d42ba1010939131685bdfea2c393e24ffa1193fe Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Benjamin Schaaf Date: Mon, 22 Nov 2021 23:38:26 +1100 Subject: media: ov5640: Fix focus commands blocking until complete @@ -6,11 +6,11 @@ Subject: media: ov5640: Fix focus commands blocking until complete Previously setting the focus controls would block until the sensor completed the focus routine. --- - drivers/media/i2c/ov5640.c | 67 ++++++++++---------------------------- + drivers/media/i2c/ov5640.c | 67 +++------- 1 file changed, 18 insertions(+), 49 deletions(-) diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c -index 93cfd1b51713..07e5af3073ec 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/ov5640.c +++ b/drivers/media/i2c/ov5640.c @@ -2643,6 +2643,19 @@ static int ov5640_copy_fw_to_device(struct ov5640_dev *sensor, @@ -109,5 +109,5 @@ index 93cfd1b51713..07e5af3073ec 100644 } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Add-read-only-property-for-vblank.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0009-media-ov5640-Add-read-only-property-for-vblank.patch similarity index 79% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Add-read-only-property-for-vblank.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0009-media-ov5640-Add-read-only-property-for-vblank.patch index ec6cb9169..fd29db299 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-Add-read-only-property-for-vblank.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0009-media-ov5640-Add-read-only-property-for-vblank.patch @@ -1,4 +1,4 @@ -From 5aa48677af3fde2b4a95fe7dadf8761ad474c01a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Adam Pigg Date: Thu, 29 Dec 2022 11:10:41 +0000 Subject: media: ov5640: Add read-only property for vblank @@ -8,10 +8,10 @@ Subject: media: ov5640: Add read-only property for vblank 1 file changed, 1 insertion(+) diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c -index 07e5af3073ec..5d69b74a5cd7 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/ov5640.c +++ b/drivers/media/i2c/ov5640.c -@@ -3846,6 +3846,7 @@ static int ov5640_init_controls(struct ov5640_dev *sensor) +@@ -3844,6 +3844,7 @@ static int ov5640_init_controls(struct ov5640_dev *sensor) ctrls->pixel_rate->flags |= V4L2_CTRL_FLAG_READ_ONLY; ctrls->link_freq->flags |= V4L2_CTRL_FLAG_READ_ONLY; ctrls->hblank->flags |= V4L2_CTRL_FLAG_READ_ONLY; @@ -20,5 +20,5 @@ index 07e5af3073ec..5d69b74a5cd7 100644 ctrls->exposure->flags |= V4L2_CTRL_FLAG_VOLATILE; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-use-pm_runtime_force_suspend-resume-for-system-sus.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0010-media-ov5640-use-pm_runtime_force_suspend-resume-for.patch similarity index 83% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-use-pm_runtime_force_suspend-resume-for-system-sus.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0010-media-ov5640-use-pm_runtime_force_suspend-resume-for.patch index 7b1506608..cec984fe2 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-ov5640-use-pm_runtime_force_suspend-resume-for-system-sus.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ov5640-6.18/0010-media-ov5640-use-pm_runtime_force_suspend-resume-for.patch @@ -1,4 +1,4 @@ -From 0f03480e5d6811d4ea60629b504e68eb36e8e0e4 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andrey Skvortsov Date: Mon, 14 Aug 2023 13:25:07 +0300 Subject: media: ov5640: use pm_runtime_force_suspend/resume for system suspend @@ -14,10 +14,10 @@ Signed-off-by: Andrey Skvortsov 1 file changed, 2 insertions(+) diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c -index 5d69b74a5cd7..50177b44ed61 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/i2c/ov5640.c +++ b/drivers/media/i2c/ov5640.c -@@ -4285,6 +4285,8 @@ static void ov5640_remove(struct i2c_client *client) +@@ -4281,6 +4281,8 @@ static void ov5640_remove(struct i2c_client *client) } static const struct dev_pm_ops ov5640_pm_ops = { @@ -27,5 +27,5 @@ index 5d69b74a5cd7..50177b44ed61 100644 }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/Revert-Input-cyttsp4-remove-driver.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0001-Revert-Input-cyttsp4-remove-driver.patch similarity index 98% rename from patch/kernel/archive/sunxi-6.16/patches.megous/Revert-Input-cyttsp4-remove-driver.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0001-Revert-Input-cyttsp4-remove-driver.patch index 0c755fc4f..98c364171 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/Revert-Input-cyttsp4-remove-driver.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0001-Revert-Input-cyttsp4-remove-driver.patch @@ -1,4 +1,4 @@ -From 5fa9f90b1e132dec177f60af5aca3c1ad2e019e8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Thu, 26 Sep 2024 23:00:02 +0200 Subject: Revert "Input: cyttsp4 - remove driver" @@ -7,24 +7,18 @@ This reverts commit 25162a4f64f8ba0065f300977589fe1f6af332f0. --- drivers/input/touchscreen/Kconfig | 30 + drivers/input/touchscreen/Makefile | 5 +- - drivers/input/touchscreen/cyttsp4_core.c | 2174 +++++++++++++++++ - drivers/input/touchscreen/cyttsp4_core.h | 448 ++++ + drivers/input/touchscreen/cyttsp4_core.c | 2174 ++++++++++ + drivers/input/touchscreen/cyttsp4_core.h | 448 ++ drivers/input/touchscreen/cyttsp4_i2c.c | 72 + - drivers/input/touchscreen/cyttsp4_spi.c | 187 ++ + drivers/input/touchscreen/cyttsp4_spi.c | 187 + drivers/input/touchscreen/cyttsp_core.h | 4 + drivers/input/touchscreen/cyttsp_i2c.c | 55 - drivers/input/touchscreen/cyttsp_i2c_common.c | 86 + include/linux/platform_data/cyttsp4.h | 62 + 10 files changed, 3067 insertions(+), 56 deletions(-) - create mode 100644 drivers/input/touchscreen/cyttsp4_core.c - create mode 100644 drivers/input/touchscreen/cyttsp4_core.h - create mode 100644 drivers/input/touchscreen/cyttsp4_i2c.c - create mode 100644 drivers/input/touchscreen/cyttsp4_spi.c - create mode 100644 drivers/input/touchscreen/cyttsp_i2c_common.c - create mode 100644 include/linux/platform_data/cyttsp4.h diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig -index 196905162945..e9d7e034e18d 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/Kconfig +++ b/drivers/input/touchscreen/Kconfig @@ -266,6 +266,36 @@ config TOUCHSCREEN_CYTTSP_SPI @@ -65,7 +59,7 @@ index 196905162945..e9d7e034e18d 100644 tristate "Cypress TrueTouch Gen5 Touchscreen Driver" depends on I2C diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile -index 97a025c6a377..4f57a36a565c 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/Makefile +++ b/drivers/input/touchscreen/Makefile @@ -26,8 +26,11 @@ obj-$(CONFIG_TOUCHSCREEN_CHIPONE_ICN8505) += chipone_icn8505.o @@ -83,7 +77,7 @@ index 97a025c6a377..4f57a36a565c 100644 obj-$(CONFIG_TOUCHSCREEN_DA9052) += da9052_tsi.o diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c new file mode 100644 -index 000000000000..7cb26929dc73 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -0,0 +1,2174 @@ @@ -2263,7 +2257,7 @@ index 000000000000..7cb26929dc73 +MODULE_AUTHOR("Cypress"); diff --git a/drivers/input/touchscreen/cyttsp4_core.h b/drivers/input/touchscreen/cyttsp4_core.h new file mode 100644 -index 000000000000..6262f6e45075 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/input/touchscreen/cyttsp4_core.h @@ -0,0 +1,448 @@ @@ -2717,7 +2711,7 @@ index 000000000000..6262f6e45075 +#endif /* _LINUX_CYTTSP4_CORE_H */ diff --git a/drivers/input/touchscreen/cyttsp4_i2c.c b/drivers/input/touchscreen/cyttsp4_i2c.c new file mode 100644 -index 000000000000..da32c151def5 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/input/touchscreen/cyttsp4_i2c.c @@ -0,0 +1,72 @@ @@ -2795,7 +2789,7 @@ index 000000000000..da32c151def5 +MODULE_AUTHOR("Cypress"); diff --git a/drivers/input/touchscreen/cyttsp4_spi.c b/drivers/input/touchscreen/cyttsp4_spi.c new file mode 100644 -index 000000000000..944fbbe9113e +index 000000000000..111111111111 --- /dev/null +++ b/drivers/input/touchscreen/cyttsp4_spi.c @@ -0,0 +1,187 @@ @@ -2987,7 +2981,7 @@ index 000000000000..944fbbe9113e +MODULE_AUTHOR("Cypress"); +MODULE_ALIAS("spi:cyttsp4"); diff --git a/drivers/input/touchscreen/cyttsp_core.h b/drivers/input/touchscreen/cyttsp_core.h -index 40a605d20285..cd3b80401970 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp_core.h +++ b/drivers/input/touchscreen/cyttsp_core.h @@ -136,6 +136,10 @@ struct cyttsp { @@ -3002,7 +2996,7 @@ index 40a605d20285..cd3b80401970 100644 #endif /* __CYTTSP_CORE_H__ */ diff --git a/drivers/input/touchscreen/cyttsp_i2c.c b/drivers/input/touchscreen/cyttsp_i2c.c -index cb15600549cd..bf13b3448a6b 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp_i2c.c +++ b/drivers/input/touchscreen/cyttsp_i2c.c @@ -22,61 +22,6 @@ @@ -3069,7 +3063,7 @@ index cb15600549cd..bf13b3448a6b 100644 .write = cyttsp_i2c_write_block_data, diff --git a/drivers/input/touchscreen/cyttsp_i2c_common.c b/drivers/input/touchscreen/cyttsp_i2c_common.c new file mode 100644 -index 000000000000..7e752fb9fad7 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/input/touchscreen/cyttsp_i2c_common.c @@ -0,0 +1,86 @@ @@ -3161,7 +3155,7 @@ index 000000000000..7e752fb9fad7 +MODULE_AUTHOR("Cypress"); diff --git a/include/linux/platform_data/cyttsp4.h b/include/linux/platform_data/cyttsp4.h new file mode 100644 -index 000000000000..5dc9d2be384b +index 000000000000..111111111111 --- /dev/null +++ b/include/linux/platform_data/cyttsp4.h @@ -0,0 +1,62 @@ @@ -3228,5 +3222,5 @@ index 000000000000..5dc9d2be384b + +#endif /* _CYTTSP4_H_ */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Port-to-6.16.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0002-input-cyttsp4-Port-to-6.16.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Port-to-6.16.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0002-input-cyttsp4-Port-to-6.16.patch index cebb3fe11..3ac6b897a 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Port-to-6.16.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0002-input-cyttsp4-Port-to-6.16.patch @@ -1,4 +1,4 @@ -From dbe2f0d5670532898fc7dabce014697b8d42eed2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 16 Jun 2025 21:29:45 +0200 Subject: input: cyttsp4: Port to 6.16 @@ -8,7 +8,7 @@ Subject: input: cyttsp4: Port to 6.16 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index 7cb26929dc73..a84750623328 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -1269,7 +1269,7 @@ static void cyttsp4_stop_wd_timer(struct cyttsp4 *cd) @@ -21,5 +21,5 @@ index 7cb26929dc73..a84750623328 100644 dev_vdbg(cd->dev, "%s: Watchdog timer triggered\n", __func__); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-De-obfuscate-platform-data-for-keys.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0003-input-cyttsp4-De-obfuscate-platform-data-for-keys.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-De-obfuscate-platform-data-for-keys.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0003-input-cyttsp4-De-obfuscate-platform-data-for-keys.patch index af5e4bcf9..fc1bfbd43 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-De-obfuscate-platform-data-for-keys.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0003-input-cyttsp4-De-obfuscate-platform-data-for-keys.patch @@ -1,16 +1,16 @@ -From 38c4d8b0b4039f2a14bc0342e51348e226717725 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 28 Sep 2019 14:46:11 +0200 Subject: input: cyttsp4: De-obfuscate platform data for keys Signed-off-by: Ondrej Jirman --- - drivers/input/touchscreen/cyttsp4_core.c | 22 +++------------------- - include/linux/platform_data/cyttsp4.h | 12 ++++++------ + drivers/input/touchscreen/cyttsp4_core.c | 22 ++-------- + include/linux/platform_data/cyttsp4.h | 12 ++--- 2 files changed, 9 insertions(+), 25 deletions(-) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index a84750623328..355aba324e47 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -541,8 +541,6 @@ static int cyttsp4_si_get_btn_data(struct cyttsp4 *cd) @@ -51,7 +51,7 @@ index a84750623328..355aba324e47 100644 si->btn[btn].enabled = true; } diff --git a/include/linux/platform_data/cyttsp4.h b/include/linux/platform_data/cyttsp4.h -index 5dc9d2be384b..c54160c17b0b 100644 +index 111111111111..222222222222 100644 --- a/include/linux/platform_data/cyttsp4.h +++ b/include/linux/platform_data/cyttsp4.h @@ -33,11 +33,9 @@ struct cyttsp4_mt_platform_data { @@ -81,5 +81,5 @@ index 5dc9d2be384b..c54160c17b0b 100644 struct cyttsp4_platform_data { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Remove-useless-indirection-with-driver-platform-d.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0004-input-cyttsp4-Remove-useless-indirection-with-driver.patch similarity index 98% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Remove-useless-indirection-with-driver-platform-d.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0004-input-cyttsp4-Remove-useless-indirection-with-driver.patch index dcf480501..c1bad6940 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Remove-useless-indirection-with-driver-platform-d.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0004-input-cyttsp4-Remove-useless-indirection-with-driver.patch @@ -1,4 +1,4 @@ -From 5378058989e1bdda285ba0acddb12d0f95d21c93 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 28 Sep 2019 15:05:39 +0200 Subject: input: cyttsp4: Remove useless indirection with driver/platform data @@ -13,13 +13,13 @@ Remove all this indirection. Signed-off-by: Ondrej Jirman --- - drivers/input/touchscreen/cyttsp4_core.c | 233 +++++++++++------------ + drivers/input/touchscreen/cyttsp4_core.c | 233 +++++----- drivers/input/touchscreen/cyttsp4_core.h | 18 +- - include/linux/platform_data/cyttsp4.h | 26 +-- + include/linux/platform_data/cyttsp4.h | 26 +- 3 files changed, 128 insertions(+), 149 deletions(-) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index 355aba324e47..93d06edaf4fd 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -133,8 +133,8 @@ static int cyttsp4_hw_soft_reset(struct cyttsp4 *cd) @@ -626,7 +626,7 @@ index 355aba324e47..93d06edaf4fd 100644 kfree(cd); return 0; diff --git a/drivers/input/touchscreen/cyttsp4_core.h b/drivers/input/touchscreen/cyttsp4_core.h -index 6262f6e45075..05fb30058d87 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.h +++ b/drivers/input/touchscreen/cyttsp4_core.h @@ -305,16 +305,6 @@ struct cyttsp4_sysinfo { @@ -663,7 +663,7 @@ index 6262f6e45075..05fb30058d87 100644 u8 *xfer_buf; #ifdef VERBOSE_DEBUG diff --git a/include/linux/platform_data/cyttsp4.h b/include/linux/platform_data/cyttsp4.h -index c54160c17b0b..1f945aa2466e 100644 +index 111111111111..222222222222 100644 --- a/include/linux/platform_data/cyttsp4.h +++ b/include/linux/platform_data/cyttsp4.h @@ -27,36 +27,30 @@ struct touch_framework { @@ -714,5 +714,5 @@ index c54160c17b0b..1f945aa2466e 100644 - #endif /* _CYTTSP4_H_ */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Remove-unused-enable_vkeys.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0005-input-cyttsp4-Remove-unused-enable_vkeys.patch similarity index 85% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Remove-unused-enable_vkeys.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0005-input-cyttsp4-Remove-unused-enable_vkeys.patch index 96d81be74..0e1de5b38 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Remove-unused-enable_vkeys.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0005-input-cyttsp4-Remove-unused-enable_vkeys.patch @@ -1,4 +1,4 @@ -From 3adb08ca82e02dc9bfbd8e01d7f1957048161e90 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 28 Sep 2019 15:06:16 +0200 Subject: input: cyttsp4: Remove unused enable_vkeys @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 deletion(-) diff --git a/include/linux/platform_data/cyttsp4.h b/include/linux/platform_data/cyttsp4.h -index 1f945aa2466e..362fa181ac04 100644 +index 111111111111..222222222222 100644 --- a/include/linux/platform_data/cyttsp4.h +++ b/include/linux/platform_data/cyttsp4.h @@ -24,7 +24,6 @@ @@ -23,5 +23,5 @@ index 1f945aa2466e..362fa181ac04 100644 struct cyttsp4_virtual_key { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-De-obfuscate-MT-signals-setup-platform-data.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0006-input-cyttsp4-De-obfuscate-MT-signals-setup-platform.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-De-obfuscate-MT-signals-setup-platform-data.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0006-input-cyttsp4-De-obfuscate-MT-signals-setup-platform.patch index 29ccf5aa7..f63c4adcf 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-De-obfuscate-MT-signals-setup-platform-data.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0006-input-cyttsp4-De-obfuscate-MT-signals-setup-platform.patch @@ -1,4 +1,4 @@ -From dd1af93a544046dc8bb4d596b489cc1d2ec117d1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 28 Sep 2019 16:01:06 +0200 Subject: input: cyttsp4: De-obfuscate MT signals setup/platform data @@ -8,13 +8,13 @@ Make it easier to use and clean it up. Signed-off-by: Ondrej Jirman --- - drivers/input/touchscreen/cyttsp4_core.c | 102 ++++++++++------------- - drivers/input/touchscreen/cyttsp4_core.h | 26 ------ - include/linux/platform_data/cyttsp4.h | 27 ++++-- + drivers/input/touchscreen/cyttsp4_core.c | 102 ++++------ + drivers/input/touchscreen/cyttsp4_core.h | 26 --- + include/linux/platform_data/cyttsp4.h | 27 ++- 3 files changed, 66 insertions(+), 89 deletions(-) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index 93d06edaf4fd..6d11e716706c 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -853,31 +853,26 @@ static void cyttsp4_get_mt_touches(struct cyttsp4 *cd, int num_cur_tch) @@ -172,7 +172,7 @@ index 93d06edaf4fd..6d11e716706c 100644 input_mt_init_slots(cd->input, cd->si->si_ofs.tch_abs[CY_TCH_T].max, diff --git a/drivers/input/touchscreen/cyttsp4_core.h b/drivers/input/touchscreen/cyttsp4_core.h -index 05fb30058d87..995bfd0a54d0 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.h +++ b/drivers/input/touchscreen/cyttsp4_core.h @@ -357,32 +357,6 @@ enum cyttsp4_hst_mode_bits { @@ -209,7 +209,7 @@ index 05fb30058d87..995bfd0a54d0 100644 CY_FLAG_NONE = 0x00, CY_FLAG_HOVER = 0x04, diff --git a/include/linux/platform_data/cyttsp4.h b/include/linux/platform_data/cyttsp4.h -index 362fa181ac04..1b5b30796e43 100644 +index 111111111111..222222222222 100644 --- a/include/linux/platform_data/cyttsp4.h +++ b/include/linux/platform_data/cyttsp4.h @@ -21,15 +21,31 @@ @@ -259,5 +259,5 @@ index 362fa181ac04..1b5b30796e43 100644 int n_keys; struct cyttsp4_virtual_key* keys; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Clear-the-ids-buffer-in-a-saner-way.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0007-input-cyttsp4-Clear-the-ids-buffer-in-a-saner-way.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Clear-the-ids-buffer-in-a-saner-way.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0007-input-cyttsp4-Clear-the-ids-buffer-in-a-saner-way.patch index 1fd36f52e..2bea3a938 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Clear-the-ids-buffer-in-a-saner-way.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0007-input-cyttsp4-Clear-the-ids-buffer-in-a-saner-way.patch @@ -1,4 +1,4 @@ -From da1627af35c4e4b4eafc1e42ef255a2edd110fd1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 28 Sep 2019 18:00:33 +0200 Subject: input: cyttsp4: Clear the ids buffer in a saner way @@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index 6d11e716706c..b572def3e00b 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -854,10 +854,9 @@ static void cyttsp4_get_mt_touches(struct cyttsp4 *cd, int num_cur_tch) @@ -28,5 +28,5 @@ index 6d11e716706c..b572def3e00b 100644 cyttsp4_get_touch(cd, &tch, si->xy_data + (i * si->si_ofs.tch_rec_size)); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-ENOSYS-error-is-ok-when-powering-up.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0008-input-cyttsp4-ENOSYS-error-is-ok-when-powering-up.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-ENOSYS-error-is-ok-when-powering-up.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0008-input-cyttsp4-ENOSYS-error-is-ok-when-powering-up.patch index 4b30324e7..a4e4d3336 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-ENOSYS-error-is-ok-when-powering-up.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0008-input-cyttsp4-ENOSYS-error-is-ok-when-powering-up.patch @@ -1,4 +1,4 @@ -From 616c5bfc7639a34a048d0b4cb36b73d2960ce623 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 28 Sep 2019 18:01:49 +0200 Subject: input: cyttsp4: ENOSYS error is ok when powering up @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index b572def3e00b..e520a8de4516 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -1764,7 +1764,8 @@ static int cyttsp4_core_wake_(struct cyttsp4 *cd) @@ -25,5 +25,5 @@ index b572def3e00b..e520a8de4516 100644 /* Initiate a read transaction to wake up */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Faster-recovery-from-failed-wakeup-HACK.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0009-input-cyttsp4-Faster-recovery-from-failed-wakeup-HAC.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Faster-recovery-from-failed-wakeup-HACK.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0009-input-cyttsp4-Faster-recovery-from-failed-wakeup-HAC.patch index b7e886750..2122f9e2e 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Faster-recovery-from-failed-wakeup-HACK.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0009-input-cyttsp4-Faster-recovery-from-failed-wakeup-HAC.patch @@ -1,4 +1,4 @@ -From 47e05de8158448eb083838045f8aac3e45a09e2d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 28 Sep 2019 18:03:41 +0200 Subject: input: cyttsp4: Faster recovery from failed wakeup (HACK) @@ -14,7 +14,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index e520a8de4516..71c8c02902bc 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -26,7 +26,7 @@ @@ -27,5 +27,5 @@ index e520a8de4516..71c8c02902bc 100644 #define CY_CORE_STARTUP_RETRY_COUNT 3 -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Use-i2c-spi-names-directly-in-the-driver.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0010-input-cyttsp4-Use-i2c-spi-names-directly-in-the-driv.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Use-i2c-spi-names-directly-in-the-driver.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0010-input-cyttsp4-Use-i2c-spi-names-directly-in-the-driv.patch index 31a817578..435e3aaa3 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Use-i2c-spi-names-directly-in-the-driver.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0010-input-cyttsp4-Use-i2c-spi-names-directly-in-the-driv.patch @@ -1,4 +1,4 @@ -From 4956567a4863c841d2b9339416e56ba3a3e3235f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 6 Mar 2023 01:17:09 +0100 Subject: input: cyttsp4: Use i2c/spi names directly in the driver @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/input/touchscreen/cyttsp4_i2c.c b/drivers/input/touchscreen/cyttsp4_i2c.c -index da32c151def5..5b38a4f34209 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_i2c.c +++ b/drivers/input/touchscreen/cyttsp4_i2c.c @@ -50,14 +50,14 @@ static void cyttsp4_i2c_remove(struct i2c_client *client) @@ -34,7 +34,7 @@ index da32c151def5..5b38a4f34209 100644 }, .probe = cyttsp4_i2c_probe, diff --git a/drivers/input/touchscreen/cyttsp4_spi.c b/drivers/input/touchscreen/cyttsp4_spi.c -index 944fbbe9113e..f3cca8c9c119 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_spi.c +++ b/drivers/input/touchscreen/cyttsp4_spi.c @@ -172,7 +172,7 @@ static void cyttsp4_spi_remove(struct spi_device *spi) @@ -47,7 +47,7 @@ index 944fbbe9113e..f3cca8c9c119 100644 }, .probe = cyttsp4_spi_probe, diff --git a/include/linux/platform_data/cyttsp4.h b/include/linux/platform_data/cyttsp4.h -index 1b5b30796e43..e718d2204ce7 100644 +index 111111111111..222222222222 100644 --- a/include/linux/platform_data/cyttsp4.h +++ b/include/linux/platform_data/cyttsp4.h @@ -16,8 +16,6 @@ @@ -60,5 +60,5 @@ index 1b5b30796e43..e718d2204ce7 100644 #define CY_TOUCH_SETTINGS_MAX 32 -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Port-the-driver-to-use-device-properties.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0011-input-cyttsp4-Port-the-driver-to-use-device-properti.patch similarity index 97% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Port-the-driver-to-use-device-properties.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0011-input-cyttsp4-Port-the-driver-to-use-device-properti.patch index e2cc8d3a1..2545a2030 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Port-the-driver-to-use-device-properties.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0011-input-cyttsp4-Port-the-driver-to-use-device-properti.patch @@ -1,4 +1,4 @@ -From c5e37563e5f69874bf7dfa42d6cdd737061ac800 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 1 Oct 2019 00:31:06 +0200 Subject: input: cyttsp4: Port the driver to use device properties @@ -11,13 +11,13 @@ future. Signed-off-by: Ondrej Jirman --- - drivers/input/touchscreen/cyttsp4_core.c | 234 +++++++++++------------ - drivers/input/touchscreen/cyttsp4_core.h | 36 +++- - include/linux/platform_data/cyttsp4.h | 70 ------- + drivers/input/touchscreen/cyttsp4_core.c | 234 +++++----- + drivers/input/touchscreen/cyttsp4_core.h | 36 +- + include/linux/platform_data/cyttsp4.h | 70 --- 3 files changed, 151 insertions(+), 189 deletions(-) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index 71c8c02902bc..94c3116c92a0 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -17,7 +17,9 @@ @@ -445,7 +445,7 @@ index 71c8c02902bc..94c3116c92a0 100644 MODULE_AUTHOR("Cypress"); +MODULE_AUTHOR("Ondrej Jirman "); diff --git a/drivers/input/touchscreen/cyttsp4_core.h b/drivers/input/touchscreen/cyttsp4_core.h -index 995bfd0a54d0..cff547979b28 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.h +++ b/drivers/input/touchscreen/cyttsp4_core.h @@ -24,6 +24,8 @@ @@ -511,7 +511,7 @@ index 995bfd0a54d0..cff547979b28 100644 void *buf) { diff --git a/include/linux/platform_data/cyttsp4.h b/include/linux/platform_data/cyttsp4.h -index e718d2204ce7..e69de29bb2d1 100644 +index 111111111111..222222222222 100644 --- a/include/linux/platform_data/cyttsp4.h +++ b/include/linux/platform_data/cyttsp4.h @@ -1,70 +0,0 @@ @@ -586,5 +586,5 @@ index e718d2204ce7..e69de29bb2d1 100644 - -#endif /* _CYTTSP4_H_ */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Restart-on-wakeup-wakeup-by-I2C-read-doesn-t-work.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0012-input-cyttsp4-Restart-on-wakeup-wakeup-by-I2C-read-d.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Restart-on-wakeup-wakeup-by-I2C-read-doesn-t-work.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0012-input-cyttsp4-Restart-on-wakeup-wakeup-by-I2C-read-d.patch index 24b2ceb85..ec31b3d81 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Restart-on-wakeup-wakeup-by-I2C-read-doesn-t-work.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0012-input-cyttsp4-Restart-on-wakeup-wakeup-by-I2C-read-d.patch @@ -1,15 +1,15 @@ -From 135226c59637b44a58c28eed1ae3fb80e32558c7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 1 Oct 2019 02:21:43 +0200 Subject: input: cyttsp4: Restart on wakeup (wakeup by I2C read doesn't work) Signed-off-by: Ondrej Jirman --- - drivers/input/touchscreen/cyttsp4_core.c | 30 ++++++++++++++++-------- + drivers/input/touchscreen/cyttsp4_core.c | 30 ++++++---- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index 94c3116c92a0..5789a85ade0f 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -28,7 +28,7 @@ @@ -121,5 +121,5 @@ index 94c3116c92a0..5789a85ade0f 100644 cd->xfer_buf = devm_kzalloc(dev, xfer_buf_size, GFP_KERNEL); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Fix-warnings.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0013-input-cyttsp4-Fix-warnings.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Fix-warnings.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0013-input-cyttsp4-Fix-warnings.patch index 75237a17c..46de1e2d1 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Fix-warnings.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0013-input-cyttsp4-Fix-warnings.patch @@ -1,4 +1,4 @@ -From e9aef2daaaf208e2cfc3e02778ae5a63042186f5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 7 Oct 2019 06:22:56 +0200 Subject: input: cyttsp4: Fix warnings @@ -9,7 +9,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index 5789a85ade0f..b96f0b174055 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -1461,6 +1461,7 @@ static void cyttsp4_watchdog_work(struct work_struct *work) @@ -43,5 +43,5 @@ index 5789a85ade0f..b96f0b174055 100644 mutex_lock(&cd->system_lock); if (cd->sleep_state == SS_SLEEP_OFF) { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Make-the-driver-not-hog-the-system-s-workqueue.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0014-input-cyttsp4-Make-the-driver-not-hog-the-system-s-w.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Make-the-driver-not-hog-the-system-s-workqueue.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0014-input-cyttsp4-Make-the-driver-not-hog-the-system-s-w.patch index 62e626ce3..5cfe9ee1c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Make-the-driver-not-hog-the-system-s-workqueue.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0014-input-cyttsp4-Make-the-driver-not-hog-the-system-s-w.patch @@ -1,4 +1,4 @@ -From ee59658dec51dd8e72655b243161e7fcd213d415 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 14 Oct 2019 18:00:32 +0200 Subject: input: cyttsp4: Make the driver not hog the system's workqueue @@ -8,12 +8,12 @@ thread for this. Signed-off-by: Ondrej Jirman --- - drivers/input/touchscreen/cyttsp4_core.c | 20 ++++++++++++++------ - drivers/input/touchscreen/cyttsp4_core.h | 3 ++- + drivers/input/touchscreen/cyttsp4_core.c | 20 +++++++--- + drivers/input/touchscreen/cyttsp4_core.h | 3 +- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index b96f0b174055..17a4479ff552 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -721,7 +721,7 @@ static void cyttsp4_queue_startup_(struct cyttsp4 *cd) @@ -80,7 +80,7 @@ index b96f0b174055..17a4479ff552 100644 return 0; } diff --git a/drivers/input/touchscreen/cyttsp4_core.h b/drivers/input/touchscreen/cyttsp4_core.h -index cff547979b28..ac2d7b303f39 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.h +++ b/drivers/input/touchscreen/cyttsp4_core.h @@ -62,7 +62,7 @@ enum cyttsp_cmd_bits { @@ -101,5 +101,5 @@ index cff547979b28..ac2d7b303f39 100644 struct work_struct startup_work; struct work_struct watchdog_work; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Fix-probe-oops.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0015-input-cyttsp4-Fix-probe-oops.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Fix-probe-oops.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0015-input-cyttsp4-Fix-probe-oops.patch index 50c8de8a4..f305d2b57 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Fix-probe-oops.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0015-input-cyttsp4-Fix-probe-oops.patch @@ -1,4 +1,4 @@ -From b3c73d7244644f61a019fc4cb5236b90cdfa8f53 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 11 Mar 2022 22:01:10 +0100 Subject: input: cyttsp4: Fix probe oops @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 3 insertions(+) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index 17a4479ff552..f44438fc98ab 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -1903,6 +1903,9 @@ static int cyttsp4_setup_input_device(struct cyttsp4 *cd) @@ -25,5 +25,5 @@ index 17a4479ff552..f44438fc98ab 100644 max = signal->max; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Fix-compile-issue.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0016-input-cyttsp4-Fix-compile-issue.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Fix-compile-issue.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0016-input-cyttsp4-Fix-compile-issue.patch index c38519efd..2e29be2cb 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/input-cyttsp4-Fix-compile-issue.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0016-input-cyttsp4-Fix-compile-issue.patch @@ -1,4 +1,4 @@ -From 2da7b23bff3f433868b6ca56225f53b4d5aed462 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 22 Nov 2024 23:42:03 +0100 Subject: input: cyttsp4: Fix compile issue @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/cyttsp4_core.c b/drivers/input/touchscreen/cyttsp4_core.c -index f44438fc98ab..2301b2e97c2c 100644 +index 111111111111..222222222222 100644 --- a/drivers/input/touchscreen/cyttsp4_core.c +++ b/drivers/input/touchscreen/cyttsp4_core.c @@ -851,7 +851,7 @@ static void cyttsp4_get_mt_touches(struct cyttsp4 *cd, int num_cur_tch) @@ -24,5 +24,5 @@ index f44438fc98ab..2301b2e97c2c 100644 for (i = 0; i < num_cur_tch; i++) { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/video-fbdev-eInk-display-driver-for-A13-based-PocketBooks.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0017-video-fbdev-eInk-display-driver-for-A13-based-Pocket.patch similarity index 98% rename from patch/kernel/archive/sunxi-6.16/patches.megous/video-fbdev-eInk-display-driver-for-A13-based-PocketBooks.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0017-video-fbdev-eInk-display-driver-for-A13-based-Pocket.patch index 428b13265..663ace63d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/video-fbdev-eInk-display-driver-for-A13-based-PocketBooks.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0017-video-fbdev-eInk-display-driver-for-A13-based-Pocket.patch @@ -1,4 +1,4 @@ -From 5373656aae6e4a4b21a407c91fa2891ffdf6f3b6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 24 Sep 2019 17:53:02 +0200 Subject: video: fbdev: eInk display driver for A13 based PocketBooks @@ -11,16 +11,13 @@ Signed-off-by: Ondrej Jirman --- drivers/video/fbdev/Kconfig | 12 + drivers/video/fbdev/Makefile | 4 + - drivers/video/fbdev/sun5i-eink-neon.c | 51 ++ - drivers/video/fbdev/sun5i-eink.c | 1155 +++++++++++++++++++++++++ + drivers/video/fbdev/sun5i-eink-neon.c | 51 + + drivers/video/fbdev/sun5i-eink.c | 1155 ++++++++++ drivers/video/fbdev/sun5i-eink.h | 7 + 5 files changed, 1229 insertions(+) - create mode 100644 drivers/video/fbdev/sun5i-eink-neon.c - create mode 100644 drivers/video/fbdev/sun5i-eink.c - create mode 100644 drivers/video/fbdev/sun5i-eink.h diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig -index c21484d15f0c..a26188de6748 100644 +index 111111111111..222222222222 100644 --- a/drivers/video/fbdev/Kconfig +++ b/drivers/video/fbdev/Kconfig @@ -658,6 +658,18 @@ config FB_ATMEL @@ -43,7 +40,7 @@ index c21484d15f0c..a26188de6748 100644 tristate "nVidia Framebuffer Support" depends on FB && PCI && HAS_IOPORT diff --git a/drivers/video/fbdev/Makefile b/drivers/video/fbdev/Makefile -index b3d12f977c06..36026f5adf6e 100644 +index 111111111111..222222222222 100644 --- a/drivers/video/fbdev/Makefile +++ b/drivers/video/fbdev/Makefile @@ -126,3 +126,7 @@ obj-$(CONFIG_FB_SIMPLE) += simplefb.o @@ -56,7 +53,7 @@ index b3d12f977c06..36026f5adf6e 100644 +CFLAGS_sun5i-eink-neon.o += -march=armv7-a -mfloat-abi=softfp -mfpu=neon -ffreestanding -isystem $(shell $(CC) -print-file-name=include) diff --git a/drivers/video/fbdev/sun5i-eink-neon.c b/drivers/video/fbdev/sun5i-eink-neon.c new file mode 100644 -index 000000000000..e1eca7be81c1 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/video/fbdev/sun5i-eink-neon.c @@ -0,0 +1,51 @@ @@ -113,7 +110,7 @@ index 000000000000..e1eca7be81c1 +EXPORT_SYMBOL_GPL(eink_ctlstream_fill_data_neon); diff --git a/drivers/video/fbdev/sun5i-eink.c b/drivers/video/fbdev/sun5i-eink.c new file mode 100644 -index 000000000000..63c2b7e66c22 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/video/fbdev/sun5i-eink.c @@ -0,0 +1,1155 @@ @@ -1274,7 +1271,7 @@ index 000000000000..63c2b7e66c22 +MODULE_LICENSE("GPL v2"); diff --git a/drivers/video/fbdev/sun5i-eink.h b/drivers/video/fbdev/sun5i-eink.h new file mode 100644 -index 000000000000..bf6b2688a470 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/video/fbdev/sun5i-eink.h @@ -0,0 +1,7 @@ @@ -1286,5 +1283,5 @@ index 000000000000..bf6b2688a470 + +#endif -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/regulator-Add-simple-driver-for-enabling-a-regulator-from-users.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0018-regulator-Add-simple-driver-for-enabling-a-regulator.patch similarity index 93% rename from patch/kernel/archive/sunxi-6.16/patches.megous/regulator-Add-simple-driver-for-enabling-a-regulator-from-users.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0018-regulator-Add-simple-driver-for-enabling-a-regulator.patch index 0dc35aaca..800a40378 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/regulator-Add-simple-driver-for-enabling-a-regulator-from-users.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0018-regulator-Add-simple-driver-for-enabling-a-regulator.patch @@ -1,4 +1,4 @@ -From 442d6912f184ccb9e0d3f0cae317d76aea561c69 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 5 Oct 2019 15:10:11 +0200 Subject: regulator: Add simple driver for enabling a regulator from userspace @@ -8,14 +8,13 @@ tree. Signed-off-by: Ondrej Jirman --- - drivers/regulator/Kconfig | 9 ++ + drivers/regulator/Kconfig | 9 + drivers/regulator/Makefile | 1 + - drivers/regulator/userspace-consumer-of.c | 135 ++++++++++++++++++++++ + drivers/regulator/userspace-consumer-of.c | 135 ++++++++++ 3 files changed, 145 insertions(+) - create mode 100644 drivers/regulator/userspace-consumer-of.c diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig -index 6d8988387da4..739af6d477e4 100644 +index 111111111111..222222222222 100644 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig @@ -66,6 +66,15 @@ config REGULATOR_NETLINK_EVENTS @@ -35,7 +34,7 @@ index 6d8988387da4..739af6d477e4 100644 tristate "Marvell 88PG86X voltage regulators" depends on I2C diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile -index c0bc7a0f4e67..f58cc4fb0461 100644 +index 111111111111..222222222222 100644 --- a/drivers/regulator/Makefile +++ b/drivers/regulator/Makefile @@ -10,6 +10,7 @@ obj-$(CONFIG_OF) += of_regulator.o @@ -48,7 +47,7 @@ index c0bc7a0f4e67..f58cc4fb0461 100644 obj-$(CONFIG_REGULATOR_88PM800) += 88pm800-regulator.o diff --git a/drivers/regulator/userspace-consumer-of.c b/drivers/regulator/userspace-consumer-of.c new file mode 100644 -index 000000000000..bcc9433c352d +index 000000000000..111111111111 --- /dev/null +++ b/drivers/regulator/userspace-consumer-of.c @@ -0,0 +1,135 @@ @@ -188,5 +187,5 @@ index 000000000000..bcc9433c352d +MODULE_DESCRIPTION("Userspace consumer for voltage and current regulators"); +MODULE_LICENSE("GPL"); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/regulator-tp65185x-Add-tp65185x-eInk-panel-regulator-driver.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0019-regulator-tp65185x-Add-tp65185x-eInk-panel-regulator.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.megous/regulator-tp65185x-Add-tp65185x-eInk-panel-regulator-driver.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0019-regulator-tp65185x-Add-tp65185x-eInk-panel-regulator.patch index b0be740cb..502697c96 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/regulator-tp65185x-Add-tp65185x-eInk-panel-regulator-driver.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0019-regulator-tp65185x-Add-tp65185x-eInk-panel-regulator.patch @@ -1,4 +1,4 @@ -From 6d604af832065db8e9603a53ab85ec26b42c287c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 5 Oct 2019 15:12:51 +0200 Subject: regulator: tp65185x: Add tp65185x eInk panel regulator driver @@ -16,15 +16,14 @@ Signed-off-by: Ondrej Jirman --- drivers/regulator/Kconfig | 8 + drivers/regulator/Makefile | 1 + - drivers/regulator/tp65185x.c | 428 +++++++++++++++++++++++++++++++++++ + drivers/regulator/tp65185x.c | 428 ++++++++++ 3 files changed, 437 insertions(+) - create mode 100644 drivers/regulator/tp65185x.c diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig -index 739af6d477e4..f5431ac1d477 100644 +index 111111111111..222222222222 100644 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig -@@ -1746,4 +1746,12 @@ config REGULATOR_QCOM_LABIBB +@@ -1827,4 +1827,12 @@ config REGULATOR_QCOM_LABIBB boost regulator and IBB can be used as a negative boost regulator for LCD display panel. @@ -38,10 +37,10 @@ index 739af6d477e4..f5431ac1d477 100644 + endif diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile -index f58cc4fb0461..00edf90bf5c1 100644 +index 111111111111..222222222222 100644 --- a/drivers/regulator/Makefile +++ b/drivers/regulator/Makefile -@@ -203,5 +203,6 @@ obj-$(CONFIG_REGULATOR_WM831X) += wm831x-ldo.o +@@ -211,5 +211,6 @@ obj-$(CONFIG_REGULATOR_WM831X) += wm831x-ldo.o obj-$(CONFIG_REGULATOR_WM8350) += wm8350-regulator.o obj-$(CONFIG_REGULATOR_WM8400) += wm8400-regulator.o obj-$(CONFIG_REGULATOR_WM8994) += wm8994-regulator.o @@ -50,7 +49,7 @@ index f58cc4fb0461..00edf90bf5c1 100644 ccflags-$(CONFIG_REGULATOR_DEBUG) += -DDEBUG diff --git a/drivers/regulator/tp65185x.c b/drivers/regulator/tp65185x.c new file mode 100644 -index 000000000000..8b57a11ff2f9 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/regulator/tp65185x.c @@ -0,0 +1,428 @@ @@ -483,5 +482,5 @@ index 000000000000..8b57a11ff2f9 +MODULE_DESCRIPTION("Regulator device driver for tp65185x"); +MODULE_LICENSE("GPL"); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/regulator-tp65185-Add-hwmon-device-for-reading-temperature.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0020-regulator-tp65185-Add-hwmon-device-for-reading-tempe.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.megous/regulator-tp65185-Add-hwmon-device-for-reading-temperature.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0020-regulator-tp65185-Add-hwmon-device-for-reading-tempe.patch index fc338a851..236df2761 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/regulator-tp65185-Add-hwmon-device-for-reading-temperature.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0020-regulator-tp65185-Add-hwmon-device-for-reading-tempe.patch @@ -1,4 +1,4 @@ -From d6cfba904118678134f123c54d7bfb901e02561d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Thu, 17 Oct 2019 23:23:17 +0200 Subject: regulator: tp65185: Add hwmon device for reading temperature @@ -8,11 +8,11 @@ via a special NTC measurement hardware inside the tp65185x. Signed-off-by: Ondrej Jirman --- - drivers/regulator/tp65185x.c | 134 +++++++++++++++++++++++++++++++++-- + drivers/regulator/tp65185x.c | 134 +++++++++- 1 file changed, 127 insertions(+), 7 deletions(-) diff --git a/drivers/regulator/tp65185x.c b/drivers/regulator/tp65185x.c -index 8b57a11ff2f9..08245b50e334 100644 +index 111111111111..222222222222 100644 --- a/drivers/regulator/tp65185x.c +++ b/drivers/regulator/tp65185x.c @@ -7,10 +7,12 @@ @@ -231,5 +231,5 @@ index 8b57a11ff2f9..08245b50e334 100644 } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/iio-adc-sun4i-gpadc-iio-Allow-to-use-sun5i-a13-gpadc-iio-from-D.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0021-iio-adc-sun4i-gpadc-iio-Allow-to-use-sun5i-a13-gpadc.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.megous/iio-adc-sun4i-gpadc-iio-Allow-to-use-sun5i-a13-gpadc-iio-from-D.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0021-iio-adc-sun4i-gpadc-iio-Allow-to-use-sun5i-a13-gpadc.patch index bf86eaa00..07ba014c7 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/iio-adc-sun4i-gpadc-iio-Allow-to-use-sun5i-a13-gpadc-iio-from-D.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0021-iio-adc-sun4i-gpadc-iio-Allow-to-use-sun5i-a13-gpadc.patch @@ -1,4 +1,4 @@ -From fd13c5d5ad837eaf5a1588d1b1a08c79376dbee7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 7 Oct 2019 02:12:34 +0200 Subject: iio: adc: sun4i-gpadc-iio: Allow to use sun5i-a13-gpadc-iio from DT @@ -15,10 +15,10 @@ Signed-off-by: Ondrej Jirman 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/allwinner/sun5i.dtsi b/arch/arm/boot/dts/allwinner/sun5i.dtsi -index d7c7b454a11a..e6836fd4b8dc 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun5i.dtsi +++ b/arch/arm/boot/dts/allwinner/sun5i.dtsi -@@ -657,6 +657,11 @@ rtp: rtp@1c25000 { +@@ -663,6 +663,11 @@ rtp: rtp@1c25000 { reg = <0x01c25000 0x100>; interrupts = <29>; #thermal-sensor-cells = <0>; @@ -31,10 +31,10 @@ index d7c7b454a11a..e6836fd4b8dc 100644 uart0: serial@1c28000 { diff --git a/drivers/iio/adc/sun4i-gpadc-iio.c b/drivers/iio/adc/sun4i-gpadc-iio.c -index 6b8d6bee1873..ccf0faf1c9d1 100644 +index 111111111111..222222222222 100644 --- a/drivers/iio/adc/sun4i-gpadc-iio.c +++ b/drivers/iio/adc/sun4i-gpadc-iio.c -@@ -618,7 +618,8 @@ static int sun4i_gpadc_probe(struct platform_device *pdev) +@@ -615,7 +615,8 @@ static int sun4i_gpadc_probe(struct platform_device *pdev) indio_dev->info = &sun4i_gpadc_iio_info; indio_dev->modes = INDIO_DIRECT_MODE; @@ -45,7 +45,7 @@ index 6b8d6bee1873..ccf0faf1c9d1 100644 else ret = sun4i_gpadc_probe_mfd(pdev, indio_dev); diff --git a/drivers/mfd/sun4i-gpadc.c b/drivers/mfd/sun4i-gpadc.c -index 3029d48e982c..51da961cffd5 100644 +index 111111111111..222222222222 100644 --- a/drivers/mfd/sun4i-gpadc.c +++ b/drivers/mfd/sun4i-gpadc.c @@ -53,6 +53,7 @@ static struct mfd_cell sun4i_gpadc_cells[] = { @@ -57,5 +57,5 @@ index 3029d48e982c..51da961cffd5 100644 .num_resources = ARRAY_SIZE(adc_resources), }, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/mtd-spi-nor-Add-vdd-regulator-support.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0022-mtd-spi-nor-Add-vdd-regulator-support.patch similarity index 81% rename from patch/kernel/archive/sunxi-6.16/patches.megous/mtd-spi-nor-Add-vdd-regulator-support.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0022-mtd-spi-nor-Add-vdd-regulator-support.patch index 4fb530d61..6a476ffe2 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/mtd-spi-nor-Add-vdd-regulator-support.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0022-mtd-spi-nor-Add-vdd-regulator-support.patch @@ -1,4 +1,4 @@ -From 48fb368a71aa4d14c37b39f30e84529b7507064b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 30 Sep 2019 11:49:54 +0200 Subject: mtd: spi-nor: Add vdd regulator support @@ -11,10 +11,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 7 insertions(+) diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c -index ac4b960101cc..a41f6a725092 100644 +index 111111111111..222222222222 100644 --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c -@@ -3569,6 +3569,13 @@ static int spi_nor_probe(struct spi_mem *spimem) +@@ -3710,6 +3710,13 @@ static int spi_nor_probe(struct spi_mem *spimem) if (!nor) return -ENOMEM; @@ -29,5 +29,5 @@ index ac4b960101cc..a41f6a725092 100644 nor->dev = dev; spi_nor_set_flash_node(nor, dev->of_node); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun5i-Add-soc-handle.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0023-ARM-dts-sun5i-Add-soc-handle.patch similarity index 79% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun5i-Add-soc-handle.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0023-ARM-dts-sun5i-Add-soc-handle.patch index ebe8a9e5e..26b8f2f7c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun5i-Add-soc-handle.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0023-ARM-dts-sun5i-Add-soc-handle.patch @@ -1,4 +1,4 @@ -From c23b72ad5a483643ee89ca9f8731d92774f4735a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 5 Oct 2019 15:04:43 +0200 Subject: ARM: dts: sun5i: Add soc handle @@ -9,10 +9,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/allwinner/sun5i.dtsi b/arch/arm/boot/dts/allwinner/sun5i.dtsi -index e6836fd4b8dc..126b80f3ca70 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun5i.dtsi +++ b/arch/arm/boot/dts/allwinner/sun5i.dtsi -@@ -123,7 +123,7 @@ default-pool { +@@ -129,7 +129,7 @@ default-pool { }; }; @@ -22,5 +22,5 @@ index e6836fd4b8dc..126b80f3ca70 100644 #address-cells = <1>; #size-cells = <1>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun5i-Add-PocketBook-Touch-Lux-3-display-ctp-support.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0024-ARM-dts-sun5i-Add-PocketBook-Touch-Lux-3-display-ctp.patch similarity index 96% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun5i-Add-PocketBook-Touch-Lux-3-display-ctp-support.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0024-ARM-dts-sun5i-Add-PocketBook-Touch-Lux-3-display-ctp.patch index b36dcc70b..8fc0a9b56 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun5i-Add-PocketBook-Touch-Lux-3-display-ctp-support.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0024-ARM-dts-sun5i-Add-PocketBook-Touch-Lux-3-display-ctp.patch @@ -1,4 +1,4 @@ -From 65ab846a1feda2dcedb84b393bee71fa34593c4f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 23 Feb 2020 01:23:10 +0100 Subject: ARM: dts: sun5i: Add PocketBook Touch Lux 3 display/ctp support @@ -7,11 +7,11 @@ Add support for display and touchscreen via out-of-tree drivers. Signed-off-by: Ondrej Jirman --- - .../sun5i-a13-pocketbook-touch-lux-3.dts | 105 +++++++++++++++++- + arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-touch-lux-3.dts | 105 +++++++++- 1 file changed, 103 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-touch-lux-3.dts b/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-touch-lux-3.dts -index d60407772e5d..db28ab621804 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-touch-lux-3.dts +++ b/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-touch-lux-3.dts @@ -62,6 +62,11 @@ key-left { @@ -181,5 +181,5 @@ index d60407772e5d..db28ab621804 100644 status = "okay"; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun5i-a13-pocketbook-touch-lux-3-Add-RTC-clock-cells.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0025-ARM-dts-sun5i-a13-pocketbook-touch-lux-3-Add-RTC-clo.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun5i-a13-pocketbook-touch-lux-3-Add-RTC-clock-cells.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0025-ARM-dts-sun5i-a13-pocketbook-touch-lux-3-Add-RTC-clo.patch index a43790239..5890efdd5 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun5i-a13-pocketbook-touch-lux-3-Add-RTC-clock-cells.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pb-6.18/0025-ARM-dts-sun5i-a13-pocketbook-touch-lux-3-Add-RTC-clo.patch @@ -1,4 +1,4 @@ -From 3204bd45b054653cd8c9b5691aea86359822a753 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Thu, 25 Jun 2020 01:57:27 +0200 Subject: ARM: dts: sun5i-a13-pocketbook-touch-lux-3: Add RTC clock-cells @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-touch-lux-3.dts b/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-touch-lux-3.dts -index db28ab621804..ee81db68e546 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-touch-lux-3.dts +++ b/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-touch-lux-3.dts @@ -132,6 +132,7 @@ &i2c1 { @@ -23,5 +23,5 @@ index db28ab621804..ee81db68e546 100644 // hacky PMIC driver for eInk display -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-pinetab-add-front-camera.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0001-arm64-dts-allwinner-a64-pinetab-add-front-camera.patch similarity index 93% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-pinetab-add-front-camera.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0001-arm64-dts-allwinner-a64-pinetab-add-front-camera.patch index 4b2c950a6..d305993da 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-allwinner-a64-pinetab-add-front-camera.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0001-arm64-dts-allwinner-a64-pinetab-add-front-camera.patch @@ -1,14 +1,14 @@ -From bfbed3e6926704dccb61277ec991afff33b84628 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 17 Nov 2020 01:06:30 +0100 Subject: arm64: dts: allwinner: a64: pinetab: add front camera --- - .../boot/dts/allwinner/sun50i-a64-pinetab.dts | 50 ++++++++++++++++--- + arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts | 50 ++++++++-- 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts -index f5fb1ee32dad..50a0e1916743 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts @@ -55,12 +55,35 @@ i2c-csi { @@ -95,5 +95,5 @@ index f5fb1ee32dad..50a0e1916743 100644 }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-allwinner-dts-a64-enable-K101-IM2BYL02-panel-for-PineTab.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0002-arm64-allwinner-dts-a64-enable-K101-IM2BYL02-panel-f.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-allwinner-dts-a64-enable-K101-IM2BYL02-panel-for-PineTab.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0002-arm64-allwinner-dts-a64-enable-K101-IM2BYL02-panel-f.patch index 1fee153c9..0bd6540df 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-allwinner-dts-a64-enable-K101-IM2BYL02-panel-for-PineTab.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0002-arm64-allwinner-dts-a64-enable-K101-IM2BYL02-panel-f.patch @@ -1,4 +1,4 @@ -From c0add6f072c443e3cdf2ce1387a5da46c82e6399 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Mon, 20 Jul 2020 01:11:34 +0800 Subject: arm64: allwinner: dts: a64: enable K101-IM2BYL02 panel for PineTab @@ -11,7 +11,7 @@ Signed-off-by: Icenowy Zheng 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts -index 50a0e1916743..6056c965baf6 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts @@ -200,12 +200,10 @@ &dsi { @@ -31,5 +31,5 @@ index 50a0e1916743..6056c965baf6 100644 }; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinetab-Name-sound-card-PineTab.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0003-arm64-dts-sun50i-a64-pinetab-Name-sound-card-PineTab.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinetab-Name-sound-card-PineTab.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0003-arm64-dts-sun50i-a64-pinetab-Name-sound-card-PineTab.patch index 5c93a7333..14c94f7ac 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinetab-Name-sound-card-PineTab.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0003-arm64-dts-sun50i-a64-pinetab-Name-sound-card-PineTab.patch @@ -1,4 +1,4 @@ -From 3fb6768c3303c9a8bb0465cca521c0977fe02c92 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 18 Feb 2024 17:38:00 +0100 Subject: arm64: dts: sun50i-a64-pinetab: Name sound card PineTab @@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts -index 6056c965baf6..b7ab7d28914e 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts @@ -475,6 +475,7 @@ hdmi_out_con: endpoint { @@ -24,5 +24,5 @@ index 6056c965baf6..b7ab7d28914e 100644 simple-audio-card,widgets = "Microphone", "Internal Microphone Left", "Microphone", "Internal Microphone Right", -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinetab-Add-accelerometer.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0004-arm64-dts-sun50i-a64-pinetab-Add-accelerometer.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinetab-Add-accelerometer.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0004-arm64-dts-sun50i-a64-pinetab-Add-accelerometer.patch index b9d00e0dd..1d7465b57 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinetab-Add-accelerometer.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0004-arm64-dts-sun50i-a64-pinetab-Add-accelerometer.patch @@ -1,4 +1,4 @@ -From c3ebe28518e3178406d7b112db9b1475355975f3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 18 Feb 2024 17:39:58 +0100 Subject: arm64: dts: sun50i-a64-pinetab: Add accelerometer @@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts -index b7ab7d28914e..8c91ed7083d7 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts @@ -237,7 +237,15 @@ &i2c0_pins { @@ -34,5 +34,5 @@ index b7ab7d28914e..8c91ed7083d7 100644 &lradc { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinetab-enable-RTL8723CS-bluetooth.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0005-arm64-dts-sun50i-a64-pinetab-enable-RTL8723CS-blueto.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinetab-enable-RTL8723CS-bluetooth.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0005-arm64-dts-sun50i-a64-pinetab-enable-RTL8723CS-blueto.patch index 95c0a9853..b20edd53a 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinetab-enable-RTL8723CS-bluetooth.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pinetab-6.18/0005-arm64-dts-sun50i-a64-pinetab-enable-RTL8723CS-blueto.patch @@ -1,4 +1,4 @@ -From 3b4036339ed5ffeb92f907d0b47b736bf5b12637 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Sun, 14 Apr 2019 23:46:47 +0800 Subject: arm64: dts: sun50i-a64-pinetab: enable RTL8723CS bluetooth @@ -11,11 +11,11 @@ Enable the bluetooth in the device tree. Signed-off-by: Icenowy Zheng --- - .../boot/dts/allwinner/sun50i-a64-pinetab.dts | 14 ++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts | 14 ++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts -index 8c91ed7083d7..419fe19b4a6f 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts @@ -511,6 +511,20 @@ &uart0 { @@ -40,5 +40,5 @@ index 8c91ed7083d7..419fe19b4a6f 100644 dr_mode = "otg"; status = "okay"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-front-back-cameras.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0001-arm64-dts-sun50i-a64-pinephone-Add-front-back-camera.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-front-back-cameras.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0001-arm64-dts-sun50i-a64-pinephone-Add-front-back-camera.patch index 91be91cf0..d86a12961 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-front-back-cameras.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0001-arm64-dts-sun50i-a64-pinephone-Add-front-back-camera.patch @@ -1,4 +1,4 @@ -From a9b433c7c17a1a0e308fe3364a79f54ab640569c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Wed, 8 Apr 2020 14:13:08 +0200 Subject: arm64: dts: sun50i-a64-pinephone: Add front/back cameras @@ -8,11 +8,11 @@ for both. Signed-off-by: Ondrej Jirman --- - .../dts/allwinner/sun50i-a64-pinephone.dtsi | 89 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi | 89 ++++++++++ 1 file changed, 89 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 4bc6c1ef2cde..5d55c6f82352 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -36,6 +36,15 @@ chosen { @@ -126,5 +126,5 @@ index 4bc6c1ef2cde..5d55c6f82352 100644 status = "okay"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-Type-C-support-for-all-PP-va.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0002-arm64-dts-sun50i-a64-pinephone-Add-Type-C-support-fo.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-Type-C-support-for-all-PP-va.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0002-arm64-dts-sun50i-a64-pinephone-Add-Type-C-support-fo.patch index 74f79d181..10ae9184d 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-Type-C-support-for-all-PP-va.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0002-arm64-dts-sun50i-a64-pinephone-Add-Type-C-support-fo.patch @@ -1,4 +1,4 @@ -From 82c1ef311dfa48e730d927ae71322bfee0430545 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Wed, 8 Jul 2020 00:58:16 +0200 Subject: arm64: dts: sun50i-a64-pinephone: Add Type-C support for all PP @@ -10,14 +10,14 @@ of 1.0 and 1.1 boards with one DTS. No need for more subvariants. Signed-off-by: Ondrej Jirman --- - .../allwinner/sun50i-a64-pinephone-1.0.dts | 86 +++++++++++++++++++ - .../allwinner/sun50i-a64-pinephone-1.1.dts | 86 +++++++++++++++++++ - .../allwinner/sun50i-a64-pinephone-1.2.dts | 60 +++++++++++++ - .../dts/allwinner/sun50i-a64-pinephone.dtsi | 68 ++++++++++++++- + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts | 86 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts | 86 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts | 60 +++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi | 68 +++++++- 4 files changed, 299 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts -index 219f720b8b7d..498ae493d176 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts @@ -8,6 +8,92 @@ @@ -114,7 +114,7 @@ index 219f720b8b7d..498ae493d176 100644 &codec_analog { diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts -index 723af64a9cee..73275308f484 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts @@ -8,6 +8,20 @@ @@ -219,10 +219,10 @@ index 723af64a9cee..73275308f484 100644 + }; +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts -index 4e7e237cb46a..40127186606f 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts -@@ -48,7 +48,67 @@ &mmc1 { +@@ -52,7 +52,67 @@ &mmc1 { mmc-pwrseq = <&wifi_pwrseq>; }; @@ -291,7 +291,7 @@ index 4e7e237cb46a..40127186606f 100644 + }; +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 5d55c6f82352..e8f6c016e1b3 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -10,6 +10,7 @@ @@ -412,5 +412,5 @@ index 5d55c6f82352..e8f6c016e1b3 100644 }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-modem-power-manager.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0003-arm64-dts-sun50i-a64-pinephone-Add-modem-power-manag.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-modem-power-manager.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0003-arm64-dts-sun50i-a64-pinephone-Add-modem-power-manag.patch index d3d9e5756..db967acfb 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-modem-power-manager.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0003-arm64-dts-sun50i-a64-pinephone-Add-modem-power-manag.patch @@ -1,4 +1,4 @@ -From a02549f60d913332f50fad6f2c5907169633ab5d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Wed, 8 Jul 2020 01:00:48 +0200 Subject: arm64: dts: sun50i-a64-pinephone: Add modem power manager @@ -8,13 +8,13 @@ sequence. Add a power manager to manage the modem power. Signed-off-by: Ondrej Jirman --- - .../allwinner/sun50i-a64-pinephone-1.0.dts | 22 ++++++++++++++++++ - .../allwinner/sun50i-a64-pinephone-1.1.dts | 23 +++++++++++++++++++ - .../allwinner/sun50i-a64-pinephone-1.2.dts | 23 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts | 22 +++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts | 23 ++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts | 23 ++++++++++ 3 files changed, 68 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts -index 498ae493d176..ff01e2be26e7 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts @@ -86,6 +86,28 @@ ®_drivevbus { @@ -47,7 +47,7 @@ index 498ae493d176..ff01e2be26e7 100644 usb-role-switch; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts -index 73275308f484..93dc8512fe45 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts @@ -114,6 +114,29 @@ &sgm3140 { @@ -81,10 +81,10 @@ index 73275308f484..93dc8512fe45 100644 usb-role-switch; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts -index 40127186606f..5e988230e6e4 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts -@@ -103,6 +103,29 @@ &sgm3140 { +@@ -107,6 +107,29 @@ &sgm3140 { flash-gpios = <&pio 2 3 GPIO_ACTIVE_HIGH>; /* PC3 */ }; @@ -115,5 +115,5 @@ index 40127186606f..5e988230e6e4 100644 usb-role-switch; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Fix-BH-modem-manager-behavior.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0004-arm64-dts-sun50i-a64-pinephone-Fix-BH-modem-manager-.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Fix-BH-modem-manager-behavior.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0004-arm64-dts-sun50i-a64-pinephone-Fix-BH-modem-manager-.patch index 3cbc09133..2f5892ae3 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Fix-BH-modem-manager-behavior.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0004-arm64-dts-sun50i-a64-pinephone-Fix-BH-modem-manager-.patch @@ -1,4 +1,4 @@ -From 6945687a57dff96300080ec1edb2df467f376050 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Wed, 5 Aug 2020 11:19:01 +0200 Subject: arm64: dts: sun50i-a64-pinephone: Fix BH modem manager behavior @@ -10,7 +10,7 @@ work reliably. Just treat 1.1 as if it was 1.0, and ignore the STATUS. 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts -index 93dc8512fe45..d67f31ef529e 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts @@ -123,8 +123,8 @@ modem { @@ -25,5 +25,5 @@ index 93dc8512fe45..d67f31ef529e 100644 sleep-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ wakeup-gpios = <&pio 1 2 GPIO_ACTIVE_HIGH>; /* PB2-RI */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-detailed-OCV-to-capactiy-con.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0005-arm64-dts-sun50i-a64-pinephone-Add-detailed-OCV-to-c.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-detailed-OCV-to-capactiy-con.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0005-arm64-dts-sun50i-a64-pinephone-Add-detailed-OCV-to-c.patch index a0dccfe5f..0a67678b5 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-detailed-OCV-to-capactiy-con.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0005-arm64-dts-sun50i-a64-pinephone-Add-detailed-OCV-to-c.patch @@ -1,4 +1,4 @@ -From 15ef8921384b272e193a44812ec8f84eb982ce2a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 28 Sep 2020 04:35:13 +0200 Subject: arm64: dts: sun50i-a64-pinephone: Add detailed OCV to capactiy @@ -10,11 +10,11 @@ limits are enforced. It also allows for more precise capacity reporting Signed-off-by: Ondrej Jirman --- - .../dts/allwinner/sun50i-a64-pinephone.dtsi | 151 ++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi | 151 ++++++++++ 1 file changed, 151 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index e8f6c016e1b3..13213a3704a1 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -28,6 +28,156 @@ backlight: backlight { @@ -183,5 +183,5 @@ index e8f6c016e1b3..13213a3704a1 100644 ®_aldo1 { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Shorten-post-power-on-delay-on-m.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0006-arm64-dts-sun50i-a64-pinephone-Shorten-post-power-on.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Shorten-post-power-on-delay-on-m.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0006-arm64-dts-sun50i-a64-pinephone-Shorten-post-power-on.patch index 5f193ef66..676e6867f 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Shorten-post-power-on-delay-on-m.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0006-arm64-dts-sun50i-a64-pinephone-Shorten-post-power-on.patch @@ -1,4 +1,4 @@ -From b241ef1dff821a0915ac1345a27256ce913a3937 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Thu, 6 Feb 2020 04:58:32 +0100 Subject: arm64: dts: sun50i-a64-pinephone: Shorten post-power-on-delay on mmcs @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 3 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 13213a3704a1..91312b0ab896 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -574,6 +574,7 @@ &mmc0 { @@ -39,5 +39,5 @@ index 13213a3704a1..91312b0ab896 100644 }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Bluetooth-audio.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0007-arm64-dts-sun50i-a64-pinephone-Add-support-for-Bluet.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Bluetooth-audio.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0007-arm64-dts-sun50i-a64-pinephone-Add-support-for-Bluet.patch index 190e4c923..d576570b3 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Bluetooth-audio.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0007-arm64-dts-sun50i-a64-pinephone-Add-support-for-Bluet.patch @@ -1,4 +1,4 @@ -From f16fd80bf929f431bb28d9adf059db5acd058c69 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Thu, 6 Feb 2020 23:49:27 -0600 Subject: arm64: dts: sun50i-a64-pinephone: Add support for Bluetooth audio @@ -17,7 +17,7 @@ Signed-off-by: Samuel Holland 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 91312b0ab896..4f471e80dcd8 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -181,6 +181,7 @@ bat: battery { @@ -29,5 +29,5 @@ index 91312b0ab896..4f471e80dcd8 100644 chosen { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Enable-internal-HMIC-bias.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0008-arm64-dts-sun50i-a64-pinephone-Enable-internal-HMIC-.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Enable-internal-HMIC-bias.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0008-arm64-dts-sun50i-a64-pinephone-Enable-internal-HMIC-.patch index 8a0c8ecc7..2e8852300 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Enable-internal-HMIC-bias.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0008-arm64-dts-sun50i-a64-pinephone-Enable-internal-HMIC-.patch @@ -1,4 +1,4 @@ -From dcdcb612a1bb9a614bbddaf099b7866851b0786d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Wed, 23 Sep 2020 00:13:54 -0500 Subject: arm64: dts: sun50i-a64-pinephone: Enable internal HMIC bias @@ -13,7 +13,7 @@ Signed-off-by: Samuel Holland 1 file changed, 4 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts -index ff01e2be26e7..8f6ea6b06aa9 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts @@ -126,3 +126,7 @@ &sgm3140 { @@ -25,5 +25,5 @@ index ff01e2be26e7..8f6ea6b06aa9 100644 + allwinner,internal-bias-resistor; +}; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-modem-audio.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0009-arm64-dts-sun50i-a64-pinephone-Add-support-for-modem.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-modem-audio.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0009-arm64-dts-sun50i-a64-pinephone-Add-support-for-modem.patch index 5fe196d26..67a2102b6 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-modem-audio.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0009-arm64-dts-sun50i-a64-pinephone-Add-support-for-modem.patch @@ -1,4 +1,4 @@ -From d33975afbcf46a53258f1ed2f4f5602d7b1ccfaa Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Wed, 5 Feb 2020 23:14:27 -0600 Subject: arm64: dts: sun50i-a64-pinephone: Add support for modem audio @@ -13,11 +13,11 @@ which corresponds to a slot width of 32 bits. Signed-off-by: Samuel Holland --- - .../dts/allwinner/sun50i-a64-pinephone.dtsi | 25 ++++++++++++++++++- + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi | 25 +++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 4f471e80dcd8..76e55a0e415a 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -188,6 +188,12 @@ chosen { @@ -67,5 +67,5 @@ index 4f471e80dcd8..76e55a0e415a 100644 format = "dsp_a"; frame-master = <&link2_codec>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Bump-I2C-frequency-to-400kHz.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0010-arm64-dts-sun50i-a64-pinephone-Bump-I2C-frequency-to.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Bump-I2C-frequency-to-400kHz.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0010-arm64-dts-sun50i-a64-pinephone-Bump-I2C-frequency-to.patch index 93ad2b020..9dcefeae6 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Bump-I2C-frequency-to-400kHz.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0010-arm64-dts-sun50i-a64-pinephone-Bump-I2C-frequency-to.patch @@ -1,4 +1,4 @@ -From a1398167dbe8f451aaf5331159806738863cb988 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 30 Nov 2020 06:14:07 +0100 Subject: arm64: dts: sun50i-a64-pinephone: Bump I2C frequency to 400kHz @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 76e55a0e415a..c2746a21b021 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -478,6 +478,7 @@ ov5640_ep: endpoint { @@ -31,5 +31,5 @@ index 76e55a0e415a..c2746a21b021 100644 /* Alternative magnetometer */ af8133j: magnetometer@1c { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-interrupt-pin-for-WiFi.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0011-arm64-dts-sun50i-a64-pinephone-Add-interrupt-pin-for.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-interrupt-pin-for-WiFi.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0011-arm64-dts-sun50i-a64-pinephone-Add-interrupt-pin-for.patch index 35db85a03..634b2cff1 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-interrupt-pin-for-WiFi.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0011-arm64-dts-sun50i-a64-pinephone-Add-interrupt-pin-for.patch @@ -1,4 +1,4 @@ -From e0c585577e066959d3749845aefc89c44b857165 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 17 Jan 2021 23:06:03 +0100 Subject: arm64: dts: sun50i-a64-pinephone: Add interrupt pin for WiFi @@ -9,7 +9,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index c2746a21b021..3885a1fd3916 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -599,6 +599,8 @@ &mmc1 { @@ -22,5 +22,5 @@ index c2746a21b021..3885a1fd3916 100644 }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Power-off-the-touch-controller-i.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0012-arm64-dts-sun50i-a64-pinephone-Power-off-the-touch-c.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Power-off-the-touch-controller-i.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0012-arm64-dts-sun50i-a64-pinephone-Power-off-the-touch-c.patch index 45abea0dd..08c4c8562 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Power-off-the-touch-controller-i.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0012-arm64-dts-sun50i-a64-pinephone-Power-off-the-touch-c.patch @@ -1,4 +1,4 @@ -From 97a40516954459a0b55a9c49c3130910be5c6b10 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 25 Apr 2021 03:17:39 +0200 Subject: arm64: dts: sun50i-a64-pinephone: Power off the touch controller in @@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 3885a1fd3916..f3b1c0e5493f 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -491,6 +491,7 @@ touchscreen@5d { @@ -24,5 +24,5 @@ index 3885a1fd3916..f3b1c0e5493f 100644 }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Don-t-make-lradc-keys-a-wakeup-s.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0013-arm64-dts-sun50i-a64-pinephone-Don-t-make-lradc-keys.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Don-t-make-lradc-keys-a-wakeup-s.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0013-arm64-dts-sun50i-a64-pinephone-Don-t-make-lradc-keys.patch index 91724230a..11274a491 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Don-t-make-lradc-keys-a-wakeup-s.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0013-arm64-dts-sun50i-a64-pinephone-Don-t-make-lradc-keys.patch @@ -1,4 +1,4 @@ -From a987a03decda46c52dbcc0e399ca2349d48f6b97 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 26 Apr 2021 01:31:27 +0200 Subject: arm64: dts: sun50i-a64-pinephone: Don't make lradc keys a wakeup @@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index f3b1c0e5493f..97c2f5956ef5 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -558,7 +558,7 @@ &i2s2 { @@ -25,5 +25,5 @@ index f3b1c0e5493f..97c2f5956ef5 100644 button-200 { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Set-minimum-backlight-duty-cycle.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0014-arm64-dts-sun50i-a64-pinephone-Set-minimum-backlight.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Set-minimum-backlight-duty-cycle.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0014-arm64-dts-sun50i-a64-pinephone-Set-minimum-backlight.patch index 376d55e82..92f19a672 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Set-minimum-backlight-duty-cycle.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0014-arm64-dts-sun50i-a64-pinephone-Set-minimum-backlight.patch @@ -1,4 +1,4 @@ -From 5fb3c2c424a0c02e59943fba68dc9448de0f7f10 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 7 Jun 2021 20:23:52 +0200 Subject: arm64: dts: sun50i-a64-pinephone: Set minimum backlight duty cycle to @@ -9,12 +9,12 @@ functionality in the pwm_bl driver. Signed-off-by: Ondrej Jirman --- - .../dts/allwinner/sun50i-a64-pinephone-1.1.dts | 16 +--------------- - .../dts/allwinner/sun50i-a64-pinephone-1.2.dts | 17 +---------------- + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts | 16 +-------- + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts | 17 +--------- 2 files changed, 2 insertions(+), 31 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts -index d67f31ef529e..63ceae07a0e0 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts @@ -26,21 +26,7 @@ &axp803 { @@ -41,10 +41,10 @@ index d67f31ef529e..63ceae07a0e0 100644 &codec_analog { diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts -index 5e988230e6e4..d28a23e98232 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts -@@ -17,22 +17,7 @@ wifi_pwrseq: wifi-pwrseq { +@@ -21,22 +21,7 @@ &axp803 { &backlight { power-supply = <®_ldo_io0>; @@ -69,5 +69,5 @@ index 5e988230e6e4..d28a23e98232 100644 &lis3mdl { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-supply-for-i2c-bus-to-anx768.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0015-arm64-dts-sun50i-a64-pinephone-Add-supply-for-i2c-bu.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-supply-for-i2c-bus-to-anx768.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0015-arm64-dts-sun50i-a64-pinephone-Add-supply-for-i2c-bu.patch index e795ae6e4..68b9bc978 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-supply-for-i2c-bus-to-anx768.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0015-arm64-dts-sun50i-a64-pinephone-Add-supply-for-i2c-bu.patch @@ -1,4 +1,4 @@ -From 360891b201c9534abc7441aca1db3eb3aeaeea3f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 18 Oct 2021 17:41:25 +0200 Subject: arm64: dts: sun50i-a64-pinephone: Add supply for i2c bus to anx7688 @@ -14,7 +14,7 @@ Signed-off-by: Ondrej Jirman 3 files changed, 3 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts -index 8f6ea6b06aa9..cfb9518e057f 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts @@ -43,6 +43,7 @@ hdmi-bridge@28 { @@ -26,7 +26,7 @@ index 8f6ea6b06aa9..cfb9518e057f 100644 hdmi_vt-supply = <®_dldo1>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts -index 63ceae07a0e0..35cb92e3b5f1 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts @@ -52,6 +52,7 @@ hdmi-bridge@28 { @@ -38,10 +38,10 @@ index 63ceae07a0e0..35cb92e3b5f1 100644 hdmi_vt-supply = <®_dldo1>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts -index d28a23e98232..aeb5c69fe51d 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts -@@ -51,6 +51,7 @@ hdmi-bridge@28 { +@@ -55,6 +55,7 @@ hdmi-bridge@28 { avdd18-supply = <®_ldo_io1>; dvdd18-supply = <®_ldo_io1>; avdd33-supply = <®_dcdc1>; @@ -50,5 +50,5 @@ index d28a23e98232..aeb5c69fe51d 100644 hdmi_vt-supply = <®_dldo1>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Workaround-broken-HDMI-HPD-signa.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0016-arm64-dts-sun50i-a64-pinephone-Workaround-broken-HDM.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Workaround-broken-HDMI-HPD-signa.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0016-arm64-dts-sun50i-a64-pinephone-Workaround-broken-HDM.patch index 87cfe62bc..efd89dd55 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Workaround-broken-HDMI-HPD-signa.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0016-arm64-dts-sun50i-a64-pinephone-Workaround-broken-HDM.patch @@ -1,4 +1,4 @@ -From 472d4b36112e4463498f165982d47ef15c36be28 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 26 Oct 2021 01:25:46 +0200 Subject: arm64: dts: sun50i-a64-pinephone: Workaround broken HDMI HPD signal @@ -17,7 +17,7 @@ Signed-off-by: Ondrej Jirman 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts -index cfb9518e057f..0530881d8401 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.0.dts @@ -25,7 +25,7 @@ &axp803 { @@ -38,7 +38,7 @@ index cfb9518e057f..0530881d8401 100644 + extcon = <&anx7688 0>; +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts -index 35cb92e3b5f1..053e4add9973 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts @@ -34,7 +34,7 @@ &codec_analog { @@ -59,10 +59,10 @@ index 35cb92e3b5f1..053e4add9973 100644 + extcon = <&anx7688 0>; +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts -index aeb5c69fe51d..c4e3547e02e9 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts -@@ -34,7 +34,7 @@ &mmc1 { +@@ -38,7 +38,7 @@ &mmc1 { }; &i2c0 { @@ -71,7 +71,7 @@ index aeb5c69fe51d..c4e3547e02e9 100644 compatible = "analogix,anx7688"; reg = <0x28>; -@@ -121,3 +121,7 @@ usb0_drd_sw: endpoint { +@@ -125,3 +125,7 @@ usb0_drd_sw: endpoint { }; }; }; @@ -80,5 +80,5 @@ index aeb5c69fe51d..c4e3547e02e9 100644 + extcon = <&anx7688 0>; +}; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinephone-keyboa.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0017-arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinep.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinephone-keyboa.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0017-arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinep.patch index 29bfdbf4d..c36a66cbc 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinephone-keyboa.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0017-arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinep.patch @@ -1,4 +1,4 @@ -From 1df14f80a2234d5d78d556d7de6dd5357350401e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 21 Jan 2022 23:28:48 +0100 Subject: arm64: dts: sun50i-a64-pinephone: Add support for Pinephone keyboard @@ -8,11 +8,11 @@ the device tree. Signed-off-by: Ondrej Jirman --- - .../dts/allwinner/sun50i-a64-pinephone.dtsi | 136 ++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi | 136 ++++++++++ 1 file changed, 136 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 97c2f5956ef5..0124635431d5 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -178,6 +178,122 @@ bat: battery { @@ -166,5 +166,5 @@ index 97c2f5956ef5..0124635431d5 100644 &i2s2 { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Enable-Pinephone-Keyboard-power-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0018-arm64-dts-sun50i-a64-pinephone-Enable-Pinephone-Keyb.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Enable-Pinephone-Keyboard-power-.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0018-arm64-dts-sun50i-a64-pinephone-Enable-Pinephone-Keyb.patch index 5cfe42b31..c2fdb11ee 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Enable-Pinephone-Keyboard-power-.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0018-arm64-dts-sun50i-a64-pinephone-Enable-Pinephone-Keyb.patch @@ -1,4 +1,4 @@ -From 058f37ec620528d6d4ebc11aba6d0b65694185fb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 16 Apr 2022 02:12:06 +0200 Subject: arm64: dts: sun50i-a64-pinephone: Enable Pinephone Keyboard power @@ -10,7 +10,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 9 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 0124635431d5..7de884adadb1 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -434,6 +434,15 @@ vibrator { @@ -30,5 +30,5 @@ index 0124635431d5..7de884adadb1 100644 &codec { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0019-arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinep.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0019-arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinep.patch new file mode 100644 index 000000000..c1cc45979 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0019-arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinep.patch @@ -0,0 +1,40 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Thu, 10 Nov 2022 20:11:10 +0100 +Subject: arm64: dts: sun50i-a64-pinephone: Add support for Pinephone 1.2 beta + +Beta versions uses a different magnetometer chip. + +Signed-off-by: Ondrej Jirman +--- + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2b.dts | 19 ++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2b.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2b.dts +new file mode 100644 +index 000000000000..111111111111 +--- /dev/null ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2b.dts +@@ -0,0 +1,19 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++// Copyright (C) 2020 Ondrej Jirman ++ ++/dts-v1/; ++ ++#include "sun50i-a64-pinephone-1.2.dts" ++ ++/ { ++ model = "Pine64 PinePhone (1.2b)"; ++ compatible = "pine64,pinephone-1.2b", "pine64,pinephone", "allwinner,sun50i-a64"; ++}; ++ ++&lis3mdl { ++ status = "disabled"; ++}; ++ ++&af8133j { ++ status = "okay"; ++}; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-power-supply-to-stk3311.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0020-arm64-dts-sun50i-a64-pinephone-Add-power-supply-to-s.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-power-supply-to-stk3311.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0020-arm64-dts-sun50i-a64-pinephone-Add-power-supply-to-s.patch index 59fd29de1..1333e1da9 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-power-supply-to-stk3311.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0020-arm64-dts-sun50i-a64-pinephone-Add-power-supply-to-s.patch @@ -1,4 +1,4 @@ -From 4b1c8532a7fbfc7e2b3e42fa41ccd45b31bfd8e3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 20 May 2023 16:58:11 +0200 Subject: arm64: dts: sun50i-a64-pinephone: Add power supply to stk3311 @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 7de884adadb1..7d02c43cef05 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -656,6 +656,7 @@ light-sensor@48 { @@ -23,5 +23,5 @@ index 7de884adadb1..7d02c43cef05 100644 /* Accelerometer/gyroscope */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-reboot-mode-driver.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0021-arm64-dts-sun50i-a64-pinephone-Add-reboot-mode-drive.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-reboot-mode-driver.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0021-arm64-dts-sun50i-a64-pinephone-Add-reboot-mode-drive.patch index 24ca9d113..90352e62e 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Add-reboot-mode-driver.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0021-arm64-dts-sun50i-a64-pinephone-Add-reboot-mode-drive.patch @@ -1,4 +1,4 @@ -From 308f56b99b313484b257e4d574b45f305d20c29c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 15 Feb 2021 17:45:13 +0100 Subject: arm64: dts: sun50i-a64-pinephone: Add reboot mode driver @@ -17,11 +17,11 @@ Call reboot with cmd of LINUX_REBOOT_CMD_RESTART2 and arg: Signed-off-by: Ondrej Jirman --- - .../dts/allwinner/sun50i-a64-pinephone.dtsi | 37 +++++++++++++++++++ + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi | 37 ++++++++++ 1 file changed, 37 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 7d02c43cef05..aeb282eba4b5 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -423,6 +423,34 @@ sgm3140_flash: led { @@ -76,5 +76,5 @@ index 7d02c43cef05..aeb282eba4b5 100644 status = "okay"; simple-audio-card,name = "PinePhone"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Use-newer-jack-detection-impleme.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0022-arm64-dts-sun50i-a64-pinephone-Use-newer-jack-detect.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Use-newer-jack-detection-impleme.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0022-arm64-dts-sun50i-a64-pinephone-Use-newer-jack-detect.patch index d78ad6dc5..e85dbc157 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-pinephone-Use-newer-jack-detection-impleme.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0022-arm64-dts-sun50i-a64-pinephone-Use-newer-jack-detect.patch @@ -1,4 +1,4 @@ -From f1a9b4f7e3a451514b09daa50b43494f8f86612c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 23 Feb 2024 01:53:14 +0100 Subject: arm64: dts: sun50i-a64-pinephone: Use newer jack detection @@ -10,7 +10,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index aeb282eba4b5..e7e90e5baff4 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -476,6 +476,7 @@ keyboard-power { @@ -31,5 +31,5 @@ index aeb282eba4b5..e7e90e5baff4 100644 "Microphone", "Internal Microphone", "Headphone", "Headphone Jack", -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-Define-orientation-and-rotation-for-PinePhone-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0023-arm64-dts-sun50i-Define-orientation-and-rotation-for.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-Define-orientation-and-rotation-for-PinePhone-.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0023-arm64-dts-sun50i-Define-orientation-and-rotation-for.patch index 1bbf0e58d..9d949235e 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-Define-orientation-and-rotation-for-PinePhone-.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0023-arm64-dts-sun50i-Define-orientation-and-rotation-for.patch @@ -1,4 +1,4 @@ -From 9159b591ce223a9b432e31410c522d653f5b059d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Arnav Singh Date: Mon, 6 May 2024 16:36:04 -0700 Subject: arm64: dts: sun50i: Define orientation and rotation for PinePhone @@ -13,7 +13,7 @@ Signed-off-by: Arnav Singh 1 file changed, 3 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index e7e90e5baff4..1a57720c25ef 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -617,6 +617,9 @@ ov5640: rear-camera@4c { @@ -27,5 +27,5 @@ index e7e90e5baff4..1a57720c25ef 100644 ov5640_ep: endpoint { remote-endpoint = <&csi_ov5640_ep>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/2-arm64-dts-sun50i-Define-orientation-and-rotation-for-PinePhone-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0024-arm64-dts-sun50i-Define-orientation-and-rotation-for.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/2-arm64-dts-sun50i-Define-orientation-and-rotation-for-PinePhone-.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0024-arm64-dts-sun50i-Define-orientation-and-rotation-for.patch index e3b1bbdc7..73ef1794a 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/2-arm64-dts-sun50i-Define-orientation-and-rotation-for-PinePhone-.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0024-arm64-dts-sun50i-Define-orientation-and-rotation-for.patch @@ -1,4 +1,4 @@ -From babd7ba10901306332153cf26d6b97700c3a0630 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Arnav Singh Date: Mon, 6 May 2024 16:36:06 -0700 Subject: arm64: dts: sun50i: Define orientation and rotation for PinePhone @@ -13,7 +13,7 @@ Signed-off-by: Arnav Singh 1 file changed, 3 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index 1a57720c25ef..f0f1367c5868 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -593,6 +593,9 @@ gc2145: front-camera@3c { @@ -27,5 +27,5 @@ index 1a57720c25ef..f0f1367c5868 100644 gc2145_ep: endpoint { remote-endpoint = <&csi_gc2145_ep>; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50-a64-pinephone-Define-jack-pins-in-DT.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0025-arm64-dts-sun50-a64-pinephone-Define-jack-pins-in-DT.patch similarity index 89% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50-a64-pinephone-Define-jack-pins-in-DT.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0025-arm64-dts-sun50-a64-pinephone-Define-jack-pins-in-DT.patch index 171313a45..9645597e1 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50-a64-pinephone-Define-jack-pins-in-DT.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0025-arm64-dts-sun50-a64-pinephone-Define-jack-pins-in-DT.patch @@ -1,4 +1,4 @@ -From a5b7326c857524e90c52998545ba7f6fb572bca0 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 14 May 2024 10:47:05 +0200 Subject: arm64: dts: sun50-a64-pinephone: Define jack pins in DT @@ -11,7 +11,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 4 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi -index f0f1367c5868..d502c1392b8e 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi @@ -999,6 +999,10 @@ &sound { @@ -26,5 +26,5 @@ index f0f1367c5868..d502c1392b8e 100644 simple-audio-card,dai-link@1 { format = "dsp_a"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0026-arm64-dts-sun50i-a64-pinephone-1.2-Increase-backligh.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0026-arm64-dts-sun50i-a64-pinephone-1.2-Increase-backligh.patch new file mode 100644 index 000000000..ce078c2b8 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pp-6.18/0026-arm64-dts-sun50i-a64-pinephone-1.2-Increase-backligh.patch @@ -0,0 +1,35 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Arnav Singh +Date: Sun, 30 Nov 2025 10:53:26 -0800 +Subject: arm64: dts: sun50i-a64-pinephone-1.2: Increase backlight + lth-brightness to 12 + +DanctNIX has been carrying a patch to raise this using udev because +10 apparently still turns the screen completely off for some phones. +A user in the postmarketOS tracker also reported this on their 1.2b model. +10 does seem to be enough for my phone, but let's raise it to 12. + +Ref: https://codeberg.org/DanctNIX/danctnix-packages/src/commit/92039e7e20cef4aaa2ce8a92ca69fb12a53e806e/pine64/device-pine64-pinephone/10-pinephone-brightness.rules +Ref: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7441 + +Signed-off-by: Arnav Singh +--- + arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.2.dts +@@ -21,7 +21,7 @@ &axp803 { + + &backlight { + power-supply = <®_ldo_io0>; +- lth-brightness = <10>; ++ lth-brightness = <12>; + }; + + &lis3mdl { +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0001-power-supply-ip5xxx-Report-remaining-battery-capacit.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0001-power-supply-ip5xxx-Report-remaining-battery-capacit.patch new file mode 100644 index 000000000..a79cef794 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0001-power-supply-ip5xxx-Report-remaining-battery-capacit.patch @@ -0,0 +1,126 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Wed, 16 Feb 2022 18:12:56 +0100 +Subject: power: supply: ip5xxx: Report remaining battery capacity + +This uses OCV tables from device tree. Internal resistance value used +by the chip is not very precise. Use the value from DT, too. + +Signed-off-by: Ondrej Jirman +--- + drivers/power/supply/ip5xxx_power.c | 43 ++++++++++ + 1 file changed, 43 insertions(+) + +diff --git a/drivers/power/supply/ip5xxx_power.c b/drivers/power/supply/ip5xxx_power.c +index 111111111111..222222222222 100644 +--- a/drivers/power/supply/ip5xxx_power.c ++++ b/drivers/power/supply/ip5xxx_power.c +@@ -21,6 +21,8 @@ + + struct ip5xxx { + struct regmap *regmap; ++ struct power_supply_battery_info *bat; ++ int r_int; + bool initialized; + struct { + struct { +@@ -256,6 +258,8 @@ static const enum power_supply_property ip5xxx_battery_properties[] = { + POWER_SUPPLY_PROP_STATUS, + POWER_SUPPLY_PROP_CHARGE_TYPE, + POWER_SUPPLY_PROP_HEALTH, ++ POWER_SUPPLY_PROP_CAPACITY, ++ POWER_SUPPLY_PROP_CALIBRATE, + POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN, + POWER_SUPPLY_PROP_VOLTAGE_NOW, + POWER_SUPPLY_PROP_VOLTAGE_OCV, +@@ -417,6 +421,7 @@ static int ip5xxx_battery_get_property(struct power_supply *psy, + struct ip5xxx *ip5xxx = power_supply_get_drvdata(psy); + int raw, ret, vmax; + unsigned int rval; ++ union power_supply_propval cur, vol; + + ret = ip5xxx_initialize(psy); + if (ret) +@@ -432,6 +437,23 @@ static int ip5xxx_battery_get_property(struct power_supply *psy, + case POWER_SUPPLY_PROP_HEALTH: + return ip5xxx_battery_get_health(ip5xxx, &val->intval); + ++ case POWER_SUPPLY_PROP_CAPACITY: ++ ret = ip5xxx_battery_get_property(psy, POWER_SUPPLY_PROP_VOLTAGE_NOW, &vol); ++ if (ret) ++ return ret; ++ ++ ret = ip5xxx_battery_get_property(psy, POWER_SUPPLY_PROP_CURRENT_NOW, &cur); ++ if (ret) ++ return ret; ++ ++ ret = power_supply_batinfo_ocv2cap(ip5xxx->bat, ++ vol.intval - cur.intval * ip5xxx->r_int / 1000, 20); ++ if (ret < 0) ++ return ret; ++ ++ val->intval = ret; ++ return 0; ++ + case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: + return ip5xxx_battery_get_voltage_max(ip5xxx, &val->intval); + +@@ -491,6 +513,10 @@ static int ip5xxx_battery_get_property(struct power_supply *psy, + val->intval = vmax + 14000 * 3; + return 0; + ++ case POWER_SUPPLY_PROP_CALIBRATE: ++ val->intval = ip5xxx->r_int; ++ return 0; ++ + default: + return -EINVAL; + } +@@ -577,6 +603,12 @@ static int ip5xxx_battery_set_property(struct power_supply *psy, + rval = (val->intval - vmax) / 14000; + return ip5xxx_write(ip5xxx, ip5xxx->regs.charger.const_volt_sel, rval); + ++ case POWER_SUPPLY_PROP_CALIBRATE: ++ if (val->intval < 0 || val->intval > 1000) ++ return -EINVAL; ++ ip5xxx->r_int = val->intval; ++ return 0; ++ + default: + return -EINVAL; + } +@@ -587,6 +619,7 @@ static int ip5xxx_battery_property_is_writeable(struct power_supply *psy, + { + return psp == POWER_SUPPLY_PROP_STATUS || + psp == POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN || ++ psp == POWER_SUPPLY_PROP_CALIBRATE || + psp == POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT || + psp == POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE; + } +@@ -833,6 +866,7 @@ static int ip5xxx_power_probe(struct i2c_client *client) + struct device *dev = &client->dev; + struct power_supply *psy; + struct ip5xxx *ip5xxx; ++ int ret; + + ip5xxx = devm_kzalloc(dev, sizeof(*ip5xxx), GFP_KERNEL); + if (!ip5xxx) +@@ -856,6 +890,15 @@ static int ip5xxx_power_probe(struct i2c_client *client) + if (IS_ERR(psy)) + return PTR_ERR(psy); + ++ ret = power_supply_get_battery_info(psy, &ip5xxx->bat); ++ if (ret) ++ return dev_err_probe(dev, ret, "Failed to get battery info\n"); ++ ++ if (ip5xxx->bat->factory_internal_resistance_uohm >= 0) ++ ip5xxx->r_int = ip5xxx->bat->factory_internal_resistance_uohm / 1000; ++ else ++ ip5xxx->r_int = 120; ++ + return 0; + } + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0002-power-supply-ip5xxx-Modify-initial-configuration.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0002-power-supply-ip5xxx-Modify-initial-configuration.patch new file mode 100644 index 000000000..265b27ed0 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0002-power-supply-ip5xxx-Modify-initial-configuration.patch @@ -0,0 +1,77 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 2 Apr 2022 03:15:45 +0200 +Subject: power: supply: ip5xxx: Modify initial configuration + +- double press to power off +- disable auto-power on under load + +Signed-off-by: Ondrej Jirman +--- + drivers/power/supply/ip5xxx_power.c | 23 +++++++--- + 1 file changed, 17 insertions(+), 6 deletions(-) + +diff --git a/drivers/power/supply/ip5xxx_power.c b/drivers/power/supply/ip5xxx_power.c +index 111111111111..222222222222 100644 +--- a/drivers/power/supply/ip5xxx_power.c ++++ b/drivers/power/supply/ip5xxx_power.c +@@ -205,21 +205,32 @@ static int ip5xxx_initialize(struct power_supply *psy) + if (ip5xxx->initialized) + return 0; + ++ /* ++ * Disable flashlight feature. ++ */ ++ ret = ip5xxx_write(ip5xxx, ip5xxx->regs.wled.enable, 0); ++ if (ret) ++ return ret; ++ ++ ret = ip5xxx_write(ip5xxx, ip5xxx->regs.wled.detect_en, 0); ++ if (ret) ++ return ret; ++ + /* + * Disable shutdown under light load. +- * Enable power on when under load. ++ * Disable power on when under load. + */ + if (ip5xxx->regs.boost.light_load_shutdown.enable) { + ret = ip5xxx_write(ip5xxx, ip5xxx->regs.boost.light_load_shutdown.enable, 0); + if (ret) + return ret; + } +- ret = ip5xxx_write(ip5xxx, ip5xxx->regs.boost.load_powerup_en, 1); ++ ret = ip5xxx_write(ip5xxx, ip5xxx->regs.boost.load_powerup_en, 0); + if (ret) + return ret; + + /* +- * Enable shutdown after a long button press (as configured below). ++ * Enable shutdown after a double press (as configured below). + */ + ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.shdn_enable, 1); + if (ret) +@@ -234,17 +245,17 @@ static int ip5xxx_initialize(struct power_supply *psy) + + /* + * Enable the NTC. +- * Configure the button for two presses => LED, long press => shutdown. ++ * Configure the button for two presses => shutdown, long press => LED. + */ + if (ip5xxx->regs.battery.ntc_dis) { + ret = ip5xxx_write(ip5xxx, ip5xxx->regs.battery.ntc_dis, 0); + if (ret) + return ret; + } +- ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.wled_mode, 1); ++ ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.wled_mode, 0); + if (ret) + return ret; +- ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.shdn_mode, 1); ++ ret = ip5xxx_write(ip5xxx, ip5xxx->regs.btn.shdn_mode, 0); + if (ret) + return ret; + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0003-power-supply-ip5xxx-Add-boost-status-property.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0003-power-supply-ip5xxx-Add-boost-status-property.patch new file mode 100644 index 000000000..5abd9ad8d --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0003-power-supply-ip5xxx-Add-boost-status-property.patch @@ -0,0 +1,93 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 2 Apr 2022 03:17:34 +0200 +Subject: power: supply: ip5xxx: Add boost status property + +Boost can be enabled, but actually off. Real status is reported by +POWER_SUPPLY_PROP_PRESENT property. + +Signed-off-by: Ondrej Jirman +--- + drivers/power/supply/ip5xxx_power.c | 17 +++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/drivers/power/supply/ip5xxx_power.c b/drivers/power/supply/ip5xxx_power.c +index 111111111111..222222222222 100644 +--- a/drivers/power/supply/ip5xxx_power.c ++++ b/drivers/power/supply/ip5xxx_power.c +@@ -42,6 +42,8 @@ struct ip5xxx { + struct regmap_field *vin_overvolt; + } charger; + struct { ++ /* Boost converter status */ ++ struct regmap_field *status; + /* Boost converter enable */ + struct regmap_field *enable; + struct { +@@ -125,6 +127,7 @@ struct ip5xxx_regfield_config { + const struct reg_field charger_chg_end; + const struct reg_field charger_timeout; + const struct reg_field charger_vin_overvolt; ++ const struct reg_field boost_status; + const struct reg_field boost_enable; + const struct reg_field boost_llshdn_enable; + const struct reg_field boost_llshdn_i_limit; +@@ -647,6 +650,7 @@ static const struct power_supply_desc ip5xxx_battery_desc = { + + static const enum power_supply_property ip5xxx_boost_properties[] = { + POWER_SUPPLY_PROP_ONLINE, ++ POWER_SUPPLY_PROP_PRESENT, + POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN, + }; + +@@ -671,6 +675,14 @@ static int ip5xxx_boost_get_property(struct power_supply *psy, + val->intval = !!rval; + return 0; + ++ case POWER_SUPPLY_PROP_PRESENT: ++ ret = ip5xxx_read(ip5xxx, ip5xxx->regs.boost.status, &rval); ++ if (ret) ++ return ret; ++ ++ val->intval = !!rval; ++ return 0; ++ + case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN: + ret = ip5xxx_read(ip5xxx, ip5xxx->regs.boost.undervolt_limit, &rval); + if (ret) +@@ -714,7 +726,7 @@ static int ip5xxx_boost_set_property(struct power_supply *psy, + static int ip5xxx_boost_property_is_writeable(struct power_supply *psy, + enum power_supply_property psp) + { +- return true; ++ return psp != POWER_SUPPLY_PROP_PRESENT; + } + + static const struct power_supply_desc ip5xxx_boost_desc = { +@@ -741,6 +753,7 @@ static struct ip5xxx_regfield_config ip51xx_fields = { + .charger_chg_end = REG_FIELD(0x71, 3, 3), + .charger_timeout = REG_FIELD(0x71, 0, 2), + .charger_vin_overvolt = REG_FIELD(0x72, 5, 5), ++ .boost_status = REG_FIELD(0x70, 2, 2), + .boost_enable = REG_FIELD(0x01, 2, 2), + .boost_llshdn_enable = REG_FIELD(0x02, 1, 1), + .boost_llshdn_i_limit = REG_FIELD(0x0c, 3, 7), +@@ -781,6 +794,7 @@ static struct ip5xxx_regfield_config ip5306_fields = { + .charger_chg_end = REG_FIELD(0x71, 3, 3), + .charger_timeout = REG_FIELD_UNSUPPORTED, + .charger_vin_overvolt = REG_FIELD_UNSUPPORTED, ++ .boost_status = REG_FIELD_UNSUPPORTED, + .boost_enable = REG_FIELD(0x00, 5, 5), + .boost_llshdn_enable = REG_FIELD_UNSUPPORTED, + .boost_llshdn_i_limit = REG_FIELD_UNSUPPORTED, +@@ -837,6 +851,7 @@ static void ip5xxx_setup_regs(struct device *dev, struct ip5xxx *ip5xxx, + ip5xxx_setup_reg(charger_timeout, charger.timeout); + ip5xxx_setup_reg(charger_vin_overvolt, charger.vin_overvolt); + ip5xxx_setup_reg(boost_enable, boost.enable); ++ ip5xxx_setup_reg(boost_status, boost.status); + ip5xxx_setup_reg(boost_llshdn_enable, boost.light_load_shutdown.enable); + ip5xxx_setup_reg(boost_llshdn_i_limit, boost.light_load_shutdown.i_limit); + ip5xxx_setup_reg(boost_load_powerup_en, boost.load_powerup_en); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0004-power-supply-ip5xxx-Add-ip5xxx-usb-supply.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0004-power-supply-ip5xxx-Add-ip5xxx-usb-supply.patch new file mode 100644 index 000000000..2f3e8f453 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0004-power-supply-ip5xxx-Add-ip5xxx-usb-supply.patch @@ -0,0 +1,117 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 2 Apr 2022 03:19:36 +0200 +Subject: power: supply: ip5xxx: Add ip5xxx-usb supply + +This supply represents presnece of the USB power supply on VIN. + +Signed-off-by: Ondrej Jirman +--- + drivers/power/supply/ip5xxx_power.c | 49 ++++++++++ + 1 file changed, 49 insertions(+) + +diff --git a/drivers/power/supply/ip5xxx_power.c b/drivers/power/supply/ip5xxx_power.c +index 111111111111..222222222222 100644 +--- a/drivers/power/supply/ip5xxx_power.c ++++ b/drivers/power/supply/ip5xxx_power.c +@@ -40,6 +40,8 @@ struct ip5xxx { + struct regmap_field *timeout; + /* Overvoltage limit */ + struct regmap_field *vin_overvolt; ++ /* VIN present */ ++ struct regmap_field *vin_present; + } charger; + struct { + /* Boost converter status */ +@@ -127,6 +129,7 @@ struct ip5xxx_regfield_config { + const struct reg_field charger_chg_end; + const struct reg_field charger_timeout; + const struct reg_field charger_vin_overvolt; ++ const struct reg_field charger_vin_present; + const struct reg_field boost_status; + const struct reg_field boost_enable; + const struct reg_field boost_llshdn_enable; +@@ -739,6 +742,45 @@ static const struct power_supply_desc ip5xxx_boost_desc = { + .property_is_writeable = ip5xxx_boost_property_is_writeable, + }; + ++static const enum power_supply_property ip5xxx_usb_properties[] = { ++ POWER_SUPPLY_PROP_PRESENT, ++}; ++ ++static int ip5xxx_usb_get_property(struct power_supply *psy, ++ enum power_supply_property psp, ++ union power_supply_propval *val) ++{ ++ struct ip5xxx *ip5xxx = power_supply_get_drvdata(psy); ++ unsigned int rval; ++ int ret; ++ ++ ret = ip5xxx_initialize(psy); ++ if (ret) ++ return ret; ++ ++ switch (psp) { ++ case POWER_SUPPLY_PROP_PRESENT: ++ ret = ip5xxx_read(ip5xxx, ip5xxx->regs.charger.vin_present, &rval); ++ if (ret) ++ return ret; ++ ++ val->intval = !!rval; ++ return 0; ++ ++ default: ++ return -EINVAL; ++ } ++} ++ ++static const struct power_supply_desc ip5xxx_usb_desc = { ++ .name = "ip5xxx-usb", ++ .type = POWER_SUPPLY_TYPE_USB, ++ .properties = ip5xxx_usb_properties, ++ .num_properties = ARRAY_SIZE(ip5xxx_usb_properties), ++ .get_property = ip5xxx_usb_get_property, ++ .property_is_writeable = ip5xxx_boost_property_is_writeable, ++}; ++ + static const struct regmap_config ip5xxx_regmap_config = { + .reg_bits = 8, + .val_bits = 8, +@@ -753,6 +795,7 @@ static struct ip5xxx_regfield_config ip51xx_fields = { + .charger_chg_end = REG_FIELD(0x71, 3, 3), + .charger_timeout = REG_FIELD(0x71, 0, 2), + .charger_vin_overvolt = REG_FIELD(0x72, 5, 5), ++ .charger_vin_present = REG_FIELD(0x70, 4, 4), + .boost_status = REG_FIELD(0x70, 2, 2), + .boost_enable = REG_FIELD(0x01, 2, 2), + .boost_llshdn_enable = REG_FIELD(0x02, 1, 1), +@@ -794,6 +837,7 @@ static struct ip5xxx_regfield_config ip5306_fields = { + .charger_chg_end = REG_FIELD(0x71, 3, 3), + .charger_timeout = REG_FIELD_UNSUPPORTED, + .charger_vin_overvolt = REG_FIELD_UNSUPPORTED, ++ .charger_vin_present = REG_FIELD_UNSUPPORTED, + .boost_status = REG_FIELD_UNSUPPORTED, + .boost_enable = REG_FIELD(0x00, 5, 5), + .boost_llshdn_enable = REG_FIELD_UNSUPPORTED, +@@ -850,6 +894,7 @@ static void ip5xxx_setup_regs(struct device *dev, struct ip5xxx *ip5xxx, + ip5xxx_setup_reg(charger_chg_end, charger.chg_end); + ip5xxx_setup_reg(charger_timeout, charger.timeout); + ip5xxx_setup_reg(charger_vin_overvolt, charger.vin_overvolt); ++ ip5xxx_setup_reg(charger_vin_present, charger.vin_present); + ip5xxx_setup_reg(boost_enable, boost.enable); + ip5xxx_setup_reg(boost_status, boost.status); + ip5xxx_setup_reg(boost_llshdn_enable, boost.light_load_shutdown.enable); +@@ -916,6 +961,10 @@ static int ip5xxx_power_probe(struct i2c_client *client) + if (IS_ERR(psy)) + return PTR_ERR(psy); + ++ psy = devm_power_supply_register(dev, &ip5xxx_usb_desc, &psy_cfg); ++ if (IS_ERR(psy)) ++ return PTR_ERR(psy); ++ + ret = power_supply_get_battery_info(psy, &ip5xxx->bat); + if (ret) + return dev_err_probe(dev, ret, "Failed to get battery info\n"); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0005-power-supply-ip5xxx-Add-support-for-POWER_SUPPLY_PRO.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0005-power-supply-ip5xxx-Add-support-for-POWER_SUPPLY_PRO.patch new file mode 100644 index 000000000..f58286ad5 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0005-power-supply-ip5xxx-Add-support-for-POWER_SUPPLY_PRO.patch @@ -0,0 +1,90 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sun, 3 Apr 2022 16:03:10 +0200 +Subject: power: supply: ip5xxx: Add support for + POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR + +This property is better for preventing charging, then the status property, +because reading status property should return the actual status, and not +whether the charging is currently inhibited or not. + +System may have charging enabled, but the battery may still be discharging +for a host of reasons. + +Signed-off-by: Ondrej Jirman +--- + drivers/power/supply/ip5xxx_power.c | 30 ++++++++++ + 1 file changed, 30 insertions(+) + +diff --git a/drivers/power/supply/ip5xxx_power.c b/drivers/power/supply/ip5xxx_power.c +index 111111111111..222222222222 100644 +--- a/drivers/power/supply/ip5xxx_power.c ++++ b/drivers/power/supply/ip5xxx_power.c +@@ -274,6 +274,7 @@ static int ip5xxx_initialize(struct power_supply *psy) + static const enum power_supply_property ip5xxx_battery_properties[] = { + POWER_SUPPLY_PROP_STATUS, + POWER_SUPPLY_PROP_CHARGE_TYPE, ++ POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR, + POWER_SUPPLY_PROP_HEALTH, + POWER_SUPPLY_PROP_CAPACITY, + POWER_SUPPLY_PROP_CALIBRATE, +@@ -448,6 +449,18 @@ static int ip5xxx_battery_get_property(struct power_supply *psy, + case POWER_SUPPLY_PROP_STATUS: + return ip5xxx_battery_get_status(ip5xxx, &val->intval); + ++ case POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR: ++ ret = ip5xxx_read(ip5xxx, IP5XXX_SYS_CTL0, &rval); ++ if (ret) ++ return ret; ++ ++ if (rval & IP5XXX_SYS_CTL0_CHARGER_EN) ++ val->intval = POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO; ++ else ++ val->intval = POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE; ++ ++ return 0; ++ + case POWER_SUPPLY_PROP_CHARGE_TYPE: + return ip5xxx_battery_get_charge_type(ip5xxx, &val->intval); + +@@ -605,6 +618,21 @@ static int ip5xxx_battery_set_property(struct power_supply *psy, + } + return ip5xxx_write(ip5xxx, ip5xxx->regs.charger.enable, rval); + ++ case POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR: ++ switch (val->intval) { ++ case POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO: ++ rval = IP5XXX_SYS_CTL0_CHARGER_EN; ++ break; ++ case POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE: ++ rval = 0; ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ return ip5xxx_update_bits(ip5xxx, IP5XXX_SYS_CTL0, ++ IP5XXX_SYS_CTL0_CHARGER_EN, rval); ++ + case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: + return ip5xxx_battery_set_voltage_max(ip5xxx, val->intval); + +@@ -636,6 +664,7 @@ static int ip5xxx_battery_property_is_writeable(struct power_supply *psy, + { + return psp == POWER_SUPPLY_PROP_STATUS || + psp == POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN || ++ psp == POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR || + psp == POWER_SUPPLY_PROP_CALIBRATE || + psp == POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT || + psp == POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE; +@@ -649,6 +678,7 @@ static const struct power_supply_desc ip5xxx_battery_desc = { + .get_property = ip5xxx_battery_get_property, + .set_property = ip5xxx_battery_set_property, + .property_is_writeable = ip5xxx_battery_property_is_writeable, ++ .charge_behaviours = BIT(POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO) | BIT(POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE), + }; + + static const enum power_supply_property ip5xxx_boost_properties[] = { +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0006-power-supply-ip5xxx-Add-support-for-POWER_SUPPLY_PRO.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0006-power-supply-ip5xxx-Add-support-for-POWER_SUPPLY_PRO.patch new file mode 100644 index 000000000..1b898d460 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0006-power-supply-ip5xxx-Add-support-for-POWER_SUPPLY_PRO.patch @@ -0,0 +1,44 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Thu, 10 Nov 2022 20:05:35 +0100 +Subject: power: supply: ip5xxx: Add support for + POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN + +Report total battery capacity. + +Signed-off-by: Ondrej Jirman +--- + drivers/power/supply/ip5xxx_power.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/drivers/power/supply/ip5xxx_power.c b/drivers/power/supply/ip5xxx_power.c +index 111111111111..222222222222 100644 +--- a/drivers/power/supply/ip5xxx_power.c ++++ b/drivers/power/supply/ip5xxx_power.c +@@ -286,6 +286,8 @@ static const enum power_supply_property ip5xxx_battery_properties[] = { + POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE, + POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX, ++ POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN, ++ POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN, + }; + + static int ip5xxx_battery_get_status(struct ip5xxx *ip5xxx, int *val) +@@ -511,6 +513,14 @@ static int ip5xxx_battery_get_property(struct power_supply *psy, + val->intval = DIV_ROUND_CLOSEST(raw * 149197, 200); + return 0; + ++ case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN: ++ val->intval = ip5xxx->bat->energy_full_design_uwh; ++ return 0; ++ ++ case POWER_SUPPLY_PROP_ENERGY_EMPTY_DESIGN: ++ val->intval = 0; ++ return 0; ++ + case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT: + ret = ip5xxx_read(ip5xxx, ip5xxx->regs.charger.const_curr_sel, &rval); + if (ret) +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0007-input-pinephone-keyboard-Allow-disabling-the-keyboar.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0007-input-pinephone-keyboard-Allow-disabling-the-keyboar.patch new file mode 100644 index 000000000..0e7b4cf77 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0007-input-pinephone-keyboard-Allow-disabling-the-keyboar.patch @@ -0,0 +1,40 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Wed, 22 Jun 2022 01:05:43 +0200 +Subject: input: pinephone-keyboard: Allow disabling the keyboard input + +This is useful when the user wants to use a userspace implementation. + +Signed-off-by: Ondrej Jirman +--- + drivers/input/keyboard/pinephone-keyboard.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/drivers/input/keyboard/pinephone-keyboard.c b/drivers/input/keyboard/pinephone-keyboard.c +index 111111111111..222222222222 100644 +--- a/drivers/input/keyboard/pinephone-keyboard.c ++++ b/drivers/input/keyboard/pinephone-keyboard.c +@@ -15,6 +15,10 @@ + #include + #include + ++static bool disable_input; ++module_param(disable_input, bool, S_IRUGO); ++MODULE_PARM_DESC(disable_input, "Disable the keyboard part of the driver"); ++ + #define DRV_NAME "pinephone-keyboard" + + #define PPKB_CRC8_POLYNOMIAL 0x07 +@@ -388,6 +392,9 @@ static int ppkb_probe(struct i2c_client *client) + } + } + ++ if (disable_input) ++ return 0; ++ + crc8_populate_msb(ppkb->crc_table, PPKB_CRC8_POLYNOMIAL); + + ppkb->input = devm_input_allocate_device(dev); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0008-input-pinephone-keyboard-Allow-to-disable-Fn-layer-p.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0008-input-pinephone-keyboard-Allow-to-disable-Fn-layer-p.patch new file mode 100644 index 000000000..0b3d484a7 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0008-input-pinephone-keyboard-Allow-to-disable-Fn-layer-p.patch @@ -0,0 +1,46 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 29 Oct 2022 00:51:19 +0200 +Subject: input: pinephone-keyboard: Allow to disable Fn layer processing + +Sometimes it's more flexible to handle Fn key as additional modifier +that can be configured from userspace. + +Signed-off-by: Ondrej Jirman +--- + drivers/input/keyboard/pinephone-keyboard.c | 12 ++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/drivers/input/keyboard/pinephone-keyboard.c b/drivers/input/keyboard/pinephone-keyboard.c +index 111111111111..222222222222 100644 +--- a/drivers/input/keyboard/pinephone-keyboard.c ++++ b/drivers/input/keyboard/pinephone-keyboard.c +@@ -19,6 +19,10 @@ static bool disable_input; + module_param(disable_input, bool, S_IRUGO); + MODULE_PARM_DESC(disable_input, "Disable the keyboard part of the driver"); + ++static bool disable_fn; ++module_param(disable_fn, bool, S_IRUGO); ++MODULE_PARM_DESC(disable_fn, "Disable the FN layer special handling"); ++ + #define DRV_NAME "pinephone-keyboard" + + #define PPKB_CRC8_POLYNOMIAL 0x07 +@@ -249,6 +253,14 @@ static void ppkb_update(struct i2c_client *client) + if (!(changed & mask)) + continue; + ++ if (disable_fn) { ++ /* The FN layer is a second set of rows. */ ++ code = MATRIX_SCAN_CODE(row, col, row_shift); ++ input_event(ppkb->input, EV_MSC, MSC_SCAN, code); ++ input_report_key(ppkb->input, keymap[code], value); ++ continue; ++ } ++ + /* + * Save off the FN key state when the key was pressed, + * and use that to determine the code during a release. +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0009-input-pinephone-keyboard-Don-t-print-error-when-the-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0009-input-pinephone-keyboard-Don-t-print-error-when-the-.patch new file mode 100644 index 000000000..dd65a5863 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0009-input-pinephone-keyboard-Don-t-print-error-when-the-.patch @@ -0,0 +1,33 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 29 Oct 2022 23:18:38 +0200 +Subject: input: pinephone-keyboard: Don't print error when the keyboard is not + connected + +This is needlessly nosiy for people who don't have KB connected, or +don't own one. + +Signed-off-by: Ondrej Jirman +--- + drivers/input/keyboard/pinephone-keyboard.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/drivers/input/keyboard/pinephone-keyboard.c b/drivers/input/keyboard/pinephone-keyboard.c +index 111111111111..222222222222 100644 +--- a/drivers/input/keyboard/pinephone-keyboard.c ++++ b/drivers/input/keyboard/pinephone-keyboard.c +@@ -353,6 +353,11 @@ static int ppkb_probe(struct i2c_client *client) + ret = i2c_smbus_read_i2c_block_data(client, 0, sizeof(info), info); + if (ret != sizeof(info)) { + error = ret < 0 ? ret : -EIO; ++ if (error == -ENXIO) { ++ dev_info(dev, "Keyboard was not found on the I2C bus, maybe it's disconnected.\n"); ++ return error; ++ } ++ + dev_err(dev, "Failed to read device ID: %d\n", error); + return error; + } +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0010-input-pinephone-keyboard-Wait-a-bit-after-enabling-v.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0010-input-pinephone-keyboard-Wait-a-bit-after-enabling-v.patch new file mode 100644 index 000000000..cdafa12d1 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0010-input-pinephone-keyboard-Wait-a-bit-after-enabling-v.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 26 Nov 2022 15:18:14 +0100 +Subject: input: pinephone-keyboard: Wait a bit after enabling vbus + +In case the MCU was browned out, we want to wait a bit after enabling +VBUS and before probing the MCU over I2C, for the MCU to initialize. +Otherwise it may be possible for the MCU to fail to respond during probe +and for the driver to fail initialization. + +Signed-off-by: Ondrej Jirman +--- + drivers/input/keyboard/pinephone-keyboard.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/input/keyboard/pinephone-keyboard.c b/drivers/input/keyboard/pinephone-keyboard.c +index 111111111111..222222222222 100644 +--- a/drivers/input/keyboard/pinephone-keyboard.c ++++ b/drivers/input/keyboard/pinephone-keyboard.c +@@ -350,6 +350,8 @@ static int ppkb_probe(struct i2c_client *client) + return error; + } + ++ mdelay(100); ++ + ret = i2c_smbus_read_i2c_block_data(client, 0, sizeof(info), info); + if (ret != sizeof(info)) { + error = ret < 0 ? ret : -EIO; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0011-misc-ppkb-manager-Pinephone-Keyboard-power-manager.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0011-misc-ppkb-manager-Pinephone-Keyboard-power-manager.patch new file mode 100644 index 000000000..6e7f4c674 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0011-misc-ppkb-manager-Pinephone-Keyboard-power-manager.patch @@ -0,0 +1,997 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 1 Apr 2022 22:00:11 +0200 +Subject: misc: ppkb-manager: Pinephone Keyboard power manager + +This commit adds support for in-kernel power management of Pinephone +Keyboard for Pinephone and Pinephone Pro. + +Signed-off-by: Ondrej Jirman +--- + drivers/misc/Kconfig | 7 + + drivers/misc/Makefile | 1 + + drivers/misc/ppkb-manager.c | 943 ++++++++++ + 3 files changed, 951 insertions(+) + +diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig +index 111111111111..222222222222 100644 +--- a/drivers/misc/Kconfig ++++ b/drivers/misc/Kconfig +@@ -538,6 +538,13 @@ config NTSYNC + + If unsure, say N. + ++config PPKB_POWER_MANAGER ++ tristate "Power manager for Pinephone keyboard." ++ depends on OF ++ help ++ This driver coordinates Pinephone keyboard power use between Pinephone ++ keyboard battery and Pinephone battery. ++ + config VCPU_STALL_DETECTOR + tristate "Guest vCPU stall detector" + depends on OF && HAS_IOMEM +diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile +index 111111111111..222222222222 100644 +--- a/drivers/misc/Makefile ++++ b/drivers/misc/Makefile +@@ -61,6 +61,7 @@ obj-$(CONFIG_HISI_HIKEY_USB) += hisi_hikey_usb.o + obj-$(CONFIG_NTSYNC) += ntsync.o + obj-$(CONFIG_HI6421V600_IRQ) += hi6421v600-irq.o + obj-$(CONFIG_OPEN_DICE) += open-dice.o ++obj-$(CONFIG_PPKB_POWER_MANAGER)+= ppkb-manager.o + obj-$(CONFIG_GP_PCI1XXXX) += mchp_pci1xxxx/ + obj-$(CONFIG_VCPU_STALL_DETECTOR) += vcpu_stall_detector.o + obj-$(CONFIG_TMR_MANAGER) += xilinx_tmr_manager.o +diff --git a/drivers/misc/ppkb-manager.c b/drivers/misc/ppkb-manager.c +new file mode 100644 +index 000000000000..111111111111 +--- /dev/null ++++ b/drivers/misc/ppkb-manager.c +@@ -0,0 +1,943 @@ ++/* SPDX-License-Identifier: GPL-2.0-only */ ++/* ++ * Pinephone keyboard power manager driver. ++ * ++ * Ondrej Jirman ++ */ ++ ++#define DEBUG ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define DRIVER_NAME "ppkb-power" ++ ++enum { ++ KBPWR_F_DISABLED, ++ KBPWR_F_EMERGENCY_SHUTDOWN, ++ KBPWR_F_BLOCKED, ++}; ++ ++enum { ++ KBPWR_LED_TRIGGER_KB_VOUT_ON, ++ KBPWR_LED_TRIGGER_KB_VIN_PRESENT, ++ KBPWR_LED_TRIGGER_KB_OFFLINE, ++ KBPWR_LED_TRIGGER_CAPACITY, ++ ++ KBPWR_LED_TRIGGER_COUNT, ++}; ++ ++static const char *trig_names[] = { ++ "kbpwr-kb-vout-on", ++ "kbpwr-kb-vin-present", ++ "kbpwr-kb-offline", ++ "kbpwr-capacity", ++}; ++ ++struct kbpwr_status { ++ int kb_cap; // capacity in % (when -1, keyboard charger is ++ // not accessible, and no kb_* properties are valid) ++ int kb_cur; // current + charging, - discharging ++ int kb_vol; // voltage at the battery terminals ++ int kb_vol_ocv; // OCV voltage ++ int kb_chg_behavior; // (writable) kb battery charger auto=0/inhibited=1 ++ int kb_cal; // (writable) battery internal resistance calibration value in mOhm ++ int kb_out; // 5V output enabled/disabled ++ int kb_in; // supply to VIN is connected ++ int kb_max_uwh; // kb battery uWh total capacity ++ ++ int ph_cap; // capacity in % ++ int ph_cur; // current (direction determined by ph_chg_status) ++ int ph_vol; // voltage at the battery terminals ++ int ph_chg_status; // POWER_SUPPLY_STATUS_CHARGING = charging, ++ // other statuses = discharging (use it to ++ // interpret meaning of abs(ph_cur)) ++ int ph_chg_cur_limit; // (writable) max charging current for phone battery ++ int ph_chg_behavior; // (writable) phone charger auto=0/inhibited=1 ++ ++ int ph_inp_present; // phone USB supply input is present ++ int ph_inp_en; // (writable) phone USB supply input is used for powering the phone ++ int ph_inp_limit; // (writable) input current limit on phone's VBUS ++ int ph_max_uwh; // phone battery uWh total capacity ++ ++ ktime_t ts; ++}; ++ ++// constants based on device type ++struct kbpwr_machine { ++ int inp_limit_normal; ++ int inp_limit_mid; ++ int inp_limit_high; ++ int chg_limit_high; ++ int chg_limit_low; ++ bool (*has_prop)(const char* name); ++}; ++ ++struct kbpwr_dev { ++ struct device *dev; ++ struct dentry *debug_root; ++ ++ unsigned long flags[1]; ++ struct mutex lock; ++ ++ struct power_supply *phone_battery; ++ struct power_supply *phone_usb; ++ ++ struct power_supply *kb_battery; ++ struct power_supply *kb_boost; ++ struct power_supply *kb_usb; ++ ++ struct workqueue_struct *wq; ++ struct delayed_work work; ++ ++ struct led_trigger trigger[KBPWR_LED_TRIGGER_COUNT]; ++ ++ struct kbpwr_status last_status; ++ ktime_t ph_low_until; ++ ktime_t shutdown_after; ++ ++ // total state of the battery system ++ int capacity_total_uwh; ++ int capacity_uwh; ++ int capacity_pct; ++ int power_uw; ++ int time_left; ++ ++ // kb rint calibration ++ ktime_t rint_valid_until; ++ int kb_vol_now, kb_cur_now, rint; ++ ++ const struct kbpwr_machine* mach; ++}; ++ ++static bool kbpwr_has_prop_pp(const char* name) ++{ ++ return true; ++} ++ ++static bool kbpwr_has_prop_ppp(const char* name) ++{ ++ return strcmp(name, "ph_inp_en"); ++} ++ ++static const struct kbpwr_machine kbpwr_pp = { ++ .inp_limit_normal = 500000, ++ .inp_limit_mid = 1000000, ++ .inp_limit_high = 1500000, ++ .chg_limit_high = 1200000, ++ .chg_limit_low = 200000, ++ .has_prop = kbpwr_has_prop_pp, ++}; ++ ++static const struct kbpwr_machine kbpwr_ppp = { ++ .inp_limit_normal = 450000, ++ .inp_limit_mid = 850000, ++ .inp_limit_high = 1500000, ++ .chg_limit_high = 1200000, ++ .chg_limit_low = 1000000, ++ .has_prop = kbpwr_has_prop_ppp, ++}; ++ ++static void kbpwr_uevent(struct kbpwr_dev *kbpwr, const char* name) ++{ ++ char *env[] = { ++ "DRIVER=" DRIVER_NAME, ++ NULL, ++ NULL, ++ }; ++ ++ env[1] = kasprintf(GFP_KERNEL, "POWER_EVENT=%s", name); ++ if (!env[1]) ++ return; ++ ++ kobject_uevent_env(&kbpwr->dev->kobj, KOBJ_CHANGE, env); ++ ++ kfree(env[1]); ++} ++ ++#define STATUS_PROP(member, sup, sup_prop) \ ++ { &s->member, #member, kbpwr->sup, sup_prop, }, ++ ++static int kbpwr_snaphost(struct kbpwr_dev *kbpwr, struct kbpwr_status* s) ++{ ++ bool kb_fail = false; ++ int i, j, ret; ++ struct { ++ int *out; ++ const char* name; ++ struct power_supply *psy; ++ enum power_supply_property prop; ++ } props[] = { ++ STATUS_PROP(kb_cap, kb_battery, POWER_SUPPLY_PROP_CAPACITY) ++ STATUS_PROP(kb_cur, kb_battery, POWER_SUPPLY_PROP_CURRENT_NOW) ++ STATUS_PROP(kb_vol, kb_battery, POWER_SUPPLY_PROP_VOLTAGE_NOW) ++ STATUS_PROP(kb_vol_ocv, kb_battery, POWER_SUPPLY_PROP_VOLTAGE_OCV) ++ STATUS_PROP(kb_cal, kb_battery, POWER_SUPPLY_PROP_CALIBRATE) ++ STATUS_PROP(kb_chg_behavior, kb_battery, POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR) ++ STATUS_PROP(kb_max_uwh, kb_battery, POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN) ++ ++ STATUS_PROP(kb_out, kb_boost, POWER_SUPPLY_PROP_ONLINE) ++ ++ STATUS_PROP(kb_in, kb_usb, POWER_SUPPLY_PROP_PRESENT) ++ ++ STATUS_PROP(ph_cap, phone_battery, POWER_SUPPLY_PROP_CAPACITY) ++ STATUS_PROP(ph_cur, phone_battery, POWER_SUPPLY_PROP_CURRENT_NOW) ++ STATUS_PROP(ph_vol, phone_battery, POWER_SUPPLY_PROP_VOLTAGE_NOW) ++ STATUS_PROP(ph_chg_status, phone_battery, POWER_SUPPLY_PROP_STATUS) ++ STATUS_PROP(ph_chg_cur_limit, phone_battery, POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT) ++ STATUS_PROP(ph_chg_behavior, phone_battery, POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR) ++ STATUS_PROP(ph_max_uwh, phone_battery, POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN) ++ ++ STATUS_PROP(ph_inp_present, phone_usb, POWER_SUPPLY_PROP_PRESENT) ++ STATUS_PROP(ph_inp_en, phone_usb, POWER_SUPPLY_PROP_ONLINE) ++ STATUS_PROP(ph_inp_limit, phone_usb, POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT) ++ }; ++ ++ dev_dbg(kbpwr->dev, "snapshot:\n"); ++ ++ for (i = 0; i < ARRAY_SIZE(props); i++) { ++ union power_supply_propval val = {0,}; ++ ++ if (!kbpwr->mach->has_prop(props[i].name)) { ++ *props[i].out = -1; ++ continue; ++ } ++ ++ /* ++ * Skip reading kb_* properties after the first failure. ++ */ ++ if (strstarts(props[i].name, "kb_") && kb_fail) ++ continue; ++ ++ ret = power_supply_get_property(props[i].psy, props[i].prop, &val); ++ if (ret) { ++ /* ++ * Failure to read kb_* properties is expected and ++ * common. When it happens, we clear all the kb_ ++ * properties, so that algorithm behaves as if keyboard ++ * charger is sleeping. ++ */ ++ if (strstarts(props[i].name, "kb_")) { ++ kb_fail = true; ++ for (j = 0; j < ARRAY_SIZE(props); j++) ++ if (strstarts(props[j].name, "kb_")) ++ *props[j].out = -1; ++ continue; ++ } else { ++ /* ++ * Other properties should never fail to read, ++ * so make that a fatal issue. ++ */ ++ dev_err(kbpwr->dev, "Can't read %s\n", props[i].name); ++ return -1; ++ } ++ } ++ ++ *props[i].out = val.intval; ++ ++ dev_dbg(kbpwr->dev, " %s = %d\n", props[i].name, val.intval); ++ } ++ ++ s->ts = ktime_get(); ++ ++ return 0; ++} ++ ++#define UPDATE_PROP(member, sup, sup_prop) \ ++ { &prev->member, &cur->member, #member, kbpwr->sup, sup_prop, }, ++ ++static int kbpwr_update(struct kbpwr_dev *kbpwr, ++ struct kbpwr_status* prev, ++ struct kbpwr_status* cur) ++{ ++ bool updated = false; ++ int i, ret; ++ struct { ++ int *cmp; ++ int *out; ++ const char* name; ++ struct power_supply *psy; ++ enum power_supply_property prop; ++ } props[] = { ++ UPDATE_PROP(kb_chg_behavior, kb_battery, POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR) ++ UPDATE_PROP(kb_cal, kb_battery, POWER_SUPPLY_PROP_CALIBRATE) ++ UPDATE_PROP(ph_chg_cur_limit, phone_battery, POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT) ++ UPDATE_PROP(ph_chg_behavior, phone_battery, POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR) ++ UPDATE_PROP(ph_inp_en, phone_usb, POWER_SUPPLY_PROP_ONLINE) ++ UPDATE_PROP(ph_inp_limit, phone_usb, POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT) ++ }; ++ ++ // check if there are changes ++ for (i = 0; i < ARRAY_SIZE(props); i++) { ++ if (!kbpwr->mach->has_prop(props[i].name)) ++ continue; ++ ++ if (*props[i].out != *props[i].cmp) { ++ dev_dbg(kbpwr->dev, "updating:\n"); ++ break; ++ } ++ } ++ ++ for (i = 0; i < ARRAY_SIZE(props); i++) { ++ union power_supply_propval val = {0,}; ++ ++ if (!kbpwr->mach->has_prop(props[i].name)) ++ continue; ++ ++ if (*props[i].out == *props[i].cmp) ++ continue; ++ ++ val.intval = *props[i].out; ++ ++ /* ++ * Error handling here is "do as much as we can". Any write ++ * issue will hopefully be corrected on the next iteration ++ * of the polling algorithm. ++ */ ++ ret = power_supply_set_property(props[i].psy, props[i].prop, &val); ++ if (ret) { ++ dev_warn(kbpwr->dev, "Can't write %s\n", props[i].name); ++ continue; ++ } ++ ++ updated = true; ++ dev_dbg(kbpwr->dev, " %s = %d\n", props[i].name, val.intval); ++ } ++ ++ if (updated) ++ kbpwr_uevent(kbpwr, "update"); ++ ++ return 0; ++} ++ ++static int kbpwr_handle_critical(struct kbpwr_dev *kbpwr) ++{ ++ kbpwr_uevent(kbpwr, "critical"); ++ ++ if (!kbpwr->shutdown_after) ++ kbpwr->shutdown_after = ktime_add_ms(ktime_get(), 60000); ++ ++ if (ktime_after(ktime_get(), kbpwr->shutdown_after)) { ++ dev_emerg(kbpwr->dev, ++ "critically low capacity reached\n"); ++ ++ //hw_protection_shutdown("Critical capacity", 30000); ++ //set_bit(KBPWR_F_BLOCKED, kbpwr->flags); ++ return true; ++ } ++ ++ return false; ++} ++ ++static void kbpwr_work(struct work_struct *work) ++{ ++ struct kbpwr_dev *kbpwr = container_of(work, struct kbpwr_dev, work.work); ++ unsigned long delay_on, delay_off; ++ struct kbpwr_status cur, upd, prev; ++ int ret; ++ ++ if (test_bit(KBPWR_F_DISABLED, kbpwr->flags)) ++ return; ++ if (test_bit(KBPWR_F_BLOCKED, kbpwr->flags)) ++ return; ++ ++ mutex_lock(&kbpwr->lock); ++ ++ ret = kbpwr_snaphost(kbpwr, &cur); ++ if (ret) ++ goto out_try_later; ++ ++ prev = kbpwr->last_status.ts ? kbpwr->last_status : cur; ++ upd = cur; ++ kbpwr->last_status = cur; ++ ++ /* ++ * We calculate keyboard battery internal resistance based on captured ++ * keyboard current/voltage at two differnt times after the current ++ * changes by a largish degree. ++ */ ++ if (!kbpwr->rint_valid_until || ++ ktime_after(ktime_get(), kbpwr->rint_valid_until)) { ++ kbpwr->kb_vol_now = cur.kb_vol; ++ kbpwr->kb_cur_now = cur.kb_cur; ++ kbpwr->rint_valid_until = ktime_add_ms(ktime_get(), ++ 5 * 60 * 1000); ++ } else { ++ s64 diff_vol = cur.kb_vol - kbpwr->kb_vol_now; ++ s64 diff_cur = cur.kb_cur - kbpwr->kb_cur_now; ++ ++ if (abs(diff_cur) > 150000) { ++ s64 rint = diff_vol * 1000 / diff_cur; ++ if (rint > 30 && rint < 1000) { ++ dev_warn(kbpwr->dev, ++ "calibrating rint=%lld mOhm\n", rint); ++ kbpwr->rint = rint; ++ upd.kb_cal = rint; ++ } ++ ++ kbpwr->kb_vol_now = cur.kb_vol; ++ kbpwr->kb_cur_now = cur.kb_cur; ++ kbpwr->rint_valid_until = ktime_add_ms(ktime_get(), ++ 5 * 60 * 1000); ++ } ++ } ++ ++ /* ++ * The algorithm here tries to ensure that: ++ * ++ * When the power supply is plugged into the keyboard: ++ * ++ * 1) Phone's internal battery is charged as fast as possible ++ * 2) When the internal battery is fully charged, keyboard battery starts charging, while ++ * still supplying enough power to the phone so that internal battery doesn't start ++ * discharging, until both batteries are fully charged. ++ * ++ * When it's unplugged: ++ * ++ * 1) Keyboard battery discharges first, preserving phone battery ++ * as much as possible. ++ * 2) Phone battery starts discharging after the keyboard battery ++ * is emptied. ++ * ++ * There are a few corner cases handled: ++ * ++ * - It's not a great thing to drain the batteries completely, since Pinephone Pro ++ * can't recover from this state gracefully, and keyboard also has some issues ++ * with it, requiring prolonged trickle charging, etc. ++ * - The driver tries to keep some residual charge in both batteries. ++ * - On phone power off, keyboard charger output is turned off, so that: ++ * - Pinephone Pro can be turned off (it can't with voltage present on VBUS) ++ * - Keyboard battery will not keep charging the phone for no reason. ++ * - This is only done when the keyboard battery is not plugged in to a power supply. ++ * - On suspend/resume: ++ * - Phone battery charger and keyboard battery output are turned off. ++ * ++ * LED trigger: ++ * ++ * The driver provides a LED trigger to communicate to the user that keyboard ++ * power button should be pressed to enable the keyboard charger. ++ */ ++ ++ /* check and update the situation */ ++ ++ if (cur.kb_cap < 0) { ++ // keyboard charger is sleeping or no keyboard is detected ++ ++ //XXX: check for lack of keyboard ++ ++ // restore sane defaults (only sensible if phone is in the ++ // keyboard) ++ upd.ph_chg_behavior = POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO; ++ upd.ph_chg_cur_limit = kbpwr->mach->chg_limit_high; ++ upd.ph_inp_limit = kbpwr->mach->inp_limit_normal; ++ } else { ++ // keyboard is connected to the phone ++ bool kb_in_change = cur.kb_in != prev.kb_in; ++ ++ if (cur.kb_in) { ++ // keyboard is connected to USB PSU (we are charging) ++ bool kb_chg, ph_chg; ++ ++ /* ++ * Make ph_low comparison stick for 5 minutes in low ++ * postition, once it crosses the threshold, unless ++ * kb_in just changed. ++ */ ++ bool ph_low = kb_in_change ? false : ktime_before(ktime_get(), kbpwr->ph_low_until); ++ if (!ph_low) { ++ ph_low = cur.ph_cap < 80; ++ if (ph_low) ++ kbpwr->ph_low_until = ktime_add_ms(ktime_get(), 5 * 60000); ++ else ++ kbpwr->ph_low_until = 0; ++ } ++ ++ kb_chg = !ph_low; ++ ph_chg = ph_low || cur.kb_cap > 90; ++ ++ upd.kb_out = 1; ++ upd.ph_inp_en = 1; ++ ++ if (ph_chg) { ++ // charge the phone ++ upd.ph_chg_behavior = POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO; ++ upd.ph_chg_cur_limit = kbpwr->mach->chg_limit_high; ++ upd.ph_inp_limit = kbpwr->mach->inp_limit_high; ++ } else { ++ // supply the phone, but don't charge it ++ upd.ph_chg_behavior = POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE; ++ upd.ph_chg_cur_limit = kbpwr->mach->chg_limit_low; ++ upd.ph_inp_limit = kbpwr->mach->inp_limit_mid; ++ } ++ ++ // charge the keyboard when the KB battery is low or ++ // phone battery is high ++ if (kb_chg) { ++ upd.kb_chg_behavior = POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO; ++ } else { ++ upd.kb_chg_behavior = POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE; ++ } ++ } else { ++ // keyboard is mobile (we're discharging) ++ // ++ // Generally we want to avoid shifting charge between the phone ++ // and keyboard batteries, so we disable the phone charger in this ++ // situation and set high input current limit, so that the phone ++ // is primarily supplied from the keyboard ++ bool kb_low = cur.kb_vol < 3100000; ++ ++ /* ++ * Make ph_low comparison stick for 5 minutes in low ++ * postition, once it crosses the threshold, unless ++ * kb_in just changed. ++ */ ++ bool ph_low = kb_in_change ? false : ktime_before(ktime_get(), kbpwr->ph_low_until); ++ if (!ph_low) { ++ ph_low = cur.ph_cap < 10; ++ if (ph_low) ++ kbpwr->ph_low_until = ktime_add_ms(ktime_get(), 5 * 60000); ++ else ++ kbpwr->ph_low_until = 0; ++ } ++ ++ // kb_out ++ // kb_low ph_low | ph_inp_en ph_chg ++ // 0 0 | 1 0 ++ // 0 1 | 1 1 ++ // 1 1 | 1 1 ++ // 1 0 | 0 0 ++ ++ upd.ph_chg_behavior = POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE; ++ upd.ph_inp_limit = kbpwr->mach->inp_limit_high; ++ upd.ph_inp_en = 1; ++ upd.kb_out = 1; ++ ++ // charge phone battery a little if it's charge is too low (we ++ // need to keep the phone battery somewhat charged at all times, ++ // if possible) ++ if (ph_low) { ++ upd.ph_chg_behavior = POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO; ++ } ++ ++ if (kb_low && !ph_low) { ++ upd.ph_inp_en = 0; ++ upd.kb_out = 0; ++ upd.ph_inp_limit = kbpwr->mach->inp_limit_normal; ++ } ++ } ++ } ++ ++ kbpwr->capacity_total_uwh = cur.ph_max_uwh + ++ (cur.kb_cap >= 0 ? cur.kb_max_uwh : 0); ++ kbpwr->capacity_uwh = cur.ph_max_uwh * cur.ph_cap / 100 + ++ (cur.kb_cap >= 0 ? cur.kb_max_uwh * cur.kb_cap / 100 : 0); ++ kbpwr->capacity_pct = kbpwr->capacity_uwh / ++ (kbpwr->capacity_total_uwh / 100); ++ ++ kbpwr->power_uw = (cur.ph_cur / 1000) * (cur.ph_vol / 1000); ++ if (cur.kb_cap >= 0) ++ kbpwr->power_uw += (cur.kb_cur / 1000) * (cur.kb_vol / 1000); ++ ++ kbpwr->time_left = kbpwr->power_uw > 0 ? ++ kbpwr->capacity_total_uwh - kbpwr->capacity_uwh : ++ kbpwr->capacity_uwh; ++ kbpwr->time_left *= 60; ++ kbpwr->time_left /= abs(kbpwr->power_uw); ++ ++ // critical shutdown handler ++ ++ if (kbpwr->power_uw < 0 && kbpwr->capacity_pct < 5) { ++ if (kbpwr_handle_critical(kbpwr)) ++ goto out_unlock; ++ } else { ++ kbpwr->shutdown_after = 0; ++ } ++ ++ // update LED triggers ++ ++ // capacity ++ if (kbpwr->power_uw > 0) { ++ if (kbpwr->capacity_pct > 95) { ++ delay_on = 500; delay_off = 0; ++ } else { ++ delay_on = delay_off = 500; ++ } ++ } else if (kbpwr->capacity_pct < 5) { ++ delay_on = delay_off = 100; ++ } else if (kbpwr->capacity_pct < 10) { ++ delay_on = 100; delay_off = 400; ++ } else { ++ delay_on = 0; delay_off = 100; ++ } ++ ++ led_trigger_blink(&kbpwr->trigger[KBPWR_LED_TRIGGER_CAPACITY], ++ delay_on, delay_off); ++ ++ led_trigger_event(&kbpwr->trigger[KBPWR_LED_TRIGGER_KB_VOUT_ON], ++ cur.kb_out > 0 ? LED_FULL : LED_OFF); ++ ++ led_trigger_event(&kbpwr->trigger[KBPWR_LED_TRIGGER_KB_VIN_PRESENT], ++ cur.kb_in > 0 ? LED_FULL : LED_OFF); ++ ++ led_trigger_event(&kbpwr->trigger[KBPWR_LED_TRIGGER_KB_OFFLINE], ++ cur.kb_cap < 0 ? LED_FULL : LED_OFF); ++ ++ kbpwr_update(kbpwr, &cur, &upd); ++ kbpwr_uevent(kbpwr, "refresh"); ++ ++out_try_later: ++ queue_delayed_work(kbpwr->wq, &kbpwr->work, msecs_to_jiffies(10000)); ++out_unlock: ++ mutex_unlock(&kbpwr->lock); ++} ++ ++static ssize_t help_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ return scnprintf(buf, PAGE_SIZE, ++ "Pinephone Keyboard Power Manager\n" ++ "================================\n" ++ "disabled - enable/disable the power manager\n" ++ "shutdown - enable/disable emergency shutdown on low capacity\n" ++ "help - this help file\n" ++ ); ++} ++ ++static ssize_t disabled_store(struct device *dev, ++ struct device_attribute *attr, ++ const char *buf, size_t len) ++{ ++ struct kbpwr_dev *kbpwr = platform_get_drvdata(to_platform_device(dev)); ++ bool val; ++ int ret; ++ ++ ret = kstrtobool(buf, &val); ++ if (ret) ++ return ret; ++ ++ if (val) { ++ set_bit(KBPWR_F_DISABLED, kbpwr->flags); ++ cancel_delayed_work_sync(&kbpwr->work); ++ kbpwr->ph_low_until = 0; ++ kbpwr->shutdown_after = 0; ++ } else { ++ clear_bit(KBPWR_F_DISABLED, kbpwr->flags); ++ queue_delayed_work(kbpwr->wq, &kbpwr->work, msecs_to_jiffies(1000)); ++ //XXX: do we want to put the system into some particular state? ++ } ++ ++ return len; ++} ++ ++static ssize_t disabled_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct kbpwr_dev *kbpwr = platform_get_drvdata(to_platform_device(dev)); ++ ++ return scnprintf(buf, PAGE_SIZE, "%d\n", ++ !!test_bit(KBPWR_F_DISABLED, kbpwr->flags)); ++} ++ ++static ssize_t emergency_store(struct device *dev, ++ struct device_attribute *attr, ++ const char *buf, size_t len) ++{ ++ struct kbpwr_dev *kbpwr = platform_get_drvdata(to_platform_device(dev)); ++ bool val; ++ int ret; ++ ++ ret = kstrtobool(buf, &val); ++ if (ret) ++ return ret; ++ ++ if (val) ++ set_bit(KBPWR_F_EMERGENCY_SHUTDOWN, kbpwr->flags); ++ else ++ clear_bit(KBPWR_F_EMERGENCY_SHUTDOWN, kbpwr->flags); ++ ++ return len; ++} ++ ++static ssize_t emergency_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct kbpwr_dev *kbpwr = platform_get_drvdata(to_platform_device(dev)); ++ ++ return scnprintf(buf, PAGE_SIZE, "%d\n", ++ !!test_bit(KBPWR_F_EMERGENCY_SHUTDOWN, kbpwr->flags)); ++} ++ ++static DEVICE_ATTR_RO(help); ++static DEVICE_ATTR_RW(disabled); ++static DEVICE_ATTR_RW(emergency); ++ ++static struct attribute *kbpwr_attrs[] = { ++ &dev_attr_help.attr, ++ &dev_attr_disabled.attr, ++ &dev_attr_emergency.attr, ++ NULL, ++}; ++ ++static const struct attribute_group kbpwr_group = { ++ .attrs = kbpwr_attrs, ++}; ++ ++static void devm_power_supply_put(struct device *dev, void *res) ++{ ++ struct power_supply **psy = res; ++ ++ power_supply_put(*psy); ++} ++ ++static struct power_supply *devm_power_supply_get_by_name(struct device *dev, ++ const char *name) ++{ ++ struct power_supply **ptr, *psy; ++ ++ ptr = devres_alloc(devm_power_supply_put, sizeof(*ptr), GFP_KERNEL); ++ if (!ptr) ++ return ERR_PTR(-ENOMEM); ++ ++ psy = power_supply_get_by_name(name); ++ if (IS_ERR_OR_NULL(psy)) { ++ devres_free(ptr); ++ } else { ++ *ptr = psy; ++ devres_add(dev, ptr); ++ } ++ ++ return psy; ++} ++ ++static int kbpwr_status_show(struct seq_file *s, void *data) ++{ ++ struct kbpwr_dev *kbpwr = s->private; ++ struct kbpwr_status st; ++ ++ mutex_lock(&kbpwr->lock); ++ st = kbpwr->last_status; ++ mutex_unlock(&kbpwr->lock); ++ ++ seq_printf(s, "{\n"); ++ ++#define SHOW_PROP(name) \ ++ seq_printf(s, "\t\"" #name "\": %d,\n", st.name) ++ ++ SHOW_PROP(kb_cap); ++ SHOW_PROP(kb_cur); ++ SHOW_PROP(kb_vol); ++ SHOW_PROP(kb_vol_ocv); ++ SHOW_PROP(kb_chg_behavior); ++ SHOW_PROP(kb_cal); ++ SHOW_PROP(kb_out); ++ SHOW_PROP(kb_in); ++ SHOW_PROP(kb_max_uwh); ++ SHOW_PROP(ph_cap); ++ SHOW_PROP(ph_cur); ++ SHOW_PROP(ph_vol); ++ SHOW_PROP(ph_chg_status); ++ SHOW_PROP(ph_chg_cur_limit); ++ SHOW_PROP(ph_chg_behavior); ++ SHOW_PROP(ph_inp_present); ++ SHOW_PROP(ph_inp_en); ++ SHOW_PROP(ph_inp_limit); ++ SHOW_PROP(ph_max_uwh); ++ ++ seq_printf(s, "\t\"disabled\": %s,\n", ++ test_bit(KBPWR_F_DISABLED, kbpwr->flags) ? "true" : "false"); ++ seq_printf(s, "\t\"blocked\": %s,\n", ++ test_bit(KBPWR_F_BLOCKED, kbpwr->flags) ? "true" : "false"); ++ seq_printf(s, "\t\"emergency_shutdown_enable\": %s,\n", ++ test_bit(KBPWR_F_EMERGENCY_SHUTDOWN, kbpwr->flags) ? "true" : "false"); ++ ++ seq_printf(s, "\t\"capacity_total_uwh\": %d,\n", kbpwr->capacity_total_uwh); ++ seq_printf(s, "\t\"capacity_uwh\": %d,\n", kbpwr->capacity_uwh); ++ seq_printf(s, "\t\"capacity_pct\": %d,\n", kbpwr->capacity_pct); ++ seq_printf(s, "\t\"power_uw\": %d,\n", kbpwr->power_uw); ++ seq_printf(s, "\t\"time_left\": %d,\n", kbpwr->time_left); ++ ++ seq_printf(s, "\t\"ts\": %lld\n", st.ts / 1000000); ++ ++ seq_printf(s, "}\n"); ++ ++ return 0; ++} ++DEFINE_SHOW_ATTRIBUTE(kbpwr_status); ++ ++static int kbpwr_probe(struct platform_device *pdev) ++{ ++ struct device *dev = &pdev->dev; ++ struct device_node *np = dev->of_node; ++ struct kbpwr_dev *kbpwr; ++ int ret, i; ++ ++ kbpwr = devm_kzalloc(dev, sizeof(*kbpwr), GFP_KERNEL); ++ if (!kbpwr) ++ return -ENOMEM; ++ ++ if (of_machine_is_compatible("pine64,pinephone-pro") > 0) { ++ kbpwr->mach = &kbpwr_ppp; ++ } else if (of_machine_is_compatible("pine64,pinephone") > 0) { ++ kbpwr->mach = &kbpwr_pp; ++ } else { ++ return dev_err_probe(dev, -EINVAL, "unsupported machine\n"); ++ } ++ ++ kbpwr->dev = dev; ++ mutex_init(&kbpwr->lock); ++ INIT_DELAYED_WORK(&kbpwr->work, kbpwr_work); ++ platform_set_drvdata(pdev, kbpwr); ++ ++ struct { ++ const char* prop; ++ struct power_supply **psy; ++ } supplies[] = { ++ { "phone-battery", &kbpwr->phone_battery, }, ++ { "phone-usb", &kbpwr->phone_usb, }, ++ { "kb-battery", &kbpwr->kb_battery, }, ++ { "kb-boost", &kbpwr->kb_boost, }, ++ { "kb-usb", &kbpwr->kb_usb, }, ++ }; ++ ++ for (i = 0; i < ARRAY_SIZE(supplies); i++) { ++ const char* prop = supplies[i].prop; ++ struct power_supply** psy = supplies[i].psy; ++ const char* name; ++ ++ ret = of_property_read_string(np, prop, &name); ++ if (ret) ++ return dev_err_probe(dev, ret, "Can't find supply name for %s\n", prop); ++ ++ *psy = devm_power_supply_get_by_name(dev, name); ++ if (IS_ERR_OR_NULL(*psy)) ++ return dev_err_probe(dev, -EPROBE_DEFER, ++ "Couldn't get '%s' power supply\n", name); ++ } ++ ++ ret = devm_device_add_group(dev, &kbpwr_group); ++ if (ret) ++ return ret; ++ ++ for (i = 0; i < KBPWR_LED_TRIGGER_COUNT; i++) { ++ kbpwr->trigger[i].name = trig_names[i]; ++ ++ ret = devm_led_trigger_register(dev, &kbpwr->trigger[i]); ++ if (ret) ++ return dev_err_probe(dev, ret, "failed to register LED trigger %s\n", ++ kbpwr->trigger[i].name); ++ } ++ ++ kbpwr->wq = alloc_ordered_workqueue("ppkb-power-wq", 0); ++ if (!kbpwr->wq) ++ return dev_err_probe(dev, -ENOMEM, "failed to allocate workqueue\n"); ++ ++ kbpwr->debug_root = debugfs_create_dir("kbpwr", NULL); ++ debugfs_create_file("state", 0444, kbpwr->debug_root, kbpwr, ++ &kbpwr_status_fops); ++ ++ dev_info(dev, "Pinephone keyboard power manager ready\n"); ++ ++ set_bit(KBPWR_F_EMERGENCY_SHUTDOWN, kbpwr->flags); ++ if (of_property_read_bool(np, "blocked")) ++ set_bit(KBPWR_F_BLOCKED, kbpwr->flags); ++ ++ queue_delayed_work(kbpwr->wq, &kbpwr->work, msecs_to_jiffies(10000)); ++ ++ return 0; ++} ++ ++static void kbpwr_remove(struct platform_device *pdev) ++{ ++ struct kbpwr_dev *kbpwr = platform_get_drvdata(pdev); ++ ++ cancel_delayed_work_sync(&kbpwr->work); ++ ++ mutex_lock(&kbpwr->lock); ++ //XXX: turn off charging from kb? turn off VOUT if possible ++ mutex_unlock(&kbpwr->lock); ++ ++ destroy_workqueue(kbpwr->wq); ++ ++ debugfs_remove(kbpwr->debug_root); ++} ++ ++static void kbpwr_shutdown(struct platform_device *pdev) ++{ ++ struct kbpwr_dev *kbpwr = platform_get_drvdata(pdev); ++ ++ cancel_delayed_work_sync(&kbpwr->work); ++ ++ mutex_lock(&kbpwr->lock); ++ //XXX: turn off charging from kb? turn off VOUT if possible ++ mutex_unlock(&kbpwr->lock); ++} ++ ++static int __maybe_unused kbpwr_suspend(struct device *dev) ++{ ++ struct kbpwr_dev *kbpwr = dev_get_drvdata(dev); ++ int ret = 0; ++ ++ cancel_delayed_work_sync(&kbpwr->work); ++ ++ mutex_lock(&kbpwr->lock); ++ //XXX: turn off charging from kb? ++ mutex_unlock(&kbpwr->lock); ++ ++ return ret; ++} ++ ++static int __maybe_unused kbpwr_resume(struct device *dev) ++{ ++ struct kbpwr_dev *kbpwr = dev_get_drvdata(dev); ++ int ret = 0; ++ ++ //XXX: during quick suspend/resume cycles the work may never run ++ ++ // schedule update soon ++ queue_delayed_work(kbpwr->wq, &kbpwr->work, msecs_to_jiffies(5000)); ++ ++ return ret; ++} ++ ++static const struct dev_pm_ops kbpwr_pm_ops = { ++ SET_SYSTEM_SLEEP_PM_OPS(kbpwr_suspend, kbpwr_resume) ++}; ++ ++static const struct of_device_id kbpwr_of_match[] = { ++ { .compatible = "megi,pinephone-keyboard-power-manager" }, ++ {}, ++}; ++MODULE_DEVICE_TABLE(of, kbpwr_of_match); ++ ++static struct platform_driver kbpwr_driver = { ++ .probe = kbpwr_probe, ++ .remove = kbpwr_remove, ++ .shutdown = kbpwr_shutdown, ++ .driver = { ++ .name = DRIVER_NAME, ++ .of_match_table = kbpwr_of_match, ++ .pm = &kbpwr_pm_ops, ++ }, ++}; ++ ++module_platform_driver(kbpwr_driver); ++ ++MODULE_DESCRIPTION("Pinephone keyboard power manager"); ++MODULE_AUTHOR("Ondrej Jirman "); ++MODULE_LICENSE("GPL v2"); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0012-misc-ppkb-manager-Remove-BLOCKED-flag.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0012-misc-ppkb-manager-Remove-BLOCKED-flag.patch new file mode 100644 index 000000000..e276d8f49 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0012-misc-ppkb-manager-Remove-BLOCKED-flag.patch @@ -0,0 +1,60 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 9 Dec 2022 21:48:59 +0100 +Subject: misc: ppkb-manager: Remove BLOCKED flag + +Signed-off-by: Ondrej Jirman +--- + drivers/misc/ppkb-manager.c | 8 -------- + 1 file changed, 8 deletions(-) + +diff --git a/drivers/misc/ppkb-manager.c b/drivers/misc/ppkb-manager.c +index 111111111111..222222222222 100644 +--- a/drivers/misc/ppkb-manager.c ++++ b/drivers/misc/ppkb-manager.c +@@ -31,7 +31,6 @@ + enum { + KBPWR_F_DISABLED, + KBPWR_F_EMERGENCY_SHUTDOWN, +- KBPWR_F_BLOCKED, + }; + + enum { +@@ -338,7 +337,6 @@ static int kbpwr_handle_critical(struct kbpwr_dev *kbpwr) + "critically low capacity reached\n"); + + //hw_protection_shutdown("Critical capacity", 30000); +- //set_bit(KBPWR_F_BLOCKED, kbpwr->flags); + return true; + } + +@@ -354,8 +352,6 @@ static void kbpwr_work(struct work_struct *work) + + if (test_bit(KBPWR_F_DISABLED, kbpwr->flags)) + return; +- if (test_bit(KBPWR_F_BLOCKED, kbpwr->flags)) +- return; + + mutex_lock(&kbpwr->lock); + +@@ -761,8 +757,6 @@ static int kbpwr_status_show(struct seq_file *s, void *data) + + seq_printf(s, "\t\"disabled\": %s,\n", + test_bit(KBPWR_F_DISABLED, kbpwr->flags) ? "true" : "false"); +- seq_printf(s, "\t\"blocked\": %s,\n", +- test_bit(KBPWR_F_BLOCKED, kbpwr->flags) ? "true" : "false"); + seq_printf(s, "\t\"emergency_shutdown_enable\": %s,\n", + test_bit(KBPWR_F_EMERGENCY_SHUTDOWN, kbpwr->flags) ? "true" : "false"); + +@@ -854,8 +848,6 @@ static int kbpwr_probe(struct platform_device *pdev) + dev_info(dev, "Pinephone keyboard power manager ready\n"); + + set_bit(KBPWR_F_EMERGENCY_SHUTDOWN, kbpwr->flags); +- if (of_property_read_bool(np, "blocked")) +- set_bit(KBPWR_F_BLOCKED, kbpwr->flags); + + queue_delayed_work(kbpwr->wq, &kbpwr->work, msecs_to_jiffies(10000)); + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0013-misc-ppkb-manager-Disable-ppkb-manager-by-default-ca.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0013-misc-ppkb-manager-Disable-ppkb-manager-by-default-ca.patch new file mode 100644 index 000000000..e9d87f1e1 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0013-misc-ppkb-manager-Disable-ppkb-manager-by-default-ca.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 9 Dec 2022 21:49:26 +0100 +Subject: misc: ppkb-manager: Disable ppkb-manager by default (can be enabled + at runtime) + +Signed-off-by: Ondrej Jirman +--- + drivers/misc/ppkb-manager.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/misc/ppkb-manager.c b/drivers/misc/ppkb-manager.c +index 111111111111..222222222222 100644 +--- a/drivers/misc/ppkb-manager.c ++++ b/drivers/misc/ppkb-manager.c +@@ -847,7 +847,8 @@ static int kbpwr_probe(struct platform_device *pdev) + + dev_info(dev, "Pinephone keyboard power manager ready\n"); + +- set_bit(KBPWR_F_EMERGENCY_SHUTDOWN, kbpwr->flags); ++ //set_bit(KBPWR_F_EMERGENCY_SHUTDOWN, kbpwr->flags); ++ set_bit(KBPWR_F_DISABLED, kbpwr->flags); + + queue_delayed_work(kbpwr->wq, &kbpwr->work, msecs_to_jiffies(10000)); + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0014-misc-ppkb-manager-Show-read-write-error-codes.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0014-misc-ppkb-manager-Show-read-write-error-codes.patch new file mode 100644 index 000000000..f044900e2 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0014-misc-ppkb-manager-Show-read-write-error-codes.patch @@ -0,0 +1,37 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 9 Dec 2022 21:53:51 +0100 +Subject: misc: ppkb-manager: Show read/write error codes + +Signed-off-by: Ondrej Jirman +--- + drivers/misc/ppkb-manager.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/drivers/misc/ppkb-manager.c b/drivers/misc/ppkb-manager.c +index 111111111111..222222222222 100644 +--- a/drivers/misc/ppkb-manager.c ++++ b/drivers/misc/ppkb-manager.c +@@ -243,8 +243,8 @@ static int kbpwr_snaphost(struct kbpwr_dev *kbpwr, struct kbpwr_status* s) + * Other properties should never fail to read, + * so make that a fatal issue. + */ +- dev_err(kbpwr->dev, "Can't read %s\n", props[i].name); +- return -1; ++ dev_err(kbpwr->dev, "Can't read %s (%d)\n", props[i].name, ret); ++ return ret; + } + } + +@@ -311,7 +311,7 @@ static int kbpwr_update(struct kbpwr_dev *kbpwr, + */ + ret = power_supply_set_property(props[i].psy, props[i].prop, &val); + if (ret) { +- dev_warn(kbpwr->dev, "Can't write %s\n", props[i].name); ++ dev_warn(kbpwr->dev, "Can't write %s (%d)\n", props[i].name, ret); + continue; + } + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0015-misc-ppkb-manager-Disable-debug-mode.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0015-misc-ppkb-manager-Disable-debug-mode.patch new file mode 100644 index 000000000..09b4fc99e --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0015-misc-ppkb-manager-Disable-debug-mode.patch @@ -0,0 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 9 Dec 2022 21:54:00 +0100 +Subject: misc: ppkb-manager: Disable debug mode + +Signed-off-by: Ondrej Jirman +--- + drivers/misc/ppkb-manager.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/misc/ppkb-manager.c b/drivers/misc/ppkb-manager.c +index 111111111111..222222222222 100644 +--- a/drivers/misc/ppkb-manager.c ++++ b/drivers/misc/ppkb-manager.c +@@ -5,7 +5,7 @@ + * Ondrej Jirman + */ + +-#define DEBUG ++//#define DEBUG + + #include + #include +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0016-ip5xxx-fix-POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0016-ip5xxx-fix-POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR.patch new file mode 100644 index 000000000..55c45241e --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/ppkb-6.18/0016-ip5xxx-fix-POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR.patch @@ -0,0 +1,49 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 1 Feb 2025 02:08:53 +0100 +Subject: ip5xxx: fix POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR + +--- + drivers/power/supply/ip5xxx_power.c | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/drivers/power/supply/ip5xxx_power.c b/drivers/power/supply/ip5xxx_power.c +index 111111111111..222222222222 100644 +--- a/drivers/power/supply/ip5xxx_power.c ++++ b/drivers/power/supply/ip5xxx_power.c +@@ -452,11 +452,11 @@ static int ip5xxx_battery_get_property(struct power_supply *psy, + return ip5xxx_battery_get_status(ip5xxx, &val->intval); + + case POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR: +- ret = ip5xxx_read(ip5xxx, IP5XXX_SYS_CTL0, &rval); ++ ret = ip5xxx_read(ip5xxx, ip5xxx->regs.charger.enable, &rval); + if (ret) + return ret; + +- if (rval & IP5XXX_SYS_CTL0_CHARGER_EN) ++ if (rval) + val->intval = POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO; + else + val->intval = POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE; +@@ -631,7 +631,7 @@ static int ip5xxx_battery_set_property(struct power_supply *psy, + case POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR: + switch (val->intval) { + case POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO: +- rval = IP5XXX_SYS_CTL0_CHARGER_EN; ++ rval = 1; + break; + case POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE: + rval = 0; +@@ -640,8 +640,7 @@ static int ip5xxx_battery_set_property(struct power_supply *psy, + return -EINVAL; + } + +- return ip5xxx_update_bits(ip5xxx, IP5XXX_SYS_CTL0, +- IP5XXX_SYS_CTL0_CHARGER_EN, rval); ++ return ip5xxx_write(ip5xxx, ip5xxx->regs.charger.enable, rval); + + case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: + return ip5xxx_battery_set_voltage_max(ip5xxx, val->intval); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-power-off-bu.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/private-6.18/0001-Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-p.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-power-off-bu.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/private-6.18/0001-Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-p.patch index 7c777a5bd..db9127e89 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-power-off-bu.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/private-6.18/0001-Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-p.patch @@ -1,4 +1,4 @@ -From 325a2fb637eaac4bee2a6ea78e10040b6b2e7c7d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 18 Aug 2017 13:55:48 +0200 Subject: Make microbuttons on Orange Pi PC and PC 2 work as power off buttons @@ -9,7 +9,7 @@ Subject: Make microbuttons on Orange Pi PC and PC 2 work as power off buttons 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts -index 927fd1bab07d..f5476cdab8a4 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts @@ -91,7 +91,7 @@ gpio-keys { @@ -22,7 +22,7 @@ index 927fd1bab07d..f5476cdab8a4 100644 }; }; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts -index f420acc6f49f..3d16a6efa2a7 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts @@ -60,7 +60,7 @@ gpio-keys { @@ -35,5 +35,5 @@ index f420acc6f49f..3d16a6efa2a7 100644 wakeup-source; }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/Add-support-for-my-private-Sapomat-device.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/private-6.18/0002-Add-support-for-my-private-Sapomat-device.patch similarity index 56% rename from patch/kernel/archive/sunxi-6.16/patches.megous/Add-support-for-my-private-Sapomat-device.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/private-6.18/0002-Add-support-for-my-private-Sapomat-device.patch index e112f5598..fc5e53c49 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/Add-support-for-my-private-Sapomat-device.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/private-6.18/0002-Add-support-for-my-private-Sapomat-device.patch @@ -1,29 +1,15 @@ -From 7bd8ad9c9778bb66afee88678c1a45d44a59be5d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Fri, 18 Aug 2017 13:56:06 +0200 Subject: Add support for my private Sapomat device --- - arch/arm/boot/dts/allwinner/Makefile | 1 + - .../sun8i-h3-orangepi-pc-sapomat.dts | 34 +++++++++++++++++++ - 2 files changed, 35 insertions(+) - create mode 100644 arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc-sapomat.dts + arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc-sapomat.dts | 34 ++++++++++ + 1 file changed, 34 insertions(+) -diff --git a/arch/arm/boot/dts/allwinner/Makefile b/arch/arm/boot/dts/allwinner/Makefile -index d799ad153b37..326ff9c7de72 100644 ---- a/arch/arm/boot/dts/allwinner/Makefile -+++ b/arch/arm/boot/dts/allwinner/Makefile -@@ -240,6 +240,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ - sun8i-h3-orangepi-lite.dtb \ - sun8i-h3-orangepi-one.dtb \ - sun8i-h3-orangepi-pc.dtb \ -+ sun8i-h3-orangepi-pc-sapomat.dtb \ - sun8i-h3-orangepi-pc-plus.dtb \ - sun8i-h3-orangepi-plus.dtb \ - sun8i-h3-orangepi-plus2e.dtb \ diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc-sapomat.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc-sapomat.dts new file mode 100644 -index 000000000000..55c82d5fb63f +index 000000000000..111111111111 --- /dev/null +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc-sapomat.dts @@ -0,0 +1,34 @@ @@ -62,5 +48,5 @@ index 000000000000..55c82d5fb63f + }; +}; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-header-UARTs.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/private-6.18/0003-ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-heade.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-header-UARTs.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/private-6.18/0003-ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-heade.patch index 9bba187e6..35f0ed765 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-header-UARTs.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/private-6.18/0003-ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-heade.patch @@ -1,4 +1,4 @@ -From 251198af980dcd9fe85a78514f114dcf193538c3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 2 Apr 2022 02:24:26 +0200 Subject: ARM: dts: sun8i-h3-orange-pi-one: Enable all gpio header UARTs @@ -8,7 +8,7 @@ Subject: ARM: dts: sun8i-h3-orange-pi-one: Enable all gpio header UARTs 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts -index f5476cdab8a4..64c489e356ce 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts +++ b/arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-one.dts @@ -54,6 +54,9 @@ / { @@ -45,5 +45,5 @@ index f5476cdab8a4..64c489e356ce 100644 &usb_otg { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/mtd-spi-nor-Add-Alliance-memory-support.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/private-6.18/0004-mtd-spi-nor-Add-Alliance-memory-support.patch similarity index 86% rename from patch/kernel/archive/sunxi-6.16/patches.megous/mtd-spi-nor-Add-Alliance-memory-support.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/private-6.18/0004-mtd-spi-nor-Add-Alliance-memory-support.patch index ac53b4d06..5a266386b 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/mtd-spi-nor-Add-Alliance-memory-support.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/private-6.18/0004-mtd-spi-nor-Add-Alliance-memory-support.patch @@ -1,4 +1,4 @@ -From 00467f6c1dc8fff19839cca8909f9fc29cff7f27 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 1 Aug 2023 14:56:33 +0200 Subject: mtd: spi-nor: Add Alliance memory support @@ -8,14 +8,13 @@ Subject: mtd: spi-nor: Add Alliance memory support Signed-off-by: Ondrej Jirman --- drivers/mtd/spi-nor/Makefile | 1 + - drivers/mtd/spi-nor/alliance.c | 24 ++++++++++++++++++++++++ + drivers/mtd/spi-nor/alliance.c | 24 ++++++++++ drivers/mtd/spi-nor/core.c | 1 + drivers/mtd/spi-nor/core.h | 1 + 4 files changed, 27 insertions(+) - create mode 100644 drivers/mtd/spi-nor/alliance.c diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile -index 5dd9c35f6b6f..998876920319 100644 +index 111111111111..222222222222 100644 --- a/drivers/mtd/spi-nor/Makefile +++ b/drivers/mtd/spi-nor/Makefile @@ -1,6 +1,7 @@ @@ -28,7 +27,7 @@ index 5dd9c35f6b6f..998876920319 100644 spi-nor-objs += esmt.o diff --git a/drivers/mtd/spi-nor/alliance.c b/drivers/mtd/spi-nor/alliance.c new file mode 100644 -index 000000000000..f3f03d458a5c +index 000000000000..111111111111 --- /dev/null +++ b/drivers/mtd/spi-nor/alliance.c @@ -0,0 +1,24 @@ @@ -57,7 +56,7 @@ index 000000000000..f3f03d458a5c + .nparts = ARRAY_SIZE(alliance_nor_parts), +}; diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c -index a41f6a725092..80a121cbb07f 100644 +index 111111111111..222222222222 100644 --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c @@ -1940,6 +1940,7 @@ int spi_nor_sr2_bit7_quad_enable(struct spi_nor *nor) @@ -69,7 +68,7 @@ index a41f6a725092..80a121cbb07f 100644 &spi_nor_eon, &spi_nor_esmt, diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h -index ceff412f7d65..fff7ee7c504e 100644 +index 111111111111..222222222222 100644 --- a/drivers/mtd/spi-nor/core.h +++ b/drivers/mtd/spi-nor/core.h @@ -584,6 +584,7 @@ struct sfdp { @@ -81,5 +80,5 @@ index ceff412f7d65..fff7ee7c504e 100644 extern const struct spi_nor_manufacturer spi_nor_eon; extern const struct spi_nor_manufacturer spi_nor_esmt; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0001-arm64-dts-rk3566-pientab2-Use-non-linear-brightness-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0001-arm64-dts-rk3566-pientab2-Use-non-linear-brightness-.patch new file mode 100644 index 000000000..a467b13eb --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0001-arm64-dts-rk3566-pientab2-Use-non-linear-brightness-.patch @@ -0,0 +1,38 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Tue, 30 Jan 2024 16:41:58 +0100 +Subject: arm64: dts: rk3566-pientab2: Use non-linear brightness->PWM duty + cycle curve + +This helps with dumb use of sysfs to control backlight brightness. + +Signed-off-by: Ondrej Jirman +--- + arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi | 11 +++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi b/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi +@@ -44,9 +44,14 @@ button-vol-down { + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&pwm4 0 25000 0>; +- brightness-levels = <20 220>; +- num-interpolated-steps = <200>; +- default-brightness-level = <100>; ++ brightness-levels = ++ <0 250 360 470 580 690 810 949 1110 1294 1502 ++ 1737 1998 2289 2610 2964 3351 3774 4233 4731 ++ 5268 5847 6467 7133 7845 8604 9412 10271 11182 ++ 12146 13164 14239 15374 16568 17822 19140 20521 ++ 21969 23483 25068 26722 28447 30247 32121 34071 ++ 36099 38210 40400 42669 45026 47468 50000>; ++ default-brightness-level = <17>; + power-supply = <&vcc_sys>; + }; + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0002-arm64-dts-rk3566-pinetab2-Add-Type-C-controller-node.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0002-arm64-dts-rk3566-pinetab2-Add-Type-C-controller-node.patch new file mode 100644 index 000000000..dc88bf0fc --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0002-arm64-dts-rk3566-pinetab2-Add-Type-C-controller-node.patch @@ -0,0 +1,113 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Mon, 14 Aug 2023 08:18:59 +0200 +Subject: arm64: dts: rk3566-pinetab2: Add Type-C controller node for USB OTG + port + +Type-C port farthest from the buttons has HUSB Type-C controller connected +to it. Enable the controller. + +Signed-off-by: Ondrej Jirman +--- + arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi | 58 +++++++++- + 1 file changed, 57 insertions(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi b/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi +@@ -561,6 +561,7 @@ charger { + rockchip,resistor-sense-micro-ohms = <10000>; + rockchip,sleep-enter-current-microamp = <300000>; + rockchip,sleep-filter-current-microamp = <100000>; ++ power-supplies = <&usbc0>; + }; + }; + }; +@@ -765,7 +766,7 @@ tp_rst_l_pmuio2: tp-rst-l-pmuio2 { + + usb { + usbcc_int_l: usbcc-int-l { +- rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; ++ rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; + }; + + usb_host_pwren1_h: usb-host-pwren1-h { +@@ -894,8 +895,24 @@ &usb_host0_ohci { + status = "okay"; + }; + ++&usb_host1_ehci { ++ status = "okay"; ++}; ++ ++&usb_host1_ohci { ++ status = "okay"; ++}; ++ ++/* OTG port controller */ + &usb_host0_xhci { ++ usb-role-switch; + status = "okay"; ++ ++ port { ++ usb_host0_xhci_typec_hs: endpoint { ++ remote-endpoint = <&typec_hs_usb_host0_xhci>; ++ }; ++ }; + }; + + &usb_host1_xhci { +@@ -911,6 +928,7 @@ &usb2phy0_host { + status = "okay"; + }; + ++/* OTG port phy */ + &usb2phy0_otg { + status = "okay"; + }; +@@ -947,3 +965,41 @@ vp1_out_dsi0: endpoint@ROCKCHIP_VOP2_EP_MIPI0 { + remote-endpoint = <&dsi0_in_vp1>; + }; + }; ++ ++&i2c0 { ++ usbc0: usb-typec@4e { ++ compatible = "hynetek,husb311"; ++ reg = <0x4e>; ++ interrupt-parent = <&gpio0>; ++ interrupts = ; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&usbcc_int_l>; ++ vbus-supply = <&vbus>; ++ usb-role-switch = <&usb_host0_xhci>; ++ extcon = <&usb2phy0>; ++ ++ connector { ++ compatible = "usb-c-connector"; ++ label = "USB-C"; ++ data-role = "dual"; ++ power-role = "dual"; ++ try-power-role = "source"; ++ op-sink-microwatt = <2500000>; ++ sink-pdos = ; ++ source-pdos = ; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ ++ typec_hs_usb_host0_xhci: endpoint { ++ remote-endpoint = <&usb_host0_xhci_typec_hs>; ++ }; ++ }; ++ }; ++ }; ++ }; ++}; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0003-arm64-dts-rk3566-pinetab2-Re-order-and-use-extcon-br.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0003-arm64-dts-rk3566-pinetab2-Re-order-and-use-extcon-br.patch new file mode 100644 index 000000000..22c467665 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0003-arm64-dts-rk3566-pinetab2-Re-order-and-use-extcon-br.patch @@ -0,0 +1,133 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sun, 8 Oct 2023 12:36:55 +0200 +Subject: arm64: dts: rk3566-pinetab2: Re-order and use extcon bridge + +Use my extcon <-> type-c API adapter. + +Signed-of-by: Ondrej Jirman +--- + arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi | 59 ++++++---- + 1 file changed, 33 insertions(+), 26 deletions(-) + +diff --git a/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi b/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi +@@ -239,6 +239,13 @@ vdd1v2_dvp: regulator-vdd1v2-dvp { + regulator-max-microvolt = <1200000>; + vin-supply = <&vcc_3v3>; + }; ++ ++ typec_extcon_bridge: typec-extcon { ++ compatible = "linux,typec-extcon-bridge"; ++ usb-role-switch; ++ orientation-switch; ++ mode-switch; ++ }; + }; + + &combphy1 { +@@ -887,39 +894,34 @@ &uart2 { + status = "okay"; + }; + +-&usb_host0_ehci { ++&usb2phy0 { + status = "okay"; ++ extcon = <&typec_extcon_bridge>; ++ extcon,ignore-usb; + }; + +-&usb_host0_ohci { ++&usb2phy1 { + status = "okay"; + }; + +-&usb_host1_ehci { +- status = "okay"; +-}; ++/* POGO USB host port */ + +-&usb_host1_ohci { ++&usb_host0_ehci { + status = "okay"; + }; + +-/* OTG port controller */ +-&usb_host0_xhci { +- usb-role-switch; ++&usb_host0_ohci { + status = "okay"; +- +- port { +- usb_host0_xhci_typec_hs: endpoint { +- remote-endpoint = <&typec_hs_usb_host0_xhci>; +- }; +- }; + }; + +-&usb_host1_xhci { ++&usb2phy1_otg { ++ phy-supply = <&vcc5v0_usb_host2>; + status = "okay"; + }; + +-&usb2phy0 { ++/* Top USB3.0 host only port */ ++ ++&usb_host1_xhci { + status = "okay"; + }; + +@@ -928,17 +930,20 @@ &usb2phy0_host { + status = "okay"; + }; + +-/* OTG port phy */ +-&usb2phy0_otg { +- status = "okay"; +-}; ++/* Bottom USB2.0 only OTG port */ + +-&usb2phy1 { ++&usb_host0_xhci { + status = "okay"; ++ extcon = <&typec_extcon_bridge>; ++ ++ port { ++ usb_host0_xhci_typec_hs: endpoint { ++ remote-endpoint = <&typec_hs_usb_host0_xhci>; ++ }; ++ }; + }; + +-&usb2phy1_otg { +- phy-supply = <&vcc5v0_usb_host2>; ++&usb2phy0_otg { + status = "okay"; + }; + +@@ -975,8 +980,8 @@ usbc0: usb-typec@4e { + pinctrl-names = "default"; + pinctrl-0 = <&usbcc_int_l>; + vbus-supply = <&vbus>; +- usb-role-switch = <&usb_host0_xhci>; +- extcon = <&usb2phy0>; ++ extcon = <&typec_extcon_bridge>; ++ usb-role-switch = <&typec_extcon_bridge>; + + connector { + compatible = "usb-c-connector"; +@@ -987,6 +992,8 @@ connector { + op-sink-microwatt = <2500000>; + sink-pdos = ; + source-pdos = ; ++ mode-switch = <&typec_extcon_bridge>; ++ orientation-switch = <&typec_extcon_bridge>; + + ports { + #address-cells = <1>; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0004-usb-tcpci-Add-support-for-extcon-based-input-current.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0004-usb-tcpci-Add-support-for-extcon-based-input-current.patch new file mode 100644 index 000000000..f2e0dc18e --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0004-usb-tcpci-Add-support-for-extcon-based-input-current.patch @@ -0,0 +1,94 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Thu, 7 Sep 2023 21:09:14 +0200 +Subject: usb: tcpci: Add support for extcon based input current limit + determination + +This allows backwards compatibility with DCP/CDP cahrger detection +based on D+/D- USB2.0 pins state. + +Signed-off-by: Ondrej Jirman +--- + drivers/usb/typec/tcpm/tcpci.c | 45 ++++++++++ + 1 file changed, 45 insertions(+) + +diff --git a/drivers/usb/typec/tcpm/tcpci.c b/drivers/usb/typec/tcpm/tcpci.c +index 111111111111..222222222222 100644 +--- a/drivers/usb/typec/tcpm/tcpci.c ++++ b/drivers/usb/typec/tcpm/tcpci.c +@@ -7,6 +7,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -42,6 +43,8 @@ struct tcpci { + + struct tcpc_dev tcpc; + struct tcpci_data *data; ++ ++ struct extcon_dev *extcon; + }; + + struct tcpci_chip { +@@ -829,6 +832,47 @@ static int tcpci_parse_config(struct tcpci *tcpci) + return 0; + } + ++static int tcpci_get_current_limit(struct tcpc_dev *dev) ++{ ++ struct tcpci *tcpci = tcpc_to_tcpci(dev); ++ int current_limit = 0; ++ unsigned long timeout; ++ ++ /* ++ * To avoid cycles in OF dependencies, we get extcon when necessary ++ * outside of probe function. ++ */ ++ if (of_property_read_bool(tcpci->dev->of_node, "extcon") && !tcpci->extcon) { ++ tcpci->extcon = extcon_get_edev_by_phandle(tcpci->dev, 0); ++ if (IS_ERR(tcpci->extcon)) ++ tcpci->extcon = NULL; ++ } ++ ++ if (!tcpci->extcon) ++ return 0; ++ ++ /* ++ * USB2 Charger detection may still be in progress when we get here, ++ * this can take upto 600ms, wait 1000ms max. ++ */ ++ timeout = jiffies + msecs_to_jiffies(1000); ++ do { ++ if (extcon_get_state(tcpci->extcon, EXTCON_CHG_USB_SDP) == 1) ++ current_limit = 500; ++ ++ if (extcon_get_state(tcpci->extcon, EXTCON_CHG_USB_CDP) == 1 || ++ extcon_get_state(tcpci->extcon, EXTCON_CHG_USB_ACA) == 1) ++ current_limit = 1500; ++ ++ if (extcon_get_state(tcpci->extcon, EXTCON_CHG_USB_DCP) == 1) ++ current_limit = 2000; ++ ++ msleep(50); ++ } while (current_limit == 0 && time_before(jiffies, timeout)); ++ ++ return current_limit; ++} ++ + struct tcpci *tcpci_register_port(struct device *dev, struct tcpci_data *data) + { + struct tcpci *tcpci; +@@ -861,6 +905,7 @@ struct tcpci *tcpci_register_port(struct device *dev, struct tcpci_data *data) + tcpci->tcpc.set_partner_usb_comm_capable = tcpci_set_partner_usb_comm_capable; + tcpci->tcpc.cable_comm_capable = tcpci_cable_comm_capable; + tcpci->tcpc.attempt_vconn_swap_discovery = tcpci_attempt_vconn_swap_discovery; ++ tcpci->tcpc.get_current_limit = tcpci_get_current_limit; + + if (tcpci->data->check_contaminant) + tcpci->tcpc.check_contaminant = tcpci_check_contaminant; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0005-arm64-dts-rk3566-pinetab2-Add-DT-nodes-for-besdbg-dr.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0005-arm64-dts-rk3566-pinetab2-Add-DT-nodes-for-besdbg-dr.patch new file mode 100644 index 000000000..0a041c18d --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0005-arm64-dts-rk3566-pinetab2-Add-DT-nodes-for-besdbg-dr.patch @@ -0,0 +1,127 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 22 Mar 2024 00:12:52 +0100 +Subject: arm64: dts: rk3566-pinetab2: Add DT nodes for besdbg driver + +This uses bes pwrseq for now, because it's easy to experiment with. + +This adds ability to monitor interrupts in besdbg driver and to be +able to access BES2600 serial console over uart1. + +Signed-off-by: Ondrej Jirman +--- + arch/arm64/boot/dts/rockchip/rk3566-pinetab2-v2.0.dts | 76 +++++++++- + arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi | 2 +- + 2 files changed, 76 insertions(+), 2 deletions(-) + +diff --git a/arch/arm64/boot/dts/rockchip/rk3566-pinetab2-v2.0.dts b/arch/arm64/boot/dts/rockchip/rk3566-pinetab2-v2.0.dts +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3566-pinetab2-v2.0.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3566-pinetab2-v2.0.dts +@@ -7,6 +7,32 @@ + / { + model = "Pine64 PineTab2 v2.0"; + compatible = "pine64,pinetab2-v2.0", "pine64,pinetab2", "rockchip,rk3566"; ++ ++ // todo, use this + simple pwrseq instead of custom pwrseq driver ++ wl_reg: wl-regulator { ++ compatible = "regulator-fixed"; ++// enable-active-high; ++// gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; ++// pinctrl-names = "default"; ++// pinctrl-0 = <&wifi_pwren>; ++ regulator-name = "wl_reg"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ vin-supply = <&vcc_sys>; ++// startup-delay-us = <100000>; ++// off-on-delay-us = <100000>; ++ }; ++ ++ wl_pwrseq: wl-pwrseq { ++ compatible = "mmc-pwrseq-bes"; ++ clocks = <&rk817 1>; ++ clock-names = "ext_clock"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&wifi_pwrkey &wifi_reset &wifi_pwren>; ++ pwrkey-gpios = <&gpio3 RK_PD3 GPIO_ACTIVE_HIGH>; ++ pwren-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; ++ reset-gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_HIGH>; ++ }; + }; + + &gpio_keys { +@@ -41,8 +67,56 @@ hall_int_l: hall-int-l { + rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; ++ ++ wifi { ++ wifi_pwrkey: wifi-pwrkey { ++ rockchip,pins = <3 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ wifi_reset: wifi-reset { ++ rockchip,pins = <3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ wifi_regon: wifi-regon { ++ rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ wifi_pwren: wifi-pwren { ++ rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ }; + }; + + &sdmmc1 { +- vmmc-supply = <&vcc_sys>; ++ vmmc-supply = <&wl_reg>; ++ mmc-pwrseq = <&wl_pwrseq>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ bes2600: wifi@1 { ++ compatible = "bestechnic,bes2600"; ++ reg = <1>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&host_wake_wl &wifi_wake_host_h &wifi_regon>; ++ ++ interrupt-parent = <&gpio0>; ++ interrupts = ; ++ ++ device-wakeup-gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; // host_wake_wl ++ //host-wakeup-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>; // wifi_wake_host_h ++ regon-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>; ++ }; ++}; ++ ++// for wifi chip comm ++&uart1 { ++ pinctrl-0 = <&uart1m0_xfer>; ++ pinctrl-names = "default"; ++ status = "okay"; ++}; ++ ++&uart1m0_xfer { ++ rockchip,pins = ++ <2 RK_PB3 2 &pcfg_pull_down>, // RX ++ <2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>; // TX + }; +diff --git a/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi b/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi +@@ -862,7 +862,7 @@ &sdmmc1 { + pinctrl-0 = <&sdmmc1_bus4 + &sdmmc1_cmd + &sdmmc1_clk>; +- sd-uhs-sdr104; ++ //sd-uhs-sdr104; + vqmmc-supply = <&vcca1v8_pmu>; + status = "okay"; + }; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0006-arm64-dts-rk3566-pinetab2-Lower-the-SPI-NOR-flash-cl.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0006-arm64-dts-rk3566-pinetab2-Lower-the-SPI-NOR-flash-cl.patch new file mode 100644 index 000000000..6ae012fac --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/pt2-6.18/0006-arm64-dts-rk3566-pinetab2-Lower-the-SPI-NOR-flash-cl.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 11 Jan 2025 21:54:48 +0100 +Subject: arm64: dts: rk3566-pinetab2: Lower the SPI-NOR flash clock frequency + +To 50MHz, because 100MHz no longer works since v6.12 + +Signed-off-by: Ondrej Jirman +--- + arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi b/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3566-pinetab2.dtsi +@@ -877,7 +877,7 @@ &sfc { + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; +- spi-max-frequency = <100000000>; ++ spi-max-frequency = <50000000>; + spi-rx-bus-width = <2>; + spi-tx-bus-width = <1>; + vcc-supply = <&vcc_1v8>; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0001-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0001-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch new file mode 100644 index 000000000..f7e8f074e --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0001-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 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: drm: rockchip: cdn-dp: Disable CDN DP on disconnect + +Why not? + +Signed-off-by: Ondrej Jirman +--- + 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 111111111111..222222222222 100644 +--- a/drivers/gpu/drm/rockchip/cdn-dp-core.c ++++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c +@@ -897,6 +897,7 @@ static void cdn_dp_pd_event_work(struct work_struct *work) + DRM_DEV_INFO(dp->dev, "Not connected; disabling cdn\n"); + dp->connected = false; + ++ cdn_dp_disable(dp); + /* Connected but not enabled, enable the block */ + } else if (!dp->active) { + DRM_DEV_INFO(dp->dev, "Connected, not enabled; enabling cdn\n"); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0002-phy-phy-rockchip-inno-usb2-Decrease-delay-between-po.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0002-phy-phy-rockchip-inno-usb2-Decrease-delay-between-po.patch new file mode 100644 index 000000000..5940d4cae --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0002-phy-phy-rockchip-inno-usb2-Decrease-delay-between-po.patch @@ -0,0 +1,40 @@ +From 0000000000000000000000000000000000000000 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: phy: 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 +will take too much time during boot, so the fusb302 driver will not +be able to get the result, and will set incorrect current_max on +its power supply device. + +This will lead to failure to charge when the device is powered up +while connected to non-PD charger. + +Decreasing delay of otg_sm_work from 6s to 500ms ensures that +port type detection via the PHY will finish well in time for +TCPM to be able to use its result when Rp=default is detected +via CC pins. + +Signed-off-by: Ondrej Jirman +--- + 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 111111111111..222222222222 100644 +--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c ++++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +@@ -536,7 +536,7 @@ static int rockchip_usb2phy_init(struct phy *phy) + goto out; + + schedule_delayed_work(&rport->otg_sm_work, +- OTG_SCHEDULE_DELAY * 3); ++ msecs_to_jiffies(500)); + } else { + /* If OTG works in host only mode, do nothing. */ + dev_dbg(&rport->phy->dev, "mode %d\n", rport->mode); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0003-phy-rockchip-inno-usb2-More-robust-charger-detection.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0003-phy-rockchip-inno-usb2-More-robust-charger-detection.patch new file mode 100644 index 000000000..e3f56b4dc --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0003-phy-rockchip-inno-usb2-More-robust-charger-detection.patch @@ -0,0 +1,113 @@ +From 0000000000000000000000000000000000000000 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: phy: rockchip-inno-usb2: More robust charger detection extcon updates + +Make sure we always clear the charger detection results. Allow to +disable updates of EXTCON_USB state via extcon,ignore-usb DT property. +The previous method was smart, but assumed !vbus_branch would +always be called. + +Signed-off-by: Ondrej Jirman +--- + 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 111111111111..222222222222 100644 +--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c ++++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +@@ -656,21 +656,27 @@ static const struct phy_ops rockchip_usb2phy_ops = { + .owner = THIS_MODULE, + }; + ++const int rockchip_usb2phy_cable_types[] = { ++ EXTCON_CHG_USB_SDP, ++ EXTCON_CHG_USB_DCP, ++ EXTCON_CHG_USB_CDP, ++ EXTCON_CHG_USB_ACA, ++}; ++ + static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) + { + struct rockchip_usb2phy_port *rport = + container_of(work, struct rockchip_usb2phy_port, + otg_sm_work.work); + struct rockchip_usb2phy *rphy = dev_get_drvdata(rport->phy->dev.parent); +- static unsigned int cable; ++ unsigned int cable = 0, i; + unsigned long delay; +- bool vbus_attach, sch_work, notify_charger; ++ bool vbus_attach, sch_work; + + vbus_attach = property_enabled(rphy->grf, + &rport->port_cfg->utmi_bvalid); + + sch_work = false; +- notify_charger = false; + delay = OTG_SCHEDULE_DELAY; + dev_dbg(&rport->phy->dev, "%s otg sm work\n", + usb_otg_state_string(rport->state)); +@@ -699,14 +705,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; +- notify_charger = true; + sch_work = true; + cable = EXTCON_CHG_USB_SDP; + break; + case POWER_SUPPLY_TYPE_USB_DCP: + dev_dbg(&rport->phy->dev, "dcp cable is connected\n"); + rockchip_usb2phy_power_off(rport->phy); +- notify_charger = true; + sch_work = true; + cable = EXTCON_CHG_USB_DCP; + break; +@@ -714,7 +718,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; +- notify_charger = true; + sch_work = true; + cable = EXTCON_CHG_USB_CDP; + break; +@@ -726,22 +729,26 @@ static void rockchip_usb2phy_otg_sm_work(struct work_struct *work) + break; + } + } else { +- notify_charger = true; + rphy->chg_state = USB_CHG_STATE_UNDEFINED; + rphy->chg_type = POWER_SUPPLY_TYPE_UNKNOWN; + } + +- if (rport->vbus_attached != vbus_attach) { +- rport->vbus_attached = vbus_attach; ++ if (rphy->edev && extcon_get_state(rphy->edev, cable) != vbus_attach) { ++ for (i = 0; i < ARRAY_SIZE(rockchip_usb2phy_cable_types); i++) { ++ int type = rockchip_usb2phy_cable_types[i]; + +- if (notify_charger && rphy->edev) { +- extcon_set_state_sync(rphy->edev, +- cable, vbus_attach); +- if (cable == EXTCON_CHG_USB_SDP) +- extcon_set_state_sync(rphy->edev, +- EXTCON_USB, +- vbus_attach); ++ if (extcon_get_state(rphy->edev, type)) ++ extcon_set_state_sync(rphy->edev, type, 0); + } ++ ++ if (vbus_attach) ++ extcon_set_state_sync(rphy->edev, cable, vbus_attach); ++ ++ if ((cable == EXTCON_CHG_USB_SDP || cable == POWER_SUPPLY_TYPE_USB_CDP) ++ && extcon_get_state(rphy->edev, EXTCON_USB) != vbus_attach ++ && !of_property_read_bool(rphy->dev->of_node, "extcon,ignore-usb")) ++ extcon_set_state_sync(rphy->edev, ++ EXTCON_USB, vbus_attach); + } + break; + case OTG_STATE_B_PERIPHERAL: +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0004-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0004-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch new file mode 100644 index 000000000..2af4cdc25 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0004-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch @@ -0,0 +1,57 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sun, 30 Apr 2023 18:54:51 +0200 +Subject: usb: dwc3: Track the power state of usb3_generic_phy + +We will need to manage power state of this phy inisde set_mode work, +without any ability to perform recovery if power on fails, so we'll +need to track result of power on separately, to be able to balance +the phy on/off calls. + +Signed-off-by: Ondrej Jirman +--- + drivers/usb/dwc3/core.c | 7 +++++-- + drivers/usb/dwc3/core.h | 2 ++ + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c +index 111111111111..222222222222 100644 +--- a/drivers/usb/dwc3/core.c ++++ b/drivers/usb/dwc3/core.c +@@ -900,6 +900,7 @@ static int dwc3_phy_power_on(struct dwc3 *dwc) + goto err_power_off_usb3_phy; + } + ++ dwc->usb3_phy_powered = true; + return 0; + + err_power_off_usb3_phy: +@@ -920,8 +921,10 @@ static void dwc3_phy_power_off(struct dwc3 *dwc) + { + int i; + +- for (i = 0; i < dwc->num_usb3_ports; i++) +- phy_power_off(dwc->usb3_generic_phy[i]); ++ if (dwc->usb3_phy_powered) ++ for (i = 0; i < dwc->num_usb3_ports; i++) ++ phy_power_off(dwc->usb3_generic_phy[i]); ++ dwc->usb3_phy_powered = false; + + for (i = 0; i < dwc->num_usb2_ports; i++) + phy_power_off(dwc->usb2_generic_phy[i]); +diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h +index 111111111111..222222222222 100644 +--- a/drivers/usb/dwc3/core.h ++++ b/drivers/usb/dwc3/core.h +@@ -1228,6 +1228,8 @@ struct dwc3 { + u8 num_usb2_ports; + u8 num_usb3_ports; + ++ bool usb3_phy_powered; ++ + bool phys_ready; + + struct ulpi *ulpi; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0005-phy-rockchip-naneng-Add-fallback-for-old-DTs.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0005-phy-rockchip-naneng-Add-fallback-for-old-DTs.patch new file mode 100644 index 000000000..1ff744321 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0005-phy-rockchip-naneng-Add-fallback-for-old-DTs.patch @@ -0,0 +1,244 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Mon, 17 Mar 2025 10:57:59 +0100 +Subject: phy: rockchip: naneng: Add fallback for old DTs + +See https://lore.kernel.org/lkml/20250106070000.605284-1-amadeus@jmu.edu.cn/ + +Signed-off-by: Ondrej Jirman +--- + drivers/usb/dwc3/core.c | 46 +++++++++- + drivers/usb/dwc3/core.h | 12 +++ + drivers/usb/dwc3/drd.c | 34 ++++--- + 3 files changed, 77 insertions(+), 15 deletions(-) + +diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c +index 111111111111..222222222222 100644 +--- a/drivers/usb/dwc3/core.c ++++ b/drivers/usb/dwc3/core.c +@@ -153,7 +153,7 @@ void dwc3_set_prtcap(struct dwc3 *dwc, u32 mode, bool ignore_susphy) + } + + reg &= ~(DWC3_GCTL_PRTCAPDIR(DWC3_GCTL_PRTCAP_OTG)); +- reg |= DWC3_GCTL_PRTCAPDIR(mode); ++ reg |= DWC3_GCTL_PRTCAPDIR(mode & DWC3_GCTL_PRTCAP_OTG); + dwc3_writel(dwc->regs, DWC3_GCTL, reg); + + dwc->current_dr_role = mode; +@@ -193,6 +193,7 @@ static void __dwc3_set_mode(struct work_struct *work) + dwc3_host_exit(dwc); + break; + case DWC3_GCTL_PRTCAP_DEVICE: ++ case DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED: + dwc3_gadget_exit(dwc); + dwc3_event_buffers_cleanup(dwc); + break; +@@ -212,12 +213,43 @@ static void __dwc3_set_mode(struct work_struct *work) + * Only perform GCTL.CoreSoftReset when there's DRD role switching. + */ + if (dwc->current_dr_role && ((DWC3_IP_IS(DWC3) || +- DWC3_VER_IS_PRIOR(DWC31, 190A)) && ++ DWC3_VER_IS_PRIOR(DWC31, 190A) || dwc->usb3_phy_reset_quirk) && + desired_dr_role != DWC3_GCTL_PRTCAP_OTG)) { ++ /* ++ * RK3399 TypeC PHY needs to be powered off and powered on again ++ * for it to apply the correct Type-C plug orientation setting ++ * and reconfigure itself. ++ * ++ * For that purpose we observe complete USB disconnect via ++ * extcon in drd.c and pass it to __dwc3_set_mode as ++ * desired_dr_role == 0. ++ * ++ * We thus handle transitions between three states of ++ * desired_dr_role here: ++ * ++ * - DWC3_GCTL_PRTCAP_HOST ++ * - DWC3_GCTL_PRTCAP_DEVICE ++ * - DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED - almost equivalent to ++ * DWC3_GCTL_PRTCAP_DEVICE, present only to distinguish ++ * disconnected state, and so that set_mode is called when ++ * user plugs in the device to the host. ++ */ ++ if (dwc->usb3_phy_powered && dwc->usb3_phy_reset_quirk) ++ for (int j = 0; j < dwc->num_usb3_ports; j++) ++ phy_power_off(dwc->usb3_generic_phy[j]); ++ + reg = dwc3_readl(dwc->regs, DWC3_GCTL); + reg |= DWC3_GCTL_CORESOFTRESET; + dwc3_writel(dwc->regs, DWC3_GCTL, reg); + ++ if (dwc->usb3_phy_reset_quirk) { ++ for (int j = 0; j < dwc->num_usb3_ports; j++) { ++ ret = phy_power_on(dwc->usb3_generic_phy[j]); ++ //XXX: bleh ++ dwc->usb3_phy_powered = ret >= 0; ++ } ++ } ++ + /* + * Wait for internal clocks to synchronized. DWC_usb31 and + * DWC_usb32 may need at least 50ms (less for DWC_usb3). To +@@ -259,6 +291,7 @@ static void __dwc3_set_mode(struct work_struct *work) + } + break; + case DWC3_GCTL_PRTCAP_DEVICE: ++ case DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED: + dwc3_core_soft_reset(dwc); + + dwc3_event_buffers_setup(dwc); +@@ -1849,6 +1882,8 @@ static void dwc3_get_properties(struct dwc3 *dwc) + + dwc->dis_split_quirk = device_property_read_bool(dev, + "snps,dis-split-quirk"); ++ dwc->usb3_phy_reset_quirk = device_property_read_bool(dev, ++ "snps,usb3-phy-reset-quirk"); + + dwc->lpm_nyet_threshold = lpm_nyet_threshold; + dwc->tx_de_emphasis = tx_de_emphasis; +@@ -2444,6 +2479,7 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) + + switch (dwc->current_dr_role) { + case DWC3_GCTL_PRTCAP_DEVICE: ++ case DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED: + if (pm_runtime_suspended(dwc->dev)) + break; + dwc3_gadget_suspend(dwc); +@@ -2504,11 +2540,12 @@ static int dwc3_resume_common(struct dwc3 *dwc, pm_message_t msg) + + switch (dwc->current_dr_role) { + case DWC3_GCTL_PRTCAP_DEVICE: ++ case DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED: + ret = dwc3_core_init_for_resume(dwc); + if (ret) + return ret; + +- dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_DEVICE, true); ++ dwc3_set_prtcap(dwc, dwc->current_dr_role, true); + dwc3_gadget_resume(dwc); + break; + case DWC3_GCTL_PRTCAP_HOST: +@@ -2572,6 +2609,7 @@ static int dwc3_runtime_checks(struct dwc3 *dwc) + { + switch (dwc->current_dr_role) { + case DWC3_GCTL_PRTCAP_DEVICE: ++ case DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED: + if (dwc->connected) + return -EBUSY; + break; +@@ -2610,6 +2648,7 @@ int dwc3_runtime_resume(struct dwc3 *dwc) + + switch (dwc->current_dr_role) { + case DWC3_GCTL_PRTCAP_DEVICE: ++ case DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED: + if (dwc->pending_events) { + pm_runtime_put(dev); + dwc->pending_events = false; +@@ -2634,6 +2673,7 @@ int dwc3_runtime_idle(struct dwc3 *dwc) + + switch (dwc->current_dr_role) { + case DWC3_GCTL_PRTCAP_DEVICE: ++ case DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED: + if (dwc3_runtime_checks(dwc)) + return -EBUSY; + break; +diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h +index 111111111111..222222222222 100644 +--- a/drivers/usb/dwc3/core.h ++++ b/drivers/usb/dwc3/core.h +@@ -264,6 +264,12 @@ + #define DWC3_GCTL_PRTCAP_HOST 1 + #define DWC3_GCTL_PRTCAP_DEVICE 2 + #define DWC3_GCTL_PRTCAP_OTG 3 ++/* This is not a real register value, but a special state used for ++ * current_dr_role to mean DWC3_GCTL_PRTCAP_DEVICE in disconnected ++ * state. Value is chosen so that masking with register width ++ * produces DWC3_GCTL_PRTCAP_DEVICE value. ++ */ ++#define DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED 6 + + #define DWC3_GCTL_CORESOFTRESET BIT(11) + #define DWC3_GCTL_SOFITPSYNC BIT(10) +@@ -1164,6 +1170,10 @@ struct dwc3_glue_ops { + * @sys_wakeup: set if the device may do system wakeup. + * @wakeup_configured: set if the device is configured for remote wakeup. + * @suspended: set to track suspend event due to U3/L2. ++ * @usb3_phy_reset_quirk: set to power cycle the USB3 PHY during mode ++ * changes. Useful on RK3399 that needs this ++ * to apply Type-C orientation changes in ++ * Type-C phy driver. + * @susphy_state: state of DWC3_GUSB2PHYCFG_SUSPHY + DWC3_GUSB3PIPECTL_SUSPHY + * before PM suspend. + * @imod_interval: set the interrupt moderation interval in 250ns +@@ -1408,6 +1418,8 @@ struct dwc3 { + unsigned suspended:1; + unsigned susphy_state:1; + ++ unsigned usb3_phy_reset_quirk:1; ++ + u16 imod_interval; + + int max_cfg_eps; +diff --git a/drivers/usb/dwc3/drd.c b/drivers/usb/dwc3/drd.c +index 111111111111..222222222222 100644 +--- a/drivers/usb/dwc3/drd.c ++++ b/drivers/usb/dwc3/drd.c +@@ -417,15 +417,28 @@ void dwc3_otg_update(struct dwc3 *dwc, bool ignore_idstatus) + + static void dwc3_drd_update(struct dwc3 *dwc) + { +- int id; ++ u32 mode = DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED; ++ int ret; + + if (dwc->edev) { +- id = extcon_get_state(dwc->edev, EXTCON_USB_HOST); +- if (id < 0) +- id = 0; +- dwc3_set_mode(dwc, id ? +- DWC3_GCTL_PRTCAP_HOST : +- DWC3_GCTL_PRTCAP_DEVICE); ++ ret = extcon_get_state(dwc->edev, EXTCON_USB_HOST); ++ if (ret > 0) ++ mode = DWC3_GCTL_PRTCAP_HOST; ++ ++ if (dwc->usb3_phy_reset_quirk) { ++ /* ++ * With this quirk enabled, we want to pass 0 ++ * to dwc3_set_mode to signal no USB connection ++ * state. ++ */ ++ ret = extcon_get_state(dwc->edev, EXTCON_USB); ++ if (ret > 0) ++ mode = DWC3_GCTL_PRTCAP_DEVICE; ++ } else { ++ mode = DWC3_GCTL_PRTCAP_DEVICE; ++ } ++ ++ dwc3_set_mode(dwc, mode); + } + } + +@@ -434,9 +447,7 @@ static int dwc3_drd_notifier(struct notifier_block *nb, + { + struct dwc3 *dwc = container_of(nb, struct dwc3, edev_nb); + +- dwc3_set_mode(dwc, event ? +- DWC3_GCTL_PRTCAP_HOST : +- DWC3_GCTL_PRTCAP_DEVICE); ++ dwc3_drd_update(dwc); + + return NOTIFY_DONE; + } +@@ -548,8 +559,7 @@ int dwc3_drd_init(struct dwc3 *dwc) + + if (dwc->edev) { + dwc->edev_nb.notifier_call = dwc3_drd_notifier; +- ret = extcon_register_notifier(dwc->edev, EXTCON_USB_HOST, +- &dwc->edev_nb); ++ ret = extcon_register_notifier_all(dwc->edev, &dwc->edev_nb); + if (ret < 0) { + dev_err(dwc->dev, "couldn't register cable notifier\n"); + return ret; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0006-usb-dwc3-Extend-reset-quirk-support-to-include-role-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0006-usb-dwc3-Extend-reset-quirk-support-to-include-role-.patch new file mode 100644 index 000000000..faec9829e --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rk3399-typec-6.18/0006-usb-dwc3-Extend-reset-quirk-support-to-include-role-.patch @@ -0,0 +1,57 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 2 Mar 2024 14:33:21 +0100 +Subject: usb: dwc3: Extend reset quirk support to include role-switch + +Originally my reset quirk patch only supported extcon mode changes +via extcon interface. Support role-switch, too. + +Signed-off-by: Ondrej Jirman +--- + drivers/usb/dwc3/drd.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/drivers/usb/dwc3/drd.c b/drivers/usb/dwc3/drd.c +index 111111111111..222222222222 100644 +--- a/drivers/usb/dwc3/drd.c ++++ b/drivers/usb/dwc3/drd.c +@@ -458,7 +458,7 @@ static int dwc3_usb_role_switch_set(struct usb_role_switch *sw, + enum usb_role role) + { + struct dwc3 *dwc = usb_role_switch_get_drvdata(sw); +- u32 mode; ++ u32 mode = DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED; + + switch (role) { + case USB_ROLE_HOST: +@@ -468,6 +468,8 @@ static int dwc3_usb_role_switch_set(struct usb_role_switch *sw, + mode = DWC3_GCTL_PRTCAP_DEVICE; + break; + default: ++ if (dwc->usb3_phy_reset_quirk) ++ break; + if (dwc->role_switch_default_mode == USB_DR_MODE_HOST) + mode = DWC3_GCTL_PRTCAP_HOST; + else +@@ -488,6 +490,9 @@ static enum usb_role dwc3_usb_role_switch_get(struct usb_role_switch *sw) + + spin_lock_irqsave(&dwc->lock, flags); + switch (dwc->current_dr_role) { ++ case DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED: ++ role = USB_ROLE_NONE; ++ break; + case DWC3_GCTL_PRTCAP_HOST: + role = USB_ROLE_HOST; + break; +@@ -519,6 +524,8 @@ static int dwc3_setup_role_switch(struct dwc3 *dwc) + } else { + dwc->role_switch_default_mode = USB_DR_MODE_PERIPHERAL; + mode = DWC3_GCTL_PRTCAP_DEVICE; ++ if (dwc->usb3_phy_reset_quirk) ++ mode = DWC3_GCTL_PRTCAP_DEVICE_DISCONNECTED; + } + dwc3_set_mode(dwc, mode); + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rp64-6.18/0001-arm64-dts-rk3399-rockpro64-Add-DMC-nodes.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rp64-6.18/0001-arm64-dts-rk3399-rockpro64-Add-DMC-nodes.patch new file mode 100644 index 000000000..e1834ced9 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rp64-6.18/0001-arm64-dts-rk3399-rockpro64-Add-DMC-nodes.patch @@ -0,0 +1,57 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Tue, 18 Jul 2023 13:47:19 +0200 +Subject: arm64: dts: rk3399-rockpro64: Add DMC nodes + +Signed-off-by: Ondrej Jirman +--- + arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi | 33 ++++++++++ + 1 file changed, 33 insertions(+) + +diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi +@@ -284,6 +284,39 @@ map3 { + }; + }; + ++&dfi { ++ status = "okay"; ++}; ++ ++&dmc { ++ // This node can only be enabled by FDT patching from U-Boot that ++ // uses Rockchip TPL/TF-A. DMC only works with the downstream firmware. ++ // If you enabled this on mainline, your phone will lock up on boot. ++ //status = "okay"; ++ ++ center-supply = <&vdd_center>; ++ ++ rockchip,pd-idle-ns = <160>; ++ rockchip,sr-idle-ns = <10240>; ++ rockchip,sr-mc-gate-idle-ns = <40960>; ++ rockchip,srpd-lite-idle-ns = <61440>; ++ rockchip,standby-idle-ns = <81920>; ++ ++ rockchip,lpddr4_odt_dis_freq = <666000000>; ++ ++ rockchip,srpd-lite-idle-dis-freq-hz = <0>; ++ rockchip,standby-idle-dis-freq-hz = <928000000>; ++ rockchip,sr-mc-gate-idle-dis-freq-hz = <800000000>; ++ rockchip,pd-idle-dis-freq-hz = <800000000>; ++ rockchip,sr-idle-dis-freq-hz = <800000000>; ++}; ++ ++&dmc_opp_table { ++ opp00 { ++ opp-suspend; ++ }; ++}; ++ + &emmc_phy { + status = "okay"; + }; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rp64-6.18/0002-arm64-dts-rk3399-rockpro64-Add-Type-C-OTG-Alt-DP-sup.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rp64-6.18/0002-arm64-dts-rk3399-rockpro64-Add-Type-C-OTG-Alt-DP-sup.patch new file mode 100644 index 000000000..5b03c1ef6 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rp64-6.18/0002-arm64-dts-rk3399-rockpro64-Add-Type-C-OTG-Alt-DP-sup.patch @@ -0,0 +1,183 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Tue, 27 Aug 2024 18:40:08 +0200 +Subject: arm64: dts: rk3399-rockpro64: Add Type-C OTG/Alt-DP support + +RockPro64 can support Alt-DP and Peripheral/Host mode switching on +Type-C port. It can't support powering from that port. + +Enable peripheral and Alt-DP support. + +Signed-off-by: Ondrej Jirman +--- + arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi | 101 +++++++++- + 1 file changed, 99 insertions(+), 2 deletions(-) + +diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi +index 111111111111..222222222222 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi +@@ -6,6 +6,7 @@ + + #include + #include ++#include + #include "rk3399.dtsi" + + / { +@@ -186,7 +187,6 @@ vcc5v0_typec: regulator-vcc5v0-typec { + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_typec_en>; + regulator-name = "vcc5v0_typec"; +- regulator-always-on; + vin-supply = <&vcc5v0_usb>; + }; + +@@ -230,6 +230,20 @@ vdd_log: regulator-vdd-log { + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <1700000>; + }; ++ ++ typec_extcon_bridge: typec-extcon { ++ compatible = "linux,typec-extcon-bridge"; ++ usb-role-switch; ++ orientation-switch; ++ mode-switch; ++ svid = /bits/ 16 <0xff01>; ++ }; ++}; ++ ++&cdn_dp { ++ status = "okay"; ++ extcon = <&typec_extcon_bridge>; ++ phys = <&tcphy0_dp>; + }; + + &cpu_l0 { +@@ -604,7 +618,63 @@ fusb0: typec-portc@22 { + pinctrl-names = "default"; + pinctrl-0 = <&fusb0_int>; + vbus-supply = <&vcc5v0_typec>; ++ usb-role-switch = <&typec_extcon_bridge>; ++ extcon = <&typec_extcon_bridge>; + status = "okay"; ++ ++ connector { ++ compatible = "usb-c-connector"; ++ data-role = "dual"; ++ label = "USB-C"; ++ op-sink-microwatt = <1000000>; ++ power-role = "dual"; ++ sink-pdos = ++ ; ++ source-pdos = ++ ; ++ try-power-role = "sink"; ++ mode-switch = <&typec_extcon_bridge>; ++ orientation-switch = <&typec_extcon_bridge>; ++ ++ altmodes { ++ dp { ++ svid = /bits/ 16 <0xff01>; ++ vdo = <0x0c46>; ++ }; ++ }; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ ++ usbc_hs: endpoint { ++ remote-endpoint = ++ <&u2phy0_typec_hs>; ++ }; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ ++ usbc_ss: endpoint { ++ remote-endpoint = ++ <&tcphy0_typec_ss>; ++ }; ++ }; ++ ++ port@2 { ++ reg = <2>; ++ ++ usbc_dp: endpoint { ++ remote-endpoint = ++ <&tcphy0_typec_dp>; ++ }; ++ }; ++ }; ++ }; + }; + }; + +@@ -824,9 +894,26 @@ flash@0 { + }; + + &tcphy0 { ++ extcon = <&typec_extcon_bridge>; + status = "okay"; + }; + ++&tcphy0_dp { ++ port { ++ tcphy0_typec_dp: endpoint { ++ remote-endpoint = <&usbc_dp>; ++ }; ++ }; ++}; ++ ++&tcphy0_usb3 { ++ port { ++ tcphy0_typec_ss: endpoint { ++ remote-endpoint = <&usbc_ss>; ++ }; ++ }; ++}; ++ + &tcphy1 { + status = "okay"; + }; +@@ -841,6 +928,8 @@ &tsadc { + + &u2phy0 { + status = "okay"; ++ extcon = <&typec_extcon_bridge>; ++ extcon,ignore-usb; + + u2phy0_otg: otg-port { + status = "okay"; +@@ -850,6 +939,12 @@ u2phy0_host: host-port { + phy-supply = <&vcc5v0_host>; + status = "okay"; + }; ++ ++ port { ++ u2phy0_typec_hs: endpoint { ++ remote-endpoint = <&usbc_hs>; ++ }; ++ }; + }; + + &u2phy1 { +@@ -910,7 +1005,9 @@ &usbdrd3_0 { + + &usbdrd_dwc3_0 { + status = "okay"; +- dr_mode = "host"; ++ dr_mode = "otg"; ++ extcon = <&typec_extcon_bridge>; ++ snps,usb3-phy-reset-quirk; + }; + + &usbdrd3_1 { +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0001-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0001-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch new file mode 100644 index 000000000..0a2bb7ea7 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0001-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch @@ -0,0 +1,92 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 19 Aug 2022 22:01:23 +0200 +Subject: ASoC: codecs: rt5640: Fix output mixer input channel list + +It did not match the RT5640 datasheet. Now it does. + +Signed-off-by: Ondrej Jirman +--- + sound/soc/codecs/rt5640.c | 14 ++++---- + sound/soc/codecs/rt5640.h | 16 ++++------ + 2 files changed, 13 insertions(+), 17 deletions(-) + +diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c +index 111111111111..222222222222 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[] = { + }; + + static const struct snd_kcontrol_new rt5640_out_l_mix[] = { +- SOC_DAPM_SINGLE("SPK MIXL Switch", RT5640_OUT_L3_MIXER, +- RT5640_M_SM_L_OM_L_SFT, 1, 1), ++ SOC_DAPM_SINGLE("BST3 Switch", RT5640_OUT_L3_MIXER, ++ RT5640_M_BST3_OM_L_SFT, 1, 1), + SOC_DAPM_SINGLE("BST1 Switch", RT5640_OUT_L3_MIXER, + RT5640_M_BST1_OM_L_SFT, 1, 1), + SOC_DAPM_SINGLE("INL Switch", RT5640_OUT_L3_MIXER, +@@ -668,10 +668,10 @@ static const struct snd_kcontrol_new rt5640_out_l_mix[] = { + }; + + static const struct snd_kcontrol_new rt5640_out_r_mix[] = { +- SOC_DAPM_SINGLE("SPK MIXR Switch", RT5640_OUT_R3_MIXER, +- RT5640_M_SM_L_OM_R_SFT, 1, 1), + SOC_DAPM_SINGLE("BST2 Switch", RT5640_OUT_R3_MIXER, +- RT5640_M_BST4_OM_R_SFT, 1, 1), ++ RT5640_M_BST2_OM_R_SFT, 1, 1), ++ SOC_DAPM_SINGLE("BST3 Switch", RT5640_OUT_R3_MIXER, ++ RT5640_M_BST3_OM_R_SFT, 1, 1), + SOC_DAPM_SINGLE("BST1 Switch", RT5640_OUT_R3_MIXER, + RT5640_M_BST1_OM_R_SFT, 1, 1), + SOC_DAPM_SINGLE("INR Switch", RT5640_OUT_R3_MIXER, +@@ -1603,8 +1603,8 @@ static const struct snd_soc_dapm_route rt5640_specific_dapm_routes[] = { + {"SPK MIXL", "DAC L2 Switch", "DAC L2"}, + {"SPK MIXR", "DAC R2 Switch", "DAC R2"}, + +- {"OUT MIXL", "SPK MIXL Switch", "SPK MIXL"}, +- {"OUT MIXR", "SPK MIXR Switch", "SPK MIXR"}, ++ {"OUT MIXL", "BST3 Switch", "BST3"}, ++ {"OUT MIXR", "BST3 Switch", "BST3"}, + + {"OUT MIXL", "DAC R2 Switch", "DAC R2"}, + {"OUT MIXL", "DAC L2 Switch", "DAC L2"}, +diff --git a/sound/soc/codecs/rt5640.h b/sound/soc/codecs/rt5640.h +index 111111111111..222222222222 100644 +--- a/sound/soc/codecs/rt5640.h ++++ b/sound/soc/codecs/rt5640.h +@@ -654,12 +654,8 @@ + #define RT5640_G_DAC_L1_OM_L_SFT 7 + + /* Output Left Mixer Control 3 (0x4f) */ +-#define RT5640_M_SM_L_OM_L (0x1 << 8) +-#define RT5640_M_SM_L_OM_L_SFT 8 +-#define RT5640_M_BST3_OM_L (0x1 << 7) +-#define RT5640_M_BST3_OM_L_SFT 7 +-#define RT5640_M_BST2_OM_L (0x1 << 6) +-#define RT5640_M_BST2_OM_L_SFT 6 ++#define RT5640_M_BST3_OM_L (0x1 << 6) ++#define RT5640_M_BST3_OM_L_SFT 6 + #define RT5640_M_BST1_OM_L (0x1 << 5) + #define RT5640_M_BST1_OM_L_SFT 5 + #define RT5640_M_IN_L_OM_L (0x1 << 4) +@@ -694,12 +690,12 @@ + #define RT5640_G_DAC_R1_OM_R_SFT 7 + + /* Output Right Mixer Control 3 (0x52) */ +-#define RT5640_M_SM_L_OM_R (0x1 << 8) +-#define RT5640_M_SM_L_OM_R_SFT 8 + #define RT5640_M_BST4_OM_R (0x1 << 7) + #define RT5640_M_BST4_OM_R_SFT 7 +-#define RT5640_M_BST2_OM_R (0x1 << 6) +-#define RT5640_M_BST2_OM_R_SFT 6 ++#define RT5640_M_BST2_OM_R (0x1 << 7) ++#define RT5640_M_BST2_OM_R_SFT 7 ++#define RT5640_M_BST3_OM_R (0x1 << 6) ++#define RT5640_M_BST3_OM_R_SFT 6 + #define RT5640_M_BST1_OM_R (0x1 << 5) + #define RT5640_M_BST1_OM_R_SFT 5 + #define RT5640_M_IN_R_OM_R (0x1 << 4) +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0002-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0002-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch new file mode 100644 index 000000000..39e212339 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0002-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 20 Aug 2022 20:32:07 +0200 +Subject: ASoC: codecs: rt5640: Fix hpout restore when lout is enabled + +When line out and heaphones are enabled, rt5640_lout_event will cause +headpone state restore to fail, by calling hp_amp_power_on again after +rt5640_pmu_depop. + +Signed-off-by: Ondrej Jirman +--- + sound/soc/codecs/rt5640.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c +index 111111111111..222222222222 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, + + switch (event) { + case SND_SOC_DAPM_POST_PMU: +- hp_amp_power_on(component); ++ //hp_amp_power_on(component); ++ //XXX: ^^ breaks hpout restore + snd_soc_component_update_bits(component, RT5640_PWR_ANLG1, + RT5640_PWR_LM, RT5640_PWR_LM); + snd_soc_component_update_bits(component, RT5640_OUTPUT, +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0003-ASoC-codecs-rt5640-Resolve-failure-to-set-DMIC-clock.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0003-ASoC-codecs-rt5640-Resolve-failure-to-set-DMIC-clock.patch new file mode 100644 index 000000000..eb70f524d --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0003-ASoC-codecs-rt5640-Resolve-failure-to-set-DMIC-clock.patch @@ -0,0 +1,33 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 27 Aug 2022 20:48:32 +0200 +Subject: ASoC: codecs: rt5640: Resolve failure to set DMIC clock after + playback + +rt5640_set_dai_sysclk is called with freq == 0 when playback stops. This +causes DMIC setup code to fail. I2S interface doesn't need to be active +for codec to work, so don't clear rt5640->sysclk after rt5640_set_dai_sysclk +is called with freq == 0. + +Signed-off-by: Ondrej Jirman +--- + sound/soc/codecs/rt5640.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c +index 111111111111..222222222222 100644 +--- a/sound/soc/codecs/rt5640.c ++++ b/sound/soc/codecs/rt5640.c +@@ -1839,6 +1839,9 @@ static int rt5640_set_dai_sysclk(struct snd_soc_dai *dai, + unsigned int pll_bit = 0; + int ret; + ++ if (freq == 0) ++ return 0; ++ + switch (clk_id) { + case RT5640_SCLK_S_MCLK: + ret = clk_set_rate(rt5640->mclk, freq); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0004-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0004-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch new file mode 100644 index 000000000..f6fef2b48 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0004-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 14 Apr 2023 22:35:37 +0200 +Subject: ASoC: codecs: rt5640: Add input mixer input volume controls + +These are useful to attenuate strong signals from analog inputs. + +Signed-off-by: Ondrej Jirman +--- + sound/soc/codecs/rt5640.c | 14 ++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c +index 111111111111..222222222222 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); + static const DECLARE_TLV_DB_SCALE(in_vol_tlv, -3450, 150, 0); + static const DECLARE_TLV_DB_MINMAX(adc_vol_tlv, -1762, 3000); + static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0); ++static const DECLARE_TLV_DB_MINMAX(rec_gain_tlv, -1800, 0); + + /* {0, +20, +24, +30, +35, +40, +44, +50, +52} dB */ + static const DECLARE_TLV_DB_RANGE(bst_tlv, +@@ -413,6 +414,19 @@ static const struct snd_kcontrol_new rt5640_snd_controls[] = { + SOC_SINGLE_TLV("IN3 Boost", RT5640_IN1_IN2, + RT5640_BST_SFT2, 8, 0, bst_tlv), + ++ /* RECMIXL Gain Controls */ ++ SOC_SINGLE_TLV("RECMIXL INL Gain", RT5640_REC_L1_MIXER, 10, 6, 1, rec_gain_tlv), ++ SOC_SINGLE_TLV("RECMIXL BST2 Gain", RT5640_REC_L1_MIXER, 7, 6, 1, rec_gain_tlv), ++ SOC_SINGLE_TLV("RECMIXL BST3 Gain", RT5640_REC_L1_MIXER, 1, 6, 1, rec_gain_tlv), ++ SOC_SINGLE_TLV("RECMIXL BST1 Gain", RT5640_REC_L2_MIXER, 13, 6, 1, rec_gain_tlv), ++ SOC_SINGLE_TLV("RECMIXL OUTMIXL Gain", RT5640_REC_L2_MIXER, 10, 6, 1, rec_gain_tlv), ++ ++ SOC_SINGLE_TLV("RECMIXR INR Gain", RT5640_REC_R1_MIXER, 10, 6, 1, rec_gain_tlv), ++ SOC_SINGLE_TLV("RECMIXR BST2 Gain", RT5640_REC_R1_MIXER, 7, 6, 1, rec_gain_tlv), ++ SOC_SINGLE_TLV("RECMIXR BST3 Gain", RT5640_REC_R1_MIXER, 1, 6, 1, rec_gain_tlv), ++ SOC_SINGLE_TLV("RECMIXR BST1 Gain", RT5640_REC_R2_MIXER, 13, 6, 1, rec_gain_tlv), ++ SOC_SINGLE_TLV("RECMIXR OUTMIXR Gain", RT5640_REC_R2_MIXER, 10, 6, 1, rec_gain_tlv), ++ + /* INL/INR Volume Control */ + SOC_DOUBLE_TLV("IN Capture Volume", RT5640_INL_INR_VOL, + RT5640_INL_VOL_SFT, RT5640_INR_VOL_SFT, +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0005-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0005-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch new file mode 100644 index 000000000..cb53fbde0 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0005-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 14 Apr 2023 22:37:02 +0200 +Subject: ASoC: codecs: rt5640: Allow to control single-ended/differential mode + +Not for upstream. This is useful for debugging, trying things without +having to modify DT. + +Signed-off-by: Ondrej Jirman +--- + sound/soc/codecs/rt5640.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c +index 111111111111..222222222222 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[] = { + SOC_SINGLE_TLV("RECMIXR BST1 Gain", RT5640_REC_R2_MIXER, 13, 6, 1, rec_gain_tlv), + SOC_SINGLE_TLV("RECMIXR OUTMIXR Gain", RT5640_REC_R2_MIXER, 10, 6, 1, rec_gain_tlv), + ++ SOC_SINGLE("IN3 Differential Mode", RT5640_IN1_IN2, 6, 1, 0), ++ SOC_SINGLE("IN2 Differential Mode", RT5640_IN3_IN4, 6, 1, 0), ++ SOC_SINGLE("LOUT Differential Mode", 0xfa, 14, 1, 0), ++ + /* INL/INR Volume Control */ + SOC_DOUBLE_TLV("IN Capture Volume", RT5640_INL_INR_VOL, + RT5640_INL_VOL_SFT, RT5640_INR_VOL_SFT, +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0006-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0006-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch new file mode 100644 index 000000000..2fce1bfc7 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0006-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 29 Jul 2023 17:33:24 +0200 +Subject: ASoC: codecs: rt5640: Keep the codec enabled when idle + +This makes analog audio work even without any i2s streams being enabled. + +Signed-off-by: Ondrej Jirman +--- + sound/soc/codecs/rt5640.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c +index 111111111111..222222222222 100644 +--- a/sound/soc/codecs/rt5640.c ++++ b/sound/soc/codecs/rt5640.c +@@ -2951,6 +2951,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), ++ .suspend_bias_off = 1, ++ .idle_bias_on = 1, + .use_pmdown_time = 1, + .endianness = 1, + }; +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0007-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0007-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch new file mode 100644 index 000000000..22cfcc14c --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rt5640-6.18/0007-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch @@ -0,0 +1,54 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Thu, 7 Sep 2023 22:58:22 +0200 +Subject: ASoC: codecs: rt5640: Add support for power supplies + +Signed-off-by: Ondrej Jirman +--- + sound/soc/codecs/rt5640.c | 16 ++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c +index 111111111111..222222222222 100644 +--- a/sound/soc/codecs/rt5640.c ++++ b/sound/soc/codecs/rt5640.c +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -38,6 +39,13 @@ + + #define RT5640_PR_BASE (RT5640_PR_RANGE_BASE + (0 * RT5640_PR_SPACING)) + ++static const char *const rt5640_supply_names[] = { ++ "avdd", ++ "cpvdd", ++ "dbvdd", ++ "spkvdd", ++}; ++ + static const struct regmap_range_cfg rt5640_ranges[] = { + { .name = "PR", .range_min = RT5640_PR_BASE, + .range_max = RT5640_PR_BASE + 0xb4, +@@ -3028,6 +3036,14 @@ static int rt5640_i2c_probe(struct i2c_client *i2c) + msleep(400); + } + ++ ret = devm_regulator_bulk_get_enable(&i2c->dev, ++ ARRAY_SIZE(rt5640_supply_names), ++ rt5640_supply_names); ++ if (ret) { ++ dev_err(&i2c->dev, "Failed to request supplies: %d\n", ret); ++ return ret; ++ } ++ + rt5640->regmap = devm_regmap_init_i2c(i2c, &rt5640_regmap); + if (IS_ERR(rt5640->regmap)) { + ret = PTR_ERR(rt5640->regmap); +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rtw88-6.18/0001-Implement-adaptivity-functions.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rtw88-6.18/0001-Implement-adaptivity-functions.patch new file mode 100644 index 000000000..0f8893e48 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rtw88-6.18/0001-Implement-adaptivity-functions.patch @@ -0,0 +1,114 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Fiona Klute +Date: Fri, 2 Feb 2024 20:38:57 +0100 +Subject: Implement adaptivity functions + +Doesn't make much difference in my network, unfortunately. + +Signed-off-by: Fiona Klute +--- + drivers/net/wireless/realtek/rtw88/rtw8703b.c | 53 +++++++++- + drivers/net/wireless/realtek/rtw88/rtw8703b.h | 2 + + 2 files changed, 53 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/wireless/realtek/rtw88/rtw8703b.c b/drivers/net/wireless/realtek/rtw88/rtw8703b.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/realtek/rtw88/rtw8703b.c ++++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.c +@@ -1690,6 +1690,43 @@ static void rtw8703b_coex_set_wl_rx_gain(struct rtw_dev *rtwdev, bool low_gain) + { + } + ++#define RTW8703B_EDCCA_INIT 0x7f ++static void rtw8703b_adaptivity_init(struct rtw_dev *rtwdev) ++{ ++ rtw_phy_set_edcca_th(rtwdev, RTW8703B_EDCCA_INIT, RTW8703B_EDCCA_INIT); ++ ++ /* mac edcca state settings: enable EDCCA, EDCCA count down */ ++ rtw_write32_clr(rtwdev, REG_TX_PTCL_CTRL, BIT_DIS_EDCCA); ++ rtw_write32_set(rtwdev, REG_RD_CTRL, BIT_EDCCA_MSK_CNTDOWN_EN); ++ ++ rtw_write32_mask(rtwdev, REG_EDCCA_DCNF, BIT(21) | BIT(20), 0x1); ++} ++ ++#define IGI_TARGET 0x32 ++static void rtw8703b_adaptivity(struct rtw_dev *rtwdev) ++{ ++ struct rtw_dm_info *dm_info = &rtwdev->dm_info; ++ s8 l2h, h2l; ++ u8 igi; ++ u8 l2h_dyn_min; ++ ++ igi = dm_info->igi_history[0]; ++ if (dm_info->edcca_mode == RTW_EDCCA_NORMAL) { ++ l2h = max_t(s8, igi + EDCCA_IGI_L2H_DIFF, EDCCA_TH_L2H_LB); ++ h2l = l2h - EDCCA_L2H_H2L_DIFF_NORMAL; ++ } else { ++ l2h_dyn_min = (u8)(dm_info->l2h_th_ini + IGI_TARGET); ++ if (igi < l2h_dyn_min) ++ l2h = igi; ++ else ++ l2h = l2h_dyn_min; ++ h2l = l2h - EDCCA_L2H_H2L_DIFF; ++ } ++ ++ rtw_dbg(rtwdev, RTW_DBG_ADAPTIVITY, "l2h=%d, h2l=%d", l2h, h2l); ++ rtw_phy_set_edcca_th(rtwdev, l2h, h2l); ++} ++ + static const u8 rtw8703b_pwrtrk_2gb_n[] = { + 0, 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, + 7, 7, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11 +@@ -1828,6 +1865,15 @@ static const struct coex_tdma_para tdma_sant_8703b[] = { + { {0x61, 0x08, 0x03, 0x11, 0x11} }, + }; + ++static const struct rtw_hw_reg_offset rtw8703b_edcca_th[] = { ++ [EDCCA_TH_L2H_IDX] = { ++ {.addr = 0xc4c, .mask = MASKBYTE0}, .offset = 0 ++ }, ++ [EDCCA_TH_H2L_IDX] = { ++ {.addr = 0xc4c, .mask = MASKBYTE2}, .offset = 0 ++ }, ++}; ++ + static const struct rtw_chip_ops rtw8703b_ops = { + .power_on = rtw_power_on, + .power_off = rtw_power_off, +@@ -1860,8 +1906,8 @@ static const struct rtw_chip_ops rtw8703b_ops = { + .config_bfee = NULL, + .set_gid_table = NULL, + .cfg_csi_rate = NULL, +- .adaptivity_init = NULL, +- .adaptivity = NULL, ++ .adaptivity_init = rtw8703b_adaptivity_init, ++ .adaptivity = rtw8703b_adaptivity, + .cfo_init = NULL, + .cfo_track = NULL, + .config_tx_path = NULL, +@@ -1903,6 +1949,9 @@ const struct rtw_chip_info rtw8703b_hw_spec = { + .rx_ldpc = false, + .tx_stbc = false, + .max_power_index = 0x3f, ++ .edcca_th = rtw8703b_edcca_th, ++ .l2h_th_ini_cs = 10, /* -50 dBm */ ++ .l2h_th_ini_ad = -11, + .ampdu_density = IEEE80211_HT_MPDU_DENSITY_16, + .usb_tx_agg_desc_num = 1, /* Not sure if this chip has USB interface */ + .hw_feature_report = true, +diff --git a/drivers/net/wireless/realtek/rtw88/rtw8703b.h b/drivers/net/wireless/realtek/rtw88/rtw8703b.h +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/realtek/rtw88/rtw8703b.h ++++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.h +@@ -91,6 +91,8 @@ struct phy_status_8703b { + #define REG_OFDM0_TX_PSD_NOISE 0x0ce4 /* TX pseudo noise weighting */ + #define REG_IQK_RDY 0x0e90 /* is != 0 when IQK is done */ + ++#define REG_EDCCA_DCNF 0x0e24 ++ + /* RF registers */ + #define RF_RCK1 0x1E + +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/rtw88-6.18/0002-Implement-CFO-tracking.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/rtw88-6.18/0002-Implement-CFO-tracking.patch new file mode 100644 index 000000000..bc0a2cb1f --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/rtw88-6.18/0002-Implement-CFO-tracking.patch @@ -0,0 +1,237 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Fiona Klute +Date: Fri, 2 Feb 2024 22:29:41 +0100 +Subject: Implement CFO tracking + +This makes RX a lot more stable in my network. The chip still doesn't +really go beyond MCS 1. + +Signed-off-by: Fiona Klute +--- + drivers/net/wireless/realtek/rtw88/main.h | 1 + + drivers/net/wireless/realtek/rtw88/rtw8703b.c | 148 +++++++++- + drivers/net/wireless/realtek/rtw88/rtw8703b.h | 3 + + drivers/net/wireless/realtek/rtw88/rtw8723x.h | 1 + + 4 files changed, 150 insertions(+), 3 deletions(-) + +diff --git a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/realtek/rtw88/main.h +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/realtek/rtw88/main.h ++++ b/drivers/net/wireless/realtek/rtw88/main.h +@@ -1686,6 +1686,7 @@ enum rtw_edcca_mode { + + struct rtw_cfo_track { + bool is_adjust; ++ bool atc_enable; + u8 crystal_cap; + s32 cfo_tail[RTW_RF_PATH_MAX]; + s32 cfo_cnt[RTW_RF_PATH_MAX]; +diff --git a/drivers/net/wireless/realtek/rtw88/rtw8703b.c b/drivers/net/wireless/realtek/rtw88/rtw8703b.c +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/realtek/rtw88/rtw8703b.c ++++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.c +@@ -577,7 +577,7 @@ static void rtw8703b_pwrtrack_init(struct rtw_dev *rtwdev) + + static void rtw8703b_phy_set_param(struct rtw_dev *rtwdev) + { +- u8 xtal_cap = rtwdev->efuse.crystal_cap & 0x3F; ++ u8 xtal_cap = rtwdev->efuse.crystal_cap & XCAP_MASK_8703B; + + /* power on BB/RF domain */ + rtw_write16_set(rtwdev, REG_SYS_FUNC_EN, +@@ -953,6 +953,8 @@ static void query_phy_status_ofdm(struct rtw_dev *rtwdev, u8 *phy_raw, + val_s8 = clamp_t(s8, -val_s8 >> 1, 0, 64); + val_s8 &= 0x3F; /* 64->0: second path of 1SS rate is 64 */ + dm_info->rx_evm_dbm[RF_PATH_A] = val_s8; ++ ++ rtw_phy_parsing_cfo(rtwdev, pkt_stat); + } + + static void query_phy_status(struct rtw_dev *rtwdev, u8 *phy_status, +@@ -1727,6 +1729,146 @@ static void rtw8703b_adaptivity(struct rtw_dev *rtwdev) + rtw_phy_set_edcca_th(rtwdev, l2h, h2l); + } + ++static void rtw8703b_cfo_init(struct rtw_dev *rtwdev) ++{ ++ struct rtw_dm_info *dm_info = &rtwdev->dm_info; ++ struct rtw_cfo_track *cfo = &dm_info->cfo_track; ++ ++ cfo->crystal_cap = rtwdev->efuse.crystal_cap; ++ cfo->is_adjust = true; ++ cfo->atc_enable = rtw_read32_mask(rtwdev, REG_OFDM1_CFOTRK, BIT_EN_ATC); ++} ++ ++#define XCAP_EXTEND(val) ({typeof(val) _v = (val); _v | _v << 6; }) ++static void rtw8703b_set_crystal_cap_reg(struct rtw_dev *rtwdev, u8 crystal_cap) ++{ ++ struct rtw_dm_info *dm_info = &rtwdev->dm_info; ++ struct rtw_cfo_track *cfo = &dm_info->cfo_track; ++ u32 val = 0; ++ ++ val = XCAP_EXTEND(crystal_cap); ++ cfo->crystal_cap = crystal_cap; ++ rtw_write32_mask(rtwdev, REG_AFE_CTRL3, BIT_MASK_XTAL, val); ++} ++ ++static void rtw8703b_set_crystal_cap(struct rtw_dev *rtwdev, u8 crystal_cap) ++{ ++ struct rtw_dm_info *dm_info = &rtwdev->dm_info; ++ struct rtw_cfo_track *cfo = &dm_info->cfo_track; ++ ++ if (cfo->crystal_cap == crystal_cap) ++ return; ++ ++ rtw8703b_set_crystal_cap_reg(rtwdev, crystal_cap); ++ rtw_dbg(rtwdev, RTW_DBG_CFO, "[CFO] XTAL=0x%x\n", crystal_cap); ++} ++ ++static void rtw8703b_cfo_tracking_reset(struct rtw_dev *rtwdev) ++{ ++ struct rtw_dm_info *dm_info = &rtwdev->dm_info; ++ struct rtw_cfo_track *cfo = &dm_info->cfo_track; ++ ++ cfo->is_adjust = true; ++ ++ if (cfo->crystal_cap > rtwdev->efuse.crystal_cap) ++ rtw8703b_set_crystal_cap(rtwdev, cfo->crystal_cap - 1); ++ else if (cfo->crystal_cap < rtwdev->efuse.crystal_cap) ++ rtw8703b_set_crystal_cap(rtwdev, cfo->crystal_cap + 1); ++} ++ ++#define REPORT_TO_KHZ(val) ({typeof(val) _v = (val); (_v << 1) + (_v >> 1); }) ++static s32 rtw8703b_cfo_calc_avg(struct rtw_dev *rtwdev) ++{ ++ struct rtw_dm_info *dm_info = &rtwdev->dm_info; ++ struct rtw_cfo_track *cfo = &dm_info->cfo_track; ++ s32 cfo_avg, cfo_rpt_sum; ++ ++ cfo_rpt_sum = REPORT_TO_KHZ(cfo->cfo_tail[0]); ++ ++ if (cfo->cfo_cnt[0]) ++ cfo_avg = cfo_rpt_sum / cfo->cfo_cnt[0]; ++ else ++ cfo_avg = 0; ++ ++ cfo->cfo_tail[0] = 0; ++ cfo->cfo_cnt[0] = 0; ++ ++ return cfo_avg; ++} ++ ++#define CFO_TRK_ENABLE_TH 20 ++#define CFO_TRK_STOP_TH 10 ++#define CFO_TRK_ADJ_TH 10 ++#define CFO_ATC_TH 80 ++ ++static void rtw8703b_cfo_need_adjust(struct rtw_dev *rtwdev, s32 cfo_avg) ++{ ++ struct rtw_dm_info *dm_info = &rtwdev->dm_info; ++ struct rtw_cfo_track *cfo = &dm_info->cfo_track; ++ ++ if (!cfo->is_adjust) { ++ if (abs(cfo_avg) > CFO_TRK_ENABLE_TH) ++ cfo->is_adjust = true; ++ } else { ++ if (abs(cfo_avg) <= CFO_TRK_STOP_TH) ++ cfo->is_adjust = false; ++ } ++ ++ if (!rtw_coex_disabled(rtwdev)) { ++ cfo->is_adjust = false; ++ rtw8703b_set_crystal_cap(rtwdev, rtwdev->efuse.crystal_cap); ++ } ++} ++ ++static void rtw8703b_cfo_set_atc(struct rtw_dev *rtwdev, bool enable) ++{ ++ struct rtw_dm_info *dm_info = &rtwdev->dm_info; ++ struct rtw_cfo_track *cfo = &dm_info->cfo_track; ++ ++ if (cfo->atc_enable == enable) ++ return; ++ ++ rtw_write32_mask(rtwdev, REG_OFDM1_CFOTRK, BIT_EN_ATC, enable); ++ cfo->atc_enable = enable; ++ rtw_dbg(rtwdev, RTW_DBG_CFO, "[CFO] ATC: %s\n", ++ enable ? "enabled" : "disabled"); ++} ++ ++static void rtw8703b_cfo_track(struct rtw_dev *rtwdev) ++{ ++ struct rtw_dm_info *dm_info = &rtwdev->dm_info; ++ struct rtw_cfo_track *cfo = &dm_info->cfo_track; ++ s8 crystal_cap = cfo->crystal_cap; ++ s32 cfo_avg = 0; ++ ++ if (rtwdev->sta_cnt != 1) { ++ rtw8703b_cfo_tracking_reset(rtwdev); ++ return; ++ } ++ ++ if (cfo->packet_count == cfo->packet_count_pre) ++ return; ++ ++ cfo->packet_count_pre = cfo->packet_count; ++ cfo_avg = rtw8703b_cfo_calc_avg(rtwdev); ++ rtw8703b_cfo_need_adjust(rtwdev, cfo_avg); ++ ++ if (cfo->is_adjust) { ++ if (cfo_avg > CFO_TRK_ADJ_TH) ++ crystal_cap++; ++ else if (cfo_avg < -CFO_TRK_ADJ_TH) ++ crystal_cap--; ++ ++ crystal_cap = clamp_t(s8, crystal_cap, 0, XCAP_MASK_8703B); ++ rtw8703b_set_crystal_cap(rtwdev, (u8)crystal_cap); ++ } ++ ++ if (abs(cfo_avg) > CFO_ATC_TH) ++ rtw8703b_cfo_set_atc(rtwdev, true); ++ else ++ rtw8703b_cfo_set_atc(rtwdev, false); ++} ++ + static const u8 rtw8703b_pwrtrk_2gb_n[] = { + 0, 0, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, + 7, 7, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11 +@@ -1908,8 +2050,8 @@ static const struct rtw_chip_ops rtw8703b_ops = { + .cfg_csi_rate = NULL, + .adaptivity_init = rtw8703b_adaptivity_init, + .adaptivity = rtw8703b_adaptivity, +- .cfo_init = NULL, +- .cfo_track = NULL, ++ .cfo_init = rtw8703b_cfo_init, ++ .cfo_track = rtw8703b_cfo_track, + .config_tx_path = NULL, + .config_txrx_mode = NULL, + .fill_txdesc_checksum = rtw8723x_fill_txdesc_checksum, +diff --git a/drivers/net/wireless/realtek/rtw88/rtw8703b.h b/drivers/net/wireless/realtek/rtw88/rtw8703b.h +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/realtek/rtw88/rtw8703b.h ++++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.h +@@ -70,6 +70,9 @@ struct phy_status_8703b { + #endif + } __packed; + ++/* value mask (and maximum) for crystal cap setting */ ++#define XCAP_MASK_8703B 0x3f ++ + /* Baseband registers */ + #define REG_BB_PWR_SAV5_11N 0x0818 + /* BIT(11) should be 1 for 8703B *and* 8723D, which means LNA uses 4 +diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723x.h b/drivers/net/wireless/realtek/rtw88/rtw8723x.h +index 111111111111..222222222222 100644 +--- a/drivers/net/wireless/realtek/rtw88/rtw8723x.h ++++ b/drivers/net/wireless/realtek/rtw88/rtw8723x.h +@@ -285,6 +285,7 @@ extern const struct rtw8723x_common rtw8723x_common; + #define REG_CTX 0x0d03 + #define BIT_MASK_CTX_TYPE GENMASK(6, 4) + #define REG_OFDM1_CFOTRK 0x0d2c ++#define BIT_EN_ATC BIT(11) + #define BIT_EN_CFOTRK BIT(28) + #define REG_OFDM1_CSI1 0x0d40 + #define REG_OFDM1_CSI2 0x0d44 +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-Set-fifo-size-for-uarts.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/speed-6.18/0001-arm64-dts-sun50i-a64-Set-fifo-size-for-uarts.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-Set-fifo-size-for-uarts.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/speed-6.18/0001-arm64-dts-sun50i-a64-Set-fifo-size-for-uarts.patch index 09a7e272e..8834984d7 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-dts-sun50i-a64-Set-fifo-size-for-uarts.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/speed-6.18/0001-arm64-dts-sun50i-a64-Set-fifo-size-for-uarts.patch @@ -1,4 +1,4 @@ -From 538b7bed8233cd18367cd34fb607d8a967aff845 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 1 Feb 2020 23:41:18 +0100 Subject: arm64: dts: sun50i-a64: Set fifo-size for uarts @@ -11,10 +11,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 5 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index 9a43bcc2f489..d53a6f7e086a 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -1012,6 +1012,7 @@ uart0: serial@1c28000 { +@@ -1018,6 +1018,7 @@ uart0: serial@1c28000 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -22,7 +22,7 @@ index 9a43bcc2f489..d53a6f7e086a 100644 clocks = <&ccu CLK_BUS_UART0>; resets = <&ccu RST_BUS_UART0>; status = "disabled"; -@@ -1023,6 +1024,7 @@ uart1: serial@1c28400 { +@@ -1029,6 +1030,7 @@ uart1: serial@1c28400 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -30,7 +30,7 @@ index 9a43bcc2f489..d53a6f7e086a 100644 clocks = <&ccu CLK_BUS_UART1>; resets = <&ccu RST_BUS_UART1>; status = "disabled"; -@@ -1034,6 +1036,7 @@ uart2: serial@1c28800 { +@@ -1040,6 +1042,7 @@ uart2: serial@1c28800 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -38,7 +38,7 @@ index 9a43bcc2f489..d53a6f7e086a 100644 clocks = <&ccu CLK_BUS_UART2>; resets = <&ccu RST_BUS_UART2>; status = "disabled"; -@@ -1045,6 +1048,7 @@ uart3: serial@1c28c00 { +@@ -1051,6 +1054,7 @@ uart3: serial@1c28c00 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -46,7 +46,7 @@ index 9a43bcc2f489..d53a6f7e086a 100644 clocks = <&ccu CLK_BUS_UART3>; resets = <&ccu RST_BUS_UART3>; status = "disabled"; -@@ -1056,6 +1060,7 @@ uart4: serial@1c29000 { +@@ -1062,6 +1066,7 @@ uart4: serial@1c29000 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -55,5 +55,5 @@ index 9a43bcc2f489..d53a6f7e086a 100644 resets = <&ccu RST_BUS_UART4>; status = "disabled"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/speed-6.18/0002-ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch similarity index 82% rename from patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/speed-6.18/0002-ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch index c64ba9192..f766893b5 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/speed-6.18/0002-ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch @@ -1,4 +1,4 @@ -From 407da3bb87888f573863184cbd690280c001ad23 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sat, 1 Feb 2020 23:41:47 +0100 Subject: ARM: dts: sun8i-a83t: Set fifo-size for uarts @@ -11,10 +11,10 @@ Signed-off-by: Ondrej Jirman 1 file changed, 5 insertions(+) diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -index c6e5d556f9f6..47c8541f7779 100644 +index 111111111111..222222222222 100644 --- a/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi -@@ -926,6 +926,7 @@ uart0: serial@1c28000 { +@@ -956,6 +956,7 @@ uart0: serial@1c28000 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -22,7 +22,7 @@ index c6e5d556f9f6..47c8541f7779 100644 clocks = <&ccu CLK_BUS_UART0>; resets = <&ccu RST_BUS_UART0>; status = "disabled"; -@@ -937,6 +938,7 @@ uart1: serial@1c28400 { +@@ -967,6 +968,7 @@ uart1: serial@1c28400 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -30,7 +30,7 @@ index c6e5d556f9f6..47c8541f7779 100644 clocks = <&ccu CLK_BUS_UART1>; resets = <&ccu RST_BUS_UART1>; status = "disabled"; -@@ -948,6 +950,7 @@ uart2: serial@1c28800 { +@@ -978,6 +980,7 @@ uart2: serial@1c28800 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -38,7 +38,7 @@ index c6e5d556f9f6..47c8541f7779 100644 clocks = <&ccu CLK_BUS_UART2>; resets = <&ccu RST_BUS_UART2>; status = "disabled"; -@@ -959,6 +962,7 @@ uart3: serial@1c28c00 { +@@ -989,6 +992,7 @@ uart3: serial@1c28c00 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -46,7 +46,7 @@ index c6e5d556f9f6..47c8541f7779 100644 clocks = <&ccu CLK_BUS_UART3>; resets = <&ccu RST_BUS_UART3>; status = "disabled"; -@@ -970,6 +974,7 @@ uart4: serial@1c29000 { +@@ -1000,6 +1004,7 @@ uart4: serial@1c29000 { interrupts = ; reg-shift = <2>; reg-io-width = <4>; @@ -55,5 +55,5 @@ index c6e5d556f9f6..47c8541f7779 100644 resets = <&ccu RST_BUS_UART4>; status = "disabled"; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/Mark-some-slow-drivers-for-async-probe-with-PROBE_PREFER_ASYNCH.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/speed-6.18/0003-Mark-some-slow-drivers-for-async-probe-with-PROBE_PR.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.megous/Mark-some-slow-drivers-for-async-probe-with-PROBE_PREFER_ASYNCH.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/speed-6.18/0003-Mark-some-slow-drivers-for-async-probe-with-PROBE_PR.patch index 58607b598..ad673d7a0 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/Mark-some-slow-drivers-for-async-probe-with-PROBE_PREFER_ASYNCH.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/speed-6.18/0003-Mark-some-slow-drivers-for-async-probe-with-PROBE_PR.patch @@ -1,4 +1,4 @@ -From 3f375e42748006d39032cb24896f6ad01c57f507 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Mon, 10 Feb 2020 01:00:12 +0100 Subject: Mark some slow drivers for async probe with PROBE_PREFER_ASYNCHRONOUS @@ -12,10 +12,10 @@ Signed-off-by: Ondrej Jirman 2 files changed, 2 insertions(+) diff --git a/drivers/iio/accel/bma180.c b/drivers/iio/accel/bma180.c -index 93a868678722..c637d04a2a76 100644 +index 111111111111..222222222222 100644 --- a/drivers/iio/accel/bma180.c +++ b/drivers/iio/accel/bma180.c -@@ -1126,6 +1126,7 @@ static struct i2c_driver bma180_driver = { +@@ -1122,6 +1122,7 @@ static struct i2c_driver bma180_driver = { .name = "bma180", .pm = pm_sleep_ptr(&bma180_pm_ops), .of_match_table = bma180_of_match, @@ -24,7 +24,7 @@ index 93a868678722..c637d04a2a76 100644 .probe = bma180_probe, .remove = bma180_remove, diff --git a/drivers/nfc/nxp-nci/i2c.c b/drivers/nfc/nxp-nci/i2c.c -index 049662ffdf97..35986be81ee3 100644 +index 111111111111..222222222222 100644 --- a/drivers/nfc/nxp-nci/i2c.c +++ b/drivers/nfc/nxp-nci/i2c.c @@ -348,6 +348,7 @@ static struct i2c_driver nxp_nci_i2c_driver = { @@ -36,5 +36,5 @@ index 049662ffdf97..35986be81ee3 100644 .probe = nxp_nci_i2c_probe, .id_table = nxp_nci_i2c_id_table, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-xor-Select-32regs-without-benchmark-to-speed-up-boot.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/speed-6.18/0004-arm64-xor-Select-32regs-without-benchmark-to-speed-u.patch similarity index 87% rename from patch/kernel/archive/sunxi-6.16/patches.megous/arm64-xor-Select-32regs-without-benchmark-to-speed-up-boot.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/speed-6.18/0004-arm64-xor-Select-32regs-without-benchmark-to-speed-u.patch index b83aced0b..ec3219960 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/arm64-xor-Select-32regs-without-benchmark-to-speed-up-boot.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/speed-6.18/0004-arm64-xor-Select-32regs-without-benchmark-to-speed-u.patch @@ -1,4 +1,4 @@ -From 89163782655ea1a6507c0445e55d220711d5d7c8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Thu, 10 Sep 2020 21:38:28 +0200 Subject: arm64: xor: Select 32regs without benchmark to speed up boot @@ -7,11 +7,11 @@ Subject: arm64: xor: Select 32regs without benchmark to speed up boot Signed-off-by: Ondrej Jirman --- - arch/arm64/include/asm/xor.h | 14 ++++---------- + arch/arm64/include/asm/xor.h | 14 +++------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/arch/arm64/include/asm/xor.h b/arch/arm64/include/asm/xor.h -index befcd8a7abc9..e4487ddc76e1 100644 +index 111111111111..222222222222 100644 --- a/arch/arm64/include/asm/xor.h +++ b/arch/arm64/include/asm/xor.h @@ -57,21 +57,15 @@ xor_neon_5(unsigned long bytes, unsigned long * __restrict p1, @@ -41,5 +41,5 @@ index befcd8a7abc9..e4487ddc76e1 100644 #endif /* ! CONFIG_KERNEL_MODE_NEON */ -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/stk3310-6.18/0001-iio-light-stk3310-Implement-vdd-supply-and-power-it-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/stk3310-6.18/0001-iio-light-stk3310-Implement-vdd-supply-and-power-it-.patch new file mode 100644 index 000000000..367d63566 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/stk3310-6.18/0001-iio-light-stk3310-Implement-vdd-supply-and-power-it-.patch @@ -0,0 +1,130 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sat, 20 May 2023 16:49:36 +0200 +Subject: iio: light: stk3310: Implement vdd supply and power it off during + suspend + +VDD power input can be used to completely power off the chip during +system suspend. Do so if available. + +Signed-off-by: Ondrej Jirman +--- + drivers/iio/light/stk3310.c | 48 +++++++++- + 1 file changed, 45 insertions(+), 3 deletions(-) + +diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c +index 111111111111..222222222222 100644 +--- a/drivers/iio/light/stk3310.c ++++ b/drivers/iio/light/stk3310.c +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + + #define STK3310_REG_STATE 0x00 + #define STK3310_REG_PSCTRL 0x01 +@@ -128,6 +129,7 @@ struct stk3310_data { + struct regmap_field *reg_int_ps; + struct regmap_field *reg_flag_psint; + struct regmap_field *reg_flag_nf; ++ struct regulator *vdd_reg; + }; + + static const struct iio_event_spec stk3310_events[] = { +@@ -619,6 +621,11 @@ static int stk3310_probe(struct i2c_client *client) + + mutex_init(&data->lock); + ++ data->vdd_reg = devm_regulator_get_optional(&client->dev, "vdd"); ++ if (IS_ERR(data->vdd_reg)) ++ return dev_err_probe(&client->dev, PTR_ERR(data->vdd_reg), ++ "get regulator vdd failed\n"); ++ + ret = stk3310_regmap_init(data); + if (ret < 0) + return ret; +@@ -629,9 +636,16 @@ static int stk3310_probe(struct i2c_client *client) + indio_dev->channels = stk3310_channels; + indio_dev->num_channels = ARRAY_SIZE(stk3310_channels); + ++ if (data->vdd_reg) { ++ ret = regulator_enable(data->vdd_reg); ++ if (ret) ++ return dev_err_probe(&client->dev, ret, ++ "regulator vdd enable failed\n"); ++ } ++ + ret = stk3310_init(indio_dev); + if (ret < 0) +- return ret; ++ goto err_vdd_disable; + + if (client->irq > 0) { + ret = devm_request_threaded_irq(&client->dev, client->irq, +@@ -657,32 +671,60 @@ static int stk3310_probe(struct i2c_client *client) + + err_standby: + stk3310_set_state(data, STK3310_STATE_STANDBY); ++err_vdd_disable: ++ if (data->vdd_reg) ++ regulator_disable(data->vdd_reg); + return ret; + } + + static void stk3310_remove(struct i2c_client *client) + { + struct iio_dev *indio_dev = i2c_get_clientdata(client); ++ struct stk3310_data *data = iio_priv(indio_dev); + + iio_device_unregister(indio_dev); + stk3310_set_state(iio_priv(indio_dev), STK3310_STATE_STANDBY); ++ if (data->vdd_reg) ++ regulator_disable(data->vdd_reg); + } + + static int stk3310_suspend(struct device *dev) + { + struct stk3310_data *data; ++ int ret; + + data = iio_priv(i2c_get_clientdata(to_i2c_client(dev))); + +- return stk3310_set_state(data, STK3310_STATE_STANDBY); ++ ret = stk3310_set_state(data, STK3310_STATE_STANDBY); ++ if (ret) ++ return ret; ++ ++ if (data->vdd_reg) { ++ regcache_mark_dirty(data->regmap); ++ regulator_disable(data->vdd_reg); ++ } ++ ++ return 0; + } + + static int stk3310_resume(struct device *dev) + { +- u8 state = 0; + struct stk3310_data *data; ++ u8 state = 0; ++ int ret; + + data = iio_priv(i2c_get_clientdata(to_i2c_client(dev))); ++ ++ if (data->vdd_reg) { ++ ret = regulator_enable(data->vdd_reg); ++ if (ret) { ++ dev_err(dev, "Failed to re-enable regulator vdd\n"); ++ return ret; ++ } ++ ++ regcache_sync(data->regmap); ++ } ++ + if (data->ps_enabled) + state |= STK3310_STATE_EN_PS; + if (data->als_enabled) +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/stk3310-6.18/0002-iio-light-stk3310-Add-support-for-I2C-regulator.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/stk3310-6.18/0002-iio-light-stk3310-Add-support-for-I2C-regulator.patch new file mode 100644 index 000000000..d9295d92a --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/stk3310-6.18/0002-iio-light-stk3310-Add-support-for-I2C-regulator.patch @@ -0,0 +1,98 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Sun, 21 May 2023 01:28:14 +0200 +Subject: iio: light: stk3310: Add support for I2C regulator + +I2C bus power is needed for communication with the device, but it's +not critical to keep the internal state of the sensor. Handle it +appropriately. + +Signed-off-by: Ondrej Jirman +--- + drivers/iio/light/stk3310.c | 26 +++++++++- + 1 file changed, 25 insertions(+), 1 deletion(-) + +diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c +index 111111111111..222222222222 100644 +--- a/drivers/iio/light/stk3310.c ++++ b/drivers/iio/light/stk3310.c +@@ -130,6 +130,7 @@ struct stk3310_data { + struct regmap_field *reg_flag_psint; + struct regmap_field *reg_flag_nf; + struct regulator *vdd_reg; ++ struct regulator *i2c_reg; + }; + + static const struct iio_event_spec stk3310_events[] = { +@@ -626,6 +627,11 @@ static int stk3310_probe(struct i2c_client *client) + return dev_err_probe(&client->dev, PTR_ERR(data->vdd_reg), + "get regulator vdd failed\n"); + ++ data->i2c_reg = devm_regulator_get(&client->dev, "i2c"); ++ if (IS_ERR(data->i2c_reg)) ++ return dev_err_probe(&client->dev, PTR_ERR(data->i2c_reg), ++ "get regulator i2c failed\n"); ++ + ret = stk3310_regmap_init(data); + if (ret < 0) + return ret; +@@ -643,9 +649,15 @@ static int stk3310_probe(struct i2c_client *client) + "regulator vdd enable failed\n"); + } + ++ ret = regulator_enable(data->i2c_reg); ++ if (ret) { ++ dev_err_probe(&client->dev, ret, "regulator i2c enable failed\n"); ++ goto err_vdd_disable; ++ } ++ + ret = stk3310_init(indio_dev); + if (ret < 0) +- goto err_vdd_disable; ++ goto err_i2c_disable; + + if (client->irq > 0) { + ret = devm_request_threaded_irq(&client->dev, client->irq, +@@ -671,6 +683,8 @@ static int stk3310_probe(struct i2c_client *client) + + err_standby: + stk3310_set_state(data, STK3310_STATE_STANDBY); ++err_i2c_disable: ++ regulator_disable(data->i2c_reg); + err_vdd_disable: + if (data->vdd_reg) + regulator_disable(data->vdd_reg); +@@ -684,6 +698,7 @@ static void stk3310_remove(struct i2c_client *client) + + iio_device_unregister(indio_dev); + stk3310_set_state(iio_priv(indio_dev), STK3310_STATE_STANDBY); ++ regulator_disable(data->i2c_reg); + if (data->vdd_reg) + regulator_disable(data->vdd_reg); + } +@@ -704,6 +719,8 @@ static int stk3310_suspend(struct device *dev) + regulator_disable(data->vdd_reg); + } + ++ regulator_disable(data->i2c_reg); ++ + return 0; + } + +@@ -725,6 +742,13 @@ static int stk3310_resume(struct device *dev) + regcache_sync(data->regmap); + } + ++ ret = regulator_enable(data->i2c_reg); ++ if (ret) { ++ dev_err(dev, "Failed to re-enable regulator i2c\n"); ++ regulator_disable(data->vdd_reg); ++ return ret; ++ } ++ + if (data->ps_enabled) + state |= STK3310_STATE_EN_PS; + if (data->als_enabled) +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.18/patches.megous/stk3310-6.18/0003-iio-stk3310-Fix-regulator-disable-enable-order.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/stk3310-6.18/0003-iio-stk3310-Fix-regulator-disable-enable-order.patch new file mode 100644 index 000000000..be910848f --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/stk3310-6.18/0003-iio-stk3310-Fix-regulator-disable-enable-order.patch @@ -0,0 +1,67 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Thu, 4 Apr 2024 21:43:13 +0200 +Subject: iio: stk3310: Fix regulator disable/enable order + +Signed-off-by: Ondrej Jirman +[Aren: Added delay after vdd regulator enable] +Signed-off-by: Aren Moynihan +--- + drivers/iio/light/stk3310.c | 21 +++++----- + 1 file changed, 11 insertions(+), 10 deletions(-) + +diff --git a/drivers/iio/light/stk3310.c b/drivers/iio/light/stk3310.c +index 111111111111..222222222222 100644 +--- a/drivers/iio/light/stk3310.c ++++ b/drivers/iio/light/stk3310.c +@@ -714,12 +714,12 @@ static int stk3310_suspend(struct device *dev) + if (ret) + return ret; + +- if (data->vdd_reg) { ++ if (data->vdd_reg) + regcache_mark_dirty(data->regmap); +- regulator_disable(data->vdd_reg); +- } + + regulator_disable(data->i2c_reg); ++ if (data->vdd_reg) ++ regulator_disable(data->vdd_reg); + + return 0; + } +@@ -732,23 +732,24 @@ static int stk3310_resume(struct device *dev) + + data = iio_priv(i2c_get_clientdata(to_i2c_client(dev))); + ++ ret = regulator_enable(data->i2c_reg); ++ if (ret) { ++ dev_err(dev, "Failed to re-enable regulator i2c\n"); ++ return ret; ++ } ++ + if (data->vdd_reg) { + ret = regulator_enable(data->vdd_reg); + if (ret) { ++ regulator_disable(data->i2c_reg); + dev_err(dev, "Failed to re-enable regulator vdd\n"); + return ret; + } + ++ usleep_range(1000, 2000); + regcache_sync(data->regmap); + } + +- ret = regulator_enable(data->i2c_reg); +- if (ret) { +- dev_err(dev, "Failed to re-enable regulator i2c\n"); +- regulator_disable(data->vdd_reg); +- return ret; +- } +- + if (data->ps_enabled) + state |= STK3310_STATE_EN_PS; + if (data->als_enabled) +-- +Armbian + diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-capture-Use-subdev-operation-to-access-bridge-f.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0001-media-sun6i-csi-capture-Use-subdev-operation-to-acce.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-capture-Use-subdev-operation-to-access-bridge-f.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0001-media-sun6i-csi-capture-Use-subdev-operation-to-acce.patch index f0e06d255..8bc866823 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-capture-Use-subdev-operation-to-access-bridge-f.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0001-media-sun6i-csi-capture-Use-subdev-operation-to-acce.patch @@ -1,4 +1,4 @@ -From 2409b62538d7e623fed03358219f80c79430482e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Wed, 4 Jan 2023 12:29:56 +0200 Subject: media: sun6i-csi: capture: Use subdev operation to access bridge @@ -18,13 +18,13 @@ change. Signed-off-by: Laurent Pinchart (cherry picked from commit e728c6bbead7a10d9ffd1139e416e1199b5837a6) --- - .../sunxi/sun6i-csi/sun6i_csi_bridge.c | 13 ++--------- - .../sunxi/sun6i-csi/sun6i_csi_bridge.h | 7 ------ - .../sunxi/sun6i-csi/sun6i_csi_capture.c | 23 ++++++++++++------- + drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c | 13 +----- + drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h | 7 --- + drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c | 23 ++++++---- 3 files changed, 17 insertions(+), 26 deletions(-) diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c -index d006d9dd0170..2303e5d2baee 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c @@ -15,17 +15,8 @@ @@ -48,7 +48,7 @@ index d006d9dd0170..2303e5d2baee 100644 if (mbus_code) *mbus_code = csi_dev->bridge.mbus_format.code; diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h -index 44653b38f722..722b633b7893 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h @@ -49,13 +49,6 @@ struct sun6i_csi_bridge { @@ -66,7 +66,7 @@ index 44653b38f722..722b633b7893 100644 const struct sun6i_csi_bridge_format * diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c -index 76356bc7f10e..4c43eaa42346 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c @@ -891,11 +891,14 @@ static int sun6i_csi_capture_link_validate(struct media_link *link) @@ -124,5 +124,5 @@ index 76356bc7f10e..4c43eaa42346 100644 goto invalid; } -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-subdev-Use-subdev-active-state-to-store-active-.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0002-media-sun6i-csi-subdev-Use-subdev-active-state-to-st.patch similarity index 97% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-subdev-Use-subdev-active-state-to-store-active-.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0002-media-sun6i-csi-subdev-Use-subdev-active-state-to-st.patch index 14beb44ce..e1d72b50c 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-subdev-Use-subdev-active-state-to-store-active-.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0002-media-sun6i-csi-subdev-Use-subdev-active-state-to-st.patch @@ -1,4 +1,4 @@ -From 0c438b3a5abbfe509eefb5303a2d8e4af7fe500a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 13 Jan 2024 21:24:24 +0100 Subject: media: sun6i-csi: subdev: Use subdev active state to store active @@ -22,12 +22,12 @@ from the sink pad to the source pad. Signed-off-by: Laurent Pinchart (cherry picked from commit b14038f024ad84473ed79f3baecc2da9ca16d9a5) --- - .../sunxi/sun6i-csi/sun6i_csi_bridge.c | 149 +++++++++--------- - .../sunxi/sun6i-csi/sun6i_csi_bridge.h | 2 - + drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c | 149 +++++----- + drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h | 2 - 2 files changed, 73 insertions(+), 78 deletions(-) diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c -index 2303e5d2baee..92290876a8b3 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c @@ -13,17 +13,6 @@ @@ -329,7 +329,7 @@ index 2303e5d2baee..92290876a8b3 100644 if (csi_dev->isp_available) ret = v4l2_async_register_subdev(subdev); diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h -index 722b633b7893..a5b0a6f064dd 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h @@ -42,8 +42,6 @@ struct sun6i_csi_bridge { @@ -342,5 +342,5 @@ index 722b633b7893..a5b0a6f064dd 100644 struct sun6i_csi_bridge_source source_parallel; struct sun6i_csi_bridge_source source_mipi_csi2; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-merge-sun6i_csi_formats-and-sun6i_csi_formats_m.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0003-media-sun6i-csi-merge-sun6i_csi_formats-and-sun6i_cs.patch similarity index 98% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-merge-sun6i_csi_formats-and-sun6i_csi_formats_m.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0003-media-sun6i-csi-merge-sun6i_csi_formats-and-sun6i_cs.patch index 7b1381c38..1e46e0059 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-merge-sun6i_csi_formats-and-sun6i_csi_formats_m.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0003-media-sun6i-csi-merge-sun6i_csi_formats-and-sun6i_cs.patch @@ -1,4 +1,4 @@ -From 85030c734bb151e5b91e79c635967ea53e3a3148 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Adam Pigg Date: Tue, 3 Jan 2023 18:20:21 +0000 Subject: media: sun6i-csi: merge sun6i_csi_formats and sun6i_csi_formats_match @@ -22,12 +22,12 @@ pixel formats. Signed-off-by: Adam Pigg --- - .../sunxi/sun6i-csi/sun6i_csi_capture.c | 211 +++++++++--------- - .../sunxi/sun6i-csi/sun6i_csi_capture.h | 6 +- + drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c | 211 +++++----- + drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.h | 6 +- 2 files changed, 102 insertions(+), 115 deletions(-) diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c -index 4c43eaa42346..ad9d1fca338d 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c @@ -22,6 +22,8 @@ @@ -410,7 +410,7 @@ index 4c43eaa42346..ad9d1fca338d 100644 return false; diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.h b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.h -index 3ee5ccefbd10..0484942834e3 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.h +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.h @@ -27,11 +27,7 @@ struct sun6i_csi_capture_format { @@ -427,5 +427,5 @@ index 3ee5ccefbd10..0484942834e3 100644 #undef current -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-add-V4L2_CAP_IO_MC-capability.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0004-media-sun6i-csi-add-V4L2_CAP_IO_MC-capability.patch similarity index 91% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-add-V4L2_CAP_IO_MC-capability.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0004-media-sun6i-csi-add-V4L2_CAP_IO_MC-capability.patch index 8f79af6e9..f08eb10f4 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-add-V4L2_CAP_IO_MC-capability.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0004-media-sun6i-csi-add-V4L2_CAP_IO_MC-capability.patch @@ -1,4 +1,4 @@ -From f0b0e2ae8bedcaaad48ced97ab1d257e6f778e7d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Adam Pigg Date: Tue, 3 Jan 2023 18:52:04 +0000 Subject: media: sun6i-csi: add V4L2_CAP_IO_MC capability @@ -14,14 +14,14 @@ mbus_code are enumeratd. Signed-off-by: Adam Pigg --- - .../sunxi/sun6i-csi/sun6i_csi_capture.c | 37 +++++++++++++++++-- + drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c | 37 +++++++++- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c -index ad9d1fca338d..f63862fd4e76 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c -@@ -720,13 +720,43 @@ static int sun6i_csi_capture_enum_fmt(struct file *file, void *private, +@@ -720,13 +720,43 @@ static int sun6i_csi_capture_enum_fmt(struct file *file, void *priv, struct v4l2_fmtdesc *fmtdesc) { u32 index = fmtdesc->index; @@ -66,7 +66,7 @@ index ad9d1fca338d..f63862fd4e76 100644 + return -EINVAL; } - static int sun6i_csi_capture_g_fmt(struct file *file, void *private, + static int sun6i_csi_capture_g_fmt(struct file *file, void *priv, @@ -1032,7 +1062,8 @@ int sun6i_csi_capture_setup(struct sun6i_csi_device *csi_dev) strscpy(video_dev->name, SUN6I_CSI_CAPTURE_NAME, @@ -78,5 +78,5 @@ index ad9d1fca338d..f63862fd4e76 100644 video_dev->release = video_device_release_empty; video_dev->fops = &sun6i_csi_capture_fops; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-implement-vidioc_enum_framesizes.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0005-media-sun6i-csi-implement-vidioc_enum_framesizes.patch similarity index 90% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-implement-vidioc_enum_framesizes.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0005-media-sun6i-csi-implement-vidioc_enum_framesizes.patch index 916c7c8e6..295614427 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-implement-vidioc_enum_framesizes.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0005-media-sun6i-csi-implement-vidioc_enum_framesizes.patch @@ -1,4 +1,4 @@ -From b0f43b9905231f2835e8f7475d3d545ce6bbca21 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Adam Pigg Date: Wed, 4 Jan 2023 21:18:51 +0000 Subject: media: sun6i-csi: implement vidioc_enum_framesizes @@ -15,14 +15,14 @@ width and height from the approriate macros, 32x32 - 4800x4800. Signed-off-by: Adam Pigg --- - .../sunxi/sun6i-csi/sun6i_csi_capture.c | 24 +++++++++++++++++++ + drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c | 24 ++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c -index f63862fd4e76..68560f451204 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_capture.c -@@ -793,6 +793,29 @@ static int sun6i_csi_capture_try_fmt(struct file *file, void *private, +@@ -793,6 +793,29 @@ static int sun6i_csi_capture_try_fmt(struct file *file, void *priv, return 0; } @@ -49,7 +49,7 @@ index f63862fd4e76..68560f451204 100644 + return 0; +} + - static int sun6i_csi_capture_enum_input(struct file *file, void *private, + static int sun6i_csi_capture_enum_input(struct file *file, void *priv, struct v4l2_input *input) { @@ -829,6 +852,7 @@ static const struct v4l2_ioctl_ops sun6i_csi_capture_ioctl_ops = { @@ -61,5 +61,5 @@ index f63862fd4e76..68560f451204 100644 .vidioc_enum_input = sun6i_csi_capture_enum_input, .vidioc_g_input = sun6i_csi_capture_g_input, -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-Add-multicamera-support-for-parallel-bus.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0006-media-sun6i-csi-Add-multicamera-support-for-parallel.patch similarity index 95% rename from patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-Add-multicamera-support-for-parallel-bus.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0006-media-sun6i-csi-Add-multicamera-support-for-parallel.patch index 7325e4049..a726dfffd 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/media-sun6i-csi-Add-multicamera-support-for-parallel-bus.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/sun6i-csi-6.18/0006-media-sun6i-csi-Add-multicamera-support-for-parallel.patch @@ -1,4 +1,4 @@ -From a1e98688f287ae916670c1a43cd98c786d8a31a1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 6 Jan 2023 11:25:09 +0100 Subject: media: sun6i-csi: Add multicamera support for parallel bus @@ -9,12 +9,12 @@ them by enabling/disabling media graph links. Signed-off-by: Ondrej Jirman --- - .../sunxi/sun6i-csi/sun6i_csi_bridge.c | 51 +++++++++++-------- - .../sunxi/sun6i-csi/sun6i_csi_bridge.h | 4 +- + drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c | 51 ++++++---- + drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h | 4 +- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c -index 92290876a8b3..0ea1fae7352e 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c @@ -207,12 +207,12 @@ static void sun6i_csi_bridge_disable(struct sun6i_csi_device *csi_dev) @@ -142,7 +142,7 @@ index 92290876a8b3..0ea1fae7352e 100644 ret = v4l2_async_nf_register(notifier); if (ret) { diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h -index a5b0a6f064dd..e755b67a2db3 100644 +index 111111111111..222222222222 100644 --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h @@ -38,12 +38,14 @@ struct sun6i_csi_bridge_async_subdev { @@ -162,5 +162,5 @@ index a5b0a6f064dd..e755b67a2db3 100644 }; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/Revert-usb-typec-tcpm-unregister-existing-source-caps-before-re.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0001-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/Revert-usb-typec-tcpm-unregister-existing-source-caps-before-re.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0001-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch index e0d220bd1..c65c38a34 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/Revert-usb-typec-tcpm-unregister-existing-source-caps-before-re.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0001-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch @@ -1,4 +1,4 @@ -From 18df5a34038c63bf771a9ab221c874e601b81f2e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Tue, 7 May 2024 18:39:12 +0200 Subject: Revert "usb: typec: tcpm: unregister existing source caps before @@ -10,7 +10,7 @@ This reverts commit 230ecdf71a644c9c73e0e6735b33173074ae3f94. 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c -index b2a568a5bc9b..41d285d8f9f2 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -3114,7 +3114,7 @@ static int tcpm_register_source_caps(struct tcpm_port *port) @@ -35,5 +35,5 @@ index b2a568a5bc9b..41d285d8f9f2 100644 if (IS_ERR(cap)) return PTR_ERR(cap); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPTACLE-bit.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0002-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPTACLE-bit.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0002-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch index 7786a72a5..94e80a7a0 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPTACLE-bit.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0002-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch @@ -1,4 +1,4 @@ -From d6b00ba0e47f4ae5dcb634d68bf6b2f69776e7ed Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Mon, 5 Sep 2022 00:56:07 +0200 Subject: usb: typec: altmodes: displayport: Respect DP_CAP_RECEPTACLE bit @@ -14,14 +14,14 @@ wrong VDO. Signed-off-by: Ondrej Jirman --- - drivers/usb/typec/altmodes/displayport.c | 50 +++++++++++++++++++++--- + drivers/usb/typec/altmodes/displayport.c | 50 +++++++++- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/altmodes/displayport.c -index d8b906ec4d1c..c4a9b2d4c350 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/altmodes/displayport.c +++ b/drivers/usb/typec/altmodes/displayport.c -@@ -116,11 +116,29 @@ static int dp_altmode_configure(struct dp_altmode *dp, u8 con) +@@ -123,11 +123,29 @@ static int dp_altmode_configure(struct dp_altmode *dp, u8 con) /* Account for active cable capabilities */ if (dp->plug_prime) pin_assign &= DP_CAP_UFP_D_PIN_ASSIGN(dp->plug_prime->vdo); @@ -51,7 +51,7 @@ index d8b906ec4d1c..c4a9b2d4c350 100644 /* Determining the initial pin assignment. */ if (!DP_CONF_GET_PIN_ASSIGN(dp->data.conf)) { /* Is USB together with DP preferred */ -@@ -729,15 +747,37 @@ int dp_altmode_probe(struct typec_altmode *alt) +@@ -757,15 +775,37 @@ int dp_altmode_probe(struct typec_altmode *alt) struct typec_altmode *plug = typec_altmode_get_plug(alt, TYPEC_PLUG_SOP_P); struct fwnode_handle *fwnode; struct dp_altmode *dp; @@ -95,5 +95,5 @@ index d8b906ec4d1c..c4a9b2d4c350 100644 dp = devm_kzalloc(&alt->dev, sizeof(*dp), GFP_KERNEL); if (!dp) -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-tcpm-Unregister-altmodes-before-registering-new-ones.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0003-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-tcpm-Unregister-altmodes-before-registering-new-ones.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0003-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch index 2d923c6bc..42b6d7ce3 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-tcpm-Unregister-altmodes-before-registering-new-ones.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0003-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch @@ -1,4 +1,4 @@ -From ae4e6f449c027fe4951c09a82da7eb844c32d192 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sun, 14 Aug 2022 16:23:28 +0200 Subject: usb: typec: tcpm: Unregister altmodes before registering new ones @@ -34,7 +34,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 3 insertions(+) diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c -index 1043efce328d..1f20ea608843 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -1863,6 +1863,9 @@ static void tcpm_register_partner_altmodes(struct tcpm_port *port) @@ -48,5 +48,5 @@ index 1043efce328d..1f20ea608843 100644 &modep->altmode_desc[i]); if (IS_ERR(altmode)) { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-tcpm-Fix-PD-devices-capabilities-registration.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0004-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch similarity index 94% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-tcpm-Fix-PD-devices-capabilities-registration.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0004-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch index d7cba7ea8..5ceb6c0a4 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-tcpm-Fix-PD-devices-capabilities-registration.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0004-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch @@ -1,4 +1,4 @@ -From b05486720062e0bded36291a6f54dfb7c1530598 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 18 Feb 2023 00:38:44 +0100 Subject: usb: typec: tcpm: Fix PD devices/capabilities registration @@ -11,11 +11,11 @@ Fixes "sysfs: cannot create duplicate filename Signed-off-by: Ondrej Jirman --- - drivers/usb/typec/tcpm/tcpm.c | 37 +++++++++++++++++++++++++++-------- + 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 735afaf197dd..6b02baceab3e 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -3118,15 +3118,22 @@ static int tcpm_register_source_caps(struct tcpm_port *port) @@ -91,5 +91,5 @@ index 735afaf197dd..6b02baceab3e 100644 cap = usb_power_delivery_register_capabilities(port->pds[i], &port->pd_list[i]->source_desc); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-tcpm-Improve-logs.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0005-usb-typec-tcpm-Improve-logs.patch similarity index 92% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-tcpm-Improve-logs.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0005-usb-typec-tcpm-Improve-logs.patch index 2a0eeab32..0b1d231bd 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-tcpm-Improve-logs.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/tcpm-6.18/0005-usb-typec-tcpm-Improve-logs.patch @@ -1,4 +1,4 @@ -From 8189e2f8b1e8d73890b335b4255fa07e1e11fb13 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Tue, 23 Nov 2021 17:58:05 +0100 Subject: usb: typec: tcpm: Improve logs @@ -7,11 +7,11 @@ This adds clarity to debugging. Signed-off-by: Ondrej Jirman --- - drivers/usb/typec/tcpm/tcpm.c | 15 +++++++++++---- + drivers/usb/typec/tcpm/tcpm.c | 15 +++++++--- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c -index 6b02baceab3e..9ce4a2cf7306 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/tcpm/tcpm.c +++ b/drivers/usb/typec/tcpm/tcpm.c @@ -1001,10 +1001,13 @@ static int tcpm_pd_transmit(struct tcpm_port *port, @@ -60,5 +60,5 @@ index 6b02baceab3e..9ce4a2cf7306 100644 port->vbus_never_low = false; switch (port->state) { -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-typec-extcon-Add-typec-extcon-bridge-driver.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/typec-extcon-6.18/0001-usb-typec-typec-extcon-Add-typec-extcon-bridge-drive.patch similarity index 97% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-typec-extcon-Add-typec-extcon-bridge-driver.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/typec-extcon-6.18/0001-usb-typec-typec-extcon-Add-typec-extcon-bridge-drive.patch index fab9196e2..868221e36 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-typec-extcon-Add-typec-extcon-bridge-driver.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/typec-extcon-6.18/0001-usb-typec-typec-extcon-Add-typec-extcon-bridge-drive.patch @@ -1,4 +1,4 @@ -From ae68b1494b8169fe39adadb59733998e5f54652d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Jirman?= Date: Sun, 7 Nov 2021 19:24:40 +0100 Subject: usb: typec: typec-extcon: Add typec -> extcon bridge driver @@ -11,12 +11,11 @@ Signed-off-by: Ondrej Jirman --- drivers/usb/typec/Kconfig | 7 + drivers/usb/typec/Makefile | 1 + - drivers/usb/typec/typec-extcon.c | 330 +++++++++++++++++++++++++++++++ + drivers/usb/typec/typec-extcon.c | 330 ++++++++++ 3 files changed, 338 insertions(+) - create mode 100644 drivers/usb/typec/typec-extcon.c diff --git a/drivers/usb/typec/Kconfig b/drivers/usb/typec/Kconfig -index 982b7c444a1f..9913435a0fd9 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/Kconfig +++ b/drivers/usb/typec/Kconfig @@ -122,6 +122,13 @@ config TYPEC_WUSB3801 @@ -34,7 +33,7 @@ index 982b7c444a1f..9913435a0fd9 100644 source "drivers/usb/typec/altmodes/Kconfig" diff --git a/drivers/usb/typec/Makefile b/drivers/usb/typec/Makefile -index 3f8ff94ad294..0b2d1d251c53 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/Makefile +++ b/drivers/usb/typec/Makefile @@ -12,4 +12,5 @@ obj-$(CONFIG_TYPEC_HD3SS3220) += hd3ss3220.o @@ -45,7 +44,7 @@ index 3f8ff94ad294..0b2d1d251c53 100644 obj-$(CONFIG_TYPEC) += mux/ diff --git a/drivers/usb/typec/typec-extcon.c b/drivers/usb/typec/typec-extcon.c new file mode 100644 -index 000000000000..e09cd7a28c24 +index 000000000000..111111111111 --- /dev/null +++ b/drivers/usb/typec/typec-extcon.c @@ -0,0 +1,330 @@ @@ -380,5 +379,5 @@ index 000000000000..e09cd7a28c24 +MODULE_AUTHOR("Ondrej Jirman "); +MODULE_DESCRIPTION("typec -> extcon bridge driver"); -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-typec-extcon-Enable-debugging-for-now.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/typec-extcon-6.18/0002-usb-typec-typec-extcon-Enable-debugging-for-now.patch similarity index 84% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-typec-extcon-Enable-debugging-for-now.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/typec-extcon-6.18/0002-usb-typec-typec-extcon-Enable-debugging-for-now.patch index 57d83bf77..d5edd3eef 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-typec-extcon-Enable-debugging-for-now.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/typec-extcon-6.18/0002-usb-typec-typec-extcon-Enable-debugging-for-now.patch @@ -1,4 +1,4 @@ -From 82e832f549443dd6784ff83736bbff1979c66f1f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Wed, 23 Mar 2022 14:21:34 +0100 Subject: usb: typec: typec-extcon: Enable debugging for now @@ -9,7 +9,7 @@ Signed-off-by: Ondrej Jirman 1 file changed, 1 insertion(+) diff --git a/drivers/usb/typec/typec-extcon.c b/drivers/usb/typec/typec-extcon.c -index e09cd7a28c24..f617e90b71a0 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/typec-extcon.c +++ b/drivers/usb/typec/typec-extcon.c @@ -5,6 +5,7 @@ @@ -21,5 +21,5 @@ index e09cd7a28c24..f617e90b71a0 100644 #include #include -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-typec-extcon-Allow-to-force-reset-on-each-mux-change.patch b/patch/kernel/archive/sunxi-6.18/patches.megous/typec-extcon-6.18/0003-usb-typec-typec-extcon-Allow-to-force-reset-on-each-.patch similarity index 88% rename from patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-typec-extcon-Allow-to-force-reset-on-each-mux-change.patch rename to patch/kernel/archive/sunxi-6.18/patches.megous/typec-extcon-6.18/0003-usb-typec-typec-extcon-Allow-to-force-reset-on-each-.patch index f8e5e594c..029f8d757 100644 --- a/patch/kernel/archive/sunxi-6.16/patches.megous/usb-typec-typec-extcon-Allow-to-force-reset-on-each-mux-change.patch +++ b/patch/kernel/archive/sunxi-6.18/patches.megous/typec-extcon-6.18/0003-usb-typec-typec-extcon-Allow-to-force-reset-on-each-.patch @@ -1,4 +1,4 @@ -From 35fa24b62d8fefe3c6eca767939391bb39569b1a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Thu, 9 Feb 2023 20:33:50 +0100 Subject: usb: typec: typec-extcon: Allow to force reset on each mux change @@ -7,11 +7,11 @@ This may help with some Alt-DP USB adapters. Signed-off-by: Ondrej Jirman --- - drivers/usb/typec/typec-extcon.c | 15 +++++++++++++++ + drivers/usb/typec/typec-extcon.c | 15 ++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/usb/typec/typec-extcon.c b/drivers/usb/typec/typec-extcon.c -index f617e90b71a0..81fc4114bc59 100644 +index 111111111111..222222222222 100644 --- a/drivers/usb/typec/typec-extcon.c +++ b/drivers/usb/typec/typec-extcon.c @@ -19,6 +19,10 @@ @@ -44,5 +44,5 @@ index f617e90b71a0..81fc4114bc59 100644 tce->mode = state->mode; tce->has_alt = alt != NULL; -- -2.51.0 +Armbian diff --git a/patch/kernel/archive/sunxi-6.16/series.armbian b/patch/kernel/archive/sunxi-6.18/series.armbian similarity index 100% rename from patch/kernel/archive/sunxi-6.16/series.armbian rename to patch/kernel/archive/sunxi-6.18/series.armbian diff --git a/patch/kernel/archive/sunxi-6.18/series.conf b/patch/kernel/archive/sunxi-6.18/series.conf new file mode 100644 index 000000000..2f55c6ff3 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.18/series.conf @@ -0,0 +1,552 @@ +# +# This file is made manually by simply copying text +# from the target series.* files. +# Add (-) at the beginning of the line if the patch should not be applied. +# At the same time, the patch does not need to be deleted. +# +# Source: https://codeberg.org/megi/linux/src/branch/orange-pi-6.18 + +patches.megous/a711-6.18/0001-nfc-pn544-Add-support-for-VBAT-PVDD-regulators.patch +patches.megous/a711-6.18/0002-bluetooth-bcm-Restore-drive_rts_on_open-true-behavio.patch +patches.megous/a711-6.18/0003-mmc-add-delay-after-power-class-selection.patch +patches.megous/a711-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Add-PN544-NFC-support.patch +patches.megous/a711-6.18/0005-ARM-dts-sun8i-a83t-tbs-a711-Add-powerup-down-support.patch +patches.megous/a711-6.18/0006-ARM-dts-sun8i-a83t-Add-cedrus-video-codec-support-to.patch +patches.megous/a711-6.18/0007-ARM-dts-suni-a83t-Add-i2s0-pins.patch +patches.megous/a711-6.18/0008-ARM-dts-sun8i-a83t-tbs-a711-Add-sound-support-via-AC.patch +patches.megous/a711-6.18/0009-ARM-dts-sun8i-a83t-tbs-a711-Add-regulators-to-the-ac.patch +patches.megous/a711-6.18/0010-ARM-dts-sun8i-a83t-tbs-a711-Add-camera-sensors-HM506.patch +patches.megous/a711-6.18/0011-ARM-dts-sun8i-a83t-tbs-a711-Add-flash-led-support.patch +patches.megous/a711-cams-6.18/0001-MAINTAINERS-Add-entry-for-Himax-HM5065.patch +patches.megous/a711-cams-6.18/0002-dt-bindings-media-Add-bindings-for-Himax-HM5065-came.patch +patches.megous/a711-cams-6.18/0003-hm5065-yaml-bindings-wip.patch +patches.megous/a711-cams-6.18/0004-media-hm5065-Add-subdev-driver-for-Himax-HM5065-came.patch +patches.megous/a711-cams-6.18/0005-media-i2c-gc2145-Move-upstream-driver-out-of-the-way.patch +patches.megous/a711-cams-6.18/0006-media-gc2145-Galaxycore-camera-module-driver.patch +patches.megous/a711-cams-6.18/0007-media-gc2145-Added-BGGR-bayer-mode.patch +patches.megous/a711-cams-6.18/0008-media-gc2145-Disable-debug-output.patch +patches.megous/a711-cams-6.18/0009-media-gc2145-Add-PIXEL_RATE-HBLANK-and-VBLANK-contro.patch +patches.megous/a711-cams-6.18/0010-media-gc2145-implement-system-suspend.patch +patches.megous/a711-cams-6.18/0011-media-gc2145-fix-white-balance-colors.patch +patches.megous/a711-cams-6.18/0012-media-i2c-gc2145-Parse-and-register-properties.patch +patches.megous/a711-chgled-6.18/0001-dt-bindings-leds-Add-a-binding-for-AXP813-charger-le.patch +patches.megous/a711-chgled-6.18/0002-leds-axp20x-Support-charger-LED-on-AXP20x-like-PMICs.patch +patches.megous/a711-chgled-6.18/0003-ARM-dts-axp813-Add-charger-LED.patch +patches.megous/a711-chgled-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Enable-charging-LED.patch +patches.megous/a711-vibrator-6.18/0001-dt-bindings-input-gpio-vibrator-Don-t-require-enable.patch +patches.megous/a711-vibrator-6.18/0002-input-gpio-vibra-Allow-to-use-vcc-supply-alone-to-co.patch +patches.megous/a711-vibrator-6.18/0003-ARM-dts-sun8i-a83t-tbs-a711-Add-support-for-the-vibr.patch +patches.megous/a711-vibrator-6.18/0004-ARM-dts-sun8i-a83t-tbs-a711-Increase-voltage-on-the-.patch +patches.megous/a83t-suspend-6.18/0001-mailbox-Allow-to-run-mailbox-while-timekeeping-is-su.patch +patches.megous/a83t-suspend-6.18/0002-ARM-sunxi-Add-experimental-suspend-to-memory-impleme.patch +patches.megous/a83t-suspend-6.18/0003-ARM-sunxi-sunxi_cpu0_hotplug_support_set-is-not-supp.patch +patches.megous/a83t-suspend-6.18/0004-firmware-scpi-Add-support-for-sending-a-SCPI_CMD_SET.patch +patches.megous/a83t-suspend-6.18/0005-ARM-sunxi-Use-SCPI-to-send-suspend-message-to-SCP-on.patch +patches.megous/a83t-suspend-6.18/0006-gnss-ubx-Send-soft-powerdown-message-on-suspend.patch +patches.megous/a83t-suspend-6.18/0007-clk-sunxi-ng-Export-CLK_DRAM-for-devfreq.patch +patches.megous/a83t-suspend-6.18/0008-ARM-dts-sun8i-a83t-Add-MBUS-node.patch +patches.megous/anx-6.18/0001-phy-allwinner-sun4i-usb-Add-support-for-usb_role_swi.patch +patches.megous/anx-6.18/0002-regulator-axp20x-Add-support-for-vin-supply-for-driv.patch +patches.megous/anx-6.18/0003-regulator-axp20x-Turn-N_VBUSEN-to-input-on-x-powers-.patch +patches.megous/anx-6.18/0004-drm-bridge-dw-hdmi-Allow-to-accept-HPD-status-from-o.patch +patches.megous/anx-6.18/0005-drm-bridge-dw-hdmi-Report-HDMI-hotplug-events.patch +patches.megous/anx-6.18/0006-usb-typec-anx7688-Add-driver-for-ANX7688-USB-C-HDMI-.patch +patches.megous/arasan-6.18/0001-sdhci-arasan-Add-runtime-PM-support.patch +patches.megous/audio-6.18/0001-dt-bindings-sound-Add-jack-type-property-to-sun8i-a3.patch +patches.megous/audio-6.18/0002-ASoC-sun8i-codec-Allow-the-jack-type-to-be-set-via-d.patch +patches.megous/audio-6.18/0003-ASoC-sun8i-codec-define-button-keycodes.patch +patches.megous/audio-6.18/0004-ASoC-sun8i-codec-Add-debug-output-for-jack-detection.patch +patches.megous/audio-6.18/0005-ASoC-sun8i-codec-Set-jack_type-from-DT-in-probe.patch +patches.megous/audio-6.18/0006-ASoC-simple-card-Allow-to-define-pins-for-aux-jack-d.patch +patches.megous/audio-6.18/0007-clk-sunxi-ng-a64-Increase-PLL_AUDIO-base-frequency.patch +patches.megous/audio-6.18/0008-dt-bindings-mfd-Add-codec-related-properties-to-AC10.patch +patches.megous/audio-6.18/0009-sound-soc-ac100-codec-Support-analog-part-of-X-Power.patch +patches.megous/audio-6.18/0010-sound-soc-sun8i-codec-Add-support-for-digital-part-o.patch +patches.megous/audio-6.18/0011-ASoC-ec25-New-codec-driver-for-the-EC25-modem.patch +patches.megous/aw-opp-6.18/0001-clk-sunxi-ng-Set-maximum-P-and-M-factors-to-1-for-H3.patch +patches.megous/aw-opp-6.18/0002-clk-sunxi-ng-Don-t-use-CPU-PLL-gating-and-CPUX-repar.patch +patches.megous/aw-opp-6.18/0003-ARM-dts-sun8i-h3-Use-my-own-more-aggressive-OPPs-on-.patch +patches.megous/aw-opp-6.18/0004-arm64-dts-sun50i-h5-Use-my-own-more-aggressive-OPPs-.patch +patches.megous/aw-opp-6.18/0005-ARM-dts-sun8i-h3-orange-pi-pc-Increase-max-CPUX-volt.patch +patches.megous/aw-opp-6.18/0006-ARM-dts-sun8i-a83t-Improve-CPU-OPP-tables-go-up-to-1.patch +patches.megous/aw-opp-6.18/0007-cpufreq-sun50i-Show-detected-CPU-bin-for-easier-debu.patch +patches.megous/aw-suspend-6.18/0001-clk-sunxi-ng-Mark-TWD-clocks-as-critical.patch +patches.megous/aw-suspend-6.18/0002-firmware-arm_scpi-Support-unidirectional-mailbox-cha.patch +patches.megous/aw-suspend-6.18/0003-ARM-dts-sunxi-a83t-Add-SCPI-protocol.patch +patches.megous/aw-suspend-6.18/0004-ARM-dts-sunxi-h3-h5-Add-SCPI-protocol.patch +patches.megous/aw-suspend-6.18/0005-ARM-dts-sun8i-a83t-tbs-a711-Give-Linux-more-privileg.patch +patches.megous/aw-suspend-6.18/0006-rtc-sun6i-Allow-RTC-wakeup-after-shutdown.patch +patches.megous/axp-6.18/0001-dt-bindings-axp20x-adc-allow-to-use-TS-pin-as-GPADC.patch +patches.megous/axp-6.18/0002-iio-adc-axp20x_adc-allow-to-set-TS-pin-to-GPADC-mode.patch +patches.megous/axp-6.18/0003-power-axp20x_battery-Allow-to-set-target-voltage-to-.patch +patches.megous/axp-6.18/0004-power-supply-axp20x_battery-Add-support-for-reportin.patch +patches.megous/axp-6.18/0005-regulator-axp20x-Enable-over-temperature-protection-.patch +patches.megous/axp-6.18/0006-power-supply-axp20x_battery-Setup-thermal-regulation.patch +patches.megous/axp-6.18/0007-power-supply-axp20x_battery-Fix-charging-done-detect.patch +patches.megous/axp-6.18/0008-mfd-axp20x-Add-battery-IRQ-resources.patch +patches.megous/axp-6.18/0009-power-supply-axp20x_battery-Send-uevents-for-status-.patch +patches.megous/axp-6.18/0010-power-supply-axp20x_battery-Monitor-battery-health.patch +patches.megous/axp-6.18/0011-power-supply-axp20x-usb-power-Change-Vbus-hold-volta.patch +patches.megous/axp-6.18/0012-power-axp803-Add-interrupts-for-low-battery-power-co.patch +patches.megous/axp-6.18/0013-power-supply-axp20x-battery-Support-POWER_SUPPLY_PRO.patch +patches.megous/axp-6.18/0014-power-supply-axp20x-battery-Enable-poweron-by-RTC-al.patch +patches.megous/axp-6.18/0015-power-supply-axp20x-battery-Add-support-for-POWER_SU.patch +patches.megous/axp-6.18/0016-power-supply-Add-support-for-USB_BC_ENABLED-and-USB_.patch +patches.megous/axp-6.18/0017-power-supply-axp20x-usb-power-Add-missing-interrupts.patch +patches.megous/axp-6.18/0018-power-supply-axp20x-battery-Improve-probe-error-repo.patch +patches.megous/besdbg-6.18/0001-besdbg-Add-a-debug-driver-for-controlling-the-wifi-c.patch +patches.megous/besdbg-6.18/0002-mmc-Add-pwrseq_bes-driver-for-powering-up-BES2600-on.patch +patches.megous/bt-6.18/0001-bluetooth-h5-Don-t-re-initialize-rtl8723cs-on-resume.patch +patches.megous/cw1200-6.18/0001-cw1200-support-loading-cw1x60-FW.patch +patches.megous/cw1200-6.18/0002-cw1200-xr819-hacks.patch +patches.megous/cw1200-6.18/0003-cw1200-use-kmalloc-allocation-instead-of-stack.patch +patches.megous/cw1200-6.18/0004-net-wireless-cw1200-Add-support-for-BES2600.patch +patches.megous/cw1200-6.18/0005-cw1200-Improve-error-reporting-from-probe.patch +patches.megous/cw1200-6.18/0006-cw1200-Disable-automatic-module-loading-until-the-mo.patch +patches.megous/cw1200-6.18/0007-cw1200-Enable-FW-loader-debug-mode.patch +patches.megous/defcon-6.18/0002-Defconfigs-for-all-my-devices.patch +patches.megous/ebaz4205-6.18/0001-Add-minimal-EBAZ4205-defconfig.patch +patches.megous/ebaz4205-6.18/0002-dt-bindings-Add-Zynq-clocks.patch +patches.megous/ebaz4205-6.18/0003-arm-xilinx-ebaz4205-Add-test-config-for-various-PL-p.patch +patches.megous/err-6.18/0001-sunxi-Use-dev_err_probe-to-handle-EPROBE_DEFER-error.patch +patches.megous/err-6.18/0002-thermal-sun8i-Be-loud-when-probe-fails.patch +patches.megous/err-6.18/0003-i2c-mv64xxx-Don-t-make-a-fuss-when-pinctrl-recovery-.patch +patches.megous/err-6.18/0004-iio-st_sensors-Don-t-report-error-when-the-device-is.patch +patches.megous/err-6.18/0005-opp-core-Avoid-confusing-error-when-no-regulator-is-.patch +patches.megous/err-6.18/0006-rtc-Print-which-error-caused-RTC-read-failure.patch +patches.megous/fixes-6.18/0001-ARM-dts-sun8i-a83t-Add-missing-GPU-trip-point.patch +patches.megous/fixes-6.18/0002-arm64-dts-sun50i-h5-Add-missing-GPU-trip-point.patch +patches.megous/fixes-6.18/0003-arm64-dts-allwinner-a64-Fix-LRADC-compatible.patch +patches.megous/fixes-6.18/0004-media-cedrus-Fix-failure-to-clean-up-hardware-on-pro.patch +patches.megous/fixes-6.18/0005-ASoC-rockchip-Fix-doubling-of-playback-speed-after-s.patch +patches.megous/fixes-6.18/0006-usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs.patch +patches.megous/fixes-6.18/0007-arm64-dts-allwinner-Enforce-consistent-MMC-numbering.patch +patches.megous/fixes-6.18/0008-ARM-dts-sunxi-Add-aliases-for-MMC.patch +patches.megous/fixes-6.18/0009-drm-rockchip-Fix-panic-on-reboot-when-DRM-device-fai.patch +patches.megous/fixes-6.18/0010-usb-gadget-Fix-dangling-pointer-in-netdev-private-da.patch +patches.megous/fixes-6.18/0011-mmc-dw-mmc-rockchip-fix-sdmmc-after-soft-reboot.patch +patches.megous/fixes-6.18/0012-Revert-drm-sun4i-lvds-Invert-the-LVDS-polarity.patch +patches.megous/fixes-6.18/0013-of-property-fw_devlink-Support-allwinner-sram-links.patch +patches.megous/fixes-6.18/0014-Fix-broken-allwinner-sram-dependency-on-h616-h618.patch +patches.megous/fixes-6.18/0015-arm64-dts-rockchip-rk356x-Fix-PCIe-register-map-and-.patch +patches.megous/fixes-6.18/0016-Fix-intptr_t-typedef.patch +patches.megous/fixes-6.18/0017-mmc-sunxi-mmc-Remove-runtime-PM.patch +patches.megous/fixes-6.18/0018-pci-Workaround-ITS-timeouts-on-poweroff-reboot-on-Or.patch +patches.megous/fixes-6.18/0019-usb-serial-option-add-reset_resume-callback-for-WWAN.patch +patches.megous/fixes-6.18/0020-media-ov5648-Fix-call-to-pm_runtime_set_suspended.patch +patches.megous/fixes-6.18/0021-drm-rockchip-dw-mipi-dsi-rockchip-Fix-ISP1-PHY-initi.patch +patches.megous/fixes-6.18/0022-arm64-dts-rk3399-Add-dmc_opp_table.patch +patches.megous/fixes-6.18/0023-arm64-dts-rockchip-rk3399-s-Add-DMC-table.patch +patches.megous/fixes-6.18/0024-Revert-usb-dwc3-Abort-suspend-on-soft-disconnect-fai.patch +patches.megous/fusb302-6.18/0001-usb-typec-fusb302-Slightly-increase-wait-time-for-BC.patch +patches.megous/fusb302-6.18/0002-usb-typec-fusb302-Set-the-current-before-enabling-pu.patch +patches.megous/fusb302-6.18/0003-usb-typec-fusb302-Extend-debugging-interface-with-dr.patch +patches.megous/fusb302-6.18/0004-usb-typec-fusb302-Retry-reading-of-CC-pins-status-if.patch +patches.megous/fusb302-6.18/0005-usb-typec-fusb302-More-useful-of-logging-status-on-i.patch +patches.megous/fusb302-6.18/0006-usb-typec-fusb302-Update-VBUS-state-even-if-VBUS-int.patch +patches.megous/fusb302-6.18/0007-usb-typec-fusb302-Add-OF-extcon-support.patch +patches.megous/fusb302-6.18/0008-usb-typec-fusb302-Fix-register-definitions.patch +patches.megous/fusb302-6.18/0009-usb-typec-fusb302-Clear-interrupts-before-we-start-t.patch +patches.megous/goodix-6.18/0001-Input-goodix-Add-config-debugfs-file.patch +patches.megous/goodix-6.18/0002-Input-goodix-Add-option-to-power-off-the-controller-.patch +patches.megous/goodix-6.18/0003-Input-goodix-Try-to-keep-regulator-enable-disable-ba.patch +patches.megous/goodix-6.18/0004-input-touchscreen-goodix-Respect-IRQ-flags-from-DT-w.patch +patches.megous/hdmi-audio-6.18/0001-ASOC-sun9i-hdmi-audio-Initial-implementation.patch +patches.megous/hdmi-audio-6.18/0002-ARM-dts-sunxi-h3-h5-Add-hdmi-sound-card.patch +patches.megous/hdmi-audio-6.18/0003-ARM-dts-sun8i-h3-Enable-hdmi-sound-card-on-boards-wi.patch +patches.megous/hdmi-audio-6.18/0004-ARM-dts-sun8i-h2-plus-bananapi-m2-zero-Enable-HDMI-a.patch +patches.megous/hdmi-audio-6.18/0005-ARM-dts-sun8i-a83t-Add-hdmi-sound-card.patch +patches.megous/hdmi-audio-6.18/0006-ARM-dts-sun8i-a83t-Enable-hdmi-sound-card-on-boards-.patch +patches.megous/hdmi-audio-6.18/0007-ARM-dts-sun8i-r40-Add-hdmi-sound-card.patch +patches.megous/hdmi-audio-6.18/0008-ARM-dts-sun8i-r40-bananapi-m2-ultra-Enable-HDMI-audi.patch +patches.megous/hdmi-audio-6.18/0009-ARM-dts-sun8i-v40-bananapi-m2-berry-Enable-HDMI-audi.patch +patches.megous/hdmi-audio-6.18/0010-arm64-dts-allwinner-h6-Add-hdmi-sound-card.patch +patches.megous/hdmi-audio-6.18/0011-arm64-dts-allwinner-h6-Enable-hdmi-sound-card-on-boa.patch +patches.megous/hdmi-audio-6.18/0012-arm64-dts-allwinner-a64-Add-hdmi-sound-card.patch +patches.megous/hdmi-audio-6.18/0013-arm64-dts-allwinner-a64-Enable-hdmi-sound-card-on-bo.patch +patches.megous/hdmi-audio-6.18/0014-arm64-dts-allwinner-h5-Enable-hdmi-sound-card-on-boa.patch +- patches.megous/hdmi-audio-6.18/0015-Move-a-node-to-avoid-merge-conflict.patch # seems broken/unneeded (??) Dec 9th 2025 +patches.megous/husb311-6.18/0001-usb-typec-husb311-Add-HUSB311-TCPI-driver.patch +patches.megous/imx258-6.18/0001-media-i2c-imx258-Add-i2c-supply.patch +patches.megous/imx258-6.18/0002-media-i2c-imx258-Add-debug-register-access.patch +patches.megous/imx258-6.18/0003-media-imx258-Add-reset-gpio.patch +patches.megous/imx258-6.18/0004-media-imx258-Drop-interface-speed-to-1224-mbps.patch +patches.megous/modem-6.18/0001-misc-modem-power-Power-manager-for-modems.patch +patches.megous/opi3-eth-6.18/0001-net-stmmac-sun8i-Use-devm_regulator_get-for-PHY-regu.patch +patches.megous/opi3-eth-6.18/0002-net-stmmac-sun8i-Rename-PHY-regulator-variable-to-re.patch +patches.megous/opi3-eth-6.18/0003-net-stmmac-sun8i-Add-support-for-enabling-a-regulato.patch +patches.megous/opi3-eth-6.18/0004-arm64-dts-allwinner-orange-pi-3-Enable-ethernet.patch +patches.megous/ov5640-6.18/0001-media-ov5640-Experiment-Try-to-disable-denoising-sha.patch +patches.megous/ov5640-6.18/0002-media-ov5640-Sleep-after-poweroff-to-ensure-next-pow.patch +patches.megous/ov5640-6.18/0003-media-ov5640-Don-t-powerup-the-sensor-during-driver-.patch +patches.megous/ov5640-6.18/0004-media-ov5640-set-default-ae-target-lower.patch +patches.megous/ov5640-6.18/0005-media-ov5640-Improve-error-reporting.patch +patches.megous/ov5640-6.18/0006-media-ov5640-Implement-autofocus.patch +patches.megous/ov5640-6.18/0007-media-ov5640-Improve-firmware-load-time.patch +patches.megous/ov5640-6.18/0008-media-ov5640-Fix-focus-commands-blocking-until-compl.patch +patches.megous/ov5640-6.18/0009-media-ov5640-Add-read-only-property-for-vblank.patch +patches.megous/ov5640-6.18/0010-media-ov5640-use-pm_runtime_force_suspend-resume-for.patch +patches.megous/pb-6.18/0001-Revert-Input-cyttsp4-remove-driver.patch +patches.megous/pb-6.18/0002-input-cyttsp4-Port-to-6.16.patch +patches.megous/pb-6.18/0003-input-cyttsp4-De-obfuscate-platform-data-for-keys.patch +patches.megous/pb-6.18/0004-input-cyttsp4-Remove-useless-indirection-with-driver.patch +patches.megous/pb-6.18/0005-input-cyttsp4-Remove-unused-enable_vkeys.patch +patches.megous/pb-6.18/0006-input-cyttsp4-De-obfuscate-MT-signals-setup-platform.patch +patches.megous/pb-6.18/0007-input-cyttsp4-Clear-the-ids-buffer-in-a-saner-way.patch +patches.megous/pb-6.18/0008-input-cyttsp4-ENOSYS-error-is-ok-when-powering-up.patch +patches.megous/pb-6.18/0009-input-cyttsp4-Faster-recovery-from-failed-wakeup-HAC.patch +patches.megous/pb-6.18/0010-input-cyttsp4-Use-i2c-spi-names-directly-in-the-driv.patch +patches.megous/pb-6.18/0011-input-cyttsp4-Port-the-driver-to-use-device-properti.patch +patches.megous/pb-6.18/0012-input-cyttsp4-Restart-on-wakeup-wakeup-by-I2C-read-d.patch +patches.megous/pb-6.18/0013-input-cyttsp4-Fix-warnings.patch +patches.megous/pb-6.18/0014-input-cyttsp4-Make-the-driver-not-hog-the-system-s-w.patch +patches.megous/pb-6.18/0015-input-cyttsp4-Fix-probe-oops.patch +patches.megous/pb-6.18/0016-input-cyttsp4-Fix-compile-issue.patch +patches.megous/pb-6.18/0017-video-fbdev-eInk-display-driver-for-A13-based-Pocket.patch +patches.megous/pb-6.18/0018-regulator-Add-simple-driver-for-enabling-a-regulator.patch +patches.megous/pb-6.18/0019-regulator-tp65185x-Add-tp65185x-eInk-panel-regulator.patch +patches.megous/pb-6.18/0020-regulator-tp65185-Add-hwmon-device-for-reading-tempe.patch +patches.megous/pb-6.18/0021-iio-adc-sun4i-gpadc-iio-Allow-to-use-sun5i-a13-gpadc.patch +patches.megous/pb-6.18/0022-mtd-spi-nor-Add-vdd-regulator-support.patch +patches.megous/pb-6.18/0023-ARM-dts-sun5i-Add-soc-handle.patch +patches.megous/pb-6.18/0024-ARM-dts-sun5i-Add-PocketBook-Touch-Lux-3-display-ctp.patch +patches.megous/pb-6.18/0025-ARM-dts-sun5i-a13-pocketbook-touch-lux-3-Add-RTC-clo.patch +patches.megous/pinetab-6.18/0001-arm64-dts-allwinner-a64-pinetab-add-front-camera.patch +patches.megous/pinetab-6.18/0002-arm64-allwinner-dts-a64-enable-K101-IM2BYL02-panel-f.patch +patches.megous/pinetab-6.18/0003-arm64-dts-sun50i-a64-pinetab-Name-sound-card-PineTab.patch +patches.megous/pinetab-6.18/0004-arm64-dts-sun50i-a64-pinetab-Add-accelerometer.patch +patches.megous/pinetab-6.18/0005-arm64-dts-sun50i-a64-pinetab-enable-RTL8723CS-blueto.patch +patches.megous/pp-6.18/0001-arm64-dts-sun50i-a64-pinephone-Add-front-back-camera.patch +patches.megous/pp-6.18/0002-arm64-dts-sun50i-a64-pinephone-Add-Type-C-support-fo.patch +patches.megous/pp-6.18/0003-arm64-dts-sun50i-a64-pinephone-Add-modem-power-manag.patch +patches.megous/pp-6.18/0004-arm64-dts-sun50i-a64-pinephone-Fix-BH-modem-manager-.patch +patches.megous/pp-6.18/0005-arm64-dts-sun50i-a64-pinephone-Add-detailed-OCV-to-c.patch +patches.megous/pp-6.18/0006-arm64-dts-sun50i-a64-pinephone-Shorten-post-power-on.patch +patches.megous/pp-6.18/0007-arm64-dts-sun50i-a64-pinephone-Add-support-for-Bluet.patch +patches.megous/pp-6.18/0008-arm64-dts-sun50i-a64-pinephone-Enable-internal-HMIC-.patch +patches.megous/pp-6.18/0009-arm64-dts-sun50i-a64-pinephone-Add-support-for-modem.patch +patches.megous/pp-6.18/0010-arm64-dts-sun50i-a64-pinephone-Bump-I2C-frequency-to.patch +patches.megous/pp-6.18/0011-arm64-dts-sun50i-a64-pinephone-Add-interrupt-pin-for.patch +patches.megous/pp-6.18/0012-arm64-dts-sun50i-a64-pinephone-Power-off-the-touch-c.patch +patches.megous/pp-6.18/0013-arm64-dts-sun50i-a64-pinephone-Don-t-make-lradc-keys.patch +patches.megous/pp-6.18/0014-arm64-dts-sun50i-a64-pinephone-Set-minimum-backlight.patch +patches.megous/pp-6.18/0015-arm64-dts-sun50i-a64-pinephone-Add-supply-for-i2c-bu.patch +patches.megous/pp-6.18/0016-arm64-dts-sun50i-a64-pinephone-Workaround-broken-HDM.patch +patches.megous/pp-6.18/0017-arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinep.patch +patches.megous/pp-6.18/0018-arm64-dts-sun50i-a64-pinephone-Enable-Pinephone-Keyb.patch +patches.megous/pp-6.18/0019-arm64-dts-sun50i-a64-pinephone-Add-support-for-Pinep.patch +patches.megous/pp-6.18/0020-arm64-dts-sun50i-a64-pinephone-Add-power-supply-to-s.patch +patches.megous/pp-6.18/0021-arm64-dts-sun50i-a64-pinephone-Add-reboot-mode-drive.patch +patches.megous/pp-6.18/0022-arm64-dts-sun50i-a64-pinephone-Use-newer-jack-detect.patch +patches.megous/pp-6.18/0023-arm64-dts-sun50i-Define-orientation-and-rotation-for.patch +patches.megous/pp-6.18/0024-arm64-dts-sun50i-Define-orientation-and-rotation-for.patch +patches.megous/pp-6.18/0025-arm64-dts-sun50-a64-pinephone-Define-jack-pins-in-DT.patch +patches.megous/pp-6.18/0026-arm64-dts-sun50i-a64-pinephone-1.2-Increase-backligh.patch +patches.megous/ppkb-6.18/0001-power-supply-ip5xxx-Report-remaining-battery-capacit.patch +patches.megous/ppkb-6.18/0002-power-supply-ip5xxx-Modify-initial-configuration.patch +patches.megous/ppkb-6.18/0003-power-supply-ip5xxx-Add-boost-status-property.patch +patches.megous/ppkb-6.18/0004-power-supply-ip5xxx-Add-ip5xxx-usb-supply.patch +patches.megous/ppkb-6.18/0005-power-supply-ip5xxx-Add-support-for-POWER_SUPPLY_PRO.patch +patches.megous/ppkb-6.18/0006-power-supply-ip5xxx-Add-support-for-POWER_SUPPLY_PRO.patch +patches.megous/ppkb-6.18/0007-input-pinephone-keyboard-Allow-disabling-the-keyboar.patch +patches.megous/ppkb-6.18/0008-input-pinephone-keyboard-Allow-to-disable-Fn-layer-p.patch +patches.megous/ppkb-6.18/0009-input-pinephone-keyboard-Don-t-print-error-when-the-.patch +patches.megous/ppkb-6.18/0010-input-pinephone-keyboard-Wait-a-bit-after-enabling-v.patch +patches.megous/ppkb-6.18/0011-misc-ppkb-manager-Pinephone-Keyboard-power-manager.patch +patches.megous/ppkb-6.18/0012-misc-ppkb-manager-Remove-BLOCKED-flag.patch +patches.megous/ppkb-6.18/0013-misc-ppkb-manager-Disable-ppkb-manager-by-default-ca.patch +patches.megous/ppkb-6.18/0014-misc-ppkb-manager-Show-read-write-error-codes.patch +patches.megous/ppkb-6.18/0015-misc-ppkb-manager-Disable-debug-mode.patch +patches.megous/ppkb-6.18/0016-ip5xxx-fix-POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR.patch +patches.megous/private-6.18/0001-Make-microbuttons-on-Orange-Pi-PC-and-PC-2-work-as-p.patch +patches.megous/private-6.18/0002-Add-support-for-my-private-Sapomat-device.patch +patches.megous/private-6.18/0003-ARM-dts-sun8i-h3-orange-pi-one-Enable-all-gpio-heade.patch +patches.megous/private-6.18/0004-mtd-spi-nor-Add-Alliance-memory-support.patch +patches.megous/pt2-6.18/0001-arm64-dts-rk3566-pientab2-Use-non-linear-brightness-.patch +patches.megous/pt2-6.18/0002-arm64-dts-rk3566-pinetab2-Add-Type-C-controller-node.patch +patches.megous/pt2-6.18/0003-arm64-dts-rk3566-pinetab2-Re-order-and-use-extcon-br.patch +patches.megous/pt2-6.18/0004-usb-tcpci-Add-support-for-extcon-based-input-current.patch +patches.megous/pt2-6.18/0005-arm64-dts-rk3566-pinetab2-Add-DT-nodes-for-besdbg-dr.patch +patches.megous/pt2-6.18/0006-arm64-dts-rk3566-pinetab2-Lower-the-SPI-NOR-flash-cl.patch +patches.megous/rk3399-typec-6.18/0001-drm-rockchip-cdn-dp-Disable-CDN-DP-on-disconnect.patch +patches.megous/rk3399-typec-6.18/0002-phy-phy-rockchip-inno-usb2-Decrease-delay-between-po.patch +patches.megous/rk3399-typec-6.18/0003-phy-rockchip-inno-usb2-More-robust-charger-detection.patch +patches.megous/rk3399-typec-6.18/0004-usb-dwc3-Track-the-power-state-of-usb3_generic_phy.patch +patches.megous/rk3399-typec-6.18/0005-phy-rockchip-naneng-Add-fallback-for-old-DTs.patch +patches.megous/rk3399-typec-6.18/0006-usb-dwc3-Extend-reset-quirk-support-to-include-role-.patch +patches.megous/rp64-6.18/0001-arm64-dts-rk3399-rockpro64-Add-DMC-nodes.patch +patches.megous/rp64-6.18/0002-arm64-dts-rk3399-rockpro64-Add-Type-C-OTG-Alt-DP-sup.patch +patches.megous/rt5640-6.18/0001-ASoC-codecs-rt5640-Fix-output-mixer-input-channel-li.patch +patches.megous/rt5640-6.18/0002-ASoC-codecs-rt5640-Fix-hpout-restore-when-lout-is-en.patch +patches.megous/rt5640-6.18/0003-ASoC-codecs-rt5640-Resolve-failure-to-set-DMIC-clock.patch +patches.megous/rt5640-6.18/0004-ASoC-codecs-rt5640-Add-input-mixer-input-volume-cont.patch +patches.megous/rt5640-6.18/0005-ASoC-codecs-rt5640-Allow-to-control-single-ended-dif.patch +patches.megous/rt5640-6.18/0006-ASoC-codecs-rt5640-Keep-the-codec-enabled-when-idle.patch +patches.megous/rt5640-6.18/0007-ASoC-codecs-rt5640-Add-support-for-power-supplies.patch +patches.megous/rtw88-6.18/0001-Implement-adaptivity-functions.patch +patches.megous/rtw88-6.18/0002-Implement-CFO-tracking.patch +patches.megous/speed-6.18/0001-arm64-dts-sun50i-a64-Set-fifo-size-for-uarts.patch +patches.megous/speed-6.18/0002-ARM-dts-sun8i-a83t-Set-fifo-size-for-uarts.patch +patches.megous/speed-6.18/0003-Mark-some-slow-drivers-for-async-probe-with-PROBE_PR.patch +patches.megous/speed-6.18/0004-arm64-xor-Select-32regs-without-benchmark-to-speed-u.patch +patches.megous/stk3310-6.18/0001-iio-light-stk3310-Implement-vdd-supply-and-power-it-.patch +patches.megous/stk3310-6.18/0002-iio-light-stk3310-Add-support-for-I2C-regulator.patch +patches.megous/stk3310-6.18/0003-iio-stk3310-Fix-regulator-disable-enable-order.patch +patches.megous/sun6i-csi-6.18/0001-media-sun6i-csi-capture-Use-subdev-operation-to-acce.patch +patches.megous/sun6i-csi-6.18/0002-media-sun6i-csi-subdev-Use-subdev-active-state-to-st.patch +patches.megous/sun6i-csi-6.18/0003-media-sun6i-csi-merge-sun6i_csi_formats-and-sun6i_cs.patch +patches.megous/sun6i-csi-6.18/0004-media-sun6i-csi-add-V4L2_CAP_IO_MC-capability.patch +patches.megous/sun6i-csi-6.18/0005-media-sun6i-csi-implement-vidioc_enum_framesizes.patch +patches.megous/sun6i-csi-6.18/0006-media-sun6i-csi-Add-multicamera-support-for-parallel.patch +patches.megous/tcpm-6.18/0001-Revert-usb-typec-tcpm-unregister-existing-source-cap.patch +patches.megous/tcpm-6.18/0002-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT.patch +patches.megous/tcpm-6.18/0003-usb-typec-tcpm-Unregister-altmodes-before-registerin.patch +patches.megous/tcpm-6.18/0004-usb-typec-tcpm-Fix-PD-devices-capabilities-registrat.patch +patches.megous/tcpm-6.18/0005-usb-typec-tcpm-Improve-logs.patch +patches.megous/typec-extcon-6.18/0001-usb-typec-typec-extcon-Add-typec-extcon-bridge-drive.patch +patches.megous/typec-extcon-6.18/0002-usb-typec-typec-extcon-Enable-debugging-for-now.patch +patches.megous/typec-extcon-6.18/0003-usb-typec-typec-extcon-Allow-to-force-reset-on-each-.patch + +################################################################################ +# +# drivers/gpu/drm/sun4i/ +# +# Source: https://github.com/jernejsk/linux-1/commits/sun4i-drm-refactor/ +# +################################################################################ + +patches.drm/0001-drm-sun4i-mixer-Fix-up-DE33-channel-macros.patch +patches.drm/0002-drm-sun4i-mixer-Remove-ccsc-cfg-for-DE3.patch +patches.drm/0003-drm-sun4i-de2-Initialize-layer-fields-earlier.patch +patches.drm/0004-drm-sun4i-ui_layer-Move-check-from-update-to-check-c.patch +patches.drm/0005-drm-sun4i-vi_layer-Move-check-from-update-to-check-c.patch +patches.drm/0006-drm-sun4i-layers-Make-atomic-commit-functions-void.patch +patches.drm/0007-drm-sun4i-Move-blender-config-from-layers-to-mixer.patch +patches.drm/0008-drm-sun4i-ui-layer-Write-attributes-in-one-go.patch +patches.drm/0009-drm-sun4i-vi-layer-Write-attributes-in-one-go.patch +patches.drm/0010-drm-sun4i-mixer-Move-layer-enabling-to-atomic_update.patch +patches.drm/0011-drm-sun4i-de2-de3-Simplify-CSC-config-interface.patch +patches.drm/0012-drm-sun4i-csc-Simplify-arguments-with-taking-plane-s.patch +patches.drm/0013-drm-sun4i-de2-de3-Move-plane-type-determination-to-m.patch +patches.drm/0014-drm-sun4i-ui_layer-Change-index-meaning.patch +patches.drm/0015-drm-sun4i-layer-move-num-of-planes-calc-out-of-layer.patch +patches.drm/0016-drm-sun4i-ui_layer-use-layer-struct-instead-of-multi.patch +patches.drm/0017-drm-sun4i-vi_layer-use-layer-struct-instead-of-multi.patch +patches.drm/0018-drm-sun4i-ui_scaler-use-layer-instead-of-mixer-for-a.patch +patches.drm/0019-drm-sun4i-vi_scaler-use-layer-instead-of-mixer-for-a.patch +patches.drm/0020-drm-sun4i-layers-Make-regmap-for-layers-configurable.patch +patches.drm/0021-drm-sun4i-csc-use-layer-arg-instead-of-mixer.patch +patches.drm/0022-drm-sun4i-layers-add-physical-index-arg.patch +patches.drm/0023-drm-sun4i-vi_scaler-Update-DE33-base-calculation.patch +patches.drm/0024-drm-sun4i-mixer-Convert-heuristics-to-quirk.patch +patches.drm/0025-drm-sun4i-ui_scaler-drop-sanity-checks.patch +patches.drm/0026-drm-sun4i-mixer-Add-quirk-for-number-of-VI-scalers.patch +patches.drm/0027-drm-sun4i-mixer-split-out-layer-config.patch +patches.drm/0028-drm-sun4i-layer-replace-mixer-with-layer-struct.patch +patches.drm/0029-drm-sun4i-vi_scaler-Find-mixer-from-crtc.patch +patches.drm/0030-drm-sun4i-Nuke-mixer-pointer-from-layer-code.patch +patches.drm/0031-drm-sun4i-Add-support-for-DE33-CSC.patch +patches.drm/0032-drm-sun4i-vi_layer-Limit-formats-for-DE33.patch +patches.drm/0033-clk-sunxi-ng-de2-Export-register-regmap-for-DE33.patch +patches.drm/0034-dt-bindings-display-allwinner-Add-DE33-planes.patch +patches.drm/0035-drm-sun4i-Add-planes-driver.patch +patches.drm/0036-dt-bindings-display-allwinner-Update-H616-DE33-bindi.patch +patches.drm/0037-drm-sun4i-switch-DE33-to-new-bindings.patch +patches.drm/0038-drm-sun4i-Add-H616-TCON-TV-support.patch +patches.drm/0039-srm-sun4i-Add-support-for-H616-HDMI-PHY.patch +patches.drm/0040-drm-sun4i-Add-compatible-for-H616-display-engine.patch +patches.drm/0041-arm64-dts-allwinner-h616-Add-display-pipeline.patch +patches.drm/0042-arm64-dts-allwinner-h616-Enable-HDMI-on-several-boar.patch +patches.drm/0043-T95-broken-CD.patch + +################################################################################ +# +# media patches +# +################################################################################ + patches.media/media-cedrus-Don-t-CPU-map-source-buffers.patch + patches.media/media-Add-NV12-and-P010-AFBC-compressed-formats.patch + patches.media/media-cedrus-add-format-filtering-based-on-depth-and-src-format.patch + patches.media/media-cedrus-Implement-AFBC-YUV420-formats-for-H265.patch + patches.media/media-cedrus-Increase-H6-clock-rate.patch + patches.media/dma-sun6i-dma-add-sun50i-h616-support.patch + +################################################################################ +# +# Armbian patches +# +################################################################################ + patches.armbian/Doc-dt-bindings-usb-add-binding-for-DWC3-controller-on-Allwinne.patch + patches.armbian/drv-pinctrl-pinctrl-sun50i-a64-disable_strict_mode.patch + patches.armbian/drv-gpu-drm-gem-dma-Export-with-handle-allocator.patch + patches.armbian/drv-gpu-drm-sun4i-Add-GEM-allocator.patch + patches.armbian/Revert-drm-sun4i-hdmi-switch-to-struct-drm_edid.patch + patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch + patches.armbian/drv-net-stmmac-dwmac-sun8i-second-EMAC-clock-register.patch + patches.armbian/drv-phy-sun4i-usb-Allow-reset-line-to-be-shared.patch + patches.armbian/drv-staging-media-sunxi-cedrus-add-H616-variant.patch + patches.armbian/drv-soc-sunxi-sram-Add-SRAM-C1-H616-handling.patch + patches.armbian/drv-media-dvb-frontends-si2168-fix-cmd-timeout.patch + patches.armbian/include-uapi-drm_fourcc-add-ARM-tiled-format-modifier.patch + patches.armbian/drv-clocksource-arm_arch_timer-fix-a64-timejump.patch + patches.armbian/sound-soc-sunxi-sun8i-codec-analog-enable-sound.patch + patches.armbian/sound-soc-sunxi-Provoke-the-early-load-of-sun8i-codec-analog.patch + patches.armbian/sound-soc-sunxi-sun4i-codec-adcis-select-capture-source.patch + patches.armbian/drv-mmc-host-sunxi-mmc-add-h5-emmc-compatible.patch + patches.armbian/drv-pinctrl-sunxi-pinctrl-sun50i-h6.c-GPIO-disable_strict_mode.patch +- patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch # breaks compilation on armhf. Perhaps conflict with sun4i-drm patches? Dec 9th 2025 + patches.armbian/drv-mtd-nand-raw-nand_ids.c-add-H27UBG8T2BTR-BC-nand.patch + patches.armbian/drv-mfd-axp20x-add-sysfs-interface.patch + patches.armbian/drv-spi-spi-sun4i.c-spi-bug-low-on-sck.patch + patches.armbian/drv-nvmem-sunxi_sid-Support-SID-on-H616.patch + patches.armbian/drv-iio-adc-axp20x_adc-arm64-dts-axp803-hwmon-enable-thermal.patch + patches.armbian/drv-gpu-drm-panel-simple-Add-compability-olinuxino-lcd.patch + patches.armbian/drv-input-touchscreen-sun4i-ts-Enable-parsing.patch + patches.armbian/drv-mmc-host-sunxi-mmc-Disable-DDR52-mode-on-all-A20-based-boar.patch + patches.armbian/drv-usb-gadget-composite-rename-gadget-serial-console-manufactu.patch + patches.armbian/Add-FB_TFT-ST7796S-driver.patch + patches.armbian/Optimize-TSC2007-touchscreen-add-polling-method.patch + patches.armbian/Add-ws2812-RGB-driver-for-allwinner-H616.patch + patches.armbian/drv-staging-rtl8723bs-AP-bugfix.patch + patches.armbian/Fix-include-uapi-spi-spidev-module.patch + patches.armbian/Add-dump_reg-and-sunxi-sysinfo-drivers.patch + patches.armbian/Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch + patches.armbian/nvmem-sunxi_sid-add-sunxi_get_soc_chipid-sunxi_get_serial.patch + patches.armbian/mmc-host-sunxi-mmc-Fix-H6-emmc.patch + patches.armbian/net-usb-r8152-add-LED-configuration-from-OF.patch + patches.armbian/drivers-devfreq-sun8i-a33-mbus-disable-autorefresh.patch + patches.armbian/clk-gate-add-support-for-regmap-based-gates.patch + patches.armbian/mfd-Add-support-for-X-Powers-AC200.patch + patches.armbian/mfd-Add-support-for-X-Powers-AC200-EPHY-syscon.patch + patches.armbian/net-phy-Add-support-for-AC200-EPHY.patch + patches.armbian/ASoC-AC200-Initial-driver.patch + patches.armbian/Input-axp20x-pek-allow-wakeup-after-shutdown.patch + patches.armbian/driver-allwinner-h618-emac.patch + patches.armbian/drivers-pwm-Add-pwm-sunxi-enhance-driver-for-h616.patch + patches.armbian/arm-patch-call-flush_icache-ASAP-after-writing-new-instruction.patch + patches.armbian/arm-arm64-dts-Add-leds-axp20x-charger.patch + patches.armbian/arm-dts-sun9i-a80-add-thermal-sensor.patch + patches.armbian/arm-dts-sun9i-a80-add-thermal-zone.patch + patches.armbian/arm-dts-sun7i-a20-Disable-OOB-IRQ-for-brcm-wifi-on-Cubietruck-a.patch + patches.armbian/arm-dts-a20-orangepi-and-mini-fix-phy-mode-hdmi.patch + patches.armbian/arm-dts-sun8i-h3-nanopi-add-leds-pio-pins.patch + patches.armbian/arm-dts-a10-cubiebord-a20-cubietruck-green-LED-mmc0-default-tri.patch + patches.armbian/arm-dts-Add-sun8i-h2-plus-nanopi-duo-device.patch + patches.armbian/arm-dts-Add-sun8i-h2-plus-sunvell-r69-device.patch + patches.armbian/arm-dts-h3-nanopi-neo-Add-regulator-leds-mmc2.patch + patches.armbian/arm-dts-h3-nanopi-neo-air-Add-regulator-camera-wifi-bluetooth-o.patch + patches.armbian/arm-dts-h3-orangepi-2-Add-regulator-vdd-cpu.patch + patches.armbian/arm-dts-sun8i-r40-bananapi-m2-ultra-add-codec-analog.patch + patches.armbian/arm-dts-sun7i-a20-cubietruck-add-alias-uart2.patch + patches.armbian/arm-dts-sun8i-v3s-s3-pinecube-enable-sound-codec.patch + patches.armbian/arm-dts-sun8i-r40-add-clk_out_a-fix-bananam2ultra.patch + patches.armbian/arm-dts-sun8i-h3-bananapi-m2-plus-add-wifi_pwrseq.patch + patches.armbian/arm-dts-sun7i-a20-bananapro-add-hdmi-connector-de.patch + patches.armbian/arm-dts-sun7i-a20-bananapro-add-AXP209-regulators.patch + patches.armbian/arm-dts-sunxi-h3-h5.dtsi-force-mmc0-bus-width.patch + patches.armbian/fix-cpu-opp-table-sun8i-a83t.patch + patches.armbian/arm64-dts-sun50i-a64-pine64-enable-wifi-mmc1.patch + patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-mmc1-status-okay.patch + patches.armbian/arm64-dts-sun50i-h6-Add-r_uart-uart2-3-pins.patch + patches.armbian/arm64-dts-sun50i-h616.dtsi-reserved-memory-512K-for-BL31.patch + patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch + patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch + patches.armbian/arm64-dts-allwinner-sun50i-h616-Add-VPU-node.patch + patches.armbian/arm64-dts-sun50i-h616-x96-mate-T95-eth-sd-card-hack.patch + patches.armbian/arm64-dts-allwinner-Add-axp313a.dtsi.patch + patches.armbian/arm64-dts-add-sun50i-h618-cpu-dvfs.dtsi.patch + patches.armbian/LED-green_power_on-red_status_heartbeat-arch-arm64-boot-dts-all.patch + patches.armbian/arm64-dts-allwinner-h616-orangepi-zero2-Enable-expansion-board-.patch + patches.armbian/arm64-dts-sun50i-a64-sopine-baseboard-enable-Bluetooth.patch + patches.armbian/arm64-dts-nanopi-a64-set-right-phy-mode-to-rgmii-id.patch + patches.armbian/arm64-dts-FIXME-a64-olinuxino-add-regulator-audio-mmc.patch + patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-k1-plus-device.patch + patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo-core2-device.patch + patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-neo2-v1.1-device.patch + patches.armbian/arm64-dts-Add-sun50i-h5-nanopi-m1-plus2-device.patch + patches.armbian/arm64-dts-sun50i-h5-nanopi-neo2-add-regulator-led-triger.patch + patches.armbian/arm64-dts-sun50i-h5-orangepi-pc2-add-spi-flash.patch + patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-regulator.patch + patches.armbian/arm64-dts-sun50i-h5-orangepi-zero-plus-add-regulator.patch + patches.armbian/arm64-dts-sun50i-h6.dtsi-improve-thermals.patch + patches.armbian/arm64-dts-sun50i-h6-orangepi-3-delete-node-spi0.patch + patches.armbian/arm64-dts-sun50i-h6-orangepi-lite2-spi0-usb3phy-dwc3-enable.patch + patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-wifi-rtl8723cs.patch + patches.armbian/arm64-dts-sun50i-h6-pine-h64-add-dwc3-usb3phy.patch + patches.armbian/arm64-dts-sun50i-a64-pine64-add-spi0.patch + patches.armbian/arm64-dts-sun50i-h6.dtsi-add-pinctrl-pins-for-spi.patch + patches.armbian/arm64-dts-sun50i-a64-orangepi-win-add-aliase-ethernet1.patch + patches.armbian/arm64-dts-sun50i-a64-force-mmc0-bus-width.patch + patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch + patches.armbian/scripts-add-overlay-compilation-support.patch + patches.armbian/Enable-creation-of-__symbols__-node.patch + patches.armbian/Makefile-CONFIG_SHELL-fix-for-builddeb-packaging.patch + patches.armbian/arm-dts-overlay-Add-Overlays-for-sunxi.patch + patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch + patches.armbian/arm-dts-overlay-sun8i-h3-cpu-clock-add-overclock.patch + patches.armbian/arm64-dts-overlay-sun50i-a64-pine64-7inch-lcd.patch + patches.armbian/arm64-dts-overlay-sun50i-h5-add-gpio-regulator-overclock.patch + patches.armbian/Move-sun50i-h6-pwm-settings-to-its-own-overlay.patch + patches.armbian/Compile-the-pwm-overlay.patch + patches.armbian/cb1-overlay.patch + patches.armbian/Correct-perf-interrupt-source-number-as-referenced-in-the-Allwi.patch + patches.armbian/Enable-DMA-support-for-the-Allwinner-A10-EMAC-which-already-exi.patch + patches.armbian/Add-HDMI-support-for-pcDuino-1-and-2-by-including-HDMI-and-DE-n.patch + patches.armbian/Add-HDMI-support-for-pcDuino-3-by-including-HDMI-and-DE-nodes.patch + patches.armbian/arm-dts-sunxi-h3-h5.dtsi-add-i2s0-i2s1-pins.patch + patches.armbian/arm-dts-sun5i-a13-olinuxino-micro-add-panel-lcd-olinuxino-4.3.patch + patches.armbian/arm-dts-sun5i-a13-olinuxino-Add-panel-lcd-olinuxino-4.3-needed-.patch + patches.armbian/arm-dts-sun7i-a20-olinuxino-micro-emmc-Add-vqmmc-node.patch + patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-audio-codec.patch + patches.armbian/arm-dts-sun7i-a20-olinuxino-lime2-enable-ldo3-always-on.patch + patches.armbian/arm-dts-sun7i-a20-olimex-som-204-evb-olinuxino-micro-decrease-d.patch + patches.armbian/arm-dts-sun8i-h3-add-thermal-zones.patch + patches.armbian/arm64-dts-sun50i-a64-olinuxino-add-boards.patch + patches.armbian/arm64-dts-sun50i-a64-olinuxino-emmc-enable-bluetooth.patch + patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-enable-bluetooth.patch + patches.armbian/arm64-dts-sun50i-a64.dtsi-adjust-thermal-trip-points.patch + patches.armbian/arm64-dts-sun50i-a64-olinuxino-1Ge16GW-Disable-clock-phase-and-.patch + patches.armbian/Temp_fix-mailbox-arch-arm64-boot-dts-allwinner-sun50i-a64-pinep.patch + patches.armbian/arm64-dts-sun50i-h6-orangepi-3-add-r_uart-aliase.patch + patches.armbian/arm64-dts-sun50i-h5-add-cpu-opp-refs.patch + patches.armbian/arm64-dts-sun50i-h5-add-termal-zones.patch + patches.armbian/arm64-dts-sun50i-h6-orangepi-add-cpu-opp-refs.patch + patches.armbian/arm64-dts-sun50i-h6-orangepi-enable-higher-clock-regulator-max-.patch + patches.armbian/arm-dts-sun8i-h3-orangepi-pc-plus-add-wifi_pwrseq.patch + patches.armbian/arm64-dts-sun50i-h5-orangepi-prime-add-rtl8723cs.patch + patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-xradio-interrupt.patch + patches.armbian/arm64-dts-allwinner-sun50i-h6-Fix-H6-emmc.patch + patches.armbian/arm64-dts-sun50i-h5-nanopi-r1s-h5-add-rtl8153-support.patch + patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1-sd-emmc.patch + patches.armbian/ARM-dts-sun8i-nanopiduo2-Use-key-0-as-power-button.patch + patches.armbian/ARM-dts-sun8i-nanopiduo2-enable-ethernet.patch + patches.armbian/arm-dts-sun8i-h3-reduce-opp-microvolt-to-prevent-not-supported-.patch + patches.armbian/arm64-dts-sun50i-h5-enable-power-button-for-orangepi-prime.patch +- patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch # no longer applies cleanly, mentioned in PR + patches.armbian/arm64-dts-allwinner-h6-Add-AC200-EPHY-nodes.patch + patches.armbian/arm64-dts-allwinner-h6-tanix-enable-Ethernet.patch + patches.armbian/arm64-dts-allwinner-h6-add-AC200-codec-nodes.patch + patches.armbian/arm64-dts-allwinner-h6-enable-AC200-codec.patch + patches.armbian/add-nodes-for-sunxi-info-sunxi-addr-and-sunxi-dump-reg.patch + patches.armbian/add-initial-support-for-orangepi3-lts.patch + patches.armbian/Add-wifi-nodes-for-Inovato-Quadra.patch + patches.armbian/arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2-and-zero3.patch + patches.armbian/arm64-dts-sun50i-h618-orangepi-zero3-Enable-GPU-mali.patch + patches.armbian/arm64-sun50i-h616-Add-i2c-2-3-4-uart-2-5-pins.patch + patches.armbian/arm64-dts-sun50i-h616-add-pwm-nodes-support.patch + patches.armbian/arm64-dts-h616-8-Add-overlays-i2c-pwm-uart.patch + patches.armbian/arm64-dts-sun50i-h618-orangepi-zero2w-Add-missing-nodes.patch + patches.armbian/add-dtb-overlay-for-zero2w.patch + patches.armbian/Sound-for-H616-H618-Allwinner-SOCs.patch + patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-HDMI.patch + patches.armbian/ARM64-dts-sun50i-h616-BigTreeTech-CB1-Enable-EMAC1.patch + patches.armbian/arm64-dts-sun50i-h313-x96q-lpddr3.patch + patches.armbian/Add-BananaPi-BPI-M4-Zero-pinctrl.patch + patches.armbian/Add-BananaPi-BPI-M4-Zero-overlays.patch +- patches.armbian/Fix-ghost-touches-on-tsc2007-tft-screen.patch # no longer applies cleanly, noticed in PR + patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-usb_otg-dr_mode.patch + patches.armbian/BigTreeTech-CB1-dts-i2c-gpio-mode-adjustment-and-ws2812-rgb_val.patch + patches.armbian/arm64-allwinner-Add-sun50i-h618-bananapi-m4-berry-support.patch + patches.armbian/h616-add-keys.patch + patches.armbian/sun50i-h616-Add-the-missing-digital-audio-node.patch + patches.armbian/drv-spi-spidev-Add-armbian-spi-dev-compatible.patch \ No newline at end of file diff --git a/patch/kernel/archive/sunxi-6.16/series.drm b/patch/kernel/archive/sunxi-6.18/series.drm similarity index 100% rename from patch/kernel/archive/sunxi-6.16/series.drm rename to patch/kernel/archive/sunxi-6.18/series.drm diff --git a/patch/kernel/archive/sunxi-6.16/series.media b/patch/kernel/archive/sunxi-6.18/series.media similarity index 100% rename from patch/kernel/archive/sunxi-6.16/series.media rename to patch/kernel/archive/sunxi-6.18/series.media diff --git a/patch/misc/wireless-uwe5622/uwe5622-v6.18.patch b/patch/misc/wireless-uwe5622/uwe5622-v6.18.patch new file mode 100644 index 000000000..1a0341558 --- /dev/null +++ b/patch/misc/wireless-uwe5622/uwe5622-v6.18.patch @@ -0,0 +1,34 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Werner +Date: Thu, 11 Dec 2025 04:45:12 +0000 +Subject: Fix compilation of uwe5622 in Linux 6.18 + +Signed-off-by: Werner +--- + drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c +index 1558f1c03de0..07dd4528bf12 100644 +--- a/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c ++++ b/drivers/net/wireless/uwe5622/unisocwcn/platform/wcn_boot.c +@@ -1382,12 +1382,14 @@ static int marlin_registsr_bt_wake(struct device *dev) + WCN_ERR("bt_hostwake irq is invalid: %d\n", + bt_wake_host_gpio); + return -EINVAL; + } + +- ret = devm_gpio_request(dev, bt_wake_host_gpio, +- "bt-wake-host-gpio"); ++ struct gpio_desc *desc = devm_gpiod_get(dev, "bt-wake-host-gpio", GPIOD_OUT_LOW); ++ if (IS_ERR(desc)) ++ return PTR_ERR(desc); ++ + if (ret) { + WCN_ERR("bt-wake-host-gpio request err: %d\n", + bt_wake_host_gpio); + return ret; + } +-- +Armbian +