From 76a0ddf1308782a4da2693978955aee9cf631862 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Sat, 25 Apr 2020 14:56:20 +0200 Subject: [PATCH 01/14] wireless-regdb: backport three upstream fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Another release is overdue for quite some time, so I'm backporting three fixes from upstream which I plan to backport into 19.07 as well. Ref: FS#2880 Signed-off-by: Petr Štetiar --- package/firmware/wireless-regdb/Makefile | 1 + ...ix-overlapping-ranges-for-Switzerlan.patch | 47 + ...ix-ranges-of-EU-countries-as-they-ar.patch | 843 ++++++++++++++++++ ...pdate-regulatory-rules-for-Russia-RU.patch | 44 + 4 files changed, 935 insertions(+) create mode 100644 package/firmware/wireless-regdb/patches/600-wireless-regdb-Fix-overlapping-ranges-for-Switzerlan.patch create mode 100644 package/firmware/wireless-regdb/patches/601-wireless-regdb-Fix-ranges-of-EU-countries-as-they-ar.patch create mode 100644 package/firmware/wireless-regdb/patches/602-wireless-regdb-Update-regulatory-rules-for-Russia-RU.patch diff --git a/package/firmware/wireless-regdb/Makefile b/package/firmware/wireless-regdb/Makefile index 26f470af44..86343be04c 100644 --- a/package/firmware/wireless-regdb/Makefile +++ b/package/firmware/wireless-regdb/Makefile @@ -2,6 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=wireless-regdb PKG_VERSION:=2019.06.03 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/ diff --git a/package/firmware/wireless-regdb/patches/600-wireless-regdb-Fix-overlapping-ranges-for-Switzerlan.patch b/package/firmware/wireless-regdb/patches/600-wireless-regdb-Fix-overlapping-ranges-for-Switzerlan.patch new file mode 100644 index 0000000000..6febcc060f --- /dev/null +++ b/package/firmware/wireless-regdb/patches/600-wireless-regdb-Fix-overlapping-ranges-for-Switzerlan.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Martin Willi +Date: Tue, 2 Jul 2019 16:19:44 +0200 +Subject: [PATCH] wireless-regdb: Fix overlapping ranges for Switzerland and + Liechtenstein + +The commit referenced below changes the 5GHz frequency range 5250-5330 +to 5150-5330, making that range overlapping with the existing range +5170-5250. This imposes DFS limitations and a reduced maximum power +level for the range 5170-5250. + +The change of the frequency range seems not intentional. Instead the +commit should have changed the 5170-5250 range to 5150-5250, and the +5250-5330 range to 5250-5350 (see [1]). + +[1] https://www.ofcomnet.ch/api/rir/1010/05 + +Fixes: 957a7cff72a3 ("wireless-regdb: update regulatory rules for Switzerland (CH), and Liechtenstein (LI) on 5GHz") +Signed-off-by: Martin Willi +Signed-off-by: Seth Forshee + +diff --git a/db.txt b/db.txt +index d47ab94c3aa5..37393e6a793e 100644 +--- a/db.txt ++++ b/db.txt +@@ -271,8 +271,8 @@ country CF: DFS-FCC + # transmitter power control is in use: 5250-5330@23db, 5490-5710@30db + country CH: DFS-ETSI + (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI +- (5150 - 5330 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI + (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI + # 60 GHz band channels 1-4, ref: Etsi En 302 567 + (57000 - 66000 @ 2160), (40) +@@ -747,8 +747,8 @@ country LC: DFS-ETSI + # transmitter power control is in use: 5250-5330@23db, 5490-5710@30db + country LI: DFS-ETSI + (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI +- (5150 - 5330 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI + (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI + # 60 GHz band channels 1-4, ref: Etsi En 302 567 + (57000 - 66000 @ 2160), (40) diff --git a/package/firmware/wireless-regdb/patches/601-wireless-regdb-Fix-ranges-of-EU-countries-as-they-ar.patch b/package/firmware/wireless-regdb/patches/601-wireless-regdb-Fix-ranges-of-EU-countries-as-they-ar.patch new file mode 100644 index 0000000000..f9b97bc885 --- /dev/null +++ b/package/firmware/wireless-regdb/patches/601-wireless-regdb-Fix-ranges-of-EU-countries-as-they-ar.patch @@ -0,0 +1,843 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Emil Petersky +Date: Tue, 17 Sep 2019 09:49:19 +0200 +Subject: [PATCH] wireless-regdb: Fix ranges of EU countries as they are + harmonized since 2014 + +This patch unites entries for EU countries, as they have been harmonized +latest by July 2014... + +EU decision 2005/513/EC: +https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 +EU decision 2006/771/EC: +https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 + +Signed-off-by: Emil Petersky +Signed-off-by: Seth Forshee + +diff --git a/db.txt b/db.txt +index 2e149b6e0ea2..a57452479a9b 100644 +--- a/db.txt ++++ b/db.txt +@@ -87,12 +87,20 @@ country AS: DFS-FCC + (5490 - 5730 @ 160), (24), DFS + (5735 - 5835 @ 80), (30) + ++# AT as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# AT: https://www.rtr.at/en/tk/Spektrum5GHz/1997_bmvit-info-052010en.pdf ++# AT: acceptance https://www.ris.bka.gv.at/Dokumente/BgblAuth/BGBLA_2014_II_63/BGBLA_2014_II_63.pdfsig + country AT: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + # Source: +@@ -139,12 +147,22 @@ country BD: DFS-JP + (2402 - 2482 @ 40), (20) + (5735 - 5835 @ 80), (30) + ++# BE as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# BE: https://www.ibpt.be/public/files/en/21760/B03-01_2.1_EN.pdf ++# BE: https://www.ibpt.be/public/files/en/21761/B03-02_2.1_EN.pdf ++# BE: https://www.ibpt.be/public/files/en/21762/B03-03_2.1_EN.pdf ++# BE: https://www.ibpt.be/public/files/en/22165/B01-28_3.1_EN.pdf + country BE: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country BF: DFS-FCC +@@ -167,22 +185,29 @@ country BF: DFS-FCC + # + # Note: The transmit power limits in the 5250-5350 MHz and 5470-5725 MHz bands + # can be raised by 3 dBm if TPC is enabled. Refer to BDS EN 301 893 for details. ++# ++# BG as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# BG: https://crc.bg/files/_en/Electronic_Communications_Revised_EN1.pdf ++# BG: acceptance of 2006/771/EC https://crc.bg/files/Pravila_06_12_2018.pdf + country BG: DFS-ETSI + # Wideband data transmission systems (WDTS) in the 2.4GHz ISM band, ref: + # I.22 of the List, BDS EN 300 328 +- (2402 - 2482 @ 40), (20) ++ (2400 - 2483.5 @ 40), (100 mW) + # 5 GHz Radio Local Area Networks (RLANs), ref: + # II.H01 of the List, BDS EN 301 893 +- (5170 - 5250 @ 80), (23), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI + # II.H01 of the List, I.54 from the List, BDS EN 301 893 +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # Short range devices (SRDs) in the 5725-5875 MHz frequency range, ref: ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) + # I.43 of the List, BDS EN 300 440-2, BDS EN 300 440-1 +- (5725 - 5875 @ 80), (14) +- # 60 GHz Multiple-Gigabit RLAN Systems, ref: ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + # II.H03 of the List, BDS EN 302 567-2 +- (57000 - 66000 @ 2160), (40), NO-OUTDOOR ++ (57000 - 66000 @ 2160), (40) + + country BH: DFS-JP + (2402 - 2482 @ 40), (20) +@@ -265,16 +290,22 @@ country CF: DFS-FCC + (5490 - 5730 @ 40), (24), DFS + (5735 - 5835 @ 40), (30) + +-# Source: +-# https://www.ofcomnet.ch/#/fatTable +-# Note that the maximum transmitter power can be doubled for 5250-5710MHz if +-# transmitter power control is in use: 5250-5330@23db, 5490-5710@30db ++# CH as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# CH: https://www.ofcomnet.ch/api/rir/1010/05 ++# CH: https://www.ofcomnet.ch/api/rir/1010/04 ++# CH: https://www.ofcomnet.ch/api/rir/1008/12 ++# CH: https://www.ofcomnet.ch/#/fatTable + country CH: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI +- (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country CI: DFS-FCC +@@ -329,26 +360,42 @@ country CX: DFS-FCC + (5490 - 5730 @ 160), (24), DFS + (5735 - 5835 @ 80), (30) + ++# CY as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# CY: http://www.mcw.gov.cy/mcw/dec/dec.nsf/all/292484CFC7013DD4C2256EBA0023D447/$file/Sxedio%20Radiosyxnothtwn%20ths%20Dhmokratias-3-8-2018-E2.2(English%20Unified%20Unofficial).pdf?openelement + country CY: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + +-# Data from http://www.ctu.eu/164/download/VOR/VOR-12-08-2005-34.pdf +-# and http://www.ctu.eu/164/download/VOR/VOR-12-05-2007-6-AN.pdf +-# Power at 5250 - 5350 MHz and 5470 - 5725 MHz can be doubled if TPC is +-# implemented. ++# CZ as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# CZ: https://www.ctu.cz/cs/download/vseobecna-opravneni/archiv/vo-r_12-06_2010-09.pdf ++# CZ: https://www.ctu.cz/sites/default/files/obsah/ctu/vseobecne-opravneni-c.vo-r/10/12.2017-10/obrazky/vo-r10-122017-10.pdf + country CZ: DFS-ETSI + (2400 - 2483.5 @ 40), (100 mW) + (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI + (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI + (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + ++# DE as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# + # Allocation for the 2.4 GHz band (Vfg 10 / 2013, Allgemeinzuteilung von + # Frequenzen für die Nutzung in lokalen Netzwerken; Wireless Local Area + # Networks (WLAN-Funkanwendungen). +@@ -379,16 +426,22 @@ country DE: DFS-ETSI + # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + +-# Sources: ++# DK as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# DK: https://ens.dk/sites/ens.dk/files/Tele/frekvensplan_0.pdf + # 5GHz: https://erhvervsstyrelsen.dk/sites/default/files/007_interface-datanet_5-6_ghz.pdf.pdf + # 60GHz: https://erhvervsstyrelsen.dk/sites/default/files/radiograenseflader-63.pdf + country DK: DFS-ETSI +- (2400 - 2483.5 @ 40), (20) +- (5150 - 5250 @ 80), (23), AUTO-BW, wmmrule=ETSI +- (5250 - 5350 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5470 - 5725 @ 160), (27), DFS, wmmrule=ETSI ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) + # 60 GHz band channels 1-4 (ETSI EN 302 567) +- (57000 - 66000 @ 2160), (40), NO-OUTDOOR ++ (57000 - 66000 @ 2160), (40) + + # Source: + # http://www.ntrcdom.org/index.php?option=com_content&view=category&layout=blog&id=10&Itemid=55 +@@ -417,12 +470,20 @@ country EC: DFS-FCC + (5490 - 5730 @ 20), (24), DFS + (5735 - 5835 @ 20), (30) + ++# EE as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# EE: https://www.ttja.ee/et/ettevottele-organisatsioonile/sideteenused/raadioseadmed/wifi-seade ++# EE: https://www.itu.int/ITU-D/study_groups/SGP_1998-2002/JGRES09/pdf/estonia.pdf + country EE: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country EG: DFS-ETSI +@@ -430,17 +491,19 @@ country EG: DFS-ETSI + (5170 - 5250 @ 40), (20) + (5250 - 5330 @ 40), (20), DFS + +-# Source: +-# Cuadro nacional de atribución de frecuencias (CNAF) +-# https://avancedigital.gob.es/espectro/Paginas/cnaf.aspx ++# ES as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# ES: https://avancedigital.gob.es/espectro/Paginas/cnaf.aspx + country ES: DFS-ETSI + (2400 - 2483.5 @ 40), (100 mW) + (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI + (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI + (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI +- # Short Range Devices (SRD) (ETSI EN 300 440) ++ # short range devices (ETSI EN 300 440-1) + (5725 - 5875 @ 80), (25 mW) +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country ET: DFS-ETSI +@@ -449,14 +512,18 @@ country ET: DFS-ETSI + (5250 - 5330 @ 80), (20), DFS, AUTO-BW + (5490 - 5710 @ 160), (27), DFS + ++# FI as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 + country FI: DFS-ETSI +- (2400 - 2483.5 @ 40), (20) +- (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI +- (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI +- (5470 - 5725 @ 160), (27), DFS, wmmrule=ETSI ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI + # short range devices (ETSI EN 300 440-1) + (5725 - 5875 @ 80), (25 mW) +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country FM: DFS-FCC +@@ -466,22 +533,34 @@ country FM: DFS-FCC + (5490 - 5730 @ 160), (24), DFS + (5735 - 5835 @ 80), (30) + ++# FR as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 + country FR: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI +- (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI +- (5470 - 5725 @ 160), (27), DFS, wmmrule=ETSI +- # short range devices (ETSI EN 300 440) ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) + (5725 - 5875 @ 80), (25 mW) +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + ++# GB as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# GB: https://www.ofcom.org.uk/__data/assets/pdf_file/0019/136009/Ofcom-Information-Sheet-5-GHz-RLANs.pdf ++# GB: https://www.ofcom.org.uk/__data/assets/pdf_file/0028/84970/ir-2030.pdf + country GB: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country GD: DFS-FCC +@@ -523,12 +602,20 @@ country GP: DFS-ETSI + (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI + (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI + ++# GR as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# GR: https://www.eett.gr/opencms/export/sites/default/EETT_EN/Electronic_Communications/Radio_Communications/TelecommunicationEquipment/Radio_equipment_interface_requirement_2012.pdf ++# GR: https://www.eett.gr/opencms/export/sites/default/EETT_EN/Electronic_Communications/Radio_Communications/TelecommunicationEquipment/Radio_equipment_interface_requirement_107.pdf + country GR: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country GT: DFS-FCC +@@ -563,11 +650,18 @@ country HN: DFS-FCC + (5735 - 5835 @ 80), (30) + + country HR: DFS-ETSI +- (2400 - 2483.5 @ 40), (20) +- (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI +- (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI +- (5470 - 5725 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++# HR as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# HR: http://tablice.hakom.hr:8080/vis?lang=en ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country HT: DFS-FCC +@@ -577,37 +671,42 @@ country HT: DFS-FCC + (5490 - 5730 @ 160), (24), DFS + (5735 - 5835 @ 80), (30) + +-# http://stir.nmhh.hu/?oldal=dokumentumGeneralo&root_rendeletelem_id=3&hatalyos=1 +-# http://english.nmhh.hu/cikk/297/Eljarasi_tajekoztato_a_24_GHzes_es_az_5_GHzes_savban_mukodo_berendezesek_engedelyezeserol +-# http://nmhh.hu/dokumentum/319/kis_hatotavolsagu_eszkozok_srdk.pdf ++# HU as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# HU: http://stir.nmhh.hu/?oldal=dokumentumGeneralo&root_rendeletelem_id=3&hatalyos=1 ++# HU: http://english.nmhh.hu/cikk/297/Eljarasi_tajekoztato_a_24_GHzes_es_az_5_GHzes_savban_mukodo_berendezesek_engedelyezeserol ++# HU: http://nmhh.hu/dokumentum/319/kis_hatotavolsagu_eszkozok_srdk.pdf + country HU: DFS-ETSI +- # ref: 2006/771/EK, (EU) 2017/1483, MSZ EN 300 328 +- # additionally: 100mW @ 10MHz channels, 50mW @ 5MHz (max. 10mW/MHz) +- (2400 - 2483.5 @ 40), (20) +- # ref: 2005/513/EK +- # note: TPC not needed @ 5150-5250 +- (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI +- # note: max would be +3dB with TPC @ 5250-5725 +- (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI +- (5470 - 5725 @ 160), (27), DFS, wmmrule=ETSI +- # "Short Range Devices (SRD)" +- # ref: 2006/771/EK, (EU) 2017/1483, MSZ EN 300 440, MSZ EN 302 064 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) + (5725 - 5875 @ 80), (25 mW) +- # 60 GHz band channels 1-4, "Fixed outdoor installation not allowed" +- # ref: 2006/771/EK, (EU) 2017/1483, MSZ EN 302 567 +- (57000 - 66000 @ 2160), (40), NO-OUTDOOR ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) ++ (57000 - 66000 @ 2160), (40) + + country ID: DFS-JP + # ref: http://www.postel.go.id/content/ID/regulasi/standardisasi/kepdir/bwa%205,8%20ghz.pdf + (2402 - 2482 @ 20), (20) + (5735 - 5815 @ 20), (23) + ++# IE as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# IE: https://www.comreg.ie/publication-download/interface-requirements-for-radio-services-in-ireland ++# IE: https://www.comreg.ie/publication-download/permitted-short-range-devices-ireland + country IE: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country IL: DFS-ETSI +@@ -626,20 +725,33 @@ country IR: DFS-JP + (2402 - 2482 @ 40), (20) + (5735 - 5835 @ 80), (30) + ++# IS as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# IS: https://www.pfs.is/library/Skrar/Tidnir-og-taekni/MHZ_21022019.pdf + country IS: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + ++# IT as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 + country IT: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country JM: DFS-FCC +@@ -741,16 +853,22 @@ country LC: DFS-ETSI + (5490 - 5710 @ 160), (30), DFS + (5735 - 5815 @ 80), (30) + +-# Source: +-# https://www.ofcomnet.ch/#/fatTable +-# Note that the maximum transmitter power can be doubled for 5250-5710MHz if +-# transmitter power control is in use: 5250-5330@23db, 5490-5710@30db ++# LI as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# LI: https://www.ofcomnet.ch/api/rir/1010/05 ++# LI: https://www.ofcomnet.ch/api/rir/1010/04 ++# LI: https://www.ofcomnet.ch/api/rir/1008/12 ++# LI: https://www.ofcomnet.ch/#/fatTable + country LI: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI +- (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country LK: DFS-FCC +@@ -768,28 +886,50 @@ country LS: DFS-ETSI + (5250 - 5330 @ 80), (20), DFS, AUTO-BW + (5490 - 5710 @ 160), (27), DFS + ++# LT as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# LT: https://www.rrt.lt/en/radio-spectrum/frequency-management/ or direct link: ++# LT: https://www.e-tar.lt/portal/lt/legalAct/6e718fd037a011e69101aaab2992cbcd/dGRioCBBHb + country LT: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + ++# LU as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# LU: https://assets.ilr.lu/frequences/Documents/ILRLU-1723895916-183.pdf#search=en%20300%20440 + country LU: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + ++# LV as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# LV: http://likumi.lv/doc.php?id=198903 + country LV: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country MA: DFS-ETSI +@@ -875,12 +1015,19 @@ country MR: DFS-ETSI + (5250 - 5330 @ 80), (20), DFS, AUTO-BW + (5490 - 5710 @ 160), (27), DFS + ++# MT as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# MT: https://www.mca.org.mt/sites/default/files/NFP_edition%206-1.pdf + country MT: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country MU: DFS-FCC +@@ -930,34 +1077,36 @@ country NI: DFS-FCC + (5490 - 5730 @ 160), (24), DFS + (5735 - 5835 @ 80), (30) + +-# Regulation on the use of frequency space without a license and +-# without notification 2015 +-# +-# http://wetten.overheid.nl/BWBR0036378/2015-03-05 +- ++# NL as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# NL: http://wetten.overheid.nl/BWBR0036378/2015-03-05 + country NL: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI + # short range devices (ETSI EN 300 440-1) + (5725 - 5875 @ 80), (25 mW) +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + +-# Data from http://www.lovdata.no/dokument/SF/forskrift/2012-01-19-77 +-# Power at 5250 - 5350 MHz, 5470 - 5725 MHz and 5815 – 5850 MHz can +-# be doubled if TPC is implemented. +-# Up to 2W (or 4W with TPC) is allowed in the 5725 – 5795 MHz band +-# which has been merged with 5470 - 5725 MHz to allow wide channels ++# NO as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# NO: https://eng.nkom.no/technical/temporary-licenses/mobile-videolink/wireless-cameras-mobile-video-links/_attachment/9947 ++# NO: http://www.lovdata.no/dokument/SF/forskrift/2012-01-19-77 ++# In addition to EU NO can use 5725–5795 MHz and 5815–5850 bands with limit of 4 W EIRP (with DFS and TPC) + country NO: DFS-ETSI + (2400 - 2483.5 @ 40), (100 mW) +- (5150 - 5250 @ 80), (200 mW), AUTO-BW, wmmrule=ETSI +- (5250 - 5350 @ 80), (100 mW), DFS, AUTO-BW, wmmrule=ETSI +- (5470 - 5795 @ 160), (500 mW), DFS, wmmrule=ETSI +- (5815 - 5850 @ 35), (2000 mW), DFS +- (17100 - 17300 @ 200), (100 mW) +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country NP: DFS-JP +@@ -1020,12 +1169,18 @@ country PK: DFS-JP + (2402 - 2482 @ 40), (20) + (5735 - 5835 @ 80), (30) + ++# PL as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 + country PL: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country PM: DFS-ETSI +@@ -1041,14 +1196,19 @@ country PR: DFS-FCC + (5490 - 5730 @ 160), (24), DFS + (5735 - 5835 @ 80), (30) + ++# PT as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# PT: https://www.anacom.pt/render.jsp?categoryId=336334 + country PT: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI + # short range devices (ETSI EN 300 440-1) + (5725 - 5875 @ 80), (25 mW) +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + country PW: DFS-FCC +@@ -1079,15 +1239,21 @@ country RE: DFS-ETSI + (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI + (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI + ++# RO as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# RO: http://www.ancom.org.ro/en/uploads/links_files/ordin_262_2006.pdf + country RO: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + +- + # Source: + # http://www.ratel.rs/upload/documents/Plan_namene/Plan_namene-sl_glasnik.pdf + country RS: DFS-ETSI +@@ -1119,18 +1285,20 @@ country SA: DFS-ETSI + (5250 - 5330 @ 80), (20), DFS, AUTO-BW + (5490 - 5710 @ 160), (27), DFS + +-# Source: +-# https://pts.se/globalassets/startpage/dokument/legala-dokument/foreskrifter/radio/beslutade_ptsfs-2018-3-undantagsforeskrifter.pdf ++# SE as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# SE: https://pts.se/globalassets/startpage/dokument/legala-dokument/foreskrifter/radio/beslutade_ptsfs-2018-3-undantagsforeskrifter.pdf + country SE: DFS-ETSI +- (2400 - 2483.5 @ 40), (20) +- (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI +- # note: max would be +3dB with TPC @ 5250-5725 +- (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI +- (5470 - 5725 @ 160), (27), DFS, wmmrule=ETSI +- # short range devices (ETSI EN 300 440) ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) + (5725 - 5875 @ 80), (25 mW) +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 +- (57000 - 66000 @ 2160), (40), NO-OUTDOOR ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) ++ (57000 - 66000 @ 2160), (40) + + # Source + # https://www.imda.gov.sg/~/media/imda/files/regulation%20licensing%20and%20consultations/ict%20standards/telecommunication%20standards/radio-comms/imdatssrd.pdf?la=en +@@ -1144,20 +1312,36 @@ country SG: DFS-FCC + # (5470 - 5725 @ 160), (30), DFS + (5725 - 5850 @ 80), (30) + ++# SI as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# SI: https://www.akos-rs.si/bwa + country SI: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + ++# SK as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) ++# and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) ++# EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 ++# EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 ++# SK: https://www.teleoff.gov.sk/data/files/25911.pdf ++# SK: https://www.teleoff.gov.sk/data/files/41072.pdf ++# SK: https://www.teleoff.gov.sk/data/files/49125_vpr-01_2018-rusi-vpr-10_2014a21_2012-nespecifik-srd_021018.pdf + country SK: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI +- (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI +- # 60 GHz band channels 1-4, ref: Etsi En 302 567 ++ (2400 - 2483.5 @ 40), (100 mW) ++ (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI ++ (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI ++ (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI ++ # short range devices (ETSI EN 300 440-1) ++ (5725 - 5875 @ 80), (25 mW) ++ # 60 GHz band channels 1-4 (ETSI EN 302 567) + (57000 - 66000 @ 2160), (40) + + # Source: diff --git a/package/firmware/wireless-regdb/patches/602-wireless-regdb-Update-regulatory-rules-for-Russia-RU.patch b/package/firmware/wireless-regdb/patches/602-wireless-regdb-Update-regulatory-rules-for-Russia-RU.patch new file mode 100644 index 0000000000..7b883e6000 --- /dev/null +++ b/package/firmware/wireless-regdb/patches/602-wireless-regdb-Update-regulatory-rules-for-Russia-RU.patch @@ -0,0 +1,44 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dmitry Tunin +Date: Sat, 24 Aug 2019 11:48:10 +0300 +Subject: [PATCH] wireless-regdb: Update regulatory rules for Russia (RU) + +Russian entry is incorrect. According to the last regulations +document of Feb 29, 2016, 160 MHz channels and 802.11ad are allowed. + +http://rfs-rf.ru/upload/medialibrary/c1a/prilozhenie-1-k-resheniyu-gkrch-_-16_36_03.pdf + +Note that there was never a DFS requirement in Russia, but always was +NO-OUTDOOR on 5GHz. +Maximum power is 200mW that is ~23dBm on all 5GHz channels. +Also Russia has never been regulated by ETSI. + +EIRP has been reduced by 4dBm because of TPC requirement. + +Signed-off-by: Dmitry Tunin +Signed-off-by: Seth Forshee + +diff --git a/db.txt b/db.txt +index f6b2f921416c..9c4b447536e4 100644 +--- a/db.txt ++++ b/db.txt +@@ -1349,14 +1349,12 @@ country RS: DFS-ETSI + # 60 GHz band channels 1-4, ref: Etsi En 302 567 + (57000 - 66000 @ 2160), (40) + +-country RU: DFS-ETSI +- (2402 - 2482 @ 40), (20) +- (5170 - 5250 @ 80), (20), AUTO-BW +- (5250 - 5330 @ 80), (20), DFS, AUTO-BW +- (5650 - 5730 @ 80), (30), DFS +- (5735 - 5835 @ 80), (30) ++country RU: ++ (2400 - 2483.5 @ 40), (20) ++ (5150 - 5350 @ 160), (20), NO-OUTDOOR ++ (5650 - 5850 @ 160), (20), NO-OUTDOOR + # 60 GHz band channels 1-4, ref: Changes to NLA 124_Order №129_22042015.pdf +- (57000 - 66000 @ 2160), (40) ++ (57000 - 66000 @ 2160), (40), NO-OUTDOOR + + country RW: DFS-FCC + (2402 - 2482 @ 40), (20) From a3079fb7ba7ade4d4765252b7c53a82ca15ae741 Mon Sep 17 00:00:00 2001 From: Luiz Angelo Daros de Luca Date: Mon, 27 Apr 2020 18:45:44 -0300 Subject: [PATCH 02/14] elfutils: powerpc build fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes following build error on mpc85xx/generic: ppc_initreg.c: In function 'ppc_set_initial_registers_tid': ppc_initreg.c:79:22: error: field 'r' has incomplete type struct pt_regs r; Ref: FS#2924 Fixes: d27623b54254 ("elfutils: update to 0.179") Signed-off-by: Luiz Angelo Daros de Luca [commit description facelift] Signed-off-by: Petr Štetiar --- ...cliude-asm-ptrace.h-for-pt_regs-defi.patch | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 package/libs/elfutils/patches/0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch diff --git a/package/libs/elfutils/patches/0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch b/package/libs/elfutils/patches/0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch new file mode 100644 index 0000000000..904da2b44e --- /dev/null +++ b/package/libs/elfutils/patches/0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch @@ -0,0 +1,34 @@ +From http://cgit.openembedded.org/openembedded-core/plain/meta/recipes-devtools/elfutils/files/0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch + +From 2e2232d0935bf8ef6e66ebffba3be68a73b5b3e5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sun, 8 Sep 2019 15:57:59 -0700 +Subject: [PATCH] ppc_initreg.c: Incliude asm/ptrace.h for pt_regs definition + +Fixes +| ../../elfutils-0.176/backends/ppc_initreg.c:79:22: error: field 'r' has incomplete type +| struct pt_regs r; +| ^ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + backends/ppc_initreg.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/backends/ppc_initreg.c b/backends/ppc_initreg.c +index 0e0d359..e5cca7e 100644 +--- a/backends/ppc_initreg.c ++++ b/backends/ppc_initreg.c +@@ -33,6 +33,7 @@ + #include + #if defined(__powerpc__) && defined(__linux__) + # include ++# include + # include + #endif + +-- +2.23.0 + From ce2bd2bd03da95aa64f029de567a0f79898166a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Sun, 26 Apr 2020 12:40:42 +0200 Subject: [PATCH 03/14] ath10k-ct: remove old patches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only keep 5.4 patches. Signed-off-by: Álvaro Fernández Rojas --- ...rt-for-configuring-management-packet.patch | 89 - ...ble-out-of-bound-access-of-ath10k_ra.patch | 66 - ...rect-multicast-broadcast-rate-settin.patch | 43 - ...64-ath10k-commit-rates-from-mac80211.patch | 52 - ...-the-vif-to-cancel_remain_on_channel.patch | 41 - ...rolling-support-for-various-chipsets.patch | 1634 ----------------- ...rolling-support-for-various-chipsets.patch | 598 ++++++ ...h10k-4.16-use-tpt-trigger-by-default.patch | 127 -- ...02-ath10k-use-tpt-trigger-by-default.patch | 53 + ...ilable-channels-via-DT-ieee80211-fre.patch | 39 - ...0-0010-ath10k-limit-htt-rx-ring-size.patch | 28 - ...60-0011-ath10k-limit-pci-buffer-size.patch | 100 - ...station-exists-before-forwarding-tx-.patch | 81 - 13 files changed, 651 insertions(+), 2300 deletions(-) delete mode 100644 package/kernel/ath10k-ct/patches/161-ath10k-add-support-for-configuring-management-packet.patch delete mode 100644 package/kernel/ath10k-ct/patches/162-ath10k-fix-possible-out-of-bound-access-of-ath10k_ra.patch delete mode 100644 package/kernel/ath10k-ct/patches/163-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch delete mode 100644 package/kernel/ath10k-ct/patches/170-mac80211-pass-the-vif-to-cancel_remain_on_channel.patch delete mode 100644 package/kernel/ath10k-ct/patches/201-ath10k-4.16_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch create mode 100644 package/kernel/ath10k-ct/patches/201-ath10k-add-LED-and-GPIO-controlling-support-for-various-chipsets.patch delete mode 100644 package/kernel/ath10k-ct/patches/202-ath10k-4.16-use-tpt-trigger-by-default.patch create mode 100644 package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch delete mode 100644 package/kernel/ath10k-ct/patches/203-ath10k-Limit-available-channels-via-DT-ieee80211-fre.patch delete mode 100644 package/kernel/ath10k-ct/patches/976-ath10k-Check-if-station-exists-before-forwarding-tx-.patch diff --git a/package/kernel/ath10k-ct/patches/161-ath10k-add-support-for-configuring-management-packet.patch b/package/kernel/ath10k-ct/patches/161-ath10k-add-support-for-configuring-management-packet.patch deleted file mode 100644 index f18afae327..0000000000 --- a/package/kernel/ath10k-ct/patches/161-ath10k-add-support-for-configuring-management-packet.patch +++ /dev/null @@ -1,89 +0,0 @@ -From: Sriram R -Date: Mon, 10 Sep 2018 11:09:40 +0530 -Subject: [PATCH] ath10k: add support for configuring management packet rate - -By default the firmware uses 1Mbps and 6Mbps rate for management packets -in 2G and 5G bands respectively. But when the user selects different -basic rates from the userspace, we need to send the management -packets at the lowest basic rate selected by the user. - -This change makes use of WMI_VDEV_PARAM_MGMT_RATE param for configuring the -management packets rate to the firmware. - -Chipsets Tested : QCA988X, QCA9887, QCA9984 -FW Tested : 10.2.4-1.0-41, 10.4-3.6.104 - -Signed-off-by: Sriram R -Signed-off-by: Kalle Valo - -Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f279294e9ee22a8f306fdc8e4181cf555e6f0f70 ---- ---- a/ath10k-4.19/mac.c -+++ b/ath10k-4.19/mac.c -@@ -157,6 +157,22 @@ u8 ath10k_mac_bitrate_to_idx(const struc - return 0; - } - -+static int ath10k_mac_get_rate_hw_value(int bitrate) -+{ -+ int i; -+ u8 hw_value_prefix = 0; -+ -+ if (ath10k_mac_bitrate_is_cck(bitrate)) -+ hw_value_prefix = WMI_RATE_PREAMBLE_CCK << 6; -+ -+ for (i = 0; i < sizeof(ath10k_rates); i++) { -+ if (ath10k_rates[i].bitrate == bitrate) -+ return hw_value_prefix | ath10k_rates[i].hw_value; -+ } -+ -+ return -EINVAL; -+} -+ - static int ath10k_mac_get_max_vht_mcs_map(u16 mcs_map, int nss) - { - switch ((mcs_map >> (2 * nss)) & 0x3) { -@@ -6413,9 +6429,10 @@ static void ath10k_bss_info_changed(stru - struct cfg80211_chan_def def; - u32 vdev_param, pdev_param, slottime, preamble; - u16 bitrate, hw_value; -- u8 rate; -- int rateidx, ret = 0; -+ u8 rate, basic_rate_idx; -+ int rateidx, ret = 0, hw_rate_code; - enum nl80211_band band; -+ const struct ieee80211_supported_band *sband; - - mutex_lock(&ar->conf_mutex); - -@@ -6621,6 +6638,30 @@ static void ath10k_bss_info_changed(stru - arvif->vdev_id, ret); - } - -+ if (changed & BSS_CHANGED_BASIC_RATES) { -+ if (WARN_ON(ath10k_mac_vif_chan(vif, &def))) { -+ mutex_unlock(&ar->conf_mutex); -+ return; -+ } -+ -+ sband = ar->hw->wiphy->bands[def.chan->band]; -+ basic_rate_idx = ffs(vif->bss_conf.basic_rates) - 1; -+ bitrate = sband->bitrates[basic_rate_idx].bitrate; -+ -+ hw_rate_code = ath10k_mac_get_rate_hw_value(bitrate); -+ if (hw_rate_code < 0) { -+ ath10k_warn(ar, "bitrate not supported %d\n", bitrate); -+ mutex_unlock(&ar->conf_mutex); -+ return; -+ } -+ -+ vdev_param = ar->wmi.vdev_param->mgmt_rate; -+ ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, -+ hw_rate_code); -+ if (ret) -+ ath10k_warn(ar, "failed to set mgmt tx rate %d\n", ret); -+ } -+ - mutex_unlock(&ar->conf_mutex); - } - diff --git a/package/kernel/ath10k-ct/patches/162-ath10k-fix-possible-out-of-bound-access-of-ath10k_ra.patch b/package/kernel/ath10k-ct/patches/162-ath10k-fix-possible-out-of-bound-access-of-ath10k_ra.patch deleted file mode 100644 index aa473e8fea..0000000000 --- a/package/kernel/ath10k-ct/patches/162-ath10k-fix-possible-out-of-bound-access-of-ath10k_ra.patch +++ /dev/null @@ -1,66 +0,0 @@ -From: Sriram R -Date: Wed, 3 Oct 2018 08:43:50 +0530 -Subject: [PATCH] ath10k: fix possible out of bound access of ath10k_rates array - -While using 'ath10k_mac_get_rate_hw_value()' to obtain the hw value -from the passed bitrate, there is a chance of out of bound array access -when wrong bitrate is passed. This is fixed by comparing the bitrates -within the correct size of the ath10k_rates array. - -Fixes commit f279294e9ee2 ("ath10k: add support for configuring management -packet rate"). Also correction made to some indents used in the above commit. - -Signed-off-by: Sriram R -Signed-off-by: Kalle Valo - -Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34e141eea7dd8525dd1ef7a925459e455b4d307f ---- ---- a/ath10k-4.19/mac.c -+++ b/ath10k-4.19/mac.c -@@ -165,7 +165,7 @@ static int ath10k_mac_get_rate_hw_value( - if (ath10k_mac_bitrate_is_cck(bitrate)) - hw_value_prefix = WMI_RATE_PREAMBLE_CCK << 6; - -- for (i = 0; i < sizeof(ath10k_rates); i++) { -+ for (i = 0; i < ARRAY_SIZE(ath10k_rates); i++) { - if (ath10k_rates[i].bitrate == bitrate) - return hw_value_prefix | ath10k_rates[i].hw_value; - } -@@ -6644,22 +6644,22 @@ static void ath10k_bss_info_changed(stru - return; - } - -- sband = ar->hw->wiphy->bands[def.chan->band]; -- basic_rate_idx = ffs(vif->bss_conf.basic_rates) - 1; -- bitrate = sband->bitrates[basic_rate_idx].bitrate; -- -- hw_rate_code = ath10k_mac_get_rate_hw_value(bitrate); -- if (hw_rate_code < 0) { -- ath10k_warn(ar, "bitrate not supported %d\n", bitrate); -- mutex_unlock(&ar->conf_mutex); -- return; -- } -+ sband = ar->hw->wiphy->bands[def.chan->band]; -+ basic_rate_idx = ffs(vif->bss_conf.basic_rates) - 1; -+ bitrate = sband->bitrates[basic_rate_idx].bitrate; -+ -+ hw_rate_code = ath10k_mac_get_rate_hw_value(bitrate); -+ if (hw_rate_code < 0) { -+ ath10k_warn(ar, "bitrate not supported %d\n", bitrate); -+ mutex_unlock(&ar->conf_mutex); -+ return; -+ } - -- vdev_param = ar->wmi.vdev_param->mgmt_rate; -- ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, -- hw_rate_code); -- if (ret) -- ath10k_warn(ar, "failed to set mgmt tx rate %d\n", ret); -+ vdev_param = ar->wmi.vdev_param->mgmt_rate; -+ ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, -+ hw_rate_code); -+ if (ret) -+ ath10k_warn(ar, "failed to set mgmt tx rate %d\n", ret); - } - - mutex_unlock(&ar->conf_mutex); diff --git a/package/kernel/ath10k-ct/patches/163-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch b/package/kernel/ath10k-ct/patches/163-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch deleted file mode 100644 index fc866f49b5..0000000000 --- a/package/kernel/ath10k-ct/patches/163-ath10k-fix-incorrect-multicast-broadcast-rate-settin.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Pradeep kumar Chitrapu -Date: Mon, 10 Dec 2018 20:56:11 -0800 -Subject: ath10k: fix incorrect multicast/broadcast rate setting - -Invalid rate code is sent to firmware when multicast rate value of 0 is -sent to driver indicating disabled case, causing broken mesh path. -so fix that. - -Tested on QCA9984 with firmware 10.4-3.6.1-00827 - -Fixes: cd93b83ad92 ("ath10k: support for multicast rate control") -Co-developed-by: Zhi Chen -Signed-off-by: Zhi Chen -Signed-off-by: Pradeep Kumar Chitrapu - -Origin: other, https://patchwork.kernel.org/patch/10723033/ - ---- a/ath10k-4.19/mac.c -+++ b/ath10k-4.19/mac.c -@@ -6429,8 +6429,8 @@ static void ath10k_bss_info_changed(stru - struct cfg80211_chan_def def; - u32 vdev_param, pdev_param, slottime, preamble; - u16 bitrate, hw_value; -- u8 rate, basic_rate_idx; -- int rateidx, ret = 0, hw_rate_code; -+ u8 rate, basic_rate_idx, rateidx; -+ int ret = 0, hw_rate_code, mcast_rate; - enum nl80211_band band; - const struct ieee80211_supported_band *sband; - -@@ -6603,7 +6603,11 @@ static void ath10k_bss_info_changed(stru - if (changed & BSS_CHANGED_MCAST_RATE && - !WARN_ON(ath10k_mac_vif_chan(arvif->vif, &def))) { - band = def.chan->band; -- rateidx = vif->bss_conf.mcast_rate[band] - 1; -+ mcast_rate = vif->bss_conf.mcast_rate[band]; -+ if (mcast_rate > 0) -+ rateidx = mcast_rate - 1; -+ else -+ rateidx = ffs(vif->bss_conf.basic_rates) - 1; - - if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY) - rateidx += ATH10K_MAC_FIRST_OFDM_RATE_IDX; diff --git a/package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch b/package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch index 05d65e24ea..4e88c8a19f 100644 --- a/package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch +++ b/package/kernel/ath10k-ct/patches/164-ath10k-commit-rates-from-mac80211.patch @@ -9,58 +9,6 @@ mcast_rate set for a wifi-iface. Signed-off-by: Sven Eckelmann ---- a/ath10k-4.19/mac.c -+++ b/ath10k-4.19/mac.c -@@ -6625,6 +6625,7 @@ static void ath10k_bss_info_changed(stru - "mac vdev %d mcast_rate %x\n", - arvif->vdev_id, rate); - -+ arvif->mcast_rate[band] = rate; - vdev_param = ar->wmi.vdev_param->mcast_data_rate; - ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, - vdev_param, rate); -@@ -6633,6 +6634,7 @@ static void ath10k_bss_info_changed(stru - "failed to set mcast rate on vdev %i: %d\n", - arvif->vdev_id, ret); - -+ arvif->bcast_rate[band] = rate; - vdev_param = ar->wmi.vdev_param->bcast_data_rate; - ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, - vdev_param, rate); -@@ -6659,6 +6661,7 @@ static void ath10k_bss_info_changed(stru - return; - } - -+ arvif->mgt_rate[def.chan->band] = hw_rate_code; - vdev_param = ar->wmi.vdev_param->mgmt_rate; - ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, - hw_rate_code); ---- a/ath10k-5.2/mac.c -+++ b/ath10k-5.2/mac.c -@@ -6742,6 +6742,7 @@ static void ath10k_bss_info_changed(stru - "mac vdev %d mcast_rate %x\n", - arvif->vdev_id, rate); - -+ arvif->mcast_rate[band] = rate; - vdev_param = ar->wmi.vdev_param->mcast_data_rate; - ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, - vdev_param, rate); -@@ -6750,6 +6751,7 @@ static void ath10k_bss_info_changed(stru - "failed to set mcast rate on vdev %i: %d\n", - arvif->vdev_id, ret); - -+ arvif->bcast_rate[band] = rate; - vdev_param = ar->wmi.vdev_param->bcast_data_rate; - ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, - vdev_param, rate); -@@ -6776,6 +6778,7 @@ static void ath10k_bss_info_changed(stru - return; - } - -+ arvif->mgt_rate[def.chan->band] = hw_rate_code; - vdev_param = ar->wmi.vdev_param->mgmt_rate; - ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, - hw_rate_code); --- a/ath10k-5.4/mac.c +++ b/ath10k-5.4/mac.c @@ -6793,6 +6793,7 @@ static void ath10k_bss_info_changed(stru diff --git a/package/kernel/ath10k-ct/patches/170-mac80211-pass-the-vif-to-cancel_remain_on_channel.patch b/package/kernel/ath10k-ct/patches/170-mac80211-pass-the-vif-to-cancel_remain_on_channel.patch deleted file mode 100644 index 180b0d5bf7..0000000000 --- a/package/kernel/ath10k-ct/patches/170-mac80211-pass-the-vif-to-cancel_remain_on_channel.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 5db4c4b9559f8cddd5f7f74e58c7b8f172120e6d Mon Sep 17 00:00:00 2001 -From: Emmanuel Grumbach -Date: Tue, 23 Jul 2019 21:00:01 +0300 -Subject: [PATCH] mac80211: pass the vif to cancel_remain_on_channel - -This low level driver can find it useful to get the vif -when a remain on channel session is cancelled. - -iwlwifi will need this soon. - -Signed-off-by: Emmanuel Grumbach -Link: https://lore.kernel.org/r/20190723180001.5828-1-emmanuel.grumbach@intel.com -Signed-off-by: Johannes Berg ---- - drivers/net/wireless/ath/ath10k/mac.c | 3 ++- - 10 files changed, 4 insertions(+), 2 deletions(-) - ---- a/ath10k-4.19/mac.c -+++ b/ath10k-4.19/mac.c -@@ -7783,7 +7783,8 @@ exit: - return ret; - } - --static int ath10k_cancel_remain_on_channel(struct ieee80211_hw *hw) -+static int ath10k_cancel_remain_on_channel(struct ieee80211_hw *hw, -+ struct ieee80211_vif *vif) - { - struct ath10k *ar = hw->priv; - ---- a/ath10k-5.2/mac.c -+++ b/ath10k-5.2/mac.c -@@ -7893,7 +7893,8 @@ exit: - return ret; - } - --static int ath10k_cancel_remain_on_channel(struct ieee80211_hw *hw) -+static int ath10k_cancel_remain_on_channel(struct ieee80211_hw *hw, -+ struct ieee80211_vif *vif) - { - struct ath10k *ar = hw->priv; - diff --git a/package/kernel/ath10k-ct/patches/201-ath10k-4.16_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch b/package/kernel/ath10k-ct/patches/201-ath10k-4.16_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch deleted file mode 100644 index 696da7b455..0000000000 --- a/package/kernel/ath10k-ct/patches/201-ath10k-4.16_add-LED-and-GPIO-controlling-support-for-various-chipsets.patch +++ /dev/null @@ -1,1634 +0,0 @@ -From: Sebastian Gottschall - -Adds LED and GPIO Control support for 988x, 9887, 9888, 99x0, 9984 based -chipsets with on chipset connected led's using WMI Firmware API. The LED -device will get available named as "ath10k-phyX" at sysfs and can be controlled -with various triggers. adds also debugfs interface for gpio control. - -This patch is specific for OpenWRt base, as is use old backported package -with old wireless source. Support for QCA9984 is removed. -Reworked to use ath10k-ct custom source - - -Signed-off-by: Sebastian Gottschall -Reviewed-by: Steve deRosier -[kvalo: major reorg and cleanup] -Signed-off-by: Kalle Valo -Signed-off-by: Ansuel Smith ---- - -v13: - -* only compile tested! - -* fix all checkpatch warnings - -* fix commit log - -* sizeof(struct ath10k_gpiocontrol) -> sizeof(*gpio) - -* unsigned -> unsigned int - -* remove GPIOLIB code, that should be added in a separate patch - -* rename gpio.c to leds.c - -* add leds.h - -* rename some functions: - - ath10k_attach_led() -> ath10k_leds_register() - ath10k_unregister_led() -> ath10k_leds_unregister() - ath10k_reset_led_pin() -> ath10k_leds_start() - -* call ath10k_leds_unregister() before ath10k_thermal_unregister() to preserve ordering - -* call ath10k_leds_start() only from ath10k_core_start() and not from mac.c - -* rename struct ath10k_gpiocontrol as anonymous function under struct - ath10k::leds, no need for memory allocation - -* merge ath10k_add_led() to ath10k_attach_led(), which is it's only caller - -* remove #if IS_ENABLED() checks from most of places, memory savings from those were not worth it - -* Kconfig help text improvement and move it lower in the menu, also don't enable it by default - -* switch to set_brightness_blocking() so that the callback can sleep, - then no need to use ath10k_wmi_cmd_send_nowait() and can take mutex - to access ar->state - -* don't touch ath10k_wmi_pdev_get_temperature() - -* as QCA6174/QCA9377 are not (yet) supported don't add the command to WMI-TLV interface - -* remove debugfs interface, that should be added in another patch - -* cleanup includes - - - ath10k-4.16/Kconfig | 10 +++ - ath10k-4.16/Makefile | 1 + - ath10k-4.16/core.c | 22 +++++++ - ath10k-4.16/core.h | 9 ++- - ath10k-4.16/hw.h | 1 + - ath10k-4.16/leds.c | 103 ++++++++++++++++++++++++++++++ - ath10k-4.16/leds.h | 45 +++++++++++++ - ath10k-4.16/mac.c | 1 + - ath10k-4.16/wmi-ops.h | 32 ++++++++++ - ath10k-4.16/wmi-tlv.c | 2 + - ath10k-4.16/wmi.c | 54 ++++++++++++++++ - ath10k-4.16/wmi.h | 35 ++++++++++ - 12 files changed, 314 insertions(+), 1 deletion(-) - create mode 100644 ath10k-4.16/leds.c - create mode 100644 ath10k-4.16/leds.h ---- a/ath10k-4.19/Kconfig -+++ b/ath10k-4.19/Kconfig -@@ -64,6 +64,16 @@ config ATH10K_DEBUGFS - - If unsure, say Y to make it easier to debug problems. - -+config ATH10K_LEDS -+ bool "Atheros ath10k LED support" -+ depends on ATH10K -+ select MAC80211_LEDS -+ select LEDS_CLASS -+ select NEW_LEDS -+ default y -+ ---help--- -+ This option is necessary, if you want LED support for chipset connected led pins. If unsure, say N. -+ - config ATH10K_SPECTRAL - bool "Atheros ath10k spectral scan support" - depends on ATH10K_DEBUGFS ---- a/ath10k-4.19/Makefile -+++ b/ath10k-4.19/Makefile -@@ -19,6 +19,7 @@ ath10k_core-$(CONFIG_ATH10K_SPECTRAL) += - ath10k_core-$(CONFIG_NL80211_TESTMODE) += testmode.o - ath10k_core-$(CONFIG_ATH10K_TRACING) += trace.o - ath10k_core-$(CONFIG_THERMAL) += thermal.o -+ath10k_core-$(CONFIG_ATH10K_LEDS) += leds.o - ath10k_core-$(CONFIG_MAC80211_DEBUGFS) += debugfs_sta.o - ath10k_core-$(CONFIG_PM) += wow.o - ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o ---- a/ath10k-4.19/core.c -+++ b/ath10k-4.19/core.c -@@ -35,6 +35,7 @@ - #include "testmode.h" - #include "wmi-ops.h" - #include "coredump.h" -+#include "leds.h" - - /* Disable ath10k-ct DBGLOG output by default */ - unsigned int ath10k_debug_mask = ATH10K_DBG_NO_DBGLOG; -@@ -72,6 +73,7 @@ static const struct ath10k_hw_params ath - .id = QCA988X_HW_2_0_VERSION, - .dev_id = QCA988X_2_0_DEVICE_ID, - .name = "qca988x hw2.0", -+ .led_pin = 1, - .patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, -@@ -137,6 +139,7 @@ static const struct ath10k_hw_params ath - .id = QCA9887_HW_1_0_VERSION, - .dev_id = QCA9887_1_0_DEVICE_ID, - .name = "qca9887 hw1.0", -+ .led_pin = 1, - .patch_load_addr = QCA9887_HW_1_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, -@@ -301,6 +304,7 @@ static const struct ath10k_hw_params ath - .id = QCA99X0_HW_2_0_DEV_VERSION, - .dev_id = QCA99X0_2_0_DEVICE_ID, - .name = "qca99x0 hw2.0", -+ .led_pin = 17, - .patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .otp_exe_param = 0x00000700, -@@ -339,6 +343,7 @@ static const struct ath10k_hw_params ath - .id = QCA9984_HW_1_0_DEV_VERSION, - .dev_id = QCA9984_1_0_DEVICE_ID, - .name = "qca9984/qca9994 hw1.0", -+ .led_pin = 17, - .patch_load_addr = QCA9984_HW_1_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, -@@ -382,6 +387,7 @@ static const struct ath10k_hw_params ath - .id = QCA9888_HW_2_0_DEV_VERSION, - .dev_id = QCA9888_2_0_DEVICE_ID, - .name = "qca9888 hw2.0", -+ .led_pin = 17, - .patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, -@@ -3176,6 +3182,10 @@ int ath10k_core_start(struct ath10k *ar, - ath10k_wmi_check_apply_board_power_ctl_table(ar); - } - -+ status = ath10k_leds_start(ar); -+ if (status) -+ goto err_hif_stop; -+ - return 0; - - err_hif_stop: -@@ -3430,9 +3440,18 @@ static void ath10k_core_register_work(st - goto err_spectral_destroy; - } - -+ status = ath10k_leds_register(ar); -+ if (status) { -+ ath10k_err(ar, "could not register leds: %d\n", -+ status); -+ goto err_thermal_unregister; -+ } -+ - set_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags); - return; - -+err_thermal_unregister: -+ ath10k_thermal_unregister(ar); - err_spectral_destroy: - ath10k_spectral_destroy(ar); - err_debug_destroy: -@@ -3490,6 +3509,8 @@ void ath10k_core_unregister(struct ath10 - if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags)) - return; - -+ ath10k_leds_unregister(ar); -+ - ath10k_thermal_unregister(ar); - /* Stop spectral before unregistering from mac80211 to remove the - * relayfs debugfs file cleanly. Otherwise the parent debugfs tree ---- a/ath10k-4.19/core.h -+++ b/ath10k-4.19/core.h -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - #include "htt.h" - #include "htc.h" -@@ -1138,7 +1139,6 @@ struct ath10k { - u32 low_5ghz_chan; - u32 high_5ghz_chan; - bool ani_enabled; -- - bool p2p; - bool ct_all_pkts_htt; /* CT firmware only: native-wifi for all pkts */ - -@@ -1391,6 +1391,13 @@ struct ath10k { - } testmode; - - struct { -+ struct gpio_led wifi_led; -+ struct led_classdev cdev; -+ char label[48]; -+ u32 gpio_state_pin; -+ } leds; -+ -+ struct { - /* protected by data_lock */ - u32 fw_crash_counter; - u32 fw_warm_reset_counter; ---- a/ath10k-4.19/hw.h -+++ b/ath10k-4.19/hw.h -@@ -508,6 +508,7 @@ struct ath10k_hw_params { - const char *name; - u32 patch_load_addr; - int uart_pin; -+ int led_pin; - u32 otp_exe_param; - - /* Type of hw cycle counter wraparound logic, for more info ---- /dev/null -+++ b/ath10k-4.19/leds.c -@@ -0,0 +1,103 @@ -+/* -+ * Copyright (c) 2005-2011 Atheros Communications Inc. -+ * Copyright (c) 2011-2017 Qualcomm Atheros, Inc. -+ * Copyright (c) 2018 Sebastian Gottschall -+ * Copyright (c) 2018, The Linux Foundation. All rights reserved. -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+#include -+ -+#include "core.h" -+#include "wmi.h" -+#include "wmi-ops.h" -+ -+#include "leds.h" -+ -+static int ath10k_leds_set_brightness_blocking(struct led_classdev *led_cdev, -+ enum led_brightness brightness) -+{ -+ struct ath10k *ar = container_of(led_cdev, struct ath10k, -+ leds.cdev); -+ struct gpio_led *led = &ar->leds.wifi_led; -+ -+ mutex_lock(&ar->conf_mutex); -+ -+ if (ar->state != ATH10K_STATE_ON) -+ goto out; -+ -+ ar->leds.gpio_state_pin = (brightness != LED_OFF) ^ led->active_low; -+ ath10k_wmi_gpio_output(ar, led->gpio, ar->leds.gpio_state_pin); -+ -+out: -+ mutex_unlock(&ar->conf_mutex); -+ -+ return 0; -+} -+ -+int ath10k_leds_start(struct ath10k *ar) -+{ -+ if (ar->hw_params.led_pin == 0) -+ /* leds not supported */ -+ return 0; -+ -+ /* under some circumstances, the gpio pin gets reconfigured -+ * to default state by the firmware, so we need to -+ * reconfigure it this behaviour has only ben seen on -+ * QCA9984 and QCA99XX devices so far -+ */ -+ ath10k_wmi_gpio_config(ar, ar->hw_params.led_pin, 0, -+ WMI_GPIO_PULL_NONE, WMI_GPIO_INTTYPE_DISABLE); -+ ath10k_wmi_gpio_output(ar, ar->hw_params.led_pin, 1); -+ -+ return 0; -+} -+ -+int ath10k_leds_register(struct ath10k *ar) -+{ -+ int ret; -+ -+ if (ar->hw_params.led_pin == 0) -+ /* leds not supported */ -+ return 0; -+ -+ snprintf(ar->leds.label, sizeof(ar->leds.label), "ath10k-%s", -+ wiphy_name(ar->hw->wiphy)); -+ ar->leds.wifi_led.active_low = 1; -+ ar->leds.wifi_led.gpio = ar->hw_params.led_pin; -+ ar->leds.wifi_led.name = ar->leds.label; -+ ar->leds.wifi_led.default_state = LEDS_GPIO_DEFSTATE_KEEP; -+ -+ ar->leds.cdev.name = ar->leds.label; -+ ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking; -+ -+ /* FIXME: this assignment doesn't make sense as it's NULL, remove it? */ -+ ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger; -+ -+ ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev); -+ if (ret) -+ return ret; -+ -+ return 0; -+} -+ -+void ath10k_leds_unregister(struct ath10k *ar) -+{ -+ if (ar->hw_params.led_pin == 0) -+ /* leds not supported */ -+ return; -+ -+ led_classdev_unregister(&ar->leds.cdev); -+} -+ ---- /dev/null -+++ b/ath10k-4.19/leds.h -@@ -0,0 +1,41 @@ -+/* -+ * Copyright (c) 2018, The Linux Foundation. All rights reserved. -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+#ifndef _LEDS_H_ -+#define _LEDS_H_ -+ -+#include "core.h" -+ -+#ifdef CONFIG_ATH10K_LEDS -+void ath10k_leds_unregister(struct ath10k *ar); -+int ath10k_leds_start(struct ath10k *ar); -+int ath10k_leds_register(struct ath10k *ar); -+#else -+static inline void ath10k_leds_unregister(struct ath10k *ar) -+{ -+} -+ -+static inline int ath10k_leds_start(struct ath10k *ar) -+{ -+ return 0; -+} -+ -+static inline int ath10k_leds_register(struct ath10k *ar) -+{ -+ return 0; -+} -+ -+#endif -+#endif /* _LEDS_H_ */ ---- a/ath10k-4.19/mac.c -+++ b/ath10k-4.19/mac.c -@@ -34,6 +34,7 @@ - #include "wmi-tlv.h" - #include "wmi-ops.h" - #include "wow.h" -+#include "leds.h" - - /*********/ - /* Rates */ ---- a/ath10k-4.19/wmi-ops.h -+++ b/ath10k-4.19/wmi-ops.h -@@ -218,7 +218,10 @@ struct wmi_ops { - struct sk_buff *(*gen_echo)(struct ath10k *ar, u32 value); - struct sk_buff *(*gen_pdev_get_tpc_table_cmdid)(struct ath10k *ar, - u32 param); -+ struct sk_buff *(*gen_gpio_config)(struct ath10k *ar, u32 gpio_num, -+ u32 input, u32 pull_type, u32 intr_mode); - -+ struct sk_buff *(*gen_gpio_output)(struct ath10k *ar, u32 gpio_num, u32 set); - }; - - int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id); -@@ -1079,6 +1082,35 @@ ath10k_wmi_force_fw_hang(struct ath10k * - return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->force_fw_hang_cmdid); - } - -+static inline int ath10k_wmi_gpio_config(struct ath10k *ar, u32 gpio_num, -+ u32 input, u32 pull_type, u32 intr_mode) -+{ -+ struct sk_buff *skb; -+ -+ if (!ar->wmi.ops->gen_gpio_config) -+ return -EOPNOTSUPP; -+ -+ skb = ar->wmi.ops->gen_gpio_config(ar, gpio_num, input, pull_type, intr_mode); -+ if (IS_ERR(skb)) -+ return PTR_ERR(skb); -+ -+ return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->gpio_config_cmdid); -+} -+ -+static inline int ath10k_wmi_gpio_output(struct ath10k *ar, u32 gpio_num, u32 set) -+{ -+ struct sk_buff *skb; -+ -+ if (!ar->wmi.ops->gen_gpio_config) -+ return -EOPNOTSUPP; -+ -+ skb = ar->wmi.ops->gen_gpio_output(ar, gpio_num, set); -+ if (IS_ERR(skb)) -+ return PTR_ERR(skb); -+ -+ return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->gpio_output_cmdid); -+} -+ - static inline int - ath10k_wmi_dbglog_cfg(struct ath10k *ar, u64 module_enable, u32 log_level) - { ---- a/ath10k-4.19/wmi-tlv.c -+++ b/ath10k-4.19/wmi-tlv.c -@@ -3976,6 +3976,8 @@ static const struct wmi_ops wmi_tlv_ops - .gen_echo = ath10k_wmi_tlv_op_gen_echo, - .gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf, - .gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable, -+ /* .gen_gpio_config not implemented */ -+ /* .gen_gpio_output not implemented */ - }; - - static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = { ---- a/ath10k-4.19/wmi.c -+++ b/ath10k-4.19/wmi.c -@@ -8071,6 +8071,49 @@ ath10k_wmi_op_gen_peer_set_param(struct - return skb; - } - -+static struct sk_buff *ath10k_wmi_op_gen_gpio_config(struct ath10k *ar, -+ u32 gpio_num, u32 input, -+ u32 pull_type, u32 intr_mode) -+{ -+ struct wmi_gpio_config_cmd *cmd; -+ struct sk_buff *skb; -+ -+ skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); -+ if (!skb) -+ return ERR_PTR(-ENOMEM); -+ -+ cmd = (struct wmi_gpio_config_cmd *)skb->data; -+ cmd->pull_type = __cpu_to_le32(pull_type); -+ cmd->gpio_num = __cpu_to_le32(gpio_num); -+ cmd->input = __cpu_to_le32(input); -+ cmd->intr_mode = __cpu_to_le32(intr_mode); -+ -+ ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi gpio_config gpio_num 0x%08x input 0x%08x pull_type 0x%08x intr_mode 0x%08x\n", -+ gpio_num, input, pull_type, intr_mode); -+ -+ return skb; -+} -+ -+static struct sk_buff *ath10k_wmi_op_gen_gpio_output(struct ath10k *ar, -+ u32 gpio_num, u32 set) -+{ -+ struct wmi_gpio_output_cmd *cmd; -+ struct sk_buff *skb; -+ -+ skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); -+ if (!skb) -+ return ERR_PTR(-ENOMEM); -+ -+ cmd = (struct wmi_gpio_output_cmd *)skb->data; -+ cmd->gpio_num = __cpu_to_le32(gpio_num); -+ cmd->set = __cpu_to_le32(set); -+ -+ ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi gpio_output gpio_num 0x%08x set 0x%08x\n", -+ gpio_num, set); -+ -+ return skb; -+} -+ - static struct sk_buff * - ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id, - enum wmi_sta_ps_mode psmode) -@@ -9824,6 +9867,9 @@ static const struct wmi_ops wmi_ops = { - .fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill, - .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, - .gen_echo = ath10k_wmi_op_gen_echo, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, -+ - /* .gen_bcn_tmpl not implemented */ - /* .gen_prb_tmpl not implemented */ - /* .gen_p2p_go_bcn_ie not implemented */ -@@ -9894,6 +9940,8 @@ static const struct wmi_ops wmi_10_1_ops - .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, - .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, - .gen_echo = ath10k_wmi_op_gen_echo, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, - /* .gen_bcn_tmpl not implemented */ - /* .gen_prb_tmpl not implemented */ - /* .gen_p2p_go_bcn_ie not implemented */ -@@ -9972,6 +10020,8 @@ static const struct wmi_ops wmi_10_2_ops - .gen_delba_send = ath10k_wmi_op_gen_delba_send, - .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, - .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, - /* .gen_pdev_enable_adaptive_cca not implemented */ - }; - -@@ -10042,6 +10092,8 @@ static const struct wmi_ops wmi_10_2_4_o - .gen_pdev_enable_adaptive_cca = - ath10k_wmi_op_gen_pdev_enable_adaptive_cca, - .get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, - /* .gen_bcn_tmpl not implemented */ - /* .gen_prb_tmpl not implemented */ - /* .gen_p2p_go_bcn_ie not implemented */ -@@ -10122,6 +10174,8 @@ static const struct wmi_ops wmi_10_4_ops - .gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info, - .gen_echo = ath10k_wmi_op_gen_echo, - .gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, - }; - - int ath10k_wmi_attach(struct ath10k *ar) ---- a/ath10k-4.19/wmi.h -+++ b/ath10k-4.19/wmi.h -@@ -3084,6 +3084,41 @@ enum wmi_10_4_feature_mask { - - }; - -+/* WMI_GPIO_CONFIG_CMDID */ -+enum { -+ WMI_GPIO_PULL_NONE, -+ WMI_GPIO_PULL_UP, -+ WMI_GPIO_PULL_DOWN, -+}; -+ -+enum { -+ WMI_GPIO_INTTYPE_DISABLE, -+ WMI_GPIO_INTTYPE_RISING_EDGE, -+ WMI_GPIO_INTTYPE_FALLING_EDGE, -+ WMI_GPIO_INTTYPE_BOTH_EDGE, -+ WMI_GPIO_INTTYPE_LEVEL_LOW, -+ WMI_GPIO_INTTYPE_LEVEL_HIGH -+}; -+ -+/* WMI_GPIO_CONFIG_CMDID */ -+struct wmi_gpio_config_cmd { -+ __le32 gpio_num; /* GPIO number to be setup */ -+ __le32 input; /* 0 - Output/ 1 - Input */ -+ __le32 pull_type; /* Pull type defined above */ -+ __le32 intr_mode; /* Interrupt mode defined above (Input) */ -+} __packed; -+ -+/* WMI_GPIO_OUTPUT_CMDID */ -+struct wmi_gpio_output_cmd { -+ __le32 gpio_num; /* GPIO number to be setup */ -+ __le32 set; /* Set the GPIO pin*/ -+} __packed; -+ -+/* WMI_GPIO_INPUT_EVENTID */ -+struct wmi_gpio_input_event { -+ __le32 gpio_num; /* GPIO number which changed state */ -+} __packed; -+ - struct wmi_ext_resource_config_10_4_cmd { - /* contains enum wmi_host_platform_type */ - __le32 host_platform_config; ---- a/ath10k-5.2/Kconfig -+++ b/ath10k-5.2/Kconfig -@@ -66,6 +66,16 @@ config ATH10K_DEBUGFS - - If unsure, say Y to make it easier to debug problems. - -+config ATH10K_LEDS -+ bool "Atheros ath10k LED support" -+ depends on ATH10K -+ select MAC80211_LEDS -+ select LEDS_CLASS -+ select NEW_LEDS -+ default y -+ ---help--- -+ This option is necessary, if you want LED support for chipset connected led pins. If unsure, say N. -+ - config ATH10K_SPECTRAL - bool "Atheros ath10k spectral scan support" - depends on ATH10K_DEBUGFS ---- a/ath10k-5.2/Makefile -+++ b/ath10k-5.2/Makefile -@@ -19,6 +19,7 @@ ath10k_core-$(CONFIG_ATH10K_SPECTRAL) += - ath10k_core-$(CONFIG_NL80211_TESTMODE) += testmode.o - ath10k_core-$(CONFIG_ATH10K_TRACING) += trace.o - ath10k_core-$(CONFIG_THERMAL) += thermal.o -+ath10k_core-$(CONFIG_ATH10K_LEDS) += leds.o - ath10k_core-$(CONFIG_MAC80211_DEBUGFS) += debugfs_sta.o - ath10k_core-$(CONFIG_PM) += wow.o - ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o ---- a/ath10k-5.2/core.c -+++ b/ath10k-5.2/core.c -@@ -25,6 +25,7 @@ - #include "testmode.h" - #include "wmi-ops.h" - #include "coredump.h" -+#include "leds.h" - - /* Disable ath10k-ct DBGLOG output by default */ - unsigned int ath10k_debug_mask = ATH10K_DBG_NO_DBGLOG; -@@ -63,6 +64,7 @@ static const struct ath10k_hw_params ath - .dev_id = QCA988X_2_0_DEVICE_ID, - .bus = ATH10K_BUS_PCI, - .name = "qca988x hw2.0", -+ .led_pin = 1, - .patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, -@@ -131,6 +133,7 @@ static const struct ath10k_hw_params ath - .dev_id = QCA9887_1_0_DEVICE_ID, - .bus = ATH10K_BUS_PCI, - .name = "qca9887 hw1.0", -+ .led_pin = 1, - .patch_load_addr = QCA9887_HW_1_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, -@@ -305,6 +308,7 @@ static const struct ath10k_hw_params ath - .dev_id = QCA99X0_2_0_DEVICE_ID, - .bus = ATH10K_BUS_PCI, - .name = "qca99x0 hw2.0", -+ .led_pin = 17, - .patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .otp_exe_param = 0x00000700, -@@ -345,6 +349,7 @@ static const struct ath10k_hw_params ath - .dev_id = QCA9984_1_0_DEVICE_ID, - .bus = ATH10K_BUS_PCI, - .name = "qca9984/qca9994 hw1.0", -+ .led_pin = 17, - .patch_load_addr = QCA9984_HW_1_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, -@@ -392,6 +397,7 @@ static const struct ath10k_hw_params ath - .dev_id = QCA9888_2_0_DEVICE_ID, - .bus = ATH10K_BUS_PCI, - .name = "qca9888 hw2.0", -+ .led_pin = 17, - .patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, -@@ -3503,6 +3509,10 @@ int ath10k_core_start(struct ath10k *ar, - ath10k_wmi_check_apply_board_power_ctl_table(ar); - } - -+ status = ath10k_leds_start(ar); -+ if (status) -+ goto err_hif_stop; -+ - return 0; - - err_hif_stop: -@@ -3759,9 +3769,18 @@ static void ath10k_core_register_work(st - goto err_spectral_destroy; - } - -+ status = ath10k_leds_register(ar); -+ if (status) { -+ ath10k_err(ar, "could not register leds: %d\n", -+ status); -+ goto err_thermal_unregister; -+ } -+ - set_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags); - return; - -+err_thermal_unregister: -+ ath10k_thermal_unregister(ar); - err_spectral_destroy: - ath10k_spectral_destroy(ar); - err_debug_destroy: -@@ -3821,6 +3840,8 @@ void ath10k_core_unregister(struct ath10 - if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags)) - return; - -+ ath10k_leds_unregister(ar); -+ - ath10k_thermal_unregister(ar); - /* Stop spectral before unregistering from mac80211 to remove the - * relayfs debugfs file cleanly. Otherwise the parent debugfs tree ---- a/ath10k-5.2/core.h -+++ b/ath10k-5.2/core.h -@@ -14,6 +14,7 @@ - #include - #include - #include -+#include - - #include "htt.h" - #include "htc.h" -@@ -1449,6 +1450,13 @@ struct ath10k { - } testmode; - - struct { -+ struct gpio_led wifi_led; -+ struct led_classdev cdev; -+ char label[48]; -+ u32 gpio_state_pin; -+ } leds; -+ -+ struct { - /* protected by data_lock */ - u32 fw_crash_counter; - u32 fw_warm_reset_counter; ---- a/ath10k-5.2/hw.h -+++ b/ath10k-5.2/hw.h -@@ -515,6 +515,7 @@ struct ath10k_hw_params { - const char *name; - u32 patch_load_addr; - int uart_pin; -+ int led_pin; - u32 otp_exe_param; - - /* Type of hw cycle counter wraparound logic, for more info ---- /dev/null -+++ b/ath10k-5.2/leds.c -@@ -0,0 +1,103 @@ -+/* -+ * Copyright (c) 2005-2011 Atheros Communications Inc. -+ * Copyright (c) 2011-2017 Qualcomm Atheros, Inc. -+ * Copyright (c) 2018 Sebastian Gottschall -+ * Copyright (c) 2018, The Linux Foundation. All rights reserved. -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+#include -+ -+#include "core.h" -+#include "wmi.h" -+#include "wmi-ops.h" -+ -+#include "leds.h" -+ -+static int ath10k_leds_set_brightness_blocking(struct led_classdev *led_cdev, -+ enum led_brightness brightness) -+{ -+ struct ath10k *ar = container_of(led_cdev, struct ath10k, -+ leds.cdev); -+ struct gpio_led *led = &ar->leds.wifi_led; -+ -+ mutex_lock(&ar->conf_mutex); -+ -+ if (ar->state != ATH10K_STATE_ON) -+ goto out; -+ -+ ar->leds.gpio_state_pin = (brightness != LED_OFF) ^ led->active_low; -+ ath10k_wmi_gpio_output(ar, led->gpio, ar->leds.gpio_state_pin); -+ -+out: -+ mutex_unlock(&ar->conf_mutex); -+ -+ return 0; -+} -+ -+int ath10k_leds_start(struct ath10k *ar) -+{ -+ if (ar->hw_params.led_pin == 0) -+ /* leds not supported */ -+ return 0; -+ -+ /* under some circumstances, the gpio pin gets reconfigured -+ * to default state by the firmware, so we need to -+ * reconfigure it this behaviour has only ben seen on -+ * QCA9984 and QCA99XX devices so far -+ */ -+ ath10k_wmi_gpio_config(ar, ar->hw_params.led_pin, 0, -+ WMI_GPIO_PULL_NONE, WMI_GPIO_INTTYPE_DISABLE); -+ ath10k_wmi_gpio_output(ar, ar->hw_params.led_pin, 1); -+ -+ return 0; -+} -+ -+int ath10k_leds_register(struct ath10k *ar) -+{ -+ int ret; -+ -+ if (ar->hw_params.led_pin == 0) -+ /* leds not supported */ -+ return 0; -+ -+ snprintf(ar->leds.label, sizeof(ar->leds.label), "ath10k-%s", -+ wiphy_name(ar->hw->wiphy)); -+ ar->leds.wifi_led.active_low = 1; -+ ar->leds.wifi_led.gpio = ar->hw_params.led_pin; -+ ar->leds.wifi_led.name = ar->leds.label; -+ ar->leds.wifi_led.default_state = LEDS_GPIO_DEFSTATE_KEEP; -+ -+ ar->leds.cdev.name = ar->leds.label; -+ ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking; -+ -+ /* FIXME: this assignment doesn't make sense as it's NULL, remove it? */ -+ ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger; -+ -+ ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev); -+ if (ret) -+ return ret; -+ -+ return 0; -+} -+ -+void ath10k_leds_unregister(struct ath10k *ar) -+{ -+ if (ar->hw_params.led_pin == 0) -+ /* leds not supported */ -+ return; -+ -+ led_classdev_unregister(&ar->leds.cdev); -+} -+ ---- /dev/null -+++ b/ath10k-5.2/leds.h -@@ -0,0 +1,41 @@ -+/* -+ * Copyright (c) 2018, The Linux Foundation. All rights reserved. -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+#ifndef _LEDS_H_ -+#define _LEDS_H_ -+ -+#include "core.h" -+ -+#ifdef CONFIG_ATH10K_LEDS -+void ath10k_leds_unregister(struct ath10k *ar); -+int ath10k_leds_start(struct ath10k *ar); -+int ath10k_leds_register(struct ath10k *ar); -+#else -+static inline void ath10k_leds_unregister(struct ath10k *ar) -+{ -+} -+ -+static inline int ath10k_leds_start(struct ath10k *ar) -+{ -+ return 0; -+} -+ -+static inline int ath10k_leds_register(struct ath10k *ar) -+{ -+ return 0; -+} -+ -+#endif -+#endif /* _LEDS_H_ */ ---- a/ath10k-5.2/mac.c -+++ b/ath10k-5.2/mac.c -@@ -24,6 +24,7 @@ - #include "wmi-tlv.h" - #include "wmi-ops.h" - #include "wow.h" -+#include "leds.h" - - /*********/ - /* Rates */ ---- a/ath10k-5.2/wmi-ops.h -+++ b/ath10k-5.2/wmi-ops.h -@@ -218,7 +218,10 @@ struct wmi_ops { - struct sk_buff *(*gen_bb_timing) - (struct ath10k *ar, - const struct wmi_bb_timing_cfg_arg *arg); -+ struct sk_buff *(*gen_gpio_config)(struct ath10k *ar, u32 gpio_num, -+ u32 input, u32 pull_type, u32 intr_mode); - -+ struct sk_buff *(*gen_gpio_output)(struct ath10k *ar, u32 gpio_num, u32 set); - }; - - int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id); -@@ -1105,6 +1108,35 @@ ath10k_wmi_force_fw_hang(struct ath10k * - return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->force_fw_hang_cmdid); - } - -+static inline int ath10k_wmi_gpio_config(struct ath10k *ar, u32 gpio_num, -+ u32 input, u32 pull_type, u32 intr_mode) -+{ -+ struct sk_buff *skb; -+ -+ if (!ar->wmi.ops->gen_gpio_config) -+ return -EOPNOTSUPP; -+ -+ skb = ar->wmi.ops->gen_gpio_config(ar, gpio_num, input, pull_type, intr_mode); -+ if (IS_ERR(skb)) -+ return PTR_ERR(skb); -+ -+ return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->gpio_config_cmdid); -+} -+ -+static inline int ath10k_wmi_gpio_output(struct ath10k *ar, u32 gpio_num, u32 set) -+{ -+ struct sk_buff *skb; -+ -+ if (!ar->wmi.ops->gen_gpio_config) -+ return -EOPNOTSUPP; -+ -+ skb = ar->wmi.ops->gen_gpio_output(ar, gpio_num, set); -+ if (IS_ERR(skb)) -+ return PTR_ERR(skb); -+ -+ return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->gpio_output_cmdid); -+} -+ - static inline int - ath10k_wmi_dbglog_cfg(struct ath10k *ar, u64 module_enable, u32 log_level) - { ---- a/ath10k-5.2/wmi-tlv.c -+++ b/ath10k-5.2/wmi-tlv.c -@@ -4311,6 +4311,8 @@ static const struct wmi_ops wmi_tlv_ops - .gen_echo = ath10k_wmi_tlv_op_gen_echo, - .gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf, - .gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable, -+ /* .gen_gpio_config not implemented */ -+ /* .gen_gpio_output not implemented */ - }; - - static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = { ---- a/ath10k-5.2/wmi.c -+++ b/ath10k-5.2/wmi.c -@@ -8295,6 +8295,49 @@ ath10k_wmi_op_gen_peer_set_param(struct - return skb; - } - -+static struct sk_buff *ath10k_wmi_op_gen_gpio_config(struct ath10k *ar, -+ u32 gpio_num, u32 input, -+ u32 pull_type, u32 intr_mode) -+{ -+ struct wmi_gpio_config_cmd *cmd; -+ struct sk_buff *skb; -+ -+ skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); -+ if (!skb) -+ return ERR_PTR(-ENOMEM); -+ -+ cmd = (struct wmi_gpio_config_cmd *)skb->data; -+ cmd->pull_type = __cpu_to_le32(pull_type); -+ cmd->gpio_num = __cpu_to_le32(gpio_num); -+ cmd->input = __cpu_to_le32(input); -+ cmd->intr_mode = __cpu_to_le32(intr_mode); -+ -+ ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi gpio_config gpio_num 0x%08x input 0x%08x pull_type 0x%08x intr_mode 0x%08x\n", -+ gpio_num, input, pull_type, intr_mode); -+ -+ return skb; -+} -+ -+static struct sk_buff *ath10k_wmi_op_gen_gpio_output(struct ath10k *ar, -+ u32 gpio_num, u32 set) -+{ -+ struct wmi_gpio_output_cmd *cmd; -+ struct sk_buff *skb; -+ -+ skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); -+ if (!skb) -+ return ERR_PTR(-ENOMEM); -+ -+ cmd = (struct wmi_gpio_output_cmd *)skb->data; -+ cmd->gpio_num = __cpu_to_le32(gpio_num); -+ cmd->set = __cpu_to_le32(set); -+ -+ ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi gpio_output gpio_num 0x%08x set 0x%08x\n", -+ gpio_num, set); -+ -+ return skb; -+} -+ - static struct sk_buff * - ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id, - enum wmi_sta_ps_mode psmode) -@@ -10069,6 +10112,9 @@ static const struct wmi_ops wmi_ops = { - .fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill, - .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, - .gen_echo = ath10k_wmi_op_gen_echo, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, -+ - /* .gen_bcn_tmpl not implemented */ - /* .gen_prb_tmpl not implemented */ - /* .gen_p2p_go_bcn_ie not implemented */ -@@ -10139,6 +10185,8 @@ static const struct wmi_ops wmi_10_1_ops - .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, - .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, - .gen_echo = ath10k_wmi_op_gen_echo, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, - /* .gen_bcn_tmpl not implemented */ - /* .gen_prb_tmpl not implemented */ - /* .gen_p2p_go_bcn_ie not implemented */ -@@ -10218,6 +10266,8 @@ static const struct wmi_ops wmi_10_2_ops - .gen_delba_send = ath10k_wmi_op_gen_delba_send, - .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, - .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, - /* .gen_pdev_enable_adaptive_cca not implemented */ - }; - -@@ -10289,6 +10339,8 @@ static const struct wmi_ops wmi_10_2_4_o - ath10k_wmi_op_gen_pdev_enable_adaptive_cca, - .get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype, - .gen_bb_timing = ath10k_wmi_10_2_4_op_gen_bb_timing, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, - /* .gen_bcn_tmpl not implemented */ - /* .gen_prb_tmpl not implemented */ - /* .gen_p2p_go_bcn_ie not implemented */ -@@ -10370,6 +10422,8 @@ static const struct wmi_ops wmi_10_4_ops - .gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info, - .gen_echo = ath10k_wmi_op_gen_echo, - .gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, - }; - - int ath10k_wmi_attach(struct ath10k *ar) ---- a/ath10k-5.2/wmi.h -+++ b/ath10k-5.2/wmi.h -@@ -3103,6 +3103,41 @@ enum wmi_10_4_feature_mask { - - }; - -+/* WMI_GPIO_CONFIG_CMDID */ -+enum { -+ WMI_GPIO_PULL_NONE, -+ WMI_GPIO_PULL_UP, -+ WMI_GPIO_PULL_DOWN, -+}; -+ -+enum { -+ WMI_GPIO_INTTYPE_DISABLE, -+ WMI_GPIO_INTTYPE_RISING_EDGE, -+ WMI_GPIO_INTTYPE_FALLING_EDGE, -+ WMI_GPIO_INTTYPE_BOTH_EDGE, -+ WMI_GPIO_INTTYPE_LEVEL_LOW, -+ WMI_GPIO_INTTYPE_LEVEL_HIGH -+}; -+ -+/* WMI_GPIO_CONFIG_CMDID */ -+struct wmi_gpio_config_cmd { -+ __le32 gpio_num; /* GPIO number to be setup */ -+ __le32 input; /* 0 - Output/ 1 - Input */ -+ __le32 pull_type; /* Pull type defined above */ -+ __le32 intr_mode; /* Interrupt mode defined above (Input) */ -+} __packed; -+ -+/* WMI_GPIO_OUTPUT_CMDID */ -+struct wmi_gpio_output_cmd { -+ __le32 gpio_num; /* GPIO number to be setup */ -+ __le32 set; /* Set the GPIO pin*/ -+} __packed; -+ -+/* WMI_GPIO_INPUT_EVENTID */ -+struct wmi_gpio_input_event { -+ __le32 gpio_num; /* GPIO number which changed state */ -+} __packed; -+ - struct wmi_ext_resource_config_10_4_cmd { - /* contains enum wmi_host_platform_type */ - __le32 host_platform_config; ---- a/ath10k-5.4/Kconfig -+++ b/ath10k-5.4/Kconfig -@@ -66,6 +66,16 @@ config ATH10K_DEBUGFS - - If unsure, say Y to make it easier to debug problems. - -+config ATH10K_LEDS -+ bool "Atheros ath10k LED support" -+ depends on ATH10K -+ select MAC80211_LEDS -+ select LEDS_CLASS -+ select NEW_LEDS -+ default y -+ ---help--- -+ This option is necessary, if you want LED support for chipset connected led pins. If unsure, say N. -+ - config ATH10K_SPECTRAL - bool "Atheros ath10k spectral scan support" - depends on ATH10K_DEBUGFS ---- a/ath10k-5.4/Makefile -+++ b/ath10k-5.4/Makefile -@@ -19,6 +19,7 @@ ath10k_core-$(CONFIG_ATH10K_SPECTRAL) += - ath10k_core-$(CONFIG_NL80211_TESTMODE) += testmode.o - ath10k_core-$(CONFIG_ATH10K_TRACING) += trace.o - ath10k_core-$(CONFIG_THERMAL) += thermal.o -+ath10k_core-$(CONFIG_ATH10K_LEDS) += leds.o - ath10k_core-$(CONFIG_MAC80211_DEBUGFS) += debugfs_sta.o - ath10k_core-$(CONFIG_PM) += wow.o - ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o ---- a/ath10k-5.4/core.c -+++ b/ath10k-5.4/core.c -@@ -25,6 +25,7 @@ - #include "testmode.h" - #include "wmi-ops.h" - #include "coredump.h" -+#include "leds.h" - - /* Disable ath10k-ct DBGLOG output by default */ - unsigned int ath10k_debug_mask = ATH10K_DBG_NO_DBGLOG; -@@ -67,6 +68,7 @@ static const struct ath10k_hw_params ath - .dev_id = QCA988X_2_0_DEVICE_ID, - .bus = ATH10K_BUS_PCI, - .name = "qca988x hw2.0", -+ .led_pin = 1, - .patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, -@@ -137,6 +139,7 @@ static const struct ath10k_hw_params ath - .dev_id = QCA9887_1_0_DEVICE_ID, - .bus = ATH10K_BUS_PCI, - .name = "qca9887 hw1.0", -+ .led_pin = 1, - .patch_load_addr = QCA9887_HW_1_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, -@@ -344,6 +347,7 @@ static const struct ath10k_hw_params ath - .dev_id = QCA99X0_2_0_DEVICE_ID, - .bus = ATH10K_BUS_PCI, - .name = "qca99x0 hw2.0", -+ .led_pin = 17, - .patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .otp_exe_param = 0x00000700, -@@ -385,6 +389,7 @@ static const struct ath10k_hw_params ath - .dev_id = QCA9984_1_0_DEVICE_ID, - .bus = ATH10K_BUS_PCI, - .name = "qca9984/qca9994 hw1.0", -+ .led_pin = 17, - .patch_load_addr = QCA9984_HW_1_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, -@@ -433,6 +438,7 @@ static const struct ath10k_hw_params ath - .dev_id = QCA9888_2_0_DEVICE_ID, - .bus = ATH10K_BUS_PCI, - .name = "qca9888 hw2.0", -+ .led_pin = 17, - .patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR, - .uart_pin = 7, - .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, -@@ -3573,6 +3579,10 @@ int ath10k_core_start(struct ath10k *ar, - ath10k_wmi_check_apply_board_power_ctl_table(ar); - } - -+ status = ath10k_leds_start(ar); -+ if (status) -+ goto err_hif_stop; -+ - return 0; - - err_hif_stop: -@@ -3829,9 +3839,18 @@ static void ath10k_core_register_work(st - goto err_spectral_destroy; - } - -+ status = ath10k_leds_register(ar); -+ if (status) { -+ ath10k_err(ar, "could not register leds: %d\n", -+ status); -+ goto err_thermal_unregister; -+ } -+ - set_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags); - return; - -+err_thermal_unregister: -+ ath10k_thermal_unregister(ar); - err_spectral_destroy: - ath10k_spectral_destroy(ar); - err_debug_destroy: -@@ -3891,6 +3910,8 @@ void ath10k_core_unregister(struct ath10 - if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags)) - return; - -+ ath10k_leds_unregister(ar); -+ - ath10k_thermal_unregister(ar); - /* Stop spectral before unregistering from mac80211 to remove the - * relayfs debugfs file cleanly. Otherwise the parent debugfs tree ---- a/ath10k-5.4/core.h -+++ b/ath10k-5.4/core.h -@@ -14,6 +14,7 @@ - #include - #include - #include -+#include - - #include "htt.h" - #include "htc.h" -@@ -1469,6 +1470,13 @@ struct ath10k { - } testmode; - - struct { -+ struct gpio_led wifi_led; -+ struct led_classdev cdev; -+ char label[48]; -+ u32 gpio_state_pin; -+ } leds; -+ -+ struct { - /* protected by data_lock */ - u32 fw_crash_counter; - u32 fw_warm_reset_counter; ---- a/ath10k-5.4/hw.h -+++ b/ath10k-5.4/hw.h -@@ -518,6 +518,7 @@ struct ath10k_hw_params { - const char *name; - u32 patch_load_addr; - int uart_pin; -+ int led_pin; - u32 otp_exe_param; - - /* Type of hw cycle counter wraparound logic, for more info ---- /dev/null -+++ b/ath10k-5.4/leds.c -@@ -0,0 +1,103 @@ -+/* -+ * Copyright (c) 2005-2011 Atheros Communications Inc. -+ * Copyright (c) 2011-2017 Qualcomm Atheros, Inc. -+ * Copyright (c) 2018 Sebastian Gottschall -+ * Copyright (c) 2018, The Linux Foundation. All rights reserved. -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+#include -+ -+#include "core.h" -+#include "wmi.h" -+#include "wmi-ops.h" -+ -+#include "leds.h" -+ -+static int ath10k_leds_set_brightness_blocking(struct led_classdev *led_cdev, -+ enum led_brightness brightness) -+{ -+ struct ath10k *ar = container_of(led_cdev, struct ath10k, -+ leds.cdev); -+ struct gpio_led *led = &ar->leds.wifi_led; -+ -+ mutex_lock(&ar->conf_mutex); -+ -+ if (ar->state != ATH10K_STATE_ON) -+ goto out; -+ -+ ar->leds.gpio_state_pin = (brightness != LED_OFF) ^ led->active_low; -+ ath10k_wmi_gpio_output(ar, led->gpio, ar->leds.gpio_state_pin); -+ -+out: -+ mutex_unlock(&ar->conf_mutex); -+ -+ return 0; -+} -+ -+int ath10k_leds_start(struct ath10k *ar) -+{ -+ if (ar->hw_params.led_pin == 0) -+ /* leds not supported */ -+ return 0; -+ -+ /* under some circumstances, the gpio pin gets reconfigured -+ * to default state by the firmware, so we need to -+ * reconfigure it this behaviour has only ben seen on -+ * QCA9984 and QCA99XX devices so far -+ */ -+ ath10k_wmi_gpio_config(ar, ar->hw_params.led_pin, 0, -+ WMI_GPIO_PULL_NONE, WMI_GPIO_INTTYPE_DISABLE); -+ ath10k_wmi_gpio_output(ar, ar->hw_params.led_pin, 1); -+ -+ return 0; -+} -+ -+int ath10k_leds_register(struct ath10k *ar) -+{ -+ int ret; -+ -+ if (ar->hw_params.led_pin == 0) -+ /* leds not supported */ -+ return 0; -+ -+ snprintf(ar->leds.label, sizeof(ar->leds.label), "ath10k-%s", -+ wiphy_name(ar->hw->wiphy)); -+ ar->leds.wifi_led.active_low = 1; -+ ar->leds.wifi_led.gpio = ar->hw_params.led_pin; -+ ar->leds.wifi_led.name = ar->leds.label; -+ ar->leds.wifi_led.default_state = LEDS_GPIO_DEFSTATE_KEEP; -+ -+ ar->leds.cdev.name = ar->leds.label; -+ ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking; -+ -+ /* FIXME: this assignment doesn't make sense as it's NULL, remove it? */ -+ ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger; -+ -+ ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev); -+ if (ret) -+ return ret; -+ -+ return 0; -+} -+ -+void ath10k_leds_unregister(struct ath10k *ar) -+{ -+ if (ar->hw_params.led_pin == 0) -+ /* leds not supported */ -+ return; -+ -+ led_classdev_unregister(&ar->leds.cdev); -+} -+ ---- /dev/null -+++ b/ath10k-5.4/leds.h -@@ -0,0 +1,41 @@ -+/* -+ * Copyright (c) 2018, The Linux Foundation. All rights reserved. -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+#ifndef _LEDS_H_ -+#define _LEDS_H_ -+ -+#include "core.h" -+ -+#ifdef CONFIG_ATH10K_LEDS -+void ath10k_leds_unregister(struct ath10k *ar); -+int ath10k_leds_start(struct ath10k *ar); -+int ath10k_leds_register(struct ath10k *ar); -+#else -+static inline void ath10k_leds_unregister(struct ath10k *ar) -+{ -+} -+ -+static inline int ath10k_leds_start(struct ath10k *ar) -+{ -+ return 0; -+} -+ -+static inline int ath10k_leds_register(struct ath10k *ar) -+{ -+ return 0; -+} -+ -+#endif -+#endif /* _LEDS_H_ */ ---- a/ath10k-5.4/mac.c -+++ b/ath10k-5.4/mac.c -@@ -24,6 +24,7 @@ - #include "wmi-tlv.h" - #include "wmi-ops.h" - #include "wow.h" -+#include "leds.h" - - /*********/ - /* Rates */ ---- a/ath10k-5.4/wmi-ops.h -+++ b/ath10k-5.4/wmi-ops.h -@@ -218,7 +218,10 @@ struct wmi_ops { - struct sk_buff *(*gen_bb_timing) - (struct ath10k *ar, - const struct wmi_bb_timing_cfg_arg *arg); -+ struct sk_buff *(*gen_gpio_config)(struct ath10k *ar, u32 gpio_num, -+ u32 input, u32 pull_type, u32 intr_mode); - -+ struct sk_buff *(*gen_gpio_output)(struct ath10k *ar, u32 gpio_num, u32 set); - }; - - int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id); -@@ -1105,6 +1108,35 @@ ath10k_wmi_force_fw_hang(struct ath10k * - return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->force_fw_hang_cmdid); - } - -+static inline int ath10k_wmi_gpio_config(struct ath10k *ar, u32 gpio_num, -+ u32 input, u32 pull_type, u32 intr_mode) -+{ -+ struct sk_buff *skb; -+ -+ if (!ar->wmi.ops->gen_gpio_config) -+ return -EOPNOTSUPP; -+ -+ skb = ar->wmi.ops->gen_gpio_config(ar, gpio_num, input, pull_type, intr_mode); -+ if (IS_ERR(skb)) -+ return PTR_ERR(skb); -+ -+ return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->gpio_config_cmdid); -+} -+ -+static inline int ath10k_wmi_gpio_output(struct ath10k *ar, u32 gpio_num, u32 set) -+{ -+ struct sk_buff *skb; -+ -+ if (!ar->wmi.ops->gen_gpio_config) -+ return -EOPNOTSUPP; -+ -+ skb = ar->wmi.ops->gen_gpio_output(ar, gpio_num, set); -+ if (IS_ERR(skb)) -+ return PTR_ERR(skb); -+ -+ return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->gpio_output_cmdid); -+} -+ - static inline int - ath10k_wmi_dbglog_cfg(struct ath10k *ar, u64 module_enable, u32 log_level) - { ---- a/ath10k-5.4/wmi-tlv.c -+++ b/ath10k-5.4/wmi-tlv.c -@@ -4364,6 +4364,8 @@ static const struct wmi_ops wmi_tlv_ops - .gen_echo = ath10k_wmi_tlv_op_gen_echo, - .gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf, - .gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable, -+ /* .gen_gpio_config not implemented */ -+ /* .gen_gpio_output not implemented */ - }; - - static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = { ---- a/ath10k-5.4/wmi.c -+++ b/ath10k-5.4/wmi.c -@@ -8295,6 +8295,49 @@ ath10k_wmi_op_gen_peer_set_param(struct - return skb; - } - -+static struct sk_buff *ath10k_wmi_op_gen_gpio_config(struct ath10k *ar, -+ u32 gpio_num, u32 input, -+ u32 pull_type, u32 intr_mode) -+{ -+ struct wmi_gpio_config_cmd *cmd; -+ struct sk_buff *skb; -+ -+ skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); -+ if (!skb) -+ return ERR_PTR(-ENOMEM); -+ -+ cmd = (struct wmi_gpio_config_cmd *)skb->data; -+ cmd->pull_type = __cpu_to_le32(pull_type); -+ cmd->gpio_num = __cpu_to_le32(gpio_num); -+ cmd->input = __cpu_to_le32(input); -+ cmd->intr_mode = __cpu_to_le32(intr_mode); -+ -+ ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi gpio_config gpio_num 0x%08x input 0x%08x pull_type 0x%08x intr_mode 0x%08x\n", -+ gpio_num, input, pull_type, intr_mode); -+ -+ return skb; -+} -+ -+static struct sk_buff *ath10k_wmi_op_gen_gpio_output(struct ath10k *ar, -+ u32 gpio_num, u32 set) -+{ -+ struct wmi_gpio_output_cmd *cmd; -+ struct sk_buff *skb; -+ -+ skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); -+ if (!skb) -+ return ERR_PTR(-ENOMEM); -+ -+ cmd = (struct wmi_gpio_output_cmd *)skb->data; -+ cmd->gpio_num = __cpu_to_le32(gpio_num); -+ cmd->set = __cpu_to_le32(set); -+ -+ ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi gpio_output gpio_num 0x%08x set 0x%08x\n", -+ gpio_num, set); -+ -+ return skb; -+} -+ - static struct sk_buff * - ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id, - enum wmi_sta_ps_mode psmode) -@@ -10094,6 +10137,9 @@ static const struct wmi_ops wmi_ops = { - .fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill, - .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, - .gen_echo = ath10k_wmi_op_gen_echo, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, -+ - /* .gen_bcn_tmpl not implemented */ - /* .gen_prb_tmpl not implemented */ - /* .gen_p2p_go_bcn_ie not implemented */ -@@ -10164,6 +10210,8 @@ static const struct wmi_ops wmi_10_1_ops - .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, - .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, - .gen_echo = ath10k_wmi_op_gen_echo, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, - /* .gen_bcn_tmpl not implemented */ - /* .gen_prb_tmpl not implemented */ - /* .gen_p2p_go_bcn_ie not implemented */ -@@ -10243,6 +10291,8 @@ static const struct wmi_ops wmi_10_2_ops - .gen_delba_send = ath10k_wmi_op_gen_delba_send, - .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, - .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, - /* .gen_pdev_enable_adaptive_cca not implemented */ - }; - -@@ -10314,6 +10364,8 @@ static const struct wmi_ops wmi_10_2_4_o - ath10k_wmi_op_gen_pdev_enable_adaptive_cca, - .get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype, - .gen_bb_timing = ath10k_wmi_10_2_4_op_gen_bb_timing, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, - /* .gen_bcn_tmpl not implemented */ - /* .gen_prb_tmpl not implemented */ - /* .gen_p2p_go_bcn_ie not implemented */ -@@ -10395,6 +10447,8 @@ static const struct wmi_ops wmi_10_4_ops - .gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info, - .gen_echo = ath10k_wmi_op_gen_echo, - .gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config, -+ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, -+ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, - }; - - int ath10k_wmi_attach(struct ath10k *ar) ---- a/ath10k-5.4/wmi.h -+++ b/ath10k-5.4/wmi.h -@@ -3110,6 +3110,41 @@ enum wmi_10_4_feature_mask { - - }; - -+/* WMI_GPIO_CONFIG_CMDID */ -+enum { -+ WMI_GPIO_PULL_NONE, -+ WMI_GPIO_PULL_UP, -+ WMI_GPIO_PULL_DOWN, -+}; -+ -+enum { -+ WMI_GPIO_INTTYPE_DISABLE, -+ WMI_GPIO_INTTYPE_RISING_EDGE, -+ WMI_GPIO_INTTYPE_FALLING_EDGE, -+ WMI_GPIO_INTTYPE_BOTH_EDGE, -+ WMI_GPIO_INTTYPE_LEVEL_LOW, -+ WMI_GPIO_INTTYPE_LEVEL_HIGH -+}; -+ -+/* WMI_GPIO_CONFIG_CMDID */ -+struct wmi_gpio_config_cmd { -+ __le32 gpio_num; /* GPIO number to be setup */ -+ __le32 input; /* 0 - Output/ 1 - Input */ -+ __le32 pull_type; /* Pull type defined above */ -+ __le32 intr_mode; /* Interrupt mode defined above (Input) */ -+} __packed; -+ -+/* WMI_GPIO_OUTPUT_CMDID */ -+struct wmi_gpio_output_cmd { -+ __le32 gpio_num; /* GPIO number to be setup */ -+ __le32 set; /* Set the GPIO pin*/ -+} __packed; -+ -+/* WMI_GPIO_INPUT_EVENTID */ -+struct wmi_gpio_input_event { -+ __le32 gpio_num; /* GPIO number which changed state */ -+} __packed; -+ - struct wmi_ext_resource_config_10_4_cmd { - /* contains enum wmi_host_platform_type */ - __le32 host_platform_config; diff --git a/package/kernel/ath10k-ct/patches/201-ath10k-add-LED-and-GPIO-controlling-support-for-various-chipsets.patch b/package/kernel/ath10k-ct/patches/201-ath10k-add-LED-and-GPIO-controlling-support-for-various-chipsets.patch new file mode 100644 index 0000000000..c20800209d --- /dev/null +++ b/package/kernel/ath10k-ct/patches/201-ath10k-add-LED-and-GPIO-controlling-support-for-various-chipsets.patch @@ -0,0 +1,598 @@ +From: Sebastian Gottschall + +Adds LED and GPIO Control support for 988x, 9887, 9888, 99x0, 9984 based +chipsets with on chipset connected led's using WMI Firmware API. The LED +device will get available named as "ath10k-phyX" at sysfs and can be controlled +with various triggers. adds also debugfs interface for gpio control. + +This patch is specific for OpenWRt base, as is use old backported package +with old wireless source. Support for QCA9984 is removed. +Reworked to use ath10k-ct custom source + + +Signed-off-by: Sebastian Gottschall +Reviewed-by: Steve deRosier +[kvalo: major reorg and cleanup] +Signed-off-by: Kalle Valo +Signed-off-by: Ansuel Smith +--- + +v13: + +* only compile tested! + +* fix all checkpatch warnings + +* fix commit log + +* sizeof(struct ath10k_gpiocontrol) -> sizeof(*gpio) + +* unsigned -> unsigned int + +* remove GPIOLIB code, that should be added in a separate patch + +* rename gpio.c to leds.c + +* add leds.h + +* rename some functions: + + ath10k_attach_led() -> ath10k_leds_register() + ath10k_unregister_led() -> ath10k_leds_unregister() + ath10k_reset_led_pin() -> ath10k_leds_start() + +* call ath10k_leds_unregister() before ath10k_thermal_unregister() to preserve ordering + +* call ath10k_leds_start() only from ath10k_core_start() and not from mac.c + +* rename struct ath10k_gpiocontrol as anonymous function under struct + ath10k::leds, no need for memory allocation + +* merge ath10k_add_led() to ath10k_attach_led(), which is it's only caller + +* remove #if IS_ENABLED() checks from most of places, memory savings from those were not worth it + +* Kconfig help text improvement and move it lower in the menu, also don't enable it by default + +* switch to set_brightness_blocking() so that the callback can sleep, + then no need to use ath10k_wmi_cmd_send_nowait() and can take mutex + to access ar->state + +* don't touch ath10k_wmi_pdev_get_temperature() + +* as QCA6174/QCA9377 are not (yet) supported don't add the command to WMI-TLV interface + +* remove debugfs interface, that should be added in another patch + +* cleanup includes + + ath10k-5.4/Kconfig | 10 +++ + ath10k-5.4/Makefile | 1 + + ath10k-5.4/core.c | 22 +++++++ + ath10k-5.4/core.h | 9 ++- + ath10k-5.4/hw.h | 1 + + ath10k-5.4/leds.c | 103 ++++++++++++++++++++++++++++++ + ath10k-5.4/leds.h | 45 +++++++++++++ + ath10k-5.4/mac.c | 1 + + ath10k-5.4/wmi-ops.h | 32 ++++++++++ + ath10k-5.4/wmi-tlv.c | 2 + + ath10k-5.4/wmi.c | 54 ++++++++++++++++ + ath10k-5.4/wmi.h | 35 ++++++++++ + 12 files changed, 314 insertions(+), 1 deletion(-) + create mode 100644 ath10k-5.4/leds.c + create mode 100644 ath10k-5.4/leds.h + +--- a/ath10k-5.4/Kconfig ++++ b/ath10k-5.4/Kconfig +@@ -66,6 +66,16 @@ config ATH10K_DEBUGFS + + If unsure, say Y to make it easier to debug problems. + ++config ATH10K_LEDS ++ bool "Atheros ath10k LED support" ++ depends on ATH10K ++ select MAC80211_LEDS ++ select LEDS_CLASS ++ select NEW_LEDS ++ default y ++ ---help--- ++ This option is necessary, if you want LED support for chipset connected led pins. If unsure, say N. ++ + config ATH10K_SPECTRAL + bool "Atheros ath10k spectral scan support" + depends on ATH10K_DEBUGFS +--- a/ath10k-5.4/Makefile ++++ b/ath10k-5.4/Makefile +@@ -19,6 +19,7 @@ ath10k_core-$(CONFIG_ATH10K_SPECTRAL) += + ath10k_core-$(CONFIG_NL80211_TESTMODE) += testmode.o + ath10k_core-$(CONFIG_ATH10K_TRACING) += trace.o + ath10k_core-$(CONFIG_THERMAL) += thermal.o ++ath10k_core-$(CONFIG_ATH10K_LEDS) += leds.o + ath10k_core-$(CONFIG_MAC80211_DEBUGFS) += debugfs_sta.o + ath10k_core-$(CONFIG_PM) += wow.o + ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o +--- a/ath10k-5.4/core.c ++++ b/ath10k-5.4/core.c +@@ -25,6 +25,7 @@ + #include "testmode.h" + #include "wmi-ops.h" + #include "coredump.h" ++#include "leds.h" + + /* Disable ath10k-ct DBGLOG output by default */ + unsigned int ath10k_debug_mask = ATH10K_DBG_NO_DBGLOG; +@@ -67,6 +68,7 @@ static const struct ath10k_hw_params ath + .dev_id = QCA988X_2_0_DEVICE_ID, + .bus = ATH10K_BUS_PCI, + .name = "qca988x hw2.0", ++ .led_pin = 1, + .patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR, + .uart_pin = 7, + .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, +@@ -137,6 +139,7 @@ static const struct ath10k_hw_params ath + .dev_id = QCA9887_1_0_DEVICE_ID, + .bus = ATH10K_BUS_PCI, + .name = "qca9887 hw1.0", ++ .led_pin = 1, + .patch_load_addr = QCA9887_HW_1_0_PATCH_LOAD_ADDR, + .uart_pin = 7, + .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, +@@ -344,6 +347,7 @@ static const struct ath10k_hw_params ath + .dev_id = QCA99X0_2_0_DEVICE_ID, + .bus = ATH10K_BUS_PCI, + .name = "qca99x0 hw2.0", ++ .led_pin = 17, + .patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR, + .uart_pin = 7, + .otp_exe_param = 0x00000700, +@@ -385,6 +389,7 @@ static const struct ath10k_hw_params ath + .dev_id = QCA9984_1_0_DEVICE_ID, + .bus = ATH10K_BUS_PCI, + .name = "qca9984/qca9994 hw1.0", ++ .led_pin = 17, + .patch_load_addr = QCA9984_HW_1_0_PATCH_LOAD_ADDR, + .uart_pin = 7, + .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, +@@ -433,6 +438,7 @@ static const struct ath10k_hw_params ath + .dev_id = QCA9888_2_0_DEVICE_ID, + .bus = ATH10K_BUS_PCI, + .name = "qca9888 hw2.0", ++ .led_pin = 17, + .patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR, + .uart_pin = 7, + .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, +@@ -3573,6 +3579,10 @@ int ath10k_core_start(struct ath10k *ar, + ath10k_wmi_check_apply_board_power_ctl_table(ar); + } + ++ status = ath10k_leds_start(ar); ++ if (status) ++ goto err_hif_stop; ++ + return 0; + + err_hif_stop: +@@ -3829,9 +3839,18 @@ static void ath10k_core_register_work(st + goto err_spectral_destroy; + } + ++ status = ath10k_leds_register(ar); ++ if (status) { ++ ath10k_err(ar, "could not register leds: %d\n", ++ status); ++ goto err_thermal_unregister; ++ } ++ + set_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags); + return; + ++err_thermal_unregister: ++ ath10k_thermal_unregister(ar); + err_spectral_destroy: + ath10k_spectral_destroy(ar); + err_debug_destroy: +@@ -3891,6 +3910,8 @@ void ath10k_core_unregister(struct ath10 + if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags)) + return; + ++ ath10k_leds_unregister(ar); ++ + ath10k_thermal_unregister(ar); + /* Stop spectral before unregistering from mac80211 to remove the + * relayfs debugfs file cleanly. Otherwise the parent debugfs tree +--- a/ath10k-5.4/core.h ++++ b/ath10k-5.4/core.h +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + + #include "htt.h" + #include "htc.h" +@@ -1469,6 +1470,13 @@ struct ath10k { + } testmode; + + struct { ++ struct gpio_led wifi_led; ++ struct led_classdev cdev; ++ char label[48]; ++ u32 gpio_state_pin; ++ } leds; ++ ++ struct { + /* protected by data_lock */ + u32 fw_crash_counter; + u32 fw_warm_reset_counter; +--- a/ath10k-5.4/hw.h ++++ b/ath10k-5.4/hw.h +@@ -518,6 +518,7 @@ struct ath10k_hw_params { + const char *name; + u32 patch_load_addr; + int uart_pin; ++ int led_pin; + u32 otp_exe_param; + + /* Type of hw cycle counter wraparound logic, for more info +--- /dev/null ++++ b/ath10k-5.4/leds.c +@@ -0,0 +1,103 @@ ++/* ++ * Copyright (c) 2005-2011 Atheros Communications Inc. ++ * Copyright (c) 2011-2017 Qualcomm Atheros, Inc. ++ * Copyright (c) 2018 Sebastian Gottschall ++ * Copyright (c) 2018, The Linux Foundation. All rights reserved. ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++#include ++ ++#include "core.h" ++#include "wmi.h" ++#include "wmi-ops.h" ++ ++#include "leds.h" ++ ++static int ath10k_leds_set_brightness_blocking(struct led_classdev *led_cdev, ++ enum led_brightness brightness) ++{ ++ struct ath10k *ar = container_of(led_cdev, struct ath10k, ++ leds.cdev); ++ struct gpio_led *led = &ar->leds.wifi_led; ++ ++ mutex_lock(&ar->conf_mutex); ++ ++ if (ar->state != ATH10K_STATE_ON) ++ goto out; ++ ++ ar->leds.gpio_state_pin = (brightness != LED_OFF) ^ led->active_low; ++ ath10k_wmi_gpio_output(ar, led->gpio, ar->leds.gpio_state_pin); ++ ++out: ++ mutex_unlock(&ar->conf_mutex); ++ ++ return 0; ++} ++ ++int ath10k_leds_start(struct ath10k *ar) ++{ ++ if (ar->hw_params.led_pin == 0) ++ /* leds not supported */ ++ return 0; ++ ++ /* under some circumstances, the gpio pin gets reconfigured ++ * to default state by the firmware, so we need to ++ * reconfigure it this behaviour has only ben seen on ++ * QCA9984 and QCA99XX devices so far ++ */ ++ ath10k_wmi_gpio_config(ar, ar->hw_params.led_pin, 0, ++ WMI_GPIO_PULL_NONE, WMI_GPIO_INTTYPE_DISABLE); ++ ath10k_wmi_gpio_output(ar, ar->hw_params.led_pin, 1); ++ ++ return 0; ++} ++ ++int ath10k_leds_register(struct ath10k *ar) ++{ ++ int ret; ++ ++ if (ar->hw_params.led_pin == 0) ++ /* leds not supported */ ++ return 0; ++ ++ snprintf(ar->leds.label, sizeof(ar->leds.label), "ath10k-%s", ++ wiphy_name(ar->hw->wiphy)); ++ ar->leds.wifi_led.active_low = 1; ++ ar->leds.wifi_led.gpio = ar->hw_params.led_pin; ++ ar->leds.wifi_led.name = ar->leds.label; ++ ar->leds.wifi_led.default_state = LEDS_GPIO_DEFSTATE_KEEP; ++ ++ ar->leds.cdev.name = ar->leds.label; ++ ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking; ++ ++ /* FIXME: this assignment doesn't make sense as it's NULL, remove it? */ ++ ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger; ++ ++ ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev); ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++void ath10k_leds_unregister(struct ath10k *ar) ++{ ++ if (ar->hw_params.led_pin == 0) ++ /* leds not supported */ ++ return; ++ ++ led_classdev_unregister(&ar->leds.cdev); ++} ++ +--- /dev/null ++++ b/ath10k-5.4/leds.h +@@ -0,0 +1,41 @@ ++/* ++ * Copyright (c) 2018, The Linux Foundation. All rights reserved. ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++#ifndef _LEDS_H_ ++#define _LEDS_H_ ++ ++#include "core.h" ++ ++#ifdef CONFIG_ATH10K_LEDS ++void ath10k_leds_unregister(struct ath10k *ar); ++int ath10k_leds_start(struct ath10k *ar); ++int ath10k_leds_register(struct ath10k *ar); ++#else ++static inline void ath10k_leds_unregister(struct ath10k *ar) ++{ ++} ++ ++static inline int ath10k_leds_start(struct ath10k *ar) ++{ ++ return 0; ++} ++ ++static inline int ath10k_leds_register(struct ath10k *ar) ++{ ++ return 0; ++} ++ ++#endif ++#endif /* _LEDS_H_ */ +--- a/ath10k-5.4/mac.c ++++ b/ath10k-5.4/mac.c +@@ -24,6 +24,7 @@ + #include "wmi-tlv.h" + #include "wmi-ops.h" + #include "wow.h" ++#include "leds.h" + + /*********/ + /* Rates */ +--- a/ath10k-5.4/wmi-ops.h ++++ b/ath10k-5.4/wmi-ops.h +@@ -218,7 +218,10 @@ struct wmi_ops { + struct sk_buff *(*gen_bb_timing) + (struct ath10k *ar, + const struct wmi_bb_timing_cfg_arg *arg); ++ struct sk_buff *(*gen_gpio_config)(struct ath10k *ar, u32 gpio_num, ++ u32 input, u32 pull_type, u32 intr_mode); + ++ struct sk_buff *(*gen_gpio_output)(struct ath10k *ar, u32 gpio_num, u32 set); + }; + + int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id); +@@ -1105,6 +1108,35 @@ ath10k_wmi_force_fw_hang(struct ath10k * + return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->force_fw_hang_cmdid); + } + ++static inline int ath10k_wmi_gpio_config(struct ath10k *ar, u32 gpio_num, ++ u32 input, u32 pull_type, u32 intr_mode) ++{ ++ struct sk_buff *skb; ++ ++ if (!ar->wmi.ops->gen_gpio_config) ++ return -EOPNOTSUPP; ++ ++ skb = ar->wmi.ops->gen_gpio_config(ar, gpio_num, input, pull_type, intr_mode); ++ if (IS_ERR(skb)) ++ return PTR_ERR(skb); ++ ++ return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->gpio_config_cmdid); ++} ++ ++static inline int ath10k_wmi_gpio_output(struct ath10k *ar, u32 gpio_num, u32 set) ++{ ++ struct sk_buff *skb; ++ ++ if (!ar->wmi.ops->gen_gpio_config) ++ return -EOPNOTSUPP; ++ ++ skb = ar->wmi.ops->gen_gpio_output(ar, gpio_num, set); ++ if (IS_ERR(skb)) ++ return PTR_ERR(skb); ++ ++ return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->gpio_output_cmdid); ++} ++ + static inline int + ath10k_wmi_dbglog_cfg(struct ath10k *ar, u64 module_enable, u32 log_level) + { +--- a/ath10k-5.4/wmi-tlv.c ++++ b/ath10k-5.4/wmi-tlv.c +@@ -4364,6 +4364,8 @@ static const struct wmi_ops wmi_tlv_ops + .gen_echo = ath10k_wmi_tlv_op_gen_echo, + .gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf, + .gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable, ++ /* .gen_gpio_config not implemented */ ++ /* .gen_gpio_output not implemented */ + }; + + static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = { +--- a/ath10k-5.4/wmi.c ++++ b/ath10k-5.4/wmi.c +@@ -8295,6 +8295,49 @@ ath10k_wmi_op_gen_peer_set_param(struct + return skb; + } + ++static struct sk_buff *ath10k_wmi_op_gen_gpio_config(struct ath10k *ar, ++ u32 gpio_num, u32 input, ++ u32 pull_type, u32 intr_mode) ++{ ++ struct wmi_gpio_config_cmd *cmd; ++ struct sk_buff *skb; ++ ++ skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ++ if (!skb) ++ return ERR_PTR(-ENOMEM); ++ ++ cmd = (struct wmi_gpio_config_cmd *)skb->data; ++ cmd->pull_type = __cpu_to_le32(pull_type); ++ cmd->gpio_num = __cpu_to_le32(gpio_num); ++ cmd->input = __cpu_to_le32(input); ++ cmd->intr_mode = __cpu_to_le32(intr_mode); ++ ++ ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi gpio_config gpio_num 0x%08x input 0x%08x pull_type 0x%08x intr_mode 0x%08x\n", ++ gpio_num, input, pull_type, intr_mode); ++ ++ return skb; ++} ++ ++static struct sk_buff *ath10k_wmi_op_gen_gpio_output(struct ath10k *ar, ++ u32 gpio_num, u32 set) ++{ ++ struct wmi_gpio_output_cmd *cmd; ++ struct sk_buff *skb; ++ ++ skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ++ if (!skb) ++ return ERR_PTR(-ENOMEM); ++ ++ cmd = (struct wmi_gpio_output_cmd *)skb->data; ++ cmd->gpio_num = __cpu_to_le32(gpio_num); ++ cmd->set = __cpu_to_le32(set); ++ ++ ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi gpio_output gpio_num 0x%08x set 0x%08x\n", ++ gpio_num, set); ++ ++ return skb; ++} ++ + static struct sk_buff * + ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id, + enum wmi_sta_ps_mode psmode) +@@ -10094,6 +10137,9 @@ static const struct wmi_ops wmi_ops = { + .fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill, + .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, + .gen_echo = ath10k_wmi_op_gen_echo, ++ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, ++ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, ++ + /* .gen_bcn_tmpl not implemented */ + /* .gen_prb_tmpl not implemented */ + /* .gen_p2p_go_bcn_ie not implemented */ +@@ -10164,6 +10210,8 @@ static const struct wmi_ops wmi_10_1_ops + .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, + .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, + .gen_echo = ath10k_wmi_op_gen_echo, ++ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, ++ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, + /* .gen_bcn_tmpl not implemented */ + /* .gen_prb_tmpl not implemented */ + /* .gen_p2p_go_bcn_ie not implemented */ +@@ -10243,6 +10291,8 @@ static const struct wmi_ops wmi_10_2_ops + .gen_delba_send = ath10k_wmi_op_gen_delba_send, + .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, + .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, ++ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, ++ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, + /* .gen_pdev_enable_adaptive_cca not implemented */ + }; + +@@ -10314,6 +10364,8 @@ static const struct wmi_ops wmi_10_2_4_o + ath10k_wmi_op_gen_pdev_enable_adaptive_cca, + .get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype, + .gen_bb_timing = ath10k_wmi_10_2_4_op_gen_bb_timing, ++ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, ++ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, + /* .gen_bcn_tmpl not implemented */ + /* .gen_prb_tmpl not implemented */ + /* .gen_p2p_go_bcn_ie not implemented */ +@@ -10395,6 +10447,8 @@ static const struct wmi_ops wmi_10_4_ops + .gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info, + .gen_echo = ath10k_wmi_op_gen_echo, + .gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config, ++ .gen_gpio_config = ath10k_wmi_op_gen_gpio_config, ++ .gen_gpio_output = ath10k_wmi_op_gen_gpio_output, + }; + + int ath10k_wmi_attach(struct ath10k *ar) +--- a/ath10k-5.4/wmi.h ++++ b/ath10k-5.4/wmi.h +@@ -3110,6 +3110,41 @@ enum wmi_10_4_feature_mask { + + }; + ++/* WMI_GPIO_CONFIG_CMDID */ ++enum { ++ WMI_GPIO_PULL_NONE, ++ WMI_GPIO_PULL_UP, ++ WMI_GPIO_PULL_DOWN, ++}; ++ ++enum { ++ WMI_GPIO_INTTYPE_DISABLE, ++ WMI_GPIO_INTTYPE_RISING_EDGE, ++ WMI_GPIO_INTTYPE_FALLING_EDGE, ++ WMI_GPIO_INTTYPE_BOTH_EDGE, ++ WMI_GPIO_INTTYPE_LEVEL_LOW, ++ WMI_GPIO_INTTYPE_LEVEL_HIGH ++}; ++ ++/* WMI_GPIO_CONFIG_CMDID */ ++struct wmi_gpio_config_cmd { ++ __le32 gpio_num; /* GPIO number to be setup */ ++ __le32 input; /* 0 - Output/ 1 - Input */ ++ __le32 pull_type; /* Pull type defined above */ ++ __le32 intr_mode; /* Interrupt mode defined above (Input) */ ++} __packed; ++ ++/* WMI_GPIO_OUTPUT_CMDID */ ++struct wmi_gpio_output_cmd { ++ __le32 gpio_num; /* GPIO number to be setup */ ++ __le32 set; /* Set the GPIO pin*/ ++} __packed; ++ ++/* WMI_GPIO_INPUT_EVENTID */ ++struct wmi_gpio_input_event { ++ __le32 gpio_num; /* GPIO number which changed state */ ++} __packed; ++ + struct wmi_ext_resource_config_10_4_cmd { + /* contains enum wmi_host_platform_type */ + __le32 host_platform_config; diff --git a/package/kernel/ath10k-ct/patches/202-ath10k-4.16-use-tpt-trigger-by-default.patch b/package/kernel/ath10k-ct/patches/202-ath10k-4.16-use-tpt-trigger-by-default.patch deleted file mode 100644 index c23c31417b..0000000000 --- a/package/kernel/ath10k-ct/patches/202-ath10k-4.16-use-tpt-trigger-by-default.patch +++ /dev/null @@ -1,127 +0,0 @@ -From 79c9d7aabae1d1da9eea97d83b61e1517a8a2221 Mon Sep 17 00:00:00 2001 -From: Mathias Kresin -Date: Fri, 22 Jun 2018 18:59:44 +0200 -Subject: [PATCH] ath10k: use tpt LED trigger by default - -Use the tpt LED trigger for each created phy led. Ths way LEDs attached -to the ath10k GPIO pins are indicating the phy status and blink on -traffic. - -Signed-off-by: Mathias Kresin ---- - ath10k-4.16/core.h | 4 ++++ - ath10k-4.16/leds.c | 4 +--- - ath10k-4.16/mac.c | 2 +- - 3 files changed, 6 insertions(+), 4 deletions(-) - ---- a/ath10k-4.19/core.h -+++ b/ath10k-4.19/core.h -@@ -1491,6 +1491,10 @@ struct ath10k { - u8 csi_data[4096]; - u16 csi_data_len; - -+#ifdef CPTCFG_MAC80211_LEDS -+ const char *led_default_trigger; -+#endif -+ - /* must be last */ - u8 drv_priv[0] __aligned(sizeof(void *)); - }; ---- a/ath10k-4.19/leds.c -+++ b/ath10k-4.19/leds.c -@@ -81,9 +81,7 @@ int ath10k_leds_register(struct ath10k * - - ar->leds.cdev.name = ar->leds.label; - ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking; -- -- /* FIXME: this assignment doesn't make sense as it's NULL, remove it? */ -- ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger; -+ ar->leds.cdev.default_trigger = ar->led_default_trigger; - - ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev); - if (ret) ---- a/ath10k-4.19/mac.c -+++ b/ath10k-4.19/mac.c -@@ -9987,7 +9987,7 @@ int ath10k_mac_register(struct ath10k *a - wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST); - - #ifdef CPTCFG_MAC80211_LEDS -- ieee80211_create_tpt_led_trigger(ar->hw, -+ ar->led_default_trigger = ieee80211_create_tpt_led_trigger(ar->hw, - IEEE80211_TPT_LEDTRIG_FL_RADIO, ath10k_tpt_blink, - ARRAY_SIZE(ath10k_tpt_blink)); - #endif ---- a/ath10k-5.2/core.h -+++ b/ath10k-5.2/core.h -@@ -1552,6 +1552,10 @@ struct ath10k { - u8 csi_data[4096]; - u16 csi_data_len; - -+#ifdef CPTCFG_MAC80211_LEDS -+ const char *led_default_trigger; -+#endif -+ - /* must be last */ - u8 drv_priv[0] __aligned(sizeof(void *)); - }; ---- a/ath10k-5.2/leds.c -+++ b/ath10k-5.2/leds.c -@@ -81,9 +81,7 @@ int ath10k_leds_register(struct ath10k * - - ar->leds.cdev.name = ar->leds.label; - ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking; -- -- /* FIXME: this assignment doesn't make sense as it's NULL, remove it? */ -- ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger; -+ ar->leds.cdev.default_trigger = ar->led_default_trigger; - - ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev); - if (ret) ---- a/ath10k-5.2/mac.c -+++ b/ath10k-5.2/mac.c -@@ -10187,7 +10187,7 @@ int ath10k_mac_register(struct ath10k *a - ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; - - #ifdef CPTCFG_MAC80211_LEDS -- ieee80211_create_tpt_led_trigger(ar->hw, -+ ar->led_default_trigger = ieee80211_create_tpt_led_trigger(ar->hw, - IEEE80211_TPT_LEDTRIG_FL_RADIO, ath10k_tpt_blink, - ARRAY_SIZE(ath10k_tpt_blink)); - #endif ---- a/ath10k-5.4/core.h -+++ b/ath10k-5.4/core.h -@@ -1573,6 +1573,10 @@ struct ath10k { - u8 csi_data[4096]; - u16 csi_data_len; - -+#ifdef CPTCFG_MAC80211_LEDS -+ const char *led_default_trigger; -+#endif -+ - /* must be last */ - u8 drv_priv[0] __aligned(sizeof(void *)); - }; ---- a/ath10k-5.4/leds.c -+++ b/ath10k-5.4/leds.c -@@ -81,9 +81,7 @@ int ath10k_leds_register(struct ath10k * - - ar->leds.cdev.name = ar->leds.label; - ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking; -- -- /* FIXME: this assignment doesn't make sense as it's NULL, remove it? */ -- ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger; -+ ar->leds.cdev.default_trigger = ar->led_default_trigger; - - ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev); - if (ret) ---- a/ath10k-5.4/mac.c -+++ b/ath10k-5.4/mac.c -@@ -10367,7 +10367,7 @@ int ath10k_mac_register(struct ath10k *a - ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; - - #ifdef CPTCFG_MAC80211_LEDS -- ieee80211_create_tpt_led_trigger(ar->hw, -+ ar->led_default_trigger = ieee80211_create_tpt_led_trigger(ar->hw, - IEEE80211_TPT_LEDTRIG_FL_RADIO, ath10k_tpt_blink, - ARRAY_SIZE(ath10k_tpt_blink)); - #endif diff --git a/package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch b/package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch new file mode 100644 index 0000000000..b1c7bae193 --- /dev/null +++ b/package/kernel/ath10k-ct/patches/202-ath10k-use-tpt-trigger-by-default.patch @@ -0,0 +1,53 @@ +From 79c9d7aabae1d1da9eea97d83b61e1517a8a2221 Mon Sep 17 00:00:00 2001 +From: Mathias Kresin +Date: Fri, 22 Jun 2018 18:59:44 +0200 +Subject: [PATCH] ath10k: use tpt LED trigger by default + +Use the tpt LED trigger for each created phy led. Ths way LEDs attached +to the ath10k GPIO pins are indicating the phy status and blink on +traffic. + +Signed-off-by: Mathias Kresin +--- + ath10k-5.4/core.h | 4 ++++ + ath10k-5.4/leds.c | 4 +--- + ath10k-5.4/mac.c | 2 +- + 3 files changed, 6 insertions(+), 4 deletions(-) + +--- a/ath10k-5.4/core.h ++++ b/ath10k-5.4/core.h +@@ -1573,6 +1573,10 @@ struct ath10k { + u8 csi_data[4096]; + u16 csi_data_len; + ++#ifdef CPTCFG_MAC80211_LEDS ++ const char *led_default_trigger; ++#endif ++ + /* must be last */ + u8 drv_priv[0] __aligned(sizeof(void *)); + }; +--- a/ath10k-5.4/leds.c ++++ b/ath10k-5.4/leds.c +@@ -81,9 +81,7 @@ int ath10k_leds_register(struct ath10k * + + ar->leds.cdev.name = ar->leds.label; + ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking; +- +- /* FIXME: this assignment doesn't make sense as it's NULL, remove it? */ +- ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger; ++ ar->leds.cdev.default_trigger = ar->led_default_trigger; + + ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev); + if (ret) +--- a/ath10k-5.4/mac.c ++++ b/ath10k-5.4/mac.c +@@ -10367,7 +10367,7 @@ int ath10k_mac_register(struct ath10k *a + ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; + + #ifdef CPTCFG_MAC80211_LEDS +- ieee80211_create_tpt_led_trigger(ar->hw, ++ ar->led_default_trigger = ieee80211_create_tpt_led_trigger(ar->hw, + IEEE80211_TPT_LEDTRIG_FL_RADIO, ath10k_tpt_blink, + ARRAY_SIZE(ath10k_tpt_blink)); + #endif diff --git a/package/kernel/ath10k-ct/patches/203-ath10k-Limit-available-channels-via-DT-ieee80211-fre.patch b/package/kernel/ath10k-ct/patches/203-ath10k-Limit-available-channels-via-DT-ieee80211-fre.patch deleted file mode 100644 index f47e9d64c0..0000000000 --- a/package/kernel/ath10k-ct/patches/203-ath10k-Limit-available-channels-via-DT-ieee80211-fre.patch +++ /dev/null @@ -1,39 +0,0 @@ -From bbf0a8af2261bc7ae39b227ff6a1e9f45a008c27 Mon Sep 17 00:00:00 2001 -From: Sven Eckelmann -Date: Mon, 30 Jul 2018 17:31:41 +0200 -Subject: [PATCH] ath10k: Limit available channels via DT ieee80211-freq-limit - -Tri-band devices (1x 2.4GHz + 2x 5GHz) often incorporate special filters in -the RX and TX path. These filtered channel can in theory still be used by -the hardware but the signal strength is reduced so much that it makes no -sense. - -There is already a DT property to limit the available channels but ath10k -has to manually call this functionality to limit the currrently set wiphy -channels further. - -Signed-off-by: Sven Eckelmann - -Forwarded: https://patchwork.kernel.org/patch/10549245/ ---- - drivers/net/wireless/ath/ath10k/mac.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/ath10k-4.19/mac.c -+++ b/ath10k-4.19/mac.c -@@ -18,6 +18,7 @@ - - #include "mac.h" - -+#include - #include - #include - #include -@@ -9711,6 +9712,7 @@ int ath10k_mac_register(struct ath10k *a - ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = band; - } - -+ wiphy_read_of_freq_limits(ar->hw->wiphy); - ath10k_mac_setup_ht_vht_cap(ar); - - ar->hw->wiphy->interface_modes = diff --git a/package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch b/package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch index 70f4fb0546..c527430898 100644 --- a/package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch +++ b/package/kernel/ath10k-ct/patches/960-0010-ath10k-limit-htt-rx-ring-size.patch @@ -1,31 +1,3 @@ ---- a/ath10k-4.19/htt.h -+++ b/ath10k-4.19/htt.h -@@ -237,7 +237,11 @@ enum htt_rx_ring_flags { - }; - - #define HTT_RX_RING_SIZE_MIN 128 -+#ifndef CONFIG_ATH10K_SMALLBUFFERS - #define HTT_RX_RING_SIZE_MAX 2048 -+#else -+#define HTT_RX_RING_SIZE_MAX 512 -+#endif - #define HTT_RX_RING_SIZE HTT_RX_RING_SIZE_MAX - #define HTT_RX_RING_FILL_LEVEL (((HTT_RX_RING_SIZE) / 2) - 1) - #define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1) ---- a/ath10k-5.2/htt.h -+++ b/ath10k-5.2/htt.h -@@ -225,7 +225,11 @@ enum htt_rx_ring_flags { - }; - - #define HTT_RX_RING_SIZE_MIN 128 -+#ifndef CONFIG_ATH10K_SMALLBUFFERS - #define HTT_RX_RING_SIZE_MAX 2048 -+#else -+#define HTT_RX_RING_SIZE_MAX 512 -+#endif - #define HTT_RX_RING_SIZE HTT_RX_RING_SIZE_MAX - #define HTT_RX_RING_FILL_LEVEL (((HTT_RX_RING_SIZE) / 2) - 1) - #define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1) --- a/ath10k-5.4/htt.h +++ b/ath10k-5.4/htt.h @@ -225,7 +225,11 @@ enum htt_rx_ring_flags { diff --git a/package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch b/package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch index 0b691217b2..f559a78f29 100644 --- a/package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch +++ b/package/kernel/ath10k-ct/patches/960-0011-ath10k-limit-pci-buffer-size.patch @@ -1,103 +1,3 @@ ---- a/ath10k-4.19/pci.c -+++ b/ath10k-4.19/pci.c -@@ -142,7 +142,11 @@ static struct ce_attr host_ce_config_wla - .flags = CE_ATTR_FLAGS, - .src_nentries = 0, - .src_sz_max = 2048, -+#ifndef CONFIG_ATH10K_SMALLBUFFERS - .dest_nentries = 512, -+#else -+ .dest_nentries = 128, -+#endif - .recv_cb = ath10k_pci_htt_htc_rx_cb, - }, - -@@ -151,7 +155,11 @@ static struct ce_attr host_ce_config_wla - .flags = CE_ATTR_FLAGS, - .src_nentries = 0, - .src_sz_max = 2048, -+#ifndef CONFIG_ATH10K_SMALLBUFFERS - .dest_nentries = 128, -+#else -+ .dest_nentries = 64, -+#endif - .recv_cb = ath10k_pci_htc_rx_cb, - }, - -@@ -178,7 +186,11 @@ static struct ce_attr host_ce_config_wla - .flags = CE_ATTR_FLAGS, - .src_nentries = 0, - .src_sz_max = 512, -+#ifndef CONFIG_ATH10K_SMALLBUFFERS - .dest_nentries = 512, -+#else -+ .dest_nentries = 128, -+#endif - .recv_cb = ath10k_pci_htt_rx_cb, - }, - -@@ -203,7 +215,11 @@ static struct ce_attr host_ce_config_wla - .flags = CE_ATTR_FLAGS, - .src_nentries = 0, - .src_sz_max = 2048, -+#ifndef CONFIG_ATH10K_SMALLBUFFERS - .dest_nentries = 128, -+#else -+ .dest_nentries = 96, -+#endif - .recv_cb = ath10k_pci_pktlog_rx_cb, - }, - ---- a/ath10k-5.2/pci.c -+++ b/ath10k-5.2/pci.c -@@ -131,7 +131,11 @@ static struct ce_attr host_ce_config_wla - .flags = CE_ATTR_FLAGS, - .src_nentries = 0, - .src_sz_max = 2048, -+#ifndef CONFIG_ATH10K_SMALLBUFFERS - .dest_nentries = 512, -+#else -+ .dest_nentries = 128, -+#endif - .recv_cb = ath10k_pci_htt_htc_rx_cb, - }, - -@@ -140,7 +144,11 @@ static struct ce_attr host_ce_config_wla - .flags = CE_ATTR_FLAGS, - .src_nentries = 0, - .src_sz_max = 2048, -+#ifndef CONFIG_ATH10K_SMALLBUFFERS - .dest_nentries = 128, -+#else -+ .dest_nentries = 64, -+#endif - .recv_cb = ath10k_pci_htc_rx_cb, - }, - -@@ -167,7 +175,11 @@ static struct ce_attr host_ce_config_wla - .flags = CE_ATTR_FLAGS, - .src_nentries = 0, - .src_sz_max = 512, -+#ifndef CONFIG_ATH10K_SMALLBUFFERS - .dest_nentries = 512, -+#else -+ .dest_nentries = 128, -+#endif - .recv_cb = ath10k_pci_htt_rx_cb, - }, - -@@ -192,7 +204,11 @@ static struct ce_attr host_ce_config_wla - .flags = CE_ATTR_FLAGS, - .src_nentries = 0, - .src_sz_max = 2048, -+#ifndef CONFIG_ATH10K_SMALLBUFFERS - .dest_nentries = 128, -+#else -+ .dest_nentries = 96, -+#endif - .recv_cb = ath10k_pci_pktlog_rx_cb, - }, - --- a/ath10k-5.4/pci.c +++ b/ath10k-5.4/pci.c @@ -131,7 +131,11 @@ static struct ce_attr host_ce_config_wla diff --git a/package/kernel/ath10k-ct/patches/976-ath10k-Check-if-station-exists-before-forwarding-tx-.patch b/package/kernel/ath10k-ct/patches/976-ath10k-Check-if-station-exists-before-forwarding-tx-.patch deleted file mode 100644 index 0ff885d95a..0000000000 --- a/package/kernel/ath10k-ct/patches/976-ath10k-Check-if-station-exists-before-forwarding-tx-.patch +++ /dev/null @@ -1,81 +0,0 @@ -From cc8ec75f5ad4acf9babe5e26a10c9bca10624593 Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -Date: Sun, 18 Aug 2019 15:33:51 +0200 -Subject: [PATCH] ath10k: Check if station exists before forwarding tx airtime - report - -It looks like the FW on QCA9984 already reports the tx airtimes before -the station is added to the peer entry. The peer entry is created in -ath10k_peer_map_event() just with the vdev_id and the ethaddr, but -not with a station entry, this is added later in ath10k_peer_create() in -callbacks from mac80211. - -When there is no sta added to the peer entry, this function fails -because it calls ieee80211_sta_register_airtime() with NULL. - -This was reported in OpenWrt some time ago: -https://bugs.openwrt.org/index.php?do=details&task_id=2414 - -This commit should fix this crash: -[ 75.991714] Unable to handle kernel paging request at virtual address fffff9e8 -[ 75.991756] pgd = c0204000 -[ 75.997955] [fffff9e8] *pgd=5fdfd861, *pte=00000000, *ppte=00000000 -[ 76.000537] Internal error: Oops: 37 [#1] SMP ARM -[ 76.006686] Modules linked in: pppoe ppp_async ath10k_pci ath10k_core ath pptp pppox ppp_mppe ppp_generic mac80211 iptable_nat ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_tcpmss xt_statistic xt_state xt_recent xt_nat xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_helper xt_esp xt_ecn xt_dscp xt_conntrack xt_connmark xt_connlimit xt_connbytes xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_HL xt_FLOWOFFLOAD xt_DSCP xt_CT xt_CLASSIFY usbserial slhc nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_conntrack_ipv4 nf_nat_ipv4 nf_log_ipv4 nf_flow_table_hw nf_flow_table nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack_netlink iptable_raw iptable_mangle iptable_filter ipt_ah ipt_ECN ip_tables crc_ccitt compat chaoskey fuse sch_cake sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 -[ 76.059974] cls_tcindex cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred ledtrig_usbport xt_set ip_set_list_set ip_set_hash_netportnet ip_set_hash_netport ip_set_hash_netnet ip_set_hash_netiface ip_set_hash_net ip_set_hash_mac ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_hash_ipport ip_set_hash_ipmark ip_set_hash_ip ip_set_bitmap_port ip_set_bitmap_ipmac ip_set_bitmap_ip ip_set nfnetlink ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6t_NPT ip6t_MASQUERADE nf_nat_masquerade_ipv6 nf_nat nf_conntrack nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 msdos ip_gre gre ifb sit tunnel4 ip_tunnel tun vfat fat hfsplus cifs nls_utf8 nls_iso8859_15 nls_iso8859_1 nls_cp850 nls_cp437 nls_cp1250 sha1_generic md5 md4 -[ 76.130634] usb_storage leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_of_simple ohci_platform ohci_hcd phy_qcom_dwc3 ahci ehci_platform sd_mod ahci_platform libahci_platform libahci libata scsi_mod ehci_hcd gpio_button_hotplug ext4 mbcache jbd2 exfat crc32c_generic -[ 76.154772] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.14.132 #0 -[ 76.177001] Hardware name: Generic DT based system -[ 76.182990] task: c0b06d80 task.stack: c0b00000 -[ 76.187832] PC is at ieee80211_sta_register_airtime+0x24/0x148 [mac80211] -[ 76.192211] LR is at ath10k_htt_t2h_msg_handler+0x678/0x10f4 [ath10k_core] -[ 76.199052] pc : [] lr : [] psr: a0000113 -[ 76.205820] sp : c0b01d54 ip : 00000002 fp : bf869c0c -[ 76.211981] r10: 0000003c r9 : dbdca138 r8 : 00060002 -[ 76.217192] r7 : 00000000 r6 : dabe1150 r5 : 00000000 r4 : dbdc95c0 -[ 76.222401] r3 : 00000000 r2 : 00060002 r1 : 00000000 r0 : 00000000 -[ 76.229003] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none -[ 76.235509] Control: 10c5787d Table: 5c94006a DAC: 00000051 -[ 76.242716] Process swapper/0 (pid: 0, stack limit = 0xc0b00210) -[ 76.248446] Stack: (0xc0b01d54 to 0xc0b02000) -[ 76.254532] 1d40: dbdc95c0 00000000 dabe1150 -[ 76.258808] 1d60: 00000001 dabe1150 dbdca138 0000003c bf869c0c bf83e8b0 00000002 c0314b10 -[ 76.266969] 1d80: dbdc9c70 00000001 00000001 dabe114c 00010000 00000000 dbdcd724 bf88f3d8 -[ 76.275126] 1da0: c0310d28 db393c00 dbdc95c0 00000000 c0b01dd0 c07fb4c4 dbdcd724 00000001 -[ 76.283286] 1dc0: 00000022 bf88b09c db393c00 00000022 c0b01dd0 c0b01dd0 00000000 dbdcc5c0 -[ 76.291445] 1de0: bf88f04c dbdcd654 dbdcd71c dbdc95c0 00000014 dbdcd724 dbdcc5c0 00000005 -[ 76.299605] 1e00: 0004b400 bf85c360 00000000 bf87101c c0b01e24 00000006 00000000 dbdc95c0 -[ 76.307764] 1e20: 00000001 00000040 0000012c c0b01e80 1cf51000 bf85c448 dbdcd440 dbdc95c0 -[ 76.315925] 1e40: dbdca440 ffffa880 00000040 bf88cb68 dbdcd440 00000001 00000040 ffffa880 -[ 76.324084] 1e60: c0b02d00 c06d72e0 dd990080 c0a3f080 c0b255dc c0b047e4 c090afac c090e80c -[ 76.332244] 1e80: c0b01e80 c0b01e80 c0b01e88 c0b01e88 dd4cc200 00000000 00000003 c0b0208c -[ 76.340405] 1ea0: c0b02080 40000003 ffffe000 00000100 c0b02080 c03015c8 00000000 00000001 -[ 76.348564] 1ec0: dd408000 c0a38210 c0b2c7c0 0000000a ffffa880 c0b02d00 c07fb764 00200102 -[ 76.356723] 1ee0: dd4cc268 c0a3e414 00000000 00000000 00000001 dd408000 de803000 00000000 -[ 76.364883] 1f00: 00000000 c03247cc c0a3e414 c0368f1c c0b03f60 c0b153cc de80200c de802000 -[ 76.373042] 1f20: c0b01f48 c0301488 c0308630 60000013 ffffffff c0b01f7c 00000000 c0b00000 -[ 76.381204] 1f40: 00000000 c030c08c 00000001 00000000 00000000 c0315180 ffffe000 c0b03cc0 -[ 76.389363] 1f60: c0b03c70 00000000 00000000 c0a2da28 00000000 00000000 c0b01f90 c0b01f98 -[ 76.397522] 1f80: c030862c c0308630 60000013 ffffffff 00000051 00000000 ffffe000 c035dd18 -[ 76.405681] 1fa0: 000000bf c0b03c40 00000000 c0b2c000 dddfce80 c035e060 c0b2c040 c0a00cf4 -[ 76.413842] 1fc0: ffffffff ffffffff 00000000 c0a0067c c0a2da28 00000000 00000000 c0b2c1d4 -[ 76.422001] 1fe0: c0b03c5c c0a2da24 c0b07ee0 4220406a 512f04d0 4220807c 00000000 00000000 -[ 76.430335] [] (ieee80211_sta_register_airtime [mac80211]) from [<00000002>] (0x2) -[ 76.438314] Code: e1cd81f0 e1a08002 e1cda1f8 e58de020 (e5102618) -[ 76.446965] ---[ end trace 227a38ade964d642 ]--- - -Fixes: bb31b7cb106c ("ath10k: report tx airtime provided by fw") -Signed-off-by: Hauke Mehrtens ---- - ---- a/ath10k-5.2/htt_rx.c -+++ b/ath10k-5.2/htt_rx.c -@@ -2568,7 +2568,7 @@ do_generic: - spin_lock_bh(&ar->data_lock); - - peer = ath10k_peer_find_by_id(ar, peer_id); -- if (!peer) { -+ if (!peer || !peer->sta) { - spin_unlock_bh(&ar->data_lock); - rcu_read_unlock(); - continue; From 658e68f85c2645e0132edc6b30a9c76cc17292de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Sun, 26 Apr 2020 20:52:52 +0200 Subject: [PATCH 04/14] ath10k-firmware: move CT firmwares to new package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Álvaro Fernández Rojas --- package/firmware/ath10k-ct-firmware/Makefile | 524 +++++++++++++++++++ package/firmware/ath10k-firmware/Makefile | 446 ---------------- 2 files changed, 524 insertions(+), 446 deletions(-) create mode 100644 package/firmware/ath10k-ct-firmware/Makefile diff --git a/package/firmware/ath10k-ct-firmware/Makefile b/package/firmware/ath10k-ct-firmware/Makefile new file mode 100644 index 0000000000..79bdeeec4f --- /dev/null +++ b/package/firmware/ath10k-ct-firmware/Makefile @@ -0,0 +1,524 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=ath10k-ct-firmware +PKG_VERSION:=2020-03-25 +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/package.mk + +ATH10K_FIRMWARE_REV:=d622d160e9f552ead68d9ae81b715422892dc2ef +ATH10K_FIRMWARE_URL:=@GITHUB/kvalo/ath10k-firmware/$(ATH10K_FIRMWARE_REV) + +QCA9887_BOARD_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca9887-board.bin +define Download/qca9887-board + FILE:=$(QCA9887_BOARD_FILE) + URL:=$(ATH10K_FIRMWARE_URL)/QCA9887/hw1.0 + URL_FILE:=board.bin + HASH:=cf4df099f6ee05c181f55ce17297a1d32c61d725eb96246fd315ad5587c42426 +endef +$(eval $(call Download,qca9887-board)) + +QCA988X_BOARD_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca988x-board.bin +define Download/qca988x-board + FILE:=$(QCA988X_BOARD_FILE) + URL:=$(ATH10K_FIRMWARE_URL)/QCA988X/hw2.0 + URL_FILE:=board.bin + HASH:=5b5b380333c2dd3b6ce67f30e2f7008f4020bf594970d3b464fd8d4a80fcd880 +endef +$(eval $(call Download,qca988x-board)) + +QCA99X0_BOARD_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca99x0-board.bin +define Download/qca99x0-board + FILE:=$(QCA99X0_BOARD_FILE) + URL:=$(ATH10K_FIRMWARE_URL)/QCA99X0/hw2.0 + URL_FILE:=boardData_AR900B_CUS239_5G_v2_001.bin + HASH:=3bf7561ee373b369025dcd366d276d038a97d3397ccae41ce841d98a58b30aff +endef +$(eval $(call Download,qca99x0-board)) + +QCA99X0_BOARD2_REV:=ddcec9efd245da9365c474f513a855a55f3ac7fe +QCA99X0_BOARD2_FILE:=ath10k-firmware-$(QCA99X0_BOARD2_REV)-qca99x0-board-2.bin +define Download/qca99x0-board2 + FILE:=$(QCA99X0_BOARD2_FILE) + URL:=https://source.codeaurora.org/quic/qsdk/oss/firmware/ath10k-firmware/plain/ath10k/QCA99X0/hw2.0 + URL_FILE:=board-2.bin?id=$(QCA99X0_BOARD2_REV) + HASH:=03711ac21e60ef59d3815e235eb721c0c22851b5410299411085aa6f2af45401 +endef +$(eval $(call Download,qca99x0-board2)) + +QCA9984_BOARD2_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca9984-board-2.bin +define Download/qca9984-board2 + FILE:=$(QCA9984_BOARD2_FILE) + URL:=$(ATH10K_FIRMWARE_URL)/QCA9984/hw1.0 + URL_FILE:=board-2.bin + HASH:=0d6d46cf0467185e3959ce3cb69e2415be6e48ab8a4bee3eb400edbe48cb9c25 +endef +$(eval $(call Download,qca9984-board2)) + +QCA4019_BOARD2_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca4019-board-2.bin +define Download/qca4019-board2 + FILE:=$(QCA4019_BOARD2_FILE) + URL:=$(ATH10K_FIRMWARE_URL)/QCA4019/hw1.0 + URL_FILE:=board-2.bin + HASH:=94b66aa4ddbed5110a96364d3c7b4ebcb320e3ac4e8697660b277e76077bc338 +endef +$(eval $(call Download,qca4019-board2)) + +QCA9888_BOARD2_FILE:=ath10k-firmware-$(ATH10K_FIRMWARE_REV)-qca9888-board-2.bin +define Download/qca9888-board2 + FILE:=$(QCA9888_BOARD2_FILE) + URL:=$(ATH10K_FIRMWARE_URL)/QCA9888/hw2.0 + URL_FILE:=board-2.bin + HASH:=5b871bb567f64525ca45adb88063211de472015d09e0f9aa3fa61ab71c8fdfd3 +endef +$(eval $(call Download,qca9888-board2)) + +CT_FIRMWARE_FILE = $(1)-$($(1)_FIRMWARE_FILE_CT) +CT_FIRMWARE_FILE_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_HTT) + +define Download/ct-firmware + URL:=https://www.candelatech.com/downloads/$(2) + FILE:=$(call CT_FIRMWARE_FILE,$(1)) + URL_FILE:=$($(1)_FIRMWARE_FILE_CT) +endef + +define Download/ct-firmware-htt + URL:=https://www.candelatech.com/downloads/$(2) + FILE:=$(call CT_FIRMWARE_FILE_HTT,$(1)) + URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT) +endef + +QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.017 +define Download/ath10k-firmware-qca988x-ct + $(call Download/ct-firmware,QCA988X,) + HASH:=2f0bf766e400a4c5726e77b128eb8c141ebaa778526fe2c7c5083f3b17659dbf +endef +$(eval $(call Download,ath10k-firmware-qca988x-ct)) + +QCA988X_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.017 +define Download/ath10k-firmware-qca988x-ct-htt + $(call Download/ct-firmware-htt,QCA988X,) + HASH:=5e4285d5c6eee159a25ca14c6ce26022c32380bd7bafaedfc0c5de1510119007 +endef +$(eval $(call Download,ath10k-firmware-qca988x-ct-htt)) + + +QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.017 +define Download/ath10k-firmware-qca9887-ct + $(call Download/ct-firmware,QCA9887,ath10k-9887) + HASH:=4fa30e0e1972ca3b06225a731df0f93a1b73ac67fea5bf54bb55dea3bbc0da6a +endef +$(eval $(call Download,ath10k-firmware-qca9887-ct)) + +QCA9887_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.017 +define Download/ath10k-firmware-qca9887-ct-htt + $(call Download/ct-firmware-htt,QCA9887,ath10k-9887) + HASH:=dc681b6b1e45956e7c2e418ab05eee5c943d13e775209196d9bd931ff6493935 +endef +$(eval $(call Download,ath10k-firmware-qca9887-ct-htt)) + + +QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 +define Download/ath10k-firmware-qca99x0-ct + $(call Download/ct-firmware,QCA99X0,ath10k-10-4b) + HASH:=289ea845d4bbae6f36b3af2a13a5eaa07097f52d10f7b7306cfc9e2dd394f889 +endef +$(eval $(call Download,ath10k-firmware-qca99x0-ct)) + +QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 +define Download/ath10k-firmware-qca99x0-ct-htt + $(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b) + HASH:=adedcd3d379a910bc3a5257d75f8970e11319f4cd9c1b34440d35821602a8b9c +endef +$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt)) + + +QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 +define Download/ath10k-firmware-qca9984-ct + $(call Download/ct-firmware,QCA9984,ath10k-9984-10-4b) + HASH:=8175be5b3946bddc042be018ff7713e67b41b59374ef4cdd183185b59274c91a +endef +$(eval $(call Download,ath10k-firmware-qca9984-ct)) + +QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 +define Download/ath10k-firmware-qca9984-ct-htt + $(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b) + HASH:=eb8b894cfe0d1aaa87f130bb7fd1815ef07b951c14df8a2ceaeb780df8f640e0 +endef +$(eval $(call Download,ath10k-firmware-qca9984-ct-htt)) + + +QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 +define Download/ath10k-firmware-qca4019-ct + $(call Download/ct-firmware,QCA4019,ath10k-4019-10-4b) + HASH:=29e9f662c4cd287213877abfbb90fbabb5e32dd3710d3ade82aa94a0921972ae +endef +$(eval $(call Download,ath10k-firmware-qca4019-ct)) + +QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 +define Download/ath10k-firmware-qca4019-ct-htt + $(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b) + HASH:=559c911f23856b1d3d864ce714d1bef7262bf6638e93e057ecf8d5dba48ca1e6 +endef +$(eval $(call Download,ath10k-firmware-qca4019-ct-htt)) + + +QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 +define Download/ath10k-firmware-qca9888-ct + $(call Download/ct-firmware,QCA9888,ath10k-9888-10-4b) + HASH:=b295880a8b08ec2680d85daaf5f20232a0e73d9cc579bf3efd7ffae24ea340d7 +endef +$(eval $(call Download,ath10k-firmware-qca9888-ct)) + +QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 +define Download/ath10k-firmware-qca9888-ct-htt + $(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b) + HASH:=26fe7c00df10e93373a0f9f105e85d02bb8b1cdd629183ce22a5147138336aec +endef +$(eval $(call Download,ath10k-firmware-qca9888-ct-htt)) + + +define Package/ath10k-ct-firmware-default + SECTION:=firmware + CATEGORY:=Firmware + URL:=https://www.candelatech.com/ath10k.php + DEPENDS:= +endef + +define Package/ath10k-firmware-qca988x-ct +$(Package/ath10k-ct-firmware-default) + TITLE:=ath10k CT 10.1 firmware for QCA988x devices + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca988x +endef +define Package/ath10k-firmware-qca988x-ct-htt +$(Package/ath10k-ct-firmware-default) + TITLE:=ath10k CT 10.1 htt-mgt fw for QCA988x + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca988x + DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct +endef + +define Package/ath10k-firmware-qca9887-ct +$(Package/ath10k-ct-firmware-default) + TITLE:=ath10k CT 10.1 firmware for QCA9887 devices + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca9887 +endef +define Package/ath10k-firmware-qca9887-ct-htt +$(Package/ath10k-ct-firmware-default) + TITLE:=ath10k CT 10.1 htt-mgt fw for QCA9887 + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca9887 + DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct +endef + +define Package/ath10k-firmware-qca99x0-ct +$(Package/ath10k-ct-firmware-default) + TITLE:=ath10k CT 10.4 firmware for QCA99x0 devices + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca99x0 +endef +define Package/ath10k-firmware-qca99x0-ct-htt +$(Package/ath10k-ct-firmware-default) + TITLE:=ath10k CT 10.4 htt-mgt fw for QCA99x0 + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca99x0 + DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct +endef + +define Package/ath10k-firmware-qca9984-ct +$(Package/ath10k-ct-firmware-default) + TITLE:=ath10k CT 10.4 firmware for QCA9984 devices + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca9984 +endef +define Package/ath10k-firmware-qca9984-ct-htt +$(Package/ath10k-ct-firmware-default) + TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9984 + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca9984 + DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct +endef + +define Package/ath10k-firmware-qca4019-ct +$(Package/ath10k-ct-firmware-default) + TITLE:=ath10k CT 10.4 firmware for QCA4018/9 + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca4019 +endef +define Package/ath10k-firmware-qca4019-ct-htt +$(Package/ath10k-ct-firmware-default) + TITLE:=ath10k CT 10.4 htt-mgt for QCA4018/9 + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca4019 + DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct +endef + +define Package/ath10k-firmware-qca9888-ct +$(Package/ath10k-ct-firmware-default) + TITLE:=ath10k CT 10.4 fw for QCA9886/8 devices + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca9888 +endef +define Package/ath10k-firmware-qca9888-ct-htt +$(Package/ath10k-ct-firmware-default) + TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9886/8 + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca9888 + DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct +endef + + +define Package/ath10k-firmware-qca9887-ct/description +Alternative ath10k firmware for QCA9887 from Candela Technologies. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.1.php +This firmware conflicts with the standard 9887 firmware, so select only +one. +endef +define Package/ath10k-firmware-qca9887-ct-htt/description +Alternative ath10k firmware for QCA9887 from Candela Technologies. +Uses normal HTT TX data path for management frames, which improves +stability in busy networks and fixes .11r authentication. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.1.php +This firmware selects and requires the ath10k-ct driver. +endef + +define Package/ath10k-firmware-qca988x-ct/description +Alternative ath10k firmware for QCA988X from Candela Technologies. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.1.php +This firmware will NOT be used unless the standard ath10k-firmware-qca988x +is un-selected since the driver will try to load firmware-5.bin before +firmware-2.bin +endef +define Package/ath10k-firmware-qca988x-ct-htt/description +Alternative ath10k firmware for QCA988X from Candela Technologies. +Uses normal HTT TX data path for management frames, which improves +stability in busy networks and fixes .11r authentication. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.1.php +This firmware selects and requires the ath10k-ct driver. +endef + +define Package/ath10k-firmware-qca99x0-ct/description +Alternative ath10k firmware for QCA99x0 from Candela Technologies. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.4.php +This firmware conflicts with the standard 99x0 firmware, so select only +one. +endef +define Package/ath10k-firmware-qca99x0-ct-htt/description +Alternative ath10k firmware for QCA99x0 from Candela Technologies. +Uses normal HTT TX data path for management frames, which improves +stability in busy networks and may be required for .11r authentication. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.4.php +This firmware selects and requires the ath10k-ct driver. +endef + +define Package/ath10k-firmware-qca9984-ct/description +Alternative ath10k firmware for QCA9984 from Candela Technologies. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.4.php +This firmware conflicts with the standard 9984 firmware, so select only +one. +endef +define Package/ath10k-firmware-qca9984-ct-htt/description +Alternative ath10k firmware for QCA9984 from Candela Technologies. +Uses normal HTT TX data path for management frames, which improves +stability in busy networks and may be required for .11r authentication. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.4.php +This firmware selects and requires the ath10k-ct driver. +endef + +define Package/ath10k-firmware-qca4019-ct/description +Alternative ath10k firmware for IPQ4019 radio from Candela Technologies. +Enables IBSS and other features. Works with standard or ath10k-ct driver. +See: http://www.candelatech.com/ath10k-10.4.php +endef +define Package/ath10k-firmware-qca4019-ct-htt/description +Alternative ath10k firmware for IPQ4019 radio from Candela Technologies. +Uses normal HTT TX data path for management frames, which improves +stability in busy networks and may be required for .11r authentication. +Enables IBSS and other features. +See: http://www.candelatech.com/ath10k-10.4.php +This firmware selects and requires the ath10k-ct driver. +endef + +define Package/ath10k-firmware-qca9888-ct/description +Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.4.php +This firmware conflicts with the standard 9886 and 9888 firmware, so select only +one. +endef +define Package/ath10k-firmware-qca9888-ct-htt/description +Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies. +Uses normal HTT TX data path for management frames, which improves +stability in busy networks and may be required for .11r authentication. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.4.php +This firmware selects and requires the ath10k-ct driver. +endef + + +define Build/Compile + +endef + + +define Package/ath10k-firmware-qca9887-ct/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9887) \ + $(1)/lib/firmware/ath10k/QCA9887/hw1.0/firmware-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA9887_BOARD_FILE) \ + $(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin +endef +define Package/ath10k-firmware-qca9887-ct-htt/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9887) \ + $(1)/lib/firmware/ath10k/QCA9887/hw1.0/ct-firmware-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA9887_BOARD_FILE) \ + $(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin +endef + +define Package/ath10k-firmware-qca988x-ct/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA988X_BOARD_FILE) \ + $(1)/lib/firmware/ath10k/QCA988X/hw2.0/board.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA988X) \ + $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin +endef +define Package/ath10k-firmware-qca988x-ct-htt/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA988X_BOARD_FILE) \ + $(1)/lib/firmware/ath10k/QCA988X/hw2.0/board.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA988X) \ + $(1)/lib/firmware/ath10k/QCA988X/hw2.0/ct-firmware-2.bin +endef + +define Package/ath10k-firmware-qca99x0-ct/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA99X0_BOARD2_FILE) \ + $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA99X0_BOARD_FILE) \ + $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA99X0) \ + $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin +endef +define Package/ath10k-firmware-qca99x0-ct-htt/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA99X0_BOARD2_FILE) \ + $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA99X0_BOARD_FILE) \ + $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA99X0) \ + $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin +endef + +define Package/ath10k-firmware-qca9984-ct/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA9984_BOARD2_FILE) \ + $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9984) \ + $(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin +endef +define Package/ath10k-firmware-qca9984-ct-htt/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA9984_BOARD2_FILE) \ + $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9984) \ + $(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin +endef + +define Package/ath10k-firmware-qca4019-ct/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA4019_BOARD2_FILE) \ + $(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA4019) \ + $(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin +endef +define Package/ath10k-firmware-qca4019-ct-htt/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA4019_BOARD2_FILE) \ + $(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA4019) \ + $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin +endef + +define Package/ath10k-firmware-qca9888-ct/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 + ln -s \ + ../../cal-pci-0000:01:00.0.bin \ + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA9888_BOARD2_FILE) \ + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9888) \ + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin +endef +define Package/ath10k-firmware-qca9888-ct-htt/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 + ln -s \ + ../../cal-pci-0000:01:00.0.bin \ + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA9888_BOARD2_FILE) \ + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9888) \ + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-firmware-5.bin +endef + + +$(eval $(call BuildPackage,ath10k-firmware-qca9887-ct)) +$(eval $(call BuildPackage,ath10k-firmware-qca9887-ct-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca988x-ct)) +$(eval $(call BuildPackage,ath10k-firmware-qca988x-ct-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct)) +$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct)) +$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct)) +$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct)) +$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-htt)) diff --git a/package/firmware/ath10k-firmware/Makefile b/package/firmware/ath10k-firmware/Makefile index 6eb7cf9a99..c427f08842 100644 --- a/package/firmware/ath10k-firmware/Makefile +++ b/package/firmware/ath10k-firmware/Makefile @@ -37,11 +37,6 @@ $(Package/ath10k-firmware-default) TITLE:=ath10k firmware for QCA9888 devices endef -define Package/ath10k-firmware-qca9887-ct -$(Package/ath10k-firmware-default) - TITLE:=ath10k-CT firmware for QCA9887 devices -endef - define Package/ath10k-firmware-qca988x $(Package/ath10k-firmware-default) TITLE:=ath10k firmware for QCA988x devices @@ -49,111 +44,6 @@ $(Package/ath10k-firmware-default) CATEGORY:=Firmware endef -CT_FIRMWARE_FILE = $(1)-$($(1)_FIRMWARE_FILE_CT) -CT_FIRMWARE_FILE_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_HTT) - -define Download/ct-firmware - URL:=https://www.candelatech.com/downloads/$(2) - FILE:=$(call CT_FIRMWARE_FILE,$(1)) - URL_FILE:=$($(1)_FIRMWARE_FILE_CT) -endef - -define Download/ct-firmware-htt - URL:=https://www.candelatech.com/downloads/$(2) - FILE:=$(call CT_FIRMWARE_FILE_HTT,$(1)) - URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT) -endef - -QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.017 -define Download/ath10k-firmware-qca988x-ct - $(call Download/ct-firmware,QCA988X,) - HASH:=2f0bf766e400a4c5726e77b128eb8c141ebaa778526fe2c7c5083f3b17659dbf -endef -$(eval $(call Download,ath10k-firmware-qca988x-ct)) - -QCA988X_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.017 -define Download/ath10k-firmware-qca988x-ct-htt - $(call Download/ct-firmware-htt,QCA988X,) - HASH:=5e4285d5c6eee159a25ca14c6ce26022c32380bd7bafaedfc0c5de1510119007 -endef -$(eval $(call Download,ath10k-firmware-qca988x-ct-htt)) - - -QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.017 -define Download/ath10k-firmware-qca9887-ct - $(call Download/ct-firmware,QCA9887,ath10k-9887) - HASH:=4fa30e0e1972ca3b06225a731df0f93a1b73ac67fea5bf54bb55dea3bbc0da6a -endef -$(eval $(call Download,ath10k-firmware-qca9887-ct)) - -QCA9887_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.017 -define Download/ath10k-firmware-qca9887-ct-htt - $(call Download/ct-firmware-htt,QCA9887,ath10k-9887) - HASH:=dc681b6b1e45956e7c2e418ab05eee5c943d13e775209196d9bd931ff6493935 -endef -$(eval $(call Download,ath10k-firmware-qca9887-ct-htt)) - - -QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 -define Download/ath10k-firmware-qca99x0-ct - $(call Download/ct-firmware,QCA99X0,ath10k-10-4b) - HASH:=289ea845d4bbae6f36b3af2a13a5eaa07097f52d10f7b7306cfc9e2dd394f889 -endef -$(eval $(call Download,ath10k-firmware-qca99x0-ct)) - -QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 -define Download/ath10k-firmware-qca99x0-ct-htt - $(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b) - HASH:=adedcd3d379a910bc3a5257d75f8970e11319f4cd9c1b34440d35821602a8b9c -endef -$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt)) - - -QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 -define Download/ath10k-firmware-qca9984-ct - $(call Download/ct-firmware,QCA9984,ath10k-9984-10-4b) - HASH:=8175be5b3946bddc042be018ff7713e67b41b59374ef4cdd183185b59274c91a -endef -$(eval $(call Download,ath10k-firmware-qca9984-ct)) - -QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 -define Download/ath10k-firmware-qca9984-ct-htt - $(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b) - HASH:=eb8b894cfe0d1aaa87f130bb7fd1815ef07b951c14df8a2ceaeb780df8f640e0 -endef -$(eval $(call Download,ath10k-firmware-qca9984-ct-htt)) - - -QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 -define Download/ath10k-firmware-qca4019-ct - $(call Download/ct-firmware,QCA4019,ath10k-4019-10-4b) - HASH:=29e9f662c4cd287213877abfbb90fbabb5e32dd3710d3ade82aa94a0921972ae -endef -$(eval $(call Download,ath10k-firmware-qca4019-ct)) - -QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 -define Download/ath10k-firmware-qca4019-ct-htt - $(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b) - HASH:=559c911f23856b1d3d864ce714d1bef7262bf6638e93e057ecf8d5dba48ca1e6 -endef -$(eval $(call Download,ath10k-firmware-qca4019-ct-htt)) - - -QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 -define Download/ath10k-firmware-qca9888-ct - $(call Download/ct-firmware,QCA9888,ath10k-9888-10-4b) - HASH:=b295880a8b08ec2680d85daaf5f20232a0e73d9cc579bf3efd7ffae24ea340d7 -endef -$(eval $(call Download,ath10k-firmware-qca9888-ct)) - -QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 -define Download/ath10k-firmware-qca9888-ct-htt - $(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b) - HASH:=26fe7c00df10e93373a0f9f105e85d02bb8b1cdd629183ce22a5147138336aec -endef -$(eval $(call Download,ath10k-firmware-qca9888-ct-htt)) - - define Package/ath10k-firmware-qca99x0 $(Package/ath10k-firmware-default) TITLE:=ath10k firmware for QCA99x0 devices @@ -161,206 +51,12 @@ $(Package/ath10k-firmware-default) CATEGORY:=Firmware endef -define Package/ath10k-firmware-qca988x-ct -$(Package/ath10k-firmware-default) - TITLE:=ath10k CT 10.1 firmware for QCA988x devices - SECTION:=firmware - CATEGORY:=Firmware - PROVIDES:=ath10k-firmware-qca988x -endef -define Package/ath10k-firmware-qca988x-ct-htt -$(Package/ath10k-firmware-default) - TITLE:=ath10k CT 10.1 htt-mgt fw for QCA988x - SECTION:=firmware - CATEGORY:=Firmware - PROVIDES:=ath10k-firmware-qca988x - DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct -endef - -define Package/ath10k-firmware-qca9887-ct -$(Package/ath10k-firmware-default) - TITLE:=ath10k CT 10.1 firmware for QCA9887 devices - SECTION:=firmware - CATEGORY:=Firmware - PROVIDES:=ath10k-firmware-qca9887 -endef -define Package/ath10k-firmware-qca9887-ct-htt -$(Package/ath10k-firmware-default) - TITLE:=ath10k CT 10.1 htt-mgt fw for QCA9887 - SECTION:=firmware - CATEGORY:=Firmware - PROVIDES:=ath10k-firmware-qca9887 - DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct -endef - -define Package/ath10k-firmware-qca988x-ct/description -Alternative ath10k firmware for QCA988X from Candela Technologies. -Enables IBSS and other features. See: -http://www.candelatech.com/ath10k-10.1.php -This firmware will NOT be used unless the standard ath10k-firmware-qca988x -is un-selected since the driver will try to load firmware-5.bin before -firmware-2.bin -endef -define Package/ath10k-firmware-qca988x-ct-htt/description -Alternative ath10k firmware for QCA988X from Candela Technologies. -Uses normal HTT TX data path for management frames, which improves -stability in busy networks and fixes .11r authentication. -Enables IBSS and other features. See: -http://www.candelatech.com/ath10k-10.1.php -This firmware selects and requires the ath10k-ct driver. -endef - -define Package/ath10k-firmware-qca9887-ct/description -Alternative ath10k firmware for QCA9887 from Candela Technologies. -Enables IBSS and other features. See: -http://www.candelatech.com/ath10k-10.1.php -This firmware conflicts with the standard 9887 firmware, so select only -one. -endef -define Package/ath10k-firmware-qca9887-ct-htt/description -Alternative ath10k firmware for QCA9887 from Candela Technologies. -Uses normal HTT TX data path for management frames, which improves -stability in busy networks and fixes .11r authentication. -Enables IBSS and other features. See: -http://www.candelatech.com/ath10k-10.1.php -This firmware selects and requires the ath10k-ct driver. -endef - -define Package/ath10k-firmware-qca99x0-ct/description -Alternative ath10k firmware for QCA99x0 from Candela Technologies. -Enables IBSS and other features. See: -http://www.candelatech.com/ath10k-10.4.php -This firmware conflicts with the standard 99x0 firmware, so select only -one. -endef -define Package/ath10k-firmware-qca99x0-ct-htt/description -Alternative ath10k firmware for QCA99x0 from Candela Technologies. -Uses normal HTT TX data path for management frames, which improves -stability in busy networks and may be required for .11r authentication. -Enables IBSS and other features. See: -http://www.candelatech.com/ath10k-10.4.php -This firmware selects and requires the ath10k-ct driver. -endef - -define Package/ath10k-firmware-qca9984-ct/description -Alternative ath10k firmware for QCA9984 from Candela Technologies. -Enables IBSS and other features. See: -http://www.candelatech.com/ath10k-10.4.php -This firmware conflicts with the standard 9984 firmware, so select only -one. -endef -define Package/ath10k-firmware-qca9984-ct-htt/description -Alternative ath10k firmware for QCA9984 from Candela Technologies. -Uses normal HTT TX data path for management frames, which improves -stability in busy networks and may be required for .11r authentication. -Enables IBSS and other features. See: -http://www.candelatech.com/ath10k-10.4.php -This firmware selects and requires the ath10k-ct driver. -endef - -define Package/ath10k-firmware-qca4019-ct/description -Alternative ath10k firmware for IPQ4019 radio from Candela Technologies. -Enables IBSS and other features. Works with standard or ath10k-ct driver. -See: http://www.candelatech.com/ath10k-10.4.php -endef -define Package/ath10k-firmware-qca4019-ct-htt/description -Alternative ath10k firmware for IPQ4019 radio from Candela Technologies. -Uses normal HTT TX data path for management frames, which improves -stability in busy networks and may be required for .11r authentication. -Enables IBSS and other features. -See: http://www.candelatech.com/ath10k-10.4.php -This firmware selects and requires the ath10k-ct driver. -endef - -define Package/ath10k-firmware-qca9888-ct/description -Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies. -Enables IBSS and other features. See: -http://www.candelatech.com/ath10k-10.4.php -This firmware conflicts with the standard 9886 and 9888 firmware, so select only -one. -endef -define Package/ath10k-firmware-qca9888-ct-htt/description -Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies. -Uses normal HTT TX data path for management frames, which improves -stability in busy networks and may be required for .11r authentication. -Enables IBSS and other features. See: -http://www.candelatech.com/ath10k-10.4.php -This firmware selects and requires the ath10k-ct driver. -endef - - define Package/ath10k-firmware-qca99x0/description Standard ath10k firmware for QCA99x0 from QCA This firmware conflicts with the CT 99x0 firmware, so select only one. endef -define Package/ath10k-firmware-qca99x0-ct -$(Package/ath10k-firmware-default) - TITLE:=ath10k CT 10.4 firmware for QCA99x0 devices - SECTION:=firmware - CATEGORY:=Firmware - PROVIDES:=ath10k-firmware-qca99x0 -endef -define Package/ath10k-firmware-qca99x0-ct-htt -$(Package/ath10k-firmware-default) - TITLE:=ath10k CT 10.4 htt-mgt fw for QCA99x0 - SECTION:=firmware - CATEGORY:=Firmware - PROVIDES:=ath10k-firmware-qca99x0 - DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct -endef - -define Package/ath10k-firmware-qca9984-ct -$(Package/ath10k-firmware-default) - TITLE:=ath10k CT 10.4 firmware for QCA9984 devices - SECTION:=firmware - CATEGORY:=Firmware - PROVIDES:=ath10k-firmware-qca9984 -endef -define Package/ath10k-firmware-qca9984-ct-htt -$(Package/ath10k-firmware-default) - TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9984 - SECTION:=firmware - CATEGORY:=Firmware - PROVIDES:=ath10k-firmware-qca9984 - DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct -endef - -define Package/ath10k-firmware-qca4019-ct -$(Package/ath10k-firmware-default) - TITLE:=ath10k CT 10.4 firmware for QCA4018/9 - SECTION:=firmware - CATEGORY:=Firmware - PROVIDES:=ath10k-firmware-qca4019 -endef -define Package/ath10k-firmware-qca4019-ct-htt -$(Package/ath10k-firmware-default) - TITLE:=ath10k CT 10.4 htt-mgt for QCA4018/9 - SECTION:=firmware - CATEGORY:=Firmware - PROVIDES:=ath10k-firmware-qca4019 - DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct -endef - -define Package/ath10k-firmware-qca9888-ct -$(Package/ath10k-firmware-default) - TITLE:=ath10k CT 10.4 fw for QCA9886/8 devices - SECTION:=firmware - CATEGORY:=Firmware - PROVIDES:=ath10k-firmware-qca9888 -endef -define Package/ath10k-firmware-qca9888-ct-htt -$(Package/ath10k-firmware-default) - TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9886/8 - SECTION:=firmware - CATEGORY:=Firmware - PROVIDES:=ath10k-firmware-qca9888 - DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct -endef - - - define Package/ath10k-firmware-qca9984 $(Package/ath10k-firmware-default) TITLE:=ath10k firmware for QCA9984 devices @@ -477,135 +173,6 @@ define Package/ath10k-firmware-qca9984/install $(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin endef - -# CT related firmware - -define Package/ath10k-firmware-qca9887-ct/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0 - $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9887) \ - $(1)/lib/firmware/ath10k/QCA9887/hw1.0/firmware-2.bin - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA9887/hw1.0/board.bin \ - $(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin -endef -define Package/ath10k-firmware-qca9887-ct-htt/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0 - $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9887) \ - $(1)/lib/firmware/ath10k/QCA9887/hw1.0/ct-firmware-2.bin - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA9887/hw1.0/board.bin \ - $(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin -endef - -define Package/ath10k-firmware-qca988x-ct/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA988X/hw2.0/board.bin \ - $(1)/lib/firmware/ath10k/QCA988X/hw2.0/ - $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA988X) \ - $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin -endef -define Package/ath10k-firmware-qca988x-ct-htt/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA988X/hw2.0/board.bin \ - $(1)/lib/firmware/ath10k/QCA988X/hw2.0/ - $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA988X) \ - $(1)/lib/firmware/ath10k/QCA988X/hw2.0/ct-firmware-2.bin -endef - -define Package/ath10k-firmware-qca99x0-ct/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 - $(INSTALL_DATA) \ - $(DL_DIR)/$(QCA99X0_BOARD_FILE) \ - $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA99X0/hw2.0/boardData_AR900B_CUS239_5G_v2_001.bin \ - $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin - $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA99X0) \ - $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin -endef -define Package/ath10k-firmware-qca99x0-ct-htt/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 - $(INSTALL_DATA) \ - $(DL_DIR)/$(QCA99X0_BOARD_FILE) \ - $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA99X0/hw2.0/boardData_AR900B_CUS239_5G_v2_001.bin \ - $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin - $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA99X0) \ - $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin -endef - -define Package/ath10k-firmware-qca9984-ct/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA9984/hw1.0/board-2.bin \ - $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin - $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9984) \ - $(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin -endef -define Package/ath10k-firmware-qca9984-ct-htt/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA9984/hw1.0/board-2.bin \ - $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin - $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9984) \ - $(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin -endef - -define Package/ath10k-firmware-qca4019-ct/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA4019/hw1.0/board-2.bin \ - $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ - $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA4019) \ - $(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin -endef -define Package/ath10k-firmware-qca4019-ct-htt/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA4019/hw1.0/board-2.bin \ - $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ - $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA4019) \ - $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin -endef - -define Package/ath10k-firmware-qca9888-ct/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 - ln -s \ - ../../cal-pci-0000:01:00.0.bin \ - $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA9888/hw2.0/board-2.bin \ - $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin - $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9888) \ - $(1)/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin -endef -define Package/ath10k-firmware-qca9888-ct-htt/install - $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 - ln -s \ - ../../cal-pci-0000:01:00.0.bin \ - $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin - $(INSTALL_DATA) \ - $(PKG_BUILD_DIR)/QCA9888/hw2.0/board-2.bin \ - $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin - $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9888) \ - $(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-firmware-5.bin -endef - $(eval $(call BuildPackage,ath10k-firmware-qca9887)) #$(eval $(call BuildPackage,ath10k-firmware-qca9888)) $(eval $(call BuildPackage,ath10k-firmware-qca988x)) @@ -613,16 +180,3 @@ $(eval $(call BuildPackage,ath10k-firmware-qca988x)) #$(eval $(call BuildPackage,ath10k-firmware-qca6174)) #$(eval $(call BuildPackage,ath10k-firmware-qca9984)) #$(eval $(call BuildPackage,ath10k-firmware-qca4019)) - -$(eval $(call BuildPackage,ath10k-firmware-qca9887-ct)) -$(eval $(call BuildPackage,ath10k-firmware-qca9887-ct-htt)) -$(eval $(call BuildPackage,ath10k-firmware-qca988x-ct)) -$(eval $(call BuildPackage,ath10k-firmware-qca988x-ct-htt)) -$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct)) -$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-htt)) -$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct)) -$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-htt)) -$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct)) -$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-htt)) -$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct)) -$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-htt)) From 2e5e9b459ed53b42f8938294a98e2546be976c85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Sun, 26 Apr 2020 21:30:16 +0200 Subject: [PATCH 05/14] ath10k-ct-firmware: rename ct-htt packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Álvaro Fernández Rojas --- package/firmware/ath10k-ct-firmware/Makefile | 130 +++++++++---------- target/linux/ath79/image/generic.mk | 2 +- 2 files changed, 66 insertions(+), 66 deletions(-) diff --git a/package/firmware/ath10k-ct-firmware/Makefile b/package/firmware/ath10k-ct-firmware/Makefile index 79bdeeec4f..959bfa975b 100644 --- a/package/firmware/ath10k-ct-firmware/Makefile +++ b/package/firmware/ath10k-ct-firmware/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ath10k-ct-firmware PKG_VERSION:=2020-03-25 -PKG_RELEASE:=1 +PKG_RELEASE:=2 include $(INCLUDE_DIR)/package.mk @@ -74,7 +74,7 @@ endef $(eval $(call Download,qca9888-board2)) CT_FIRMWARE_FILE = $(1)-$($(1)_FIRMWARE_FILE_CT) -CT_FIRMWARE_FILE_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_HTT) +CT_FIRMWARE_FILE_FULL_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_FULL_HTT) define Download/ct-firmware URL:=https://www.candelatech.com/downloads/$(2) @@ -82,10 +82,10 @@ define Download/ct-firmware URL_FILE:=$($(1)_FIRMWARE_FILE_CT) endef -define Download/ct-firmware-htt +define Download/ct-firmware-full-htt URL:=https://www.candelatech.com/downloads/$(2) - FILE:=$(call CT_FIRMWARE_FILE_HTT,$(1)) - URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT) + FILE:=$(call CT_FIRMWARE_FILE_FULL_HTT,$(1)) + URL_FILE:=$($(1)_FIRMWARE_FILE_CT_FULL_HTT) endef QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.017 @@ -95,12 +95,12 @@ define Download/ath10k-firmware-qca988x-ct endef $(eval $(call Download,ath10k-firmware-qca988x-ct)) -QCA988X_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.017 -define Download/ath10k-firmware-qca988x-ct-htt - $(call Download/ct-firmware-htt,QCA988X,) +QCA988X_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.017 +define Download/ath10k-firmware-qca988x-ct-full-htt + $(call Download/ct-firmware-full-htt,QCA988X,) HASH:=5e4285d5c6eee159a25ca14c6ce26022c32380bd7bafaedfc0c5de1510119007 endef -$(eval $(call Download,ath10k-firmware-qca988x-ct-htt)) +$(eval $(call Download,ath10k-firmware-qca988x-ct-full-htt)) QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.017 @@ -110,12 +110,12 @@ define Download/ath10k-firmware-qca9887-ct endef $(eval $(call Download,ath10k-firmware-qca9887-ct)) -QCA9887_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.017 -define Download/ath10k-firmware-qca9887-ct-htt - $(call Download/ct-firmware-htt,QCA9887,ath10k-9887) +QCA9887_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.017 +define Download/ath10k-firmware-qca9887-ct-full-htt + $(call Download/ct-firmware-full-htt,QCA9887,ath10k-9887) HASH:=dc681b6b1e45956e7c2e418ab05eee5c943d13e775209196d9bd931ff6493935 endef -$(eval $(call Download,ath10k-firmware-qca9887-ct-htt)) +$(eval $(call Download,ath10k-firmware-qca9887-ct-full-htt)) QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 @@ -125,12 +125,12 @@ define Download/ath10k-firmware-qca99x0-ct endef $(eval $(call Download,ath10k-firmware-qca99x0-ct)) -QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 -define Download/ath10k-firmware-qca99x0-ct-htt - $(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b) +QCA99X0_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 +define Download/ath10k-firmware-qca99x0-ct-full-htt + $(call Download/ct-firmware-full-htt,QCA99X0,ath10k-10-4b) HASH:=adedcd3d379a910bc3a5257d75f8970e11319f4cd9c1b34440d35821602a8b9c endef -$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt)) +$(eval $(call Download,ath10k-firmware-qca99x0-ct-full-htt)) QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 @@ -140,12 +140,12 @@ define Download/ath10k-firmware-qca9984-ct endef $(eval $(call Download,ath10k-firmware-qca9984-ct)) -QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 -define Download/ath10k-firmware-qca9984-ct-htt - $(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b) +QCA9984_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 +define Download/ath10k-firmware-qca9984-ct-full-htt + $(call Download/ct-firmware-full-htt,QCA9984,ath10k-9984-10-4b) HASH:=eb8b894cfe0d1aaa87f130bb7fd1815ef07b951c14df8a2ceaeb780df8f640e0 endef -$(eval $(call Download,ath10k-firmware-qca9984-ct-htt)) +$(eval $(call Download,ath10k-firmware-qca9984-ct-full-htt)) QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 @@ -155,12 +155,12 @@ define Download/ath10k-firmware-qca4019-ct endef $(eval $(call Download,ath10k-firmware-qca4019-ct)) -QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 -define Download/ath10k-firmware-qca4019-ct-htt - $(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b) +QCA4019_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 +define Download/ath10k-firmware-qca4019-ct-full-htt + $(call Download/ct-firmware-full-htt,QCA4019,ath10k-4019-10-4b) HASH:=559c911f23856b1d3d864ce714d1bef7262bf6638e93e057ecf8d5dba48ca1e6 endef -$(eval $(call Download,ath10k-firmware-qca4019-ct-htt)) +$(eval $(call Download,ath10k-firmware-qca4019-ct-full-htt)) QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 @@ -170,12 +170,12 @@ define Download/ath10k-firmware-qca9888-ct endef $(eval $(call Download,ath10k-firmware-qca9888-ct)) -QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 -define Download/ath10k-firmware-qca9888-ct-htt - $(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b) +QCA9888_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 +define Download/ath10k-firmware-qca9888-ct-full-htt + $(call Download/ct-firmware-full-htt,QCA9888,ath10k-9888-10-4b) HASH:=26fe7c00df10e93373a0f9f105e85d02bb8b1cdd629183ce22a5147138336aec endef -$(eval $(call Download,ath10k-firmware-qca9888-ct-htt)) +$(eval $(call Download,ath10k-firmware-qca9888-ct-full-htt)) define Package/ath10k-ct-firmware-default @@ -192,9 +192,9 @@ $(Package/ath10k-ct-firmware-default) CATEGORY:=Firmware PROVIDES:=ath10k-firmware-qca988x endef -define Package/ath10k-firmware-qca988x-ct-htt +define Package/ath10k-firmware-qca988x-ct-full-htt $(Package/ath10k-ct-firmware-default) - TITLE:=ath10k CT 10.1 htt-mgt fw for QCA988x + TITLE:=ath10k CT 10.1 full-htt-mgt fw for QCA988x SECTION:=firmware CATEGORY:=Firmware PROVIDES:=ath10k-firmware-qca988x @@ -208,9 +208,9 @@ $(Package/ath10k-ct-firmware-default) CATEGORY:=Firmware PROVIDES:=ath10k-firmware-qca9887 endef -define Package/ath10k-firmware-qca9887-ct-htt +define Package/ath10k-firmware-qca9887-ct-full-htt $(Package/ath10k-ct-firmware-default) - TITLE:=ath10k CT 10.1 htt-mgt fw for QCA9887 + TITLE:=ath10k CT 10.1 full-htt-mgt fw for QCA9887 SECTION:=firmware CATEGORY:=Firmware PROVIDES:=ath10k-firmware-qca9887 @@ -224,9 +224,9 @@ $(Package/ath10k-ct-firmware-default) CATEGORY:=Firmware PROVIDES:=ath10k-firmware-qca99x0 endef -define Package/ath10k-firmware-qca99x0-ct-htt +define Package/ath10k-firmware-qca99x0-ct-full-htt $(Package/ath10k-ct-firmware-default) - TITLE:=ath10k CT 10.4 htt-mgt fw for QCA99x0 + TITLE:=ath10k CT 10.4 full-htt-mgt fw for QCA99x0 SECTION:=firmware CATEGORY:=Firmware PROVIDES:=ath10k-firmware-qca99x0 @@ -240,9 +240,9 @@ $(Package/ath10k-ct-firmware-default) CATEGORY:=Firmware PROVIDES:=ath10k-firmware-qca9984 endef -define Package/ath10k-firmware-qca9984-ct-htt +define Package/ath10k-firmware-qca9984-ct-full-htt $(Package/ath10k-ct-firmware-default) - TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9984 + TITLE:=ath10k CT 10.4 full-htt-mgt fw for QCA9984 SECTION:=firmware CATEGORY:=Firmware PROVIDES:=ath10k-firmware-qca9984 @@ -256,9 +256,9 @@ $(Package/ath10k-ct-firmware-default) CATEGORY:=Firmware PROVIDES:=ath10k-firmware-qca4019 endef -define Package/ath10k-firmware-qca4019-ct-htt +define Package/ath10k-firmware-qca4019-ct-full-htt $(Package/ath10k-ct-firmware-default) - TITLE:=ath10k CT 10.4 htt-mgt for QCA4018/9 + TITLE:=ath10k CT 10.4 full-htt-mgt for QCA4018/9 SECTION:=firmware CATEGORY:=Firmware PROVIDES:=ath10k-firmware-qca4019 @@ -272,9 +272,9 @@ $(Package/ath10k-ct-firmware-default) CATEGORY:=Firmware PROVIDES:=ath10k-firmware-qca9888 endef -define Package/ath10k-firmware-qca9888-ct-htt +define Package/ath10k-firmware-qca9888-ct-full-htt $(Package/ath10k-ct-firmware-default) - TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9886/8 + TITLE:=ath10k CT 10.4 full-htt-mgt fw for QCA9886/8 SECTION:=firmware CATEGORY:=Firmware PROVIDES:=ath10k-firmware-qca9888 @@ -289,7 +289,7 @@ http://www.candelatech.com/ath10k-10.1.php This firmware conflicts with the standard 9887 firmware, so select only one. endef -define Package/ath10k-firmware-qca9887-ct-htt/description +define Package/ath10k-firmware-qca9887-ct-full-htt/description Alternative ath10k firmware for QCA9887 from Candela Technologies. Uses normal HTT TX data path for management frames, which improves stability in busy networks and fixes .11r authentication. @@ -306,7 +306,7 @@ This firmware will NOT be used unless the standard ath10k-firmware-qca988x is un-selected since the driver will try to load firmware-5.bin before firmware-2.bin endef -define Package/ath10k-firmware-qca988x-ct-htt/description +define Package/ath10k-firmware-qca988x-ct-full-htt/description Alternative ath10k firmware for QCA988X from Candela Technologies. Uses normal HTT TX data path for management frames, which improves stability in busy networks and fixes .11r authentication. @@ -322,7 +322,7 @@ http://www.candelatech.com/ath10k-10.4.php This firmware conflicts with the standard 99x0 firmware, so select only one. endef -define Package/ath10k-firmware-qca99x0-ct-htt/description +define Package/ath10k-firmware-qca99x0-ct-full-htt/description Alternative ath10k firmware for QCA99x0 from Candela Technologies. Uses normal HTT TX data path for management frames, which improves stability in busy networks and may be required for .11r authentication. @@ -338,7 +338,7 @@ http://www.candelatech.com/ath10k-10.4.php This firmware conflicts with the standard 9984 firmware, so select only one. endef -define Package/ath10k-firmware-qca9984-ct-htt/description +define Package/ath10k-firmware-qca9984-ct-full-htt/description Alternative ath10k firmware for QCA9984 from Candela Technologies. Uses normal HTT TX data path for management frames, which improves stability in busy networks and may be required for .11r authentication. @@ -352,7 +352,7 @@ Alternative ath10k firmware for IPQ4019 radio from Candela Technologies. Enables IBSS and other features. Works with standard or ath10k-ct driver. See: http://www.candelatech.com/ath10k-10.4.php endef -define Package/ath10k-firmware-qca4019-ct-htt/description +define Package/ath10k-firmware-qca4019-ct-full-htt/description Alternative ath10k firmware for IPQ4019 radio from Candela Technologies. Uses normal HTT TX data path for management frames, which improves stability in busy networks and may be required for .11r authentication. @@ -368,7 +368,7 @@ http://www.candelatech.com/ath10k-10.4.php This firmware conflicts with the standard 9886 and 9888 firmware, so select only one. endef -define Package/ath10k-firmware-qca9888-ct-htt/description +define Package/ath10k-firmware-qca9888-ct-full-htt/description Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies. Uses normal HTT TX data path for management frames, which improves stability in busy networks and may be required for .11r authentication. @@ -392,10 +392,10 @@ define Package/ath10k-firmware-qca9887-ct/install $(DL_DIR)/$(QCA9887_BOARD_FILE) \ $(1)/lib/firmware/ath10k/QCA9887/hw1.0/board.bin endef -define Package/ath10k-firmware-qca9887-ct-htt/install +define Package/ath10k-firmware-qca9887-ct-full-htt/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9887/hw1.0 $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9887) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9887) \ $(1)/lib/firmware/ath10k/QCA9887/hw1.0/ct-firmware-2.bin $(INSTALL_DATA) \ $(DL_DIR)/$(QCA9887_BOARD_FILE) \ @@ -411,13 +411,13 @@ define Package/ath10k-firmware-qca988x-ct/install $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA988X) \ $(1)/lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin endef -define Package/ath10k-firmware-qca988x-ct-htt/install +define Package/ath10k-firmware-qca988x-ct-full-htt/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA988X/hw2.0 $(INSTALL_DATA) \ $(DL_DIR)/$(QCA988X_BOARD_FILE) \ $(1)/lib/firmware/ath10k/QCA988X/hw2.0/board.bin $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA988X) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA988X) \ $(1)/lib/firmware/ath10k/QCA988X/hw2.0/ct-firmware-2.bin endef @@ -433,7 +433,7 @@ define Package/ath10k-firmware-qca99x0-ct/install $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA99X0) \ $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/firmware-5.bin endef -define Package/ath10k-firmware-qca99x0-ct-htt/install +define Package/ath10k-firmware-qca99x0-ct-full-htt/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 $(INSTALL_DATA) \ $(DL_DIR)/$(QCA99X0_BOARD2_FILE) \ @@ -442,7 +442,7 @@ define Package/ath10k-firmware-qca99x0-ct-htt/install $(DL_DIR)/$(QCA99X0_BOARD_FILE) \ $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA99X0) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA99X0) \ $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin endef @@ -455,13 +455,13 @@ define Package/ath10k-firmware-qca9984-ct/install $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9984) \ $(1)/lib/firmware/ath10k/QCA9984/hw1.0/firmware-5.bin endef -define Package/ath10k-firmware-qca9984-ct-htt/install +define Package/ath10k-firmware-qca9984-ct-full-htt/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 $(INSTALL_DATA) \ $(DL_DIR)/$(QCA9984_BOARD2_FILE) \ $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9984) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9984) \ $(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin endef @@ -474,13 +474,13 @@ define Package/ath10k-firmware-qca4019-ct/install $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA4019) \ $(1)/lib/firmware/ath10k/QCA4019/hw1.0/firmware-5.bin endef -define Package/ath10k-firmware-qca4019-ct-htt/install +define Package/ath10k-firmware-qca4019-ct-full-htt/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 $(INSTALL_DATA) \ $(DL_DIR)/$(QCA4019_BOARD2_FILE) \ $(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA4019) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA4019) \ $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin endef @@ -496,7 +496,7 @@ define Package/ath10k-firmware-qca9888-ct/install $(DL_DIR)/$(call CT_FIRMWARE_FILE,QCA9888) \ $(1)/lib/firmware/ath10k/QCA9888/hw2.0/firmware-5.bin endef -define Package/ath10k-firmware-qca9888-ct-htt/install +define Package/ath10k-firmware-qca9888-ct-full-htt/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 ln -s \ ../../cal-pci-0000:01:00.0.bin \ @@ -505,20 +505,20 @@ define Package/ath10k-firmware-qca9888-ct-htt/install $(DL_DIR)/$(QCA9888_BOARD2_FILE) \ $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin $(INSTALL_DATA) \ - $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9888) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9888) \ $(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-firmware-5.bin endef $(eval $(call BuildPackage,ath10k-firmware-qca9887-ct)) -$(eval $(call BuildPackage,ath10k-firmware-qca9887-ct-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca9887-ct-full-htt)) $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct)) -$(eval $(call BuildPackage,ath10k-firmware-qca988x-ct-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca988x-ct-full-htt)) $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct)) -$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-full-htt)) $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct)) -$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-full-htt)) $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct)) -$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-full-htt)) $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct)) -$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-full-htt)) diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index b449832ad2..321615f014 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -829,7 +829,7 @@ define Device/nec_wg800hp IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \ append-rootfs | pad-rootfs | check-size | \ xor-image -p 6A57190601121E4C004C1E1201061957 -x | nec-fw LASER_ATERM - DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct-htt + DEVICE_PACKAGES := kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct-full-htt endef TARGET_DEVICES += nec_wg800hp From 06f510df6e2aa0b1e40124bbd758672458d01482 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Sun, 26 Apr 2020 21:11:34 +0200 Subject: [PATCH 06/14] ath10k-ct-firmware: update firmware images MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No release notes this time. Signed-off-by: Álvaro Fernández Rojas --- package/firmware/ath10k-ct-firmware/Makefile | 52 ++++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/package/firmware/ath10k-ct-firmware/Makefile b/package/firmware/ath10k-ct-firmware/Makefile index 959bfa975b..6a35e9c75c 100644 --- a/package/firmware/ath10k-ct-firmware/Makefile +++ b/package/firmware/ath10k-ct-firmware/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ath10k-ct-firmware -PKG_VERSION:=2020-03-25 -PKG_RELEASE:=2 +PKG_VERSION:=2020-04-24 +PKG_RELEASE:=1 include $(INCLUDE_DIR)/package.mk @@ -88,92 +88,92 @@ define Download/ct-firmware-full-htt URL_FILE:=$($(1)_FIRMWARE_FILE_CT_FULL_HTT) endef -QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.017 +QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.018 define Download/ath10k-firmware-qca988x-ct $(call Download/ct-firmware,QCA988X,) - HASH:=2f0bf766e400a4c5726e77b128eb8c141ebaa778526fe2c7c5083f3b17659dbf + HASH:=8b4c99253aa309d35f2e060c190091b8db1b84dbda06a6a15c83ac0f9a938126 endef $(eval $(call Download,ath10k-firmware-qca988x-ct)) -QCA988X_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.017 +QCA988X_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.018 define Download/ath10k-firmware-qca988x-ct-full-htt $(call Download/ct-firmware-full-htt,QCA988X,) - HASH:=5e4285d5c6eee159a25ca14c6ce26022c32380bd7bafaedfc0c5de1510119007 + HASH:=a7168916d6aa5e4d7858f8b620c0c980c76d03f390929db6f4077685ce2051e7 endef $(eval $(call Download,ath10k-firmware-qca988x-ct-full-htt)) -QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.017 +QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.018 define Download/ath10k-firmware-qca9887-ct $(call Download/ct-firmware,QCA9887,ath10k-9887) - HASH:=4fa30e0e1972ca3b06225a731df0f93a1b73ac67fea5bf54bb55dea3bbc0da6a + HASH:=459692deb186a63ab8eeddb7ad5d54779266e68ca686e7c46062554db6dca12b endef $(eval $(call Download,ath10k-firmware-qca9887-ct)) -QCA9887_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.017 +QCA9887_FIRMWARE_FILE_CT_FULL_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.018 define Download/ath10k-firmware-qca9887-ct-full-htt $(call Download/ct-firmware-full-htt,QCA9887,ath10k-9887) - HASH:=dc681b6b1e45956e7c2e418ab05eee5c943d13e775209196d9bd931ff6493935 + HASH:=fd126a457d0927d0c8ea10d66ef5b67d5e1e0741f8692bb3016bb602d0af3098 endef $(eval $(call Download,ath10k-firmware-qca9887-ct-full-htt)) -QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 +QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018 define Download/ath10k-firmware-qca99x0-ct $(call Download/ct-firmware,QCA99X0,ath10k-10-4b) - HASH:=289ea845d4bbae6f36b3af2a13a5eaa07097f52d10f7b7306cfc9e2dd394f889 + HASH:=cf26eb37524de54af51fe9b2efffc85e0e70ab849e8607ef63ce5a8ecffeaa42 endef $(eval $(call Download,ath10k-firmware-qca99x0-ct)) -QCA99X0_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 +QCA99X0_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.018 define Download/ath10k-firmware-qca99x0-ct-full-htt $(call Download/ct-firmware-full-htt,QCA99X0,ath10k-10-4b) - HASH:=adedcd3d379a910bc3a5257d75f8970e11319f4cd9c1b34440d35821602a8b9c + HASH:=e9737538d7379e13ad4e4c8c519a63659b5e34a35455ed9ac4399ae8097caabc endef $(eval $(call Download,ath10k-firmware-qca99x0-ct-full-htt)) -QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 +QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018 define Download/ath10k-firmware-qca9984-ct $(call Download/ct-firmware,QCA9984,ath10k-9984-10-4b) - HASH:=8175be5b3946bddc042be018ff7713e67b41b59374ef4cdd183185b59274c91a + HASH:=a6b3d66efe640a430a837f238e91eddcd423eed6b887d3ae19716d87a71fd0b1 endef $(eval $(call Download,ath10k-firmware-qca9984-ct)) -QCA9984_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 +QCA9984_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.018 define Download/ath10k-firmware-qca9984-ct-full-htt $(call Download/ct-firmware-full-htt,QCA9984,ath10k-9984-10-4b) - HASH:=eb8b894cfe0d1aaa87f130bb7fd1815ef07b951c14df8a2ceaeb780df8f640e0 + HASH:=96060227e372b3b210badccbe6b0bd75d9a35335a7a0f2966964e9e89f66b00f endef $(eval $(call Download,ath10k-firmware-qca9984-ct-full-htt)) -QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 +QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018 define Download/ath10k-firmware-qca4019-ct $(call Download/ct-firmware,QCA4019,ath10k-4019-10-4b) - HASH:=29e9f662c4cd287213877abfbb90fbabb5e32dd3710d3ade82aa94a0921972ae + HASH:=46d8f8f1e780813299dc8780eedcfceda103c6b4d8908589ad1adbef921714c0 endef $(eval $(call Download,ath10k-firmware-qca4019-ct)) -QCA4019_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 +QCA4019_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.018 define Download/ath10k-firmware-qca4019-ct-full-htt $(call Download/ct-firmware-full-htt,QCA4019,ath10k-4019-10-4b) - HASH:=559c911f23856b1d3d864ce714d1bef7262bf6638e93e057ecf8d5dba48ca1e6 + HASH:=d884624fc34f4b5de7a3ec0534627c46cea25fca45657f3a2f6bb85f6c5893d7 endef $(eval $(call Download,ath10k-firmware-qca4019-ct-full-htt)) -QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017 +QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018 define Download/ath10k-firmware-qca9888-ct $(call Download/ct-firmware,QCA9888,ath10k-9888-10-4b) - HASH:=b295880a8b08ec2680d85daaf5f20232a0e73d9cc579bf3efd7ffae24ea340d7 + HASH:=d01f1429aaf0bfac07eee3547e5821d19136840b2f983e75e76979a5ac19b6f0 endef $(eval $(call Download,ath10k-firmware-qca9888-ct)) -QCA9888_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017 +QCA9888_FIRMWARE_FILE_CT_FULL_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.018 define Download/ath10k-firmware-qca9888-ct-full-htt $(call Download/ct-firmware-full-htt,QCA9888,ath10k-9888-10-4b) - HASH:=26fe7c00df10e93373a0f9f105e85d02bb8b1cdd629183ce22a5147138336aec + HASH:=68c42f8e0dcf77f18d4813ac93174bf06ff5cf5aa4f69befe7f35f9fae1de1e3 endef $(eval $(call Download,ath10k-firmware-qca9888-ct-full-htt)) From a882bfce052e78bd344dcbd36efb32acf1340d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Sun, 26 Apr 2020 21:35:53 +0200 Subject: [PATCH 07/14] ath10k-ct-firmware: add htt-mgt variants MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For wave-2, there is now a new variant: htt-mgt-community (vs the old full-htt-mgt-community). The non-full one (hence forth 'diet') compiles out a lot of firmware features that ath10k does not use. This saves a lot of resources and lets one configure more stations/vdevs/etc using fwcfg. Signed-off-by: Álvaro Fernández Rojas --- package/firmware/ath10k-ct-firmware/Makefile | 155 ++++++++++++++++++- 1 file changed, 154 insertions(+), 1 deletion(-) diff --git a/package/firmware/ath10k-ct-firmware/Makefile b/package/firmware/ath10k-ct-firmware/Makefile index 6a35e9c75c..18370b7d85 100644 --- a/package/firmware/ath10k-ct-firmware/Makefile +++ b/package/firmware/ath10k-ct-firmware/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ath10k-ct-firmware PKG_VERSION:=2020-04-24 -PKG_RELEASE:=1 +PKG_RELEASE:=2 include $(INCLUDE_DIR)/package.mk @@ -75,6 +75,7 @@ $(eval $(call Download,qca9888-board2)) CT_FIRMWARE_FILE = $(1)-$($(1)_FIRMWARE_FILE_CT) CT_FIRMWARE_FILE_FULL_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_FULL_HTT) +CT_FIRMWARE_FILE_HTT = $(1)-$($(1)_FIRMWARE_FILE_CT_HTT) define Download/ct-firmware URL:=https://www.candelatech.com/downloads/$(2) @@ -88,6 +89,12 @@ define Download/ct-firmware-full-htt URL_FILE:=$($(1)_FIRMWARE_FILE_CT_FULL_HTT) endef +define Download/ct-firmware-htt + URL:=https://www.candelatech.com/downloads/$(2) + FILE:=$(call CT_FIRMWARE_FILE_HTT,$(1)) + URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT) +endef + QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.018 define Download/ath10k-firmware-qca988x-ct $(call Download/ct-firmware,QCA988X,) @@ -132,6 +139,13 @@ define Download/ath10k-firmware-qca99x0-ct-full-htt endef $(eval $(call Download,ath10k-firmware-qca99x0-ct-full-htt)) +QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018 +define Download/ath10k-firmware-qca99x0-ct-htt + $(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b) + HASH:=4d4f74afca487d452f244cd48304cf9710d8941eb97a6346a949ed6b6877d657 +endef +$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt)) + QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018 define Download/ath10k-firmware-qca9984-ct @@ -147,6 +161,13 @@ define Download/ath10k-firmware-qca9984-ct-full-htt endef $(eval $(call Download,ath10k-firmware-qca9984-ct-full-htt)) +QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018 +define Download/ath10k-firmware-qca9984-ct-htt + $(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b) + HASH:=ee593fb5724d75c372de02ac7894e1630ee9f909fcb2e2bbf17aadef67cb9d43 +endef +$(eval $(call Download,ath10k-firmware-qca9984-ct-htt)) + QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018 define Download/ath10k-firmware-qca4019-ct @@ -162,6 +183,13 @@ define Download/ath10k-firmware-qca4019-ct-full-htt endef $(eval $(call Download,ath10k-firmware-qca4019-ct-full-htt)) +QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018 +define Download/ath10k-firmware-qca4019-ct-htt + $(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b) + HASH:=51fe06f66365771647d16039cca8b541de3d642c45271977a4cfd433c2c5d45b +endef +$(eval $(call Download,ath10k-firmware-qca4019-ct-htt)) + QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.018 define Download/ath10k-firmware-qca9888-ct @@ -177,6 +205,13 @@ define Download/ath10k-firmware-qca9888-ct-full-htt endef $(eval $(call Download,ath10k-firmware-qca9888-ct-full-htt)) +QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-htt-mgt-community-12.bin-lede.018 +define Download/ath10k-firmware-qca9888-ct-htt + $(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b) + HASH:=6c692141155f5bb74c0117553d5d48ff2aaba73bd4d5e90a5044a5e2ec0faab0 +endef +$(eval $(call Download,ath10k-firmware-qca9888-ct-htt)) + define Package/ath10k-ct-firmware-default SECTION:=firmware @@ -232,6 +267,14 @@ $(Package/ath10k-ct-firmware-default) PROVIDES:=ath10k-firmware-qca99x0 DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct endef +define Package/ath10k-firmware-qca99x0-ct-htt +$(Package/ath10k-firmware-default) + TITLE:=ath10k CT 10.4 htt-mgt fw for QCA99x0 + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca99x0 + DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct +endef define Package/ath10k-firmware-qca9984-ct $(Package/ath10k-ct-firmware-default) @@ -248,6 +291,14 @@ $(Package/ath10k-ct-firmware-default) PROVIDES:=ath10k-firmware-qca9984 DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct endef +define Package/ath10k-firmware-qca9984-ct-htt +$(Package/ath10k-firmware-default) + TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9984 + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca9984 + DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct +endef define Package/ath10k-firmware-qca4019-ct $(Package/ath10k-ct-firmware-default) @@ -264,6 +315,14 @@ $(Package/ath10k-ct-firmware-default) PROVIDES:=ath10k-firmware-qca4019 DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct endef +define Package/ath10k-firmware-qca4019-ct-htt +$(Package/ath10k-firmware-default) + TITLE:=ath10k CT 10.4 htt-mgt for QCA4018/9 + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca4019 + DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct +endef define Package/ath10k-firmware-qca9888-ct $(Package/ath10k-ct-firmware-default) @@ -280,6 +339,14 @@ $(Package/ath10k-ct-firmware-default) PROVIDES:=ath10k-firmware-qca9888 DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct endef +define Package/ath10k-firmware-qca9888-ct-htt +$(Package/ath10k-firmware-default) + TITLE:=ath10k CT 10.4 htt-mgt fw for QCA9886/8 + SECTION:=firmware + CATEGORY:=Firmware + PROVIDES:=ath10k-firmware-qca9888 + DEPENDS:=+!PACKAGE_kmod-ath10k-ct-smallbuffers:kmod-ath10k-ct +endef define Package/ath10k-firmware-qca9887-ct/description @@ -330,6 +397,16 @@ Enables IBSS and other features. See: http://www.candelatech.com/ath10k-10.4.php This firmware selects and requires the ath10k-ct driver. endef +define Package/ath10k-firmware-qca99x0-ct-htt/description +Alternative ath10k firmware for QCA99x0 from Candela Technologies. +Uses normal HTT TX data path for management frames, which improves +stability in busy networks and may be required for .11r authentication. +This firmware lacks a lot of features that ath10k does not use, saving +a lot of resources. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.4.php +This firmware selects and requires the ath10k-ct driver. +endef define Package/ath10k-firmware-qca9984-ct/description Alternative ath10k firmware for QCA9984 from Candela Technologies. @@ -346,6 +423,16 @@ Enables IBSS and other features. See: http://www.candelatech.com/ath10k-10.4.php This firmware selects and requires the ath10k-ct driver. endef +define Package/ath10k-firmware-qca9984-ct-htt/description +Alternative ath10k firmware for QCA9984 from Candela Technologies. +Uses normal HTT TX data path for management frames, which improves +stability in busy networks and may be required for .11r authentication. +This firmware lacks a lot of features that ath10k does not use, saving +a lot of resources. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.4.php +This firmware selects and requires the ath10k-ct driver. +endef define Package/ath10k-firmware-qca4019-ct/description Alternative ath10k firmware for IPQ4019 radio from Candela Technologies. @@ -360,6 +447,16 @@ Enables IBSS and other features. See: http://www.candelatech.com/ath10k-10.4.php This firmware selects and requires the ath10k-ct driver. endef +define Package/ath10k-firmware-qca4019-ct-htt/description +Alternative ath10k firmware for IPQ4019 radio from Candela Technologies. +Uses normal HTT TX data path for management frames, which improves +stability in busy networks and may be required for .11r authentication. +This firmware lacks a lot of features that ath10k does not use, saving +a lot of resources. +Enables IBSS and other features. +See: http://www.candelatech.com/ath10k-10.4.php +This firmware selects and requires the ath10k-ct driver. +endef define Package/ath10k-firmware-qca9888-ct/description Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies. @@ -376,6 +473,16 @@ Enables IBSS and other features. See: http://www.candelatech.com/ath10k-10.4.php This firmware selects and requires the ath10k-ct driver. endef +define Package/ath10k-firmware-qca9888-ct-htt/description +Alternative ath10k firmware for QCA9886 and QCA9888 from Candela Technologies. +Uses normal HTT TX data path for management frames, which improves +stability in busy networks and may be required for .11r authentication. +This firmware lacks a lot of features that ath10k does not use, saving +a lot of resources. +Enables IBSS and other features. See: +http://www.candelatech.com/ath10k-10.4.php +This firmware selects and requires the ath10k-ct driver. +endef define Build/Compile @@ -445,6 +552,18 @@ define Package/ath10k-firmware-qca99x0-ct-full-htt/install $(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA99X0) \ $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin endef +define Package/ath10k-firmware-qca99x0-ct-htt/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA99X0/hw2.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA99X0_BOARD2_FILE) \ + $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA99X0_BOARD_FILE) \ + $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/board.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA99X0) \ + $(1)/lib/firmware/ath10k/QCA99X0/hw2.0/ct-firmware-5.bin +endef define Package/ath10k-firmware-qca9984-ct/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 @@ -464,6 +583,15 @@ define Package/ath10k-firmware-qca9984-ct-full-htt/install $(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9984) \ $(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin endef +define Package/ath10k-firmware-qca9984-ct-htt/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9984/hw1.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA9984_BOARD2_FILE) \ + $(1)/lib/firmware/ath10k/QCA9984/hw1.0/board-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9984) \ + $(1)/lib/firmware/ath10k/QCA9984/hw1.0/ct-firmware-5.bin +endef define Package/ath10k-firmware-qca4019-ct/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 @@ -483,6 +611,15 @@ define Package/ath10k-firmware-qca4019-ct-full-htt/install $(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA4019) \ $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin endef +define Package/ath10k-firmware-qca4019-ct-htt/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA4019/hw1.0 + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA4019_BOARD2_FILE) \ + $(1)/lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA4019) \ + $(1)/lib/firmware/ath10k/QCA4019/hw1.0/ct-firmware-5.bin +endef define Package/ath10k-firmware-qca9888-ct/install $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 @@ -508,6 +645,18 @@ define Package/ath10k-firmware-qca9888-ct-full-htt/install $(DL_DIR)/$(call CT_FIRMWARE_FILE_FULL_HTT,QCA9888) \ $(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-firmware-5.bin endef +define Package/ath10k-firmware-qca9888-ct-htt/install + $(INSTALL_DIR) $(1)/lib/firmware/ath10k/QCA9888/hw2.0 + ln -s \ + ../../cal-pci-0000:01:00.0.bin \ + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(QCA9888_BOARD2_FILE) \ + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/board-2.bin + $(INSTALL_DATA) \ + $(DL_DIR)/$(call CT_FIRMWARE_FILE_HTT,QCA9888) \ + $(1)/lib/firmware/ath10k/QCA9888/hw2.0/ct-firmware-5.bin +endef $(eval $(call BuildPackage,ath10k-firmware-qca9887-ct)) @@ -516,9 +665,13 @@ $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct)) $(eval $(call BuildPackage,ath10k-firmware-qca988x-ct-full-htt)) $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct)) $(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-full-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca99x0-ct-htt)) $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct)) $(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-full-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca9984-ct-htt)) $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct)) $(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-full-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca4019-ct-htt)) $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct)) $(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-full-htt)) +$(eval $(call BuildPackage,ath10k-firmware-qca9888-ct-htt)) From a10537f67400e910da153ebf3b478d931dd557f2 Mon Sep 17 00:00:00 2001 From: DENG Qingfang Date: Tue, 28 Apr 2020 11:38:51 +0800 Subject: [PATCH 08/14] ramips: fix MikroTik 750Gr3 ports MAC addresses According to a user in OpenWrt forum, on RouterOS the MAC addresses are ether1(WAN) = MAC ether2(LAN2) = MAC+1 ether3(LAN3) = MAC+2 etc. Fix the MAC addresses in OpenWrt. Ref: https://forum.openwrt.org/t/few-dumb-question-about-mt7530-rb750gr3-dsa/61608 Signed-off-by: DENG Qingfang [remove label_mac in 02_network] Signed-off-by: Adrian Schmutzler --- .../dts/mt7621_mikrotik_routerboard-750gr3.dts | 12 +++++++++--- .../ramips/mt7621/base-files/etc/board.d/02_network | 1 - 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts index 3f37155f24..af0664a4fa 100644 --- a/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts +++ b/target/linux/ramips/dts/mt7621_mikrotik_routerboard-750gr3.dts @@ -15,6 +15,7 @@ led-failsafe = &led_usr; led-running = &led_usr; led-upgrade = &led_usr; + label-mac-device = &gmac0; }; chosen { @@ -131,7 +132,6 @@ &gmac0 { mtd-mac-address = <&hard_config 0x0010>; - mtd-mac-address-increment = <1>; }; &switch0 { @@ -139,28 +139,34 @@ port@0 { status = "okay"; label = "wan"; - mtd-mac-address = <&hard_config 0x0010>; - mtd-mac-address-increment = <2>; }; port@1 { status = "okay"; label = "lan2"; + mtd-mac-address = <&hard_config 0x0010>; + mtd-mac-address-increment = <1>; }; port@2 { status = "okay"; label = "lan3"; + mtd-mac-address = <&hard_config 0x0010>; + mtd-mac-address-increment = <2>; }; port@3 { status = "okay"; label = "lan4"; + mtd-mac-address = <&hard_config 0x0010>; + mtd-mac-address-increment = <3>; }; port@4 { status = "okay"; label = "lan5"; + mtd-mac-address = <&hard_config 0x0010>; + mtd-mac-address-increment = <4>; }; }; }; diff --git a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network index 952146478c..43db9c6f64 100755 --- a/target/linux/ramips/mt7621/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7621/base-files/etc/board.d/02_network @@ -91,7 +91,6 @@ ramips_setup_macs() wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr) label_mac=$wan_mac ;; - mikrotik,routerboard-750gr3|\ mikrotik,routerboard-m11g|\ mikrotik,routerboard-m33g) label_mac=$(mtd_get_mac_binary hard_config 0x10) From 4b3b8ec81cd1965d0bd548fa31db491295b83354 Mon Sep 17 00:00:00 2001 From: Antonio Quartulli Date: Tue, 28 Apr 2020 12:06:58 +0200 Subject: [PATCH 09/14] wpad-wolfssl: fix crypto_bignum_sub() Backport patch from hostapd.git master that fixes copy/paste error in crypto_bignum_sub() in crypto_wolfssl.c. This missing fix was discovered while testing SAE over a mesh interface. With this fix applied and wolfssl >3.14.4 mesh+SAE works fine with wpad-mesh-wolfssl. Cc: Sean Parkinson Signed-off-by: Antonio Quartulli Signed-off-by: Daniel Golle --- .../090-wolfssl-fix-crypto_bignum_sum.patch | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 package/network/services/hostapd/patches/090-wolfssl-fix-crypto_bignum_sum.patch diff --git a/package/network/services/hostapd/patches/090-wolfssl-fix-crypto_bignum_sum.patch b/package/network/services/hostapd/patches/090-wolfssl-fix-crypto_bignum_sum.patch new file mode 100644 index 0000000000..7cc0dec3fe --- /dev/null +++ b/package/network/services/hostapd/patches/090-wolfssl-fix-crypto_bignum_sum.patch @@ -0,0 +1,26 @@ +From 1766e608ba1114220f3b3598e77aa53b50c38a6e Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Mon, 14 Oct 2019 19:27:47 +0300 +Subject: [PATCH] wolfSSL: Fix crypto_bignum_sub() + +The initial crypto wrapper implementation for wolfSSL seems to have +included a copy-paste error in crypto_bignum_sub() implementation that +was identical to crypto_bignum_add() while mp_sub() should have been +used instead of mp_add(). + +Signed-off-by: Jouni Malinen +--- + src/crypto/crypto_wolfssl.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/src/crypto/crypto_wolfssl.c ++++ b/src/crypto/crypto_wolfssl.c +@@ -1151,7 +1151,7 @@ int crypto_bignum_sub(const struct crypt + if (TEST_FAIL()) + return -1; + +- return mp_add((mp_int *) a, (mp_int *) b, ++ return mp_sub((mp_int *) a, (mp_int *) b, + (mp_int *) r) == MP_OKAY ? 0 : -1; + } + From 4fd7e539e4f90128bdd7cb71c729a4b32f5de86e Mon Sep 17 00:00:00 2001 From: Pawel Dembicki Date: Mon, 20 Apr 2020 10:06:36 +0200 Subject: [PATCH 10/14] kirkwood: switch from swconfig to dsa This patch removes support for swconfig and switches to dsa driver. swconfig and switch drivers are removed. DSA driver is enabled and configuration is adjusted. In kirkwood only two devices have switches: Linksys EA3500 and EA4500. WAN MAC configuration in 02_network is required because otherwise WAN would have the same MAC address as lan interfaces. In swconfig solution the WAN address was assigned in u-Boot to eth1. Now, as eth1 is disabled and wan is part of the switch, we have to set it manually. Compile tested: EA3500, EA4500 Run tested: EA4500 Signed-off-by: Pawel Dembicki [minor commit title/message adjustments, remove swconfig package for devices] Signed-off-by: Adrian Schmutzler --- .../base-files/etc/board.d/02_network | 4 +- target/linux/kirkwood/config-5.4 | 11 ++- .../arm/boot/dts/kirkwood-linksys-audi.dts | 71 ++++++++++++++----- target/linux/kirkwood/image/Makefile | 4 +- .../kirkwood/patches-5.4/105-ea4500.patch | 45 +----------- target/linux/kirkwood/profiles/00-default.mk | 2 +- 6 files changed, 68 insertions(+), 69 deletions(-) diff --git a/target/linux/kirkwood/base-files/etc/board.d/02_network b/target/linux/kirkwood/base-files/etc/board.d/02_network index 15e51d88f2..df01b0bb1b 100755 --- a/target/linux/kirkwood/base-files/etc/board.d/02_network +++ b/target/linux/kirkwood/base-files/etc/board.d/02_network @@ -26,8 +26,8 @@ case "$board" in ;; "linksys,audi"|\ "linksys,viper") - ucidef_add_switch "switch0" \ - "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5@eth0" "6@eth1" + ucidef_set_interfaces_lan_wan "ethernet1 ethernet2 ethernet3 ethernet4" "internet" + ucidef_set_interface_macaddr "wan" $( mtd_get_mac_ascii u_env eth1addr ) ;; "zyxel,nsa310b"|\ "zyxel,nsa325") diff --git a/target/linux/kirkwood/config-5.4 b/target/linux/kirkwood/config-5.4 index e149631f0e..c14ca3778f 100644 --- a/target/linux/kirkwood/config-5.4 +++ b/target/linux/kirkwood/config-5.4 @@ -245,10 +245,17 @@ CONFIG_MVEBU_MBUS=y CONFIG_MVMDIO=y # CONFIG_MVNETA is not set # CONFIG_MVPP2 is not set -CONFIG_MVSW61XX_PHY=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_KUSER_HELPERS=y CONFIG_NEED_PER_CPU_KM=y +CONFIG_NET_DEVLINK=y +CONFIG_NET_DSA=y +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y +# CONFIG_NET_DSA_MV88E6XXX_PTP is not set +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_SWITCHDEV=y CONFIG_NLS=y CONFIG_NVMEM=y # CONFIG_NVMEM_REBOOT_MODE is not set @@ -276,6 +283,7 @@ CONFIG_PCI_MVEBU=y CONFIG_PERF_USE_VMALLOC=y CONFIG_PGTABLE_LEVELS=2 CONFIG_PHYLIB=y +CONFIG_PHYLINK=y # CONFIG_PHY_MVEBU_A3700_UTMI is not set # CONFIG_PHY_MVEBU_A38X_COMPHY is not set CONFIG_PHY_MVEBU_SATA=y @@ -317,7 +325,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=999999 CONFIG_SRAM=y CONFIG_SRAM_EXEC=y CONFIG_SRCU=y -CONFIG_SWCONFIG=y CONFIG_SWPHY=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_THERMAL=y diff --git a/target/linux/kirkwood/files-5.4/arch/arm/boot/dts/kirkwood-linksys-audi.dts b/target/linux/kirkwood/files-5.4/arch/arm/boot/dts/kirkwood-linksys-audi.dts index eff9102d33..90250fefc8 100644 --- a/target/linux/kirkwood/files-5.4/arch/arm/boot/dts/kirkwood-linksys-audi.dts +++ b/target/linux/kirkwood/files-5.4/arch/arm/boot/dts/kirkwood-linksys-audi.dts @@ -66,17 +66,6 @@ default-state = "on"; }; }; - - mvsw61xx { - compatible = "marvell,88e6171"; - status = "okay"; - reg = <0x10>; - - mii-bus = <&mdio>; - cpu-port-0 = <5>; - cpu-port-1 = <6>; - is-indirect; - }; }; &pinctrl { @@ -96,6 +85,57 @@ }; }; +&mdio { + status = "okay"; + + switch@10 { + compatible = "marvell,mv88e6085"; + #address-cells = <1>; + #size-cells = <0>; + reg = <16>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + label = "ethernet1"; + }; + + port@1 { + reg = <1>; + label = "ethernet2"; + }; + + port@2 { + reg = <2>; + label = "ethernet3"; + }; + + port@3 { + reg = <3>; + label = "ethernet4"; + }; + + port@4 { + reg = <4>; + label = "internet"; + }; + + port@5 { + reg = <5>; + label = "cpu"; + ethernet = <ð0port>; + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + }; + }; +}; + &nand { status = "okay"; @@ -188,15 +228,10 @@ }; /* eth1 is connected to the switch at port 6. However DSA only supports a - * single CPU port. Upstream uses DSA so they disable this port to avoid confusion. + * single CPU port. This port is disabled to avoid confusion. */ ð1 { - status = "okay"; - - ethernet1-port@0 { - speed = <1000>; - duplex = <1>; - }; + status = "disabled"; }; /* There is no battery on the board, so the RTC does not keep diff --git a/target/linux/kirkwood/image/Makefile b/target/linux/kirkwood/image/Makefile index 865122ae19..4ba9f9a1b2 100644 --- a/target/linux/kirkwood/image/Makefile +++ b/target/linux/kirkwood/image/Makefile @@ -82,7 +82,7 @@ TARGET_DEVICES += iom_ix2-200 define Device/linksys_audi DEVICE_VENDOR := Linksys DEVICE_MODEL := EA3500 (Audi) - DEVICE_PACKAGES := kmod-mwl8k swconfig wpad-basic kmod-gpio-button-hotplug + DEVICE_PACKAGES := kmod-mwl8k wpad-basic kmod-gpio-button-hotplug PAGESIZE := 512 SUBPAGESIZE := 256 BLOCKSIZE := 16k @@ -97,7 +97,7 @@ TARGET_DEVICES += linksys_audi define Device/linksys_viper DEVICE_VENDOR := Linksys DEVICE_MODEL := E4200v2 / EA4500 (Viper) - DEVICE_PACKAGES := kmod-mwl8k swconfig wpad-basic kmod-gpio-button-hotplug + DEVICE_PACKAGES := kmod-mwl8k wpad-basic kmod-gpio-button-hotplug KERNEL_SIZE := 2688k KERNEL_IN_UBI := UBINIZE_OPTS := -E 5 diff --git a/target/linux/kirkwood/patches-5.4/105-ea4500.patch b/target/linux/kirkwood/patches-5.4/105-ea4500.patch index 7302723029..0d97ad14a2 100644 --- a/target/linux/kirkwood/patches-5.4/105-ea4500.patch +++ b/target/linux/kirkwood/patches-5.4/105-ea4500.patch @@ -23,25 +23,7 @@ }; white-pulse { -@@ -66,6 +71,17 @@ - gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; - }; - }; -+ -+ mvsw61xx@10 { -+ compatible = "marvell,88e6171"; -+ status = "okay"; -+ reg = <0x10>; -+ -+ mii-bus = <&mdio>; -+ cpu-port-0 = <5>; -+ cpu-port-1 = <6>; -+ is-indirect; -+ }; - }; - - &pinctrl { -@@ -114,22 +130,22 @@ +@@ -114,22 +119,22 @@ }; partition@200000 { @@ -68,28 +50,3 @@ reg = <0x1EA0000 0x1760000>; }; -@@ -162,6 +178,7 @@ - status = "okay"; - - switch@10 { -+ status = "disabled"; - compatible = "marvell,mv88e6085"; - #address-cells = <1>; - #size-cells = <0>; -@@ -225,10 +242,14 @@ - }; - - /* eth1 is connected to the switch at port 6. However DSA only supports a -- * single CPU port. So leave this port disabled to avoid confusion. -+ * single CPU port. Upstream uses DSA so they disable this port to avoid confusion. - */ - ð1 { -- status = "disabled"; -+ status = "okay"; -+ ethernet1-port@0 { -+ speed = <1000>; -+ duplex = <1>; -+ }; - }; - - /* There is no battery on the board, so the RTC does not keep diff --git a/target/linux/kirkwood/profiles/00-default.mk b/target/linux/kirkwood/profiles/00-default.mk index 002751714e..bfc2154c48 100644 --- a/target/linux/kirkwood/profiles/00-default.mk +++ b/target/linux/kirkwood/profiles/00-default.mk @@ -7,7 +7,7 @@ define Profile/Default NAME:=Default Profile - PACKAGES:=kmod-mwl8k swconfig wpad-basic + PACKAGES:=kmod-mwl8k wpad-basic PRIORITY:=1 endef From 0af2c44604e64617bfb8084da2021e557160a5da Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Tue, 28 Apr 2020 11:52:40 +0200 Subject: [PATCH 11/14] kirkwood: remove support for kernel 4.14 kirkwood has moved to DSA on 5.4, which will make kernel 4.14 and 4.19 support broken on the affected devices. Support on kernel 5.4 seems to have been running fine for almost 2 months on multiple devices. Signed-off-by: Adrian Schmutzler Acked-by: Pawel Dembicki --- target/linux/kirkwood/config-4.14 | 347 ------------------ .../arch/arm/boot/dts/kirkwood-goflexhome.dts | 124 ------- .../arm/boot/dts/kirkwood-linksys-audi.dts | 250 ------------- .../arch/arm/boot/dts/kirkwood-nsa310b.dts | 132 ------- .../arch/arm/boot/dts/kirkwood-on100.dts | 165 --------- .../kirkwood/patches-4.14/100-ib62x0.patch | 53 --- .../kirkwood/patches-4.14/101-iconnect.patch | 80 ---- .../kirkwood/patches-4.14/102-dockstar.patch | 62 ---- .../patches-4.14/103-iomega-ix2-200.patch | 67 ---- .../kirkwood/patches-4.14/105-ea4500.patch | 144 -------- .../kirkwood/patches-4.14/106-goflexnet.patch | 53 --- ...-zyxel-nsa3x0-common-nand-partitions.patch | 48 --- .../kirkwood/patches-4.14/107-03-nsa325.patch | 31 -- .../patches-4.14/109-pogoplug_v4.patch | 87 ----- .../kirkwood/patches-4.14/110-pogo_e02.patch | 68 ---- .../patches-4.14/200-disable-tso.patch | 35 -- ...able-sata-port-specific-led-triggers.patch | 10 - .../202-linksys-find-active-root.patch | 62 ---- 18 files changed, 1818 deletions(-) delete mode 100644 target/linux/kirkwood/config-4.14 delete mode 100644 target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-goflexhome.dts delete mode 100644 target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-linksys-audi.dts delete mode 100644 target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-nsa310b.dts delete mode 100644 target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-on100.dts delete mode 100644 target/linux/kirkwood/patches-4.14/100-ib62x0.patch delete mode 100644 target/linux/kirkwood/patches-4.14/101-iconnect.patch delete mode 100644 target/linux/kirkwood/patches-4.14/102-dockstar.patch delete mode 100644 target/linux/kirkwood/patches-4.14/103-iomega-ix2-200.patch delete mode 100644 target/linux/kirkwood/patches-4.14/105-ea4500.patch delete mode 100644 target/linux/kirkwood/patches-4.14/106-goflexnet.patch delete mode 100644 target/linux/kirkwood/patches-4.14/107-01-zyxel-nsa3x0-common-nand-partitions.patch delete mode 100644 target/linux/kirkwood/patches-4.14/107-03-nsa325.patch delete mode 100644 target/linux/kirkwood/patches-4.14/109-pogoplug_v4.patch delete mode 100644 target/linux/kirkwood/patches-4.14/110-pogo_e02.patch delete mode 100644 target/linux/kirkwood/patches-4.14/200-disable-tso.patch delete mode 100644 target/linux/kirkwood/patches-4.14/201-enable-sata-port-specific-led-triggers.patch delete mode 100644 target/linux/kirkwood/patches-4.14/202-linksys-find-active-root.patch diff --git a/target/linux/kirkwood/config-4.14 b/target/linux/kirkwood/config-4.14 deleted file mode 100644 index 9481d0a3cf..0000000000 --- a/target/linux/kirkwood/config-4.14 +++ /dev/null @@ -1,347 +0,0 @@ -CONFIG_ALIGNMENT_TRAP=y -CONFIG_ARCH_CLOCKSOURCE_DATA=y -CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -CONFIG_ARCH_HAS_ELF_RANDOMIZE=y -CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -CONFIG_ARCH_HAS_SET_MEMORY=y -CONFIG_ARCH_HAS_SG_CHAIN=y -CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y -CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -CONFIG_ARCH_MULTIPLATFORM=y -CONFIG_ARCH_MULTI_CPU_AUTO=y -# CONFIG_ARCH_MULTI_V4 is not set -# CONFIG_ARCH_MULTI_V4T is not set -CONFIG_ARCH_MULTI_V4_V5=y -CONFIG_ARCH_MULTI_V5=y -CONFIG_ARCH_MVEBU=y -CONFIG_ARCH_NR_GPIO=0 -CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y -# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set -CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y -CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y -CONFIG_ARCH_SUPPORTS_UPROBES=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARCH_USE_BUILTIN_BSWAP=y -CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y -CONFIG_ARCH_WANT_GENERAL_HUGETLB=y -CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y -CONFIG_ARCH_WANT_LIBATA_LEDS=y -CONFIG_ARM=y -# CONFIG_ARMADA_THERMAL is not set -CONFIG_ARM_APPENDED_DTB=y -CONFIG_ARM_ATAG_DTB_COMPAT=y -# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set -CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y -# CONFIG_ARM_CPU_SUSPEND is not set -CONFIG_ARM_HAS_SG_CHAIN=y -# CONFIG_ARM_KIRKWOOD_CPUIDLE is not set -CONFIG_ARM_L1_CACHE_SHIFT=5 -# CONFIG_ARM_MVEBU_V7_CPUIDLE is not set -CONFIG_ARM_PATCH_PHYS_VIRT=y -# CONFIG_ARM_THUMB is not set -CONFIG_ATA=y -CONFIG_ATAGS=y -CONFIG_ATA_LEDS=y -CONFIG_AUTO_ZRELADDR=y -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_SCSI_REQUEST=y -CONFIG_CACHE_FEROCEON_L2=y -# CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set -# CONFIG_CACHE_L2X0 is not set -CONFIG_CLKDEV_LOOKUP=y -CONFIG_CLKSRC_MMIO=y -CONFIG_CLONE_BACKWARDS=y -CONFIG_COMMON_CLK=y -CONFIG_CPU_32v5=y -CONFIG_CPU_ABRT_EV5T=y -# CONFIG_CPU_BIG_ENDIAN is not set -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_COPY_FEROCEON=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y -CONFIG_CPU_FEROCEON=y -# CONFIG_CPU_FEROCEON_OLD_ID is not set -# CONFIG_CPU_ICACHE_DISABLE is not set -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_PABRT_LEGACY=y -CONFIG_CPU_PM=y -CONFIG_CPU_THUMB_CAPABLE=y -CONFIG_CPU_TLB_FEROCEON=y -CONFIG_CPU_USE_DOMAINS=y -CONFIG_CRC16=y -# CONFIG_CRC32_SARWATE is not set -CONFIG_CRC32_SLICEBY8=y -CONFIG_CRYPTO_ACOMP2=y -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_DEV_MARVELL_CESA=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_LZO=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_DEBUG_LL=y -CONFIG_DEBUG_LL_INCLUDE="debug/8250.S" -CONFIG_DEBUG_MVEBU_UART0_ALTERNATE=y -# CONFIG_DEBUG_MVEBU_UART1_ALTERNATE is not set -CONFIG_DEBUG_UART_8250=y -# CONFIG_DEBUG_UART_8250_FLOW_CONTROL is not set -CONFIG_DEBUG_UART_8250_SHIFT=2 -# CONFIG_DEBUG_UART_8250_WORD is not set -CONFIG_DEBUG_UART_PHYS=0xf1012000 -CONFIG_DEBUG_UART_VIRT=0xfed12000 -CONFIG_DEBUG_UNCOMPRESS=y -# CONFIG_DEBUG_USER is not set -# CONFIG_DLCI is not set -CONFIG_DNOTIFY=y -CONFIG_DTC=y -# CONFIG_EARLY_PRINTK is not set -CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_EDAC_SUPPORT=y -CONFIG_EXT4_FS=y -CONFIG_FIXED_PHY=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_FRAME_POINTER=y -CONFIG_FS_MBCACHE=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_GENERIC_ATOMIC64=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_EARLY_IOREMAP=y -CONFIG_GENERIC_IDLE_POLL_SETUP=y -CONFIG_GENERIC_IO=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_SHOW_LEVEL=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_PHY=y -CONFIG_GENERIC_SCHED_CLOCK=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GLOB=y -CONFIG_GPIOLIB=y -CONFIG_GPIO_MVEBU=y -CONFIG_GPIO_SYSFS=y -# CONFIG_GRO_CELLS is not set -CONFIG_HANDLE_DOMAIN_IRQ=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_HAS_DMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT_MAP=y -# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set -CONFIG_HAVE_ARCH_AUDITSYSCALL=y -# CONFIG_HAVE_ARCH_BITREVERSE is not set -CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_ARCH_PFN_VALID=y -CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set -CONFIG_HAVE_CC_STACKPROTECTOR=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_CLK_PREPARE=y -CONFIG_HAVE_CONTEXT_TRACKING=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_HAVE_DEBUG_KMEMLEAK=y -CONFIG_HAVE_DMA_API_DEBUG=y -CONFIG_HAVE_DMA_CONTIGUOUS=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y -CONFIG_HAVE_EBPF_JIT=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_HAVE_IDE=y -CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_HAVE_NET_DSA=y -CONFIG_HAVE_OPROFILE=y -CONFIG_HAVE_OPTPROBES=y -CONFIG_HAVE_PERF_EVENTS=y -CONFIG_HAVE_PERF_REGS=y -CONFIG_HAVE_PERF_USER_STACK_DUMP=y -CONFIG_HAVE_PROC_CPU=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_UID16=y -CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y -CONFIG_HW_RANDOM=y -CONFIG_HW_RANDOM_OMAP=y -CONFIG_HZ_FIXED=0 -CONFIG_HZ_PERIODIC=y -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_CHARDEV=y -CONFIG_I2C_MV64XXX=y -# CONFIG_I2C_PXA is not set -CONFIG_INITRAMFS_SOURCE="" -CONFIG_IOMMU_HELPER=y -CONFIG_IRQCHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_IRQ_WORK=y -CONFIG_JBD2=y -CONFIG_KIRKWOOD_CLK=y -CONFIG_KIRKWOOD_THERMAL=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_NETXBIG=y -CONFIG_LEDS_NS2=y -CONFIG_LIBFDT=y -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_MACH_KIRKWOOD=y -CONFIG_MACH_MVEBU_ANY=y -CONFIG_MANGLE_BOOTARGS=y -CONFIG_MDIO_BUS=y -CONFIG_MDIO_DEVICE=y -CONFIG_MIGHT_HAVE_PCI=y -CONFIG_MMC=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_MVSDIO=y -# CONFIG_MMC_TIFM_SD is not set -CONFIG_MODULES_USE_ELF_REL=y -# CONFIG_MTD_CFI is not set -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_ECC=y -CONFIG_MTD_NAND_ORION=y -CONFIG_MTD_UBI=y -CONFIG_MTD_UBI_BEB_LIMIT=20 -CONFIG_MTD_UBI_BLOCK=y -# CONFIG_MTD_UBI_FASTMAP is not set -# CONFIG_MTD_UBI_GLUEBI is not set -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MULTI_IRQ_HANDLER=y -CONFIG_MV643XX_ETH=y -CONFIG_MVEBU_CLK_COMMON=y -CONFIG_MVEBU_MBUS=y -CONFIG_MVMDIO=y -# CONFIG_MVNETA is not set -# CONFIG_MVPP2 is not set -CONFIG_MVSW61XX_PHY=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NEED_KUSER_HELPERS=y -CONFIG_NEED_PER_CPU_KM=y -CONFIG_NLS=y -CONFIG_NO_BOOTMEM=y -CONFIG_OF=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_ADDRESS_PCI=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_FLATTREE=y -CONFIG_OF_GPIO=y -CONFIG_OF_IRQ=y -CONFIG_OF_MDIO=y -CONFIG_OF_NET=y -CONFIG_OF_PCI=y -CONFIG_OF_PCI_IRQ=y -CONFIG_OF_RESERVED_MEM=y -CONFIG_OLD_SIGACTION=y -CONFIG_OLD_SIGSUSPEND3=y -CONFIG_ORION_IRQCHIP=y -CONFIG_ORION_TIMER=y -CONFIG_ORION_WATCHDOG=y -CONFIG_OUTER_CACHE=y -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_MVEBU=y -CONFIG_PERF_USE_VMALLOC=y -CONFIG_PGTABLE_LEVELS=2 -CONFIG_PHYLIB=y -# CONFIG_PHY_MVEBU_CP110_COMPHY is not set -CONFIG_PHY_MVEBU_SATA=y -CONFIG_PINCTRL=y -CONFIG_PINCTRL_KIRKWOOD=y -CONFIG_PINCTRL_MVEBU=y -# CONFIG_PINCTRL_SINGLE is not set -CONFIG_PLAT_ORION=y -CONFIG_POWER_RESET=y -CONFIG_POWER_RESET_GPIO=y -# CONFIG_POWER_RESET_QNAP is not set -CONFIG_POWER_SUPPLY=y -CONFIG_RATIONAL=y -# CONFIG_RCU_NEED_SEGCBLIST is not set -# CONFIG_RCU_STALL_COMMON is not set -CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=y -CONFIG_REGMAP_MMIO=y -CONFIG_REGMAP_SPI=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_MV=y -CONFIG_RTC_I2C_AND_SPI=y -CONFIG_RTC_MC146818_LIB=y -CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_SATA_MV=y -CONFIG_SATA_PMP=y -# CONFIG_SCHED_INFO is not set -CONFIG_SCSI=y -CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y -CONFIG_SERIAL_8250_FSL=y -# CONFIG_SERIAL_MVEBU_UART is not set -CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SG_POOL=y -CONFIG_SOC_BUS=y -CONFIG_SPARSE_IRQ=y -CONFIG_SPI=y -# CONFIG_SPI_ARMADA_3700 is not set -CONFIG_SPI_MASTER=y -CONFIG_SPI_ORION=y -CONFIG_SPLIT_PTLOCK_CPUS=999999 -CONFIG_SRAM=y -CONFIG_SRAM_EXEC=y -CONFIG_SRCU=y -CONFIG_SWCONFIG=y -CONFIG_SWIOTLB=y -CONFIG_SWPHY=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_THERMAL=y -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_GOV_STEP_WISE=y -CONFIG_THERMAL_OF=y -CONFIG_TICK_CPU_ACCOUNTING=y -CONFIG_TIMER_OF=y -CONFIG_TIMER_PROBE=y -CONFIG_TINY_SRCU=y -CONFIG_UBIFS_FS=y -CONFIG_UBIFS_FS_ADVANCED_COMPR=y -CONFIG_UBIFS_FS_LZO=y -CONFIG_UBIFS_FS_ZLIB=y -CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" -CONFIG_USB=y -CONFIG_USB_COMMON=y -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_HCD_ORION=y -# CONFIG_USB_EHCI_HCD_PLATFORM is not set -CONFIG_USB_LED_TRIG=y -CONFIG_USB_STORAGE=y -CONFIG_USB_SUPPORT=y -CONFIG_USE_OF=y -CONFIG_VECTORS_BASE=0xffff0000 -# CONFIG_VFP is not set -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_WAN=y -CONFIG_WATCHDOG_CORE=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_BCJ=y -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZLIB_DEFLATE=y -CONFIG_ZLIB_INFLATE=y diff --git a/target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-goflexhome.dts b/target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-goflexhome.dts deleted file mode 100644 index af20cf9e2c..0000000000 --- a/target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-goflexhome.dts +++ /dev/null @@ -1,124 +0,0 @@ -/dts-v1/; - -#include "kirkwood.dtsi" -#include "kirkwood-6281.dtsi" - -/ { - model = "Seagate GoFlex Home"; - compatible = "seagate,goflexhome", "marvell,kirkwood-88f6281", "marvell,kirkwood"; - - aliases { - led-boot = &led_health; - led-failsafe = &led_fault; - led-running = &led_health; - led-upgrade = &led_fault; - }; - - memory { - device_type = "memory"; - reg = <0x00000000 0x8000000>; - }; - - chosen { - bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10"; - stdout-path = &uart0; - }; - - ocp@f1000000 { - pinctrl: pin-controller@10000 { - pmx_usb_power_enable: pmx-usb-power-enable { - marvell,pins = "mpp29"; - marvell,function = "gpio"; - }; - pmx_led_white: pmx-led-white { - marvell,pins = "mpp40"; - marvell,function = "gpio"; - }; - pmx_led_green: pmx-led_green { - marvell,pins = "mpp46"; - marvell,function = "gpio"; - }; - pmx_led_orange: pmx-led-orange { - marvell,pins = "mpp47"; - marvell,function = "gpio"; - }; - }; - serial@12000 { - status = "ok"; - }; - - sata@80000 { - status = "okay"; - nr-ports = <2>; - }; - - }; - gpio-leds { - compatible = "gpio-leds"; - - led_health: health { - label = "status:green:health"; - gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; - default-state = "on"; - }; - led_fault: fault { - label = "status:orange:fault"; - gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; - }; - misc { - label = "status:white:misc"; - gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; - linux,default-trigger = "disk-activity"; - }; - }; - regulators { - compatible = "simple-bus"; - #address-cells = <1>; - #size-cells = <0>; - pinctrl-0 = <&pmx_usb_power_enable>; - pinctrl-names = "default"; - - usb_power: regulator@1 { - compatible = "regulator-fixed"; - reg = <1>; - regulator-name = "USB Power"; - regulator-min-microvolt = <5000000>; - regulator-max-microvolt = <5000000>; - enable-active-high; - regulator-always-on; - regulator-boot-on; - gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>; - }; - }; -}; - -&nand { - chip-delay = <40>; - status = "okay"; - - partition@0 { - label = "u-boot"; - reg = <0x0000000 0x100000>; - read-only; - }; - - partition@100000 { - label = "ubi"; - reg = <0x100000 0x0ff00000>; - }; -}; - -&mdio { - status = "okay"; - - ethphy0: ethernet-phy@0 { - reg = <0>; - }; -}; - -ð0 { - status = "okay"; - ethernet0-port@0 { - phy-handle = <ðphy0>; - }; -}; diff --git a/target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-linksys-audi.dts b/target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-linksys-audi.dts deleted file mode 100644 index 004ce10219..0000000000 --- a/target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-linksys-audi.dts +++ /dev/null @@ -1,250 +0,0 @@ -/* - * kirkwood-linksys-audi.dts - Device Tree file for Linksys EA3500 - * - * (c) 2013 Jonas Gorski - * (c) 2013 Deutsche Telekom Innovation Laboratories - * (c) 2014 Luka Perkov - * (c) 2014 Dan Walters - * - * This file is licensed under the terms of the GNU General Public - * License version 2. This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ - -/dts-v1/; - -#include "kirkwood.dtsi" -#include "kirkwood-6282.dtsi" - -/ { - model = "Linksys Audi (EA3500)"; - compatible = "linksys,audi", "marvell,kirkwood-88f6282", "marvell,kirkwood"; - - memory { - device_type = "memory"; - reg = <0x00000000 0x4000000>; - }; - - aliases { - led-boot = &led_power; - led-failsafe = &led_power; - led-running = &led_power; - led-upgrade = &led_power; - serial0 = &uart0; - }; - - chosen { - stdout-path = "serial0:115200n8"; - }; - - gpio_keys { - compatible = "gpio-keys"; - #address-cells = <1>; - #size-cells = <0>; - pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >; - pinctrl-names = "default"; - - wps { - label = "WPS Button"; - linux,code = ; - gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; - }; - - reset { - label = "Reset Button"; - linux,code = ; - gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; - }; - }; - - gpio-leds { - compatible = "gpio-leds"; - pinctrl-0 = < &pmx_led_green_power >; - pinctrl-names = "default"; - - led_power: power { - label = "audi:green:power"; - gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>; - default-state = "on"; - }; - }; - - mvsw61xx { - compatible = "marvell,88e6171"; - status = "okay"; - reg = <0x10>; - - mii-bus = <&mdio>; - cpu-port-0 = <5>; - cpu-port-1 = <6>; - is-indirect; - }; - - dsa { - compatible = "marvell,dsa"; - #address-cells = <2>; - #size-cells = <0>; - - dsa,ethernet = <ð0port>; - dsa,mii-bus = <&mdio>; - - switch@16,0 { - #address-cells = <1>; - #size-cells = <0>; - reg = <16 0>; /* MDIO address 16, switch 0 in tree */ - - port@0 { - reg = <0>; - label = "ethernet1"; - }; - - port@1 { - reg = <1>; - label = "ethernet2"; - }; - - port@2 { - reg = <2>; - label = "ethernet3"; - }; - - port@3 { - reg = <3>; - label = "ethernet4"; - }; - - port@4 { - reg = <4>; - label = "internet"; - }; - - port@5 { - reg = <5>; - label = "cpu"; - }; - }; - }; -}; - -&pinctrl { - pmx_led_green_power: pmx-led-green-power { - marvell,pins = "mpp7"; - marvell,function = "gpo"; - }; - pmx_btn_wps: pmx-btn-wps { - marvell,pins = "mpp47"; - marvell,function = "gpio"; - }; - pmx_btn_reset: pmx-btn-reset { - marvell,pins = "mpp48"; - marvell,function = "gpio"; - }; -}; - -&nand { - status = "okay"; - pinctrl-0 = <&pmx_nand>; - pinctrl-names = "default"; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "u-boot"; - reg = <0x0 0x80000>; - read-only; - }; - - partition@80000 { - label = "u_env"; - reg = <0x80000 0x4000>; - }; - - partition@84000 { - label = "s_env"; - reg = <0x84000 0x4000>; - }; - - partition@200000 { - label = "kernel1"; - reg = <0x200000 0x290000>; - }; - - partition@490000 { - label = "rootfs1"; - reg = <0x490000 0x1170000>; - }; - - partition@1600000 { - label = "kernel2"; - reg = <0x1600000 0x290000>; - }; - - partition@1890000 { - label = "rootfs2"; - reg = <0x1890000 0x1170000>; - }; - - partition@2a00000 { - label = "syscfg"; - reg = <0x2a00000 0x1600000>; - }; - - partition@88000 { - label = "unused"; - reg = <0x88000 0x178000>; - }; - - }; -}; - -&pciec { - status = "okay"; -}; - -&pcie0 { - status = "okay"; -}; - -&pcie1 { - status = "okay"; -}; - -&mdio { - status = "okay"; -}; - -&uart0 { - status = "okay"; -}; - -/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set - * fixed speed and duplex. - */ -ð0 { - status = "okay"; - ethernet0-port@0 { - speed = <1000>; - duplex = <1>; - }; -}; - -/* eth1 is connected to the switch at port 6. However DSA only supports a - * single CPU port. Upstream uses DSA so they disable this port to avoid confusion. - */ -ð1 { - status = "okay"; - ethernet1-port@0 { - speed = <1000>; - duplex = <1>; - }; -}; - -/* There is no battery on the board, so the RTC does not keep - * time when there is no power, making it useless. - */ -&rtc { - status = "disabled"; -}; diff --git a/target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-nsa310b.dts b/target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-nsa310b.dts deleted file mode 100644 index a83a55af07..0000000000 --- a/target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-nsa310b.dts +++ /dev/null @@ -1,132 +0,0 @@ -/dts-v1/; - -#include "kirkwood-nsa3x0-common.dtsi" - -/* - * There are at least two different NSA310 designs. This variant has - * a red/green USB Led (same as nsa310) and a lm85 temp/fan controller. - */ - -/ { - model = "ZyXEL NSA310b"; - compatible = "zyxel,nsa310b", "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood"; - - aliases { - led-boot = &led_green_sys; - led-failsafe = &led_red_sys; - led-running = &led_green_sys; - led-upgrade = &led_red_sys; - }; - - memory { - device_type = "memory"; - reg = <0x00000000 0x10000000>; - }; - - chosen { - bootargs = "console=ttyS0,115200"; - stdout-path = &uart0; - }; - - ocp@f1000000 { - pinctrl: pin-controller@10000 { - pinctrl-names = "default"; - - pmx_led_esata_green: pmx-led-esata-green { - marvell,pins = "mpp12"; - marvell,function = "gpio"; - }; - - pmx_led_esata_red: pmx-led-esata-red { - marvell,pins = "mpp13"; - marvell,function = "gpio"; - }; - - pmx_led_usb_green: pmx-led-usb-green { - marvell,pins = "mpp15"; - marvell,function = "gpio"; - }; - - pmx_led_usb_red: pmx-led-usb-red { - marvell,pins = "mpp16"; - marvell,function = "gpio"; - }; - - pmx_led_sys_green: pmx-led-sys-green { - marvell,pins = "mpp28"; - marvell,function = "gpio"; - }; - - pmx_led_sys_red: pmx-led-sys-red { - marvell,pins = "mpp29"; - marvell,function = "gpio"; - }; - - pmx_led_hdd_green: pmx-led-hdd-green { - marvell,pins = "mpp41"; - marvell,function = "gpio"; - }; - - pmx_led_hdd_red: pmx-led-hdd-red { - marvell,pins = "mpp42"; - marvell,function = "gpio"; - }; - - }; - - i2c@11000 { - status = "okay"; - - lm85: lm85@2e { - compatible = "national,lm85"; - reg = <0x2e>; - }; - }; - }; - - gpio-leds { - compatible = "gpio-leds"; - - led_green_sys: green-sys { - label = "nsa310:green:sys"; - gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; - default-state = "on"; - }; - led_red_sys: red-sys { - label = "nsa310:red:sys"; - gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; - }; - green-hdd { - label = "nsa310:green:hdd"; - gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; - }; - red-hdd { - label = "nsa310:red:hdd"; - gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; - }; - green-esata { - label = "nsa310:green:esata"; - gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; - }; - red-esata { - label = "nsa310:red:esata"; - gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>; - }; - green-usb { - label = "nsa310:green:usb"; - gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; - }; - red-usb { - label = "nsa310:red:usb"; - gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; - }; - green-copy { - label = "nsa310:green:copy"; - gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; - }; - red-copy { - label = "nsa310:red:copy"; - gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; - }; - }; -}; diff --git a/target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-on100.dts b/target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-on100.dts deleted file mode 100644 index 9296c3fc71..0000000000 --- a/target/linux/kirkwood/files-4.14/arch/arm/boot/dts/kirkwood-on100.dts +++ /dev/null @@ -1,165 +0,0 @@ -/dts-v1/; - -#include "kirkwood.dtsi" -#include "kirkwood-6282.dtsi" - -/ { - model = "Cisco Systems ON100"; - compatible = "cisco,on100", "marvell,kirkwood-88f6282", "marvell,kirkwood"; - - memory { - device_type = "memory"; - reg = <0x00000000 0x20000000>; - }; - - aliases { - led-boot = &led_health_green; - led-failsafe = &led_health_red; - led-running = &led_health_green; - led-upgrade = &led_health_red; - serial0 = &uart0; - }; - - chosen { - bootargs = "console=ttyS0,115200n8 earlyprintk"; - stdout-path = "serial0:115200n8"; - }; - - gpio_keys { - compatible = "gpio-keys"; - #address-cells = <1>; - #size-cells = <0>; - pinctrl-0 = <&pmx_btn_reset>; - pinctrl-names = "default"; - - button@1 { - label = "Reset Button"; - linux,code = ; - gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; - }; - }; - - gpio-leds { - compatible = "gpio-leds"; - pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g >; - pinctrl-names = "default"; - - led_health_green: health_green { - label = "on100:green:health"; - gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; - default-state = "on"; - }; - - led_health_red: health_red { - label = "on100:red:health"; - gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; - }; - - health2_green { - label = "on100:green:health2"; - gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; - }; - - health2_red { - label = "on100:red:health2"; - gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; - }; - }; -}; - -ð0 { - status = "okay"; - - ethernet0-port@0 { - phy-handle = <ðphy0>; - phy-connection-type = "rgmii-id"; - }; -}; - -ð1 { - status = "okay"; - - ethernet1-port@0 { - phy-handle = <ðphy1>; - phy-connection-type = "rgmii-id"; - }; -}; - -&mdio { - status = "okay"; - - ethphy0: ethernet-phy@0 { - /* Marvell 88E1121R */ - compatible = "ethernet-phy-id0141.0cb0", - "ethernet-phy-ieee802.3-c22"; - reg = <0>; - }; - - ethphy1: ethernet-phy@1 { - /* Marvell 88E1121R */ - compatible = "ethernet-phy-id0141.0cb0", - "ethernet-phy-ieee802.3-c22"; - reg = <1>; - }; -}; - -&nand { - status = "okay"; - - partition@0 { - label = "u-boot"; - reg = <0x00000000 0x000a0000>; - read-only; - }; - - partition@a0000 { - label = "u-boot environment"; - reg = <0x000a0000 0x00020000>; - read-only; - }; - - partition@c0000 { - label = "kernel"; - reg = <0x000c0000 0x00540000>; - }; - - partition@600000 { - label = "ubi"; - reg = <0x00600000 0x1fa00000>; - }; -}; - -&pinctrl { - pmx_led_health_r: pmx-led-health-r { - marvell,pins = "mpp45"; - marvell,function = "gpio"; - }; - - pmx_led_health_g: pmx-led-health-g { - marvell,pins = "mpp44"; - marvell,function = "gpio"; - }; - - pmx_led_health2_r: pmx-led-health2-r { - marvell,pins = "mpp47"; - marvell,function = "gpio"; - }; - - pmx_led_health2_g: pmx-led-health2-g { - marvell,pins = "mpp46"; - marvell,function = "gpio"; - }; - - pmx_btn_reset: pmx-led-reset { - marvell,pins = "mpp31"; - marvell,function = "gpio"; - }; -}; - -&sdio { - status = "okay"; -}; - -&uart0 { - status = "okay"; -}; diff --git a/target/linux/kirkwood/patches-4.14/100-ib62x0.patch b/target/linux/kirkwood/patches-4.14/100-ib62x0.patch deleted file mode 100644 index 0637c24b63..0000000000 --- a/target/linux/kirkwood/patches-4.14/100-ib62x0.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-ib62x0.dts -+++ b/arch/arm/boot/dts/kirkwood-ib62x0.dts -@@ -6,7 +6,14 @@ - - / { - model = "RaidSonic ICY BOX IB-NAS62x0 (Rev B)"; -- compatible = "raidsonic,ib-nas6210-b", "raidsonic,ib-nas6220-b", "raidsonic,ib-nas6210", "raidsonic,ib-nas6220", "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood"; -+ compatible = "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood"; -+ -+ aliases { -+ led-boot = &led_green_os; -+ led-failsafe = &led_red_os; -+ led-running = &led_green_os; -+ led-upgrade = &led_red_os; -+ }; - - memory { - device_type = "memory"; -@@ -81,12 +88,12 @@ - &pmx_led_usb_transfer>; - pinctrl-names = "default"; - -- green-os { -+ led_green_os: green-os { - label = "ib62x0:green:os"; - gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>; -- default-state = "keep"; -+ default-state = "on"; - }; -- red-os { -+ led_red_os: red-os { - label = "ib62x0:red:os"; - gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>; - }; -@@ -118,13 +125,13 @@ - }; - - partition@100000 { -- label = "uImage"; -- reg = <0x0100000 0x600000>; -+ label = "second stage u-boot"; -+ reg = <0x100000 0x200000>; - }; - -- partition@700000 { -- label = "root"; -- reg = <0x0700000 0xf900000>; -+ partition@200000 { -+ label = "ubi"; -+ reg = <0x200000 0xfe00000>; - }; - - }; diff --git a/target/linux/kirkwood/patches-4.14/101-iconnect.patch b/target/linux/kirkwood/patches-4.14/101-iconnect.patch deleted file mode 100644 index 935e2dfcf5..0000000000 --- a/target/linux/kirkwood/patches-4.14/101-iconnect.patch +++ /dev/null @@ -1,80 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-iconnect.dts -+++ b/arch/arm/boot/dts/kirkwood-iconnect.dts -@@ -8,6 +8,13 @@ - model = "Iomega Iconnect"; - compatible = "iom,iconnect-1.1", "iom,iconnect", "marvell,kirkwood-88f6281", "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_power_blue; -+ led-failsafe = &led_power_red; -+ led-running = &led_power_blue; -+ led-upgrade = &led_power_red; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x10000000>; -@@ -16,8 +23,6 @@ - chosen { - bootargs = "console=ttyS0,115200n8 earlyprintk"; - stdout-path = &uart0; -- linux,initrd-start = <0x4500040>; -- linux,initrd-end = <0x4800000>; - }; - - ocp@f1000000 { -@@ -89,12 +94,12 @@ - gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; - default-state = "on"; - }; -- power-blue { -+ led_power_blue: power-blue { - label = "power:blue"; - gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; -- default-state = "keep"; -+ default-state = "on"; - }; -- power-red { -+ led_power_red: power-red { - label = "power:red"; - gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; - }; -@@ -146,28 +151,23 @@ - status = "okay"; - - partition@0 { -- label = "uboot"; -- reg = <0x0000000 0xc0000>; -+ label = "u-boot"; -+ reg = <0x0000000 0xe0000>; - }; - -- partition@a0000 { -- label = "env"; -- reg = <0xa0000 0x20000>; -+ partition@e0000 { -+ label = "u-boot environment"; -+ reg = <0xe0000 0x100000>; - }; - - partition@100000 { -- label = "zImage"; -- reg = <0x100000 0x300000>; -- }; -- -- partition@540000 { -- label = "initrd"; -- reg = <0x540000 0x300000>; -+ label = "second stage u-boot"; -+ reg = <0x100000 0x200000>; - }; - -- partition@980000 { -- label = "boot"; -- reg = <0x980000 0x1f400000>; -+ partition@200000 { -+ label = "ubi"; -+ reg = <0x200000 0x1fe00000>; - }; - }; - diff --git a/target/linux/kirkwood/patches-4.14/102-dockstar.patch b/target/linux/kirkwood/patches-4.14/102-dockstar.patch deleted file mode 100644 index 127f84962c..0000000000 --- a/target/linux/kirkwood/patches-4.14/102-dockstar.patch +++ /dev/null @@ -1,62 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-dockstar.dts -+++ b/arch/arm/boot/dts/kirkwood-dockstar.dts -@@ -8,6 +8,13 @@ - model = "Seagate FreeAgent Dockstar"; - compatible = "seagate,dockstar", "marvell,kirkwood-88f6281", "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_health; -+ led-failsafe = &led_fault; -+ led-running = &led_health; -+ led-upgrade = &led_fault; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x8000000>; -@@ -42,12 +49,12 @@ - pinctrl-0 = <&pmx_led_green &pmx_led_orange>; - pinctrl-names = "default"; - -- health { -+ led_health: health { - label = "status:green:health"; - gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; -- default-state = "keep"; -+ default-state = "on"; - }; -- fault { -+ led_fault: fault { - label = "status:orange:fault"; - gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; - }; -@@ -78,18 +85,22 @@ - - partition@0 { - label = "u-boot"; -- reg = <0x0000000 0x100000>; -- read-only; -+ reg = <0x0000000 0xe0000>; -+ }; -+ -+ partition@e0000 { -+ label = "u-boot environment"; -+ reg = <0xe0000 0x100000>; - }; - - partition@100000 { -- label = "uImage"; -- reg = <0x0100000 0x400000>; -+ label = "second stage u-boot"; -+ reg = <0x100000 0x200000>; - }; - -- partition@500000 { -- label = "data"; -- reg = <0x0500000 0xfb00000>; -+ partition@200000 { -+ label = "ubi"; -+ reg = <0x200000 0xfe00000>; - }; - }; - diff --git a/target/linux/kirkwood/patches-4.14/103-iomega-ix2-200.patch b/target/linux/kirkwood/patches-4.14/103-iomega-ix2-200.patch deleted file mode 100644 index 9313b4bc3e..0000000000 --- a/target/linux/kirkwood/patches-4.14/103-iomega-ix2-200.patch +++ /dev/null @@ -1,67 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts -+++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts -@@ -8,6 +8,13 @@ - model = "Iomega StorCenter ix2-200"; - compatible = "iom,ix2-200", "marvell,kirkwood-88f6281", "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_power; -+ led-failsafe = &led_health; -+ led-running = &led_power; -+ led-upgrade = &led_health; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x10000000>; -@@ -127,16 +134,16 @@ - &pmx_led_rebuild &pmx_led_health >; - pinctrl-names = "default"; - -- power_led { -+ led_power: power_led { - label = "status:white:power_led"; - gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; -- default-state = "keep"; -+ default-state = "on"; - }; - rebuild_led { - label = "status:white:rebuild_led"; - gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; - }; -- health_led { -+ led_health: health_led { - label = "status:red:health_led"; - gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; - }; -@@ -186,18 +193,18 @@ - }; - - partition@a0000 { -- label = "env"; -+ label = "u-boot environment"; - reg = <0xa0000 0x20000>; - read-only; - }; - - partition@100000 { -- label = "uImage"; -+ label = "kernel"; - reg = <0x100000 0x300000>; - }; - - partition@400000 { -- label = "rootfs"; -+ label = "ubi"; - reg = <0x400000 0x1C00000>; - }; - }; -@@ -211,7 +218,7 @@ - }; - - ð0 { -- status = "okay"; -+ status = "disabled"; - ethernet0-port@0 { - speed = <1000>; - duplex = <1>; diff --git a/target/linux/kirkwood/patches-4.14/105-ea4500.patch b/target/linux/kirkwood/patches-4.14/105-ea4500.patch deleted file mode 100644 index cfa499c911..0000000000 --- a/target/linux/kirkwood/patches-4.14/105-ea4500.patch +++ /dev/null @@ -1,144 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-linksys-viper.dts -+++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts -@@ -26,6 +26,10 @@ - }; - - aliases { -+ led-boot = &led_white_health; -+ led-failsafe = &led_white_health; -+ led-running = &led_white_health; -+ led-upgrade = &led_white_health; - serial0 = &uart0; - }; - -@@ -58,9 +62,10 @@ - pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >; - pinctrl-names = "default"; - -- white-health { -+ led_white_health: white-health { - label = "viper:white:health"; - gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>; -+ default-state = "on"; - }; - - white-pulse { -@@ -69,9 +74,18 @@ - }; - }; - -- dsa { -- status = "disabled"; -+ mvsw61xx { -+ compatible = "marvell,88e6171"; -+ status = "okay"; -+ reg = <0x10>; -+ -+ mii-bus = <&mdio>; -+ cpu-port-0 = <5>; -+ cpu-port-1 = <6>; -+ is-indirect; -+ }; - -+ dsa { - compatible = "marvell,dsa"; - #address-cells = <2>; - #size-cells = <0>; -@@ -163,22 +177,22 @@ - }; - - partition@200000 { -- label = "kernel"; -+ label = "kernel1"; - reg = <0x200000 0x2A0000>; - }; - - partition@4A0000 { -- label = "rootfs"; -+ label = "rootfs1"; - reg = <0x4A0000 0x1760000>; - }; - - partition@1C00000 { -- label = "alt_kernel"; -+ label = "kernel2"; - reg = <0x1C00000 0x2A0000>; - }; - - partition@1EA0000 { -- label = "alt_rootfs"; -+ label = "rootfs2"; - reg = <0x1EA0000 0x1760000>; - }; - -@@ -209,53 +223,6 @@ - - &mdio { - status = "okay"; -- -- switch@10 { -- compatible = "marvell,mv88e6085"; -- #address-cells = <1>; -- #size-cells = <0>; -- reg = <16>; -- -- ports { -- #address-cells = <1>; -- #size-cells = <0>; -- -- port@0 { -- reg = <0>; -- label = "ethernet1"; -- }; -- -- port@1 { -- reg = <1>; -- label = "ethernet2"; -- }; -- -- port@2 { -- reg = <2>; -- label = "ethernet3"; -- }; -- -- port@3 { -- reg = <3>; -- label = "ethernet4"; -- }; -- -- port@4 { -- reg = <4>; -- label = "internet"; -- }; -- -- port@5 { -- reg = <5>; -- label = "cpu"; -- ethernet = <ð0port>; -- fixed-link { -- speed = <1000>; -- full-duplex; -- }; -- }; -- }; -- }; - }; - - &uart0 { -@@ -274,10 +241,14 @@ - }; - - /* eth1 is connected to the switch at port 6. However DSA only supports a -- * single CPU port. So leave this port disabled to avoid confusion. -+ * single CPU port. Upstream uses DSA so they disable this port to avoid confusion. - */ - ð1 { -- status = "disabled"; -+ status = "okay"; -+ ethernet1-port@0 { -+ speed = <1000>; -+ duplex = <1>; -+ }; - }; - - /* There is no battery on the board, so the RTC does not keep diff --git a/target/linux/kirkwood/patches-4.14/106-goflexnet.patch b/target/linux/kirkwood/patches-4.14/106-goflexnet.patch deleted file mode 100644 index 82cf90841e..0000000000 --- a/target/linux/kirkwood/patches-4.14/106-goflexnet.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-goflexnet.dts -+++ b/arch/arm/boot/dts/kirkwood-goflexnet.dts -@@ -8,6 +8,13 @@ - model = "Seagate GoFlex Net"; - compatible = "seagate,goflexnet", "marvell,kirkwood-88f6281", "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_health; -+ led-failsafe = &led_fault; -+ led-running = &led_health; -+ led-upgrade = &led_fault; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x8000000>; -@@ -85,12 +92,12 @@ - >; - pinctrl-names = "default"; - -- health { -+ led_health: health { - label = "status:green:health"; - gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; -- default-state = "keep"; -+ default-state = "on"; - }; -- fault { -+ led_fault: fault { - label = "status:orange:fault"; - gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; - }; -@@ -159,18 +166,8 @@ - }; - - partition@100000 { -- label = "uImage"; -- reg = <0x0100000 0x400000>; -- }; -- -- partition@500000 { -- label = "pogoplug"; -- reg = <0x0500000 0x2000000>; -- }; -- -- partition@2500000 { -- label = "root"; -- reg = <0x02500000 0xd800000>; -+ label = "ubi"; -+ reg = <0x0100000 0x0ff00000>; - }; - }; - diff --git a/target/linux/kirkwood/patches-4.14/107-01-zyxel-nsa3x0-common-nand-partitions.patch b/target/linux/kirkwood/patches-4.14/107-01-zyxel-nsa3x0-common-nand-partitions.patch deleted file mode 100644 index df654033fd..0000000000 --- a/target/linux/kirkwood/patches-4.14/107-01-zyxel-nsa3x0-common-nand-partitions.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsi -+++ b/arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsi -@@ -112,40 +112,16 @@ - - partition@0 { - label = "uboot"; -- reg = <0x0000000 0x0100000>; -+ reg = <0x0000000 0x00c0000>; - read-only; - }; - partition@100000 { - label = "uboot_env"; -- reg = <0x0100000 0x0080000>; -+ reg = <0x00c0000 0x0080000>; - }; -- partition@180000 { -- label = "key_store"; -- reg = <0x0180000 0x0080000>; -- }; -- partition@200000 { -- label = "info"; -- reg = <0x0200000 0x0080000>; -- }; -- partition@280000 { -- label = "etc"; -- reg = <0x0280000 0x0a00000>; -- }; -- partition@c80000 { -- label = "kernel_1"; -- reg = <0x0c80000 0x0a00000>; -- }; -- partition@1680000 { -- label = "rootfs1"; -- reg = <0x1680000 0x2fc0000>; -- }; -- partition@4640000 { -- label = "kernel_2"; -- reg = <0x4640000 0x0a00000>; -- }; -- partition@5040000 { -- label = "rootfs2"; -- reg = <0x5040000 0x2fc0000>; -+ partition@140000 { -+ label = "ubi"; -+ reg = <0x0140000 0x7ec0000>; - }; - }; - diff --git a/target/linux/kirkwood/patches-4.14/107-03-nsa325.patch b/target/linux/kirkwood/patches-4.14/107-03-nsa325.patch deleted file mode 100644 index e6935613e3..0000000000 --- a/target/linux/kirkwood/patches-4.14/107-03-nsa325.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-nsa325.dts -+++ b/arch/arm/boot/dts/kirkwood-nsa325.dts -@@ -18,6 +18,13 @@ - model = "ZyXEL NSA325"; - compatible = "zyxel,nsa325", "marvell,kirkwood-88f6282", "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_green_sys; -+ led-failsafe = &led_orange_sys; -+ led-running = &led_green_sys; -+ led-upgrade = &led_orange_sys; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x20000000>; -@@ -165,11 +172,12 @@ - &pmx_led_hdd1_green &pmx_led_hdd1_red>; - pinctrl-names = "default"; - -- green-sys { -+ led_green_sys: green-sys { - label = "nsa325:green:sys"; - gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; -+ default-state = "on"; - }; -- orange-sys { -+ led_orange_sys: orange-sys { - label = "nsa325:orange:sys"; - gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; - }; diff --git a/target/linux/kirkwood/patches-4.14/109-pogoplug_v4.patch b/target/linux/kirkwood/patches-4.14/109-pogoplug_v4.patch deleted file mode 100644 index 60c07b8c76..0000000000 --- a/target/linux/kirkwood/patches-4.14/109-pogoplug_v4.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-pogoplug-series-4.dts -+++ b/arch/arm/boot/dts/kirkwood-pogoplug-series-4.dts -@@ -18,12 +18,20 @@ - compatible = "cloudengines,pogoplugv4", "marvell,kirkwood-88f6192", - "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_health; -+ led-failsafe = &led_fault; -+ led-running = &led_health; -+ led-upgrade = &led_fault; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x08000000>; - }; - - chosen { -+ bootargs = "console=ttyS0,115200"; - stdout-path = "uart0:115200n8"; - }; - -@@ -37,8 +45,8 @@ - eject { - debounce_interval = <50>; - wakeup-source; -- linux,code = ; -- label = "Eject Button"; -+ linux,code = ; -+ label = "Reset"; - gpios = <&gpio0 29 GPIO_ACTIVE_LOW>; - }; - }; -@@ -48,12 +56,12 @@ - pinctrl-0 = <&pmx_led_green &pmx_led_red>; - pinctrl-names = "default"; - -- health { -+ led_health: health { - label = "pogoplugv4:green:health"; - gpios = <&gpio0 22 GPIO_ACTIVE_LOW>; - default-state = "on"; - }; -- fault { -+ led_fault: fault { - label = "pogoplugv4:red:fault"; - gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; - }; -@@ -137,29 +145,19 @@ - #size-cells = <1>; - - partition@0 { -- label = "u-boot"; -- reg = <0x00000000 0x200000>; -+ label = "uboot"; -+ reg = <0x00000000 0x1c0000>; - read-only; - }; - -- partition@200000 { -- label = "uImage"; -- reg = <0x00200000 0x300000>; -- }; -- -- partition@500000 { -- label = "uImage2"; -- reg = <0x00500000 0x300000>; -- }; -- -- partition@800000 { -- label = "failsafe"; -- reg = <0x00800000 0x800000>; -+ partition@1c0000 { -+ label = "uboot_env"; -+ reg = <0x001c0000 0x40000>; - }; - -- partition@1000000 { -- label = "root"; -- reg = <0x01000000 0x7000000>; -+ partition@200000 { -+ label = "ubi"; -+ reg = <0x00200000 0x7e00000>; - }; - }; - }; diff --git a/target/linux/kirkwood/patches-4.14/110-pogo_e02.patch b/target/linux/kirkwood/patches-4.14/110-pogo_e02.patch deleted file mode 100644 index 26dbf8a734..0000000000 --- a/target/linux/kirkwood/patches-4.14/110-pogo_e02.patch +++ /dev/null @@ -1,68 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-pogo_e02.dts -+++ b/arch/arm/boot/dts/kirkwood-pogo_e02.dts -@@ -22,6 +22,13 @@ - compatible = "cloudengines,pogoe02", "marvell,kirkwood-88f6281", - "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_health; -+ led-failsafe = &led_fault; -+ led-running = &led_health; -+ led-upgrade = &led_fault; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x10000000>; -@@ -35,12 +42,12 @@ - gpio-leds { - compatible = "gpio-leds"; - -- health { -+ led_health: health { - label = "pogo_e02:green:health"; - gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; -- default-state = "keep"; -+ default-state = "on"; - }; -- fault { -+ led_fault: fault { - label = "pogo_e02:orange:fault"; - gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; - }; -@@ -97,24 +104,24 @@ - status = "okay"; - - partition@0 { -- label = "u-boot"; -- reg = <0x0000000 0x100000>; -+ label = "uboot"; -+ reg = <0x0 0xe0000>; - read-only; - }; - -- partition@100000 { -- label = "uImage"; -- reg = <0x0100000 0x400000>; -+ partition@e0000 { -+ label = "uboot_env"; -+ reg = <0xe0000 0x20000>; - }; - -- partition@500000 { -- label = "pogoplug"; -- reg = <0x0500000 0x2000000>; -+ partition@100000 { -+ label = "second_stage_uboot"; -+ reg = <0x100000 0x100000>; - }; - -- partition@2500000 { -- label = "root"; -- reg = <0x02500000 0x5b00000>; -+ partition@200000 { -+ label = "ubi"; -+ reg = <0x200000 0x7e00000>; - }; - }; - diff --git a/target/linux/kirkwood/patches-4.14/200-disable-tso.patch b/target/linux/kirkwood/patches-4.14/200-disable-tso.patch deleted file mode 100644 index cdd7fc803e..0000000000 --- a/target/linux/kirkwood/patches-4.14/200-disable-tso.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Ezequiel Garcia -Subject: [PATCH] net: mv643xx_eth: Make TSO disabled by default - -Data corruption has been observed to be produced by TSO. For instance, -accessing files on a NFS-server with TSO enabled results in different data -transferred each time. - -This has been observed only on Kirkwood platforms, i.e. with the mv643xx_eth -driver. Same tests on platforms using the mvneta ethernet driver have -passed without errors. - -Make TSO disabled by default for now, until we can found a proper fix -for the regression. - -Fixes: 3ae8f4e0b98 ('net: mv643xx_eth: Implement software TSO') -Reported-by: Slawomir Gajzner gmail.com> -Reported-by: Julien D'Ascenzio yahoo.fr> -Signed-off-by: Ezequiel Garcia free-electrons.com> ---- ---- a/drivers/net/ethernet/marvell/mv643xx_eth.c -+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c -@@ -3205,11 +3205,11 @@ static int mv643xx_eth_probe(struct plat - dev->watchdog_timeo = 2 * HZ; - dev->base_addr = 0; - -- dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO; -+ dev->features = NETIF_F_SG | NETIF_F_IP_CSUM; - dev->vlan_features = dev->features; - - dev->features |= NETIF_F_RXCSUM; -- dev->hw_features = dev->features; -+ dev->hw_features = dev->features | NETIF_F_TSO; - - dev->priv_flags |= IFF_UNICAST_FLT; - dev->gso_max_segs = MV643XX_MAX_TSO_SEGS; diff --git a/target/linux/kirkwood/patches-4.14/201-enable-sata-port-specific-led-triggers.patch b/target/linux/kirkwood/patches-4.14/201-enable-sata-port-specific-led-triggers.patch deleted file mode 100644 index c1645367a4..0000000000 --- a/target/linux/kirkwood/patches-4.14/201-enable-sata-port-specific-led-triggers.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/arch/arm/mach-mvebu/Kconfig -+++ b/arch/arm/mach-mvebu/Kconfig -@@ -119,6 +119,7 @@ config MACH_DOVE - config MACH_KIRKWOOD - bool "Marvell Kirkwood boards" - depends on ARCH_MULTI_V5 -+ select ARCH_WANT_LIBATA_LEDS - select CPU_FEROCEON - select GPIOLIB - select KIRKWOOD_CLK diff --git a/target/linux/kirkwood/patches-4.14/202-linksys-find-active-root.patch b/target/linux/kirkwood/patches-4.14/202-linksys-find-active-root.patch deleted file mode 100644 index 860d7b0728..0000000000 --- a/target/linux/kirkwood/patches-4.14/202-linksys-find-active-root.patch +++ /dev/null @@ -1,62 +0,0 @@ -The WRT1900AC among other Linksys routers uses a dual-firmware layout. -Dynamically rename the active partition to "ubi". - -Signed-off-by: Imre Kaloz ---- ---- a/drivers/mtd/ofpart.c -+++ b/drivers/mtd/ofpart.c -@@ -25,6 +25,8 @@ static bool node_has_compatible(struct d - return of_get_property(pp, "compatible", NULL); - } - -+static int mangled_rootblock; -+ - static int parse_fixed_partitions(struct mtd_info *master, - const struct mtd_partition **pparts, - struct mtd_part_parser_data *data) -@@ -32,6 +34,7 @@ static int parse_fixed_partitions(struct - struct mtd_partition *parts; - struct device_node *mtd_node; - struct device_node *ofpart_node; -+ const char *owrtpart = "ubi"; - const char *partname; - struct device_node *pp; - int nr_parts, i, ret = 0; -@@ -110,9 +113,15 @@ static int parse_fixed_partitions(struct - parts[i].size = of_read_number(reg + a_cells, s_cells); - parts[i].of_node = pp; - -- partname = of_get_property(pp, "label", &len); -- if (!partname) -- partname = of_get_property(pp, "name", &len); -+ if (mangled_rootblock && (i == mangled_rootblock)) { -+ partname = owrtpart; -+ } else { -+ partname = of_get_property(pp, "label", &len); -+ -+ if (!partname) -+ partname = of_get_property(pp, "name", &len); -+ } -+ - parts[i].name = partname; - - if (of_get_property(pp, "read-only", &len)) -@@ -219,6 +228,18 @@ static int __init ofpart_parser_init(voi - return 0; - } - -+static int __init active_root(char *str) -+{ -+ get_option(&str, &mangled_rootblock); -+ -+ if (!mangled_rootblock) -+ return 1; -+ -+ return 1; -+} -+ -+__setup("mangled_rootblock=", active_root); -+ - static void __exit ofpart_parser_exit(void) - { - deregister_mtd_parser(&ofpart_parser); From 8b373892d31e4588c388681d3271643a5c3f6314 Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Tue, 28 Apr 2020 11:58:32 +0200 Subject: [PATCH 12/14] kirkwood: remove support for kernel 4.19 kirkwood has moved to DSA on 5.4, which will make kernel 4.14 and 4.19 support broken on the affected devices. Support on kernel 5.4 seems to have been running fine for almost 2 months on multiple devices, while support for 4.19 has never left testing state. Signed-off-by: Adrian Schmutzler Acked-by: Pawel Dembicki --- target/linux/kirkwood/config-4.19 | 344 ------------------ .../arch/arm/boot/dts/kirkwood-goflexhome.dts | 135 ------- .../arm/boot/dts/kirkwood-linksys-audi.dts | 207 ----------- .../arch/arm/boot/dts/kirkwood-nsa310b.dts | 141 ------- .../arch/arm/boot/dts/kirkwood-on100.dts | 165 --------- .../kirkwood/patches-4.19/100-ib62x0.patch | 53 --- .../kirkwood/patches-4.19/101-iconnect.patch | 80 ---- .../kirkwood/patches-4.19/102-dockstar.patch | 62 ---- .../patches-4.19/103-iomega-ix2-200.patch | 67 ---- .../kirkwood/patches-4.19/105-ea4500.patch | 144 -------- .../kirkwood/patches-4.19/106-goflexnet.patch | 53 --- ...-zyxel-nsa3x0-common-nand-partitions.patch | 48 --- .../kirkwood/patches-4.19/107-03-nsa325.patch | 31 -- .../patches-4.19/109-pogoplug_v4.patch | 87 ----- .../kirkwood/patches-4.19/110-pogo_e02.patch | 70 ---- ...able-sata-port-specific-led-triggers.patch | 10 - .../202-linksys-find-active-root.patch | 62 ---- 17 files changed, 1759 deletions(-) delete mode 100644 target/linux/kirkwood/config-4.19 delete mode 100644 target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-goflexhome.dts delete mode 100644 target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-linksys-audi.dts delete mode 100644 target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-nsa310b.dts delete mode 100644 target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-on100.dts delete mode 100644 target/linux/kirkwood/patches-4.19/100-ib62x0.patch delete mode 100644 target/linux/kirkwood/patches-4.19/101-iconnect.patch delete mode 100644 target/linux/kirkwood/patches-4.19/102-dockstar.patch delete mode 100644 target/linux/kirkwood/patches-4.19/103-iomega-ix2-200.patch delete mode 100644 target/linux/kirkwood/patches-4.19/105-ea4500.patch delete mode 100644 target/linux/kirkwood/patches-4.19/106-goflexnet.patch delete mode 100644 target/linux/kirkwood/patches-4.19/107-01-zyxel-nsa3x0-common-nand-partitions.patch delete mode 100644 target/linux/kirkwood/patches-4.19/107-03-nsa325.patch delete mode 100644 target/linux/kirkwood/patches-4.19/109-pogoplug_v4.patch delete mode 100644 target/linux/kirkwood/patches-4.19/110-pogo_e02.patch delete mode 100644 target/linux/kirkwood/patches-4.19/201-enable-sata-port-specific-led-triggers.patch delete mode 100644 target/linux/kirkwood/patches-4.19/202-linksys-find-active-root.patch diff --git a/target/linux/kirkwood/config-4.19 b/target/linux/kirkwood/config-4.19 deleted file mode 100644 index d7ea9e9eef..0000000000 --- a/target/linux/kirkwood/config-4.19 +++ /dev/null @@ -1,344 +0,0 @@ -CONFIG_ALIGNMENT_TRAP=y -CONFIG_ARCH_CLOCKSOURCE_DATA=y -CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -CONFIG_ARCH_HAS_ELF_RANDOMIZE=y -CONFIG_ARCH_HAS_FORTIFY_SOURCE=y -CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -CONFIG_ARCH_HAS_KCOV=y -CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y -CONFIG_ARCH_HAS_PHYS_TO_DMA=y -CONFIG_ARCH_HAS_SET_MEMORY=y -CONFIG_ARCH_HAS_SG_CHAIN=y -CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y -CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -CONFIG_ARCH_MULTIPLATFORM=y -CONFIG_ARCH_MULTI_CPU_AUTO=y -# CONFIG_ARCH_MULTI_V4 is not set -# CONFIG_ARCH_MULTI_V4T is not set -CONFIG_ARCH_MULTI_V4_V5=y -CONFIG_ARCH_MULTI_V5=y -CONFIG_ARCH_MVEBU=y -CONFIG_ARCH_NR_GPIO=0 -CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y -CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y -CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y -CONFIG_ARCH_SUPPORTS_UPROBES=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARCH_USE_BUILTIN_BSWAP=y -CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y -CONFIG_ARCH_WANT_GENERAL_HUGETLB=y -CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y -CONFIG_ARCH_WANT_LIBATA_LEDS=y -CONFIG_ARM=y -# CONFIG_ARMADA_THERMAL is not set -CONFIG_ARM_APPENDED_DTB=y -CONFIG_ARM_ATAG_DTB_COMPAT=y -# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set -CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y -CONFIG_ARM_HAS_SG_CHAIN=y -# CONFIG_ARM_KIRKWOOD_CPUIDLE is not set -CONFIG_ARM_L1_CACHE_SHIFT=5 -# CONFIG_ARM_MVEBU_V7_CPUIDLE is not set -CONFIG_ARM_PATCH_PHYS_VIRT=y -# CONFIG_ARM_THUMB is not set -CONFIG_ATA=y -CONFIG_ATAGS=y -CONFIG_ATA_LEDS=y -CONFIG_AUTO_ZRELADDR=y -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_SCSI_REQUEST=y -CONFIG_CACHE_FEROCEON_L2=y -# CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set -CONFIG_CLKDEV_LOOKUP=y -CONFIG_CLKSRC_MMIO=y -CONFIG_CLONE_BACKWARDS=y -CONFIG_COMMON_CLK=y -CONFIG_CPU_32v5=y -CONFIG_CPU_ABRT_EV5T=y -# CONFIG_CPU_BIG_ENDIAN is not set -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_COPY_FEROCEON=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y -CONFIG_CPU_FEROCEON=y -# CONFIG_CPU_FEROCEON_OLD_ID is not set -# CONFIG_CPU_ICACHE_DISABLE is not set -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_PABRT_LEGACY=y -CONFIG_CPU_PM=y -CONFIG_CPU_THUMB_CAPABLE=y -CONFIG_CPU_TLB_FEROCEON=y -CONFIG_CPU_USE_DOMAINS=y -CONFIG_CRC16=y -# CONFIG_CRC32_SARWATE is not set -CONFIG_CRC32_SLICEBY8=y -CONFIG_CRYPTO_ACOMP2=y -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_DEV_MARVELL_CESA=y -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_LZO=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_WORKQUEUE=y -CONFIG_DEBUG_LL=y -CONFIG_DEBUG_LL_INCLUDE="debug/8250.S" -CONFIG_DEBUG_MVEBU_UART0_ALTERNATE=y -# CONFIG_DEBUG_MVEBU_UART1_ALTERNATE is not set -CONFIG_DEBUG_UART_8250=y -# CONFIG_DEBUG_UART_8250_FLOW_CONTROL is not set -CONFIG_DEBUG_UART_8250_SHIFT=2 -# CONFIG_DEBUG_UART_8250_WORD is not set -CONFIG_DEBUG_UART_PHYS=0xf1012000 -CONFIG_DEBUG_UART_VIRT=0xfed12000 -CONFIG_DEBUG_UNCOMPRESS=y -# CONFIG_DEBUG_USER is not set -# CONFIG_DLCI is not set -CONFIG_DNOTIFY=y -CONFIG_DTC=y -# CONFIG_EARLY_PRINTK is not set -CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_EDAC_SUPPORT=y -CONFIG_EXT4_FS=y -CONFIG_FIXED_PHY=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_FRAME_POINTER=y -CONFIG_FS_IOMAP=y -CONFIG_FS_MBCACHE=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_GENERIC_ATOMIC64=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_EARLY_IOREMAP=y -CONFIG_GENERIC_IDLE_POLL_SETUP=y -CONFIG_GENERIC_IRQ_CHIP=y -CONFIG_GENERIC_IRQ_MULTI_HANDLER=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_SHOW_LEVEL=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_PHY=y -CONFIG_GENERIC_SCHED_CLOCK=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GLOB=y -CONFIG_GPIOLIB=y -CONFIG_GPIO_MVEBU=y -CONFIG_GPIO_SYSFS=y -CONFIG_HANDLE_DOMAIN_IRQ=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_HAS_DMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HAVE_ARCH_AUDITSYSCALL=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_ARCH_PFN_VALID=y -CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_CLK=y -CONFIG_HAVE_CLK_PREPARE=y -CONFIG_HAVE_CONTEXT_TRACKING=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_HAVE_DEBUG_KMEMLEAK=y -CONFIG_HAVE_DMA_CONTIGUOUS=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y -CONFIG_HAVE_EBPF_JIT=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_HAVE_IDE=y -CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_HAVE_NET_DSA=y -CONFIG_HAVE_OPROFILE=y -CONFIG_HAVE_OPTPROBES=y -CONFIG_HAVE_PERF_EVENTS=y -CONFIG_HAVE_PERF_REGS=y -CONFIG_HAVE_PERF_USER_STACK_DUMP=y -CONFIG_HAVE_PROC_CPU=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_RSEQ=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_UID16=y -CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y -CONFIG_HW_RANDOM=y -CONFIG_HW_RANDOM_OMAP=y -CONFIG_HZ_FIXED=0 -CONFIG_HZ_PERIODIC=y -CONFIG_I2C=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_CHARDEV=y -CONFIG_I2C_MV64XXX=y -# CONFIG_I2C_PXA is not set -CONFIG_INITRAMFS_SOURCE="" -CONFIG_IRQCHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_IRQ_WORK=y -CONFIG_JBD2=y -CONFIG_KIRKWOOD_CLK=y -CONFIG_KIRKWOOD_THERMAL=y -CONFIG_LEDS_GPIO=y -CONFIG_LEDS_NETXBIG=y -CONFIG_LEDS_NS2=y -CONFIG_LIBFDT=y -CONFIG_LOCK_DEBUGGING_SUPPORT=y -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_MACH_KIRKWOOD=y -CONFIG_MACH_MVEBU_ANY=y -CONFIG_MANGLE_BOOTARGS=y -CONFIG_MDIO_BUS=y -CONFIG_MDIO_DEVICE=y -CONFIG_MEMFD_CREATE=y -CONFIG_MIGHT_HAVE_PCI=y -CONFIG_MIGRATION=y -CONFIG_MMC=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_MVSDIO=y -# CONFIG_MMC_TIFM_SD is not set -CONFIG_MODULES_USE_ELF_REL=y -# CONFIG_MTD_CFI is not set -CONFIG_MTD_CMDLINE_PARTS=y -CONFIG_MTD_NAND=y -CONFIG_MTD_NAND_ECC=y -# CONFIG_MTD_NAND_MARVELL is not set -CONFIG_MTD_NAND_ORION=y -CONFIG_MTD_UBI=y -CONFIG_MTD_UBI_BEB_LIMIT=20 -CONFIG_MTD_UBI_BLOCK=y -# CONFIG_MTD_UBI_FASTMAP is not set -# CONFIG_MTD_UBI_GLUEBI is not set -CONFIG_MTD_UBI_WL_THRESHOLD=4096 -CONFIG_MV643XX_ETH=y -CONFIG_MVEBU_CLK_COMMON=y -CONFIG_MVEBU_MBUS=y -CONFIG_MVMDIO=y -# CONFIG_MVNETA is not set -# CONFIG_MVPP2 is not set -CONFIG_MVSW61XX_PHY=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NEED_KUSER_HELPERS=y -CONFIG_NEED_PER_CPU_KM=y -CONFIG_NLS=y -CONFIG_NO_BOOTMEM=y -CONFIG_NVMEM=y -CONFIG_OF=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_FLATTREE=y -CONFIG_OF_GPIO=y -CONFIG_OF_IRQ=y -CONFIG_OF_KOBJ=y -CONFIG_OF_MDIO=y -CONFIG_OF_NET=y -CONFIG_OF_RESERVED_MEM=y -CONFIG_OLD_SIGACTION=y -CONFIG_OLD_SIGSUSPEND3=y -CONFIG_ORION_IRQCHIP=y -CONFIG_ORION_TIMER=y -CONFIG_ORION_WATCHDOG=y -CONFIG_OUTER_CACHE=y -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_MVEBU=y -# CONFIG_PCI_V3_SEMI is not set -CONFIG_PERF_USE_VMALLOC=y -CONFIG_PGTABLE_LEVELS=2 -CONFIG_PHYLIB=y -# CONFIG_PHY_MVEBU_CP110_COMPHY is not set -CONFIG_PHY_MVEBU_SATA=y -CONFIG_PINCTRL=y -CONFIG_PINCTRL_KIRKWOOD=y -CONFIG_PINCTRL_MVEBU=y -# CONFIG_PINCTRL_SINGLE is not set -CONFIG_PLAT_ORION=y -CONFIG_POWER_RESET=y -CONFIG_POWER_RESET_GPIO=y -# CONFIG_POWER_RESET_QNAP is not set -CONFIG_POWER_SUPPLY=y -CONFIG_RATIONAL=y -CONFIG_REFCOUNT_FULL=y -CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=y -CONFIG_REGMAP_MMIO=y -CONFIG_REGMAP_SPI=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_MV=y -CONFIG_RTC_I2C_AND_SPI=y -CONFIG_RTC_MC146818_LIB=y -CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_SATA_MV=y -CONFIG_SATA_PMP=y -CONFIG_SCSI=y -CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y -CONFIG_SERIAL_8250_FSL=y -# CONFIG_SERIAL_MVEBU_UART is not set -CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SGL_ALLOC=y -CONFIG_SG_POOL=y -CONFIG_SOC_BUS=y -CONFIG_SPARSE_IRQ=y -CONFIG_SPI=y -# CONFIG_SPI_ARMADA_3700 is not set -CONFIG_SPI_MASTER=y -CONFIG_SPI_ORION=y -CONFIG_SPLIT_PTLOCK_CPUS=999999 -CONFIG_SRAM=y -CONFIG_SRAM_EXEC=y -CONFIG_SRCU=y -CONFIG_SWCONFIG=y -CONFIG_SWPHY=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_THERMAL=y -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_GOV_STEP_WISE=y -CONFIG_THERMAL_OF=y -CONFIG_TICK_CPU_ACCOUNTING=y -CONFIG_TIMER_OF=y -CONFIG_TIMER_PROBE=y -CONFIG_TINY_SRCU=y -CONFIG_UBIFS_FS=y -CONFIG_UBIFS_FS_ADVANCED_COMPR=y -CONFIG_UBIFS_FS_LZO=y -CONFIG_UBIFS_FS_ZLIB=y -CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" -CONFIG_USB=y -CONFIG_USB_COMMON=y -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_HCD_ORION=y -# CONFIG_USB_EHCI_HCD_PLATFORM is not set -CONFIG_USB_LED_TRIG=y -# CONFIG_USB_ROLE_SWITCH is not set -CONFIG_USB_STORAGE=y -CONFIG_USB_SUPPORT=y -CONFIG_USE_OF=y -# CONFIG_VFP is not set -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_WAN=y -CONFIG_WATCHDOG_CORE=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_BCJ=y -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZLIB_DEFLATE=y -CONFIG_ZLIB_INFLATE=y diff --git a/target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-goflexhome.dts b/target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-goflexhome.dts deleted file mode 100644 index b0b69b46cd..0000000000 --- a/target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-goflexhome.dts +++ /dev/null @@ -1,135 +0,0 @@ -/dts-v1/; - -#include "kirkwood.dtsi" -#include "kirkwood-6281.dtsi" - -/ { - model = "Seagate GoFlex Home"; - compatible = "seagate,goflexhome", "marvell,kirkwood-88f6281", "marvell,kirkwood"; - - aliases { - led-boot = &led_health; - led-failsafe = &led_fault; - led-running = &led_health; - led-upgrade = &led_fault; - }; - - memory@0 { - device_type = "memory"; - reg = <0x00000000 0x8000000>; - }; - - chosen { - bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10"; - stdout-path = &uart0; - }; - - ocp@f1000000 { - pinctrl: pin-controller@10000 { - pmx_usb_power_enable: pmx-usb-power-enable { - marvell,pins = "mpp29"; - marvell,function = "gpio"; - }; - - pmx_led_white: pmx-led-white { - marvell,pins = "mpp40"; - marvell,function = "gpio"; - }; - - pmx_led_green: pmx-led_green { - marvell,pins = "mpp46"; - marvell,function = "gpio"; - }; - - pmx_led_orange: pmx-led-orange { - marvell,pins = "mpp47"; - marvell,function = "gpio"; - }; - }; - - serial@12000 { - status = "okay"; - }; - - sata@80000 { - status = "okay"; - nr-ports = <2>; - }; - }; - - gpio-leds { - compatible = "gpio-leds"; - - led_health: health { - label = "status:green:health"; - gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; - default-state = "on"; - }; - - led_fault: fault { - label = "status:orange:fault"; - gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; - }; - - misc { - label = "status:white:misc"; - gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; - linux,default-trigger = "disk-activity"; - }; - }; - - regulators { - compatible = "simple-bus"; - - #address-cells = <1>; - #size-cells = <0>; - - pinctrl-0 = <&pmx_usb_power_enable>; - pinctrl-names = "default"; - - usb_power: regulator@1 { - compatible = "regulator-fixed"; - reg = <1>; - regulator-name = "USB Power"; - regulator-min-microvolt = <5000000>; - regulator-max-microvolt = <5000000>; - enable-active-high; - regulator-always-on; - regulator-boot-on; - gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>; - }; - }; -}; - -&nand { - status = "okay"; - - chip-delay = <40>; - - partition@0 { - label = "u-boot"; - reg = <0x0000000 0x0100000>; - read-only; - }; - - partition@100000 { - label = "ubi"; - reg = <0x0100000 0xff00000>; - }; -}; - -&mdio { - status = "okay"; - - ethphy0: ethernet-phy@0 { - reg = <0>; - }; -}; - -ð0 { - status = "okay"; - - ethernet0-port@0 { - phy-handle = <ðphy0>; - }; -}; diff --git a/target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-linksys-audi.dts b/target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-linksys-audi.dts deleted file mode 100644 index eff9102d33..0000000000 --- a/target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-linksys-audi.dts +++ /dev/null @@ -1,207 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * kirkwood-linksys-audi.dts - Device Tree file for Linksys EA3500 - * - * (c) 2013 Jonas Gorski - * (c) 2013 Deutsche Telekom Innovation Laboratories - * (c) 2014 Luka Perkov - * (c) 2014 Dan Walters - * - */ - -/dts-v1/; - -#include "kirkwood.dtsi" -#include "kirkwood-6282.dtsi" - -/ { - model = "Linksys Audi (EA3500)"; - compatible = "linksys,audi", "marvell,kirkwood-88f6282", "marvell,kirkwood"; - - memory@0 { - device_type = "memory"; - reg = <0x00000000 0x4000000>; - }; - - aliases { - led-boot = &led_power; - led-failsafe = &led_power; - led-running = &led_power; - led-upgrade = &led_power; - serial0 = &uart0; - }; - - chosen { - stdout-path = "serial0:115200n8"; - }; - - gpio-keys { - compatible = "gpio-keys"; - - pinctrl-0 = <&pmx_btn_wps &pmx_btn_reset>; - pinctrl-names = "default"; - - wps { - label = "WPS Button"; - linux,code = ; - gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; - }; - - reset { - label = "Reset Button"; - linux,code = ; - gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; - }; - }; - - gpio-leds { - compatible = "gpio-leds"; - - pinctrl-0 = <&pmx_led_green_power>; - pinctrl-names = "default"; - - led_power: power { - label = "audi:green:power"; - gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>; - default-state = "on"; - }; - }; - - mvsw61xx { - compatible = "marvell,88e6171"; - status = "okay"; - reg = <0x10>; - - mii-bus = <&mdio>; - cpu-port-0 = <5>; - cpu-port-1 = <6>; - is-indirect; - }; -}; - -&pinctrl { - pmx_led_green_power: pmx-led-green-power { - marvell,pins = "mpp7"; - marvell,function = "gpo"; - }; - - pmx_btn_wps: pmx-btn-wps { - marvell,pins = "mpp47"; - marvell,function = "gpio"; - }; - - pmx_btn_reset: pmx-btn-reset { - marvell,pins = "mpp48"; - marvell,function = "gpio"; - }; -}; - -&nand { - status = "okay"; - - pinctrl-0 = <&pmx_nand>; - pinctrl-names = "default"; - - partitions { - compatible = "fixed-partitions"; - #address-cells = <1>; - #size-cells = <1>; - - partition@0 { - label = "u-boot"; - reg = <0x0 0x80000>; - read-only; - }; - - partition@80000 { - label = "u_env"; - reg = <0x80000 0x4000>; - }; - - partition@84000 { - label = "s_env"; - reg = <0x84000 0x4000>; - }; - - partition@200000 { - label = "kernel1"; - reg = <0x200000 0x290000>; - }; - - partition@490000 { - label = "rootfs1"; - reg = <0x490000 0x1170000>; - }; - - partition@1600000 { - label = "kernel2"; - reg = <0x1600000 0x290000>; - }; - - partition@1890000 { - label = "rootfs2"; - reg = <0x1890000 0x1170000>; - }; - - partition@2a00000 { - label = "syscfg"; - reg = <0x2a00000 0x1600000>; - }; - - partition@88000 { - label = "unused"; - reg = <0x88000 0x178000>; - }; - }; -}; - -&pciec { - status = "okay"; -}; - -&pcie0 { - status = "okay"; -}; - -&pcie1 { - status = "okay"; -}; - -&mdio { - status = "okay"; -}; - -&uart0 { - status = "okay"; -}; - -/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set - * fixed speed and duplex. - */ -ð0 { - status = "okay"; - - ethernet0-port@0 { - speed = <1000>; - duplex = <1>; - }; -}; - -/* eth1 is connected to the switch at port 6. However DSA only supports a - * single CPU port. Upstream uses DSA so they disable this port to avoid confusion. - */ -ð1 { - status = "okay"; - - ethernet1-port@0 { - speed = <1000>; - duplex = <1>; - }; -}; - -/* There is no battery on the board, so the RTC does not keep - * time when there is no power, making it useless. - */ -&rtc { - status = "disabled"; -}; diff --git a/target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-nsa310b.dts b/target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-nsa310b.dts deleted file mode 100644 index 10b119eb01..0000000000 --- a/target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-nsa310b.dts +++ /dev/null @@ -1,141 +0,0 @@ -/dts-v1/; - -#include "kirkwood-nsa3x0-common.dtsi" - -/* - * There are at least two different NSA310 designs. This variant has - * a red/green USB Led (same as nsa310) and a lm85 temp/fan controller. - */ - -/ { - model = "ZyXEL NSA310b"; - compatible = "zyxel,nsa310b", "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood"; - - aliases { - led-boot = &led_green_sys; - led-failsafe = &led_red_sys; - led-running = &led_green_sys; - led-upgrade = &led_red_sys; - }; - - memory@0 { - device_type = "memory"; - reg = <0x00000000 0x10000000>; - }; - - chosen { - bootargs = "console=ttyS0,115200"; - stdout-path = &uart0; - }; - - ocp@f1000000 { - pinctrl: pin-controller@10000 { - pinctrl-names = "default"; - - pmx_led_esata_green: pmx-led-esata-green { - marvell,pins = "mpp12"; - marvell,function = "gpio"; - }; - - pmx_led_esata_red: pmx-led-esata-red { - marvell,pins = "mpp13"; - marvell,function = "gpio"; - }; - - pmx_led_usb_green: pmx-led-usb-green { - marvell,pins = "mpp15"; - marvell,function = "gpio"; - }; - - pmx_led_usb_red: pmx-led-usb-red { - marvell,pins = "mpp16"; - marvell,function = "gpio"; - }; - - pmx_led_sys_green: pmx-led-sys-green { - marvell,pins = "mpp28"; - marvell,function = "gpio"; - }; - - pmx_led_sys_red: pmx-led-sys-red { - marvell,pins = "mpp29"; - marvell,function = "gpio"; - }; - - pmx_led_hdd_green: pmx-led-hdd-green { - marvell,pins = "mpp41"; - marvell,function = "gpio"; - }; - - pmx_led_hdd_red: pmx-led-hdd-red { - marvell,pins = "mpp42"; - marvell,function = "gpio"; - }; - - }; - - i2c@11000 { - status = "okay"; - - lm85: lm85@2e { - compatible = "national,lm85"; - reg = <0x2e>; - }; - }; - }; - - gpio-leds { - compatible = "gpio-leds"; - - led_green_sys: green-sys { - label = "nsa310:green:sys"; - gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; - default-state = "on"; - }; - - led_red_sys: red-sys { - label = "nsa310:red:sys"; - gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; - }; - - green-hdd { - label = "nsa310:green:hdd"; - gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; - }; - - red-hdd { - label = "nsa310:red:hdd"; - gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; - }; - - green-esata { - label = "nsa310:green:esata"; - gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; - }; - - red-esata { - label = "nsa310:red:esata"; - gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>; - }; - - green-usb { - label = "nsa310:green:usb"; - gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; - }; - - red-usb { - label = "nsa310:red:usb"; - gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; - }; - - green-copy { - label = "nsa310:green:copy"; - gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; - }; - - red-copy { - label = "nsa310:red:copy"; - gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; - }; - }; -}; diff --git a/target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-on100.dts b/target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-on100.dts deleted file mode 100644 index 5ae66ede2f..0000000000 --- a/target/linux/kirkwood/files-4.19/arch/arm/boot/dts/kirkwood-on100.dts +++ /dev/null @@ -1,165 +0,0 @@ -/dts-v1/; - -#include "kirkwood.dtsi" -#include "kirkwood-6282.dtsi" - -/ { - model = "Cisco Systems ON100"; - compatible = "cisco,on100", "marvell,kirkwood-88f6282", "marvell,kirkwood"; - - memory@0 { - device_type = "memory"; - reg = <0x00000000 0x20000000>; - }; - - aliases { - led-boot = &led_health_green; - led-failsafe = &led_health_red; - led-running = &led_health_green; - led-upgrade = &led_health_red; - serial0 = &uart0; - }; - - chosen { - bootargs = "console=ttyS0,115200n8 earlyprintk"; - stdout-path = "serial0:115200n8"; - }; - - gpio-keys { - compatible = "gpio-keys"; - - pinctrl-0 = <&pmx_btn_reset>; - pinctrl-names = "default"; - - reset { - label = "Reset Button"; - linux,code = ; - gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; - }; - }; - - gpio-leds { - compatible = "gpio-leds"; - - pinctrl-0 = <&pmx_led_health_red &pmx_led_health_green>; - pinctrl-names = "default"; - - led_health_green: health-green { - label = "on100:green:health"; - gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; - default-state = "on"; - }; - - led_health_red: health-red { - label = "on100:red:health"; - gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; - }; - - health2-green { - label = "on100:green:health2"; - gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; - }; - - health2-red { - label = "on100:red:health2"; - gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; - }; - }; -}; - -ð0 { - status = "okay"; - - ethernet0-port@0 { - phy-handle = <ðphy0>; - phy-connection-type = "rgmii-id"; - }; -}; - -ð1 { - status = "okay"; - - ethernet1-port@0 { - phy-handle = <ðphy1>; - phy-connection-type = "rgmii-id"; - }; -}; - -&mdio { - status = "okay"; - - ethphy0: ethernet-phy@0 { - /* Marvell 88E1121R */ - compatible = "ethernet-phy-id0141.0cb0", - "ethernet-phy-ieee802.3-c22"; - reg = <0>; - }; - - ethphy1: ethernet-phy@1 { - /* Marvell 88E1121R */ - compatible = "ethernet-phy-id0141.0cb0", - "ethernet-phy-ieee802.3-c22"; - reg = <1>; - }; -}; - -&nand { - status = "okay"; - - partition@0 { - label = "u-boot"; - reg = <0x00000000 0x000a0000>; - read-only; - }; - - partition@a0000 { - label = "u-boot environment"; - reg = <0x000a0000 0x00020000>; - read-only; - }; - - partition@c0000 { - label = "kernel"; - reg = <0x000c0000 0x00540000>; - }; - - partition@600000 { - label = "ubi"; - reg = <0x00600000 0x1fa00000>; - }; -}; - -&pinctrl { - pmx_led_health_red: pmx-led-health-red { - marvell,pins = "mpp45"; - marvell,function = "gpio"; - }; - - pmx_led_health_green: pmx-led-health-green { - marvell,pins = "mpp44"; - marvell,function = "gpio"; - }; - - pmx_led_health2_red: pmx-led-health2-red { - marvell,pins = "mpp47"; - marvell,function = "gpio"; - }; - - pmx_led_health2_green: pmx-led-health2-green { - marvell,pins = "mpp46"; - marvell,function = "gpio"; - }; - - pmx_btn_reset: pmx-btn-reset { - marvell,pins = "mpp31"; - marvell,function = "gpio"; - }; -}; - -&sdio { - status = "okay"; -}; - -&uart0 { - status = "okay"; -}; diff --git a/target/linux/kirkwood/patches-4.19/100-ib62x0.patch b/target/linux/kirkwood/patches-4.19/100-ib62x0.patch deleted file mode 100644 index 0637c24b63..0000000000 --- a/target/linux/kirkwood/patches-4.19/100-ib62x0.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-ib62x0.dts -+++ b/arch/arm/boot/dts/kirkwood-ib62x0.dts -@@ -6,7 +6,14 @@ - - / { - model = "RaidSonic ICY BOX IB-NAS62x0 (Rev B)"; -- compatible = "raidsonic,ib-nas6210-b", "raidsonic,ib-nas6220-b", "raidsonic,ib-nas6210", "raidsonic,ib-nas6220", "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood"; -+ compatible = "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood"; -+ -+ aliases { -+ led-boot = &led_green_os; -+ led-failsafe = &led_red_os; -+ led-running = &led_green_os; -+ led-upgrade = &led_red_os; -+ }; - - memory { - device_type = "memory"; -@@ -81,12 +88,12 @@ - &pmx_led_usb_transfer>; - pinctrl-names = "default"; - -- green-os { -+ led_green_os: green-os { - label = "ib62x0:green:os"; - gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>; -- default-state = "keep"; -+ default-state = "on"; - }; -- red-os { -+ led_red_os: red-os { - label = "ib62x0:red:os"; - gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>; - }; -@@ -118,13 +125,13 @@ - }; - - partition@100000 { -- label = "uImage"; -- reg = <0x0100000 0x600000>; -+ label = "second stage u-boot"; -+ reg = <0x100000 0x200000>; - }; - -- partition@700000 { -- label = "root"; -- reg = <0x0700000 0xf900000>; -+ partition@200000 { -+ label = "ubi"; -+ reg = <0x200000 0xfe00000>; - }; - - }; diff --git a/target/linux/kirkwood/patches-4.19/101-iconnect.patch b/target/linux/kirkwood/patches-4.19/101-iconnect.patch deleted file mode 100644 index 935e2dfcf5..0000000000 --- a/target/linux/kirkwood/patches-4.19/101-iconnect.patch +++ /dev/null @@ -1,80 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-iconnect.dts -+++ b/arch/arm/boot/dts/kirkwood-iconnect.dts -@@ -8,6 +8,13 @@ - model = "Iomega Iconnect"; - compatible = "iom,iconnect-1.1", "iom,iconnect", "marvell,kirkwood-88f6281", "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_power_blue; -+ led-failsafe = &led_power_red; -+ led-running = &led_power_blue; -+ led-upgrade = &led_power_red; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x10000000>; -@@ -16,8 +23,6 @@ - chosen { - bootargs = "console=ttyS0,115200n8 earlyprintk"; - stdout-path = &uart0; -- linux,initrd-start = <0x4500040>; -- linux,initrd-end = <0x4800000>; - }; - - ocp@f1000000 { -@@ -89,12 +94,12 @@ - gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; - default-state = "on"; - }; -- power-blue { -+ led_power_blue: power-blue { - label = "power:blue"; - gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; -- default-state = "keep"; -+ default-state = "on"; - }; -- power-red { -+ led_power_red: power-red { - label = "power:red"; - gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; - }; -@@ -146,28 +151,23 @@ - status = "okay"; - - partition@0 { -- label = "uboot"; -- reg = <0x0000000 0xc0000>; -+ label = "u-boot"; -+ reg = <0x0000000 0xe0000>; - }; - -- partition@a0000 { -- label = "env"; -- reg = <0xa0000 0x20000>; -+ partition@e0000 { -+ label = "u-boot environment"; -+ reg = <0xe0000 0x100000>; - }; - - partition@100000 { -- label = "zImage"; -- reg = <0x100000 0x300000>; -- }; -- -- partition@540000 { -- label = "initrd"; -- reg = <0x540000 0x300000>; -+ label = "second stage u-boot"; -+ reg = <0x100000 0x200000>; - }; - -- partition@980000 { -- label = "boot"; -- reg = <0x980000 0x1f400000>; -+ partition@200000 { -+ label = "ubi"; -+ reg = <0x200000 0x1fe00000>; - }; - }; - diff --git a/target/linux/kirkwood/patches-4.19/102-dockstar.patch b/target/linux/kirkwood/patches-4.19/102-dockstar.patch deleted file mode 100644 index 127f84962c..0000000000 --- a/target/linux/kirkwood/patches-4.19/102-dockstar.patch +++ /dev/null @@ -1,62 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-dockstar.dts -+++ b/arch/arm/boot/dts/kirkwood-dockstar.dts -@@ -8,6 +8,13 @@ - model = "Seagate FreeAgent Dockstar"; - compatible = "seagate,dockstar", "marvell,kirkwood-88f6281", "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_health; -+ led-failsafe = &led_fault; -+ led-running = &led_health; -+ led-upgrade = &led_fault; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x8000000>; -@@ -42,12 +49,12 @@ - pinctrl-0 = <&pmx_led_green &pmx_led_orange>; - pinctrl-names = "default"; - -- health { -+ led_health: health { - label = "status:green:health"; - gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; -- default-state = "keep"; -+ default-state = "on"; - }; -- fault { -+ led_fault: fault { - label = "status:orange:fault"; - gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; - }; -@@ -78,18 +85,22 @@ - - partition@0 { - label = "u-boot"; -- reg = <0x0000000 0x100000>; -- read-only; -+ reg = <0x0000000 0xe0000>; -+ }; -+ -+ partition@e0000 { -+ label = "u-boot environment"; -+ reg = <0xe0000 0x100000>; - }; - - partition@100000 { -- label = "uImage"; -- reg = <0x0100000 0x400000>; -+ label = "second stage u-boot"; -+ reg = <0x100000 0x200000>; - }; - -- partition@500000 { -- label = "data"; -- reg = <0x0500000 0xfb00000>; -+ partition@200000 { -+ label = "ubi"; -+ reg = <0x200000 0xfe00000>; - }; - }; - diff --git a/target/linux/kirkwood/patches-4.19/103-iomega-ix2-200.patch b/target/linux/kirkwood/patches-4.19/103-iomega-ix2-200.patch deleted file mode 100644 index 9313b4bc3e..0000000000 --- a/target/linux/kirkwood/patches-4.19/103-iomega-ix2-200.patch +++ /dev/null @@ -1,67 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts -+++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts -@@ -8,6 +8,13 @@ - model = "Iomega StorCenter ix2-200"; - compatible = "iom,ix2-200", "marvell,kirkwood-88f6281", "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_power; -+ led-failsafe = &led_health; -+ led-running = &led_power; -+ led-upgrade = &led_health; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x10000000>; -@@ -127,16 +134,16 @@ - &pmx_led_rebuild &pmx_led_health >; - pinctrl-names = "default"; - -- power_led { -+ led_power: power_led { - label = "status:white:power_led"; - gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; -- default-state = "keep"; -+ default-state = "on"; - }; - rebuild_led { - label = "status:white:rebuild_led"; - gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; - }; -- health_led { -+ led_health: health_led { - label = "status:red:health_led"; - gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; - }; -@@ -186,18 +193,18 @@ - }; - - partition@a0000 { -- label = "env"; -+ label = "u-boot environment"; - reg = <0xa0000 0x20000>; - read-only; - }; - - partition@100000 { -- label = "uImage"; -+ label = "kernel"; - reg = <0x100000 0x300000>; - }; - - partition@400000 { -- label = "rootfs"; -+ label = "ubi"; - reg = <0x400000 0x1C00000>; - }; - }; -@@ -211,7 +218,7 @@ - }; - - ð0 { -- status = "okay"; -+ status = "disabled"; - ethernet0-port@0 { - speed = <1000>; - duplex = <1>; diff --git a/target/linux/kirkwood/patches-4.19/105-ea4500.patch b/target/linux/kirkwood/patches-4.19/105-ea4500.patch deleted file mode 100644 index 4c3c82bdfd..0000000000 --- a/target/linux/kirkwood/patches-4.19/105-ea4500.patch +++ /dev/null @@ -1,144 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-linksys-viper.dts -+++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts -@@ -24,6 +24,10 @@ - }; - - aliases { -+ led-boot = &led_white_health; -+ led-failsafe = &led_white_health; -+ led-running = &led_white_health; -+ led-upgrade = &led_white_health; - serial0 = &uart0; - }; - -@@ -56,9 +60,10 @@ - pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >; - pinctrl-names = "default"; - -- white-health { -+ led_white_health: white-health { - label = "viper:white:health"; - gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>; -+ default-state = "on"; - }; - - white-pulse { -@@ -67,9 +72,18 @@ - }; - }; - -- dsa { -- status = "disabled"; -+ mvsw61xx { -+ compatible = "marvell,88e6171"; -+ status = "okay"; -+ reg = <0x10>; -+ -+ mii-bus = <&mdio>; -+ cpu-port-0 = <5>; -+ cpu-port-1 = <6>; -+ is-indirect; -+ }; - -+ dsa { - compatible = "marvell,dsa"; - #address-cells = <2>; - #size-cells = <0>; -@@ -161,22 +175,22 @@ - }; - - partition@200000 { -- label = "kernel"; -+ label = "kernel1"; - reg = <0x200000 0x2A0000>; - }; - - partition@4a0000 { -- label = "rootfs"; -+ label = "rootfs1"; - reg = <0x4A0000 0x1760000>; - }; - - partition@1c00000 { -- label = "alt_kernel"; -+ label = "kernel2"; - reg = <0x1C00000 0x2A0000>; - }; - - partition@1ea0000 { -- label = "alt_rootfs"; -+ label = "rootfs2"; - reg = <0x1EA0000 0x1760000>; - }; - -@@ -207,53 +221,6 @@ - - &mdio { - status = "okay"; -- -- switch@10 { -- compatible = "marvell,mv88e6085"; -- #address-cells = <1>; -- #size-cells = <0>; -- reg = <16>; -- -- ports { -- #address-cells = <1>; -- #size-cells = <0>; -- -- port@0 { -- reg = <0>; -- label = "ethernet1"; -- }; -- -- port@1 { -- reg = <1>; -- label = "ethernet2"; -- }; -- -- port@2 { -- reg = <2>; -- label = "ethernet3"; -- }; -- -- port@3 { -- reg = <3>; -- label = "ethernet4"; -- }; -- -- port@4 { -- reg = <4>; -- label = "internet"; -- }; -- -- port@5 { -- reg = <5>; -- label = "cpu"; -- ethernet = <ð0port>; -- fixed-link { -- speed = <1000>; -- full-duplex; -- }; -- }; -- }; -- }; - }; - - &uart0 { -@@ -272,10 +239,14 @@ - }; - - /* eth1 is connected to the switch at port 6. However DSA only supports a -- * single CPU port. So leave this port disabled to avoid confusion. -+ * single CPU port. Upstream uses DSA so they disable this port to avoid confusion. - */ - ð1 { -- status = "disabled"; -+ status = "okay"; -+ ethernet1-port@0 { -+ speed = <1000>; -+ duplex = <1>; -+ }; - }; - - /* There is no battery on the board, so the RTC does not keep diff --git a/target/linux/kirkwood/patches-4.19/106-goflexnet.patch b/target/linux/kirkwood/patches-4.19/106-goflexnet.patch deleted file mode 100644 index 82cf90841e..0000000000 --- a/target/linux/kirkwood/patches-4.19/106-goflexnet.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-goflexnet.dts -+++ b/arch/arm/boot/dts/kirkwood-goflexnet.dts -@@ -8,6 +8,13 @@ - model = "Seagate GoFlex Net"; - compatible = "seagate,goflexnet", "marvell,kirkwood-88f6281", "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_health; -+ led-failsafe = &led_fault; -+ led-running = &led_health; -+ led-upgrade = &led_fault; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x8000000>; -@@ -85,12 +92,12 @@ - >; - pinctrl-names = "default"; - -- health { -+ led_health: health { - label = "status:green:health"; - gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; -- default-state = "keep"; -+ default-state = "on"; - }; -- fault { -+ led_fault: fault { - label = "status:orange:fault"; - gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; - }; -@@ -159,18 +166,8 @@ - }; - - partition@100000 { -- label = "uImage"; -- reg = <0x0100000 0x400000>; -- }; -- -- partition@500000 { -- label = "pogoplug"; -- reg = <0x0500000 0x2000000>; -- }; -- -- partition@2500000 { -- label = "root"; -- reg = <0x02500000 0xd800000>; -+ label = "ubi"; -+ reg = <0x0100000 0x0ff00000>; - }; - }; - diff --git a/target/linux/kirkwood/patches-4.19/107-01-zyxel-nsa3x0-common-nand-partitions.patch b/target/linux/kirkwood/patches-4.19/107-01-zyxel-nsa3x0-common-nand-partitions.patch deleted file mode 100644 index df654033fd..0000000000 --- a/target/linux/kirkwood/patches-4.19/107-01-zyxel-nsa3x0-common-nand-partitions.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsi -+++ b/arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsi -@@ -112,40 +112,16 @@ - - partition@0 { - label = "uboot"; -- reg = <0x0000000 0x0100000>; -+ reg = <0x0000000 0x00c0000>; - read-only; - }; - partition@100000 { - label = "uboot_env"; -- reg = <0x0100000 0x0080000>; -+ reg = <0x00c0000 0x0080000>; - }; -- partition@180000 { -- label = "key_store"; -- reg = <0x0180000 0x0080000>; -- }; -- partition@200000 { -- label = "info"; -- reg = <0x0200000 0x0080000>; -- }; -- partition@280000 { -- label = "etc"; -- reg = <0x0280000 0x0a00000>; -- }; -- partition@c80000 { -- label = "kernel_1"; -- reg = <0x0c80000 0x0a00000>; -- }; -- partition@1680000 { -- label = "rootfs1"; -- reg = <0x1680000 0x2fc0000>; -- }; -- partition@4640000 { -- label = "kernel_2"; -- reg = <0x4640000 0x0a00000>; -- }; -- partition@5040000 { -- label = "rootfs2"; -- reg = <0x5040000 0x2fc0000>; -+ partition@140000 { -+ label = "ubi"; -+ reg = <0x0140000 0x7ec0000>; - }; - }; - diff --git a/target/linux/kirkwood/patches-4.19/107-03-nsa325.patch b/target/linux/kirkwood/patches-4.19/107-03-nsa325.patch deleted file mode 100644 index 36c77cd44a..0000000000 --- a/target/linux/kirkwood/patches-4.19/107-03-nsa325.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-nsa325.dts -+++ b/arch/arm/boot/dts/kirkwood-nsa325.dts -@@ -15,6 +15,13 @@ - model = "ZyXEL NSA325"; - compatible = "zyxel,nsa325", "marvell,kirkwood-88f6282", "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_green_sys; -+ led-failsafe = &led_orange_sys; -+ led-running = &led_green_sys; -+ led-upgrade = &led_orange_sys; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x20000000>; -@@ -162,11 +169,12 @@ - &pmx_led_hdd1_green &pmx_led_hdd1_red>; - pinctrl-names = "default"; - -- green-sys { -+ led_green_sys: green-sys { - label = "nsa325:green:sys"; - gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; -+ default-state = "on"; - }; -- orange-sys { -+ led_orange_sys: orange-sys { - label = "nsa325:orange:sys"; - gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; - }; diff --git a/target/linux/kirkwood/patches-4.19/109-pogoplug_v4.patch b/target/linux/kirkwood/patches-4.19/109-pogoplug_v4.patch deleted file mode 100644 index 4273eb9af1..0000000000 --- a/target/linux/kirkwood/patches-4.19/109-pogoplug_v4.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-pogoplug-series-4.dts -+++ b/arch/arm/boot/dts/kirkwood-pogoplug-series-4.dts -@@ -18,12 +18,20 @@ - compatible = "cloudengines,pogoplugv4", "marvell,kirkwood-88f6192", - "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_health; -+ led-failsafe = &led_fault; -+ led-running = &led_health; -+ led-upgrade = &led_fault; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x08000000>; - }; - - chosen { -+ bootargs = "console=ttyS0,115200"; - stdout-path = "uart0:115200n8"; - }; - -@@ -37,8 +45,8 @@ - eject { - debounce-interval = <50>; - wakeup-source; -- linux,code = ; -- label = "Eject Button"; -+ linux,code = ; -+ label = "Reset"; - gpios = <&gpio0 29 GPIO_ACTIVE_LOW>; - }; - }; -@@ -48,12 +56,12 @@ - pinctrl-0 = <&pmx_led_green &pmx_led_red>; - pinctrl-names = "default"; - -- health { -+ led_health: health { - label = "pogoplugv4:green:health"; - gpios = <&gpio0 22 GPIO_ACTIVE_LOW>; - default-state = "on"; - }; -- fault { -+ led_fault: fault { - label = "pogoplugv4:red:fault"; - gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; - }; -@@ -137,29 +145,19 @@ - #size-cells = <1>; - - partition@0 { -- label = "u-boot"; -- reg = <0x00000000 0x200000>; -+ label = "uboot"; -+ reg = <0x00000000 0x1c0000>; - read-only; - }; - -- partition@200000 { -- label = "uImage"; -- reg = <0x00200000 0x300000>; -- }; -- -- partition@500000 { -- label = "uImage2"; -- reg = <0x00500000 0x300000>; -- }; -- -- partition@800000 { -- label = "failsafe"; -- reg = <0x00800000 0x800000>; -+ partition@1c0000 { -+ label = "uboot_env"; -+ reg = <0x001c0000 0x40000>; - }; - -- partition@1000000 { -- label = "root"; -- reg = <0x01000000 0x7000000>; -+ partition@200000 { -+ label = "ubi"; -+ reg = <0x00200000 0x7e00000>; - }; - }; - }; diff --git a/target/linux/kirkwood/patches-4.19/110-pogo_e02.patch b/target/linux/kirkwood/patches-4.19/110-pogo_e02.patch deleted file mode 100644 index 4b64337c9c..0000000000 --- a/target/linux/kirkwood/patches-4.19/110-pogo_e02.patch +++ /dev/null @@ -1,70 +0,0 @@ ---- a/arch/arm/boot/dts/kirkwood-pogo_e02.dts -+++ b/arch/arm/boot/dts/kirkwood-pogo_e02.dts -@@ -20,6 +20,13 @@ - compatible = "cloudengines,pogoe02", "marvell,kirkwood-88f6281", - "marvell,kirkwood"; - -+ aliases { -+ led-boot = &led_health; -+ led-failsafe = &led_fault; -+ led-running = &led_health; -+ led-upgrade = &led_fault; -+ }; -+ - memory { - device_type = "memory"; - reg = <0x00000000 0x10000000>; -@@ -33,12 +40,12 @@ - gpio-leds { - compatible = "gpio-leds"; - -- health { -+ led_health: health { - label = "pogo_e02:green:health"; - gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; -- default-state = "keep"; -+ default-state = "on"; - }; -- fault { -+ led_fault: fault { - label = "pogo_e02:orange:fault"; - gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; - }; -@@ -95,25 +102,26 @@ - status = "okay"; - - partition@0 { -- label = "u-boot"; -- reg = <0x0000000 0x100000>; -+ label = "uboot"; -+ reg = <0x0 0xe0000>; - read-only; - }; - -- partition@100000 { -- label = "uImage"; -- reg = <0x0100000 0x400000>; -+ partition@e0000 { -+ label = "uboot_env"; -+ reg = <0xe0000 0x20000>; - }; - -- partition@500000 { -- label = "pogoplug"; -- reg = <0x0500000 0x2000000>; -+ partition@100000 { -+ label = "second_stage_uboot"; -+ reg = <0x100000 0x100000>; - }; - -- partition@2500000 { -- label = "root"; -- reg = <0x02500000 0x5b00000>; -+ partition@200000 { -+ label = "ubi"; -+ reg = <0x200000 0x7e00000>; - }; -+ - }; - - &mdio { diff --git a/target/linux/kirkwood/patches-4.19/201-enable-sata-port-specific-led-triggers.patch b/target/linux/kirkwood/patches-4.19/201-enable-sata-port-specific-led-triggers.patch deleted file mode 100644 index 71d9bba3f1..0000000000 --- a/target/linux/kirkwood/patches-4.19/201-enable-sata-port-specific-led-triggers.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/arch/arm/mach-mvebu/Kconfig -+++ b/arch/arm/mach-mvebu/Kconfig -@@ -118,6 +118,7 @@ config MACH_DOVE - config MACH_KIRKWOOD - bool "Marvell Kirkwood boards" - depends on ARCH_MULTI_V5 -+ select ARCH_WANT_LIBATA_LEDS - select CPU_FEROCEON - select GPIOLIB - select KIRKWOOD_CLK diff --git a/target/linux/kirkwood/patches-4.19/202-linksys-find-active-root.patch b/target/linux/kirkwood/patches-4.19/202-linksys-find-active-root.patch deleted file mode 100644 index 860d7b0728..0000000000 --- a/target/linux/kirkwood/patches-4.19/202-linksys-find-active-root.patch +++ /dev/null @@ -1,62 +0,0 @@ -The WRT1900AC among other Linksys routers uses a dual-firmware layout. -Dynamically rename the active partition to "ubi". - -Signed-off-by: Imre Kaloz ---- ---- a/drivers/mtd/ofpart.c -+++ b/drivers/mtd/ofpart.c -@@ -25,6 +25,8 @@ static bool node_has_compatible(struct d - return of_get_property(pp, "compatible", NULL); - } - -+static int mangled_rootblock; -+ - static int parse_fixed_partitions(struct mtd_info *master, - const struct mtd_partition **pparts, - struct mtd_part_parser_data *data) -@@ -32,6 +34,7 @@ static int parse_fixed_partitions(struct - struct mtd_partition *parts; - struct device_node *mtd_node; - struct device_node *ofpart_node; -+ const char *owrtpart = "ubi"; - const char *partname; - struct device_node *pp; - int nr_parts, i, ret = 0; -@@ -110,9 +113,15 @@ static int parse_fixed_partitions(struct - parts[i].size = of_read_number(reg + a_cells, s_cells); - parts[i].of_node = pp; - -- partname = of_get_property(pp, "label", &len); -- if (!partname) -- partname = of_get_property(pp, "name", &len); -+ if (mangled_rootblock && (i == mangled_rootblock)) { -+ partname = owrtpart; -+ } else { -+ partname = of_get_property(pp, "label", &len); -+ -+ if (!partname) -+ partname = of_get_property(pp, "name", &len); -+ } -+ - parts[i].name = partname; - - if (of_get_property(pp, "read-only", &len)) -@@ -219,6 +228,18 @@ static int __init ofpart_parser_init(voi - return 0; - } - -+static int __init active_root(char *str) -+{ -+ get_option(&str, &mangled_rootblock); -+ -+ if (!mangled_rootblock) -+ return 1; -+ -+ return 1; -+} -+ -+__setup("mangled_rootblock=", active_root); -+ - static void __exit ofpart_parser_exit(void) - { - deregister_mtd_parser(&ofpart_parser); From 03e742dcd82df43ce48c42e96e439e1a4bad14ec Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Tue, 28 Apr 2020 16:51:41 +0200 Subject: [PATCH 13/14] Revert "ramips: explicitly disable built-in switch for lan-only devices" This reverts commit a1693bf626f8cd00363b0b98642b682522dfcf75. The rt288x and rt3883 devices in question don't have switches. Only keep the merged case for rt305x. Signed-off-by: Adrian Schmutzler --- target/linux/ramips/rt288x/base-files/etc/board.d/02_network | 2 -- target/linux/ramips/rt3883/base-files/etc/board.d/02_network | 2 -- 2 files changed, 4 deletions(-) diff --git a/target/linux/ramips/rt288x/base-files/etc/board.d/02_network b/target/linux/ramips/rt288x/base-files/etc/board.d/02_network index a769bdbc43..0cc0e0b28b 100755 --- a/target/linux/ramips/rt288x/base-files/etc/board.d/02_network +++ b/target/linux/ramips/rt288x/base-files/etc/board.d/02_network @@ -26,8 +26,6 @@ ramips_setup_interfaces() ;; buffalo,wli-tx4-ag300n|\ dlink,dap-1522-a1) - ucidef_add_switch "switch0" - ucidef_add_switch_attr "switch0" "enable" "false" ucidef_set_interface_lan "eth0" ;; *) diff --git a/target/linux/ramips/rt3883/base-files/etc/board.d/02_network b/target/linux/ramips/rt3883/base-files/etc/board.d/02_network index 5f364cfc0f..873c72cea3 100755 --- a/target/linux/ramips/rt3883/base-files/etc/board.d/02_network +++ b/target/linux/ramips/rt3883/base-files/etc/board.d/02_network @@ -27,8 +27,6 @@ ramips_setup_interfaces() ;; loewe,wmdr-143n|\ omnima,hpm) - ucidef_add_switch "switch0" - ucidef_add_switch_attr "switch0" "enable" "false" ucidef_set_interface_lan "eth0" ;; samsung,cy-swr1100) From 522f6b7eee479768dd7851e83c4530c3329b9f53 Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Tue, 28 Apr 2020 20:28:06 +0200 Subject: [PATCH 14/14] ath79: add SUPPORTED_DEVICES based on ar71xx for some devices This adds some still-missing board names for old TP-Link devices to ath79 SUPPORTED_DEVICES. Fixes: FS#3017 Signed-off-by: Adrian Schmutzler --- target/linux/ath79/image/generic-tp-link.mk | 4 ++++ target/linux/ath79/image/tiny-tp-link.mk | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/target/linux/ath79/image/generic-tp-link.mk b/target/linux/ath79/image/generic-tp-link.mk index 56d21194d3..3eedce4f8e 100644 --- a/target/linux/ath79/image/generic-tp-link.mk +++ b/target/linux/ath79/image/generic-tp-link.mk @@ -474,6 +474,7 @@ define Device/tplink_tl-wdr4900-v2 DEVICE_VARIANT := v2 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport TPLINK_HWID := 0x49000002 + SUPPORTED_DEVICES += tl-wdr4900-v2 endef TARGET_DEVICES += tplink_tl-wdr4900-v2 @@ -576,6 +577,7 @@ define Device/tplink_tl-wr810n-v1 DEVICE_VARIANT := v1 TPLINK_HWID := 0x8100001 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport + SUPPORTED_DEVICES += tl-wr810n endef TARGET_DEVICES += tplink_tl-wr810n-v1 @@ -585,6 +587,7 @@ define Device/tplink_tl-wr810n-v2 DEVICE_MODEL := TL-WR810N DEVICE_VARIANT := v2 TPLINK_HWID := 0x8100002 + SUPPORTED_DEVICES += tl-wr810n-v2 endef TARGET_DEVICES += tplink_tl-wr810n-v2 @@ -595,6 +598,7 @@ define Device/tplink_tl-wr842n-v1 DEVICE_VARIANT := v1 DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport TPLINK_HWID := 0x8420001 + SUPPORTED_DEVICES += tl-mr3420 endef TARGET_DEVICES += tplink_tl-wr842n-v1 diff --git a/target/linux/ath79/image/tiny-tp-link.mk b/target/linux/ath79/image/tiny-tp-link.mk index c6ef224da3..481329938a 100644 --- a/target/linux/ath79/image/tiny-tp-link.mk +++ b/target/linux/ath79/image/tiny-tp-link.mk @@ -186,6 +186,7 @@ define Device/tplink_tl-wr740n-v1 DEVICE_MODEL := TL-WR740N DEVICE_VARIANT := v1/v2 TPLINK_HWID := 0x07400001 + SUPPORTED_DEVICES += tl-wr741nd endef TARGET_DEVICES += tplink_tl-wr740n-v1 @@ -195,6 +196,7 @@ define Device/tplink_tl-wr740n-v3 DEVICE_MODEL := TL-WR740N DEVICE_VARIANT := v3 TPLINK_HWID := 0x07400003 + SUPPORTED_DEVICES += tl-wr741nd endef TARGET_DEVICES += tplink_tl-wr740n-v3 @@ -204,6 +206,7 @@ define Device/tplink_tl-wr740n-v4 DEVICE_MODEL := TL-WR740N DEVICE_VARIANT := v4 TPLINK_HWID := 0x07400004 + SUPPORTED_DEVICES += tl-wr741nd-v4 endef TARGET_DEVICES += tplink_tl-wr740n-v4 @@ -213,6 +216,7 @@ define Device/tplink_tl-wr740n-v5 DEVICE_MODEL := TL-WR740N DEVICE_VARIANT := v5 TPLINK_HWID := 0x07400005 + SUPPORTED_DEVICES += tl-wr741nd-v4 endef TARGET_DEVICES += tplink_tl-wr740n-v5 @@ -222,6 +226,7 @@ define Device/tplink_tl-wr741-v1 DEVICE_MODEL := TL-WR741N/ND DEVICE_VARIANT := v1/v2 TPLINK_HWID := 0x07410001 + SUPPORTED_DEVICES += tl-wr741nd endef TARGET_DEVICES += tplink_tl-wr741-v1 @@ -241,6 +246,7 @@ define Device/tplink_tl-wr743nd-v1 DEVICE_MODEL := TL-WR743ND DEVICE_VARIANT := v1 TPLINK_HWID := 0x07430001 + SUPPORTED_DEVICES += tl-wr741nd endef TARGET_DEVICES += tplink_tl-wr743nd-v1 @@ -250,6 +256,7 @@ define Device/tplink_tl-wr841-v5 DEVICE_MODEL := TL-WR841N/ND DEVICE_VARIANT := v5/v6 TPLINK_HWID := 0x08410005 + SUPPORTED_DEVICES += tl-wr741nd endef TARGET_DEVICES += tplink_tl-wr841-v5 @@ -367,6 +374,7 @@ define Device/tplink_tl-wr941-v2 DEVICE_ALT0_VARIANT := v2/v3 TPLINK_HWID := 0x09410002 TPLINK_HWREV := 2 + SUPPORTED_DEVICES += tl-wr941nd endef TARGET_DEVICES += tplink_tl-wr941-v2 @@ -379,6 +387,7 @@ define Device/tplink_tl-wr941-v4 DEVICE_ALT0_MODEL := TL-WR941N DEVICE_ALT0_VARIANT := v4 TPLINK_HWID := 0x09410004 + SUPPORTED_DEVICES += tl-wr741nd endef TARGET_DEVICES += tplink_tl-wr941-v4