mirror of
https://github.com/home-assistant/operating-system.git
synced 2025-07-24 13:36:31 +00:00
Update all platforms to latest stable Linux 6.12 (#3850)
* Upgrade Rockchip platforms to Linux 6.12 Upgrade all Rockchip boards to latest 6.12. Patches for M1S can be dropped, its DTS has been merged. Same goes for the Rockchip TRNG, it only had to be enabled in the Green DTS. Patch for broken combphy has been updated for 6.12.y. * Remove deprecated and nonsense symbols from Rockchip defconfig Many symbols have been removed between 6.6 and 6.12. Most of them have no use in Rockchip defconfig, or should be set by other kernel fragments anyway. Remove all of them, with the exception of USB_ONBOARD_HUB (which was renamed to USB_ONBOARD_DEV) and FSCACHE (which was changed from tristate to bool). * Update generic-aarch64 to Linux 6.12 * Update Amlogic-based ODROID boards to Linux 6.12 Removed couple of deprecated/unrelated kernel options. * Update VIM3 to Linux 6.12 Cleaned up symbols unrelated/deprecated in 6.12 from defconfig. * Update ODROID-XU4 to Linux 6.12 The usual defconfigs suspects had to been removed and the regulator patch for ethernet needed a minor update after refactoring in upstream. * Update Tinker to Linux 6.12 Needed defconfig cleanup for 6.12, otherwise no changes. * Update x86 and OVA to latest 6.12 release This way the extra patches directory can be removed too. * Remove 6.6.73 patches * Refresh all linux patch series against 6.12.11 sources * Reenable HW RNG on M1S to speed up boot The TRNG on RK3566 supposedly [1] has low quality, that's why it's disabled in upstream for this SoC. We had it enabled in the past and without it, the boot is delayed by quite a lot. Enable it again for now and investigate the RNG issues later. [1] https://patchew.org/linux/cover.1722355365.git.daniel@makrotopia.org/ * Also remove CACHEFILES module from Rockchip config It was only enabled for Rockchip and Tinker, and to my knowledge there is no cachefiles daemon or anything other in the userspace that's using it. * Remove unused 6.6.y fragments Since we only have 6.6.y for Raspberry Pi now, it doesn't need the Rockchip and wireless PCI fragments.
This commit is contained in:
parent
f56130af19
commit
9a760a2e28
@ -3,7 +3,7 @@
|
||||
|
||||
| Board | Version |
|
||||
|-------|---------|
|
||||
| Open Virtual Appliance | 6.12.6 |
|
||||
| Open Virtual Appliance | 6.12.11 |
|
||||
| Raspberry Pi | 6.6.62 |
|
||||
| Raspberry Pi 0-W | 6.6.62 |
|
||||
| Raspberry Pi 2 | 6.6.62 |
|
||||
@ -11,14 +11,14 @@
|
||||
| Raspberry Pi 4 | 6.6.62 |
|
||||
| Raspberry Pi 5 | 6.6.62 |
|
||||
| Home Assistant Yellow | 6.6.62 |
|
||||
| Home Assistant Green | 6.6.73 |
|
||||
| Tinker Board | 6.6.73 |
|
||||
| ODROID-C2 | 6.6.73 |
|
||||
| ODROID-C4 | 6.6.73 |
|
||||
| ODROID-M1 | 6.6.73 |
|
||||
| ODROID-M1S | 6.6.73 |
|
||||
| ODROID-N2 | 6.6.73 |
|
||||
| ODROID-XU4 | 6.6.73 |
|
||||
| Generic aarch64 | 6.6.73 |
|
||||
| Generic x86-64 | 6.12.6 |
|
||||
| Khadas VIM3 | 6.6.73 |
|
||||
| Home Assistant Green | 6.12.11 |
|
||||
| Tinker Board | 6.12.11 |
|
||||
| ODROID-C2 | 6.12.11 |
|
||||
| ODROID-C4 | 6.12.11 |
|
||||
| ODROID-M1 | 6.12.11 |
|
||||
| ODROID-M1S | 6.12.11 |
|
||||
| ODROID-N2 | 6.12.11 |
|
||||
| ODROID-XU4 | 6.12.11 |
|
||||
| Generic aarch64 | 6.12.11 |
|
||||
| Generic x86-64 | 6.12.11 |
|
||||
| Khadas VIM3 | 6.12.11 |
|
||||
|
@ -66,8 +66,8 @@ CONFIG_GPIO_PCA9570=y
|
||||
CONFIG_PHY_XILINX_ZYNQMP=y
|
||||
|
||||
# USB support
|
||||
# TODO: enable `CONFIG_USB_ONBOARD_DEV` in 6.12
|
||||
# TODO: enable `CONFIG_USB_ONBOARD_DEV_USB5744` in 6.12
|
||||
CONFIG_USB_ONBOARD_DEV=y
|
||||
CONFIG_USB_ONBOARD_DEV_USB5744=y
|
||||
|
||||
# i2c support
|
||||
CONFIG_I2C_CADENCE=y
|
||||
|
@ -392,9 +392,6 @@ CONFIG_VLAN_8021Q=m
|
||||
CONFIG_VLAN_8021Q_GVRP=y
|
||||
CONFIG_VLAN_8021Q_MVRP=y
|
||||
CONFIG_ATALK=m
|
||||
CONFIG_DEV_APPLETALK=m
|
||||
CONFIG_IPDDP=m
|
||||
CONFIG_IPDDP_ENCAP=y
|
||||
CONFIG_6LOWPAN=m
|
||||
CONFIG_NET_SCHED=y
|
||||
CONFIG_NET_SCH_HTB=m
|
||||
@ -450,7 +447,6 @@ CONFIG_NET_ACT_GACT=m
|
||||
CONFIG_GACT_PROB=y
|
||||
CONFIG_NET_ACT_MIRRED=m
|
||||
CONFIG_NET_ACT_SAMPLE=m
|
||||
CONFIG_NET_ACT_IPT=m
|
||||
CONFIG_NET_ACT_NAT=m
|
||||
CONFIG_NET_ACT_PEDIT=m
|
||||
CONFIG_NET_ACT_SIMP=m
|
||||
@ -647,9 +643,6 @@ CONFIG_ATH10K_USB=m
|
||||
CONFIG_WCN36XX=m
|
||||
CONFIG_AT76C50X_USB=m
|
||||
CONFIG_BRCMFMAC=m
|
||||
CONFIG_HOSTAP=y
|
||||
CONFIG_HOSTAP_FIRMWARE=y
|
||||
CONFIG_HOSTAP_FIRMWARE_NVRAM=y
|
||||
# CONFIG_WLAN_VENDOR_MARVELL is not set
|
||||
CONFIG_MT7601U=m
|
||||
# CONFIG_WLAN_VENDOR_MICROCHIP is not set
|
||||
@ -667,9 +660,7 @@ CONFIG_RTL8192CU=m
|
||||
CONFIG_RTL8XXXU=m
|
||||
# CONFIG_WLAN_VENDOR_ST is not set
|
||||
# CONFIG_WLAN_VENDOR_TI is not set
|
||||
CONFIG_USB_ZD1201=m
|
||||
CONFIG_ZD1211RW=m
|
||||
CONFIG_USB_NET_RNDIS_WLAN=m
|
||||
CONFIG_NET_FAILOVER=m
|
||||
CONFIG_INPUT_MATRIXKMAP=y
|
||||
CONFIG_INPUT_JOYDEV=y
|
||||
@ -1495,7 +1486,6 @@ CONFIG_CUSE=m
|
||||
CONFIG_OVERLAY_FS=y
|
||||
CONFIG_FSCACHE=y
|
||||
CONFIG_FSCACHE_STATS=y
|
||||
CONFIG_CACHEFILES=y
|
||||
CONFIG_ISO9660_FS=m
|
||||
CONFIG_JOLIET=y
|
||||
CONFIG_ZISOFS=y
|
||||
@ -1503,7 +1493,6 @@ CONFIG_UDF_FS=m
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_NTFS_FS=m
|
||||
CONFIG_NTFS_RW=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_ECRYPT_FS=m
|
||||
@ -1527,7 +1516,6 @@ CONFIG_NFS_SWAP=y
|
||||
CONFIG_NFS_V4_1=y
|
||||
CONFIG_NFS_V4_2=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
CONFIG_NFS_FSCACHE=y
|
||||
CONFIG_NFSD=m
|
||||
CONFIG_NFSD_V3_ACL=y
|
||||
CONFIG_NFSD_V4=y
|
||||
@ -1571,7 +1559,6 @@ CONFIG_CRYPTO_TEA=m
|
||||
CONFIG_CRYPTO_TWOFISH=m
|
||||
CONFIG_CRYPTO_ARC4=m
|
||||
CONFIG_CRYPTO_CHACHA20=m
|
||||
CONFIG_CRYPTO_CFB=m
|
||||
CONFIG_CRYPTO_CTS=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_LRW=m
|
||||
|
@ -1,4 +1,4 @@
|
||||
From b4d676729c5bee4b9adb85362f6f2e32f833b6c2 Mon Sep 17 00:00:00 2001
|
||||
From 675fbbc309e4f7c805cf4fbd7c463cfc8308b54e Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Wed, 17 Feb 2021 19:55:41 +0100
|
||||
Subject: [PATCH] Revert "ARM: dts: rockchip: use DMA channels for UARTs for
|
||||
@ -10,10 +10,10 @@ This reverts commit 3425fe335c29310f6628faf9a7947d07f32d8962.
|
||||
1 file changed, 8 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/rockchip/rk3288.dtsi b/arch/arm/boot/dts/rockchip/rk3288.dtsi
|
||||
index cb9cdaddffd4..51f1273d6beb 100644
|
||||
index 3f1d640afafae..becf3abd8367f 100644
|
||||
--- a/arch/arm/boot/dts/rockchip/rk3288.dtsi
|
||||
+++ b/arch/arm/boot/dts/rockchip/rk3288.dtsi
|
||||
@@ -378,8 +378,6 @@ uart0: serial@ff180000 {
|
||||
@@ -387,8 +387,6 @@ uart0: serial@ff180000 {
|
||||
reg-io-width = <4>;
|
||||
clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
|
||||
clock-names = "baudclk", "apb_pclk";
|
||||
@ -22,7 +22,7 @@ index cb9cdaddffd4..51f1273d6beb 100644
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_xfer>;
|
||||
status = "disabled";
|
||||
@@ -393,8 +391,6 @@ uart1: serial@ff190000 {
|
||||
@@ -402,8 +400,6 @@ uart1: serial@ff190000 {
|
||||
reg-io-width = <4>;
|
||||
clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
|
||||
clock-names = "baudclk", "apb_pclk";
|
||||
@ -31,7 +31,7 @@ index cb9cdaddffd4..51f1273d6beb 100644
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_xfer>;
|
||||
status = "disabled";
|
||||
@@ -421,8 +417,6 @@ uart3: serial@ff1b0000 {
|
||||
@@ -430,8 +426,6 @@ uart3: serial@ff1b0000 {
|
||||
reg-io-width = <4>;
|
||||
clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
|
||||
clock-names = "baudclk", "apb_pclk";
|
||||
@ -40,7 +40,7 @@ index cb9cdaddffd4..51f1273d6beb 100644
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart3_xfer>;
|
||||
status = "disabled";
|
||||
@@ -436,8 +430,6 @@ uart4: serial@ff1c0000 {
|
||||
@@ -445,8 +439,6 @@ uart4: serial@ff1c0000 {
|
||||
reg-io-width = <4>;
|
||||
clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
|
||||
clock-names = "baudclk", "apb_pclk";
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 02c7d9bb23f497993d52f5a41341ed955e6a2745 Mon Sep 17 00:00:00 2001
|
||||
From 37b4467356113f17f55066aef54db55b64daa030 Mon Sep 17 00:00:00 2001
|
||||
From: "Miouyouyou (Myy)" <myy@miouyouyou.fr>
|
||||
Date: Mon, 5 Nov 2018 22:15:14 +0100
|
||||
Subject: [PATCH] ARM: DTS: rk3288-tinker: Defining the SPI interface
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
1 file changed, 19 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
|
||||
index 09618bb7d872..30430d2e64b9 100644
|
||||
index 09618bb7d872c..30430d2e64b93 100644
|
||||
--- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
|
||||
+++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
|
||||
@@ -483,6 +483,25 @@ &sdio0 {
|
||||
|
@ -1,4 +1,4 @@
|
||||
From bf7869033cf3caa50912cbdfa548428a6571c104 Mon Sep 17 00:00:00 2001
|
||||
From 1a15fc7f6a241895a31b00c1f324d358d408a610 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Fri, 4 Sep 2020 21:57:55 +0200
|
||||
Subject: [PATCH] ARM: dts: rockchip: enable I2C1/4 on rk3288-tinker
|
||||
@ -11,7 +11,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
|
||||
index 30430d2e64b9..395afc2b2283 100644
|
||||
index 30430d2e64b93..395afc2b2283c 100644
|
||||
--- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
|
||||
+++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
|
||||
@@ -342,10 +342,18 @@ regulator-state-mem {
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a0ef6a86e96920a9cf703d8c65d0126494037d37 Mon Sep 17 00:00:00 2001
|
||||
From d6c44c231fc4518ad69bb7870a193bb10c563f2a Mon Sep 17 00:00:00 2001
|
||||
From: Myy Miouyouyou <myy@miouyouyou.fr>
|
||||
Date: Thu, 19 Oct 2017 21:24:47 +0200
|
||||
Subject: [PATCH] RK3288: DTSI: rk3288.dtsi: Add missing SPI2 pinctrl
|
||||
@ -14,10 +14,10 @@ Signed-off-by: Myy Miouyouyou <myy@miouyouyou.fr>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/rockchip/rk3288.dtsi b/arch/arm/boot/dts/rockchip/rk3288.dtsi
|
||||
index 51f1273d6beb..d8663928bfe2 100644
|
||||
index becf3abd8367f..e78fa883b9841 100644
|
||||
--- a/arch/arm/boot/dts/rockchip/rk3288.dtsi
|
||||
+++ b/arch/arm/boot/dts/rockchip/rk3288.dtsi
|
||||
@@ -311,7 +311,7 @@ spi2: spi@ff130000 {
|
||||
@@ -320,7 +320,7 @@ spi2: spi@ff130000 {
|
||||
dma-names = "tx", "rx";
|
||||
interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e828e0fc2be98e5ad20c93981681505fc97b063b Mon Sep 17 00:00:00 2001
|
||||
From dfb0232e9fae1267d04247aaf171739038c1659e Mon Sep 17 00:00:00 2001
|
||||
From: "Miouyouyou (Myy)" <myy@miouyouyou.fr>
|
||||
Date: Mon, 5 Nov 2018 20:16:05 +0100
|
||||
Subject: [PATCH] ARM: DTSI: rk3288-tinker: Improving the CPU max voltage
|
||||
@ -11,7 +11,7 @@ Signed-off-by: Miouyouyou (Myy) <myy@miouyouyou.fr>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
|
||||
index 395afc2b2283..c7e79e594720 100644
|
||||
index 395afc2b2283c..c7e79e5947206 100644
|
||||
--- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
|
||||
+++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
|
||||
@@ -184,7 +184,7 @@ vdd_cpu: DCDC_REG1 {
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ad1ffd6be5f54a0871e3c303602548687dfe0ffc Mon Sep 17 00:00:00 2001
|
||||
From 4955695e410289df07258b00290d4028c3ac8fb1 Mon Sep 17 00:00:00 2001
|
||||
From: Myy Miouyouyou <myy@miouyouyou.fr>
|
||||
Date: Sun, 7 Jan 2018 01:52:44 +0100
|
||||
Subject: [PATCH] drivers: mmc: dw-mci-rockchip: Handle ASUS Tinkerboard reboot
|
||||
@ -21,7 +21,7 @@ Signed-off-by: Myy Miouyouyou <myy@miouyouyou.fr>
|
||||
1 file changed, 66 insertions(+)
|
||||
|
||||
diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c
|
||||
index b07190ba4b7a..0badaa1b404e 100644
|
||||
index f96260fd143b4..fa779ce8fb661 100644
|
||||
--- a/drivers/mmc/host/dw_mmc-rockchip.c
|
||||
+++ b/drivers/mmc/host/dw_mmc-rockchip.c
|
||||
@@ -12,6 +12,11 @@
|
||||
@ -36,7 +36,7 @@ index b07190ba4b7a..0badaa1b404e 100644
|
||||
#include "dw_mmc.h"
|
||||
#include "dw_mmc-pltfm.h"
|
||||
|
||||
@@ -340,6 +345,66 @@ static const struct of_device_id dw_mci_rockchip_match[] = {
|
||||
@@ -527,6 +532,66 @@ static const struct of_device_id dw_mci_rockchip_match[] = {
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, dw_mci_rockchip_match);
|
||||
|
||||
@ -103,7 +103,7 @@ index b07190ba4b7a..0badaa1b404e 100644
|
||||
static int dw_mci_rockchip_probe(struct platform_device *pdev)
|
||||
{
|
||||
const struct dw_mci_drv_data *drv_data;
|
||||
@@ -367,6 +432,7 @@ static int dw_mci_rockchip_probe(struct platform_device *pdev)
|
||||
@@ -554,6 +619,7 @@ static int dw_mci_rockchip_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
pm_runtime_put_autosuspend(&pdev->dev);
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 4e6c3d013c847f199664a3075934f5ca52d8cba4 Mon Sep 17 00:00:00 2001
|
||||
From 74227462bbe9236dca234dd24cce4191fa71bdf9 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Tue, 10 May 2022 22:57:26 +0200
|
||||
Subject: [PATCH] ARM: dts: rockchip: Add Bluetooth to rk3288-tinker
|
||||
@ -12,7 +12,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
1 file changed, 26 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
|
||||
index c7e79e594720..5d261fae6e72 100644
|
||||
index c7e79e5947206..5d261fae6e72a 100644
|
||||
--- a/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
|
||||
+++ b/arch/arm/boot/dts/rockchip/rk3288-tinker.dtsi
|
||||
@@ -386,6 +386,20 @@ bl_en: bl-en {
|
||||
|
@ -1,4 +1,4 @@
|
||||
From f597ec583c262ed4c3264ddf661e22b503fb8a11 Mon Sep 17 00:00:00 2001
|
||||
From eb29ab60a69353f355b3af58b06fff1a89d17992 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
|
||||
Date: Wed, 10 Jan 2024 16:29:59 +0100
|
||||
Subject: [PATCH] usb-audio: add ASUS TinkerBoard's ALC4040
|
||||
@ -12,10 +12,10 @@ Co-authored-by: Pascal Vizeli <pascal.vizeli@syshack.ch>
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/sound/usb/card.c b/sound/usb/card.c
|
||||
index 1b2edc0fd2e9..3069ac5b6759 100644
|
||||
index 9c411b82a218d..672136e25c81d 100644
|
||||
--- a/sound/usb/card.c
|
||||
+++ b/sound/usb/card.c
|
||||
@@ -521,6 +521,14 @@ static void usb_audio_make_shortname(struct usb_device *dev,
|
||||
@@ -533,6 +533,14 @@ static void usb_audio_make_shortname(struct usb_device *dev,
|
||||
}
|
||||
|
||||
strim(card->shortname);
|
||||
|
@ -228,7 +228,6 @@ CONFIG_PCIE_KIRIN=y
|
||||
# CONFIG_PCI_MESON is not set
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_BRCMSTB_GISB_ARB=y
|
||||
CONFIG_VEXPRESS_CONFIG=y
|
||||
CONFIG_ARM_SCPI_PROTOCOL=y
|
||||
CONFIG_EFI_CAPSULE_LOADER=y
|
||||
@ -381,7 +380,6 @@ CONFIG_TCG_TIS_I2C_INFINEON=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_MUX=y
|
||||
CONFIG_I2C_MUX_PCA954x=y
|
||||
CONFIG_I2C_DESIGNWARE_PLATFORM=y
|
||||
CONFIG_I2C_GPIO=m
|
||||
CONFIG_I2C_MESON=y
|
||||
CONFIG_I2C_RK3X=y
|
||||
@ -409,7 +407,6 @@ CONFIG_W1=y
|
||||
CONFIG_W1_MASTER_DS2490=m
|
||||
CONFIG_W1_MASTER_DS2482=m
|
||||
CONFIG_W1_MASTER_GPIO=m
|
||||
CONFIG_POWER_RESET_BRCMSTB=y
|
||||
CONFIG_POWER_RESET_VEXPRESS=y
|
||||
CONFIG_POWER_RESET_XGENE=y
|
||||
CONFIG_POWER_RESET_SYSCON=y
|
||||
@ -541,7 +538,6 @@ CONFIG_DRM_MESON=m
|
||||
CONFIG_DRM_PL111=m
|
||||
CONFIG_DRM_LIMA=m
|
||||
CONFIG_DRM_PANFROST=m
|
||||
CONFIG_DRM_LEGACY=y
|
||||
CONFIG_FB=y
|
||||
CONFIG_FB_MODE_HELPERS=y
|
||||
CONFIG_FB_EFI=y
|
||||
@ -684,7 +680,6 @@ CONFIG_ARM_SMMU_V3=y
|
||||
CONFIG_REMOTEPROC=y
|
||||
CONFIG_RPMSG_QCOM_GLINK_RPM=y
|
||||
CONFIG_MESON_CANVAS=y
|
||||
CONFIG_SOC_BRCMSTB=y
|
||||
CONFIG_SOC_TI=y
|
||||
CONFIG_EXTCON_USB_GPIO=y
|
||||
CONFIG_EXTCON_USBC_CROS_EC=y
|
||||
|
@ -0,0 +1,32 @@
|
||||
From 60b24f8c30181ef60964ce186c2a6d05b85f3be1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
|
||||
Date: Fri, 31 Jan 2025 16:13:48 +0100
|
||||
Subject: [PATCH] arm64: dts: rockchip: Enable Rockchip TRNG on ODROID-M1S
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
HAOS with 6.6 kernel had the RNG disbled because of a downstream patch. Now the
|
||||
rk356x.dtsi has it's enabled only in rk3568.dtsi. We want it enabled also for
|
||||
RK3566 on ODROID-M1S.
|
||||
|
||||
Signed-off-by: Jan Čermák <sairon@sairon.cz>
|
||||
---
|
||||
arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts b/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
index 33bc5249d729b..a0d912b5ce4aa 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
@@ -551,6 +551,10 @@ &pmu_io_domains {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&rng {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&saradc {
|
||||
vref-supply = <&vcca_1v8>;
|
||||
status = "okay";
|
@ -1,896 +0,0 @@
|
||||
From 83dadbe0a615f6fc7550dec98dee938647050990 Mon Sep 17 00:00:00 2001
|
||||
From: Tim Lunn <tim@feathertop.org>
|
||||
Date: Sun, 28 Jan 2024 18:52:26 +1100
|
||||
Subject: [PATCH] arm64: dts: rockchip: Import Hardkernel ODROID-M1S board
|
||||
|
||||
Odroid-m1s is in the process of being upstreamed.
|
||||
For now sync dts for Odroid-m1s:
|
||||
https://github.com/tobetter/linux/blob/ae33b445578884c70d7bfc5d6d519de4db815ccd/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
---
|
||||
arch/arm64/boot/dts/rockchip/Makefile | 1 +
|
||||
.../boot/dts/rockchip/rk3566-odroid-m1s.dts | 861 ++++++++++++++++++
|
||||
2 files changed, 862 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
index 8c15593c0ca4..362359684ed0 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
@@ -63,6 +63,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353p.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg503.dtb
|
||||
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-odroid-m1s.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.1.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.2.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts b/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
new file mode 100644
|
||||
index 000000000000..1cad9217c374
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
@@ -0,0 +1,861 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2023 Hardkernel Co., Ltd.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+#include <dt-bindings/leds/common.h>
|
||||
+#include <dt-bindings/pinctrl/rockchip.h>
|
||||
+#include <dt-bindings/soc/rockchip,vop2.h>
|
||||
+
|
||||
+#include "rk3566.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Hardkernel ODROID-M1S";
|
||||
+ compatible = "rockchip,rk3566-odroid-m1", "rockchip,rk3566";
|
||||
+
|
||||
+ aliases {
|
||||
+ ethernet1 = &gmac1;
|
||||
+ i2c0 = &i2c3;
|
||||
+ i2c3 = &i2c0;
|
||||
+ mmc0 = &sdhci;
|
||||
+ mmc1 = &sdmmc0;
|
||||
+ serial0 = &uart1;
|
||||
+ serial1 = &uart0;
|
||||
+ };
|
||||
+
|
||||
+ chosen: chosen {
|
||||
+ stdout-path = "serial2:1500000n8";
|
||||
+ };
|
||||
+
|
||||
+ hdmi-con {
|
||||
+ compatible = "hdmi-connector";
|
||||
+ type = "a";
|
||||
+
|
||||
+ port {
|
||||
+ hdmi_con_in: endpoint {
|
||||
+ remote-endpoint = <&hdmi_out_con>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ gmac1_clkin: external-gmac1-clock {
|
||||
+ compatible = "fixed-clock";
|
||||
+ clock-frequency = <125000000>;
|
||||
+ clock-output-names = "gmac1_clkin";
|
||||
+ #clock-cells = <0>;
|
||||
+ };
|
||||
+
|
||||
+ leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+ status = "okay";
|
||||
+
|
||||
+ red_led: red {
|
||||
+ gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "default-on";
|
||||
+ function = LED_FUNCTION_POWER;
|
||||
+ color = <LED_COLOR_ID_RED>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&led_power_en>;
|
||||
+ };
|
||||
+ blue_led: blue {
|
||||
+ gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
|
||||
+ linux,default-trigger = "heartbeat";
|
||||
+ function = LED_FUNCTION_HEARTBEAT;
|
||||
+ color = <LED_COLOR_ID_BLUE>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&led_work_en>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pcie20_3v3: pcie20-3v3-regulator {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ enable-active-high;
|
||||
+ gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pcie20_3v3_en>;
|
||||
+ regulator-name = "pcie20_3v3";
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ };
|
||||
+
|
||||
+ rk809-sound {
|
||||
+ compatible = "simple-audio-card";
|
||||
+ simple-audio-card,format = "i2s";
|
||||
+ simple-audio-card,name = "ODROID-M1-FRONT";
|
||||
+ simple-audio-card,mclk-fs = <256>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ simple-audio-card,cpu {
|
||||
+ sound-dai = <&i2s1_8ch>;
|
||||
+ };
|
||||
+
|
||||
+ simple-audio-card,codec {
|
||||
+ sound-dai = <&rk809>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcc3v3_sys: vcc3v3-sys {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "vcc3v3_sys";
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ vin-supply = <&vcc5v0_sys>;
|
||||
+ };
|
||||
+
|
||||
+ vcc5v_dcin: vcc5v-dcin {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "vcc-5v";
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ };
|
||||
+
|
||||
+ vcc5v0_sys: vcc5v0-sys {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "vcc5v0_sys";
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ vin-supply = <&vcc5v_dcin>;
|
||||
+ };
|
||||
+
|
||||
+ vcc5v0_host: vcc5v0-host-regulator {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ enable-active-high;
|
||||
+ gpio = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&vcc5v0_host_en>;
|
||||
+ regulator-name = "vcc5v0_host";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ vin-supply = <&vcc5v0_sys>;
|
||||
+ };
|
||||
+
|
||||
+ vcc5v0_usb_otg: vcc5v0-otg-regulator {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ enable-active-high;
|
||||
+ gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&vcc5v0_usb_otg_en>;
|
||||
+ regulator-name = "vcc5v0_usb_otg";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ vin-supply = <&vcc5v0_sys>;
|
||||
+ };
|
||||
+
|
||||
+ vcc5v0_usb_host: vcc5v0-usb3-regulator {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ enable-active-high;
|
||||
+ gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&vcc5v0_usb_host_en>;
|
||||
+ regulator-name = "vcc5v0_usb_host";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ vin-supply = <&vcc5v0_sys>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&combphy1 {
|
||||
+ phy-supply = <&vcc5v0_usb_host>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&combphy2 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&cpu0 {
|
||||
+ cpu-supply = <&vdd_cpu>;
|
||||
+};
|
||||
+
|
||||
+&cpu1 {
|
||||
+ cpu-supply = <&vdd_cpu>;
|
||||
+};
|
||||
+
|
||||
+&cpu2 {
|
||||
+ cpu-supply = <&vdd_cpu>;
|
||||
+};
|
||||
+
|
||||
+&cpu3 {
|
||||
+ cpu-supply = <&vdd_cpu>;
|
||||
+};
|
||||
+
|
||||
+&display_subsystem {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&gmac1 {
|
||||
+ assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
|
||||
+ assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
|
||||
+ clock_in_out = "input";
|
||||
+ phy-supply = <&vcc_3v3>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&gmac1m1_miim
|
||||
+ &gmac1m1_tx_bus2
|
||||
+ &gmac1m1_rx_bus2
|
||||
+ &gmac1m1_rgmii_clk
|
||||
+ &gmac1m1_rgmii_bus
|
||||
+ &gmac1m1_clkinout>;
|
||||
+ snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
|
||||
+ snps,reset-active-low;
|
||||
+ /* Reset time is 20ms, 100ms for rtl8211f */
|
||||
+ snps,reset-delays-us = <0 20000 100000>;
|
||||
+ tx_delay = <0x4f>;
|
||||
+ rx_delay = <0x2d>;
|
||||
+ phy-handle = <&rgmii_phy1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&gpio0 {
|
||||
+ gpio-line-names =
|
||||
+ /* GPIO0_A0-A3 */
|
||||
+ "", "", "", "",
|
||||
+ /* GPIO0_A4-A7 */
|
||||
+ "", "", "", "",
|
||||
+
|
||||
+ /* GPIO0_B0-B3 */
|
||||
+ "", "", "", "PIN_28",
|
||||
+ /* GPIO0_B4-B7 */
|
||||
+ "PIN_27", "PIN_33", "PIN_7", "",
|
||||
+
|
||||
+ /* GPIO0_C0-C3 */
|
||||
+ "PIN_11", "PIN_13", "PIN_15", "",
|
||||
+ /* GPIO0_C4-C7 */
|
||||
+ "", "", "", "",
|
||||
+
|
||||
+ /* GPIO0_D0-D3 */
|
||||
+ "", "", "", "",
|
||||
+ /* GPIO0_D4-D7 */
|
||||
+ "", "", "", "";
|
||||
+};
|
||||
+
|
||||
+&gpio1 {
|
||||
+ gpio-line-names =
|
||||
+ /* GPIO1_A0-A3 */
|
||||
+ "", "", "", "",
|
||||
+ /* GPIO1_A4-A7 */
|
||||
+ "", "", "", "",
|
||||
+
|
||||
+ /* GPIO1_B0-B3 */
|
||||
+ "", "", "", "",
|
||||
+ /* GPIO1_B4-B7 */
|
||||
+ "", "", "", "",
|
||||
+
|
||||
+ /* GPIO1_C0-C3 */
|
||||
+ "", "", "", "",
|
||||
+ /* GPIO1_C4-C7 */
|
||||
+ "", "", "", "",
|
||||
+
|
||||
+ /* GPIO1_D0-D3 */
|
||||
+ "", "", "", "",
|
||||
+ /* GPIO1_D4-D7 */
|
||||
+ "", "", "", "";
|
||||
+};
|
||||
+
|
||||
+&gpio2 {
|
||||
+ gpio-line-names =
|
||||
+ /* GPIO2_A0-A3 */
|
||||
+ "", "", "", "PIN_10",
|
||||
+ /* GPIO2_A4-A7 */
|
||||
+ "PIN_8", "PINN_35", "PIN_36", "PIN_12",
|
||||
+
|
||||
+ /* GPIO2_B0-B3 */
|
||||
+ "PIN_22", "PIN_26", "PIN_32", "",
|
||||
+ /* GPIO2_B4-B7 */
|
||||
+ "", "PIN_16", "PIN_18", "PIN_31",
|
||||
+
|
||||
+ /* GPIO2_C0-C3 */
|
||||
+ "PIN_29", "", "", "",
|
||||
+ /* GPIO2_C4-C7 */
|
||||
+ "", "", "", "",
|
||||
+
|
||||
+ /* GPIO2_D0-D3 */
|
||||
+ "", "", "", "",
|
||||
+ /* GPIO2_D4-D7 */
|
||||
+ "", "", "", "";
|
||||
+};
|
||||
+
|
||||
+&gpio3 {
|
||||
+ gpio-line-names =
|
||||
+ /* GPIO3_A0-A3 */
|
||||
+ "", "PIN_24", "", "",
|
||||
+ /* GPIO3_A4-A7 */
|
||||
+ "", "", "", "",
|
||||
+
|
||||
+ /* GPIO3_B0-B3 */
|
||||
+ "", "", "", "EXTPIN_13",
|
||||
+ /* GPIO3_B4-B7 */
|
||||
+ "EXTPIN_14", "PIN_5", "PIN_3", "",
|
||||
+
|
||||
+ /* GPIO3_C0-C3 */
|
||||
+ "", "PIN_19", "PIN_21", "PIN_23",
|
||||
+ /* GPIO3_C4-C7 */
|
||||
+ "EXTPIN_11", "EXTPIN_12", "", "",
|
||||
+
|
||||
+ /* GPIO3_D0-D3 */
|
||||
+ "", "", "", "",
|
||||
+ /* GPIO3_D4-D7 */
|
||||
+ "", "", "", "";
|
||||
+};
|
||||
+
|
||||
+&gpio4 {
|
||||
+ gpio-line-names =
|
||||
+ /* GPIO4_A0-A3 */
|
||||
+ "", "", "", "",
|
||||
+ /* GPIO4_A4-A7 */
|
||||
+ "", "", "", "",
|
||||
+
|
||||
+ /* GPIO4_B0-B3 */
|
||||
+ "", "", "", "",
|
||||
+ /* GPIO4_B4-B7 */
|
||||
+ "", "", "", "",
|
||||
+
|
||||
+ /* GPIO4_C0-C3 */
|
||||
+ "", "", "", "",
|
||||
+ /* GPIO4_C4-C7 */
|
||||
+ "", "", "", "",
|
||||
+
|
||||
+ /* GPIO4_D0-D3 */
|
||||
+ "", "", "", "",
|
||||
+ /* GPIO4_D4-D7 */
|
||||
+ "", "", "", "";
|
||||
+};
|
||||
+
|
||||
+&gpu {
|
||||
+ mali-supply = <&vdd_gpu>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi {
|
||||
+ avdd-0v9-supply = <&vdda0v9_image>;
|
||||
+ avdd-1v8-supply = <&vcca1v8_image>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi_in {
|
||||
+ hdmi_in_vp0: endpoint {
|
||||
+ remote-endpoint = <&vp0_out_hdmi>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&hdmi_out {
|
||||
+ hdmi_out_con: endpoint {
|
||||
+ remote-endpoint = <&hdmi_con_in>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&hdmi_sound {
|
||||
+ simple-audio-card,name = "ODROID-M1-HDMI";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&i2c0 {
|
||||
+ status = "okay";
|
||||
+ vdd_cpu: tcs4525@1c {
|
||||
+ compatible = "tcs,tcs452x";
|
||||
+ reg = <0x1c>;
|
||||
+ vin-supply = <&vcc5v0_sys>;
|
||||
+ regulator-compatible = "fan53555-reg";
|
||||
+ regulator-name = "vdd_cpu";
|
||||
+ regulator-min-microvolt = <712500>;
|
||||
+ regulator-max-microvolt = <1390000>;
|
||||
+ regulator-init-microvolt = <900000>;
|
||||
+ regulator-ramp-delay = <2300>;
|
||||
+ fcs,suspend-voltage-selector = <1>;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-always-on;
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ rk809: pmic@20 {
|
||||
+ compatible = "rockchip,rk809";
|
||||
+ reg = <0x20>;
|
||||
+ interrupt-parent = <&gpio0>;
|
||||
+ interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
|
||||
+ assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
|
||||
+ #clock-cells = <1>;
|
||||
+ clock-names = "mclk";
|
||||
+ clocks = <&cru I2S1_MCLKOUT_TX>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>;
|
||||
+ rockchip,system-power-controller;
|
||||
+ #sound-dai-cells = <0>;
|
||||
+ vcc1-supply = <&vcc3v3_sys>;
|
||||
+ vcc2-supply = <&vcc3v3_sys>;
|
||||
+ vcc3-supply = <&vcc3v3_sys>;
|
||||
+ vcc4-supply = <&vcc3v3_sys>;
|
||||
+ vcc5-supply = <&vcc3v3_sys>;
|
||||
+ vcc6-supply = <&vcc3v3_sys>;
|
||||
+ vcc7-supply = <&vcc3v3_sys>;
|
||||
+ vcc8-supply = <&vcc3v3_sys>;
|
||||
+ vcc9-supply = <&vcc3v3_sys>;
|
||||
+ wakeup-source;
|
||||
+
|
||||
+ regulators {
|
||||
+ vdd_logic: DCDC_REG1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <500000>;
|
||||
+ regulator-max-microvolt = <1350000>;
|
||||
+ regulator-init-microvolt = <900000>;
|
||||
+ regulator-ramp-delay = <6001>;
|
||||
+ regulator-initial-mode = <0x2>;
|
||||
+ regulator-name = "vdd_logic";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vdd_gpu: DCDC_REG2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <500000>;
|
||||
+ regulator-max-microvolt = <1350000>;
|
||||
+ regulator-init-microvolt = <900000>;
|
||||
+ regulator-ramp-delay = <6001>;
|
||||
+ regulator-initial-mode = <0x2>;
|
||||
+ regulator-name = "vdd_gpu";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcc_ddr: DCDC_REG3 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-initial-mode = <0x2>;
|
||||
+ regulator-name = "vcc_ddr";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-on-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vdd_npu: DCDC_REG4 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <500000>;
|
||||
+ regulator-max-microvolt = <1350000>;
|
||||
+ regulator-init-microvolt = <900000>;
|
||||
+ regulator-ramp-delay = <6001>;
|
||||
+ regulator-initial-mode = <0x2>;
|
||||
+ regulator-name = "vdd_npu";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vdda0v9_image: LDO_REG1 {
|
||||
+ regulator-boot-on;
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <900000>;
|
||||
+ regulator-max-microvolt = <900000>;
|
||||
+ regulator-name = "vdda0v9_image";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vdda_0v9: LDO_REG2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <900000>;
|
||||
+ regulator-max-microvolt = <900000>;
|
||||
+ regulator-name = "vdda_0v9";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vdda0v9_pmu: LDO_REG3 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <900000>;
|
||||
+ regulator-max-microvolt = <900000>;
|
||||
+ regulator-name = "vdda0v9_pmu";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-on-in-suspend;
|
||||
+ regulator-suspend-microvolt = <900000>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vccio_acodec: LDO_REG4 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <3000000>;
|
||||
+ regulator-max-microvolt = <3000000>;
|
||||
+ regulator-name = "vccio_acodec";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vccio_sd: LDO_REG5 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vccio_sd";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcc3v3_pmu: LDO_REG6 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc3v3_pmu";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-on-in-suspend;
|
||||
+ regulator-suspend-microvolt = <3300000>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcca_1v8: LDO_REG7 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vcca_1v8";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcca1v8_ddr: LDO_REG8 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vcca1v8_pmu";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-on-in-suspend;
|
||||
+ regulator-suspend-microvolt = <1800000>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcca1v8_image: LDO_REG9 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vcca1v8_image";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcc_1v8: DCDC_REG5 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vcc_1v8";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcc_3v3: SWITCH_REG1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-name = "vcc_3v3";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcc3v3_sd: SWITCH_REG2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-name = "vcc3v3_sd";
|
||||
+ regulator-state-mem {
|
||||
+ regulator-off-in-suspend;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c2 {
|
||||
+ status = "disabled";
|
||||
+
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c2m1_xfer>;
|
||||
+
|
||||
+ clock-frequency = <400000>;
|
||||
+};
|
||||
+
|
||||
+&i2c3 {
|
||||
+ status = "disabled";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c3m1_xfer>;
|
||||
+};
|
||||
+
|
||||
+&i2s0_8ch {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&i2s1_8ch {
|
||||
+ status = "okay";
|
||||
+ rockchip,clk-trcm = <1>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2s1m0_sclktx
|
||||
+ &i2s1m0_lrcktx
|
||||
+ &i2s1m0_sdi0
|
||||
+ &i2s1m0_sdo0>;
|
||||
+};
|
||||
+
|
||||
+&mdio1 {
|
||||
+ rgmii_phy1: phy@0 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <0x0>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pcie2x1 {
|
||||
+ reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
|
||||
+ vpcie3v3-supply = <&pcie20_3v3>;
|
||||
+ pinctrl-0 = <&pcie20m2_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pinctrl {
|
||||
+ gmac1 {
|
||||
+ gmac1m1_miim: gmac1m1-miim {
|
||||
+ rockchip,pins =
|
||||
+ /* gmac1_mdcm1 */
|
||||
+ <4 RK_PB6 3 &pcfg_pull_none_drv_level_15>,
|
||||
+ /* gmac1_mdiom1 */
|
||||
+ <4 RK_PB7 3 &pcfg_pull_none_drv_level_15>;
|
||||
+ };
|
||||
+
|
||||
+ gmac1m1_clkinout: gmac1m1-clkinout {
|
||||
+ rockchip,pins =
|
||||
+ /* gmac1_mclkinoutm1 */
|
||||
+ <4 RK_PC1 3 &pcfg_pull_none_drv_level_15>;
|
||||
+ };
|
||||
+
|
||||
+ gmac1m1_rx_bus2: gmac1m1-rx-bus2 {
|
||||
+ rockchip,pins =
|
||||
+ /* gmac1_rxd0m1 */
|
||||
+ <4 RK_PA7 3 &pcfg_pull_none_drv_level_15>,
|
||||
+ /* gmac1_rxd1m1 */
|
||||
+ <4 RK_PB0 3 &pcfg_pull_none_drv_level_15>,
|
||||
+ /* gmac1_rxdvcrsm1 */
|
||||
+ <4 RK_PB1 3 &pcfg_pull_none_drv_level_15>;
|
||||
+ };
|
||||
+
|
||||
+ gmac1m1_tx_bus2: gmac1m1-tx-bus2 {
|
||||
+ rockchip,pins =
|
||||
+ /* gmac1_txd0m1 */
|
||||
+ <4 RK_PA4 3 &pcfg_pull_none_drv_level_15>,
|
||||
+ /* gmac1_txd1m1 */
|
||||
+ <4 RK_PA5 3 &pcfg_pull_none_drv_level_15>,
|
||||
+ /* gmac1_txenm1 */
|
||||
+ <4 RK_PA6 3 &pcfg_pull_none_drv_level_15>;
|
||||
+ };
|
||||
+
|
||||
+ gmac1m1_rgmii_clk: gmac1m1-rgmii-clk {
|
||||
+ rockchip,pins =
|
||||
+ /* gmac1_rxclkm1 */
|
||||
+ <4 RK_PA3 3 &pcfg_pull_none_drv_level_15>,
|
||||
+ /* gmac1_txclkm1 */
|
||||
+ <4 RK_PA0 3 &pcfg_pull_none_drv_level_15>;
|
||||
+ };
|
||||
+
|
||||
+ gmac1m1_rgmii_bus: gmac1m1-rgmii-bus {
|
||||
+ rockchip,pins =
|
||||
+ /* gmac1_rxd2m1 */
|
||||
+ <4 RK_PA1 3 &pcfg_pull_none_drv_level_15>,
|
||||
+ /* gmac1_rxd3m1 */
|
||||
+ <4 RK_PA2 3 &pcfg_pull_none_drv_level_15>,
|
||||
+ /* gmac1_txd2m1 */
|
||||
+ <3 RK_PD6 3 &pcfg_pull_none_drv_level_15>,
|
||||
+ /* gmac1_txd3m1 */
|
||||
+ <3 RK_PD7 3 &pcfg_pull_none_drv_level_15>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ leds {
|
||||
+ led_power_en: led_power_en {
|
||||
+ rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
+ };
|
||||
+ led_work_en: led_work_en {
|
||||
+ rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pcie {
|
||||
+ pcie20_3v3_en: pcie20-3v3-en {
|
||||
+ rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pmic {
|
||||
+ pmic_int: pmic_int {
|
||||
+ rockchip,pins =
|
||||
+ <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ usb {
|
||||
+ vcc5v0_host_en: vcc5v0-host-en {
|
||||
+ rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
+ };
|
||||
+
|
||||
+ vcc5v0_usb_otg_en: vcc5v0-otg-en {
|
||||
+ rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
+ };
|
||||
+
|
||||
+ vcc5v0_usb_host_en: vcc5v0-usb3-en {
|
||||
+ rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pmu_io_domains {
|
||||
+ pmuio1-supply = <&vcc3v3_pmu>;
|
||||
+ pmuio2-supply = <&vcc3v3_pmu>;
|
||||
+ vccio1-supply = <&vccio_acodec>;
|
||||
+ vccio2-supply = <&vcc_1v8>;
|
||||
+ vccio3-supply = <&vccio_sd>;
|
||||
+ vccio4-supply = <&vcc_3v3>;
|
||||
+ vccio5-supply = <&vcc_3v3>;
|
||||
+ vccio6-supply = <&vcc_3v3>;
|
||||
+ vccio7-supply = <&vcc_3v3>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pwm1 {
|
||||
+ status = "disabled";
|
||||
+ pinctrl-0 = <&pwm1m1_pins>;
|
||||
+};
|
||||
+
|
||||
+&saradc {
|
||||
+ vref-supply = <&vcca_1v8>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&sdhci {
|
||||
+ bus-width = <8>;
|
||||
+ max-frequency = <200000000>;
|
||||
+ non-removable;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe &emmc_rstnout>;
|
||||
+ vmmc-supply = <&vcc_3v3>;
|
||||
+ vqmmc-supply = <&vcc_1v8>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&sdmmc0 {
|
||||
+ bus-width = <4>;
|
||||
+ cap-sd-highspeed;
|
||||
+ cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
|
||||
+ disable-wp;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
|
||||
+ sd-uhs-sdr104;
|
||||
+ vmmc-supply = <&vcc3v3_sys>;
|
||||
+ vqmmc-supply = <&vccio_sd>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tsadc {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&uart1 {
|
||||
+ dma-names = "tx", "rx";
|
||||
+ /* uart1 uart1-with-ctsrts */
|
||||
+ pinctrl-0 = <&uart1m1_xfer>;
|
||||
+ pinctrl-1 = <&uart1m1_xfer &uart1m1_ctsn &uart1m1_rtsn>;
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&uart2 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_host0_ehci {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_host0_ohci {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_host0_xhci {
|
||||
+ dr_mode = "otg";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_host1_ehci {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_host1_ohci {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_host1_xhci {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb2phy0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb2phy0_host {
|
||||
+ phy-supply = <&vcc5v0_usb_host>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb2phy0_otg {
|
||||
+ vbus-supply = <&vcc5v0_usb_otg>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb2phy1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb2phy1_host {
|
||||
+ phy-supply = <&vcc5v0_host>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb2phy1_otg {
|
||||
+ phy-supply = <&vcc5v0_host>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&vop {
|
||||
+ assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
|
||||
+ assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&vop_mmu {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&vp0 {
|
||||
+ vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
|
||||
+ reg = <ROCKCHIP_VOP2_EP_HDMI0>;
|
||||
+ remote-endpoint = <&hdmi_in_vp0>;
|
||||
+ };
|
||||
+};
|
||||
--
|
||||
2.40.1
|
||||
|
@ -1,335 +0,0 @@
|
||||
From eb02261dd6c88a7fcf3c28e59a7976905815fa6b Mon Sep 17 00:00:00 2001
|
||||
From: Tim Lunn <tim@feathertop.org>
|
||||
Date: Sun, 28 Jan 2024 18:55:57 +1100
|
||||
Subject: [PATCH] arm64: dts: clean up as required for mainline linux
|
||||
|
||||
---
|
||||
.../boot/dts/rockchip/rk3566-odroid-m1s.dts | 212 +++---------------
|
||||
1 file changed, 27 insertions(+), 185 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts b/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
index 1cad9217c374..cbf2495901d7 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
@@ -18,12 +18,8 @@ / {
|
||||
|
||||
aliases {
|
||||
ethernet1 = &gmac1;
|
||||
- i2c0 = &i2c3;
|
||||
- i2c3 = &i2c0;
|
||||
mmc0 = &sdhci;
|
||||
mmc1 = &sdmmc0;
|
||||
- serial0 = &uart1;
|
||||
- serial1 = &uart0;
|
||||
};
|
||||
|
||||
chosen: chosen {
|
||||
@@ -52,7 +48,7 @@ leds {
|
||||
compatible = "gpio-leds";
|
||||
status = "okay";
|
||||
|
||||
- red_led: red {
|
||||
+ red_led: led-0 {
|
||||
gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "default-on";
|
||||
function = LED_FUNCTION_POWER;
|
||||
@@ -60,7 +56,7 @@ red_led: red {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&led_power_en>;
|
||||
};
|
||||
- blue_led: blue {
|
||||
+ blue_led: led-1 {
|
||||
gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
function = LED_FUNCTION_HEARTBEAT;
|
||||
@@ -97,6 +93,25 @@ simple-audio-card,codec {
|
||||
};
|
||||
};
|
||||
|
||||
+ spdif_dit: spdif-dit {
|
||||
+ compatible = "linux,spdif-dit";
|
||||
+ #sound-dai-cells = <0>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ spdif_sound: spdif-sound {
|
||||
+ compatible = "simple-audio-card";
|
||||
+ status = "disabled";
|
||||
+
|
||||
+ simple-audio-card,cpu {
|
||||
+ sound-dai = <&spdif>;
|
||||
+ };
|
||||
+
|
||||
+ simple-audio-card,codec {
|
||||
+ sound-dai = <&spdif_dit>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
vcc3v3_sys: vcc3v3-sys {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc3v3_sys";
|
||||
@@ -164,7 +179,6 @@ vcc5v0_usb_host: vcc5v0-usb3-regulator {
|
||||
};
|
||||
|
||||
&combphy1 {
|
||||
- phy-supply = <&vcc5v0_usb_host>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -215,121 +229,6 @@ &gmac1m1_rgmii_bus
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
-&gpio0 {
|
||||
- gpio-line-names =
|
||||
- /* GPIO0_A0-A3 */
|
||||
- "", "", "", "",
|
||||
- /* GPIO0_A4-A7 */
|
||||
- "", "", "", "",
|
||||
-
|
||||
- /* GPIO0_B0-B3 */
|
||||
- "", "", "", "PIN_28",
|
||||
- /* GPIO0_B4-B7 */
|
||||
- "PIN_27", "PIN_33", "PIN_7", "",
|
||||
-
|
||||
- /* GPIO0_C0-C3 */
|
||||
- "PIN_11", "PIN_13", "PIN_15", "",
|
||||
- /* GPIO0_C4-C7 */
|
||||
- "", "", "", "",
|
||||
-
|
||||
- /* GPIO0_D0-D3 */
|
||||
- "", "", "", "",
|
||||
- /* GPIO0_D4-D7 */
|
||||
- "", "", "", "";
|
||||
-};
|
||||
-
|
||||
-&gpio1 {
|
||||
- gpio-line-names =
|
||||
- /* GPIO1_A0-A3 */
|
||||
- "", "", "", "",
|
||||
- /* GPIO1_A4-A7 */
|
||||
- "", "", "", "",
|
||||
-
|
||||
- /* GPIO1_B0-B3 */
|
||||
- "", "", "", "",
|
||||
- /* GPIO1_B4-B7 */
|
||||
- "", "", "", "",
|
||||
-
|
||||
- /* GPIO1_C0-C3 */
|
||||
- "", "", "", "",
|
||||
- /* GPIO1_C4-C7 */
|
||||
- "", "", "", "",
|
||||
-
|
||||
- /* GPIO1_D0-D3 */
|
||||
- "", "", "", "",
|
||||
- /* GPIO1_D4-D7 */
|
||||
- "", "", "", "";
|
||||
-};
|
||||
-
|
||||
-&gpio2 {
|
||||
- gpio-line-names =
|
||||
- /* GPIO2_A0-A3 */
|
||||
- "", "", "", "PIN_10",
|
||||
- /* GPIO2_A4-A7 */
|
||||
- "PIN_8", "PINN_35", "PIN_36", "PIN_12",
|
||||
-
|
||||
- /* GPIO2_B0-B3 */
|
||||
- "PIN_22", "PIN_26", "PIN_32", "",
|
||||
- /* GPIO2_B4-B7 */
|
||||
- "", "PIN_16", "PIN_18", "PIN_31",
|
||||
-
|
||||
- /* GPIO2_C0-C3 */
|
||||
- "PIN_29", "", "", "",
|
||||
- /* GPIO2_C4-C7 */
|
||||
- "", "", "", "",
|
||||
-
|
||||
- /* GPIO2_D0-D3 */
|
||||
- "", "", "", "",
|
||||
- /* GPIO2_D4-D7 */
|
||||
- "", "", "", "";
|
||||
-};
|
||||
-
|
||||
-&gpio3 {
|
||||
- gpio-line-names =
|
||||
- /* GPIO3_A0-A3 */
|
||||
- "", "PIN_24", "", "",
|
||||
- /* GPIO3_A4-A7 */
|
||||
- "", "", "", "",
|
||||
-
|
||||
- /* GPIO3_B0-B3 */
|
||||
- "", "", "", "EXTPIN_13",
|
||||
- /* GPIO3_B4-B7 */
|
||||
- "EXTPIN_14", "PIN_5", "PIN_3", "",
|
||||
-
|
||||
- /* GPIO3_C0-C3 */
|
||||
- "", "PIN_19", "PIN_21", "PIN_23",
|
||||
- /* GPIO3_C4-C7 */
|
||||
- "EXTPIN_11", "EXTPIN_12", "", "",
|
||||
-
|
||||
- /* GPIO3_D0-D3 */
|
||||
- "", "", "", "",
|
||||
- /* GPIO3_D4-D7 */
|
||||
- "", "", "", "";
|
||||
-};
|
||||
-
|
||||
-&gpio4 {
|
||||
- gpio-line-names =
|
||||
- /* GPIO4_A0-A3 */
|
||||
- "", "", "", "",
|
||||
- /* GPIO4_A4-A7 */
|
||||
- "", "", "", "",
|
||||
-
|
||||
- /* GPIO4_B0-B3 */
|
||||
- "", "", "", "",
|
||||
- /* GPIO4_B4-B7 */
|
||||
- "", "", "", "",
|
||||
-
|
||||
- /* GPIO4_C0-C3 */
|
||||
- "", "", "", "",
|
||||
- /* GPIO4_C4-C7 */
|
||||
- "", "", "", "",
|
||||
-
|
||||
- /* GPIO4_D0-D3 */
|
||||
- "", "", "", "",
|
||||
- /* GPIO4_D4-D7 */
|
||||
- "", "", "", "";
|
||||
-};
|
||||
-
|
||||
&gpu {
|
||||
mali-supply = <&vdd_gpu>;
|
||||
status = "okay";
|
||||
@@ -368,7 +267,6 @@ vdd_cpu: tcs4525@1c {
|
||||
regulator-name = "vdd_cpu";
|
||||
regulator-min-microvolt = <712500>;
|
||||
regulator-max-microvolt = <1390000>;
|
||||
- regulator-init-microvolt = <900000>;
|
||||
regulator-ramp-delay = <2300>;
|
||||
fcs,suspend-voltage-selector = <1>;
|
||||
regulator-boot-on;
|
||||
@@ -409,7 +307,6 @@ vdd_logic: DCDC_REG1 {
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
- regulator-init-microvolt = <900000>;
|
||||
regulator-ramp-delay = <6001>;
|
||||
regulator-initial-mode = <0x2>;
|
||||
regulator-name = "vdd_logic";
|
||||
@@ -423,7 +320,6 @@ vdd_gpu: DCDC_REG2 {
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
- regulator-init-microvolt = <900000>;
|
||||
regulator-ramp-delay = <6001>;
|
||||
regulator-initial-mode = <0x2>;
|
||||
regulator-name = "vdd_gpu";
|
||||
@@ -447,7 +343,6 @@ vdd_npu: DCDC_REG4 {
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <500000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
- regulator-init-microvolt = <900000>;
|
||||
regulator-ramp-delay = <6001>;
|
||||
regulator-initial-mode = <0x2>;
|
||||
regulator-name = "vdd_npu";
|
||||
@@ -587,6 +482,9 @@ regulator-state-mem {
|
||||
};
|
||||
};
|
||||
};
|
||||
+ codec {
|
||||
+ rockchip,mic-in-differential;
|
||||
+ };
|
||||
};
|
||||
};
|
||||
|
||||
@@ -611,7 +509,7 @@ &i2s0_8ch {
|
||||
|
||||
&i2s1_8ch {
|
||||
status = "okay";
|
||||
- rockchip,clk-trcm = <1>;
|
||||
+ rockchip,trcm-sync-tx-only;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s1m0_sclktx
|
||||
&i2s1m0_lrcktx
|
||||
@@ -620,7 +518,7 @@ &i2s1m0_sdi0
|
||||
};
|
||||
|
||||
&mdio1 {
|
||||
- rgmii_phy1: phy@0 {
|
||||
+ rgmii_phy1: ethernet-phy@0 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <0x0>;
|
||||
};
|
||||
@@ -634,62 +532,6 @@ &pcie2x1 {
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
- gmac1 {
|
||||
- gmac1m1_miim: gmac1m1-miim {
|
||||
- rockchip,pins =
|
||||
- /* gmac1_mdcm1 */
|
||||
- <4 RK_PB6 3 &pcfg_pull_none_drv_level_15>,
|
||||
- /* gmac1_mdiom1 */
|
||||
- <4 RK_PB7 3 &pcfg_pull_none_drv_level_15>;
|
||||
- };
|
||||
-
|
||||
- gmac1m1_clkinout: gmac1m1-clkinout {
|
||||
- rockchip,pins =
|
||||
- /* gmac1_mclkinoutm1 */
|
||||
- <4 RK_PC1 3 &pcfg_pull_none_drv_level_15>;
|
||||
- };
|
||||
-
|
||||
- gmac1m1_rx_bus2: gmac1m1-rx-bus2 {
|
||||
- rockchip,pins =
|
||||
- /* gmac1_rxd0m1 */
|
||||
- <4 RK_PA7 3 &pcfg_pull_none_drv_level_15>,
|
||||
- /* gmac1_rxd1m1 */
|
||||
- <4 RK_PB0 3 &pcfg_pull_none_drv_level_15>,
|
||||
- /* gmac1_rxdvcrsm1 */
|
||||
- <4 RK_PB1 3 &pcfg_pull_none_drv_level_15>;
|
||||
- };
|
||||
-
|
||||
- gmac1m1_tx_bus2: gmac1m1-tx-bus2 {
|
||||
- rockchip,pins =
|
||||
- /* gmac1_txd0m1 */
|
||||
- <4 RK_PA4 3 &pcfg_pull_none_drv_level_15>,
|
||||
- /* gmac1_txd1m1 */
|
||||
- <4 RK_PA5 3 &pcfg_pull_none_drv_level_15>,
|
||||
- /* gmac1_txenm1 */
|
||||
- <4 RK_PA6 3 &pcfg_pull_none_drv_level_15>;
|
||||
- };
|
||||
-
|
||||
- gmac1m1_rgmii_clk: gmac1m1-rgmii-clk {
|
||||
- rockchip,pins =
|
||||
- /* gmac1_rxclkm1 */
|
||||
- <4 RK_PA3 3 &pcfg_pull_none_drv_level_15>,
|
||||
- /* gmac1_txclkm1 */
|
||||
- <4 RK_PA0 3 &pcfg_pull_none_drv_level_15>;
|
||||
- };
|
||||
-
|
||||
- gmac1m1_rgmii_bus: gmac1m1-rgmii-bus {
|
||||
- rockchip,pins =
|
||||
- /* gmac1_rxd2m1 */
|
||||
- <4 RK_PA1 3 &pcfg_pull_none_drv_level_15>,
|
||||
- /* gmac1_rxd3m1 */
|
||||
- <4 RK_PA2 3 &pcfg_pull_none_drv_level_15>,
|
||||
- /* gmac1_txd2m1 */
|
||||
- <3 RK_PD6 3 &pcfg_pull_none_drv_level_15>,
|
||||
- /* gmac1_txd3m1 */
|
||||
- <3 RK_PD7 3 &pcfg_pull_none_drv_level_15>;
|
||||
- };
|
||||
- };
|
||||
-
|
||||
leds {
|
||||
led_power_en: led_power_en {
|
||||
rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
@@ -825,7 +667,7 @@ &usb2phy0_host {
|
||||
};
|
||||
|
||||
&usb2phy0_otg {
|
||||
- vbus-supply = <&vcc5v0_usb_otg>;
|
||||
+ phy-supply = <&vcc5v0_usb_otg>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
--
|
||||
2.40.1
|
||||
|
@ -1,43 +0,0 @@
|
||||
From 641ec8e05726d42c8ec7fa3bda1d8a64f126b475 Mon Sep 17 00:00:00 2001
|
||||
From: Tim Lunn <tim@feathertop.org>
|
||||
Date: Fri, 12 Jan 2024 22:32:56 +1100
|
||||
Subject: [PATCH] arm64: dts: fix vdd_cpu regulator for mainline
|
||||
|
||||
---
|
||||
.../arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts | 15 ++++++++-------
|
||||
1 file changed, 8 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts b/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
index cbf2495901d7..a5d9216b544b 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
@@ -259,18 +259,19 @@ &hdmi_sound {
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
- vdd_cpu: tcs4525@1c {
|
||||
- compatible = "tcs,tcs452x";
|
||||
+
|
||||
+ vdd_cpu: regulator@1c {
|
||||
+ compatible = "tcs,tcs4525";
|
||||
reg = <0x1c>;
|
||||
- vin-supply = <&vcc5v0_sys>;
|
||||
- regulator-compatible = "fan53555-reg";
|
||||
+ fcs,suspend-voltage-selector = <1>;
|
||||
regulator-name = "vdd_cpu";
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
regulator-min-microvolt = <712500>;
|
||||
regulator-max-microvolt = <1390000>;
|
||||
regulator-ramp-delay = <2300>;
|
||||
- fcs,suspend-voltage-selector = <1>;
|
||||
- regulator-boot-on;
|
||||
- regulator-always-on;
|
||||
+ vin-supply = <&vcc3v3_sys>;
|
||||
+
|
||||
regulator-state-mem {
|
||||
regulator-off-in-suspend;
|
||||
};
|
||||
--
|
||||
2.40.1
|
||||
|
@ -1,51 +0,0 @@
|
||||
From b4d16cd88ec2701dcb15b9519a79288ea5d2bfec Mon Sep 17 00:00:00 2001
|
||||
From: Tim Lunn <tim@feathertop.org>
|
||||
Date: Sat, 3 Feb 2024 23:40:16 +1100
|
||||
Subject: [PATCH] Remove deprecated snps,reset properties
|
||||
|
||||
---
|
||||
arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts | 11 +++++------
|
||||
1 file changed, 5 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts b/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
index b8adfd7024f9..e755d00b1d4f 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3566-odroid-m1s.dts
|
||||
@@ -192,8 +192,9 @@ &gmac1 {
|
||||
assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
|
||||
assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
|
||||
clock_in_out = "input";
|
||||
- phy-supply = <&vcc_3v3>;
|
||||
+ phy-handle = <&rgmii_phy1>;
|
||||
phy-mode = "rgmii";
|
||||
+ phy-supply = <&vcc_3v3>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gmac1m1_miim
|
||||
&gmac1m1_tx_bus2
|
||||
@@ -201,13 +202,8 @@ &gmac1m1_rx_bus2
|
||||
&gmac1m1_rgmii_clk
|
||||
&gmac1m1_rgmii_bus
|
||||
&gmac1m1_clkinout>;
|
||||
- snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
|
||||
- snps,reset-active-low;
|
||||
- /* Reset time is 20ms, 100ms for rtl8211f */
|
||||
- snps,reset-delays-us = <0 20000 100000>;
|
||||
tx_delay = <0x4f>;
|
||||
rx_delay = <0x2d>;
|
||||
- phy-handle = <&rgmii_phy1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -504,6 +500,9 @@ &mdio1 {
|
||||
rgmii_phy1: ethernet-phy@0 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
reg = <0x0>;
|
||||
+ reset-assert-us = <20000>;
|
||||
+ reset-deassert-us = <100000>;
|
||||
+ reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
--
|
||||
2.40.1
|
||||
|
@ -1,8 +1,11 @@
|
||||
From c51639443d3c90127a77f1534e39dd01fac1577f Mon Sep 17 00:00:00 2001
|
||||
From d4ec3799c0773b3a6d3d90f4b16eec1f50e4b032 Mon Sep 17 00:00:00 2001
|
||||
From: memeka <mihailescu2m@gmail.com>
|
||||
Date: Fri, 18 Jan 2019 14:36:21 +1030
|
||||
Subject: [PATCH] ODROID-XU4: regulator: s2mps11: add ethernet power reset in
|
||||
shutdown function
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Ethernet device cannot be detected on warm boot sometimes. This patch is
|
||||
to add the power reset routines for ethernet device using PMIC. Then
|
||||
@ -11,15 +14,17 @@ ethernet device can be reset hardware-wise.
|
||||
Change-Id: Iffbe2966da7e4679f63b91ab79241167391792df
|
||||
Signed-off-by: Brian Kim <brian.kim@hardkernel.com>
|
||||
Signed-off-by: Marian Mihailescu <mihailescu2m@gmail.com>
|
||||
[Updated patch for Linux 6.11+ after scoped memory allocation refactor]
|
||||
Signed-off-by: Jan Čermák <sairon@sairon.cz>
|
||||
---
|
||||
drivers/regulator/s2mps11.c | 55 +++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 55 insertions(+)
|
||||
drivers/regulator/s2mps11.c | 56 +++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 56 insertions(+)
|
||||
|
||||
diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c
|
||||
index 570b61420f3a..286b606660a4 100644
|
||||
index 7dcf92af8f15e..f08f6f494fe0b 100644
|
||||
--- a/drivers/regulator/s2mps11.c
|
||||
+++ b/drivers/regulator/s2mps11.c
|
||||
@@ -1117,6 +1117,57 @@ static const struct regulator_desc s2mpu02_regulators[] = {
|
||||
@@ -1118,6 +1118,57 @@ static const struct regulator_desc s2mpu02_regulators[] = {
|
||||
regulator_desc_s2mpu02_buck7(7),
|
||||
};
|
||||
|
||||
@ -77,7 +82,7 @@ index 570b61420f3a..286b606660a4 100644
|
||||
static int s2mps11_pmic_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct sec_pmic_dev *iodev = dev_get_drvdata(pdev->dev.parent);
|
||||
@@ -1219,6 +1270,10 @@ static int s2mps11_pmic_probe(struct platform_device *pdev)
|
||||
@@ -1219,6 +1270,11 @@ static int s2mps11_pmic_probe(struct platform_device *pdev)
|
||||
}
|
||||
}
|
||||
|
||||
@ -85,6 +90,7 @@ index 570b61420f3a..286b606660a4 100644
|
||||
+ s2mps11_pmic_ethonoff(pdev, false);
|
||||
+ mdelay(10);
|
||||
+ s2mps11_pmic_ethonoff(pdev, true);
|
||||
out:
|
||||
kfree(rdata);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e780a5f405a02e3102c471415f7b0ad73a5cc036 Mon Sep 17 00:00:00 2001
|
||||
From 8286ad3b1e761138e3c574160a5e1a2d6ed06084 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Mon, 11 Jan 2021 11:20:48 +0100
|
||||
Subject: [PATCH] arm64: dts: meson: g12b: add power button support
|
||||
@ -13,7 +13,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
|
||||
index 9e12a34b2840..c27eae6488ce 100644
|
||||
index 09d959aefb184..6be653ac77fac 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
|
||||
@@ -38,6 +38,17 @@ fan: gpio-fan {
|
||||
|
@ -1,4 +1,4 @@
|
||||
From cff7ba94733d9103487d87a6474e2ab026bd718c Mon Sep 17 00:00:00 2001
|
||||
From 6835f658a2c21d38730c1280587cf3768a82ad60 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Mon, 11 Jan 2021 11:38:54 +0100
|
||||
Subject: [PATCH] arm64: dts: meson: g12b: add GPIO fan support
|
||||
@ -13,7 +13,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
|
||||
index c27eae6488ce..db8a2dfaf0b3 100644
|
||||
index 6be653ac77fac..10dd23a3b44bc 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
|
||||
@@ -49,6 +49,17 @@ power-button {
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 8d781fc504780a3aa8ef751724e3749c2bfda7a9 Mon Sep 17 00:00:00 2001
|
||||
From 297031995dabde203581d555e9ddd91a50d155dc Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Mon, 11 Jan 2021 15:53:55 +0100
|
||||
Subject: [PATCH] arm64: dts: meson: g12b: odroid-n2: add fan as cooling device
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
1 file changed, 38 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
|
||||
index db8a2dfaf0b3..843e66332369 100644
|
||||
index 10dd23a3b44bc..13624c6522abc 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
|
||||
@@ -245,6 +245,44 @@ &clkc_audio {
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 01ac730fa92a030690a7701c9b8781bc4ef7bcae Mon Sep 17 00:00:00 2001
|
||||
From 742764eb039d8d96aa43afeb62a89b122073bb98 Mon Sep 17 00:00:00 2001
|
||||
From: Hyeonki Hong <hhk7734@gmail.com>
|
||||
Date: Fri, 27 Mar 2020 17:05:22 +0900
|
||||
Subject: [PATCH] arm64: dts: meson: add uart_A node
|
||||
@ -12,7 +12,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
|
||||
index 843e66332369..61caadd679e2 100644
|
||||
index 13624c6522abc..6a1330b40cf4d 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid.dtsi
|
||||
@@ -12,6 +12,7 @@
|
||||
|
@ -1,4 +1,4 @@
|
||||
From f5676219e12b48a0f591e911797304fae05ca78c Mon Sep 17 00:00:00 2001
|
||||
From bb0da00e7b89510fb66c7a8a1acf16d9f58a45fe Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 29 Apr 2021 21:32:43 +0200
|
||||
Subject: [PATCH] arm64: dts: meson: add i2c2 node to ODROID N2/N2+
|
||||
@ -13,11 +13,11 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
index 91c9769fda20..ececc6b17639 100644
|
||||
index 3bca8023638d4..45f6dada0edee 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-n2.dtsi
|
||||
@@ -248,6 +248,12 @@ usb-hub-hog {
|
||||
};
|
||||
@@ -264,6 +264,12 @@ &gpio {
|
||||
"PIN_36"; /* GPIOX_19 */
|
||||
};
|
||||
|
||||
+&i2c2 {
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 1c9c3ca476adf09884295e9f8298288ea497e5ac Mon Sep 17 00:00:00 2001
|
||||
From 37b8576e97c3a130160bd5908220c67b2258a443 Mon Sep 17 00:00:00 2001
|
||||
From: Hyeonki Hong <hhk7734@gmail.com>
|
||||
Date: Tue, 1 Mar 2022 21:51:50 +0100
|
||||
Subject: [PATCH] ODROID-C4: arm64/dts: add uart_A node
|
||||
@ -8,7 +8,7 @@ Subject: [PATCH] ODROID-C4: arm64/dts: add uart_A node
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
|
||||
index 1db2327bbd13..e67869fbb460 100644
|
||||
index 7b0e9817a615d..a41fc1cfdeead 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
|
||||
@@ -10,8 +10,9 @@
|
||||
@ -22,7 +22,7 @@ index 1db2327bbd13..e67869fbb460 100644
|
||||
};
|
||||
|
||||
chosen {
|
||||
@@ -449,6 +450,12 @@ &tohdmitx {
|
||||
@@ -453,6 +454,12 @@ &tohdmitx {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9cd343da01d9b69ad33444105208949775c909b4 Mon Sep 17 00:00:00 2001
|
||||
From 837c71af687b26385467b5c1e58208de325f6d26 Mon Sep 17 00:00:00 2001
|
||||
From: Hyeonki Hong <hhk7734@gmail.com>
|
||||
Date: Tue, 1 Mar 2022 21:53:32 +0100
|
||||
Subject: [PATCH] ODROID-C4: arm64/dts: add i2c2, i2c3 node
|
||||
@ -8,7 +8,7 @@ Subject: [PATCH] ODROID-C4: arm64/dts: add i2c2, i2c3 node
|
||||
1 file changed, 53 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
|
||||
index e67869fbb460..90d2eea7fe24 100644
|
||||
index a41fc1cfdeead..ceb8a182820fd 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid.dtsi
|
||||
@@ -11,6 +11,8 @@
|
||||
@ -20,7 +20,7 @@ index e67869fbb460..90d2eea7fe24 100644
|
||||
serial0 = &uart_AO;
|
||||
serial1 = &uart_A;
|
||||
};
|
||||
@@ -386,6 +388,57 @@ &ir {
|
||||
@@ -390,6 +392,57 @@ &ir {
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 299d45dd82df026c0164e170d476b56eada4aa77 Mon Sep 17 00:00:00 2001
|
||||
From 94625c724799c8082ab0f195e1799f88b352203d Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Wed, 15 Feb 2023 20:15:07 +0100
|
||||
Subject: [PATCH] arm64: dts: amlogic: add uartA/uartC to ODROID-C2
|
||||
@ -9,7 +9,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
|
||||
index e6d2de7c45a9..c6a38d890db5 100644
|
||||
index 959bd8d77a82e..557ad0cf8f975 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
|
||||
@@ -17,6 +17,8 @@ / {
|
||||
@ -21,7 +21,7 @@ index e6d2de7c45a9..c6a38d890db5 100644
|
||||
ethernet0 = ðmac;
|
||||
};
|
||||
|
||||
@@ -383,6 +385,18 @@ &uart_AO {
|
||||
@@ -387,6 +389,18 @@ &uart_AO {
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 61a378b42a2f61589cc62ff85334dd607014cb6d Mon Sep 17 00:00:00 2001
|
||||
From 2ee967384a0062b0de6a4259a9d9c839e11b1120 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Wed, 15 Feb 2023 20:16:29 +0100
|
||||
Subject: [PATCH] arm64: dts: amlogic: meson-gx: add missing pins for I2C A/B
|
||||
@ -9,10 +9,10 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
|
||||
index 12ef6e81c8bd..90ae81493de2 100644
|
||||
index ed00e67e6923a..460a21a4f551a 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
|
||||
@@ -333,6 +333,8 @@ &hwrng {
|
||||
@@ -339,6 +339,8 @@ &hwrng {
|
||||
|
||||
&i2c_A {
|
||||
clocks = <&clkc CLKID_I2C>;
|
||||
@ -21,7 +21,7 @@ index 12ef6e81c8bd..90ae81493de2 100644
|
||||
};
|
||||
|
||||
&i2c_AO {
|
||||
@@ -341,6 +343,8 @@ &i2c_AO {
|
||||
@@ -347,6 +349,8 @@ &i2c_AO {
|
||||
|
||||
&i2c_B {
|
||||
clocks = <&clkc CLKID_I2C>;
|
||||
|
@ -296,7 +296,6 @@ CONFIG_TCG_TIS_I2C_INFINEON=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_I2C_MUX=y
|
||||
CONFIG_I2C_MUX_PCA954x=y
|
||||
CONFIG_I2C_DESIGNWARE_PLATFORM=y
|
||||
CONFIG_I2C_GPIO=m
|
||||
CONFIG_I2C_MESON=y
|
||||
CONFIG_I2C_RK3X=y
|
||||
@ -332,7 +331,6 @@ CONFIG_GPIO_MAX732X=y
|
||||
CONFIG_GPIO_PCA953X=y
|
||||
CONFIG_GPIO_PCA953X_IRQ=y
|
||||
CONFIG_GPIO_MAX77620=y
|
||||
CONFIG_POWER_RESET_BRCMSTB=y
|
||||
CONFIG_POWER_RESET_XGENE=y
|
||||
CONFIG_POWER_RESET_SYSCON=y
|
||||
CONFIG_SYSCON_REBOOT_MODE=y
|
||||
@ -546,7 +544,6 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
CONFIG_LEDS_TRIGGER_CPU=y
|
||||
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
|
||||
CONFIG_LEDS_TRIGGER_PANIC=y
|
||||
CONFIG_LEDS_TRIGGER_AUDIO=m
|
||||
CONFIG_EDAC=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_DS1307=m
|
||||
@ -587,7 +584,6 @@ CONFIG_HWSPINLOCK=y
|
||||
CONFIG_ARM_SMMU=y
|
||||
CONFIG_ARM_SMMU_V3=y
|
||||
CONFIG_REMOTEPROC=y
|
||||
CONFIG_SOC_BRCMSTB=y
|
||||
CONFIG_SOC_TI=y
|
||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||
CONFIG_EXTCON_USB_GPIO=y
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9b1367f47f2e790f155d4aab39878233eedf7b22 Mon Sep 17 00:00:00 2001
|
||||
From 015fa4136338919a43c1c6e47e8c07679cefbaa2 Mon Sep 17 00:00:00 2001
|
||||
From: Zhangqun Ming <north_sea@qq.com>
|
||||
Date: Thu, 6 Jul 2023 10:05:04 +0000
|
||||
Subject: [PATCH] arm64: dts: rockchip: Add NabuCasa Green board
|
||||
@ -8,30 +8,32 @@ Content-Transfer-Encoding: 8bit
|
||||
|
||||
[Replaced custom rk860x driver with upstream fan53555]
|
||||
Signed-off-by: Jan Čermák <sairon@sairon.cz>
|
||||
[Enabled Rockchip RNG from rk356x.dtsi]
|
||||
Signed-off-by: Jan Čermák <sairon@sairon.cz>
|
||||
---
|
||||
arch/arm64/boot/dts/rockchip/Makefile | 1 +
|
||||
.../boot/dts/rockchip/rk3566-ha-green.dts | 684 ++++++++++++++++++
|
||||
2 files changed, 685 insertions(+)
|
||||
.../boot/dts/rockchip/rk3566-ha-green.dts | 688 ++++++++++++++++++
|
||||
2 files changed, 689 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
index e7728007fd1b..475becd793ac 100644
|
||||
index 09423070c9928..1f5a9d690648f 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
@@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353ps.dtb
|
||||
@@ -83,6 +83,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353ps.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353v.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg353vs.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg503.dtb
|
||||
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-ha-green.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.1.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.2.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-odroid-m1s.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-orangepi-3b-v1.1.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-orangepi-3b-v2.1.dtb
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts b/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts
|
||||
new file mode 100644
|
||||
index 000000000000..b5e4a67b3fc7
|
||||
index 0000000000000..d6a86cc57b65e
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts
|
||||
@@ -0,0 +1,684 @@
|
||||
@@ -0,0 +1,688 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2023 Seeed Co., Ltd.
|
||||
@ -559,6 +561,10 @@ index 000000000000..b5e4a67b3fc7
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&rng {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&saradc {
|
||||
+ vref-supply = <&vcca_1v8>;
|
||||
+ status = "okay";
|
||||
|
@ -1,4 +1,4 @@
|
||||
From be773999495258994d1df04448a4de43d58db9c4 Mon Sep 17 00:00:00 2001
|
||||
From 8bd12039ef70b3b78a588da61f6680cee40b65cf Mon Sep 17 00:00:00 2001
|
||||
From: Zhangqun Ming <north_sea@qq.com>
|
||||
Date: Wed, 12 Jul 2023 02:33:03 +0000
|
||||
Subject: [PATCH] drivers: mfd: rk808: set PWRON_LP_OFF_TIME 12s
|
||||
@ -9,10 +9,10 @@ Subject: [PATCH] drivers: mfd: rk808: set PWRON_LP_OFF_TIME 12s
|
||||
2 files changed, 6 insertions(+)
|
||||
|
||||
diff --git a/drivers/mfd/rk8xx-core.c b/drivers/mfd/rk8xx-core.c
|
||||
index a577f950c632..418a4506c99e 100644
|
||||
index 39ab114ea669d..c7a639b25231f 100644
|
||||
--- a/drivers/mfd/rk8xx-core.c
|
||||
+++ b/drivers/mfd/rk8xx-core.c
|
||||
@@ -232,6 +232,7 @@ static const struct rk808_reg_data rk817_pre_init_reg[] = {
|
||||
@@ -263,6 +263,7 @@ static const struct rk808_reg_data rk817_pre_init_reg[] = {
|
||||
{RK817_GPIO_INT_CFG, RK817_INT_POL_MSK, RK817_INT_POL_L},
|
||||
{RK817_SYS_CFG(1), RK817_HOTDIE_TEMP_MSK | RK817_TSD_TEMP_MSK,
|
||||
RK817_HOTDIE_105 | RK817_TSD_140},
|
||||
@ -21,10 +21,10 @@ index a577f950c632..418a4506c99e 100644
|
||||
|
||||
static const struct rk808_reg_data rk818_pre_init_reg[] = {
|
||||
diff --git a/include/linux/mfd/rk808.h b/include/linux/mfd/rk808.h
|
||||
index 78e167a92483..0bd7031966d6 100644
|
||||
index 69cbea78b430b..2a9563caa3e24 100644
|
||||
--- a/include/linux/mfd/rk808.h
|
||||
+++ b/include/linux/mfd/rk808.h
|
||||
@@ -1052,6 +1052,11 @@ enum rk809_reg_id {
|
||||
@@ -1195,6 +1195,11 @@ enum rk809_reg_id {
|
||||
#define RK817_ON_SOURCE_REG 0xf5
|
||||
#define RK817_OFF_SOURCE_REG 0xf6
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 41026603d639007895de1f48437813f78edb62ea Mon Sep 17 00:00:00 2001
|
||||
From c0430945cd4a6a5b4072662b44cb6a44d3f7ecc2 Mon Sep 17 00:00:00 2001
|
||||
From: Zhangqun Ming <north_sea@qq.com>
|
||||
Date: Sat, 15 Jul 2023 08:28:16 +0000
|
||||
Subject: [PATCH] arch: arm64: dts: green: Remove spiflash partitions
|
||||
@ -8,10 +8,10 @@ Subject: [PATCH] arch: arm64: dts: green: Remove spiflash partitions
|
||||
1 file changed, 2 insertions(+), 29 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts b/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts
|
||||
index b5e4a67b3fc7..debb9459a5aa 100644
|
||||
index d6a86cc57b65e..6336fe758819f 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts
|
||||
@@ -565,36 +565,9 @@ &sfc {
|
||||
@@ -569,36 +569,9 @@ &sfc {
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 0c8b1453993f15715836123bfc7c164e568913f2 Mon Sep 17 00:00:00 2001
|
||||
From c3f803f835db301e586127b061bd473fb61ec13a Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Wed, 19 Jul 2023 10:08:06 +0200
|
||||
Subject: [PATCH] Input: rk805-pwrkey: reverse polarity of pwrkey
|
||||
@ -12,7 +12,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/misc/rk805-pwrkey.c b/drivers/input/misc/rk805-pwrkey.c
|
||||
index 76873aa005b4..139419033c84 100644
|
||||
index 76873aa005b41..139419033c84a 100644
|
||||
--- a/drivers/input/misc/rk805-pwrkey.c
|
||||
+++ b/drivers/input/misc/rk805-pwrkey.c
|
||||
@@ -19,7 +19,7 @@ static irqreturn_t pwrkey_fall_irq(int irq, void *_pwr)
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 858d26179ee3a06fc7ebadf2c49dc337a7a98485 Mon Sep 17 00:00:00 2001
|
||||
From 3d75827d0318c792d4d7a68d7d7076deee3e7ad3 Mon Sep 17 00:00:00 2001
|
||||
From: zhangcy <chengyu.zhang@seeed.cc>
|
||||
Date: Mon, 14 Aug 2023 01:27:34 +0000
|
||||
Subject: [PATCH] green: emmc use HS200 mode
|
||||
@ -8,10 +8,10 @@ Subject: [PATCH] green: emmc use HS200 mode
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts b/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts
|
||||
index debb9459a5aa..e4b1e80641b9 100644
|
||||
index 6336fe758819f..61083a9885a78 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts
|
||||
@@ -532,6 +532,7 @@ &saradc {
|
||||
@@ -536,6 +536,7 @@ &saradc {
|
||||
|
||||
&sdhci {
|
||||
bus-width = <8>;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 6b926b041e939655d3a88202bde32f4901459a65 Mon Sep 17 00:00:00 2001
|
||||
From 6219da5138cdcdd0186187e8591010bbda5dc8a9 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Mon, 4 Sep 2023 22:36:10 +0200
|
||||
Subject: [PATCH] arch: arm64: dts: green: Improve LED representation
|
||||
@ -9,7 +9,7 @@ Fix color and use labels/node names according to the LEDs functionality.
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts b/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts
|
||||
index e4b1e80641b9..1d0db11db3e0 100644
|
||||
index 61083a9885a78..df260be4211d9 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3566-ha-green.dts
|
||||
@@ -48,16 +48,18 @@ hdmi_con_in: endpoint {
|
||||
|
@ -1,94 +0,0 @@
|
||||
From 5712a20822709d1cd744a435eba5d9c8ef91a834 Mon Sep 17 00:00:00 2001
|
||||
From: Zachary Michaels <mikezackles@gmail.com>
|
||||
Date: Thu, 7 Jan 2021 08:13:11 -0800
|
||||
Subject: [PATCH] iwlwifi: Make missed beacon timeout configurable
|
||||
|
||||
Makes the beacon timeout a module parameter, allowing the original default (16
|
||||
missed beacons) to be kept while also enabling users that experience problems to
|
||||
increase the timeout.
|
||||
|
||||
See https://bugzilla.kernel.org/show_bug.cgi?id=203709
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 4 ++++
|
||||
drivers/net/wireless/intel/iwlwifi/iwl-modparams.h | 2 ++
|
||||
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 3 ++-
|
||||
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 1 -
|
||||
4 files changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
index fb5e254757e7..2db7032ea269 100644
|
||||
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
|
||||
@@ -1866,6 +1866,7 @@ struct iwl_mod_params iwlwifi_mod_params = {
|
||||
.power_level = IWL_POWER_INDEX_1,
|
||||
.uapsd_disable = IWL_DISABLE_UAPSD_BSS | IWL_DISABLE_UAPSD_P2P_CLIENT,
|
||||
.enable_ini = ENABLE_INI,
|
||||
+ .beacon_timeout = 16,
|
||||
/* the rest are 0 by default */
|
||||
};
|
||||
IWL_EXPORT_SYMBOL(iwlwifi_mod_params);
|
||||
@@ -1982,6 +1983,9 @@ module_param_named(enable_ini, iwlwifi_mod_params.enable_ini, uint, 0444);
|
||||
MODULE_PARM_DESC(enable_ini,
|
||||
"0:disable, 1-15:FW_DBG_PRESET Values, 16:enabled without preset value defined,"
|
||||
"Debug INI TLV FW debug infrastructure (default: 16)");
|
||||
+module_param_named(beacon_timeout, iwlwifi_mod_params.beacon_timeout, uint, 0644);
|
||||
+MODULE_PARM_DESC(beacon_timeout,
|
||||
+ "Number of missed beacons before disconnecting (default: 16)");
|
||||
|
||||
/*
|
||||
* set bt_coex_active to true, uCode will do kill/defer
|
||||
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h b/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h
|
||||
index 1cf26ab4f488..ba50b7d21744 100644
|
||||
--- a/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h
|
||||
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-modparams.h
|
||||
@@ -63,6 +63,7 @@ enum iwl_uapsd_disable {
|
||||
* @remove_when_gone: remove an inaccessible device from the PCIe bus.
|
||||
* @enable_ini: enable new FW debug infratructure (INI TLVs)
|
||||
* @disable_11be: disable EHT capabilities, default = false.
|
||||
+ * @beacon_timeout: number of missed beacons before disconnect, default = 16
|
||||
*/
|
||||
struct iwl_mod_params {
|
||||
int swcrypto;
|
||||
@@ -86,6 +87,7 @@ struct iwl_mod_params {
|
||||
bool remove_when_gone;
|
||||
u32 enable_ini;
|
||||
bool disable_11be;
|
||||
+ u32 beacon_timeout;
|
||||
};
|
||||
|
||||
static inline bool iwl_enable_rx_ampdu(void)
|
||||
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
|
||||
index 9c97691e6038..56c0f98d12b5 100644
|
||||
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
|
||||
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <linux/crc32.h>
|
||||
#include <net/mac80211.h>
|
||||
#include "iwl-io.h"
|
||||
+#include "iwl-modparams.h"
|
||||
#include "iwl-prph.h"
|
||||
#include "fw-api.h"
|
||||
#include "mvm.h"
|
||||
@@ -1614,7 +1615,7 @@ void iwl_mvm_rx_missed_beacons_notif(struct iwl_mvm *mvm,
|
||||
* TODO: the threshold should be adjusted based on latency conditions,
|
||||
* and/or in case of a CS flow on one of the other AP vifs.
|
||||
*/
|
||||
- if (rx_missed_bcon > IWL_MVM_MISSED_BEACONS_THRESHOLD_LONG)
|
||||
+ if (rx_missed_bcon > iwlwifi_mod_params.beacon_timeout)
|
||||
iwl_mvm_connection_loss(mvm, vif, "missed beacons");
|
||||
else if (rx_missed_bcon_since_rx > IWL_MVM_MISSED_BEACONS_THRESHOLD)
|
||||
ieee80211_beacon_loss(vif);
|
||||
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
|
||||
index 218f3bc31104..4f112ecdf704 100644
|
||||
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
|
||||
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
|
||||
@@ -41,7 +41,6 @@
|
||||
/* RSSI offset for WkP */
|
||||
#define IWL_RSSI_OFFSET 50
|
||||
#define IWL_MVM_MISSED_BEACONS_THRESHOLD 8
|
||||
-#define IWL_MVM_MISSED_BEACONS_THRESHOLD_LONG 16
|
||||
|
||||
/* A TimeUnit is 1024 microsecond */
|
||||
#define MSEC_TO_TU(_msec) (_msec*1000/1024)
|
@ -4,7 +4,7 @@ BR2_DL_DIR="/cache/dl"
|
||||
BR2_CCACHE=y
|
||||
BR2_CCACHE_DIR="/cache/cc"
|
||||
BR2_ENABLE_LTO=y
|
||||
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches $(BR2_EXTERNAL_HASSOS_PATH)/board/pc/patches"
|
||||
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches"
|
||||
BR2_SSP_REGULAR=y
|
||||
BR2_TARGET_GENERIC_HOSTNAME="homeassistant"
|
||||
BR2_TARGET_GENERIC_ISSUE="Welcome to Home Assistant"
|
||||
@ -16,9 +16,9 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/arm-uefi/generic-aarch64 $(BR2_EXTERNAL_HASSOS_PATH)/board/arm-uefi/generic-aarch64/hassos-hook.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.73"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11"
|
||||
BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless-pci.config $(BR2_EXTERNAL_HASSOS_PATH)/board/arm-uefi/generic-aarch64/kernel.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless-pci.config $(BR2_EXTERNAL_HASSOS_PATH)/board/arm-uefi/generic-aarch64/kernel.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
|
||||
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
|
||||
|
@ -16,7 +16,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/pc/generic-x86-64 $(BR2_EXTERNAL_HASSOS_PATH)/board/pc/generic-x86-64/hassos-hook.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.6"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11"
|
||||
BR2_LINUX_KERNEL_DEFCONFIG="x86_64"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless-pci.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-pci.config $(BR2_EXTERNAL_HASSOS_PATH)/board/pc/generic-x86-64/kernel.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
|
@ -16,10 +16,10 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/nabucasa/green $(BR2_EXTERNAL_HASSOS_PATH)/board/nabucasa/green/hassos-hook.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.73"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11"
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/kernel-arm64-rockchip.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/nabucasa/green/kernel.config"
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/kernel-arm64-rockchip.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/nabucasa/green/kernel.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3566-ha-green"
|
||||
|
@ -16,10 +16,10 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/khadas/vim3 $(BR2_EXTERNAL_HASSOS_PATH)/board/khadas/vim3/hassos-hook.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.73"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11"
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/khadas/kernel-vim.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-g12b-s922x-khadas-vim3"
|
||||
|
@ -16,10 +16,10 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2 $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/hassos-hook.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.73"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11"
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/kernel-amlogic.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-gxbb-odroidc2"
|
||||
|
@ -16,10 +16,10 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4 $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4/hassos-hook.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.73"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11"
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/kernel-amlogic.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-sm1-odroid-c4"
|
||||
|
@ -16,10 +16,10 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1 $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1/hassos-hook.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.73"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11"
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/kernel-arm64-rockchip.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1/kernel.config"
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/kernel-arm64-rockchip.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1/kernel.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3568-odroid-m1"
|
||||
|
@ -16,10 +16,10 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1s $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1s/hassos-hook.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.73"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11"
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/kernel-arm64-rockchip.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1s/kernel.config"
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/kernel-arm64-rockchip.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-m1s/kernel.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3566-odroid-m1s"
|
||||
|
@ -16,10 +16,10 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-n2 $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-n2/hassos-hook.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.73"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11"
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/kernel-amlogic.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-n2/kernel.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-n2/kernel.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME="amlogic/meson-g12b-odroid-n2 amlogic/meson-g12b-odroid-n2-plus"
|
||||
|
@ -17,9 +17,9 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4 $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4/hassos-hook.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.73"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11"
|
||||
BR2_LINUX_KERNEL_DEFCONFIG="exynos"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4/kernel.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-xu4/kernel.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME="samsung/exynos5422-odroidxu4"
|
||||
|
@ -16,7 +16,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/pc/ova $(BR2_EXTERNAL_HASSOS_PATH)/board/pc/ova/hassos-hook.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.6"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11"
|
||||
BR2_LINUX_KERNEL_DEFCONFIG="x86_64"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-pci.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless-pci.config $(BR2_EXTERNAL_HASSOS_PATH)/board/pc/ova/kernel.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
|
@ -18,10 +18,10 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker $(BR2_EXTERNAL_HASSOS_PATH)/board/asus/hassos-hook.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.73"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11"
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker/kernel.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.6.y/device-support-wireless.config"
|
||||
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/v6.12.y/device-support-wireless.config"
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
||||
BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3288-tinker rockchip/rk3288-tinker-s"
|
||||
|
@ -85,7 +85,6 @@ CONFIG_ACPI_DOCK=y
|
||||
CONFIG_ACPI_IPMI=m
|
||||
CONFIG_ACPI_PCI_SLOT=y
|
||||
CONFIG_ACPI_HED=y
|
||||
CONFIG_ACPI_CUSTOM_METHOD=y
|
||||
CONFIG_ACPI_CONFIGFS=m
|
||||
CONFIG_PMIC_OPREGION=y
|
||||
CONFIG_VIRTUALIZATION=y
|
||||
@ -95,10 +94,8 @@ CONFIG_JUMP_LABEL=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||
CONFIG_MODULE_COMPRESS_NONE=y
|
||||
CONFIG_BLK_DEV_ZONED=y
|
||||
CONFIG_BLK_DEV_THROTTLING=y
|
||||
CONFIG_BLK_DEV_THROTTLING_LOW=y
|
||||
CONFIG_BLK_WBT=y
|
||||
CONFIG_BLK_CGROUP_IOLATENCY=y
|
||||
CONFIG_BLK_SED_OPAL=y
|
||||
@ -429,7 +426,6 @@ CONFIG_BRIDGE_EBT_REDIRECT=m
|
||||
CONFIG_BRIDGE_EBT_SNAT=m
|
||||
CONFIG_BRIDGE_EBT_LOG=m
|
||||
CONFIG_BRIDGE_EBT_NFLOG=m
|
||||
CONFIG_BPFILTER=y
|
||||
CONFIG_IP_DCCP=m
|
||||
CONFIG_SCTP_DBG_OBJCNT=y
|
||||
CONFIG_SCTP_COOKIE_HMAC_SHA1=y
|
||||
@ -461,9 +457,6 @@ CONFIG_VLAN_8021Q_GVRP=y
|
||||
CONFIG_VLAN_8021Q_MVRP=y
|
||||
CONFIG_LLC2=m
|
||||
CONFIG_ATALK=m
|
||||
CONFIG_DEV_APPLETALK=m
|
||||
CONFIG_IPDDP=m
|
||||
CONFIG_IPDDP_ENCAP=y
|
||||
CONFIG_X25=m
|
||||
CONFIG_LAPB=m
|
||||
CONFIG_PHONET=m
|
||||
@ -535,7 +528,6 @@ CONFIG_NET_ACT_GACT=m
|
||||
CONFIG_GACT_PROB=y
|
||||
CONFIG_NET_ACT_MIRRED=m
|
||||
CONFIG_NET_ACT_SAMPLE=m
|
||||
CONFIG_NET_ACT_IPT=m
|
||||
CONFIG_NET_ACT_NAT=m
|
||||
CONFIG_NET_ACT_PEDIT=m
|
||||
CONFIG_NET_ACT_SIMP=m
|
||||
@ -697,7 +689,6 @@ CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_FW_LOADER_USER_HELPER=y
|
||||
CONFIG_FW_LOADER_COMPRESS=y
|
||||
CONFIG_BRCMSTB_GISB_ARB=y
|
||||
CONFIG_SUNXI_RSB=m
|
||||
CONFIG_TEGRA_ACONNECT=m
|
||||
CONFIG_TEGRA_GMI=m
|
||||
@ -783,7 +774,6 @@ CONFIG_XILINX_SDFEC=m
|
||||
CONFIG_VCPU_STALL_DETECTOR=m
|
||||
CONFIG_EEPROM_AT24=m
|
||||
CONFIG_EEPROM_AT25=m
|
||||
CONFIG_EEPROM_LEGACY=m
|
||||
CONFIG_EEPROM_MAX6875=m
|
||||
CONFIG_EEPROM_EE1004=m
|
||||
CONFIG_CB710_CORE=m
|
||||
@ -916,9 +906,6 @@ CONFIG_PATA_OF_PLATFORM=y
|
||||
CONFIG_ATA_GENERIC=m
|
||||
CONFIG_MD=y
|
||||
CONFIG_BLK_DEV_MD=y
|
||||
CONFIG_MD_LINEAR=m
|
||||
CONFIG_MD_MULTIPATH=m
|
||||
CONFIG_MD_FAULTY=m
|
||||
CONFIG_MD_CLUSTER=m
|
||||
CONFIG_BCACHE=m
|
||||
CONFIG_BLK_DEV_DM=y
|
||||
@ -1075,7 +1062,6 @@ CONFIG_IXGBEVF=m
|
||||
CONFIG_I40E=m
|
||||
CONFIG_I40EVF=m
|
||||
CONFIG_FM10K=m
|
||||
CONFIG_TXGBE=m
|
||||
CONFIG_JME=m
|
||||
CONFIG_ADIN1110=m
|
||||
CONFIG_LITEX_LITEETH=m
|
||||
@ -1115,9 +1101,7 @@ CONFIG_DWMAC_SUNXI=m
|
||||
CONFIG_DWMAC_SUN8I=m
|
||||
CONFIG_TEHUTI=m
|
||||
CONFIG_XILINX_EMACLITE=m
|
||||
CONFIG_XILINX_AXI_EMAC=m
|
||||
CONFIG_XILINX_LL_TEMAC=m
|
||||
CONFIG_NET_SB1000=y
|
||||
CONFIG_LED_TRIGGER_PHY=y
|
||||
CONFIG_SFP=m
|
||||
CONFIG_AMD_PHY=m
|
||||
@ -1274,14 +1258,11 @@ CONFIG_ATH10K_DFS_CERTIFIED=y
|
||||
CONFIG_WCN36XX=m
|
||||
CONFIG_ATH11K=m
|
||||
CONFIG_ATH11K_AHB=m
|
||||
CONFIG_ATMEL=m
|
||||
CONFIG_PCI_ATMEL=m
|
||||
CONFIG_AT76C50X_USB=m
|
||||
CONFIG_B43=m
|
||||
CONFIG_B43_SDIO=y
|
||||
CONFIG_B43LEGACY=m
|
||||
CONFIG_BRCMSMAC=m
|
||||
CONFIG_BRCMFMAC=m
|
||||
CONFIG_BRCMFMAC_USB=y
|
||||
CONFIG_BRCMFMAC_PCIE=y
|
||||
CONFIG_BRCMDBG=y
|
||||
@ -1296,12 +1277,6 @@ CONFIG_IWL3945=m
|
||||
CONFIG_IWLWIFI=m
|
||||
CONFIG_IWLDVM=m
|
||||
CONFIG_IWLMVM=m
|
||||
CONFIG_HOSTAP=m
|
||||
CONFIG_HOSTAP_FIRMWARE=y
|
||||
CONFIG_HOSTAP_FIRMWARE_NVRAM=y
|
||||
CONFIG_HERMES=m
|
||||
CONFIG_HERMES_PRISM=y
|
||||
CONFIG_ORINOCO_USB=m
|
||||
CONFIG_P54_COMMON=m
|
||||
CONFIG_P54_USB=m
|
||||
CONFIG_P54_SPI=m
|
||||
@ -1380,11 +1355,9 @@ CONFIG_WL12XX=m
|
||||
CONFIG_WL18XX=m
|
||||
CONFIG_WLCORE_SPI=m
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
CONFIG_USB_ZD1201=m
|
||||
CONFIG_ZD1211RW=m
|
||||
CONFIG_QTNFMAC_PCIE=m
|
||||
CONFIG_MAC80211_HWSIM=m
|
||||
CONFIG_USB_NET_RNDIS_WLAN=m
|
||||
CONFIG_VIRT_WIFI=m
|
||||
CONFIG_WAN=y
|
||||
CONFIG_HDLC=m
|
||||
@ -1482,9 +1455,6 @@ CONFIG_TOUCHSCREEN_CY8CTMG110=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
|
||||
CONFIG_TOUCHSCREEN_DYNAPRO=m
|
||||
CONFIG_TOUCHSCREEN_HAMPSHIRE=m
|
||||
CONFIG_TOUCHSCREEN_EETI=m
|
||||
@ -1505,7 +1475,6 @@ CONFIG_TOUCHSCREEN_ELO=m
|
||||
CONFIG_TOUCHSCREEN_WACOM_W8001=m
|
||||
CONFIG_TOUCHSCREEN_WACOM_I2C=m
|
||||
CONFIG_TOUCHSCREEN_MAX11801=m
|
||||
CONFIG_TOUCHSCREEN_MCS5000=m
|
||||
CONFIG_TOUCHSCREEN_MMS114=m
|
||||
CONFIG_TOUCHSCREEN_MELFAS_MIP4=m
|
||||
CONFIG_TOUCHSCREEN_MSG2638=m
|
||||
@ -1594,7 +1563,6 @@ CONFIG_SERIAL_SIFIVE=m
|
||||
CONFIG_SERIAL_SCCNXP=y
|
||||
CONFIG_SERIAL_SCCNXP_CONSOLE=y
|
||||
CONFIG_SERIAL_SC16IS7XX=m
|
||||
CONFIG_SERIAL_SC16IS7XX_SPI=y
|
||||
CONFIG_SERIAL_ALTERA_JTAGUART=m
|
||||
CONFIG_SERIAL_ALTERA_UART=m
|
||||
CONFIG_SERIAL_XILINX_PS_UART=y
|
||||
@ -1642,8 +1610,6 @@ CONFIG_I2C_DEMUX_PINCTRL=m
|
||||
CONFIG_I2C_MUX_MLXCPLD=m
|
||||
CONFIG_I2C_CADENCE=m
|
||||
CONFIG_I2C_CBUS_GPIO=m
|
||||
CONFIG_I2C_DESIGNWARE_PLATFORM=y
|
||||
CONFIG_I2C_DESIGNWARE_PCI=m
|
||||
CONFIG_I2C_EMEV2=m
|
||||
CONFIG_I2C_GPIO=m
|
||||
CONFIG_I2C_GPIO_FAULT_INJECTOR=y
|
||||
@ -1797,7 +1763,6 @@ CONFIG_W1_SLAVE_DS250X=m
|
||||
CONFIG_W1_SLAVE_DS28E04=m
|
||||
CONFIG_W1_SLAVE_DS28E17=m
|
||||
CONFIG_POWER_RESET_ATC260X=m
|
||||
CONFIG_POWER_RESET_BRCMSTB=y
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
CONFIG_POWER_RESET_GPIO_RESTART=y
|
||||
CONFIG_POWER_RESET_REGULATOR=y
|
||||
@ -2028,7 +1993,6 @@ CONFIG_SENSORS_W83627EHF=m
|
||||
CONFIG_SENSORS_XGENE=m
|
||||
CONFIG_SENSORS_ACPI_POWER=m
|
||||
CONFIG_THERMAL_STATISTICS=y
|
||||
CONFIG_THERMAL_WRITABLE_TRIPS=y
|
||||
CONFIG_THERMAL_GOV_FAIR_SHARE=y
|
||||
CONFIG_THERMAL_GOV_BANG_BANG=y
|
||||
CONFIG_THERMAL_GOV_USER_SPACE=y
|
||||
@ -2409,7 +2373,6 @@ CONFIG_DVB_LGS8GL5=m
|
||||
CONFIG_DVB_LNBH29=m
|
||||
CONFIG_DRM=m
|
||||
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
|
||||
CONFIG_DRM_DP_CEC=y
|
||||
CONFIG_DRM_I2C_CH7006=m
|
||||
CONFIG_DRM_I2C_SIL164=m
|
||||
CONFIG_DRM_I2C_NXP_TDA998X=m
|
||||
@ -2537,11 +2500,9 @@ CONFIG_DRM_LIMA=m
|
||||
CONFIG_DRM_PANFROST=m
|
||||
CONFIG_DRM_TIDSS=m
|
||||
CONFIG_DRM_GUD=m
|
||||
CONFIG_DRM_LEGACY=y
|
||||
CONFIG_FB=y
|
||||
CONFIG_FIRMWARE_EDID=y
|
||||
CONFIG_FB_TILEBLITTING=y
|
||||
CONFIG_FB_ARMCLCD=y
|
||||
CONFIG_FB_UVESA=m
|
||||
CONFIG_FB_EFI=y
|
||||
CONFIG_FB_UDL=m
|
||||
@ -2558,7 +2519,6 @@ CONFIG_BACKLIGHT_QCOM_WLED=m
|
||||
CONFIG_BACKLIGHT_RT4831=m
|
||||
CONFIG_BACKLIGHT_ADP5520=m
|
||||
CONFIG_BACKLIGHT_AAT2870=m
|
||||
CONFIG_BACKLIGHT_LP855X=y
|
||||
CONFIG_BACKLIGHT_AS3711=m
|
||||
CONFIG_BACKLIGHT_GPIO=m
|
||||
CONFIG_BACKLIGHT_RAVE_SP=m
|
||||
@ -3184,7 +3144,7 @@ CONFIG_USB_HSIC_USB3503=y
|
||||
CONFIG_USB_HSIC_USB4604=m
|
||||
CONFIG_USB_LINK_LAYER_TEST=m
|
||||
CONFIG_USB_CHAOSKEY=m
|
||||
CONFIG_USB_ONBOARD_HUB=m
|
||||
CONFIG_USB_ONBOARD_DEV=m
|
||||
CONFIG_USB_ATM=m
|
||||
CONFIG_USB_SPEEDTOUCH=m
|
||||
CONFIG_USB_CXACRU=m
|
||||
@ -3444,14 +3404,12 @@ CONFIG_VIRTIO_BALLOON=y
|
||||
CONFIG_VIRTIO_INPUT=m
|
||||
CONFIG_VIRTIO_MMIO=y
|
||||
CONFIG_VDPA=m
|
||||
CONFIG_VDPA_USER=m
|
||||
CONFIG_IFCVF=m
|
||||
CONFIG_VP_VDPA=m
|
||||
CONFIG_VHOST_NET=m
|
||||
CONFIG_VHOST_SCSI=m
|
||||
CONFIG_VHOST_VDPA=m
|
||||
CONFIG_STAGING=y
|
||||
CONFIG_RTL8192U=m
|
||||
CONFIG_RTLLIB=m
|
||||
CONFIG_RTL8192E=m
|
||||
CONFIG_RTL8723BS=m
|
||||
@ -3539,7 +3497,6 @@ CONFIG_VIRTIO_IOMMU=m
|
||||
CONFIG_REMOTEPROC=y
|
||||
CONFIG_RPMSG_CHAR=y
|
||||
CONFIG_RPMSG_QCOM_GLINK_RPM=y
|
||||
CONFIG_SOC_BRCMSTB=y
|
||||
CONFIG_LITEX_SOC_CONTROLLER=m
|
||||
CONFIG_ROCKCHIP_IODOMAIN=y
|
||||
CONFIG_ROCKCHIP_PM_DOMAINS=y
|
||||
@ -3908,9 +3865,8 @@ CONFIG_CUSE=m
|
||||
CONFIG_VIRTIO_FS=m
|
||||
CONFIG_OVERLAY_FS=y
|
||||
CONFIG_OVERLAY_FS_XINO_AUTO=y
|
||||
CONFIG_FSCACHE=m
|
||||
CONFIG_FSCACHE=y
|
||||
CONFIG_FSCACHE_STATS=y
|
||||
CONFIG_CACHEFILES=m
|
||||
CONFIG_ISO9660_FS=m
|
||||
CONFIG_JOLIET=y
|
||||
CONFIG_ZISOFS=y
|
||||
@ -3920,7 +3876,6 @@ CONFIG_VFAT_FS=y
|
||||
CONFIG_FAT_DEFAULT_UTF8=y
|
||||
CONFIG_EXFAT_FS=m
|
||||
CONFIG_NTFS_FS=m
|
||||
CONFIG_NTFS_RW=y
|
||||
CONFIG_NTFS3_FS=m
|
||||
CONFIG_NTFS3_64BIT_CLUSTER=y
|
||||
CONFIG_NTFS3_LZX_XPRESS=y
|
||||
@ -4104,11 +4059,9 @@ CONFIG_CRYPTO_TEA=y
|
||||
CONFIG_CRYPTO_TWOFISH=y
|
||||
CONFIG_CRYPTO_ADIANTUM=m
|
||||
CONFIG_CRYPTO_ARC4=m
|
||||
CONFIG_CRYPTO_CFB=m
|
||||
CONFIG_CRYPTO_HCTR2=m
|
||||
CONFIG_CRYPTO_KEYWRAP=m
|
||||
CONFIG_CRYPTO_LRW=m
|
||||
CONFIG_CRYPTO_OFB=m
|
||||
CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_AEGIS128=m
|
||||
CONFIG_CRYPTO_CHACHA20POLY1305=y
|
||||
@ -4130,7 +4083,6 @@ CONFIG_CRYPTO_LZ4=m
|
||||
CONFIG_CRYPTO_ANSI_CPRNG=m
|
||||
CONFIG_CRYPTO_DRBG_HASH=y
|
||||
CONFIG_CRYPTO_DRBG_CTR=y
|
||||
CONFIG_CRYPTO_STATS=y
|
||||
CONFIG_CRYPTO_NHPOLY1305_NEON=y
|
||||
CONFIG_CRYPTO_CHACHA20_NEON=y
|
||||
CONFIG_CRYPTO_GHASH_ARM64_CE=y
|
||||
|
@ -1,55 +0,0 @@
|
||||
# This fragment contains configuration options for WiFi drivers that are
|
||||
# using PCI or PCIe bus. The device-support-wireless.config fragment must
|
||||
# be included for this one to work as well as it contains common options.
|
||||
|
||||
# Atheros drivers
|
||||
CONFIG_ATH5K=m
|
||||
CONFIG_ATH5K_PCI=y
|
||||
CONFIG_ATH10K_PCI=m
|
||||
CONFIG_ATH11K=m
|
||||
CONFIG_ATH11K_PCI=m
|
||||
CONFIG_ATH12K=m
|
||||
|
||||
# Broadcom drivers
|
||||
CONFIG_BRCMFMAC_PCIE=y
|
||||
|
||||
# Intel drivers
|
||||
CONFIG_IWLEGACY=m
|
||||
CONFIG_IWL3945=m
|
||||
CONFIG_IWL4965=m
|
||||
CONFIG_IWLWIFI=m
|
||||
CONFIG_IWLDVM=m
|
||||
CONFIG_IWLMVM=m
|
||||
|
||||
# Marvell drivers
|
||||
CONFIG_MWIFIEX_PCIE=m
|
||||
CONFIG_MWL8K=m
|
||||
|
||||
# Mediatek drivers
|
||||
CONFIG_MT7603E=m
|
||||
CONFIG_MT7615E=m
|
||||
CONFIG_MT7915E=m
|
||||
CONFIG_MT7921E=m
|
||||
CONFIG_MT7996E=m
|
||||
|
||||
# Ralink drivers
|
||||
CONFIG_RT2800PCI=m
|
||||
|
||||
# Realtek drivers
|
||||
CONFIG_RTL8192CE=m
|
||||
CONFIG_RTL8192SE=m
|
||||
CONFIG_RTL8192DE=m
|
||||
CONFIG_RTL8723AE=m
|
||||
CONFIG_RTL8723BE=m
|
||||
CONFIG_RTL8188EE=m
|
||||
CONFIG_RTL8192EE=m
|
||||
CONFIG_RTL8821AE=m
|
||||
CONFIG_RTW88_8822BE=m
|
||||
CONFIG_RTW88_8822CE=m
|
||||
CONFIG_RTW88_8723DE=m
|
||||
CONFIG_RTW88_8821CE=m
|
||||
|
||||
CONFIG_RTW89_8851BE=m
|
||||
CONFIG_RTW89_8852AE=m
|
||||
CONFIG_RTW89_8852BE=m
|
||||
CONFIG_RTW89_8852CE=m
|
File diff suppressed because it is too large
Load Diff
@ -1,12 +1,12 @@
|
||||
From 411b308e89929c2b13ef902fd97c1735d8280023 Mon Sep 17 00:00:00 2001
|
||||
From aadb32828c0ac829ee9664f91f9302000a79f02d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
|
||||
Date: Wed, 29 Jan 2025 16:28:26 +0100
|
||||
Date: Fri, 31 Jan 2025 10:26:36 +0100
|
||||
Subject: [PATCH] Revert "phy: rockchip: naneng-combphy: fix phy reset"
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This reverts commit 908806a2e789998f8897ebab83be10b4b058b6e2.
|
||||
This reverts commit 5cdf336412a928ae0f05a3117b3132366a1f7d21.
|
||||
|
||||
This commit causes USB3 and PCIe regression on ODROID-M1 and ODROID-M1S. Revert
|
||||
it before a fix is merged upstream.
|
||||
@ -18,7 +18,7 @@ Signed-off-by: Jan Čermák <sairon@sairon.cz>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
|
||||
index 9c231094ba359..26b157f53f3da 100644
|
||||
index 2eb3329ca23f6..0a9989e41237f 100644
|
||||
--- a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
|
||||
+++ b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
|
||||
@@ -309,7 +309,7 @@ static int rockchip_combphy_parse_dt(struct device *dev, struct rockchip_combphy
|
@ -1,317 +0,0 @@
|
||||
From ef365072cb06f537f46a70d9e29dc4503aafb23d Mon Sep 17 00:00:00 2001
|
||||
From: Aurelien Jarno <aurelien@aurel32.net>
|
||||
Date: Mon, 28 Nov 2022 19:47:17 +0100
|
||||
Subject: [PATCH] hwrng: add Rockchip SoC hwrng driver
|
||||
|
||||
Rockchip SoCs used to have a random number generator as part of their
|
||||
crypto device, and support for it has to be added to the corresponding
|
||||
driver. However newer Rockchip SoCs like the RK356x have an independent
|
||||
True Random Number Generator device. This patch adds a driver for it,
|
||||
greatly inspired from the downstream driver.
|
||||
|
||||
The TRNG device does not seem to have a signal conditionner and the FIPS
|
||||
140-2 test returns a lot of failures. They can be reduced by increasing
|
||||
RK_RNG_SAMPLE_CNT, in a tradeoff between quality and speed. This value
|
||||
has been adjusted to get ~90% of successes and the quality value has
|
||||
been set accordingly.
|
||||
|
||||
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
|
||||
[conservatively estimate quality as per review feedback]
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
drivers/char/hw_random/Kconfig | 14 ++
|
||||
drivers/char/hw_random/Makefile | 1 +
|
||||
drivers/char/hw_random/rockchip-rng.c | 250 ++++++++++++++++++++++++++
|
||||
3 files changed, 265 insertions(+)
|
||||
create mode 100644 drivers/char/hw_random/rockchip-rng.c
|
||||
|
||||
diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig
|
||||
index 8de74dcfa18c..f7036ea8e65f 100644
|
||||
--- a/drivers/char/hw_random/Kconfig
|
||||
+++ b/drivers/char/hw_random/Kconfig
|
||||
@@ -573,6 +573,20 @@ config HW_RANDOM_JH7110
|
||||
To compile this driver as a module, choose M here.
|
||||
The module will be called jh7110-trng.
|
||||
|
||||
+config HW_RANDOM_ROCKCHIP
|
||||
+ tristate "Rockchip True Random Number Generator"
|
||||
+ depends on HW_RANDOM && (ARCH_ROCKCHIP || COMPILE_TEST)
|
||||
+ depends on HAS_IOMEM
|
||||
+ default HW_RANDOM
|
||||
+ help
|
||||
+ This driver provides kernel-side support for the True Random Number
|
||||
+ Generator hardware found on some Rockchip SoC like RK3566 or RK3568.
|
||||
+
|
||||
+ To compile this driver as a module, choose M here: the
|
||||
+ module will be called rockchip-rng.
|
||||
+
|
||||
+ If unsure, say Y.
|
||||
+
|
||||
endif # HW_RANDOM
|
||||
|
||||
config UML_RANDOM
|
||||
diff --git a/drivers/char/hw_random/Makefile b/drivers/char/hw_random/Makefile
|
||||
index 32549a1186dc..5bf0e4692aca 100644
|
||||
--- a/drivers/char/hw_random/Makefile
|
||||
+++ b/drivers/char/hw_random/Makefile
|
||||
@@ -49,3 +49,4 @@ obj-$(CONFIG_HW_RANDOM_ARM_SMCCC_TRNG) += arm_smccc_trng.o
|
||||
obj-$(CONFIG_HW_RANDOM_CN10K) += cn10k-rng.o
|
||||
obj-$(CONFIG_HW_RANDOM_POLARFIRE_SOC) += mpfs-rng.o
|
||||
obj-$(CONFIG_HW_RANDOM_JH7110) += jh7110-trng.o
|
||||
+obj-$(CONFIG_HW_RANDOM_ROCKCHIP) += rockchip-rng.o
|
||||
diff --git a/drivers/char/hw_random/rockchip-rng.c b/drivers/char/hw_random/rockchip-rng.c
|
||||
new file mode 100644
|
||||
index 000000000000..9b7b334d6410
|
||||
--- /dev/null
|
||||
+++ b/drivers/char/hw_random/rockchip-rng.c
|
||||
@@ -0,0 +1,250 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+/*
|
||||
+ * rockchip-rng.c True Random Number Generator driver for Rockchip SoCs
|
||||
+ *
|
||||
+ * Copyright (c) 2018, Fuzhou Rockchip Electronics Co., Ltd.
|
||||
+ * Copyright (c) 2022, Aurelien Jarno
|
||||
+ * Authors:
|
||||
+ * Lin Jinhan <troy.lin@rock-chips.com>
|
||||
+ * Aurelien Jarno <aurelien@aurel32.net>
|
||||
+ */
|
||||
+#include <linux/clk.h>
|
||||
+#include <linux/hw_random.h>
|
||||
+#include <linux/io.h>
|
||||
+#include <linux/iopoll.h>
|
||||
+#include <linux/kernel.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/of_platform.h>
|
||||
+#include <linux/pm_runtime.h>
|
||||
+#include <linux/reset.h>
|
||||
+#include <linux/slab.h>
|
||||
+
|
||||
+#define RK_RNG_AUTOSUSPEND_DELAY 100
|
||||
+#define RK_RNG_MAX_BYTE 32
|
||||
+#define RK_RNG_POLL_PERIOD_US 100
|
||||
+#define RK_RNG_POLL_TIMEOUT_US 10000
|
||||
+
|
||||
+/*
|
||||
+ * TRNG collects osc ring output bit every RK_RNG_SAMPLE_CNT time. The value is
|
||||
+ * a tradeoff between speed and quality and has been adjusted to get a quality
|
||||
+ * of ~900 (~90% of FIPS 140-2 successes).
|
||||
+ */
|
||||
+#define RK_RNG_SAMPLE_CNT 1000
|
||||
+
|
||||
+/* TRNG registers from RK3568 TRM-Part2, section 5.4.1 */
|
||||
+#define TRNG_RST_CTL 0x0004
|
||||
+#define TRNG_RNG_CTL 0x0400
|
||||
+#define TRNG_RNG_CTL_LEN_64_BIT (0x00 << 4)
|
||||
+#define TRNG_RNG_CTL_LEN_128_BIT (0x01 << 4)
|
||||
+#define TRNG_RNG_CTL_LEN_192_BIT (0x02 << 4)
|
||||
+#define TRNG_RNG_CTL_LEN_256_BIT (0x03 << 4)
|
||||
+#define TRNG_RNG_CTL_OSC_RING_SPEED_0 (0x00 << 2)
|
||||
+#define TRNG_RNG_CTL_OSC_RING_SPEED_1 (0x01 << 2)
|
||||
+#define TRNG_RNG_CTL_OSC_RING_SPEED_2 (0x02 << 2)
|
||||
+#define TRNG_RNG_CTL_OSC_RING_SPEED_3 (0x03 << 2)
|
||||
+#define TRNG_RNG_CTL_ENABLE BIT(1)
|
||||
+#define TRNG_RNG_CTL_START BIT(0)
|
||||
+#define TRNG_RNG_SAMPLE_CNT 0x0404
|
||||
+#define TRNG_RNG_DOUT_0 0x0410
|
||||
+#define TRNG_RNG_DOUT_1 0x0414
|
||||
+#define TRNG_RNG_DOUT_2 0x0418
|
||||
+#define TRNG_RNG_DOUT_3 0x041c
|
||||
+#define TRNG_RNG_DOUT_4 0x0420
|
||||
+#define TRNG_RNG_DOUT_5 0x0424
|
||||
+#define TRNG_RNG_DOUT_6 0x0428
|
||||
+#define TRNG_RNG_DOUT_7 0x042c
|
||||
+
|
||||
+struct rk_rng {
|
||||
+ struct hwrng rng;
|
||||
+ void __iomem *base;
|
||||
+ struct reset_control *rst;
|
||||
+ int clk_num;
|
||||
+ struct clk_bulk_data *clk_bulks;
|
||||
+};
|
||||
+
|
||||
+/* The mask determine the bits that are updated */
|
||||
+static void rk_rng_write_ctl(struct rk_rng *rng, u32 val, u32 mask)
|
||||
+{
|
||||
+ writel_relaxed((mask << 16) | val, rng->base + TRNG_RNG_CTL);
|
||||
+}
|
||||
+
|
||||
+static int rk_rng_init(struct hwrng *rng)
|
||||
+{
|
||||
+ struct rk_rng *rk_rng = container_of(rng, struct rk_rng, rng);
|
||||
+ u32 reg;
|
||||
+ int ret;
|
||||
+
|
||||
+ /* start clocks */
|
||||
+ ret = clk_bulk_prepare_enable(rk_rng->clk_num, rk_rng->clk_bulks);
|
||||
+ if (ret < 0) {
|
||||
+ dev_err((struct device *) rk_rng->rng.priv,
|
||||
+ "Failed to enable clks %d\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ /* set the sample period */
|
||||
+ writel(RK_RNG_SAMPLE_CNT, rk_rng->base + TRNG_RNG_SAMPLE_CNT);
|
||||
+
|
||||
+ /* set osc ring speed and enable it */
|
||||
+ reg = TRNG_RNG_CTL_LEN_256_BIT |
|
||||
+ TRNG_RNG_CTL_OSC_RING_SPEED_0 |
|
||||
+ TRNG_RNG_CTL_ENABLE;
|
||||
+ rk_rng_write_ctl(rk_rng, reg, 0xffff);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void rk_rng_cleanup(struct hwrng *rng)
|
||||
+{
|
||||
+ struct rk_rng *rk_rng = container_of(rng, struct rk_rng, rng);
|
||||
+ u32 reg;
|
||||
+
|
||||
+ /* stop TRNG */
|
||||
+ reg = 0;
|
||||
+ rk_rng_write_ctl(rk_rng, reg, 0xffff);
|
||||
+
|
||||
+ /* stop clocks */
|
||||
+ clk_bulk_disable_unprepare(rk_rng->clk_num, rk_rng->clk_bulks);
|
||||
+}
|
||||
+
|
||||
+static int rk_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
|
||||
+{
|
||||
+ struct rk_rng *rk_rng = container_of(rng, struct rk_rng, rng);
|
||||
+ u32 reg;
|
||||
+ int ret = 0;
|
||||
+ int i;
|
||||
+
|
||||
+ pm_runtime_get_sync((struct device *) rk_rng->rng.priv);
|
||||
+
|
||||
+ /* Start collecting random data */
|
||||
+ reg = TRNG_RNG_CTL_START;
|
||||
+ rk_rng_write_ctl(rk_rng, reg, reg);
|
||||
+
|
||||
+ ret = readl_poll_timeout(rk_rng->base + TRNG_RNG_CTL, reg,
|
||||
+ !(reg & TRNG_RNG_CTL_START),
|
||||
+ RK_RNG_POLL_PERIOD_US,
|
||||
+ RK_RNG_POLL_TIMEOUT_US);
|
||||
+ if (ret < 0)
|
||||
+ goto out;
|
||||
+
|
||||
+ /* Read random data stored in the registers */
|
||||
+ ret = min_t(size_t, max, RK_RNG_MAX_BYTE);
|
||||
+ for (i = 0; i < ret; i += 4) {
|
||||
+ *(u32 *)(buf + i) = readl_relaxed(rk_rng->base + TRNG_RNG_DOUT_0 + i);
|
||||
+ }
|
||||
+
|
||||
+out:
|
||||
+ pm_runtime_mark_last_busy((struct device *) rk_rng->rng.priv);
|
||||
+ pm_runtime_put_sync_autosuspend((struct device *) rk_rng->rng.priv);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static int rk_rng_probe(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct device *dev = &pdev->dev;
|
||||
+ struct rk_rng *rk_rng;
|
||||
+ int ret;
|
||||
+
|
||||
+ rk_rng = devm_kzalloc(dev, sizeof(struct rk_rng), GFP_KERNEL);
|
||||
+ if (!rk_rng)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ rk_rng->base = devm_platform_ioremap_resource(pdev, 0);
|
||||
+ if (IS_ERR(rk_rng->base))
|
||||
+ return PTR_ERR(rk_rng->base);
|
||||
+
|
||||
+ rk_rng->clk_num = devm_clk_bulk_get_all(dev, &rk_rng->clk_bulks);
|
||||
+ if (rk_rng->clk_num < 0)
|
||||
+ return dev_err_probe(dev, rk_rng->clk_num,
|
||||
+ "Failed to get clks property\n");
|
||||
+
|
||||
+ rk_rng->rst = devm_reset_control_array_get(&pdev->dev, false, false);
|
||||
+ if (IS_ERR(rk_rng->rst))
|
||||
+ return dev_err_probe(dev, PTR_ERR(rk_rng->rst),
|
||||
+ "Failed to get reset property\n");
|
||||
+
|
||||
+ reset_control_assert(rk_rng->rst);
|
||||
+ udelay(2);
|
||||
+ reset_control_deassert(rk_rng->rst);
|
||||
+
|
||||
+ platform_set_drvdata(pdev, rk_rng);
|
||||
+
|
||||
+ rk_rng->rng.name = dev_driver_string(dev);
|
||||
+#ifndef CONFIG_PM
|
||||
+ rk_rng->rng.init = rk_rng_init;
|
||||
+ rk_rng->rng.cleanup = rk_rng_cleanup;
|
||||
+#endif
|
||||
+ rk_rng->rng.read = rk_rng_read;
|
||||
+ rk_rng->rng.priv = (unsigned long) dev;
|
||||
+ rk_rng->rng.quality = 512;
|
||||
+
|
||||
+ pm_runtime_set_autosuspend_delay(dev, RK_RNG_AUTOSUSPEND_DELAY);
|
||||
+ pm_runtime_use_autosuspend(dev);
|
||||
+ pm_runtime_enable(dev);
|
||||
+
|
||||
+ ret = devm_hwrng_register(dev, &rk_rng->rng);
|
||||
+ if (ret)
|
||||
+ return dev_err_probe(&pdev->dev, ret, "Failed to register Rockchip hwrng\n");
|
||||
+
|
||||
+ dev_info(&pdev->dev, "Registered Rockchip hwrng\n");
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int rk_rng_remove(struct platform_device *pdev)
|
||||
+{
|
||||
+ pm_runtime_disable(&pdev->dev);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+#ifdef CONFIG_PM
|
||||
+static int rk_rng_runtime_suspend(struct device *dev)
|
||||
+{
|
||||
+ struct rk_rng *rk_rng = dev_get_drvdata(dev);
|
||||
+
|
||||
+ rk_rng_cleanup(&rk_rng->rng);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int rk_rng_runtime_resume(struct device *dev)
|
||||
+{
|
||||
+ struct rk_rng *rk_rng = dev_get_drvdata(dev);
|
||||
+
|
||||
+ return rk_rng_init(&rk_rng->rng);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+static const struct dev_pm_ops rk_rng_pm_ops = {
|
||||
+ SET_RUNTIME_PM_OPS(rk_rng_runtime_suspend,
|
||||
+ rk_rng_runtime_resume, NULL)
|
||||
+ SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
+ pm_runtime_force_resume)
|
||||
+};
|
||||
+
|
||||
+static const struct of_device_id rk_rng_dt_match[] = {
|
||||
+ {
|
||||
+ .compatible = "rockchip,rk3568-rng",
|
||||
+ },
|
||||
+ {},
|
||||
+};
|
||||
+
|
||||
+MODULE_DEVICE_TABLE(of, rk_rng_dt_match);
|
||||
+
|
||||
+static struct platform_driver rk_rng_driver = {
|
||||
+ .driver = {
|
||||
+ .name = "rockchip-rng",
|
||||
+ .pm = &rk_rng_pm_ops,
|
||||
+ .of_match_table = rk_rng_dt_match,
|
||||
+ },
|
||||
+ .probe = rk_rng_probe,
|
||||
+ .remove = rk_rng_remove,
|
||||
+};
|
||||
+
|
||||
+module_platform_driver(rk_rng_driver);
|
||||
+
|
||||
+MODULE_DESCRIPTION("Rockchip True Random Number Generator driver");
|
||||
+MODULE_AUTHOR("Lin Jinhan <troy.lin@rock-chips.com>, Aurelien Jarno <aurelien@aurel32.net>");
|
||||
+MODULE_LICENSE("GPL v2");
|
@ -1,32 +0,0 @@
|
||||
From 37125610d7b79d2618671611641be7078653d24f Mon Sep 17 00:00:00 2001
|
||||
From: Aurelien Jarno <aurelien@aurel32.net>
|
||||
Date: Mon, 28 Nov 2022 19:47:18 +0100
|
||||
Subject: [PATCH] arm64: dts: rockchip: add DT entry for RNG to RK356x
|
||||
|
||||
Enable the just added Rockchip RNG driver for RK356x SoCs.
|
||||
|
||||
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
|
||||
---
|
||||
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
|
||||
index abee88911982..70f92adf86ac 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
|
||||
@@ -1806,6 +1806,15 @@ usb2phy1_otg: otg-port {
|
||||
};
|
||||
};
|
||||
|
||||
+ rng: rng@fe388000 {
|
||||
+ compatible = "rockchip,rk3568-rng";
|
||||
+ reg = <0x0 0xfe388000 0x0 0x4000>;
|
||||
+ clocks = <&cru CLK_TRNG_NS>, <&cru HCLK_TRNG_NS>;
|
||||
+ clock-names = "trng_clk", "trng_hclk";
|
||||
+ resets = <&cru SRST_TRNG_NS>;
|
||||
+ reset-names = "reset";
|
||||
+ };
|
||||
+
|
||||
pinctrl: pinctrl {
|
||||
compatible = "rockchip,rk3568-pinctrl";
|
||||
rockchip,grf = <&grf>;
|
@ -1,79 +0,0 @@
|
||||
From 544232e6ab8a71abdd770fe18d6280de7cd74281 Mon Sep 17 00:00:00 2001
|
||||
From: Aurelien Jarno <aurelien@aurel32.net>
|
||||
Date: Mon, 28 Nov 2022 19:47:16 +0100
|
||||
Subject: [PATCH] dt-bindings: RNG: Add Rockchip RNG bindings
|
||||
|
||||
Add the RNG bindings for the RK3568 SoC from Rockchip
|
||||
|
||||
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
|
||||
---
|
||||
.../bindings/rng/rockchip,rk3568-rng.yaml | 60 +++++++++++++++++++
|
||||
1 file changed, 60 insertions(+)
|
||||
create mode 100644 Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml b/Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml
|
||||
new file mode 100644
|
||||
index 000000000000..c2f5ef69cf07
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/rng/rockchip,rk3568-rng.yaml
|
||||
@@ -0,0 +1,60 @@
|
||||
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
+%YAML 1.2
|
||||
+---
|
||||
+$id: http://devicetree.org/schemas/rng/rockchip,rk3568-rng.yaml#
|
||||
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
+
|
||||
+title: Rockchip TRNG
|
||||
+
|
||||
+description: True Random Number Generator for some Rockchip SoCs
|
||||
+
|
||||
+maintainers:
|
||||
+ - Aurelien Jarno <aurelien@aurel32.net>
|
||||
+
|
||||
+properties:
|
||||
+ compatible:
|
||||
+ enum:
|
||||
+ - rockchip,rk3568-rng
|
||||
+
|
||||
+ reg:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+ clocks:
|
||||
+ items:
|
||||
+ - description: TRNG clock
|
||||
+ - description: TRNG AHB clock
|
||||
+
|
||||
+ clock-names:
|
||||
+ items:
|
||||
+ - const: trng_clk
|
||||
+ - const: trng_hclk
|
||||
+
|
||||
+ resets:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+required:
|
||||
+ - compatible
|
||||
+ - reg
|
||||
+ - clocks
|
||||
+ - clock-names
|
||||
+ - resets
|
||||
+
|
||||
+additionalProperties: false
|
||||
+
|
||||
+examples:
|
||||
+ - |
|
||||
+ #include <dt-bindings/clock/rk3568-cru.h>
|
||||
+ bus {
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <2>;
|
||||
+
|
||||
+ rng@fe388000 {
|
||||
+ compatible = "rockchip,rk3568-rng";
|
||||
+ reg = <0x0 0xfe388000 0x0 0x4000>;
|
||||
+ clocks = <&cru CLK_TRNG_NS>, <&cru HCLK_TRNG_NS>;
|
||||
+ clock-names = "trng_clk", "trng_hclk";
|
||||
+ resets = <&cru SRST_TRNG_NS>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+...
|
@ -1,4 +1,4 @@
|
||||
From 76591e4075194cf717dc085b8285912f706bcd46 Mon Sep 17 00:00:00 2001
|
||||
From 3a369be3f99ff577e09f8fc02703c7c9e4e74f3d Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Tue, 28 Mar 2023 12:02:10 +0200
|
||||
Subject: [PATCH] ipv6: add option to explicitly enable reachability test
|
||||
@ -17,7 +17,7 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/ipv6/Kconfig b/net/ipv6/Kconfig
|
||||
index 08d4b7132d4c..242bf2eeb7ae 100644
|
||||
index 1c9c686d9522f..ee4d9ca9d2e24 100644
|
||||
--- a/net/ipv6/Kconfig
|
||||
+++ b/net/ipv6/Kconfig
|
||||
@@ -48,6 +48,15 @@ config IPV6_OPTIMISTIC_DAD
|
||||
@ -37,10 +37,10 @@ index 08d4b7132d4c..242bf2eeb7ae 100644
|
||||
tristate "IPv6: AH transformation"
|
||||
select XFRM_AH
|
||||
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
|
||||
index 56525b5b95a2..916769b9a772 100644
|
||||
index 8ebfed5d63232..f1a61af0f5199 100644
|
||||
--- a/net/ipv6/route.c
|
||||
+++ b/net/ipv6/route.c
|
||||
@@ -2211,7 +2211,8 @@ struct rt6_info *ip6_pol_route(struct net *net, struct fib6_table *table,
|
||||
@@ -2223,7 +2223,8 @@ struct rt6_info *ip6_pol_route(struct net *net, struct fib6_table *table,
|
||||
|
||||
strict |= flags & RT6_LOOKUP_F_IFACE;
|
||||
strict |= flags & RT6_LOOKUP_F_IGNORE_LINKSTATE;
|
@ -1,4 +1,4 @@
|
||||
From f9037c133775498d0ff2f035a957ce4f294e4e81 Mon Sep 17 00:00:00 2001
|
||||
From 557c96b3f40753fa22ebfe1cb57de360273a92c3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
|
||||
Date: Wed, 6 Mar 2024 13:25:41 +0100
|
||||
Subject: [PATCH] Revert USB core changes causing issues with Z-Wave.me UZB
|
||||
@ -33,10 +33,10 @@ Signed-off-by: Jan Čermák <sairon@sairon.cz>
|
||||
4 files changed, 166 insertions(+), 213 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
|
||||
index 12b6dfeaf658c..d895f6ebbc400 100644
|
||||
index 0b2490347b9fe..ab0826d90cc13 100644
|
||||
--- a/drivers/usb/core/hcd.c
|
||||
+++ b/drivers/usb/core/hcd.c
|
||||
@@ -958,7 +958,6 @@ static int register_root_hub(struct usb_hcd *hcd)
|
||||
@@ -956,7 +956,6 @@ static int register_root_hub(struct usb_hcd *hcd)
|
||||
{
|
||||
struct device *parent_dev = hcd->self.controller;
|
||||
struct usb_device *usb_dev = hcd->self.root_hub;
|
||||
@ -44,7 +44,7 @@ index 12b6dfeaf658c..d895f6ebbc400 100644
|
||||
const int devnum = 1;
|
||||
int retval;
|
||||
|
||||
@@ -970,16 +969,13 @@ static int register_root_hub(struct usb_hcd *hcd)
|
||||
@@ -968,16 +967,13 @@ static int register_root_hub(struct usb_hcd *hcd)
|
||||
mutex_lock(&usb_bus_idr_lock);
|
||||
|
||||
usb_dev->ep0.desc.wMaxPacketSize = cpu_to_le16(64);
|
||||
@ -65,10 +65,10 @@ index 12b6dfeaf658c..d895f6ebbc400 100644
|
||||
if (le16_to_cpu(usb_dev->descriptor.bcdUSB) >= 0x0201) {
|
||||
retval = usb_get_bos_descriptor(usb_dev);
|
||||
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
|
||||
index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
index 21ac9b464696f..0962411898b00 100644
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -4742,67 +4742,6 @@ static int hub_enable_device(struct usb_device *udev)
|
||||
@@ -4776,67 +4776,6 @@ static int hub_enable_device(struct usb_device *udev)
|
||||
return hcd->driver->enable_device(hcd, udev);
|
||||
}
|
||||
|
||||
@ -136,7 +136,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
/* Reset device, (re)assign address, get device descriptor.
|
||||
* Device connection must be stable, no more debouncing needed.
|
||||
* Returns device in USB_STATE_ADDRESS, except on error.
|
||||
@@ -4812,17 +4751,10 @@ static int get_bMaxPacketSize0(struct usb_device *udev,
|
||||
@@ -4846,17 +4785,10 @@ static int get_bMaxPacketSize0(struct usb_device *udev,
|
||||
* the port lock. For a newly detected device that is not accessible
|
||||
* through any global pointers, it's not necessary to lock the device,
|
||||
* but it is still necessary to lock the port.
|
||||
@ -155,7 +155,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
{
|
||||
struct usb_device *hdev = hub->hdev;
|
||||
struct usb_hcd *hcd = bus_to_hcd(hdev->bus);
|
||||
@@ -4834,13 +4766,6 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
@@ -4868,13 +4800,6 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
int devnum = udev->devnum;
|
||||
const char *driver_name;
|
||||
bool do_new_scheme;
|
||||
@ -169,7 +169,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
|
||||
/* root hub ports have a slightly longer reset period
|
||||
* (from USB 2.0 spec, section 7.1.7.5)
|
||||
@@ -4873,31 +4798,31 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
@@ -4907,31 +4832,31 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
}
|
||||
oldspeed = udev->speed;
|
||||
|
||||
@ -225,7 +225,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
}
|
||||
|
||||
speed = usb_speed_string(udev->speed);
|
||||
@@ -4917,24 +4842,22 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
@@ -4951,24 +4876,22 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
if (udev->speed < USB_SPEED_SUPER)
|
||||
dev_info(&udev->dev,
|
||||
"%s %s USB device number %d using %s\n",
|
||||
@ -263,7 +263,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
}
|
||||
|
||||
/* Why interleave GET_DESCRIPTOR and SET_ADDRESS this way?
|
||||
@@ -4958,6 +4881,9 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
@@ -4992,6 +4915,9 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
}
|
||||
|
||||
if (do_new_scheme) {
|
||||
@ -273,7 +273,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
retval = hub_enable_device(udev);
|
||||
if (retval < 0) {
|
||||
dev_err(&udev->dev,
|
||||
@@ -4966,14 +4892,52 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
@@ -5000,14 +4926,52 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
goto fail;
|
||||
}
|
||||
|
||||
@ -333,7 +333,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
|
||||
retval = hub_port_reset(hub, port1, udev, delay, false);
|
||||
if (retval < 0) /* error or disconnect */
|
||||
@@ -4984,13 +4948,14 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
@@ -5018,13 +4982,14 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
retval = -ENODEV;
|
||||
goto fail;
|
||||
}
|
||||
@ -352,7 +352,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
}
|
||||
|
||||
for (operations = 0; operations < SET_ADDRESS_TRIES; ++operations) {
|
||||
@@ -5031,21 +4996,18 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
@@ -5065,21 +5030,18 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
if (do_new_scheme)
|
||||
break;
|
||||
|
||||
@ -379,7 +379,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
|
||||
delay = udev->parent->hub_delay;
|
||||
udev->hub_delay = min_t(u32, delay,
|
||||
@@ -5064,62 +5026,48 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
@@ -5098,62 +5060,48 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
goto fail;
|
||||
|
||||
/*
|
||||
@ -472,7 +472,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
goto fail;
|
||||
}
|
||||
|
||||
@@ -5145,7 +5093,6 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
@@ -5179,7 +5127,6 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
hub_port_disable(hub, port1, 0);
|
||||
update_devnum(udev, devnum); /* for disconnect processing */
|
||||
}
|
||||
@ -480,7 +480,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -5226,7 +5173,7 @@ hub_power_remaining(struct usb_hub *hub)
|
||||
@@ -5260,7 +5207,7 @@ hub_power_remaining(struct usb_hub *hub)
|
||||
|
||||
|
||||
static int descriptors_changed(struct usb_device *udev,
|
||||
@ -489,7 +489,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
struct usb_host_bos *old_bos)
|
||||
{
|
||||
int changed = 0;
|
||||
@@ -5237,8 +5184,8 @@ static int descriptors_changed(struct usb_device *udev,
|
||||
@@ -5271,8 +5218,8 @@ static int descriptors_changed(struct usb_device *udev,
|
||||
int length;
|
||||
char *buf;
|
||||
|
||||
@ -500,7 +500,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
return 1;
|
||||
|
||||
if ((old_bos && !udev->bos) || (!old_bos && udev->bos))
|
||||
@@ -5415,7 +5362,7 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
|
||||
@@ -5449,7 +5396,7 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
|
||||
}
|
||||
|
||||
/* reset (non-USB 3.0 devices) and get descriptor */
|
||||
@ -509,7 +509,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
if (status < 0)
|
||||
goto loop;
|
||||
|
||||
@@ -5562,8 +5509,9 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
|
||||
@@ -5596,8 +5543,9 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
|
||||
{
|
||||
struct usb_port *port_dev = hub->ports[port1 - 1];
|
||||
struct usb_device *udev = port_dev->child;
|
||||
@ -520,7 +520,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
|
||||
dev_dbg(&port_dev->dev, "status %04x, change %04x, %s\n", portstatus,
|
||||
portchange, portspeed(hub, portstatus));
|
||||
@@ -5590,20 +5538,23 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
|
||||
@@ -5624,20 +5572,23 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
|
||||
* changed device descriptors before resuscitating the
|
||||
* device.
|
||||
*/
|
||||
@ -550,7 +550,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
}
|
||||
#ifdef CONFIG_PM
|
||||
} else if (udev->state == USB_STATE_SUSPENDED &&
|
||||
@@ -6060,7 +6011,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev)
|
||||
@@ -6094,7 +6045,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev)
|
||||
struct usb_device *parent_hdev = udev->parent;
|
||||
struct usb_hub *parent_hub;
|
||||
struct usb_hcd *hcd = bus_to_hcd(udev->bus);
|
||||
@ -559,7 +559,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
struct usb_host_bos *bos;
|
||||
int i, j, ret = 0;
|
||||
int port1 = udev->portnum;
|
||||
@@ -6096,7 +6047,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev)
|
||||
@@ -6130,7 +6081,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev)
|
||||
/* ep0 maxpacket size may change; let the HCD know about it.
|
||||
* Other endpoints will be handled by re-enumeration. */
|
||||
usb_ep0_reinit(udev);
|
||||
@ -568,7 +568,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
if (ret >= 0 || ret == -ENOTCONN || ret == -ENODEV)
|
||||
break;
|
||||
}
|
||||
@@ -6108,6 +6059,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev)
|
||||
@@ -6142,6 +6093,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev)
|
||||
/* Device might have changed firmware (DFU or similar) */
|
||||
if (descriptors_changed(udev, &descriptor, bos)) {
|
||||
dev_info(&udev->dev, "device firmware changed\n");
|
||||
@ -577,7 +577,7 @@ index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
}
|
||||
|
||||
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
|
||||
index 077dfe48d01c1..0d2bfc909019b 100644
|
||||
index d2b2787be4092..8bc0168e3af56 100644
|
||||
--- a/drivers/usb/core/message.c
|
||||
+++ b/drivers/usb/core/message.c
|
||||
@@ -1041,35 +1041,40 @@ char *usb_cache_string(struct usb_device *udev, int index)
|
||||
@ -634,7 +634,7 @@ index 077dfe48d01c1..0d2bfc909019b 100644
|
||||
|
||||
/*
|
||||
diff --git a/drivers/usb/core/usb.h b/drivers/usb/core/usb.h
|
||||
index 60363153fc3f3..69ca59841083b 100644
|
||||
index b8324ea05b20f..82fcef57ce3a9 100644
|
||||
--- a/drivers/usb/core/usb.h
|
||||
+++ b/drivers/usb/core/usb.h
|
||||
@@ -43,8 +43,8 @@ extern bool usb_endpoint_is_ignored(struct usb_device *udev,
|
@ -1,52 +0,0 @@
|
||||
From 76591e4075194cf717dc085b8285912f706bcd46 Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Tue, 28 Mar 2023 12:02:10 +0200
|
||||
Subject: [PATCH] ipv6: add option to explicitly enable reachability test
|
||||
|
||||
Systems which act as host as well as router might prefer the host
|
||||
behavior. Currently the kernel does not allow to use IPv6 forwarding
|
||||
globally and at the same time use route reachability probing.
|
||||
|
||||
Add a compile time flag to enable route reachability probe in any
|
||||
case.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
net/ipv6/Kconfig | 9 +++++++++
|
||||
net/ipv6/route.c | 3 ++-
|
||||
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/ipv6/Kconfig b/net/ipv6/Kconfig
|
||||
index 08d4b7132d4c..242bf2eeb7ae 100644
|
||||
--- a/net/ipv6/Kconfig
|
||||
+++ b/net/ipv6/Kconfig
|
||||
@@ -48,6 +48,15 @@ config IPV6_OPTIMISTIC_DAD
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
+config IPV6_REACHABILITY_PROBE
|
||||
+ bool "IPv6: Always use reachability probing (RFC 4191)"
|
||||
+ help
|
||||
+ By default reachability probing is disabled on router devices (when
|
||||
+ IPv6 forwarding is enabled). This option explicitly enables
|
||||
+ reachability probing always.
|
||||
+
|
||||
+ If unsure, say N.
|
||||
+
|
||||
config INET6_AH
|
||||
tristate "IPv6: AH transformation"
|
||||
select XFRM_AH
|
||||
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
|
||||
index 56525b5b95a2..916769b9a772 100644
|
||||
--- a/net/ipv6/route.c
|
||||
+++ b/net/ipv6/route.c
|
||||
@@ -2211,7 +2211,8 @@ struct rt6_info *ip6_pol_route(struct net *net, struct fib6_table *table,
|
||||
|
||||
strict |= flags & RT6_LOOKUP_F_IFACE;
|
||||
strict |= flags & RT6_LOOKUP_F_IGNORE_LINKSTATE;
|
||||
- if (net->ipv6.devconf_all->forwarding == 0)
|
||||
+ if (net->ipv6.devconf_all->forwarding == 0 ||
|
||||
+ IS_ENABLED(CONFIG_IPV6_REACHABILITY_PROBE))
|
||||
strict |= RT6_LOOKUP_F_REACHABLE;
|
||||
|
||||
rcu_read_lock();
|
@ -1,650 +0,0 @@
|
||||
From f9037c133775498d0ff2f035a957ce4f294e4e81 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= <sairon@sairon.cz>
|
||||
Date: Wed, 6 Mar 2024 13:25:41 +0100
|
||||
Subject: [PATCH] Revert USB core changes causing issues with Z-Wave.me UZB
|
||||
stick
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Workaround for issues described on GH [1] and reported in [2].
|
||||
|
||||
* Revert "USB: core: Fix oversight in SuperSpeed initialization"
|
||||
This reverts commit 59cf445754566984fd55af19ba7146c76e6627bc.
|
||||
|
||||
* Revert "USB: core: Fix race by not overwriting udev->descriptor in hub_port_init()"
|
||||
This reverts commit ff33299ec8bb80cdcc073ad9c506bd79bb2ed20b.
|
||||
|
||||
* Revert "USB: core: Change usb_get_device_descriptor() API"
|
||||
This reverts commit de28e469da75359a2bb8cd8778b78aa64b1be1f4.
|
||||
|
||||
* Revert "USB: core: Unite old scheme and new scheme descriptor reads"
|
||||
This reverts commit 85d07c55621676d47d873d2749b88f783cd4d5a1.
|
||||
|
||||
[1] https://github.com/home-assistant/operating-system/issues/2995
|
||||
[2] https://lore.kernel.org/linux-usb/1e954652-dfb3-4248-beea-b8a449128ff0@sairon.cz/
|
||||
|
||||
Signed-off-by: Jan Čermák <sairon@sairon.cz>
|
||||
---
|
||||
drivers/usb/core/hcd.c | 10 +-
|
||||
drivers/usb/core/hub.c | 336 ++++++++++++++++---------------------
|
||||
drivers/usb/core/message.c | 29 ++--
|
||||
drivers/usb/core/usb.h | 4 +-
|
||||
4 files changed, 166 insertions(+), 213 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
|
||||
index 12b6dfeaf658c..d895f6ebbc400 100644
|
||||
--- a/drivers/usb/core/hcd.c
|
||||
+++ b/drivers/usb/core/hcd.c
|
||||
@@ -958,7 +958,6 @@ static int register_root_hub(struct usb_hcd *hcd)
|
||||
{
|
||||
struct device *parent_dev = hcd->self.controller;
|
||||
struct usb_device *usb_dev = hcd->self.root_hub;
|
||||
- struct usb_device_descriptor *descr;
|
||||
const int devnum = 1;
|
||||
int retval;
|
||||
|
||||
@@ -970,16 +969,13 @@ static int register_root_hub(struct usb_hcd *hcd)
|
||||
mutex_lock(&usb_bus_idr_lock);
|
||||
|
||||
usb_dev->ep0.desc.wMaxPacketSize = cpu_to_le16(64);
|
||||
- descr = usb_get_device_descriptor(usb_dev);
|
||||
- if (IS_ERR(descr)) {
|
||||
- retval = PTR_ERR(descr);
|
||||
+ retval = usb_get_device_descriptor(usb_dev, USB_DT_DEVICE_SIZE);
|
||||
+ if (retval != sizeof usb_dev->descriptor) {
|
||||
mutex_unlock(&usb_bus_idr_lock);
|
||||
dev_dbg (parent_dev, "can't read %s device descriptor %d\n",
|
||||
dev_name(&usb_dev->dev), retval);
|
||||
- return retval;
|
||||
+ return (retval < 0) ? retval : -EMSGSIZE;
|
||||
}
|
||||
- usb_dev->descriptor = *descr;
|
||||
- kfree(descr);
|
||||
|
||||
if (le16_to_cpu(usb_dev->descriptor.bcdUSB) >= 0x0201) {
|
||||
retval = usb_get_bos_descriptor(usb_dev);
|
||||
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
|
||||
index 1ba3feb5e1900..ef1d63537a9b7 100644
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -4742,67 +4742,6 @@ static int hub_enable_device(struct usb_device *udev)
|
||||
return hcd->driver->enable_device(hcd, udev);
|
||||
}
|
||||
|
||||
-/*
|
||||
- * Get the bMaxPacketSize0 value during initialization by reading the
|
||||
- * device's device descriptor. Since we don't already know this value,
|
||||
- * the transfer is unsafe and it ignores I/O errors, only testing for
|
||||
- * reasonable received values.
|
||||
- *
|
||||
- * For "old scheme" initialization, size will be 8 so we read just the
|
||||
- * start of the device descriptor, which should work okay regardless of
|
||||
- * the actual bMaxPacketSize0 value. For "new scheme" initialization,
|
||||
- * size will be 64 (and buf will point to a sufficiently large buffer),
|
||||
- * which might not be kosher according to the USB spec but it's what
|
||||
- * Windows does and what many devices expect.
|
||||
- *
|
||||
- * Returns: bMaxPacketSize0 or a negative error code.
|
||||
- */
|
||||
-static int get_bMaxPacketSize0(struct usb_device *udev,
|
||||
- struct usb_device_descriptor *buf, int size, bool first_time)
|
||||
-{
|
||||
- int i, rc;
|
||||
-
|
||||
- /*
|
||||
- * Retry on all errors; some devices are flakey.
|
||||
- * 255 is for WUSB devices, we actually need to use
|
||||
- * 512 (WUSB1.0[4.8.1]).
|
||||
- */
|
||||
- for (i = 0; i < GET_MAXPACKET0_TRIES; ++i) {
|
||||
- /* Start with invalid values in case the transfer fails */
|
||||
- buf->bDescriptorType = buf->bMaxPacketSize0 = 0;
|
||||
- rc = usb_control_msg(udev, usb_rcvaddr0pipe(),
|
||||
- USB_REQ_GET_DESCRIPTOR, USB_DIR_IN,
|
||||
- USB_DT_DEVICE << 8, 0,
|
||||
- buf, size,
|
||||
- initial_descriptor_timeout);
|
||||
- switch (buf->bMaxPacketSize0) {
|
||||
- case 8: case 16: case 32: case 64: case 9:
|
||||
- if (buf->bDescriptorType == USB_DT_DEVICE) {
|
||||
- rc = buf->bMaxPacketSize0;
|
||||
- break;
|
||||
- }
|
||||
- fallthrough;
|
||||
- default:
|
||||
- if (rc >= 0)
|
||||
- rc = -EPROTO;
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- /*
|
||||
- * Some devices time out if they are powered on
|
||||
- * when already connected. They need a second
|
||||
- * reset, so return early. But only on the first
|
||||
- * attempt, lest we get into a time-out/reset loop.
|
||||
- */
|
||||
- if (rc > 0 || (rc == -ETIMEDOUT && first_time &&
|
||||
- udev->speed > USB_SPEED_FULL))
|
||||
- break;
|
||||
- }
|
||||
- return rc;
|
||||
-}
|
||||
-
|
||||
-#define GET_DESCRIPTOR_BUFSIZE 64
|
||||
-
|
||||
/* Reset device, (re)assign address, get device descriptor.
|
||||
* Device connection must be stable, no more debouncing needed.
|
||||
* Returns device in USB_STATE_ADDRESS, except on error.
|
||||
@@ -4812,17 +4751,10 @@ static int get_bMaxPacketSize0(struct usb_device *udev,
|
||||
* the port lock. For a newly detected device that is not accessible
|
||||
* through any global pointers, it's not necessary to lock the device,
|
||||
* but it is still necessary to lock the port.
|
||||
- *
|
||||
- * For a newly detected device, @dev_descr must be NULL. The device
|
||||
- * descriptor retrieved from the device will then be stored in
|
||||
- * @udev->descriptor. For an already existing device, @dev_descr
|
||||
- * must be non-NULL. The device descriptor will be stored there,
|
||||
- * not in @udev->descriptor, because descriptors for registered
|
||||
- * devices are meant to be immutable.
|
||||
*/
|
||||
static int
|
||||
hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
- int retry_counter, struct usb_device_descriptor *dev_descr)
|
||||
+ int retry_counter)
|
||||
{
|
||||
struct usb_device *hdev = hub->hdev;
|
||||
struct usb_hcd *hcd = bus_to_hcd(hdev->bus);
|
||||
@@ -4834,13 +4766,6 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
int devnum = udev->devnum;
|
||||
const char *driver_name;
|
||||
bool do_new_scheme;
|
||||
- const bool initial = !dev_descr;
|
||||
- int maxp0;
|
||||
- struct usb_device_descriptor *buf, *descr;
|
||||
-
|
||||
- buf = kmalloc(GET_DESCRIPTOR_BUFSIZE, GFP_NOIO);
|
||||
- if (!buf)
|
||||
- return -ENOMEM;
|
||||
|
||||
/* root hub ports have a slightly longer reset period
|
||||
* (from USB 2.0 spec, section 7.1.7.5)
|
||||
@@ -4873,31 +4798,31 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
}
|
||||
oldspeed = udev->speed;
|
||||
|
||||
- if (initial) {
|
||||
- /* USB 2.0 section 5.5.3 talks about ep0 maxpacket ...
|
||||
- * it's fixed size except for full speed devices.
|
||||
+ /* USB 2.0 section 5.5.3 talks about ep0 maxpacket ...
|
||||
+ * it's fixed size except for full speed devices.
|
||||
+ * For Wireless USB devices, ep0 max packet is always 512 (tho
|
||||
+ * reported as 0xff in the device descriptor). WUSB1.0[4.8.1].
|
||||
+ */
|
||||
+ switch (udev->speed) {
|
||||
+ case USB_SPEED_SUPER_PLUS:
|
||||
+ case USB_SPEED_SUPER:
|
||||
+ udev->ep0.desc.wMaxPacketSize = cpu_to_le16(512);
|
||||
+ break;
|
||||
+ case USB_SPEED_HIGH: /* fixed at 64 */
|
||||
+ udev->ep0.desc.wMaxPacketSize = cpu_to_le16(64);
|
||||
+ break;
|
||||
+ case USB_SPEED_FULL: /* 8, 16, 32, or 64 */
|
||||
+ /* to determine the ep0 maxpacket size, try to read
|
||||
+ * the device descriptor to get bMaxPacketSize0 and
|
||||
+ * then correct our initial guess.
|
||||
*/
|
||||
- switch (udev->speed) {
|
||||
- case USB_SPEED_SUPER_PLUS:
|
||||
- case USB_SPEED_SUPER:
|
||||
- udev->ep0.desc.wMaxPacketSize = cpu_to_le16(512);
|
||||
- break;
|
||||
- case USB_SPEED_HIGH: /* fixed at 64 */
|
||||
- udev->ep0.desc.wMaxPacketSize = cpu_to_le16(64);
|
||||
- break;
|
||||
- case USB_SPEED_FULL: /* 8, 16, 32, or 64 */
|
||||
- /* to determine the ep0 maxpacket size, try to read
|
||||
- * the device descriptor to get bMaxPacketSize0 and
|
||||
- * then correct our initial guess.
|
||||
- */
|
||||
- udev->ep0.desc.wMaxPacketSize = cpu_to_le16(64);
|
||||
- break;
|
||||
- case USB_SPEED_LOW: /* fixed at 8 */
|
||||
- udev->ep0.desc.wMaxPacketSize = cpu_to_le16(8);
|
||||
- break;
|
||||
- default:
|
||||
- goto fail;
|
||||
- }
|
||||
+ udev->ep0.desc.wMaxPacketSize = cpu_to_le16(64);
|
||||
+ break;
|
||||
+ case USB_SPEED_LOW: /* fixed at 8 */
|
||||
+ udev->ep0.desc.wMaxPacketSize = cpu_to_le16(8);
|
||||
+ break;
|
||||
+ default:
|
||||
+ goto fail;
|
||||
}
|
||||
|
||||
speed = usb_speed_string(udev->speed);
|
||||
@@ -4917,24 +4842,22 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
if (udev->speed < USB_SPEED_SUPER)
|
||||
dev_info(&udev->dev,
|
||||
"%s %s USB device number %d using %s\n",
|
||||
- (initial ? "new" : "reset"), speed,
|
||||
+ (udev->config) ? "reset" : "new", speed,
|
||||
devnum, driver_name);
|
||||
|
||||
- if (initial) {
|
||||
- /* Set up TT records, if needed */
|
||||
- if (hdev->tt) {
|
||||
- udev->tt = hdev->tt;
|
||||
- udev->ttport = hdev->ttport;
|
||||
- } else if (udev->speed != USB_SPEED_HIGH
|
||||
- && hdev->speed == USB_SPEED_HIGH) {
|
||||
- if (!hub->tt.hub) {
|
||||
- dev_err(&udev->dev, "parent hub has no TT\n");
|
||||
- retval = -EINVAL;
|
||||
- goto fail;
|
||||
- }
|
||||
- udev->tt = &hub->tt;
|
||||
- udev->ttport = port1;
|
||||
+ /* Set up TT records, if needed */
|
||||
+ if (hdev->tt) {
|
||||
+ udev->tt = hdev->tt;
|
||||
+ udev->ttport = hdev->ttport;
|
||||
+ } else if (udev->speed != USB_SPEED_HIGH
|
||||
+ && hdev->speed == USB_SPEED_HIGH) {
|
||||
+ if (!hub->tt.hub) {
|
||||
+ dev_err(&udev->dev, "parent hub has no TT\n");
|
||||
+ retval = -EINVAL;
|
||||
+ goto fail;
|
||||
}
|
||||
+ udev->tt = &hub->tt;
|
||||
+ udev->ttport = port1;
|
||||
}
|
||||
|
||||
/* Why interleave GET_DESCRIPTOR and SET_ADDRESS this way?
|
||||
@@ -4958,6 +4881,9 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
}
|
||||
|
||||
if (do_new_scheme) {
|
||||
+ struct usb_device_descriptor *buf;
|
||||
+ int r = 0;
|
||||
+
|
||||
retval = hub_enable_device(udev);
|
||||
if (retval < 0) {
|
||||
dev_err(&udev->dev,
|
||||
@@ -4966,14 +4892,52 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
goto fail;
|
||||
}
|
||||
|
||||
- maxp0 = get_bMaxPacketSize0(udev, buf,
|
||||
- GET_DESCRIPTOR_BUFSIZE, retries == 0);
|
||||
- if (maxp0 > 0 && !initial &&
|
||||
- maxp0 != udev->descriptor.bMaxPacketSize0) {
|
||||
- dev_err(&udev->dev, "device reset changed ep0 maxpacket size!\n");
|
||||
- retval = -ENODEV;
|
||||
- goto fail;
|
||||
+#define GET_DESCRIPTOR_BUFSIZE 64
|
||||
+ buf = kmalloc(GET_DESCRIPTOR_BUFSIZE, GFP_NOIO);
|
||||
+ if (!buf) {
|
||||
+ retval = -ENOMEM;
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ /* Retry on all errors; some devices are flakey.
|
||||
+ * 255 is for WUSB devices, we actually need to use
|
||||
+ * 512 (WUSB1.0[4.8.1]).
|
||||
+ */
|
||||
+ for (operations = 0; operations < GET_MAXPACKET0_TRIES;
|
||||
+ ++operations) {
|
||||
+ buf->bMaxPacketSize0 = 0;
|
||||
+ r = usb_control_msg(udev, usb_rcvaddr0pipe(),
|
||||
+ USB_REQ_GET_DESCRIPTOR, USB_DIR_IN,
|
||||
+ USB_DT_DEVICE << 8, 0,
|
||||
+ buf, GET_DESCRIPTOR_BUFSIZE,
|
||||
+ initial_descriptor_timeout);
|
||||
+ switch (buf->bMaxPacketSize0) {
|
||||
+ case 8: case 16: case 32: case 64: case 255:
|
||||
+ if (buf->bDescriptorType ==
|
||||
+ USB_DT_DEVICE) {
|
||||
+ r = 0;
|
||||
+ break;
|
||||
+ }
|
||||
+ fallthrough;
|
||||
+ default:
|
||||
+ if (r == 0)
|
||||
+ r = -EPROTO;
|
||||
+ break;
|
||||
+ }
|
||||
+ /*
|
||||
+ * Some devices time out if they are powered on
|
||||
+ * when already connected. They need a second
|
||||
+ * reset. But only on the first attempt,
|
||||
+ * lest we get into a time out/reset loop
|
||||
+ */
|
||||
+ if (r == 0 || (r == -ETIMEDOUT &&
|
||||
+ retries == 0 &&
|
||||
+ udev->speed > USB_SPEED_FULL))
|
||||
+ break;
|
||||
}
|
||||
+ udev->descriptor.bMaxPacketSize0 =
|
||||
+ buf->bMaxPacketSize0;
|
||||
+ kfree(buf);
|
||||
|
||||
retval = hub_port_reset(hub, port1, udev, delay, false);
|
||||
if (retval < 0) /* error or disconnect */
|
||||
@@ -4984,13 +4948,14 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
retval = -ENODEV;
|
||||
goto fail;
|
||||
}
|
||||
- if (maxp0 < 0) {
|
||||
- if (maxp0 != -ENODEV)
|
||||
+ if (r) {
|
||||
+ if (r != -ENODEV)
|
||||
dev_err(&udev->dev, "device descriptor read/64, error %d\n",
|
||||
- maxp0);
|
||||
- retval = maxp0;
|
||||
+ r);
|
||||
+ retval = -EMSGSIZE;
|
||||
continue;
|
||||
}
|
||||
+#undef GET_DESCRIPTOR_BUFSIZE
|
||||
}
|
||||
|
||||
for (operations = 0; operations < SET_ADDRESS_TRIES; ++operations) {
|
||||
@@ -5031,21 +4996,18 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
if (do_new_scheme)
|
||||
break;
|
||||
|
||||
- maxp0 = get_bMaxPacketSize0(udev, buf, 8, retries == 0);
|
||||
- if (maxp0 < 0) {
|
||||
- retval = maxp0;
|
||||
+ retval = usb_get_device_descriptor(udev, 8);
|
||||
+ if (retval < 8) {
|
||||
if (retval != -ENODEV)
|
||||
dev_err(&udev->dev,
|
||||
"device descriptor read/8, error %d\n",
|
||||
retval);
|
||||
+ if (retval >= 0)
|
||||
+ retval = -EMSGSIZE;
|
||||
} else {
|
||||
u32 delay;
|
||||
|
||||
- if (!initial && maxp0 != udev->descriptor.bMaxPacketSize0) {
|
||||
- dev_err(&udev->dev, "device reset changed ep0 maxpacket size!\n");
|
||||
- retval = -ENODEV;
|
||||
- goto fail;
|
||||
- }
|
||||
+ retval = 0;
|
||||
|
||||
delay = udev->parent->hub_delay;
|
||||
udev->hub_delay = min_t(u32, delay,
|
||||
@@ -5064,62 +5026,48 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
goto fail;
|
||||
|
||||
/*
|
||||
- * Check the ep0 maxpacket guess and correct it if necessary.
|
||||
- * maxp0 is the value stored in the device descriptor;
|
||||
- * i is the value it encodes (logarithmic for SuperSpeed or greater).
|
||||
+ * Some superspeed devices have finished the link training process
|
||||
+ * and attached to a superspeed hub port, but the device descriptor
|
||||
+ * got from those devices show they aren't superspeed devices. Warm
|
||||
+ * reset the port attached by the devices can fix them.
|
||||
*/
|
||||
- i = maxp0;
|
||||
- if (udev->speed >= USB_SPEED_SUPER) {
|
||||
- if (maxp0 <= 16)
|
||||
- i = 1 << maxp0;
|
||||
- else
|
||||
- i = 0; /* Invalid */
|
||||
- }
|
||||
- if (usb_endpoint_maxp(&udev->ep0.desc) == i) {
|
||||
- ; /* Initial ep0 maxpacket guess is right */
|
||||
- } else if (((udev->speed == USB_SPEED_FULL ||
|
||||
- udev->speed == USB_SPEED_HIGH) &&
|
||||
- (i == 8 || i == 16 || i == 32 || i == 64)) ||
|
||||
- (udev->speed >= USB_SPEED_SUPER && i > 0)) {
|
||||
- /* Initial guess is wrong; use the descriptor's value */
|
||||
+ if ((udev->speed >= USB_SPEED_SUPER) &&
|
||||
+ (le16_to_cpu(udev->descriptor.bcdUSB) < 0x0300)) {
|
||||
+ dev_err(&udev->dev, "got a wrong device descriptor, "
|
||||
+ "warm reset device\n");
|
||||
+ hub_port_reset(hub, port1, udev,
|
||||
+ HUB_BH_RESET_TIME, true);
|
||||
+ retval = -EINVAL;
|
||||
+ goto fail;
|
||||
+ }
|
||||
+
|
||||
+ if (udev->descriptor.bMaxPacketSize0 == 0xff ||
|
||||
+ udev->speed >= USB_SPEED_SUPER)
|
||||
+ i = 512;
|
||||
+ else
|
||||
+ i = udev->descriptor.bMaxPacketSize0;
|
||||
+ if (usb_endpoint_maxp(&udev->ep0.desc) != i) {
|
||||
+ if (udev->speed == USB_SPEED_LOW ||
|
||||
+ !(i == 8 || i == 16 || i == 32 || i == 64)) {
|
||||
+ dev_err(&udev->dev, "Invalid ep0 maxpacket: %d\n", i);
|
||||
+ retval = -EMSGSIZE;
|
||||
+ goto fail;
|
||||
+ }
|
||||
if (udev->speed == USB_SPEED_FULL)
|
||||
dev_dbg(&udev->dev, "ep0 maxpacket = %d\n", i);
|
||||
else
|
||||
dev_warn(&udev->dev, "Using ep0 maxpacket: %d\n", i);
|
||||
udev->ep0.desc.wMaxPacketSize = cpu_to_le16(i);
|
||||
usb_ep0_reinit(udev);
|
||||
- } else {
|
||||
- /* Initial guess is wrong and descriptor's value is invalid */
|
||||
- dev_err(&udev->dev, "Invalid ep0 maxpacket: %d\n", maxp0);
|
||||
- retval = -EMSGSIZE;
|
||||
- goto fail;
|
||||
}
|
||||
|
||||
- descr = usb_get_device_descriptor(udev);
|
||||
- if (IS_ERR(descr)) {
|
||||
- retval = PTR_ERR(descr);
|
||||
+ retval = usb_get_device_descriptor(udev, USB_DT_DEVICE_SIZE);
|
||||
+ if (retval < (signed)sizeof(udev->descriptor)) {
|
||||
if (retval != -ENODEV)
|
||||
dev_err(&udev->dev, "device descriptor read/all, error %d\n",
|
||||
retval);
|
||||
- goto fail;
|
||||
- }
|
||||
- if (initial)
|
||||
- udev->descriptor = *descr;
|
||||
- else
|
||||
- *dev_descr = *descr;
|
||||
- kfree(descr);
|
||||
-
|
||||
- /*
|
||||
- * Some superspeed devices have finished the link training process
|
||||
- * and attached to a superspeed hub port, but the device descriptor
|
||||
- * got from those devices show they aren't superspeed devices. Warm
|
||||
- * reset the port attached by the devices can fix them.
|
||||
- */
|
||||
- if ((udev->speed >= USB_SPEED_SUPER) &&
|
||||
- (le16_to_cpu(udev->descriptor.bcdUSB) < 0x0300)) {
|
||||
- dev_err(&udev->dev, "got a wrong device descriptor, warm reset device\n");
|
||||
- hub_port_reset(hub, port1, udev, HUB_BH_RESET_TIME, true);
|
||||
- retval = -EINVAL;
|
||||
+ if (retval >= 0)
|
||||
+ retval = -ENOMSG;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
@@ -5145,7 +5093,6 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
|
||||
hub_port_disable(hub, port1, 0);
|
||||
update_devnum(udev, devnum); /* for disconnect processing */
|
||||
}
|
||||
- kfree(buf);
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -5226,7 +5173,7 @@ hub_power_remaining(struct usb_hub *hub)
|
||||
|
||||
|
||||
static int descriptors_changed(struct usb_device *udev,
|
||||
- struct usb_device_descriptor *new_device_descriptor,
|
||||
+ struct usb_device_descriptor *old_device_descriptor,
|
||||
struct usb_host_bos *old_bos)
|
||||
{
|
||||
int changed = 0;
|
||||
@@ -5237,8 +5184,8 @@ static int descriptors_changed(struct usb_device *udev,
|
||||
int length;
|
||||
char *buf;
|
||||
|
||||
- if (memcmp(&udev->descriptor, new_device_descriptor,
|
||||
- sizeof(*new_device_descriptor)) != 0)
|
||||
+ if (memcmp(&udev->descriptor, old_device_descriptor,
|
||||
+ sizeof(*old_device_descriptor)) != 0)
|
||||
return 1;
|
||||
|
||||
if ((old_bos && !udev->bos) || (!old_bos && udev->bos))
|
||||
@@ -5415,7 +5362,7 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
|
||||
}
|
||||
|
||||
/* reset (non-USB 3.0 devices) and get descriptor */
|
||||
- status = hub_port_init(hub, udev, port1, i, NULL);
|
||||
+ status = hub_port_init(hub, udev, port1, i);
|
||||
if (status < 0)
|
||||
goto loop;
|
||||
|
||||
@@ -5562,8 +5509,9 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
|
||||
{
|
||||
struct usb_port *port_dev = hub->ports[port1 - 1];
|
||||
struct usb_device *udev = port_dev->child;
|
||||
- struct usb_device_descriptor *descr;
|
||||
+ struct usb_device_descriptor descriptor;
|
||||
int status = -ENODEV;
|
||||
+ int retval;
|
||||
|
||||
dev_dbg(&port_dev->dev, "status %04x, change %04x, %s\n", portstatus,
|
||||
portchange, portspeed(hub, portstatus));
|
||||
@@ -5590,20 +5538,23 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
|
||||
* changed device descriptors before resuscitating the
|
||||
* device.
|
||||
*/
|
||||
- descr = usb_get_device_descriptor(udev);
|
||||
- if (IS_ERR(descr)) {
|
||||
+ descriptor = udev->descriptor;
|
||||
+ retval = usb_get_device_descriptor(udev,
|
||||
+ sizeof(udev->descriptor));
|
||||
+ if (retval < 0) {
|
||||
dev_dbg(&udev->dev,
|
||||
- "can't read device descriptor %ld\n",
|
||||
- PTR_ERR(descr));
|
||||
+ "can't read device descriptor %d\n",
|
||||
+ retval);
|
||||
} else {
|
||||
- if (descriptors_changed(udev, descr,
|
||||
+ if (descriptors_changed(udev, &descriptor,
|
||||
udev->bos)) {
|
||||
dev_dbg(&udev->dev,
|
||||
"device descriptor has changed\n");
|
||||
+ /* for disconnect() calls */
|
||||
+ udev->descriptor = descriptor;
|
||||
} else {
|
||||
status = 0; /* Nothing to do */
|
||||
}
|
||||
- kfree(descr);
|
||||
}
|
||||
#ifdef CONFIG_PM
|
||||
} else if (udev->state == USB_STATE_SUSPENDED &&
|
||||
@@ -6060,7 +6011,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev)
|
||||
struct usb_device *parent_hdev = udev->parent;
|
||||
struct usb_hub *parent_hub;
|
||||
struct usb_hcd *hcd = bus_to_hcd(udev->bus);
|
||||
- struct usb_device_descriptor descriptor;
|
||||
+ struct usb_device_descriptor descriptor = udev->descriptor;
|
||||
struct usb_host_bos *bos;
|
||||
int i, j, ret = 0;
|
||||
int port1 = udev->portnum;
|
||||
@@ -6096,7 +6047,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev)
|
||||
/* ep0 maxpacket size may change; let the HCD know about it.
|
||||
* Other endpoints will be handled by re-enumeration. */
|
||||
usb_ep0_reinit(udev);
|
||||
- ret = hub_port_init(parent_hub, udev, port1, i, &descriptor);
|
||||
+ ret = hub_port_init(parent_hub, udev, port1, i);
|
||||
if (ret >= 0 || ret == -ENOTCONN || ret == -ENODEV)
|
||||
break;
|
||||
}
|
||||
@@ -6108,6 +6059,7 @@ static int usb_reset_and_verify_device(struct usb_device *udev)
|
||||
/* Device might have changed firmware (DFU or similar) */
|
||||
if (descriptors_changed(udev, &descriptor, bos)) {
|
||||
dev_info(&udev->dev, "device firmware changed\n");
|
||||
+ udev->descriptor = descriptor; /* for disconnect() calls */
|
||||
goto re_enumerate;
|
||||
}
|
||||
|
||||
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
|
||||
index 077dfe48d01c1..0d2bfc909019b 100644
|
||||
--- a/drivers/usb/core/message.c
|
||||
+++ b/drivers/usb/core/message.c
|
||||
@@ -1041,35 +1041,40 @@ char *usb_cache_string(struct usb_device *udev, int index)
|
||||
EXPORT_SYMBOL_GPL(usb_cache_string);
|
||||
|
||||
/*
|
||||
- * usb_get_device_descriptor - read the device descriptor
|
||||
- * @udev: the device whose device descriptor should be read
|
||||
+ * usb_get_device_descriptor - (re)reads the device descriptor (usbcore)
|
||||
+ * @dev: the device whose device descriptor is being updated
|
||||
+ * @size: how much of the descriptor to read
|
||||
*
|
||||
* Context: task context, might sleep.
|
||||
*
|
||||
+ * Updates the copy of the device descriptor stored in the device structure,
|
||||
+ * which dedicates space for this purpose.
|
||||
+ *
|
||||
* Not exported, only for use by the core. If drivers really want to read
|
||||
* the device descriptor directly, they can call usb_get_descriptor() with
|
||||
* type = USB_DT_DEVICE and index = 0.
|
||||
*
|
||||
- * Returns: a pointer to a dynamically allocated usb_device_descriptor
|
||||
- * structure (which the caller must deallocate), or an ERR_PTR value.
|
||||
+ * This call is synchronous, and may not be used in an interrupt context.
|
||||
+ *
|
||||
+ * Return: The number of bytes received on success, or else the status code
|
||||
+ * returned by the underlying usb_control_msg() call.
|
||||
*/
|
||||
-struct usb_device_descriptor *usb_get_device_descriptor(struct usb_device *udev)
|
||||
+int usb_get_device_descriptor(struct usb_device *dev, unsigned int size)
|
||||
{
|
||||
struct usb_device_descriptor *desc;
|
||||
int ret;
|
||||
|
||||
+ if (size > sizeof(*desc))
|
||||
+ return -EINVAL;
|
||||
desc = kmalloc(sizeof(*desc), GFP_NOIO);
|
||||
if (!desc)
|
||||
- return ERR_PTR(-ENOMEM);
|
||||
-
|
||||
- ret = usb_get_descriptor(udev, USB_DT_DEVICE, 0, desc, sizeof(*desc));
|
||||
- if (ret == sizeof(*desc))
|
||||
- return desc;
|
||||
+ return -ENOMEM;
|
||||
|
||||
+ ret = usb_get_descriptor(dev, USB_DT_DEVICE, 0, desc, size);
|
||||
if (ret >= 0)
|
||||
- ret = -EMSGSIZE;
|
||||
+ memcpy(&dev->descriptor, desc, size);
|
||||
kfree(desc);
|
||||
- return ERR_PTR(ret);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
diff --git a/drivers/usb/core/usb.h b/drivers/usb/core/usb.h
|
||||
index 60363153fc3f3..69ca59841083b 100644
|
||||
--- a/drivers/usb/core/usb.h
|
||||
+++ b/drivers/usb/core/usb.h
|
||||
@@ -43,8 +43,8 @@ extern bool usb_endpoint_is_ignored(struct usb_device *udev,
|
||||
struct usb_endpoint_descriptor *epd);
|
||||
extern int usb_remove_device(struct usb_device *udev);
|
||||
|
||||
-extern struct usb_device_descriptor *usb_get_device_descriptor(
|
||||
- struct usb_device *udev);
|
||||
+extern int usb_get_device_descriptor(struct usb_device *dev,
|
||||
+ unsigned int size);
|
||||
extern int usb_set_isoch_delay(struct usb_device *dev);
|
||||
extern int usb_get_bos_descriptor(struct usb_device *dev);
|
||||
extern void usb_release_bos_descriptor(struct usb_device *dev);
|
Loading…
x
Reference in New Issue
Block a user