mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-13 08:03:31 +00:00
Compare commits
6 Commits
e61334eee7
...
6008d24ba8
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6008d24ba8 | ||
![]() |
752fce8a6c | ||
![]() |
f4a3d6163a | ||
![]() |
449aa7834c | ||
![]() |
ad4f5990fc | ||
![]() |
59540554ee |
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=linux-firmware
|
||||
PKG_VERSION:=20250211
|
||||
PKG_VERSION:=20250311
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_HASH:=2de1345897bf839d532c5de0fdb348770ca2a5f4edfb21971582597abb45297d
|
||||
PKG_HASH:=b1083a36f19aea46f661dcfd4cd462d13933dcb4e7f0dc809525552dd5c3541d
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
|
@ -0,0 +1,223 @@
|
||||
Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com>
|
||||
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
|
||||
---
|
||||
include/net/ieee80211_radiotap.h | 187 ++++++++++++++++++++++++++++++-
|
||||
1 file changed, 185 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/net/ieee80211_radiotap.h b/include/net/ieee80211_radiotap.h
|
||||
index 598f53d2a3a0..0fc2667a9a5d 100644
|
||||
--- a/include/net/ieee80211_radiotap.h
|
||||
+++ b/include/net/ieee80211_radiotap.h
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2017 Intel Deutschland GmbH
|
||||
- * Copyright (c) 2018-2019, 2021 Intel Corporation
|
||||
+ * Copyright (c) 2018-2019, 2021-2022 Intel Corporation
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -82,11 +82,14 @@ enum ieee80211_radiotap_presence {
|
||||
IEEE80211_RADIOTAP_HE_MU = 24,
|
||||
IEEE80211_RADIOTAP_ZERO_LEN_PSDU = 26,
|
||||
IEEE80211_RADIOTAP_LSIG = 27,
|
||||
+ IEEE80211_RADIOTAP_TLV = 28,
|
||||
|
||||
/* valid in every it_present bitmap, even vendor namespaces */
|
||||
IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29,
|
||||
IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30,
|
||||
- IEEE80211_RADIOTAP_EXT = 31
|
||||
+ IEEE80211_RADIOTAP_EXT = 31,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG = 33,
|
||||
+ IEEE80211_RADIOTAP_EHT = 34,
|
||||
};
|
||||
|
||||
/* for IEEE80211_RADIOTAP_FLAGS */
|
||||
@@ -360,6 +363,186 @@ enum ieee80211_radiotap_zero_len_psdu_type {
|
||||
IEEE80211_RADIOTAP_ZERO_LEN_PSDU_VENDOR = 0xff,
|
||||
};
|
||||
|
||||
+struct ieee80211_radiotap_tlv {
|
||||
+ __le16 type;
|
||||
+ __le16 len;
|
||||
+ u8 data[];
|
||||
+} __packed;
|
||||
+
|
||||
+/* ieee80211_radiotap_eht_usig - content of U-SIG tlv (type 33)
|
||||
+ * see www.radiotap.org/fields/U-SIG.html for details
|
||||
+ */
|
||||
+struct ieee80211_radiotap_eht_usig {
|
||||
+ __le32 common;
|
||||
+ __le32 value;
|
||||
+ __le32 mask;
|
||||
+} __packed;
|
||||
+
|
||||
+/* ieee80211_radiotap_eht - content of EHT tlv (type 34)
|
||||
+ * see www.radiotap.org/fields/EHT.html for details
|
||||
+ */
|
||||
+struct ieee80211_radiotap_eht {
|
||||
+ __le32 known;
|
||||
+ __le32 data[9];
|
||||
+ __le32 user_info[];
|
||||
+} __packed;
|
||||
+
|
||||
+/* Known field for EHT TLV
|
||||
+ * The ending defines for what the field applies as following
|
||||
+ * O - OFDMA (including TB), M - MU-MIMO, S - EHT sounding.
|
||||
+ */
|
||||
+enum ieee80211_radiotap_eht_known {
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_SPATIAL_REUSE = 0x00000002,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_GI = 0x00000004,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_EHT_LTF = 0x00000010,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_LDPC_EXTRA_SYM_OM = 0x00000020,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_PRE_PADD_FACOR_OM = 0x00000040,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_PE_DISAMBIGUITY_OM = 0x00000080,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_DISREGARD_O = 0x00000100,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_DISREGARD_S = 0x00000200,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_CRC1 = 0x00002000,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_TAIL1 = 0x00004000,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_CRC2_O = 0x00008000,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_TAIL2_O = 0x00010000,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_NSS_S = 0x00020000,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_BEAMFORMED_S = 0x00040000,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_NR_NON_OFDMA_USERS_M = 0x00080000,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_ENCODING_BLOCK_CRC_M = 0x00100000,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_ENCODING_BLOCK_TAIL_M = 0x00200000,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_RU_MRU_SIZE_OM = 0x00400000,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_RU_MRU_INDEX_OM = 0x00800000,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_RU_ALLOC_TB_FMT = 0x01000000,
|
||||
+ IEEE80211_RADIOTAP_EHT_KNOWN_PRIMARY_80 = 0x02000000,
|
||||
+};
|
||||
+
|
||||
+enum ieee80211_radiotap_eht_data {
|
||||
+ /* Data 0 */
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA0_SPATIAL_REUSE = 0x00000078,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA0_GI = 0x00000180,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA0_LTF = 0x00000600,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA0_EHT_LTF = 0x00003800,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA0_LDPC_EXTRA_SYM_OM = 0x00004000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA0_PRE_PADD_FACOR_OM = 0x00018000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA0_PE_DISAMBIGUITY_OM = 0x00020000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA0_DISREGARD_S = 0x000c0000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA0_DISREGARD_O = 0x003c0000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA0_CRC1_O = 0x03c00000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA0_TAIL1_O = 0xfc000000,
|
||||
+ /* Data 1 */
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA1_RU_SIZE = 0x0000001f,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA1_RU_INDEX = 0x00001fe0,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA1_RU_ALLOC_CC_1_1_1 = 0x003fe000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA1_RU_ALLOC_CC_1_1_1_KNOWN = 0x00400000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA1_PRIMARY_80 = 0xc0000000,
|
||||
+ /* Data 2 */
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_1 = 0x000001ff,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_1_KNOWN = 0x00000200,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_1_1_2 = 0x0007fc00,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_1_1_2_KNOWN = 0x00080000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_2 = 0x1ff00000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA2_RU_ALLOC_CC_2_1_2_KNOWN = 0x20000000,
|
||||
+ /* Data 3 */
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_1 = 0x000001ff,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_1_KNOWN = 0x00000200,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_2_2_1 = 0x0007fc00,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_2_2_1_KNOWN = 0x00080000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_2 = 0x1ff00000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA3_RU_ALLOC_CC_1_2_2_KNOWN = 0x20000000,
|
||||
+ /* Data 4 */
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_2 = 0x000001ff,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_2_KNOWN = 0x00000200,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_1_2_3 = 0x0007fc00,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_1_2_3_KNOWN = 0x00080000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_3 = 0x1ff00000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_3_KNOWN = 0x20000000,
|
||||
+ /* Data 5 */
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_4 = 0x000001ff,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_4_KNOWN = 0x00000200,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_2_2_4 = 0x0007fc00,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_2_2_4_KNOWN = 0x00080000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_5 = 0x1ff00000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_5_KNOWN = 0x20000000,
|
||||
+ /* Data 6 */
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_5 = 0x000001ff,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_5_KNOWN = 0x00000200,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_1_2_6 = 0x0007fc00,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_1_2_6_KNOWN = 0x00080000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_6 = 0x1ff00000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_6_KNOWN = 0x20000000,
|
||||
+ /* Data 7 */
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA7_CRC2_O = 0x0000000f,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA7_TAIL_2_O = 0x000003f0,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA7_NSS_S = 0x0000f000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA7_BEAMFORMED_S = 0x00010000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA7_NUM_OF_NON_OFDMA_USERS = 0x000e0000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA7_USER_ENCODING_BLOCK_CRC = 0x00f00000,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA7_USER_ENCODING_BLOCK_TAIL = 0x3f000000,
|
||||
+ /* Data 8 */
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_PS_160 = 0x00000001,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_B0 = 0x00000002,
|
||||
+ IEEE80211_RADIOTAP_EHT_DATA8_RU_ALLOC_TB_FMT_B7_B1 = 0x000001fc,
|
||||
+};
|
||||
+
|
||||
+enum ieee80211_radiotap_eht_user_info {
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_STA_ID_KNOWN = 0x00000001,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_MCS_KNOWN = 0x00000002,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_CODING_KNOWN = 0x00000004,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_NSS_KNOWN_O = 0x00000010,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_BEAMFORMING_KNOWN_O = 0x00000020,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_SPATIAL_CONFIG_KNOWN_M = 0x00000040,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_DATA_FOR_USER = 0x00000080,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_STA_ID = 0x0007ff00,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_CODING = 0x00080000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_MCS = 0x00f00000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_NSS_O = 0x0f000000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_BEAMFORMING_O = 0x20000000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_SPATIAL_CONFIG_M = 0x3f000000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USER_INFO_RESEVED_c0000000 = 0xc0000000,
|
||||
+};
|
||||
+
|
||||
+enum ieee80211_radiotap_eht_usig_common {
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER_KNOWN = 0x00000001,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_KNOWN = 0x00000002,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL_KNOWN = 0x00000004,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR_KNOWN = 0x00000008,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP_KNOWN = 0x00000010,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG_COMMON_BAD_USIG_CRC = 0x00000020,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG_COMMON_PHY_VER = 0x00007000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW = 0x00038000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG_COMMON_UL_DL = 0x00040000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG_COMMON_BSS_COLOR = 0x01f80000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG_COMMON_TXOP = 0xfe000000,
|
||||
+};
|
||||
+
|
||||
+enum ieee80211_radiotap_eht_usig_mu {
|
||||
+ /* MU-USIG-1 */
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG1_MU_B20_B24_DISREGARD = 0x0000001f,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG1_MU_B25_VALIDATE = 0x00000020,
|
||||
+ /* MU-USIG-2 */
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_MU_B0_B1_PPDU_TYPE = 0x000000c0,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_MU_B2_VALIDATE = 0x00000100,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_MU_B3_B7_PUNCTURED_INFO = 0x00003e00,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_MU_B8_VALIDATE = 0x00004000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_MU_B9_B10_SIG_MCS = 0x00018000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_MU_B11_B15_EHT_SIG_SYMBOLS = 0x003e0000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_MU_B16_B19_CRC = 0x03c00000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_MU_B20_B25_TAIL = 0xfc000000,
|
||||
+};
|
||||
+
|
||||
+enum ieee80211_radiotap_eht_usig_tb {
|
||||
+ /* TB-USIG-1 */
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG1_TB_B20_B25_DISREGARD = 0x0000001f,
|
||||
+
|
||||
+ /* TB-USIG-2 */
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_TB_B0_B1_PPDU_TYPE = 0x000000c0,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_TB_B2_VALIDATE = 0x00000100,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_TB_B3_B6_SPATIAL_REUSE_1 = 0x00001e00,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_TB_B7_B10_SPATIAL_REUSE_2 = 0x0001e000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_TB_B11_B15_DISREGARD = 0x003e0000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_TB_B16_B19_CRC = 0x03c00000,
|
||||
+ IEEE80211_RADIOTAP_EHT_USIG2_TB_B20_B25_TAIL = 0xfc000000,
|
||||
+};
|
||||
+
|
||||
/**
|
||||
* ieee80211_get_radiotap_len - get radiotap header length
|
||||
*/
|
||||
--
|
||||
2.38.1
|
@ -15,19 +15,19 @@ PKG_SOURCE_VERSION:=5b509e80384ab019ac11aa90c81ec0dbb5b0d7f2
|
||||
PKG_MIRROR_HASH:=6fc25df4d28becd010ff4971b23731c08b53e69381a9e4c868091899712f78a9
|
||||
PATCH_DIR:=./patches-5.4
|
||||
else ifdef CONFIG_LINUX_6_1
|
||||
PKG_SOURCE_DATE:=2024-04-04
|
||||
PKG_SOURCE_VERSION:=8f301a5c5fe3d998b50666bde1d35d412833be89
|
||||
PKG_MIRROR_HASH:=49291145ccceeac2964c9a43a46bed88298e5c1da63c6f3c2c1f6b3c1902a61e
|
||||
PKG_SOURCE_DATE:=2024-05-17
|
||||
PKG_SOURCE_VERSION:=513c131c6309712a51502870b041f45b4bd6a6d4
|
||||
PKG_MIRROR_HASH:=9f5d7a846912e7deafa216c2aabb038ec58666ecbf8a394e947b144001994d78
|
||||
PATCH_DIR:=./patches-6.x
|
||||
else ifdef CONFIG_LINUX_6_6
|
||||
PKG_SOURCE_DATE:=2024-04-04
|
||||
PKG_SOURCE_VERSION:=8f301a5c5fe3d998b50666bde1d35d412833be89
|
||||
PKG_MIRROR_HASH:=49291145ccceeac2964c9a43a46bed88298e5c1da63c6f3c2c1f6b3c1902a61e
|
||||
PKG_SOURCE_DATE:=2024-05-17
|
||||
PKG_SOURCE_VERSION:=513c131c6309712a51502870b041f45b4bd6a6d4
|
||||
PKG_MIRROR_HASH:=9f5d7a846912e7deafa216c2aabb038ec58666ecbf8a394e947b144001994d78
|
||||
PATCH_DIR:=./patches-6.x
|
||||
else ifdef CONFIG_LINUX_6_12
|
||||
PKG_SOURCE_DATE:=2024-04-04
|
||||
PKG_SOURCE_VERSION:=8f301a5c5fe3d998b50666bde1d35d412833be89
|
||||
PKG_MIRROR_HASH:=49291145ccceeac2964c9a43a46bed88298e5c1da63c6f3c2c1f6b3c1902a61e
|
||||
PKG_SOURCE_DATE:=2024-05-17
|
||||
PKG_SOURCE_VERSION:=513c131c6309712a51502870b041f45b4bd6a6d4
|
||||
PKG_MIRROR_HASH:=9f5d7a846912e7deafa216c2aabb038ec58666ecbf8a394e947b144001994d78
|
||||
PATCH_DIR:=./patches-6.x
|
||||
else
|
||||
PKG_SOURCE_DATE:=2023-09-18
|
||||
|
@ -1,33 +0,0 @@
|
||||
From 513c131c6309712a51502870b041f45b4bd6a6d4 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Fri, 17 May 2024 13:51:22 +0200
|
||||
Subject: [PATCH] mt76: mt7603: fix mixed declarations and code
|
||||
|
||||
Move the qid variable declaration further up
|
||||
|
||||
Fixes: b473c0e47f04 ("wifi: mt76: mt7603: fix tx queue of loopback packets")
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
mt7603/dma.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/mt7603/dma.c
|
||||
+++ b/mt7603/dma.c
|
||||
@@ -29,7 +29,7 @@ mt7603_rx_loopback_skb(struct mt7603_dev
|
||||
struct ieee80211_sta *sta;
|
||||
struct mt7603_sta *msta;
|
||||
struct mt76_wcid *wcid;
|
||||
- u8 tid = 0, hwq = 0;
|
||||
+ u8 qid, tid = 0, hwq = 0;
|
||||
void *priv;
|
||||
int idx;
|
||||
u32 val;
|
||||
@@ -57,7 +57,7 @@ mt7603_rx_loopback_skb(struct mt7603_dev
|
||||
if (ieee80211_is_data_qos(hdr->frame_control)) {
|
||||
tid = *ieee80211_get_qos_ctl(hdr) &
|
||||
IEEE80211_QOS_CTL_TAG1D_MASK;
|
||||
- u8 qid = tid_to_ac[tid];
|
||||
+ qid = tid_to_ac[tid];
|
||||
hwq = wmm_queue_map[qid];
|
||||
skb_set_queue_mapping(skb, qid);
|
||||
} else if (ieee80211_is_data(hdr->frame_control)) {
|
@ -0,0 +1,11 @@
|
||||
--- a/mt76_connac3_mac.c
|
||||
+++ b/mt76_connac3_mac.c
|
||||
@@ -215,7 +215,7 @@
|
||||
usig = mt76_connac3_mac_radiotap_push_tlv(skb, IEEE80211_RADIOTAP_EHT_USIG,
|
||||
sizeof(*usig));
|
||||
|
||||
- status->flag |= RX_FLAG_RADIOTAP_TLV_AT_END;
|
||||
+ status->flag |= RX_FLAG_RADIOTAP_VENDOR_DATA;
|
||||
|
||||
eht->known |= EHT_BITS(KNOWN_SPATIAL_REUSE) |
|
||||
EHT_BITS(KNOWN_GI) |
|
47
package/kernel/r8127/Makefile
Normal file
47
package/kernel/r8127/Makefile
Normal file
@ -0,0 +1,47 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=r8127
|
||||
PKG_VERSION:=11.014.00
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/rtl8127/releases/download/$(PKG_VERSION)
|
||||
PKG_HASH:=f496bc16c32d2e8f9482c57d006604c70d9e8d55b4f1f999b88c602de9104094
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_LICENSE:=GPLv2
|
||||
PKG_MAINTAINER:=Alvaro Fernandez Rojas <noltari@gmail.com>
|
||||
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/r8127
|
||||
SUBMENU:=Network Devices
|
||||
TITLE:=Realtek RTL8127 PCI 10 Gigabit Ethernet driver
|
||||
DEPENDS:=@PCI_SUPPORT +kmod-libphy
|
||||
FILES:=$(PKG_BUILD_DIR)/src/r8127.ko
|
||||
AUTOLOAD:=$(call AutoProbe,r8127)
|
||||
PROVIDES:=kmod-r8169
|
||||
VARIANT:=regular
|
||||
endef
|
||||
|
||||
define KernelPackage/r8127-rss
|
||||
$(call KernelPackage/r8127)
|
||||
CONFLICTS:=kmod-r8127
|
||||
TITLE+= (RSS)
|
||||
VARIANT:=rss
|
||||
endef
|
||||
|
||||
ifeq ($(BUILD_VARIANT),rss)
|
||||
PKG_MAKE_FLAGS += ENABLE_RSS_SUPPORT=y
|
||||
endif
|
||||
|
||||
define Build/Compile
|
||||
+$(KERNEL_MAKE) $(PKG_JOBS) \
|
||||
$(PKG_MAKE_FLAGS) \
|
||||
M="$(PKG_BUILD_DIR)/src" \
|
||||
modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,r8127))
|
||||
$(eval $(call KernelPackage,r8127-rss))
|
@ -0,0 +1,106 @@
|
||||
From 5ca1d47e065c0318774a946ffdf76010c78cc164 Mon Sep 17 00:00:00 2001
|
||||
From: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
Date: Sat, 10 Aug 2024 20:16:32 +0800
|
||||
Subject: [PATCH] r8127: print link speed and duplex mode
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Like other Ethernet drivers, print link speed and duplex mode
|
||||
when the interface is up. Formatting output at the same time.
|
||||
|
||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
---
|
||||
src/r8127.h | 2 ++
|
||||
src/r8127_n.c | 48 +++++++++++++++++++++++++++++++++++++++++++++---
|
||||
2 files changed, 47 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/src/r8127.h
|
||||
+++ b/src/r8127.h
|
||||
@@ -1753,6 +1753,11 @@ enum RTL8127_register_content {
|
||||
LinkStatus = 0x02,
|
||||
FullDup = 0x01,
|
||||
|
||||
+#define RTL8127_FULL_DUPLEX_MASK (_10000bpsF | _5000bpsF | _2500bpsF | _1000bpsF | FullDup)
|
||||
+#define RTL8127_SPEED_1000_MASK (_1000bpsF | _1000bpsL | _2500bpsL)
|
||||
+#define RTL8127_SPEED_2500_MASK (_2500bpsF | _5000bpsL)
|
||||
+#define RTL8127_SPEED_5000_MASK (_5000bpsF | _10000bpsL)
|
||||
+
|
||||
/* DBG_reg */
|
||||
Fix_Nak_1 = (1 << 4),
|
||||
Fix_Nak_2 = (1 << 3),
|
||||
--- a/src/r8127_n.c
|
||||
+++ b/src/r8127_n.c
|
||||
@@ -39,6 +39,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/version.h>
|
||||
#include <linux/pci.h>
|
||||
+#include <linux/phy.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/delay.h>
|
||||
@@ -4746,6 +4747,42 @@ rtl8127_link_down_patch(struct net_devic
|
||||
#endif
|
||||
}
|
||||
|
||||
+static unsigned int rtl8127_phy_duplex(u32 status)
|
||||
+{
|
||||
+ unsigned int duplex = DUPLEX_UNKNOWN;
|
||||
+
|
||||
+ if (status & LinkStatus) {
|
||||
+ if (status & RTL8127_FULL_DUPLEX_MASK)
|
||||
+ duplex = DUPLEX_FULL;
|
||||
+ else
|
||||
+ duplex = DUPLEX_HALF;
|
||||
+ }
|
||||
+
|
||||
+ return duplex;
|
||||
+}
|
||||
+
|
||||
+static int rtl8127_phy_speed(u32 status)
|
||||
+{
|
||||
+ int speed = SPEED_UNKNOWN;
|
||||
+
|
||||
+ if (status & LinkStatus) {
|
||||
+ if (status & _10000bpsF)
|
||||
+ speed = SPEED_10000;
|
||||
+ else if (status & RTL8127_SPEED_5000_MASK)
|
||||
+ speed = SPEED_5000;
|
||||
+ else if (status & RTL8127_SPEED_2500_MASK)
|
||||
+ speed = SPEED_2500;
|
||||
+ else if (status & RTL8127_SPEED_1000_MASK)
|
||||
+ speed = SPEED_1000;
|
||||
+ else if (status & _100bps)
|
||||
+ speed = SPEED_100;
|
||||
+ else if (status & _10bps)
|
||||
+ speed = SPEED_10;
|
||||
+ }
|
||||
+
|
||||
+ return speed;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
_rtl8127_check_link_status(struct net_device *dev, unsigned int link_state)
|
||||
{
|
||||
@@ -4758,11 +4795,18 @@ _rtl8127_check_link_status(struct net_de
|
||||
if (link_state == R8127_LINK_STATE_ON) {
|
||||
rtl8127_link_on_patch(dev);
|
||||
|
||||
- if (netif_msg_ifup(tp))
|
||||
- printk(KERN_INFO PFX "%s: link up\n", dev->name);
|
||||
+ if (netif_msg_ifup(tp)) {
|
||||
+ const u32 phy_status = RTL_R32(tp, PHYstatus);
|
||||
+ const unsigned int phy_duplex = rtl8127_phy_duplex(phy_status);
|
||||
+ const int phy_speed = rtl8127_phy_speed(phy_status);
|
||||
+ printk(KERN_INFO PFX "%s: Link is Up - %s/%s\n",
|
||||
+ dev->name,
|
||||
+ phy_speed_to_str(phy_speed),
|
||||
+ phy_duplex_to_str(phy_duplex));
|
||||
+ }
|
||||
} else {
|
||||
if (netif_msg_ifdown(tp))
|
||||
- printk(KERN_INFO PFX "%s: link down\n", dev->name);
|
||||
+ printk(KERN_INFO PFX "%s: Link is Down\n", dev->name);
|
||||
|
||||
rtl8127_link_down_patch(dev);
|
||||
}
|
@ -227,7 +227,7 @@ static void b53_set_vlan_entry(struct b53_device *dev, u16 vid, u16 members,
|
||||
}
|
||||
}
|
||||
|
||||
void b53_set_forwarding(struct b53_device *dev, int enable)
|
||||
static void b53_set_forwarding(struct b53_device *dev, int enable)
|
||||
{
|
||||
u8 mgmt;
|
||||
|
||||
|
8192
target/linux/rockchip/files/drivers/phy/rockchip/p3phy.fw
Normal file
8192
target/linux/rockchip/files/drivers/phy/rockchip/p3phy.fw
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,92 @@
|
||||
From 91802f44a959582842bdbbd0190e68337ad4c60c Mon Sep 17 00:00:00 2001
|
||||
From: Kever Yang <kever.yang@rock-chips.com>
|
||||
Date: Mon, 11 Jul 2022 20:35:52 +0800
|
||||
Subject: [PATCH] phy: rockchip-snps-pcie3: rk3568: update fw when init
|
||||
|
||||
This fw fix some RX issue:
|
||||
1. connect detect error;
|
||||
2. transfer error in ssd huge data write(more than 10GB).
|
||||
|
||||
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
|
||||
Change-Id: I6624b6af2ede3c2fca61c0f753a08a33ce69a6d2
|
||||
---
|
||||
drivers/phy/phy-rockchip-snps-pcie3.c | 36 +-
|
||||
drivers/phy/phy-rockchip-snps-pcie3.fw | 8192 ++++++++++++++++++++++++
|
||||
2 files changed, 8225 insertions(+), 3 deletions(-)
|
||||
create mode 100644 drivers/phy/phy-rockchip-snps-pcie3.fw
|
||||
|
||||
--- a/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c
|
||||
+++ b/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
/* Register for RK3568 */
|
||||
#define GRF_PCIE30PHY_CON1 0x4
|
||||
+#define GRF_PCIE30PHY_CON4 0x10
|
||||
#define GRF_PCIE30PHY_CON6 0x18
|
||||
#define GRF_PCIE30PHY_CON9 0x24
|
||||
#define GRF_PCIE30PHY_DA_OCM (BIT(15) | BIT(31))
|
||||
@@ -73,6 +74,10 @@ struct rockchip_p3phy_ops {
|
||||
int (*phy_init)(struct rockchip_p3phy_priv *priv);
|
||||
};
|
||||
|
||||
+static u16 phy_fw[] = {
|
||||
+ #include "p3phy.fw"
|
||||
+};
|
||||
+
|
||||
static int rockchip_p3phy_set_mode(struct phy *phy, enum phy_mode mode, int submode)
|
||||
{
|
||||
struct rockchip_p3phy_priv *priv = phy_get_drvdata(phy);
|
||||
@@ -97,13 +102,14 @@ static int rockchip_p3phy_rk3568_init(st
|
||||
{
|
||||
struct phy *phy = priv->phy;
|
||||
bool bifurcation = false;
|
||||
+ int i;
|
||||
int ret;
|
||||
u32 reg;
|
||||
|
||||
/* Deassert PCIe PMA output clamp mode */
|
||||
regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON9, GRF_PCIE30PHY_DA_OCM);
|
||||
|
||||
- for (int i = 0; i < priv->num_lanes; i++) {
|
||||
+ for (i = 0; i < priv->num_lanes; i++) {
|
||||
dev_info(&phy->dev, "lane number %d, val %d\n", i, priv->lanes[i]);
|
||||
if (priv->lanes[i] > 1)
|
||||
bifurcation = true;
|
||||
@@ -122,16 +128,35 @@ static int rockchip_p3phy_rk3568_init(st
|
||||
GRF_PCIE30PHY_WR_EN & ~RK3568_BIFURCATION_LANE_0_1);
|
||||
}
|
||||
|
||||
+ regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON4,
|
||||
+ (0x0 << 14) | (0x1 << (14 + 16))); //sdram_ld_done
|
||||
+ regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON4,
|
||||
+ (0x0 << 13) | (0x1 << (13 + 16))); //sdram_bypass
|
||||
+
|
||||
reset_control_deassert(priv->p30phy);
|
||||
|
||||
ret = regmap_read_poll_timeout(priv->phy_grf,
|
||||
GRF_PCIE30PHY_STATUS0,
|
||||
reg, SRAM_INIT_DONE(reg),
|
||||
0, 500);
|
||||
- if (ret)
|
||||
+ if (ret) {
|
||||
dev_err(&priv->phy->dev, "%s: lock failed 0x%x, check input refclk and power supply\n",
|
||||
__func__, reg);
|
||||
- return ret;
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON9,
|
||||
+ (0x3 << 8) | (0x3 << (8 + 16))); //map to access sram
|
||||
+ for (i = 0; i < 8192; i++)
|
||||
+ writel(phy_fw[i], priv->mmio + (i<<2));
|
||||
+
|
||||
+ regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON9,
|
||||
+ (0x0 << 8) | (0x3 << (8 + 16)));
|
||||
+ regmap_write(priv->phy_grf, GRF_PCIE30PHY_CON4,
|
||||
+ (0x1 << 14) | (0x1 << (14 + 16))); //sdram_ld_done
|
||||
+
|
||||
+ dev_info(&priv->phy->dev, "p3phy (fw-d54d0eb) initialized\n");
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static const struct rockchip_p3phy_ops rk3568_ops = {
|
Loading…
Reference in New Issue
Block a user