Commit Graph

992 Commits

Author SHA1 Message Date
Tianling Shen
8e5964c222
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-07-23 16:04:17 +08:00
Christian Marangi
548c437f7d
ipq806x: reorganize 02_network board.d script
Reorganize 02_network board.d script by splitting setup switch and setup
mac address.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-07-21 14:08:27 +02:00
Christian Marangi
0f1cd99b36
ipq806x: rename kernel files to generic name
Drop 6.1 tag from files directory for ipq806x now that we moved to 6.1
by default.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-07-21 14:08:27 +02:00
Christian Marangi
c2635d9b11
ipq806x: 5.15: drop useless kernel patches and dts files
Drop useless 5.15 kernel patches and files now that we moved to kernel
6.1 by default.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-07-21 14:08:26 +02:00
Christian Marangi
8db2ff827b
ipq806x: move to kernel 6.1 by default
Move to kernel 6.1 by default in preparation for DSA introduction.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-07-21 14:08:26 +02:00
Christian Marangi
d2a4b87743
ipq806x: 6.1: backport patch fixing broken hwspinlock
Backport merged patch fixing broken hwspinlock due to missing regmap
config for SFPB MMIO implementation.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-07-21 14:08:21 +02:00
Tianling Shen
1abf539b41
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-07-08 16:21:58 +08:00
John Audia
79a82d7e87 kernel: bump 6.1 to 6.1.37
Manually rebased:
	generic/hack-6.1/220-arm-gc_sections.patch
	armsr/patches-6.1/221-armsr-disable_gc_sections_armv7.patch

All other patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-07-05 20:32:37 +02:00
Tianling Shen
c3c09cd994
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-06-26 00:34:16 +08:00
Stefan Kalscheuer
b308bd50ef kernel: migrate FORCE_MAX_ZONEORDER to ARCH_FORCE_MAX_ORDER for 6.1
The flag FORCE_MAX_ZONEORDER was renamed to ARCH_FORCE_MAX_ORDER in
Kernel 6.1 [1]. Rename the flag in generic Kconfig and remove it from
target configs.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0192445cb2f7ed1cd7a95a0fc8c7645480baba25

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
2023-06-25 11:26:50 +02:00
Tianling Shen
4dd663ffc7
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-06-20 13:28:22 +08:00
Tianling Shen
b0063446b8
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-06-17 14:19:10 +08:00
Christian Marangi
a860e439ed
ipq806x: 6.1: restore missing dts for Netgear XR450
In pushing and refreshing 6.1 pull request, dbac8e8819 ("ipq806x: 6.1:
copy patches, files and config from 5.15") wasn't correctly updated and
resulted in missing the dts for Netgear XR450. This caused compilation
error with Netgear R7800 or XR500 if testing kernel version was used.

Fix this by adding back the missing dts for Netgear XR450 from kernel
5.15.

Fixes: dbac8e8819 ("ipq806x: 6.1: copy patches, files and config from 5.15")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-06-17 02:21:53 +02:00
Christian Marangi
37e4593213
Revert "ipq806x: disable cache and fabric devfreq driver to improve stability"
This reverts commit 60fc93b359.

Reenable devfreq and revert for both 5.15 and 6.1.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-06-16 11:33:44 +02:00
Christian Marangi
6d673c748b
Revert "Revert "ipq806x: disable cache and fabric devfreq driver to improve stability""
This reverts commit 5d88bfdc1f.

The revert contains merge error.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-06-16 11:28:39 +02:00
Christian Marangi
6f5ea752d7
ipq806x: set PERFORMANCE as the default cpufreq governor
Move default cpufreq governor from ONDEMAND to PERFORMANCE. The temp
increase is just 2°C and Watt usage the change is minimal in the order
of additional millwatt. The SoC and krait in general looks to suffer for
some problem with cache scaling. To have better system stability, force
cpu freq and cache freq to the max value supported by the system. This
follows mvebu platform where cpufreq is broken and cause minimal
temp/watt increase.

User can still tweak the governor to ondemand using sysfs entry if
needed.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-06-16 11:22:20 +02:00
Christian Marangi
5d88bfdc1f
Revert "ipq806x: disable cache and fabric devfreq driver to improve stability"
This reverts commit 60fc93b359.

Reenable devfreq and revert for both 5.15 and 6.1.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-06-16 11:15:29 +02:00
Tianling Shen
3495f95618
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-06-06 23:19:38 +08:00
Christian Marangi
0a4b309f41
generic: backport initial LEDs hw control support
Backport initial LEDs hw control support. Currently this is limited to
only rx/tx and link events for the netdev trigger but the API got
accepted and the additional modes are working on and will be backported
later.

Refresh every patch and add the additional config flag for QCA8K new
LEDs support.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-06-06 11:01:31 +02:00
Tianling Shen
95d86d92c9
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-06-02 19:52:24 +08:00
Yanase Yuki
9314744350
ipq806x: use new package name for NEC WG2600HP3
commit 0c45ad41e1 changes ipq806x usb kmod name
from usb-phy-qcom-dwc3 to phy-qcom-ipq806x-usb, so
use new name.

Signed-off-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
2023-06-01 19:44:10 +02:00
Tianling Shen
515d7502dd Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-05-26 11:37:05 +08:00
Andrzej Mialkowski
f2e1d37381
ipq806x: Add support for Netgear Nighthawk Pro Gaming XR450
Motivation:
 Firmware with platform ID "XR450" required for easy installation.

Manufacturer pages:
 Product page: https://www.netgear.com/support/product/xr450
 Product Data Sheet: https://www.netgear.com/images/datasheet/networking/wifirouter/XR450.pdf
 Current firmware: https://www.downloads.netgear.com/files/GDC/XR450/XR450-V2.3.2.134.zip

Specifications:
Almost identical to Netgear XR500(https://openwrt.org/toh/hwdata/netgear/netgear_xr500)

Differences:
	Platform ID: XR450, utilized for firmware validation
	WLAN 2.4GHz: b/g/n Supports QAM64 (XR500 QAM256)

SoC: Qualcomm Atheros IPQ8065
RAM: 512 MB
Storage: 256 MiB
Wireless: Qualcomm Atheros QCA9984
Switch: Qualcomm Atheros AR8337 rev. 2
Ethernet: 5x 1000/100/10
USB: 2x 3.0

Install via WEB GUI (recommended):
1. Navigate within GUI to firmware update section
2. Select openwrt-ipq806x-netgear_xr450-squashfs-factory.img
3. Dismiss downgrade warning

Install via TFTP recovery (same as XR500/R7800):

1. Configure host PC to use static address 192.168.1.10 https://openwrt.org/toh/netgear/r7800#prerequisites_for_tftp_flashing
2. Flash openwrt-ipq806x-netgear_xr450-squashfs-factory.img using procedure https://openwrt.org/toh/netgear/r7800#tftp_flashing_process

Revert to stock firmware
1. Download current manufacturer firmware, decompress zip file to obtain img file
2. Use TFTP recovery method flash img file (currently XR450-V2.3.2.134.img)
ipq806x: add support to netgear_xr450

Signed-off-by: Andrzej Mialkowski <andrzej.mialkowski@gmail.com>
2023-05-25 23:53:00 +02:00
Tianling Shen
6ac5d62e78 Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-05-24 14:01:53 +08:00
Tony Ambardar
c2d194a34e kernel: enable (ARM|ARM64)_MODULE_PLTS in generic config
This allows loading modules with large memory requirements, recently needed
while testing on armvirt/32. Past forum discussions [1] and bug reports [2]
also raised this and the ipq806x target already set it in response [3].
Given this increases kernel image size by only ~1KB, is generally useful on
multi-platform kernels, and enabled by default on upstream arm32 Linux, add
it to the generic config.

The setting has similar utility on arm64, is a requirement for KASLR, and
already enabled on most OpenWrt aarch64 targets, so pull this into the
top-level generic config.

[1]: https://forum.openwrt.org/t/vmap-allocation-for-size-442368-failed-use-vmalloc-size-to-increase-size/34545/7
[2]: https://github.com/openwrt/openwrt/issues/8282
[3]: f81e148eb6 ("ipq806x: update 4.19 kernel config").

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2023-05-23 05:49:46 -07:00
Tianling Shen
bdf6d3135c Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-05-23 12:19:10 +08:00
Christian Marangi
4c4ba37896
ipq806x: enable testing kernel version with 6.1 version
Enable testing kernel version with 6.1 kernel version.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-05-22 22:28:23 +02:00
Christian Marangi
b2d3131edf
ipq806x: 6.1: refresh config and add missing symbols
Refresh config for kernel 6.1 and add missing symbols
Then sorted using:
$ ./scripts/kconfig.pl '+' target/linux/ipq806x/config-6.1 /dev/null > target/linux/ipq806x/config-6.1-new
$ mv target/linux/ipq806x/config-6.1-new target/linux/ipq806x/config-6.1

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-05-22 22:28:23 +02:00
Christian Marangi
33a9bce278
ipq806x: 6.1: refresh dts
Refresh dts for kernel 6.1 support.
Changes:
- nbg6817 drop amba node and reference directly sdcc1.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-05-22 22:28:23 +02:00
Christian Marangi
64c204c586
ipq806x: 6.1: refresh kernel patches
Refresh ipq806x kernel patches with make target/linux/refresh.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-05-22 22:28:22 +02:00
Christian Marangi
eb69d7a4ff
ipq806x: 6.1: manually refresh kernel patches
Refresh kernel patches for version 6.1.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-05-22 22:28:22 +02:00
Christian Marangi
f92bf3ffbc
ipq806x: 6.1: replace ZRELADDR HACK patch with new version
With 6.1 lots have changed and the platform for Makefile.boot got
dropped. Replace the patch with a new version that is alligned to the
new implementation.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-05-22 22:28:22 +02:00
Christian Marangi
d06b859ada
ipq806x: 6.1: drop upstream patch
Drop patch that got merged upstream.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-05-22 22:28:21 +02:00
Christian Marangi
dbac8e8819
ipq806x: 6.1: copy patches, files and config from 5.15
Copy patches, files and config from 5.15 kernel version.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-05-22 22:28:21 +02:00
Tianling Shen
2ca84c2453 Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-05-19 11:51:16 +08:00
Christian Lamparter
1465691319 ipq806x: remove dangling ipq-wifi-edgecore_ecw5410
should have been part of the ipq-wifi update.

Fixes: 8217f02a1c ("ipq-wifi: drop upstreamed board-2.bin")
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2023-05-18 17:11:43 +02:00
Christian Lamparter
8217f02a1c ipq-wifi: drop upstreamed board-2.bin
The BDFs for the:
	Aruba AP-365
	Devolo Magic 2 WiFi next
	Edgecore ECW5410
	Edgecore OAP100
	Extreme Networks WS-AP3915i
	GL.iNet GL-A1300
	GL.iNet GL-AP1300
	GL.iNet GL-S1300
	Linksys EA8300
	Linksys WHW03v2
	Nokia Wi4A AC400i
	P&W R619AC
	Pakedge WR-1
	Qxwlan E2600AC C1
	Sony NCP-HG100/Cellular
	Teltonika RUTX10
	ZTE MF18A

were upstreamed to the ath10k-firmware repository
and landed in linux-firmware.git.

Furthermore the BDFs for the:
	8devices Habanero
	8devices Jalapeno
	Qxwlan E2600AC C2

have been updated.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2023-05-18 16:17:52 +02:00
Tianling Shen
42b32ffddc
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-05-14 11:31:16 +08:00
John Audia
228e0e1039 kernel: bump 5.15 to 5.15.111
Removed upstreamed:
	01. backport-5.15/424-v6.4-0001-mtd-core-provide-unique-name-for-nvmem-device-take-t.patch
	02. backport-5.15/424-v6.4-0002-mtd-core-fix-nvmem-error-reporting.patch
	03. generic-backport/424-v6.4-0003-mtd-core-fix-error-path-for-nvmem-provider.patch
	04. generic-backport/828-v6.4-0001-of-Fix-modalias-string-generation.patch
	05. bcm4908/patches-5.15/031-v5.17-0002-arm64-dts-broadcom-bcm4908-add-DT-for-Netgear-RAXE50.patch
	06. bcm4908/patches-5.15/033-v6.0-0001-arm64-dts-Add-DTS-files-for-bcmbca-SoC-BCM63158.patchgit
	07. bcm4908/patches-5.15/033-v6.0-0002-arm64-dts-Add-DTS-files-for-bcmbca-SoC-BCM4912.patchgita
	08. bcm4908/patches-5.15/033-v6.0-0010-arm64-dts-Add-base-DTS-file-for-bcmbca-device-Asus-G.patchgit
	09. bcm4908/patches-5.15/034-v6.1-0005-arm64-dts-Move-BCM4908-dts-to-bcmbca-folder.patch
	10. bcm4908/patches-5.15/036-v6.4-0002-arm64-dts-broadcom-bcmbca-bcm4908-fix-NAND-interrupt.patch
	11. bcm4908/patches-5.15/036-v6.4-0004-arm64-dts-broadcom-bcmbca-bcm4908-fix-procmon-nodena.patch
	12. ipq806x/patches-5.15/104-v6.0-06-ARM-dts-qcom-ipq8064-reduce-pci-IO-size-to-64K.patch

Manually rebased:
	bcm27xx/patches-5.15/950-0078-BCM2708-Add-core-Device-Tree-support.patch
	bcm27xx/patches-5.15/950-0547-ARM-dts-Add-Pi-Zero-2-support.patch
	bcm4908/patches-5.15/033-v6.0-0001-arm64-dts-Add-DTS-files-for-bcmbca-SoC-BCM63158.patchgit
	bcm4908/patches-5.15/033-v6.0-0002-arm64-dts-Add-DTS-files-for-bcmbca-SoC-BCM4912.patchgit
	bcm4908/patches-5.15/030-v5.16-0001-arm64-dts-broadcom-bcm4908-Fix-NAND-node-name.patch
	bcm4908/patches-5.15/032-v5.18-0002-arm64-dts-broadcom-bcm4908-add-pinctrl-binding.patch
	bcm4908/patches-5.15/032-v5.18-0003-arm64-dts-broadcom-bcm4908-add-watchdog-block.patch
	bcm4908/patches-5.15/032-v5.18-0004-arm64-dts-broadcom-bcm4908-add-I2C-block.patch
	bcm4908/patches-5.15/033-v6.0-0003-ARM64-dts-Add-DTS-files-for-bcmbca-SoC-BCM6858.patchgit
	bcm4908/patches-5.15/033-v6.0-0008-arm64-dts-broadcom-bcm4908-Fix-timer-node-for-BCM490.patchgit
	bcm4908/patches-5.15/034-v6.1-0001-arm64-dts-broadcom-bcm4908-add-remaining-LED-pins.patch
	bcm4908/patches-5.15/034-v6.1-0002-arm64-dts-broadcom-bcm4908-add-LEDs-controller-block.patch
	bcm4908/patches-5.15/034-v6.1-0003-arm64-dts-broadcom-bcm4908-add-Asus-GT-AC5300-LEDs.patch
	bcm4908/patches-5.15/034-v6.1-0004-arm64-dts-bcmbca-update-BCM4908-board-dts-files.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod
Run-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod

01. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=77112d23a671697f0f70695ab901f807e15d2093
02. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=fe07b3b5af01f42b291f5da0da09d047f50b33a6
03. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=273be36e420924237f6c9d43cdad96718c13dd52
04. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=fe8ab85ed4958e58e991bba0aa0a655b552b0273
05. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=6ae67829fa5e9e71f458f69db42f0e216225616a
06. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=1994284cb9226b65ca3a6744ce3320218b584f26
07. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=a46878476c5549a4fde15a31922ce80a50b23492
08. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=112ff0f2530549d50510f116474924f9c4fad590
09. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=7c253e98685e6d884d12e2618ef4d2ad90b4fbd7
10. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=8444b46e163aa9559a0af0381a1d230ec4146eb2
11. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=6d1af517817a760d7af3dee0fc4603645485495c
12. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.111&id=cc4f0e168a5630ad0491ac5328f1a89f3cf3d04e

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-05-13 22:38:35 +02:00
Tianling Shen
85d11b468b
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-05-12 19:20:08 +08:00
Nick Hainke
1d3e71bd97
treewide: remove files for building 5.10 kernel
All targets are bumped to 5.15. Remove the old 5.10 patches, configs
and files using:

  find target/linux -iname '*-5.10' -exec rm -r {} \;

Further, remove the 5.10 include.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-05-12 13:02:43 +02:00
Tianling Shen
76ae895eb4
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-05-12 11:15:51 +08:00
Christian Marangi
ade9eba149
ipq806x: 5.15: drop arm override compile patch
Drop arm override compile patch. The use is dubious and at times (2016)
it was never explained why this was required.
Krait CPU and Cortex-a15 may be similar but they have some intrinsic
difference. While very similar they differ a lot in additional feature
and also cache configuration.

Also these conflict with raid6 libraty compilation that use specific
workaround not compatible with cortex-a15 and produce compilation
warning.
Fix compilation warning:
cc1: error: switch '-mcpu=cortex-a15' conflicts with switch '-march=armv7-a+simd' [-Werror]
cc1: all warnings being treated as errors

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-05-12 03:15:41 +02:00
Christian Marangi
d96a0dbf3e
ipq806x: 5.15: fix compilation warning from mangle bootargs patch
Fix compilation warning from mangle bootargs patch. Now that we flag
warning as error these cause compilation error.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-05-12 03:15:33 +02:00
Lu jicong
1645c34d56
generic: enable CONFIG_ARM_CRYPTO for 32bit arm targets
Fix following error when building 32bit arm targets with kmod-crypto-sha512
ERROR: module '/home/user/openwrt/build_dir/target-arm_xscale_musl_eabi/linux-kirkwood_generic/linux-5.15.109/arch/arm/crypto/sha512-arm.ko' is missing.

Signed-off-by: Lu jicong <jiconglu58@gmail.com>
2023-05-10 19:01:45 +02:00
Tianling Shen
57444b84e9
ipq806x: enable CONFIG_ARM_CRYPTO
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-05-08 18:21:46 +08:00
Tianling Shen
963553fef9
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-05-05 19:43:20 +08:00
Tony Ambardar
3980dfcd05 kernel: fix handling of CONFIG_DYNAMIC_DEBUG
Since CONFIG_DYNAMIC_DEBUG is already managed via the KERNEL_DYNAMIC_DEBUG
setting in Config-kernel.in (default N), remove or disable it in target
configs which unconditionally enable it, along with the related setting
CONFIG_DYNAMIC_DEBUG_CORE. This saves several KB in the kernels for
ipq40xx, ipq806x, filogic, mt7622, qoriq, and sunxi.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2023-05-03 10:26:17 -07:00
Tianling Shen
6929d12202
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-04-23 07:13:24 +08:00
John Audia
126c64df2b kernel: bump 5.10 to 5.10.178
Removed upstreamed:
	backport-5.10/430-v6.3-ubi-Fix-failure-attaching-when-vid_hdr-offset-equals.patch[1]

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.10.178&id=0279e82e148407feec88466990de14bcba9e12c0

All other patches automatically rebased.

Signed-off-by: John Audia <therealgraysky@proton.me>
2023-04-22 01:15:03 +02:00