mirror of
https://github.com/bolucat/Archive.git
synced 2026-04-22 16:07:49 +08:00
Update On Thu Feb 19 20:02:35 CET 2026
This commit is contained in:
@@ -1276,3 +1276,4 @@ Update On Sun Feb 15 19:49:15 CET 2026
|
||||
Update On Mon Feb 16 19:58:09 CET 2026
|
||||
Update On Tue Feb 17 20:08:38 CET 2026
|
||||
Update On Wed Feb 18 20:06:41 CET 2026
|
||||
Update On Thu Feb 19 20:02:27 CET 2026
|
||||
|
||||
Generated
+2
-2
@@ -1215,9 +1215,9 @@ checksum = "f4ad8f11f288f48ca24471bbd51ac257aaeaaa07adae295591266b792902ae64"
|
||||
|
||||
[[package]]
|
||||
name = "bumpalo"
|
||||
version = "3.19.1"
|
||||
version = "3.20.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
|
||||
checksum = "5c6f81257d10a0f602a294ae4182251151ff97dbb504ef9afcdda4a64b24d9b4"
|
||||
|
||||
[[package]]
|
||||
name = "bytemuck"
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
"@radix-ui/react-switch": "1.2.6",
|
||||
"@radix-ui/react-tooltip": "1.2.8",
|
||||
"@radix-ui/react-use-controllable-state": "1.2.2",
|
||||
"@tailwindcss/postcss": "4.1.18",
|
||||
"@tailwindcss/postcss": "4.2.0",
|
||||
"@tanstack/react-table": "8.21.3",
|
||||
"@tanstack/react-virtual": "3.13.18",
|
||||
"@tanstack/router-zod-adapter": "1.81.5",
|
||||
@@ -49,8 +49,8 @@
|
||||
"country-emoji": "1.5.6",
|
||||
"dayjs": "1.11.19",
|
||||
"framer-motion": "12.34.2",
|
||||
"i18next": "25.8.10",
|
||||
"jotai": "2.17.1",
|
||||
"i18next": "25.8.11",
|
||||
"jotai": "2.18.0",
|
||||
"json-schema": "0.4.0",
|
||||
"material-react-table": "3.2.1",
|
||||
"monaco-editor": "0.55.1",
|
||||
@@ -74,12 +74,12 @@
|
||||
"@csstools/normalize.css": "12.1.1",
|
||||
"@emotion/babel-plugin": "11.13.5",
|
||||
"@emotion/react": "11.14.0",
|
||||
"@iconify/json": "2.2.440",
|
||||
"@iconify/json": "2.2.441",
|
||||
"@monaco-editor/react": "4.7.0",
|
||||
"@tanstack/react-query": "5.90.21",
|
||||
"@tanstack/react-router": "1.160.2",
|
||||
"@tanstack/react-router-devtools": "1.160.2",
|
||||
"@tanstack/router-plugin": "1.161.0",
|
||||
"@tanstack/react-router": "1.161.1",
|
||||
"@tanstack/react-router-devtools": "1.161.1",
|
||||
"@tanstack/router-plugin": "1.161.1",
|
||||
"@tauri-apps/plugin-clipboard-manager": "2.3.2",
|
||||
"@tauri-apps/plugin-dialog": "2.6.0",
|
||||
"@tauri-apps/plugin-fs": "2.4.5",
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"react-error-boundary": "6.0.0",
|
||||
"react-i18next": "15.7.4",
|
||||
"react-use": "17.6.0",
|
||||
"tailwindcss": "4.1.18",
|
||||
"tailwindcss": "4.2.0",
|
||||
"vite": "7.3.1",
|
||||
"vite-tsconfig-paths": "6.1.1"
|
||||
},
|
||||
@@ -39,7 +39,7 @@
|
||||
"clsx": "2.1.1",
|
||||
"d3-interpolate-path": "2.3.0",
|
||||
"sass-embedded": "1.97.3",
|
||||
"tailwind-merge": "3.4.1",
|
||||
"tailwind-merge": "3.5.0",
|
||||
"typescript-plugin-css-modules": "5.2.0",
|
||||
"vite-plugin-dts": "4.5.4"
|
||||
}
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
"lodash-es": "4.17.23"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "20.4.1",
|
||||
"@commitlint/config-conventional": "20.4.1",
|
||||
"@commitlint/cli": "20.4.2",
|
||||
"@commitlint/config-conventional": "20.4.2",
|
||||
"@ianvs/prettier-plugin-sort-imports": "4.7.1",
|
||||
"@tauri-apps/cli": "2.10.0",
|
||||
"@types/fs-extra": "11.0.4",
|
||||
@@ -68,7 +68,7 @@
|
||||
"cross-env": "10.1.0",
|
||||
"dedent": "1.7.1",
|
||||
"globals": "17.3.0",
|
||||
"knip": "5.84.0",
|
||||
"knip": "5.84.1",
|
||||
"lint-staged": "16.2.7",
|
||||
"npm-run-all2": "8.0.4",
|
||||
"oxlint": "1.48.0",
|
||||
@@ -87,7 +87,7 @@
|
||||
"stylelint-declaration-block-no-ignored-properties": "3.0.0",
|
||||
"stylelint-order": "7.0.1",
|
||||
"stylelint-scss": "7.0.0",
|
||||
"tailwindcss": "4.1.18",
|
||||
"tailwindcss": "4.2.0",
|
||||
"tsx": "4.21.0",
|
||||
"typescript": "5.9.3"
|
||||
},
|
||||
|
||||
Generated
+256
-256
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mt76
|
||||
PKG_RELEASE=3
|
||||
PKG_RELEASE=1
|
||||
|
||||
PKG_LICENSE:=GPLv2
|
||||
PKG_LICENSE_FILES:=
|
||||
@@ -14,25 +14,19 @@ PKG_SOURCE_DATE:=2022-12-22
|
||||
PKG_SOURCE_VERSION:=5b509e80384ab019ac11aa90c81ec0dbb5b0d7f2
|
||||
PKG_MIRROR_HASH:=6fc25df4d28becd010ff4971b23731c08b53e69381a9e4c868091899712f78a9
|
||||
PATCH_DIR:=./patches-5.4
|
||||
else ifdef CONFIG_LINUX_6_1
|
||||
PKG_SOURCE_DATE:=2024-09-29
|
||||
PKG_SOURCE_VERSION:=ee693260c52191c9c4764915178ce3586e926428
|
||||
PKG_MIRROR_HASH:=213ca47f3e7ec8a8c6b4ade2e301f62fcc69793ed06d43eb730fc9a500fd5595
|
||||
PATCH_DIR:=./patches-6.x
|
||||
else ifdef CONFIG_LINUX_6_6
|
||||
PKG_SOURCE_DATE:=2024-09-29
|
||||
PKG_SOURCE_VERSION:=ee693260c52191c9c4764915178ce3586e926428
|
||||
PKG_MIRROR_HASH:=213ca47f3e7ec8a8c6b4ade2e301f62fcc69793ed06d43eb730fc9a500fd5595
|
||||
PATCH_DIR:=./patches-6.x
|
||||
else ifdef CONFIG_LINUX_6_12
|
||||
PKG_SOURCE_DATE:=2024-09-29
|
||||
PKG_SOURCE_VERSION:=ee693260c52191c9c4764915178ce3586e926428
|
||||
PKG_MIRROR_HASH:=213ca47f3e7ec8a8c6b4ade2e301f62fcc69793ed06d43eb730fc9a500fd5595
|
||||
PATCH_DIR:=./patches-6.x
|
||||
else
|
||||
else ifdef CONFIG_LINUX_5_10
|
||||
PKG_SOURCE_DATE:=2023-09-18
|
||||
PKG_SOURCE_VERSION:=2afc7285f75dca5a0583fd917285bf33f1429cc6
|
||||
PKG_MIRROR_HASH:=2c9556b298246277ac2d65415e4449f98e6d5fdb99e0d0a92262f162df772bbc
|
||||
else ifdef CONFIG_LINUX_5_15
|
||||
PKG_SOURCE_DATE:=2023-09-18
|
||||
PKG_SOURCE_VERSION:=2afc7285f75dca5a0583fd917285bf33f1429cc6
|
||||
PKG_MIRROR_HASH:=2c9556b298246277ac2d65415e4449f98e6d5fdb99e0d0a92262f162df772bbc
|
||||
else
|
||||
PKG_SOURCE_DATE:=2024-10-14
|
||||
PKG_SOURCE_VERSION:=8dfead68c20251fccb39113ee864fbbafc5b7f76
|
||||
PKG_MIRROR_HASH:=1abbc60039e5eb1b25c678a711b79a92e8b9f39e4db9801610811c76d2928718
|
||||
PATCH_DIR:=./patches-6.x
|
||||
endif
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
@@ -387,7 +381,8 @@ define KernelPackage/mt7925-common
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7925 wireless driver common code
|
||||
HIDDEN:=1
|
||||
DEPENDS+=+kmod-mt792x-common +@DRIVER_11AX_SUPPORT +kmod-hwmon-core
|
||||
DEPENDS+=+kmod-mt792x-common +kmod-hwmon-core \
|
||||
+@DRIVER_11AX_SUPPORT +@DRIVER_11BE_SUPPORT
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7925/mt7925-common.ko
|
||||
endef
|
||||
|
||||
|
||||
@@ -10,11 +10,9 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
|
||||
mac80211.c | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/mac80211.c b/mac80211.c
|
||||
index 766681a4..06aa4228 100644
|
||||
--- a/mac80211.c
|
||||
+++ b/mac80211.c
|
||||
@@ -282,7 +282,7 @@ static void mt76_init_stream_cap(struct mt76_phy *phy,
|
||||
@@ -293,7 +293,7 @@ static void mt76_init_stream_cap(struct
|
||||
void mt76_set_stream_caps(struct mt76_phy *phy, bool vht)
|
||||
{
|
||||
if (phy->cap.has_2ghz)
|
||||
@@ -23,7 +21,7 @@ index 766681a4..06aa4228 100644
|
||||
if (phy->cap.has_5ghz)
|
||||
mt76_init_stream_cap(phy, &phy->sband_5g.sband, vht);
|
||||
if (phy->cap.has_6ghz)
|
||||
@@ -349,13 +349,13 @@ mt76_init_sband(struct mt76_phy *phy, struct mt76_sband *msband,
|
||||
@@ -360,13 +360,13 @@ mt76_init_sband(struct mt76_phy *phy, st
|
||||
|
||||
static int
|
||||
mt76_init_sband_2g(struct mt76_phy *phy, struct ieee80211_rate *rates,
|
||||
@@ -39,7 +37,7 @@ index 766681a4..06aa4228 100644
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -508,7 +508,7 @@ int mt76_register_phy(struct mt76_phy *phy, bool vht,
|
||||
@@ -524,7 +524,7 @@ int mt76_register_phy(struct mt76_phy *p
|
||||
return ret;
|
||||
|
||||
if (phy->cap.has_2ghz) {
|
||||
@@ -48,7 +46,7 @@ index 766681a4..06aa4228 100644
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
@@ -691,7 +691,7 @@ int mt76_register_device(struct mt76_dev *dev, bool vht,
|
||||
@@ -710,7 +710,7 @@ int mt76_register_device(struct mt76_dev
|
||||
return ret;
|
||||
|
||||
if (phy->cap.has_2ghz) {
|
||||
|
||||
@@ -1,15 +1,6 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,5 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
-EXTRA_CFLAGS += -Werror -DCONFIG_MT76_LEDS
|
||||
+EXTRA_CFLAGS += -Werror -Wno-unused-variable -DCONFIG_MT76_LEDS
|
||||
obj-m := mt76.o
|
||||
obj-$(CONFIG_MT76_USB) += mt76-usb.o
|
||||
obj-$(CONFIG_MT76_SDIO) += mt76-sdio.o
|
||||
--- a/mac80211.c
|
||||
+++ b/mac80211.c
|
||||
@@ -1660,8 +1660,8 @@
|
||||
@@ -1656,8 +1656,8 @@ EXPORT_SYMBOL_GPL(mt76_get_sar_power);
|
||||
static void
|
||||
__mt76_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
|
||||
{
|
||||
@@ -20,7 +11,7 @@
|
||||
}
|
||||
|
||||
void mt76_csa_finish(struct mt76_dev *dev)
|
||||
@@ -1685,7 +1685,7 @@
|
||||
@@ -1681,7 +1681,7 @@ __mt76_csa_check(void *priv, u8 *mac, st
|
||||
if (!vif->bss_conf.csa_active)
|
||||
return;
|
||||
|
||||
@@ -29,9 +20,192 @@
|
||||
}
|
||||
|
||||
void mt76_csa_check(struct mt76_dev *dev)
|
||||
--- a/mt7603/main.c
|
||||
+++ b/mt7603/main.c
|
||||
@@ -23,7 +23,7 @@ mt7603_start(struct ieee80211_hw *hw)
|
||||
}
|
||||
|
||||
static void
|
||||
-mt7603_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+mt7603_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt7603_dev *dev = hw->priv;
|
||||
|
||||
@@ -694,10 +694,6 @@ static void mt7603_tx(struct ieee80211_h
|
||||
}
|
||||
|
||||
const struct ieee80211_ops mt7603_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt7603_tx,
|
||||
.start = mt7603_start,
|
||||
.stop = mt7603_stop,
|
||||
--- a/mt7615/main.c
|
||||
+++ b/mt7615/main.c
|
||||
@@ -91,7 +91,7 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
-static void mt7615_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+static void mt7615_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt7615_dev *dev = mt7615_hw_dev(hw);
|
||||
struct mt7615_phy *phy = mt7615_hw_phy(hw);
|
||||
@@ -1313,10 +1313,6 @@ static void mt7615_set_rekey_data(struct
|
||||
#endif /* CONFIG_PM */
|
||||
|
||||
const struct ieee80211_ops mt7615_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt7615_tx,
|
||||
.start = mt7615_start,
|
||||
.stop = mt7615_stop,
|
||||
--- a/mt7615/mcu.c
|
||||
+++ b/mt7615/mcu.c
|
||||
@@ -353,7 +353,7 @@ static void
|
||||
mt7615_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
|
||||
{
|
||||
if (vif->bss_conf.csa_active)
|
||||
- ieee80211_csa_finish(vif, 0);
|
||||
+ ieee80211_csa_finish(vif);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -394,7 +394,7 @@ mt7615_mcu_rx_radar_detected(struct mt76
|
||||
if (mt76_phy_dfs_state(mphy) < MT_DFS_STATE_CAC)
|
||||
return;
|
||||
|
||||
- ieee80211_radar_detected(mphy->hw, NULL);
|
||||
+ ieee80211_radar_detected(mphy->hw);
|
||||
dev->hw_pattern++;
|
||||
}
|
||||
|
||||
--- a/mt7615/usb.c
|
||||
+++ b/mt7615/usb.c
|
||||
@@ -79,7 +79,7 @@ static void mt7663u_copy(struct mt76_dev
|
||||
mutex_unlock(&usb->usb_ctrl_mtx);
|
||||
}
|
||||
|
||||
-static void mt7663u_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+static void mt7663u_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt7615_phy *phy = mt7615_hw_phy(hw);
|
||||
struct mt7615_dev *dev = hw->priv;
|
||||
--- a/mt76x0/pci.c
|
||||
+++ b/mt76x0/pci.c
|
||||
@@ -44,7 +44,7 @@ static void mt76x0e_stop_hw(struct mt76x
|
||||
mt76_clear(dev, MT_WPDMA_GLO_CFG, MT_WPDMA_GLO_CFG_RX_DMA_EN);
|
||||
}
|
||||
|
||||
-static void mt76x0e_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+static void mt76x0e_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt76x02_dev *dev = hw->priv;
|
||||
|
||||
@@ -59,10 +59,6 @@ mt76x0e_flush(struct ieee80211_hw *hw, s
|
||||
}
|
||||
|
||||
static const struct ieee80211_ops mt76x0e_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt76x02_tx,
|
||||
.start = mt76x0e_start,
|
||||
.stop = mt76x0e_stop,
|
||||
--- a/mt76x0/usb.c
|
||||
+++ b/mt76x0/usb.c
|
||||
@@ -77,7 +77,7 @@ static void mt76x0u_cleanup(struct mt76x
|
||||
mt76u_queues_deinit(&dev->mt76);
|
||||
}
|
||||
|
||||
-static void mt76x0u_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+static void mt76x0u_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt76x02_dev *dev = hw->priv;
|
||||
|
||||
@@ -118,10 +118,6 @@ static int mt76x0u_start(struct ieee8021
|
||||
}
|
||||
|
||||
static const struct ieee80211_ops mt76x0u_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt76x02_tx,
|
||||
.start = mt76x0u_start,
|
||||
.stop = mt76x0u_stop,
|
||||
--- a/mt76x02_dfs.c
|
||||
+++ b/mt76x02_dfs.c
|
||||
@@ -630,7 +630,7 @@ static void mt76x02_dfs_tasklet(struct t
|
||||
radar_detected = mt76x02_dfs_check_detection(dev);
|
||||
if (radar_detected) {
|
||||
/* sw detector rx radar pattern */
|
||||
- ieee80211_radar_detected(dev->mt76.hw, NULL);
|
||||
+ ieee80211_radar_detected(dev->mt76.hw);
|
||||
mt76x02_dfs_detector_reset(dev);
|
||||
|
||||
return;
|
||||
@@ -658,7 +658,7 @@ static void mt76x02_dfs_tasklet(struct t
|
||||
|
||||
/* hw detector rx radar pattern */
|
||||
dfs_pd->stats[i].hw_pattern++;
|
||||
- ieee80211_radar_detected(dev->mt76.hw, NULL);
|
||||
+ ieee80211_radar_detected(dev->mt76.hw);
|
||||
mt76x02_dfs_detector_reset(dev);
|
||||
|
||||
return;
|
||||
--- a/mt76x2/pci_main.c
|
||||
+++ b/mt76x2/pci_main.c
|
||||
@@ -24,7 +24,7 @@ mt76x2_start(struct ieee80211_hw *hw)
|
||||
}
|
||||
|
||||
static void
|
||||
-mt76x2_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+mt76x2_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt76x02_dev *dev = hw->priv;
|
||||
|
||||
@@ -121,10 +121,6 @@ static int mt76x2_set_antenna(struct iee
|
||||
}
|
||||
|
||||
const struct ieee80211_ops mt76x2_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt76x02_tx,
|
||||
.start = mt76x2_start,
|
||||
.stop = mt76x2_stop,
|
||||
--- a/mt76x2/usb_main.c
|
||||
+++ b/mt76x2/usb_main.c
|
||||
@@ -22,7 +22,7 @@ static int mt76x2u_start(struct ieee8021
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static void mt76x2u_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+static void mt76x2u_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt76x02_dev *dev = hw->priv;
|
||||
|
||||
@@ -88,10 +88,6 @@ mt76x2u_config(struct ieee80211_hw *hw,
|
||||
}
|
||||
|
||||
const struct ieee80211_ops mt76x2u_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt76x02_tx,
|
||||
.start = mt76x2u_start,
|
||||
.stop = mt76x2u_stop,
|
||||
--- a/mt7915/main.c
|
||||
+++ b/mt7915/main.c
|
||||
@@ -108,7 +108,7 @@
|
||||
@@ -108,7 +108,7 @@ static int mt7915_start(struct ieee80211
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -40,7 +214,7 @@
|
||||
{
|
||||
struct mt7915_dev *dev = mt7915_hw_dev(hw);
|
||||
struct mt7915_phy *phy = mt7915_hw_phy(hw);
|
||||
@@ -1697,10 +1697,6 @@
|
||||
@@ -1699,10 +1699,6 @@ mt7915_reconfig_complete(struct ieee8021
|
||||
}
|
||||
|
||||
const struct ieee80211_ops mt7915_ops = {
|
||||
@@ -53,7 +227,7 @@
|
||||
.stop = mt7915_stop,
|
||||
--- a/mt7915/mcu.c
|
||||
+++ b/mt7915/mcu.c
|
||||
@@ -232,7 +232,7 @@
|
||||
@@ -253,7 +253,7 @@ mt7915_mcu_csa_finish(void *priv, u8 *ma
|
||||
if (!vif->bss_conf.csa_active || vif->type == NL80211_IFTYPE_STATION)
|
||||
return;
|
||||
|
||||
@@ -62,7 +236,16 @@
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -335,7 +335,7 @@
|
||||
@@ -318,7 +318,7 @@ mt7915_mcu_rx_radar_detected(struct mt79
|
||||
&dev->rdd2_chandef,
|
||||
GFP_ATOMIC);
|
||||
else
|
||||
- ieee80211_radar_detected(mphy->hw, NULL);
|
||||
+ ieee80211_radar_detected(mphy->hw);
|
||||
dev->hw_pattern++;
|
||||
}
|
||||
|
||||
@@ -356,7 +356,7 @@ mt7915_mcu_cca_finish(void *priv, u8 *ma
|
||||
if (!vif->bss_conf.color_change_active || vif->type == NL80211_IFTYPE_STATION)
|
||||
return;
|
||||
|
||||
@@ -71,7 +254,7 @@
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -467,10 +467,10 @@
|
||||
@@ -488,10 +488,10 @@ static bool mt7915_check_he_obss_narrow_
|
||||
.tolerated = true,
|
||||
};
|
||||
|
||||
@@ -84,22 +267,9 @@
|
||||
mt7915_check_he_obss_narrow_bw_ru_iter,
|
||||
&iter_data);
|
||||
|
||||
--- a/mt792x_core.c
|
||||
+++ b/mt792x_core.c
|
||||
@@ -733,10 +733,6 @@
|
||||
if (!(*fw_features & MT792x_FW_CAP_CNM)) {
|
||||
ops->remain_on_channel = NULL;
|
||||
ops->cancel_remain_on_channel = NULL;
|
||||
- ops->add_chanctx = ieee80211_emulate_add_chanctx;
|
||||
- ops->remove_chanctx = ieee80211_emulate_remove_chanctx;
|
||||
- ops->change_chanctx = ieee80211_emulate_change_chanctx;
|
||||
- ops->switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx;
|
||||
ops->assign_vif_chanctx = NULL;
|
||||
ops->unassign_vif_chanctx = NULL;
|
||||
ops->mgd_prepare_tx = NULL;
|
||||
--- a/mt7921/main.c
|
||||
+++ b/mt7921/main.c
|
||||
@@ -268,7 +268,7 @@
|
||||
@@ -268,7 +268,7 @@ static int mt7921_start(struct ieee80211
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -108,7 +278,7 @@
|
||||
{
|
||||
struct mt792x_dev *dev = mt792x_hw_dev(hw);
|
||||
int err = 0;
|
||||
@@ -281,7 +281,7 @@
|
||||
@@ -281,7 +281,7 @@ static void mt7921_stop(struct ieee80211
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -117,51 +287,94 @@
|
||||
}
|
||||
|
||||
static int
|
||||
--- a/mt7996/main.c
|
||||
+++ b/mt7996/main.c
|
||||
@@ -93,7 +93,7 @@
|
||||
return ret;
|
||||
}
|
||||
--- a/mt7925/main.c
|
||||
+++ b/mt7925/main.c
|
||||
@@ -995,7 +995,7 @@ mt7925_mac_select_links(struct mt76_dev
|
||||
continue;
|
||||
|
||||
-static void mt7996_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+static void mt7996_stop(struct ieee80211_hw *hw)
|
||||
data[n_data].link_id = link_id;
|
||||
- data[n_data].band = link_conf->chanreq.oper.chan->band;
|
||||
+ data[n_data].band = link_conf->chandef.chan->band;
|
||||
n_data++;
|
||||
}
|
||||
rcu_read_unlock();
|
||||
@@ -1026,7 +1026,7 @@ mt7925_mac_set_links(struct mt76_dev *md
|
||||
struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;
|
||||
struct ieee80211_bss_conf *link_conf =
|
||||
mt792x_vif_to_bss_conf(vif, mvif->deflink_id);
|
||||
- struct cfg80211_chan_def *chandef = &link_conf->chanreq.oper;
|
||||
+ struct cfg80211_chan_def *chandef = &link_conf->chandef;
|
||||
enum nl80211_band band = chandef->chan->band, secondary_band;
|
||||
|
||||
u16 sel_links = mt7925_mac_select_links(mdev, vif);
|
||||
@@ -1036,7 +1036,7 @@ mt7925_mac_set_links(struct mt76_dev *md
|
||||
return;
|
||||
|
||||
link_conf = mt792x_vif_to_bss_conf(vif, secondary_link_id);
|
||||
- secondary_band = link_conf->chanreq.oper.chan->band;
|
||||
+ secondary_band = link_conf->chandef.chan->band;
|
||||
|
||||
if (band == NL80211_BAND_2GHZ ||
|
||||
(band == NL80211_BAND_5GHZ && secondary_band == NL80211_BAND_6GHZ)) {
|
||||
--- a/mt7925/mcu.c
|
||||
+++ b/mt7925/mcu.c
|
||||
@@ -1166,7 +1166,7 @@ int mt7925_mcu_set_mlo_roc(struct mt792x
|
||||
if (WARN_ON_ONCE(!link_conf))
|
||||
return -EPERM;
|
||||
|
||||
- links[i].chan = link_conf->chanreq.oper.chan;
|
||||
+ links[i].chan = link_conf->chandef.chan;
|
||||
if (WARN_ON_ONCE(!links[i].chan))
|
||||
return -EPERM;
|
||||
|
||||
@@ -1597,7 +1597,7 @@ mt7925_mcu_sta_phy_tlv(struct sk_buff *s
|
||||
link_conf = mt792x_vif_to_bss_conf(vif, link_sta->link_id);
|
||||
mconf = mt792x_vif_to_link(mvif, link_sta->link_id);
|
||||
chandef = mconf->mt76.ctx ? &mconf->mt76.ctx->def :
|
||||
- &link_conf->chanreq.oper;
|
||||
+ &link_conf->chandef;
|
||||
|
||||
tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_PHY, sizeof(*phy));
|
||||
phy = (struct sta_rec_phy *)tlv;
|
||||
@@ -1675,7 +1675,7 @@ mt7925_mcu_sta_rate_ctrl_tlv(struct sk_b
|
||||
link_conf = mt792x_vif_to_bss_conf(vif, link_sta->link_id);
|
||||
mconf = mt792x_vif_to_link(mvif, link_sta->link_id);
|
||||
chandef = mconf->mt76.ctx ? &mconf->mt76.ctx->def :
|
||||
- &link_conf->chanreq.oper;
|
||||
+ &link_conf->chandef;
|
||||
band = chandef->chan->band;
|
||||
|
||||
tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_RA, sizeof(*ra_info));
|
||||
@@ -2169,7 +2169,7 @@ void mt7925_mcu_bss_rlm_tlv(struct sk_bu
|
||||
struct ieee80211_chanctx_conf *ctx)
|
||||
{
|
||||
struct mt7996_dev *dev = mt7996_hw_dev(hw);
|
||||
struct mt7996_phy *phy = mt7996_hw_phy(hw);
|
||||
@@ -1448,10 +1448,6 @@
|
||||
#endif
|
||||
|
||||
const struct ieee80211_ops mt7996_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt7996_tx,
|
||||
.start = mt7996_start,
|
||||
.stop = mt7996_stop,
|
||||
--- a/mt7996/mcu.c
|
||||
+++ b/mt7996/mcu.c
|
||||
@@ -353,7 +353,7 @@
|
||||
if (!vif->bss_conf.csa_active || vif->type == NL80211_IFTYPE_STATION)
|
||||
return;
|
||||
|
||||
- ieee80211_csa_finish(vif, 0);
|
||||
+ ieee80211_csa_finish(vif);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -433,7 +433,7 @@
|
||||
if (!vif->bss_conf.color_change_active || vif->type == NL80211_IFTYPE_STATION)
|
||||
return;
|
||||
|
||||
- ieee80211_color_change_finish(vif, 0);
|
||||
+ ieee80211_color_change_finish(vif);
|
||||
}
|
||||
|
||||
static void
|
||||
struct cfg80211_chan_def *chandef = ctx ? &ctx->def :
|
||||
- &link_conf->chanreq.oper;
|
||||
+ &link_conf->chandef;
|
||||
int freq1 = chandef->center_freq1, freq2 = chandef->center_freq2;
|
||||
enum nl80211_band band = chandef->chan->band;
|
||||
struct bss_rlm_tlv *req;
|
||||
@@ -2309,7 +2309,7 @@ mt7925_mcu_bss_basic_tlv(struct sk_buff
|
||||
struct ieee80211_vif *vif = link_conf->vif;
|
||||
struct mt792x_bss_conf *mconf = mt792x_link_conf_to_mconf(link_conf);
|
||||
struct cfg80211_chan_def *chandef = ctx ? &ctx->def :
|
||||
- &link_conf->chanreq.oper;
|
||||
+ &link_conf->chandef;
|
||||
enum nl80211_band band = chandef->chan->band;
|
||||
struct mt76_connac_bss_basic_tlv *basic_req;
|
||||
struct mt792x_link_sta *mlink;
|
||||
@@ -2436,7 +2436,7 @@ mt7925_mcu_bss_bmc_tlv(struct sk_buff *s
|
||||
struct ieee80211_bss_conf *link_conf)
|
||||
{
|
||||
struct cfg80211_chan_def *chandef = ctx ? &ctx->def :
|
||||
- &link_conf->chanreq.oper;
|
||||
+ &link_conf->chandef;
|
||||
struct mt792x_bss_conf *mconf = mt792x_link_conf_to_mconf(link_conf);
|
||||
enum nl80211_band band = chandef->chan->band;
|
||||
struct mt76_vif *mvif = &mconf->mt76;
|
||||
--- a/mt792x.h
|
||||
+++ b/mt792x.h
|
||||
@@ -337,7 +337,7 @@
|
||||
@@ -337,7 +337,7 @@ static inline bool mt792x_dma_need_reini
|
||||
#define mt792x_mutex_release(dev) \
|
||||
mt76_connac_mutex_release(&(dev)->mt76, &(dev)->pm)
|
||||
|
||||
@@ -170,7 +383,7 @@
|
||||
void mt792x_pm_wake_work(struct work_struct *work);
|
||||
void mt792x_pm_power_save_work(struct work_struct *work);
|
||||
void mt792x_reset(struct mt76_dev *mdev);
|
||||
@@ -457,7 +457,7 @@
|
||||
@@ -457,7 +457,7 @@ void mt792xu_wr(struct mt76_dev *dev, u3
|
||||
u32 mt792xu_rmw(struct mt76_dev *dev, u32 addr, u32 mask, u32 val);
|
||||
void mt792xu_copy(struct mt76_dev *dev, u32 offset, const void *data, int len);
|
||||
void mt792xu_disconnect(struct usb_interface *usb_intf);
|
||||
@@ -181,7 +394,7 @@
|
||||
mt792x_skb_add_usb_sdio_hdr(struct mt792x_dev *dev, struct sk_buff *skb,
|
||||
--- a/mt792x_core.c
|
||||
+++ b/mt792x_core.c
|
||||
@@ -117,7 +117,7 @@
|
||||
@@ -117,7 +117,7 @@ void mt792x_tx(struct ieee80211_hw *hw,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt792x_tx);
|
||||
|
||||
@@ -190,9 +403,20 @@
|
||||
{
|
||||
struct mt792x_dev *dev = mt792x_hw_dev(hw);
|
||||
struct mt792x_phy *phy = mt792x_hw_phy(hw);
|
||||
@@ -733,10 +733,6 @@ mt792x_get_mac80211_ops(struct device *d
|
||||
if (!(*fw_features & MT792x_FW_CAP_CNM)) {
|
||||
ops->remain_on_channel = NULL;
|
||||
ops->cancel_remain_on_channel = NULL;
|
||||
- ops->add_chanctx = ieee80211_emulate_add_chanctx;
|
||||
- ops->remove_chanctx = ieee80211_emulate_remove_chanctx;
|
||||
- ops->change_chanctx = ieee80211_emulate_change_chanctx;
|
||||
- ops->switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx;
|
||||
ops->assign_vif_chanctx = NULL;
|
||||
ops->unassign_vif_chanctx = NULL;
|
||||
ops->mgd_prepare_tx = NULL;
|
||||
--- a/mt792x_usb.c
|
||||
+++ b/mt792x_usb.c
|
||||
@@ -285,12 +285,12 @@
|
||||
@@ -285,12 +285,12 @@ int mt792xu_init_reset(struct mt792x_dev
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt792xu_init_reset);
|
||||
|
||||
@@ -207,242 +431,65 @@
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mt792xu_stop);
|
||||
|
||||
--- a/mt7925/main.c
|
||||
+++ b/mt7925/main.c
|
||||
@@ -995,7 +995,7 @@
|
||||
continue;
|
||||
|
||||
data[n_data].link_id = link_id;
|
||||
- data[n_data].band = link_conf->chanreq.oper.chan->band;
|
||||
+ data[n_data].band = link_conf->chandef.chan->band;
|
||||
n_data++;
|
||||
}
|
||||
rcu_read_unlock();
|
||||
@@ -1026,7 +1026,7 @@
|
||||
struct mt792x_vif *mvif = (struct mt792x_vif *)vif->drv_priv;
|
||||
struct ieee80211_bss_conf *link_conf =
|
||||
mt792x_vif_to_bss_conf(vif, mvif->deflink_id);
|
||||
- struct cfg80211_chan_def *chandef = &link_conf->chanreq.oper;
|
||||
+ struct cfg80211_chan_def *chandef = &link_conf->chandef;
|
||||
enum nl80211_band band = chandef->chan->band, secondary_band;
|
||||
|
||||
u16 sel_links = mt7925_mac_select_links(mdev, vif);
|
||||
@@ -1036,7 +1036,7 @@
|
||||
return;
|
||||
|
||||
link_conf = mt792x_vif_to_bss_conf(vif, secondary_link_id);
|
||||
- secondary_band = link_conf->chanreq.oper.chan->band;
|
||||
+ secondary_band = link_conf->chandef.chan->band;
|
||||
|
||||
if (band == NL80211_BAND_2GHZ ||
|
||||
(band == NL80211_BAND_5GHZ && secondary_band == NL80211_BAND_6GHZ)) {
|
||||
--- a/mt7925/mcu.c
|
||||
+++ b/mt7925/mcu.c
|
||||
@@ -1166,7 +1166,7 @@
|
||||
if (WARN_ON_ONCE(!link_conf))
|
||||
return -EPERM;
|
||||
|
||||
- links[i].chan = link_conf->chanreq.oper.chan;
|
||||
+ links[i].chan = link_conf->chandef.chan;
|
||||
if (WARN_ON_ONCE(!links[i].chan))
|
||||
return -EPERM;
|
||||
|
||||
@@ -1597,7 +1597,7 @@
|
||||
link_conf = mt792x_vif_to_bss_conf(vif, link_sta->link_id);
|
||||
mconf = mt792x_vif_to_link(mvif, link_sta->link_id);
|
||||
chandef = mconf->mt76.ctx ? &mconf->mt76.ctx->def :
|
||||
- &link_conf->chanreq.oper;
|
||||
+ &link_conf->chandef;
|
||||
|
||||
tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_PHY, sizeof(*phy));
|
||||
phy = (struct sta_rec_phy *)tlv;
|
||||
@@ -1675,7 +1675,7 @@
|
||||
link_conf = mt792x_vif_to_bss_conf(vif, link_sta->link_id);
|
||||
mconf = mt792x_vif_to_link(mvif, link_sta->link_id);
|
||||
chandef = mconf->mt76.ctx ? &mconf->mt76.ctx->def :
|
||||
- &link_conf->chanreq.oper;
|
||||
+ &link_conf->chandef;
|
||||
band = chandef->chan->band;
|
||||
|
||||
tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_RA, sizeof(*ra_info));
|
||||
@@ -2169,7 +2169,7 @@
|
||||
struct ieee80211_chanctx_conf *ctx)
|
||||
{
|
||||
struct cfg80211_chan_def *chandef = ctx ? &ctx->def :
|
||||
- &link_conf->chanreq.oper;
|
||||
+ &link_conf->chandef;
|
||||
int freq1 = chandef->center_freq1, freq2 = chandef->center_freq2;
|
||||
enum nl80211_band band = chandef->chan->band;
|
||||
struct bss_rlm_tlv *req;
|
||||
@@ -2309,7 +2309,7 @@
|
||||
struct ieee80211_vif *vif = link_conf->vif;
|
||||
struct mt792x_bss_conf *mconf = mt792x_link_conf_to_mconf(link_conf);
|
||||
struct cfg80211_chan_def *chandef = ctx ? &ctx->def :
|
||||
- &link_conf->chanreq.oper;
|
||||
+ &link_conf->chandef;
|
||||
enum nl80211_band band = chandef->chan->band;
|
||||
struct mt76_connac_bss_basic_tlv *basic_req;
|
||||
struct mt792x_link_sta *mlink;
|
||||
@@ -2436,7 +2436,7 @@
|
||||
struct ieee80211_bss_conf *link_conf)
|
||||
{
|
||||
struct cfg80211_chan_def *chandef = ctx ? &ctx->def :
|
||||
- &link_conf->chanreq.oper;
|
||||
+ &link_conf->chandef;
|
||||
struct mt792x_bss_conf *mconf = mt792x_link_conf_to_mconf(link_conf);
|
||||
enum nl80211_band band = chandef->chan->band;
|
||||
struct mt76_vif *mvif = &mconf->mt76;
|
||||
--- a/mt76x0/pci.c
|
||||
+++ b/mt76x0/pci.c
|
||||
@@ -44,7 +44,7 @@
|
||||
mt76_clear(dev, MT_WPDMA_GLO_CFG, MT_WPDMA_GLO_CFG_RX_DMA_EN);
|
||||
}
|
||||
|
||||
-static void mt76x0e_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+static void mt76x0e_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt76x02_dev *dev = hw->priv;
|
||||
|
||||
@@ -59,10 +59,6 @@
|
||||
}
|
||||
|
||||
static const struct ieee80211_ops mt76x0e_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt76x02_tx,
|
||||
.start = mt76x0e_start,
|
||||
.stop = mt76x0e_stop,
|
||||
--- a/mt76x0/usb.c
|
||||
+++ b/mt76x0/usb.c
|
||||
@@ -77,7 +77,7 @@
|
||||
mt76u_queues_deinit(&dev->mt76);
|
||||
}
|
||||
|
||||
-static void mt76x0u_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+static void mt76x0u_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt76x02_dev *dev = hw->priv;
|
||||
|
||||
@@ -118,10 +118,6 @@
|
||||
}
|
||||
|
||||
static const struct ieee80211_ops mt76x0u_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt76x02_tx,
|
||||
.start = mt76x0u_start,
|
||||
.stop = mt76x0u_stop,
|
||||
--- a/mt76x2/pci_main.c
|
||||
+++ b/mt76x2/pci_main.c
|
||||
@@ -24,7 +24,7 @@
|
||||
}
|
||||
|
||||
static void
|
||||
-mt76x2_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+mt76x2_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt76x02_dev *dev = hw->priv;
|
||||
|
||||
@@ -121,10 +121,6 @@
|
||||
}
|
||||
|
||||
const struct ieee80211_ops mt76x2_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt76x02_tx,
|
||||
.start = mt76x2_start,
|
||||
.stop = mt76x2_stop,
|
||||
--- a/mt76x2/usb_main.c
|
||||
+++ b/mt76x2/usb_main.c
|
||||
@@ -22,7 +22,7 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static void mt76x2u_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+static void mt76x2u_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt76x02_dev *dev = hw->priv;
|
||||
|
||||
@@ -88,10 +88,6 @@
|
||||
}
|
||||
|
||||
const struct ieee80211_ops mt76x2u_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt76x02_tx,
|
||||
.start = mt76x2u_start,
|
||||
.stop = mt76x2u_stop,
|
||||
--- a/mt7603/main.c
|
||||
+++ b/mt7603/main.c
|
||||
@@ -23,7 +23,7 @@
|
||||
}
|
||||
|
||||
static void
|
||||
-mt7603_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+mt7603_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt7603_dev *dev = hw->priv;
|
||||
|
||||
@@ -694,10 +694,6 @@
|
||||
}
|
||||
|
||||
const struct ieee80211_ops mt7603_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt7603_tx,
|
||||
.start = mt7603_start,
|
||||
.stop = mt7603_stop,
|
||||
--- a/mt7615/main.c
|
||||
+++ b/mt7615/main.c
|
||||
@@ -91,7 +91,7 @@
|
||||
--- a/mt7996/main.c
|
||||
+++ b/mt7996/main.c
|
||||
@@ -93,7 +93,7 @@ static int mt7996_start(struct ieee80211
|
||||
return ret;
|
||||
}
|
||||
|
||||
-static void mt7615_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+static void mt7615_stop(struct ieee80211_hw *hw)
|
||||
-static void mt7996_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+static void mt7996_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt7615_dev *dev = mt7615_hw_dev(hw);
|
||||
struct mt7615_phy *phy = mt7615_hw_phy(hw);
|
||||
@@ -1313,10 +1313,6 @@
|
||||
#endif /* CONFIG_PM */
|
||||
struct mt7996_dev *dev = mt7996_hw_dev(hw);
|
||||
struct mt7996_phy *phy = mt7996_hw_phy(hw);
|
||||
@@ -1447,10 +1447,6 @@ mt7996_net_fill_forward_path(struct ieee
|
||||
#endif
|
||||
|
||||
const struct ieee80211_ops mt7615_ops = {
|
||||
const struct ieee80211_ops mt7996_ops = {
|
||||
- .add_chanctx = ieee80211_emulate_add_chanctx,
|
||||
- .remove_chanctx = ieee80211_emulate_remove_chanctx,
|
||||
- .change_chanctx = ieee80211_emulate_change_chanctx,
|
||||
- .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx,
|
||||
.tx = mt7615_tx,
|
||||
.start = mt7615_start,
|
||||
.stop = mt7615_stop,
|
||||
--- a/mt7615/mcu.c
|
||||
+++ b/mt7615/mcu.c
|
||||
@@ -353,7 +353,7 @@
|
||||
mt7615_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
|
||||
{
|
||||
if (vif->bss_conf.csa_active)
|
||||
- ieee80211_csa_finish(vif, 0);
|
||||
+ ieee80211_csa_finish(vif);
|
||||
.tx = mt7996_tx,
|
||||
.start = mt7996_start,
|
||||
.stop = mt7996_stop,
|
||||
--- a/mt7996/mcu.c
|
||||
+++ b/mt7996/mcu.c
|
||||
@@ -353,7 +353,7 @@ mt7996_mcu_csa_finish(void *priv, u8 *ma
|
||||
if (!vif->bss_conf.csa_active || vif->type == NL80211_IFTYPE_STATION)
|
||||
return;
|
||||
|
||||
- ieee80211_csa_finish(vif, 0);
|
||||
+ ieee80211_csa_finish(vif);
|
||||
}
|
||||
|
||||
static void
|
||||
--- a/mt7615/usb.c
|
||||
+++ b/mt7615/usb.c
|
||||
@@ -79,7 +79,7 @@
|
||||
mutex_unlock(&usb->usb_ctrl_mtx);
|
||||
@@ -383,7 +383,7 @@ mt7996_mcu_rx_radar_detected(struct mt79
|
||||
&dev->rdd2_chandef,
|
||||
GFP_ATOMIC);
|
||||
else
|
||||
- ieee80211_radar_detected(mphy->hw, NULL);
|
||||
+ ieee80211_radar_detected(mphy->hw);
|
||||
dev->hw_pattern++;
|
||||
}
|
||||
|
||||
-static void mt7663u_stop(struct ieee80211_hw *hw, bool suspend)
|
||||
+static void mt7663u_stop(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct mt7615_phy *phy = mt7615_hw_phy(hw);
|
||||
struct mt7615_dev *dev = hw->priv;
|
||||
@@ -433,7 +433,7 @@ mt7996_mcu_cca_finish(void *priv, u8 *ma
|
||||
if (!vif->bss_conf.color_change_active || vif->type == NL80211_IFTYPE_STATION)
|
||||
return;
|
||||
|
||||
- ieee80211_color_change_finish(vif, 0);
|
||||
+ ieee80211_color_change_finish(vif);
|
||||
}
|
||||
|
||||
static void
|
||||
--- a/tx.c
|
||||
+++ b/tx.c
|
||||
@@ -350,7 +350,7 @@ mt76_tx(struct mt76_phy *phy, struct iee
|
||||
info->hw_queue |= FIELD_PREP(MT_TX_HW_QUEUE_PHY, phy->band_idx);
|
||||
|
||||
if ((info->flags & IEEE80211_TX_CTL_TX_OFFCHAN) ||
|
||||
- (info->control.flags & IEEE80211_TX_CTRL_DONT_USE_RATE_MASK))
|
||||
+ (info->control.flags & IEEE80211_TX_CTRL_SCAN_TX))
|
||||
head = &wcid->tx_offchannel;
|
||||
else
|
||||
head = &wcid->tx_pending;
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,5 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
-EXTRA_CFLAGS += -Werror -DCONFIG_MT76_LEDS
|
||||
+EXTRA_CFLAGS += -Werror -Wno-unused-variable -DCONFIG_MT76_LEDS
|
||||
obj-m := mt76.o
|
||||
obj-$(CONFIG_MT76_USB) += mt76-usb.o
|
||||
obj-$(CONFIG_MT76_SDIO) += mt76-sdio.o
|
||||
--- a/mac80211.c
|
||||
+++ b/mac80211.c
|
||||
@@ -582,7 +582,11 @@ int mt76_create_page_pool(struct mt76_de
|
||||
|
||||
@@ -7,11 +7,9 @@ Subject: [PATCH] add tx_power check during eeprom loading for BE14
|
||||
mt7996/eeprom.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
|
||||
index 53dfac02f..a699668ca 100644
|
||||
--- a/mt7996/eeprom.c
|
||||
+++ b/mt7996/eeprom.c
|
||||
@@ -206,6 +206,13 @@ static int mt7996_eeprom_load(struct mt7996_dev *dev)
|
||||
@@ -206,6 +206,13 @@ static int mt7996_eeprom_load(struct mt7
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=adguardhome
|
||||
PKG_VERSION:=0.107.71
|
||||
PKG_VERSION:=0.107.72
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/AdguardTeam/AdGuardHome/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=f3dde5da6ba48270ac25bd2f501c4ce1af54ddeef93fcd84ef3a8270cec9539f
|
||||
PKG_HASH:=8f6d1cba4a7b7e986840f2a7dbaeb0dd9af51b60a49fa709cf30b9beba841c76
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/AdGuardHome-$(PKG_VERSION)
|
||||
|
||||
PKG_LICENSE:=GPL-3.0-only
|
||||
@@ -58,7 +58,7 @@ define Download/adguardhome-frontend
|
||||
URL:=https://github.com/AdguardTeam/AdGuardHome/releases/download/v$(PKG_VERSION)/
|
||||
URL_FILE:=AdGuardHome_frontend.tar.gz
|
||||
FILE:=$(FRONTEND_FILE)
|
||||
HASH:=51b229a5dff010c17bd8894bbf4291907e93708c366801e32181be7f37dd4488
|
||||
HASH:=bfdedb78b10269d2b263fcea658b24ee7597770be1ca635d56f6419f825dfecc
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
71a7ecb25823f2f28620f2f94dc9dd3a5c62c717
|
||||
1a14d2a2f8327c82a9b24f4fdaabae35e1619e94
|
||||
|
||||
+24
-24
@@ -27,8 +27,8 @@ require (
|
||||
github.com/sagernet/asc-go v0.0.0-20241217030726-d563060fe4e1
|
||||
github.com/sagernet/bbolt v0.0.0-20231014093535-ea5cb2fe9f0a
|
||||
github.com/sagernet/cors v1.2.1
|
||||
github.com/sagernet/cronet-go v0.0.0-20260217163133-71a7ecb25823
|
||||
github.com/sagernet/cronet-go/all v0.0.0-20260217163133-71a7ecb25823
|
||||
github.com/sagernet/cronet-go v0.0.0-20260218135011-341ab5a7e12b
|
||||
github.com/sagernet/cronet-go/all v0.0.0-20260218135011-341ab5a7e12b
|
||||
github.com/sagernet/fswatch v0.1.1
|
||||
github.com/sagernet/gomobile v0.1.11
|
||||
github.com/sagernet/gvisor v0.0.0-20250811.0-sing-box-mod.1
|
||||
@@ -105,28 +105,28 @@ require (
|
||||
github.com/prometheus-community/pro-bing v0.4.0 // indirect
|
||||
github.com/quic-go/qpack v0.6.0 // indirect
|
||||
github.com/safchain/ethtool v0.3.0 // indirect
|
||||
github.com/sagernet/cronet-go/lib/android_386 v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/android_amd64 v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/android_arm v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/android_arm64 v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/darwin_amd64 v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/darwin_arm64 v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/ios_amd64_simulator v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/ios_arm64 v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/ios_arm64_simulator v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_386 v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_386_musl v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_amd64 v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_amd64_musl v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_arm v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_arm64 v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_arm64_musl v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_arm_musl v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/tvos_amd64_simulator v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/tvos_arm64 v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/tvos_arm64_simulator v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/windows_amd64 v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/windows_arm64 v0.0.0-20260217162658-2bfd08238a86 // indirect
|
||||
github.com/sagernet/cronet-go/lib/android_386 v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/android_amd64 v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/android_arm v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/android_arm64 v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/darwin_amd64 v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/darwin_arm64 v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/ios_amd64_simulator v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/ios_arm64 v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/ios_arm64_simulator v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_386 v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_386_musl v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_amd64 v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_amd64_musl v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_arm v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_arm64 v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_arm64_musl v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/linux_arm_musl v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/tvos_amd64_simulator v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/tvos_arm64 v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/tvos_arm64_simulator v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/windows_amd64 v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/cronet-go/lib/windows_arm64 v0.0.0-20260218134507-0233d9d13e55 // indirect
|
||||
github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a // indirect
|
||||
github.com/sagernet/nftables v0.3.0-beta.4 // indirect
|
||||
github.com/spf13/pflag v1.0.9 // indirect
|
||||
|
||||
+48
-48
@@ -150,54 +150,54 @@ github.com/sagernet/bbolt v0.0.0-20231014093535-ea5cb2fe9f0a h1:+NkI2670SQpQWvkk
|
||||
github.com/sagernet/bbolt v0.0.0-20231014093535-ea5cb2fe9f0a/go.mod h1:63s7jpZqcDAIpj8oI/1v4Izok+npJOHACFCU6+huCkM=
|
||||
github.com/sagernet/cors v1.2.1 h1:Cv5Z8y9YSD6Gm+qSpNrL3LO4lD3eQVvbFYJSG7JCMHQ=
|
||||
github.com/sagernet/cors v1.2.1/go.mod h1:O64VyOjjhrkLmQIjF4KGRrJO/5dVXFdpEmCW/eISRAI=
|
||||
github.com/sagernet/cronet-go v0.0.0-20260217163133-71a7ecb25823 h1:9XbfvBCk5ELnJ3eCLwXpJM0CDBba0ZHJOfmFyhNFCow=
|
||||
github.com/sagernet/cronet-go v0.0.0-20260217163133-71a7ecb25823/go.mod h1:hwFHBEjjthyEquDULbr4c4ucMedp8Drb6Jvm2kt/0Bw=
|
||||
github.com/sagernet/cronet-go/all v0.0.0-20260217163133-71a7ecb25823 h1:WxH8uD7xRmmvGb4lRrr2E7NMCXtti2+pQTnUt61BcmY=
|
||||
github.com/sagernet/cronet-go/all v0.0.0-20260217163133-71a7ecb25823/go.mod h1:eQ7M+vx5EvWIxwhpOowy2uUIKeJrKKgX0rgsV9RK+ug=
|
||||
github.com/sagernet/cronet-go/lib/android_386 v0.0.0-20260217162658-2bfd08238a86 h1:jkUKjlIJjUGpYbwhZgjEnAe/IJAtnszMH1T08g+DuaM=
|
||||
github.com/sagernet/cronet-go/lib/android_386 v0.0.0-20260217162658-2bfd08238a86/go.mod h1:XXDwdjX/T8xftoeJxQmbBoYXZp8MAPFR2CwbFuTpEtw=
|
||||
github.com/sagernet/cronet-go/lib/android_amd64 v0.0.0-20260217162658-2bfd08238a86 h1:ypY9a/AfaGhPGVYdoJ/uQOq0oK8BEI5GPrVfwqvyHrg=
|
||||
github.com/sagernet/cronet-go/lib/android_amd64 v0.0.0-20260217162658-2bfd08238a86/go.mod h1:iNiUGoLtnr8/JTuVNj7XJbmpOAp2C6+B81KDrPxwaZM=
|
||||
github.com/sagernet/cronet-go/lib/android_arm v0.0.0-20260217162658-2bfd08238a86 h1:xue0tra/qcrCtxcSng4WYS4q01Dnsww9u6XSoVJA4sg=
|
||||
github.com/sagernet/cronet-go/lib/android_arm v0.0.0-20260217162658-2bfd08238a86/go.mod h1:19ILNUOGIzRdOqa2mq+iY0JoHxuieB7/lnjYeaA2vEc=
|
||||
github.com/sagernet/cronet-go/lib/android_arm64 v0.0.0-20260217162658-2bfd08238a86 h1:1RwX26i/6tPMG5/xty16eD7W6gBL1vcOTeZ6hEN6bY4=
|
||||
github.com/sagernet/cronet-go/lib/android_arm64 v0.0.0-20260217162658-2bfd08238a86/go.mod h1:JxzGyQf94Cr6sBShKqODGDyRUlESfJK/Njcz9Lz6qMQ=
|
||||
github.com/sagernet/cronet-go/lib/darwin_amd64 v0.0.0-20260217162658-2bfd08238a86 h1:51GT1OcjjWGlTQZJC5GASpOxGHbr8PVs+wJo7znMqjQ=
|
||||
github.com/sagernet/cronet-go/lib/darwin_amd64 v0.0.0-20260217162658-2bfd08238a86/go.mod h1:KN+9T9TBycGOLzmKU4QdcHAJEj6Nlx48ifnlTvvHMvs=
|
||||
github.com/sagernet/cronet-go/lib/darwin_arm64 v0.0.0-20260217162658-2bfd08238a86 h1:abnUJ2RSsvhfqL2rAwGL9wt9obNQttOOKVRa+d/lzX0=
|
||||
github.com/sagernet/cronet-go/lib/darwin_arm64 v0.0.0-20260217162658-2bfd08238a86/go.mod h1:kojvtUc29KKnk8hs2QIANynVR59921SnGWA9kXohHc0=
|
||||
github.com/sagernet/cronet-go/lib/ios_amd64_simulator v0.0.0-20260217162658-2bfd08238a86 h1:qhrdVZgYGaRuwUXKxYWyXxiM3+upyX0vXbVwvfqsPl4=
|
||||
github.com/sagernet/cronet-go/lib/ios_amd64_simulator v0.0.0-20260217162658-2bfd08238a86/go.mod h1:hkQzRE5GDbaH1/ioqYh0Taho4L6i0yLRCVEZ5xHz5M0=
|
||||
github.com/sagernet/cronet-go/lib/ios_arm64 v0.0.0-20260217162658-2bfd08238a86 h1:SemvxwP5Sqxg2V9kcM/ERlXv7qbiNDJXb7gOBmlJ1o0=
|
||||
github.com/sagernet/cronet-go/lib/ios_arm64 v0.0.0-20260217162658-2bfd08238a86/go.mod h1:tzVJFTOm66UxLxy6K0ZN5Ic2PC79e+sKKnt+V9puEa4=
|
||||
github.com/sagernet/cronet-go/lib/ios_arm64_simulator v0.0.0-20260217162658-2bfd08238a86 h1:v88k4gE/Nr53Cmx/F3fz+k7izllcnZIg2Y4f7dSkoRE=
|
||||
github.com/sagernet/cronet-go/lib/ios_arm64_simulator v0.0.0-20260217162658-2bfd08238a86/go.mod h1:M/pN6m3j0HFU6/y83n0HU6GLYys3tYdr/xTE8hVEGMo=
|
||||
github.com/sagernet/cronet-go/lib/linux_386 v0.0.0-20260217162658-2bfd08238a86 h1:HpAanCJjJwoVandt54XjU6LhH1sVgO51H9aVh4RAt3c=
|
||||
github.com/sagernet/cronet-go/lib/linux_386 v0.0.0-20260217162658-2bfd08238a86/go.mod h1:cGh5hO6eljCo6KMQ/Cel8Xgq4+etL0awZLRBDVG1EZQ=
|
||||
github.com/sagernet/cronet-go/lib/linux_386_musl v0.0.0-20260217162658-2bfd08238a86 h1:5LZxdx4X+wG5t8ESxjV41UcxoUM2rS48aprnkY+nTdY=
|
||||
github.com/sagernet/cronet-go/lib/linux_386_musl v0.0.0-20260217162658-2bfd08238a86/go.mod h1:JFE0/cxaKkx0wqPMZU7MgaplQlU0zudv82dROJjClKU=
|
||||
github.com/sagernet/cronet-go/lib/linux_amd64 v0.0.0-20260217162658-2bfd08238a86 h1:Pj/ik7Ux5jWEhUiiavILNwO2k4A4KmijJ2yqDEnxJuY=
|
||||
github.com/sagernet/cronet-go/lib/linux_amd64 v0.0.0-20260217162658-2bfd08238a86/go.mod h1:vU8VftFeSt7fURCa3JXD6+k6ss1YAX+idQjPvHmJ2tI=
|
||||
github.com/sagernet/cronet-go/lib/linux_amd64_musl v0.0.0-20260217162658-2bfd08238a86 h1:gDlkdfFVjpWmUfVDXLmRkvfOt7UM9M9CNKJLJWfH4oI=
|
||||
github.com/sagernet/cronet-go/lib/linux_amd64_musl v0.0.0-20260217162658-2bfd08238a86/go.mod h1:vCe4OUuL+XOUge9v3MyTD45BnuAXiH+DkjN9quDXJzQ=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm v0.0.0-20260217162658-2bfd08238a86 h1:5cgey8hMXnc7oSD6h4qJtGfBSPxCXMoq3vsiuD3lgsE=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm v0.0.0-20260217162658-2bfd08238a86/go.mod h1:w9amBWrvjtohQzBGCKJ7LCh22LhTIJs4sE7cYaKQzM0=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm64 v0.0.0-20260217162658-2bfd08238a86 h1:qxl5A0k37PBhCZPkswKFN/Ig2PMYCm/9sCFT6e/gRjc=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm64 v0.0.0-20260217162658-2bfd08238a86/go.mod h1:TqlsFtcYS/etTeck46kHBeT8Le0Igw1Q/AV88UnMS3s=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm64_musl v0.0.0-20260217162658-2bfd08238a86 h1:5tKDHiM9rHIpnTm4tIqOrcjWZ9SrU9RTgPLCVy9C1Io=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm64_musl v0.0.0-20260217162658-2bfd08238a86/go.mod h1:B6Qd0vys8sv9OKVRN6J9RqDzYRGE938Fb2zrYdBDyTQ=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm_musl v0.0.0-20260217162658-2bfd08238a86 h1:o5hG0iP/xkGx+MkOJwUQp4nkg2Qhz8KIZuON2VcdF4Y=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm_musl v0.0.0-20260217162658-2bfd08238a86/go.mod h1:3tXMMFY7AHugOVBZ5Al7cL7JKsnFOe5bMVr0hZPk3ow=
|
||||
github.com/sagernet/cronet-go/lib/tvos_amd64_simulator v0.0.0-20260217162658-2bfd08238a86 h1:ONOmm7KXwv9ArBdw2ozHPcqiiQH5Z2dhE78204iLB5g=
|
||||
github.com/sagernet/cronet-go/lib/tvos_amd64_simulator v0.0.0-20260217162658-2bfd08238a86/go.mod h1:aaX0YGl8nhGmfRWI8bc3BtDjY8Vzx6O0cS/e1uqxDq4=
|
||||
github.com/sagernet/cronet-go/lib/tvos_arm64 v0.0.0-20260217162658-2bfd08238a86 h1:9kPYonCM0Jly0vDGWeCM5+rwtujgXjkhimTqDGKhVpo=
|
||||
github.com/sagernet/cronet-go/lib/tvos_arm64 v0.0.0-20260217162658-2bfd08238a86/go.mod h1:EdzMKA96xITc42QEI+ct4SwqX8Dn3ltKK8wzdkLWpSc=
|
||||
github.com/sagernet/cronet-go/lib/tvos_arm64_simulator v0.0.0-20260217162658-2bfd08238a86 h1:7j3jZ260pELBZ9F/3pKPiuVlQhJdCqjA3lRWGtaeT14=
|
||||
github.com/sagernet/cronet-go/lib/tvos_arm64_simulator v0.0.0-20260217162658-2bfd08238a86/go.mod h1:qix4kv1TTAJ5tY4lJ9vjhe9EY4mM+B7H5giOhbxDVcc=
|
||||
github.com/sagernet/cronet-go/lib/windows_amd64 v0.0.0-20260217162658-2bfd08238a86 h1:/2Ks+eLOFXurh5bF3xPbdhQ+rHYkG27RhGORNSDDHjU=
|
||||
github.com/sagernet/cronet-go/lib/windows_amd64 v0.0.0-20260217162658-2bfd08238a86/go.mod h1:lm9w/oCCRyBiUa3G8lDQTT8x/ONUvgVR2iV9fVzUZB8=
|
||||
github.com/sagernet/cronet-go/lib/windows_arm64 v0.0.0-20260217162658-2bfd08238a86 h1:6YzyCGxKTFBOU9PXW2kYLjfxFTwbv0vwYVDTRcNTe3M=
|
||||
github.com/sagernet/cronet-go/lib/windows_arm64 v0.0.0-20260217162658-2bfd08238a86/go.mod h1:n34YyLgapgjWdKa0IoeczjAFCwD3/dxbsH5sucKw0bw=
|
||||
github.com/sagernet/cronet-go v0.0.0-20260218135011-341ab5a7e12b h1:C+VmtHpvMdH+lItwBvJmIqrBr3+xxNRiCs+pIRYR4iU=
|
||||
github.com/sagernet/cronet-go v0.0.0-20260218135011-341ab5a7e12b/go.mod h1:hwFHBEjjthyEquDULbr4c4ucMedp8Drb6Jvm2kt/0Bw=
|
||||
github.com/sagernet/cronet-go/all v0.0.0-20260218135011-341ab5a7e12b h1:ZV95cJT0nnrxfldjJ377hKpqHYMtPAsq4r/UIgp7/Ws=
|
||||
github.com/sagernet/cronet-go/all v0.0.0-20260218135011-341ab5a7e12b/go.mod h1:O9ntqK/rqU71lkDTyIw3I3lShG85/Vxd3Q+eiQkbJtc=
|
||||
github.com/sagernet/cronet-go/lib/android_386 v0.0.0-20260218134507-0233d9d13e55 h1:RPlT6blVhQQ+AUztnAx/JCOGCdR1H1UsAJ2Eg9t7vHs=
|
||||
github.com/sagernet/cronet-go/lib/android_386 v0.0.0-20260218134507-0233d9d13e55/go.mod h1:XXDwdjX/T8xftoeJxQmbBoYXZp8MAPFR2CwbFuTpEtw=
|
||||
github.com/sagernet/cronet-go/lib/android_amd64 v0.0.0-20260218134507-0233d9d13e55 h1:F6r8Nnzm6J8IZ+goPGr8yhQ0yPQFSUwQ/WVZyT78NZ8=
|
||||
github.com/sagernet/cronet-go/lib/android_amd64 v0.0.0-20260218134507-0233d9d13e55/go.mod h1:iNiUGoLtnr8/JTuVNj7XJbmpOAp2C6+B81KDrPxwaZM=
|
||||
github.com/sagernet/cronet-go/lib/android_arm v0.0.0-20260218134507-0233d9d13e55 h1:qVhvEmTmaaVriSklO0WSOa5k41nxItuZvxhdz3y+4LY=
|
||||
github.com/sagernet/cronet-go/lib/android_arm v0.0.0-20260218134507-0233d9d13e55/go.mod h1:19ILNUOGIzRdOqa2mq+iY0JoHxuieB7/lnjYeaA2vEc=
|
||||
github.com/sagernet/cronet-go/lib/android_arm64 v0.0.0-20260218134507-0233d9d13e55 h1:G4qICXcO/B8VeTTV+KlNo007zEkEjLDZfSTb1yDgHVY=
|
||||
github.com/sagernet/cronet-go/lib/android_arm64 v0.0.0-20260218134507-0233d9d13e55/go.mod h1:JxzGyQf94Cr6sBShKqODGDyRUlESfJK/Njcz9Lz6qMQ=
|
||||
github.com/sagernet/cronet-go/lib/darwin_amd64 v0.0.0-20260218134507-0233d9d13e55 h1:O63Cn7qxNqfIvmgIFy9ZvKqusc9QP/XZXOadj21N5Eo=
|
||||
github.com/sagernet/cronet-go/lib/darwin_amd64 v0.0.0-20260218134507-0233d9d13e55/go.mod h1:KN+9T9TBycGOLzmKU4QdcHAJEj6Nlx48ifnlTvvHMvs=
|
||||
github.com/sagernet/cronet-go/lib/darwin_arm64 v0.0.0-20260218134507-0233d9d13e55 h1:IlqW6FBpDlYxRHVGke4/A9/b4oEGTvPqyM6buqAu9RU=
|
||||
github.com/sagernet/cronet-go/lib/darwin_arm64 v0.0.0-20260218134507-0233d9d13e55/go.mod h1:kojvtUc29KKnk8hs2QIANynVR59921SnGWA9kXohHc0=
|
||||
github.com/sagernet/cronet-go/lib/ios_amd64_simulator v0.0.0-20260218134507-0233d9d13e55 h1:4viN3DO5LHz/24kbIfx1sTMQplkZg0FBBpwxmc9QiUY=
|
||||
github.com/sagernet/cronet-go/lib/ios_amd64_simulator v0.0.0-20260218134507-0233d9d13e55/go.mod h1:hkQzRE5GDbaH1/ioqYh0Taho4L6i0yLRCVEZ5xHz5M0=
|
||||
github.com/sagernet/cronet-go/lib/ios_arm64 v0.0.0-20260218134507-0233d9d13e55 h1:6wcoqtMnDbfMCnmhld+HeEuz7LcDLQo4YTYEAkJCKCU=
|
||||
github.com/sagernet/cronet-go/lib/ios_arm64 v0.0.0-20260218134507-0233d9d13e55/go.mod h1:tzVJFTOm66UxLxy6K0ZN5Ic2PC79e+sKKnt+V9puEa4=
|
||||
github.com/sagernet/cronet-go/lib/ios_arm64_simulator v0.0.0-20260218134507-0233d9d13e55 h1:CUM2txeTIsBucTNXaKNpCapXp/BnYIQVnJRiYKtyZRw=
|
||||
github.com/sagernet/cronet-go/lib/ios_arm64_simulator v0.0.0-20260218134507-0233d9d13e55/go.mod h1:M/pN6m3j0HFU6/y83n0HU6GLYys3tYdr/xTE8hVEGMo=
|
||||
github.com/sagernet/cronet-go/lib/linux_386 v0.0.0-20260218134507-0233d9d13e55 h1:RDDuVWP8Jm/9u/EH7af5GvCQRQuT5vA0mxNvnoWTe4E=
|
||||
github.com/sagernet/cronet-go/lib/linux_386 v0.0.0-20260218134507-0233d9d13e55/go.mod h1:cGh5hO6eljCo6KMQ/Cel8Xgq4+etL0awZLRBDVG1EZQ=
|
||||
github.com/sagernet/cronet-go/lib/linux_386_musl v0.0.0-20260218134507-0233d9d13e55 h1:hJZ3MMglbom0vg/5kNHawipJfWyZIV1lvATpVAVwwQ0=
|
||||
github.com/sagernet/cronet-go/lib/linux_386_musl v0.0.0-20260218134507-0233d9d13e55/go.mod h1:JFE0/cxaKkx0wqPMZU7MgaplQlU0zudv82dROJjClKU=
|
||||
github.com/sagernet/cronet-go/lib/linux_amd64 v0.0.0-20260218134507-0233d9d13e55 h1:wST2ZH1xSXYjI/0HySDVjn/eo55BkFH9OSqwzSZ+WkQ=
|
||||
github.com/sagernet/cronet-go/lib/linux_amd64 v0.0.0-20260218134507-0233d9d13e55/go.mod h1:vU8VftFeSt7fURCa3JXD6+k6ss1YAX+idQjPvHmJ2tI=
|
||||
github.com/sagernet/cronet-go/lib/linux_amd64_musl v0.0.0-20260218134507-0233d9d13e55 h1:BIm7F6FmsqsViVFFNmW89UYZEWi1pYcDO7l9odfDwzw=
|
||||
github.com/sagernet/cronet-go/lib/linux_amd64_musl v0.0.0-20260218134507-0233d9d13e55/go.mod h1:vCe4OUuL+XOUge9v3MyTD45BnuAXiH+DkjN9quDXJzQ=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm v0.0.0-20260218134507-0233d9d13e55 h1:Iv3xWMuhpZjKoHDTMGfkK+W4cjizkROgp9o72/yoGgg=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm v0.0.0-20260218134507-0233d9d13e55/go.mod h1:w9amBWrvjtohQzBGCKJ7LCh22LhTIJs4sE7cYaKQzM0=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm64 v0.0.0-20260218134507-0233d9d13e55 h1:safWOBgqIOgQhqFwdwaqs5jfDoCyas0WefbZT9EAXkE=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm64 v0.0.0-20260218134507-0233d9d13e55/go.mod h1:TqlsFtcYS/etTeck46kHBeT8Le0Igw1Q/AV88UnMS3s=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm64_musl v0.0.0-20260218134507-0233d9d13e55 h1:wt0ppRaCchFk4mvqG0ssxO9ghzMWERubZv4aFWW8olI=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm64_musl v0.0.0-20260218134507-0233d9d13e55/go.mod h1:B6Qd0vys8sv9OKVRN6J9RqDzYRGE938Fb2zrYdBDyTQ=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm_musl v0.0.0-20260218134507-0233d9d13e55 h1:TOs3sFXM+xBqbfVtrPuGUwZX6wogvr/4pSQJdJ/VtP0=
|
||||
github.com/sagernet/cronet-go/lib/linux_arm_musl v0.0.0-20260218134507-0233d9d13e55/go.mod h1:3tXMMFY7AHugOVBZ5Al7cL7JKsnFOe5bMVr0hZPk3ow=
|
||||
github.com/sagernet/cronet-go/lib/tvos_amd64_simulator v0.0.0-20260218134507-0233d9d13e55 h1:hP78IIYoRag8taThZC0GuBIR13MKa+/LI+zf1xt1UUQ=
|
||||
github.com/sagernet/cronet-go/lib/tvos_amd64_simulator v0.0.0-20260218134507-0233d9d13e55/go.mod h1:aaX0YGl8nhGmfRWI8bc3BtDjY8Vzx6O0cS/e1uqxDq4=
|
||||
github.com/sagernet/cronet-go/lib/tvos_arm64 v0.0.0-20260218134507-0233d9d13e55 h1:A+NgQiSyPOeTaWU5J3OH1kij7TbMi+jnsIT9ulD0uwA=
|
||||
github.com/sagernet/cronet-go/lib/tvos_arm64 v0.0.0-20260218134507-0233d9d13e55/go.mod h1:EdzMKA96xITc42QEI+ct4SwqX8Dn3ltKK8wzdkLWpSc=
|
||||
github.com/sagernet/cronet-go/lib/tvos_arm64_simulator v0.0.0-20260218134507-0233d9d13e55 h1:uVVX7cfmwTIdqX7lePivz0jNhiU1FXp+WTNOXG77US4=
|
||||
github.com/sagernet/cronet-go/lib/tvos_arm64_simulator v0.0.0-20260218134507-0233d9d13e55/go.mod h1:qix4kv1TTAJ5tY4lJ9vjhe9EY4mM+B7H5giOhbxDVcc=
|
||||
github.com/sagernet/cronet-go/lib/windows_amd64 v0.0.0-20260218134507-0233d9d13e55 h1:snnlt/MQ0lCurzVyU7Dkk9wggYXfKX5r+L4tdZl6F2M=
|
||||
github.com/sagernet/cronet-go/lib/windows_amd64 v0.0.0-20260218134507-0233d9d13e55/go.mod h1:lm9w/oCCRyBiUa3G8lDQTT8x/ONUvgVR2iV9fVzUZB8=
|
||||
github.com/sagernet/cronet-go/lib/windows_arm64 v0.0.0-20260218134507-0233d9d13e55 h1:cXGxX2EbTB9Ovfl5cr/0ZBhaXnLNkKdWAhkfACbrxnU=
|
||||
github.com/sagernet/cronet-go/lib/windows_arm64 v0.0.0-20260218134507-0233d9d13e55/go.mod h1:n34YyLgapgjWdKa0IoeczjAFCwD3/dxbsH5sucKw0bw=
|
||||
github.com/sagernet/fswatch v0.1.1 h1:YqID+93B7VRfqIH3PArW/XpJv5H4OLEVWDfProGoRQs=
|
||||
github.com/sagernet/fswatch v0.1.1/go.mod h1:nz85laH0mkQqJfaOrqPpkwtU1znMFNVTpT/5oRsVz/o=
|
||||
github.com/sagernet/gomobile v0.1.11 h1:niMQAspvuThup5eRZQpsGcbM76zAvnsGr7RUIpnQMDQ=
|
||||
|
||||
@@ -21,13 +21,13 @@ define Download/geoip
|
||||
HASH:=838ab094bc01b9bafc849ce70c6f439dcb158d0c0dd41441ddb3c38d4d9ef563
|
||||
endef
|
||||
|
||||
GEOSITE_VER:=20260217131649
|
||||
GEOSITE_VER:=20260219092429
|
||||
GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER)
|
||||
define Download/geosite
|
||||
URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/
|
||||
URL_FILE:=dlc.dat
|
||||
FILE:=$(GEOSITE_FILE)
|
||||
HASH:=0ad1ae4f118efdcabf2d8127014914f02562408f74c6bb3b035e8c2fc21c8542
|
||||
HASH:=46dd30312e887a81c2da258cd027664e1bc447612aeaf5f8f62f737cd37f74fd
|
||||
endef
|
||||
|
||||
GEOSITE_IRAN_VER:=202602160057
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=v2ray-plugin
|
||||
PKG_VERSION:=5.44.1
|
||||
PKG_VERSION:=5.45.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=b8b00f576744716b1ab0c461a45b2b5d4195b763a49d296fd2ddfcf23db87fe5
|
||||
PKG_HASH:=d1ae7cb412b4b58ea74c2e0126df068cc9281e46248540acc5a7ff42a44eea04
|
||||
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
+2
-2
@@ -1864,13 +1864,13 @@ The following extractors use this feature:
|
||||
* `player_skip`: Skip some network requests that are generally needed for robust extraction. One or more of `configs` (skip client configs), `webpage` (skip initial webpage), `js` (skip js player), `initial_data` (skip initial data/next ep request). While these options can help reduce the number of requests needed or avoid some rate-limiting, they could cause issues such as missing formats or metadata. See [#860](https://github.com/yt-dlp/yt-dlp/pull/860) and [#12826](https://github.com/yt-dlp/yt-dlp/issues/12826) for more details
|
||||
* `webpage_skip`: Skip extraction of embedded webpage data. One or both of `player_response`, `initial_data`. These options are for testing purposes and don't skip any network requests
|
||||
* `player_params`: YouTube player parameters to use for player requests. Will overwrite any default ones set by yt-dlp.
|
||||
* `player_js_variant`: The player javascript variant to use for n/sig deciphering. The known variants are: `main`, `tcc`, `tce`, `es5`, `es6`, `tv`, `tv_es6`, `phone`. The default is `tv`, and the others are for debugging purposes. You can use `actual` to go with what is prescribed by the site
|
||||
* `player_js_variant`: The player javascript variant to use for n/sig deciphering. The known variants are: `main`, `tcc`, `tce`, `es5`, `es6`, `es6_tcc`, `es6_tce`, `tv`, `tv_es6`, `phone`, `house`. The default is `tv`, and the others are for debugging purposes. You can use `actual` to go with what is prescribed by the site
|
||||
* `player_js_version`: The player javascript version to use for n/sig deciphering, in the format of `signature_timestamp@hash` (e.g. `20348@0004de42`). The default is to use what is prescribed by the site, and can be selected with `actual`
|
||||
* `comment_sort`: `top` or `new` (default) - choose comment sorting mode (on YouTube's side)
|
||||
* `max_comments`: Limit the amount of comments to gather. Comma-separated list of integers representing `max-comments,max-parents,max-replies,max-replies-per-thread,max-depth`. Default is `all,all,all,all,all`
|
||||
* A `max-depth` value of `1` will discard all replies, regardless of the `max-replies` or `max-replies-per-thread` values given
|
||||
* E.g. `all,all,1000,10,2` will get a maximum of 1000 replies total, with up to 10 replies per thread, and only 2 levels of depth (i.e. top-level comments plus their immediate replies). `1000,all,100` will get a maximum of 1000 comments, with a maximum of 100 replies total
|
||||
* `formats`: Change the types of formats to return. `dashy` (convert HTTP to DASH), `duplicate` (identical content but different URLs or protocol; includes `dashy`), `incomplete` (cannot be downloaded completely - live dash and post-live m3u8), `missing_pot` (include formats that require a PO Token but are missing one)
|
||||
* `formats`: Change the types of formats to return. `dashy` (convert HTTP to DASH), `duplicate` (identical content but different URLs or protocol; includes `dashy`), `incomplete` (cannot be downloaded completely - live dash, live adaptive https, and post-live m3u8), `missing_pot` (include formats that require a PO Token but are missing one)
|
||||
* `innertube_host`: Innertube API host to use for all API requests; e.g. `studio.youtube.com`, `youtubei.googleapis.com`. Note that cookies exported from one subdomain will not work on others
|
||||
* `innertube_key`: Innertube API key to use for all API requests. By default, no API key is used
|
||||
* `raise_incomplete_data`: `Incomplete Data Received` raises an error instead of reporting a warning
|
||||
|
||||
@@ -33,9 +33,12 @@ class Variant(enum.Enum):
|
||||
tce = 'player_ias_tce.vflset/en_US/base.js'
|
||||
es5 = 'player_es5.vflset/en_US/base.js'
|
||||
es6 = 'player_es6.vflset/en_US/base.js'
|
||||
es6_tcc = 'player_es6_tcc.vflset/en_US/base.js'
|
||||
es6_tce = 'player_es6_tce.vflset/en_US/base.js'
|
||||
tv = 'tv-player-ias.vflset/tv-player-ias.js'
|
||||
tv_es6 = 'tv-player-es6.vflset/tv-player-es6.js'
|
||||
phone = 'player-plasma-ias-phone-en_US.vflset/base.js'
|
||||
house = 'house_brand_player.vflset/en_US/base.js'
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
|
||||
@@ -384,8 +384,7 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
|
||||
last_error = None
|
||||
|
||||
for note, kwargs in (
|
||||
('Downloading m3u8 information', {}),
|
||||
('Retrying m3u8 download with randomized headers', {
|
||||
('Downloading m3u8 information with randomized headers', {
|
||||
'headers': self._generate_blockbuster_headers(),
|
||||
}),
|
||||
('Retrying m3u8 download with Chrome impersonation', {
|
||||
|
||||
@@ -9,13 +9,13 @@ from ..utils import (
|
||||
int_or_none,
|
||||
qualities,
|
||||
smuggle_url,
|
||||
traverse_obj,
|
||||
unescapeHTML,
|
||||
unified_strdate,
|
||||
unsmuggle_url,
|
||||
url_or_none,
|
||||
urlencode_postdata,
|
||||
)
|
||||
from ..utils.traversal import find_element, traverse_obj
|
||||
|
||||
|
||||
class OdnoklassnikiIE(InfoExtractor):
|
||||
@@ -264,9 +264,7 @@ class OdnoklassnikiIE(InfoExtractor):
|
||||
note='Downloading desktop webpage',
|
||||
headers={'Referer': smuggled['referrer']} if smuggled.get('referrer') else {})
|
||||
|
||||
error = self._search_regex(
|
||||
r'[^>]+class="vp_video_stub_txt"[^>]*>([^<]+)<',
|
||||
webpage, 'error', default=None)
|
||||
error = traverse_obj(webpage, {find_element(cls='vp_video_stub_txt')})
|
||||
# Direct link from boosty
|
||||
if (error == 'The author of this video has not been found or is blocked'
|
||||
and not smuggled.get('referrer') and mode == 'videoembed'):
|
||||
|
||||
@@ -131,11 +131,15 @@ class TwitterBaseIE(InfoExtractor):
|
||||
video_id, headers=headers, query=query, expected_status=allowed_status,
|
||||
note=f'Downloading {"GraphQL" if graphql else "legacy API"} JSON')
|
||||
|
||||
if result.get('errors'):
|
||||
errors = ', '.join(set(traverse_obj(result, ('errors', ..., 'message', {str}))))
|
||||
if errors and 'not authorized' in errors:
|
||||
self.raise_login_required(remove_end(errors, '.'))
|
||||
raise ExtractorError(f'Error(s) while querying API: {errors or "Unknown error"}')
|
||||
if error_msg := ', '.join(set(traverse_obj(result, ('errors', ..., 'message', {str})))):
|
||||
# Errors with the message 'Dependency: Unspecified' are a false positive
|
||||
# See https://github.com/yt-dlp/yt-dlp/issues/15963
|
||||
if error_msg.lower() == 'dependency: unspecified':
|
||||
self.write_debug(f'Ignoring Twitter API error: "{error_msg}"')
|
||||
elif 'not authorized' in error_msg.lower():
|
||||
self.raise_login_required(remove_end(error_msg, '.'))
|
||||
else:
|
||||
raise ExtractorError(f'Error(s) while querying API: {error_msg or "Unknown error"}')
|
||||
|
||||
return result
|
||||
|
||||
@@ -1078,7 +1082,7 @@ class TwitterIE(TwitterBaseIE):
|
||||
raise ExtractorError(f'Twitter API says: {cause or "Unknown error"}', expected=True)
|
||||
elif typename == 'TweetUnavailable':
|
||||
reason = result.get('reason')
|
||||
if reason == 'NsfwLoggedOut':
|
||||
if reason in ('NsfwLoggedOut', 'NsfwViewerHasNoStatedAge'):
|
||||
self.raise_login_required('NSFW tweet requires authentication')
|
||||
elif reason == 'Protected':
|
||||
self.raise_login_required('You are not authorized to view this protected tweet')
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import collections
|
||||
import hashlib
|
||||
import re
|
||||
import urllib.parse
|
||||
|
||||
from .common import InfoExtractor
|
||||
from .dailymotion import DailymotionIE
|
||||
@@ -8,6 +9,7 @@ from .odnoklassniki import OdnoklassnikiIE
|
||||
from .sibnet import SibnetEmbedIE
|
||||
from .vimeo import VimeoIE
|
||||
from .youtube import YoutubeIE
|
||||
from ..jsinterp import JSInterpreter
|
||||
from ..utils import (
|
||||
ExtractorError,
|
||||
UserNotLive,
|
||||
@@ -36,16 +38,38 @@ class VKBaseIE(InfoExtractor):
|
||||
|
||||
def _download_webpage_handle(self, url_or_request, video_id, *args, fatal=True, **kwargs):
|
||||
response = super()._download_webpage_handle(url_or_request, video_id, *args, fatal=fatal, **kwargs)
|
||||
challenge_url, cookie = response[1].url if response else '', None
|
||||
if challenge_url.startswith('https://vk.com/429.html?'):
|
||||
cookie = self._get_cookies(challenge_url).get('hash429')
|
||||
if not cookie:
|
||||
if response is False:
|
||||
return response
|
||||
|
||||
hash429 = hashlib.md5(cookie.value.encode('ascii')).hexdigest()
|
||||
webpage, urlh = response
|
||||
challenge_url = urlh.url
|
||||
if urllib.parse.urlparse(challenge_url).path != '/challenge.html':
|
||||
return response
|
||||
|
||||
self.to_screen(join_nonempty(
|
||||
video_id and f'[{video_id}]',
|
||||
'Received a JS challenge response',
|
||||
delim=' '))
|
||||
|
||||
challenge_hash = traverse_obj(challenge_url, (
|
||||
{parse_qs}, 'hash429', -1, {require('challenge hash')}))
|
||||
|
||||
func_code = self._search_regex(
|
||||
r'(?s)var\s+salt\s*=\s*\(\s*function\s*\(\)\s*(\{.+?\})\s*\)\(\);\s*var\s+hash',
|
||||
webpage, 'JS challenge salt function')
|
||||
|
||||
jsi = JSInterpreter(f'function salt() {func_code}')
|
||||
salt = jsi.extract_function('salt')([])
|
||||
self.write_debug(f'Generated salt with native JS interpreter: {salt}')
|
||||
|
||||
key_hash = hashlib.md5(f'{challenge_hash}:{salt}'.encode()).hexdigest()
|
||||
self.write_debug(f'JS challenge key hash: {key_hash}')
|
||||
|
||||
# Request with the challenge key and the response should set a 'solution429' cookie
|
||||
self._request_webpage(
|
||||
update_url_query(challenge_url, {'key': hash429}), video_id, fatal=fatal,
|
||||
note='Resolving WAF challenge', errnote='Failed to bypass WAF challenge')
|
||||
update_url_query(challenge_url, {'key': key_hash}), video_id,
|
||||
'Submitting JS challenge solution', 'Unable to solve JS challenge', fatal=True)
|
||||
|
||||
return super()._download_webpage_handle(url_or_request, video_id, *args, fatal=True, **kwargs)
|
||||
|
||||
def _perform_login(self, username, password):
|
||||
|
||||
@@ -139,11 +139,6 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||
]
|
||||
_RETURN_TYPE = 'video' # XXX: How to handle multifeed?
|
||||
|
||||
_PLAYER_INFO_RE = (
|
||||
r'/s/player/(?P<id>[a-zA-Z0-9_-]{8,})/(?:tv-)?player',
|
||||
r'/(?P<id>[a-zA-Z0-9_-]{8,})/player(?:_ias\.vflset(?:/[a-zA-Z]{2,3}_[a-zA-Z]{2,3})?|-plasma-ias-(?:phone|tablet)-[a-z]{2}_[A-Z]{2}\.vflset)/base\.js$',
|
||||
r'\b(?P<id>vfl[a-zA-Z0-9_-]+)\b.*?\.js$',
|
||||
)
|
||||
_SUBTITLE_FORMATS = ('json3', 'srv1', 'srv2', 'srv3', 'ttml', 'srt', 'vtt')
|
||||
_DEFAULT_CLIENTS = ('android_vr', 'web', 'web_safari')
|
||||
_DEFAULT_JSLESS_CLIENTS = ('android_vr',)
|
||||
@@ -1886,10 +1881,12 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||
'tce': 'player_ias_tce.vflset/en_US/base.js',
|
||||
'es5': 'player_es5.vflset/en_US/base.js',
|
||||
'es6': 'player_es6.vflset/en_US/base.js',
|
||||
'es6_tcc': 'player_es6_tcc.vflset/en_US/base.js',
|
||||
'es6_tce': 'player_es6_tce.vflset/en_US/base.js',
|
||||
'tv': 'tv-player-ias.vflset/tv-player-ias.js',
|
||||
'tv_es6': 'tv-player-es6.vflset/tv-player-es6.js',
|
||||
'phone': 'player-plasma-ias-phone-en_US.vflset/base.js',
|
||||
'tablet': 'player-plasma-ias-tablet-en_US.vflset/base.js', # Dead since 19712d96 (2025.11.06)
|
||||
'house': 'house_brand_player.vflset/en_US/base.js', # Used by Google Drive
|
||||
}
|
||||
_INVERSE_PLAYER_JS_VARIANT_MAP = {v: k for k, v in _PLAYER_JS_VARIANT_MAP.items()}
|
||||
|
||||
@@ -2179,13 +2176,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||
|
||||
@classmethod
|
||||
def _extract_player_info(cls, player_url):
|
||||
for player_re in cls._PLAYER_INFO_RE:
|
||||
id_m = re.search(player_re, player_url)
|
||||
if id_m:
|
||||
break
|
||||
else:
|
||||
raise ExtractorError(f'Cannot identify player {player_url!r}')
|
||||
return id_m.group('id')
|
||||
if m := re.search(r'/s/player/(?P<id>[a-fA-F0-9]{8,})/', player_url):
|
||||
return m.group('id')
|
||||
raise ExtractorError(f'Cannot identify player {player_url!r}')
|
||||
|
||||
def _load_player(self, video_id, player_url, fatal=True):
|
||||
player_js_key = self._player_js_cache_key(player_url)
|
||||
@@ -3219,6 +3212,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||
])
|
||||
skip_player_js = 'js' in self._configuration_arg('player_skip')
|
||||
format_types = self._configuration_arg('formats')
|
||||
skip_bad_formats = 'incomplete' not in format_types
|
||||
all_formats = 'duplicate' in format_types
|
||||
if self._configuration_arg('include_duplicate_formats'):
|
||||
all_formats = True
|
||||
@@ -3464,7 +3458,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||
https_fmts = []
|
||||
|
||||
for fmt_stream in streaming_formats:
|
||||
if fmt_stream.get('targetDurationSec'):
|
||||
# Live adaptive https formats are not supported: skip unless extractor-arg given
|
||||
if fmt_stream.get('targetDurationSec') and skip_bad_formats:
|
||||
continue
|
||||
|
||||
# FORMAT_STREAM_TYPE_OTF(otf=1) requires downloading the init fragment
|
||||
@@ -3576,7 +3571,6 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||
yield from process_https_formats()
|
||||
|
||||
needs_live_processing = self._needs_live_processing(live_status, duration)
|
||||
skip_bad_formats = 'incomplete' not in format_types
|
||||
|
||||
skip_manifests = set(self._configuration_arg('skip'))
|
||||
if (needs_live_processing == 'is_live' # These will be filtered out by YoutubeDL anyway
|
||||
@@ -4086,16 +4080,33 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
||||
|
||||
needs_live_processing = self._needs_live_processing(live_status, duration)
|
||||
|
||||
def is_bad_format(fmt):
|
||||
if needs_live_processing and not fmt.get('is_from_start'):
|
||||
return True
|
||||
elif (live_status == 'is_live' and needs_live_processing != 'is_live'
|
||||
and fmt.get('protocol') == 'http_dash_segments'):
|
||||
return True
|
||||
def adjust_incomplete_format(fmt, note_suffix='(Last 2 hours)', pref_adjustment=-10):
|
||||
fmt['preference'] = (fmt.get('preference') or -1) + pref_adjustment
|
||||
fmt['format_note'] = join_nonempty(fmt.get('format_note'), note_suffix, delim=' ')
|
||||
|
||||
for fmt in filter(is_bad_format, formats):
|
||||
fmt['preference'] = (fmt.get('preference') or -1) - 10
|
||||
fmt['format_note'] = join_nonempty(fmt.get('format_note'), '(Last 2 hours)', delim=' ')
|
||||
# Adjust preference and format note for incomplete live/post-live formats
|
||||
if live_status in ('is_live', 'post_live'):
|
||||
for fmt in formats:
|
||||
protocol = fmt.get('protocol')
|
||||
# Currently, protocol isn't set for adaptive https formats, but this could change
|
||||
is_adaptive = protocol in (None, 'http', 'https')
|
||||
if live_status == 'post_live' and is_adaptive:
|
||||
# Post-live adaptive formats cause HttpFD to raise "Did not get any data blocks"
|
||||
# These formats are *only* useful to external applications, so we can hide them
|
||||
# Set their preference <= -1000 so that FormatSorter flags them as 'hidden'
|
||||
adjust_incomplete_format(fmt, note_suffix='(ended)', pref_adjustment=-5000)
|
||||
# Is it live with --live-from-start? Or is it post-live and its duration is >2hrs?
|
||||
elif needs_live_processing:
|
||||
if not fmt.get('is_from_start'):
|
||||
# Post-live m3u8 formats for >2hr streams
|
||||
adjust_incomplete_format(fmt)
|
||||
elif live_status == 'is_live':
|
||||
if protocol == 'http_dash_segments':
|
||||
# Live DASH formats without --live-from-start
|
||||
adjust_incomplete_format(fmt)
|
||||
elif is_adaptive:
|
||||
# Incomplete live adaptive https formats
|
||||
adjust_incomplete_format(fmt, note_suffix='(incomplete)', pref_adjustment=-20)
|
||||
|
||||
if needs_live_processing:
|
||||
self._prepare_live_from_start_formats(
|
||||
|
||||
Reference in New Issue
Block a user