mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-18 10:46:41 +00:00
generic: 6.6: manually refresh backport patches
Refresh backport patches that still needs to be merged for kernel 6.6. Signed-off-by: Weijie Gao <hackpascal@gmail.com>
This commit is contained in:
parent
1057d9b39d
commit
a76397cd47
@ -26,7 +26,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/phy/Kconfig
|
||||
+++ b/drivers/net/phy/Kconfig
|
||||
@@ -90,10 +90,7 @@ config ADIN1100_PHY
|
||||
@@ -96,10 +96,7 @@ config ADIN1100_PHY
|
||||
Currently supports the:
|
||||
- ADIN1100 - Robust,Industrial, Low Power 10BASE-T1L Ethernet PHY
|
||||
|
||||
@ -40,7 +40,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
tristate "Asix PHYs"
|
||||
--- a/drivers/net/phy/Makefile
|
||||
+++ b/drivers/net/phy/Makefile
|
||||
@@ -33,11 +33,7 @@ obj-y += $(sfp-obj-y) $(sfp-obj-m)
|
||||
@@ -35,11 +35,7 @@ obj-y += $(sfp-obj-y) $(sfp-obj-m)
|
||||
obj-$(CONFIG_ADIN_PHY) += adin.o
|
||||
obj-$(CONFIG_ADIN1100_PHY) += adin1100.o
|
||||
obj-$(CONFIG_AMD_PHY) += amd.o
|
||||
@ -323,7 +323,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
+ .config = aqr_hwmon_temp_config,
|
||||
+};
|
||||
+
|
||||
+static const struct hwmon_channel_info *aqr_hwmon_info[] = {
|
||||
+static const struct hwmon_channel_info * const aqr_hwmon_info[] = {
|
||||
+ &aqr_hwmon_chip,
|
||||
+ &aqr_hwmon_temp,
|
||||
+ NULL,
|
||||
@ -363,7 +363,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
+#endif
|
||||
--- /dev/null
|
||||
+++ b/drivers/net/phy/aquantia/aquantia_main.c
|
||||
@@ -0,0 +1,842 @@
|
||||
@@ -0,0 +1,882 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+/*
|
||||
+ * Driver for Aquantia PHY
|
||||
@ -388,6 +388,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
+#define PHY_ID_AQR107 0x03a1b4e0
|
||||
+#define PHY_ID_AQCS109 0x03a1b5c2
|
||||
+#define PHY_ID_AQR405 0x03a1b4b0
|
||||
+#define PHY_ID_AQR112 0x03a1b662
|
||||
+#define PHY_ID_AQR412 0x03a1b712
|
||||
+#define PHY_ID_AQR113C 0x31c31c12
|
||||
+
|
||||
+#define MDIO_PHYXS_VEND_IF_STATUS 0xe812
|
||||
@ -1167,6 +1169,42 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
+ .read_status = aqr_read_status,
|
||||
+},
|
||||
+{
|
||||
+ PHY_ID_MATCH_MODEL(PHY_ID_AQR112),
|
||||
+ .name = "Aquantia AQR112",
|
||||
+ .probe = aqr107_probe,
|
||||
+ .config_aneg = aqr_config_aneg,
|
||||
+ .config_intr = aqr_config_intr,
|
||||
+ .handle_interrupt = aqr_handle_interrupt,
|
||||
+ .get_tunable = aqr107_get_tunable,
|
||||
+ .set_tunable = aqr107_set_tunable,
|
||||
+ .suspend = aqr107_suspend,
|
||||
+ .resume = aqr107_resume,
|
||||
+ .read_status = aqr107_read_status,
|
||||
+ .get_rate_matching = aqr107_get_rate_matching,
|
||||
+ .get_sset_count = aqr107_get_sset_count,
|
||||
+ .get_strings = aqr107_get_strings,
|
||||
+ .get_stats = aqr107_get_stats,
|
||||
+ .link_change_notify = aqr107_link_change_notify,
|
||||
+},
|
||||
+{
|
||||
+ PHY_ID_MATCH_MODEL(PHY_ID_AQR412),
|
||||
+ .name = "Aquantia AQR412",
|
||||
+ .probe = aqr107_probe,
|
||||
+ .config_aneg = aqr_config_aneg,
|
||||
+ .config_intr = aqr_config_intr,
|
||||
+ .handle_interrupt = aqr_handle_interrupt,
|
||||
+ .get_tunable = aqr107_get_tunable,
|
||||
+ .set_tunable = aqr107_set_tunable,
|
||||
+ .suspend = aqr107_suspend,
|
||||
+ .resume = aqr107_resume,
|
||||
+ .read_status = aqr107_read_status,
|
||||
+ .get_rate_matching = aqr107_get_rate_matching,
|
||||
+ .get_sset_count = aqr107_get_sset_count,
|
||||
+ .get_strings = aqr107_get_strings,
|
||||
+ .get_stats = aqr107_get_stats,
|
||||
+ .link_change_notify = aqr107_link_change_notify,
|
||||
+},
|
||||
+{
|
||||
+ PHY_ID_MATCH_MODEL(PHY_ID_AQR113C),
|
||||
+ .name = "Aquantia AQR113C",
|
||||
+ .probe = aqr107_probe,
|
||||
@ -1197,6 +1235,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR107) },
|
||||
+ { PHY_ID_MATCH_MODEL(PHY_ID_AQCS109) },
|
||||
+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR405) },
|
||||
+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR112) },
|
||||
+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR412) },
|
||||
+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR113C) },
|
||||
+ { }
|
||||
+};
|
||||
@ -1421,7 +1461,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
- .config = aqr_hwmon_temp_config,
|
||||
-};
|
||||
-
|
||||
-static const struct hwmon_channel_info *aqr_hwmon_info[] = {
|
||||
-static const struct hwmon_channel_info * const aqr_hwmon_info[] = {
|
||||
- &aqr_hwmon_chip,
|
||||
- &aqr_hwmon_temp,
|
||||
- NULL,
|
||||
@ -1461,7 +1501,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
-#endif
|
||||
--- a/drivers/net/phy/aquantia_main.c
|
||||
+++ /dev/null
|
||||
@@ -1,842 +0,0 @@
|
||||
@@ -1,882 +0,0 @@
|
||||
-// SPDX-License-Identifier: GPL-2.0
|
||||
-/*
|
||||
- * Driver for Aquantia PHY
|
||||
@ -1486,6 +1526,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
-#define PHY_ID_AQR107 0x03a1b4e0
|
||||
-#define PHY_ID_AQCS109 0x03a1b5c2
|
||||
-#define PHY_ID_AQR405 0x03a1b4b0
|
||||
-#define PHY_ID_AQR112 0x03a1b662
|
||||
-#define PHY_ID_AQR412 0x03a1b712
|
||||
-#define PHY_ID_AQR113C 0x31c31c12
|
||||
-
|
||||
-#define MDIO_PHYXS_VEND_IF_STATUS 0xe812
|
||||
@ -2265,6 +2307,42 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
- .read_status = aqr_read_status,
|
||||
-},
|
||||
-{
|
||||
- PHY_ID_MATCH_MODEL(PHY_ID_AQR112),
|
||||
- .name = "Aquantia AQR112",
|
||||
- .probe = aqr107_probe,
|
||||
- .config_aneg = aqr_config_aneg,
|
||||
- .config_intr = aqr_config_intr,
|
||||
- .handle_interrupt = aqr_handle_interrupt,
|
||||
- .get_tunable = aqr107_get_tunable,
|
||||
- .set_tunable = aqr107_set_tunable,
|
||||
- .suspend = aqr107_suspend,
|
||||
- .resume = aqr107_resume,
|
||||
- .read_status = aqr107_read_status,
|
||||
- .get_rate_matching = aqr107_get_rate_matching,
|
||||
- .get_sset_count = aqr107_get_sset_count,
|
||||
- .get_strings = aqr107_get_strings,
|
||||
- .get_stats = aqr107_get_stats,
|
||||
- .link_change_notify = aqr107_link_change_notify,
|
||||
-},
|
||||
-{
|
||||
- PHY_ID_MATCH_MODEL(PHY_ID_AQR412),
|
||||
- .name = "Aquantia AQR412",
|
||||
- .probe = aqr107_probe,
|
||||
- .config_aneg = aqr_config_aneg,
|
||||
- .config_intr = aqr_config_intr,
|
||||
- .handle_interrupt = aqr_handle_interrupt,
|
||||
- .get_tunable = aqr107_get_tunable,
|
||||
- .set_tunable = aqr107_set_tunable,
|
||||
- .suspend = aqr107_suspend,
|
||||
- .resume = aqr107_resume,
|
||||
- .read_status = aqr107_read_status,
|
||||
- .get_rate_matching = aqr107_get_rate_matching,
|
||||
- .get_sset_count = aqr107_get_sset_count,
|
||||
- .get_strings = aqr107_get_strings,
|
||||
- .get_stats = aqr107_get_stats,
|
||||
- .link_change_notify = aqr107_link_change_notify,
|
||||
-},
|
||||
-{
|
||||
- PHY_ID_MATCH_MODEL(PHY_ID_AQR113C),
|
||||
- .name = "Aquantia AQR113C",
|
||||
- .probe = aqr107_probe,
|
||||
@ -2295,6 +2373,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
- { PHY_ID_MATCH_MODEL(PHY_ID_AQR107) },
|
||||
- { PHY_ID_MATCH_MODEL(PHY_ID_AQCS109) },
|
||||
- { PHY_ID_MATCH_MODEL(PHY_ID_AQR405) },
|
||||
- { PHY_ID_MATCH_MODEL(PHY_ID_AQR112) },
|
||||
- { PHY_ID_MATCH_MODEL(PHY_ID_AQR412) },
|
||||
- { PHY_ID_MATCH_MODEL(PHY_ID_AQR113C) },
|
||||
- { }
|
||||
-};
|
||||
|
@ -25,9 +25,9 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
--- a/drivers/net/phy/Kconfig
|
||||
+++ b/drivers/net/phy/Kconfig
|
||||
@@ -277,12 +277,7 @@ config NXP_TJA11XX_PHY
|
||||
help
|
||||
Currently supports the NXP TJA1100 and TJA1101 PHY.
|
||||
@@ -318,12 +318,7 @@ config NCN26000_PHY
|
||||
Currently supports the NCN26000 10BASE-T1S Industrial PHY
|
||||
with MII interface.
|
||||
|
||||
-config AT803X_PHY
|
||||
- tristate "Qualcomm Atheros AR803X PHYs and QCA833x PHYs"
|
||||
@ -41,7 +41,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
tristate "Quality Semiconductor PHYs"
|
||||
--- a/drivers/net/phy/Makefile
|
||||
+++ b/drivers/net/phy/Makefile
|
||||
@@ -34,7 +34,6 @@ obj-$(CONFIG_ADIN_PHY) += adin.o
|
||||
@@ -36,7 +36,6 @@ obj-$(CONFIG_ADIN_PHY) += adin.o
|
||||
obj-$(CONFIG_ADIN1100_PHY) += adin1100.o
|
||||
obj-$(CONFIG_AMD_PHY) += amd.o
|
||||
obj-$(CONFIG_AQUANTIA_PHY) += aquantia/
|
||||
@ -49,9 +49,9 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
obj-$(CONFIG_AX88796B_PHY) += ax88796b.o
|
||||
obj-$(CONFIG_BCM54140_PHY) += bcm54140.o
|
||||
obj-$(CONFIG_BCM63XX_PHY) += bcm63xx.o
|
||||
@@ -75,6 +74,7 @@ obj-$(CONFIG_MOTORCOMM_PHY) += motorcomm
|
||||
obj-$(CONFIG_NATIONAL_PHY) += national.o
|
||||
@@ -82,6 +81,7 @@ obj-$(CONFIG_NCN26000_PHY) += ncn26000.o
|
||||
obj-$(CONFIG_NXP_C45_TJA11XX_PHY) += nxp-c45-tja11xx.o
|
||||
obj-$(CONFIG_NXP_CBTX_PHY) += nxp-cbtx.o
|
||||
obj-$(CONFIG_NXP_TJA11XX_PHY) += nxp-tja11xx.o
|
||||
+obj-y += qcom/
|
||||
obj-$(CONFIG_QSEMI_PHY) += qsemi.o
|
||||
@ -2010,7 +2010,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
- return at803x_debug_reg_mask(phydev, QCA808X_PHY_DEBUG_LOCAL_SEED,
|
||||
- QCA808X_MASTER_SLAVE_SEED_ENABLE, 0);
|
||||
-
|
||||
- seed_value = prandom_u32_max(QCA808X_MASTER_SLAVE_SEED_RANGE);
|
||||
- seed_value = get_random_u32_below(QCA808X_MASTER_SLAVE_SEED_RANGE);
|
||||
- return at803x_debug_reg_mask(phydev, QCA808X_PHY_DEBUG_LOCAL_SEED,
|
||||
- QCA808X_MASTER_SLAVE_SEED_CFG | QCA808X_MASTER_SLAVE_SEED_ENABLE,
|
||||
- FIELD_PREP(QCA808X_MASTER_SLAVE_SEED_CFG, seed_value) |
|
||||
@ -4772,7 +4772,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
+ return at803x_debug_reg_mask(phydev, QCA808X_PHY_DEBUG_LOCAL_SEED,
|
||||
+ QCA808X_MASTER_SLAVE_SEED_ENABLE, 0);
|
||||
+
|
||||
+ seed_value = prandom_u32_max(QCA808X_MASTER_SLAVE_SEED_RANGE);
|
||||
+ seed_value = get_random_u32_below(QCA808X_MASTER_SLAVE_SEED_RANGE);
|
||||
+ return at803x_debug_reg_mask(phydev, QCA808X_PHY_DEBUG_LOCAL_SEED,
|
||||
+ QCA808X_MASTER_SLAVE_SEED_CFG | QCA808X_MASTER_SLAVE_SEED_ENABLE,
|
||||
+ FIELD_PREP(QCA808X_MASTER_SLAVE_SEED_CFG, seed_value) |
|
||||
|
@ -328,7 +328,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
- return at803x_debug_reg_mask(phydev, QCA808X_PHY_DEBUG_LOCAL_SEED,
|
||||
- QCA808X_MASTER_SLAVE_SEED_ENABLE, 0);
|
||||
-
|
||||
- seed_value = prandom_u32_max(QCA808X_MASTER_SLAVE_SEED_RANGE);
|
||||
- seed_value = get_random_u32_below(QCA808X_MASTER_SLAVE_SEED_RANGE);
|
||||
- return at803x_debug_reg_mask(phydev, QCA808X_PHY_DEBUG_LOCAL_SEED,
|
||||
- QCA808X_MASTER_SLAVE_SEED_CFG | QCA808X_MASTER_SLAVE_SEED_ENABLE,
|
||||
- FIELD_PREP(QCA808X_MASTER_SLAVE_SEED_CFG, seed_value) |
|
||||
@ -1255,7 +1255,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
+ return at803x_debug_reg_mask(phydev, QCA808X_PHY_DEBUG_LOCAL_SEED,
|
||||
+ QCA808X_MASTER_SLAVE_SEED_ENABLE, 0);
|
||||
+
|
||||
+ seed_value = prandom_u32_max(QCA808X_MASTER_SLAVE_SEED_RANGE);
|
||||
+ seed_value = get_random_u32_below(QCA808X_MASTER_SLAVE_SEED_RANGE);
|
||||
+ return at803x_debug_reg_mask(phydev, QCA808X_PHY_DEBUG_LOCAL_SEED,
|
||||
+ QCA808X_MASTER_SLAVE_SEED_CFG | QCA808X_MASTER_SLAVE_SEED_ENABLE,
|
||||
+ FIELD_PREP(QCA808X_MASTER_SLAVE_SEED_CFG, seed_value) |
|
||||
|
@ -242,7 +242,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
refcount_t refcnt;
|
||||
unsigned long flags;
|
||||
size_t priv_size;
|
||||
@@ -1763,10 +1764,10 @@ int phy_ethtool_get_link_ksettings(struc
|
||||
@@ -1969,10 +1970,10 @@ int phy_ethtool_get_link_ksettings(struc
|
||||
int phy_ethtool_set_link_ksettings(struct net_device *ndev,
|
||||
const struct ethtool_link_ksettings *cmd);
|
||||
int phy_ethtool_nway_reset(struct net_device *ndev);
|
||||
@ -253,11 +253,11 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
- int addr, size_t priv_size);
|
||||
+ int base_addr, size_t priv_size);
|
||||
|
||||
#if IS_ENABLED(CONFIG_PHYLIB)
|
||||
int __init mdio_bus_init(void);
|
||||
@@ -1778,46 +1779,65 @@ int phy_ethtool_get_sset_count(struct ph
|
||||
int phy_ethtool_get_stats(struct phy_device *phydev,
|
||||
struct ethtool_stats *stats, u64 *data);
|
||||
void mdio_bus_exit(void);
|
||||
@@ -1995,46 +1996,65 @@ int __phy_hwtstamp_set(struct phy_device
|
||||
struct kernel_hwtstamp_config *config,
|
||||
struct netlink_ext_ack *extack);
|
||||
|
||||
-static inline int phy_package_read(struct phy_device *phydev, u32 regnum)
|
||||
+static inline int phy_package_address(struct phy_device *phydev,
|
||||
|
@ -115,9 +115,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
/* auto scan for PHYs with empty reg property */
|
||||
for_each_available_child_of_node(np, child) {
|
||||
- /* Skip PHYs with reg property set */
|
||||
- if (of_find_property(child, "reg", NULL))
|
||||
- if (of_property_present(child, "reg"))
|
||||
+ /* Skip PHYs with reg property set or ethernet-phy-package node */
|
||||
+ if (of_find_property(child, "reg", NULL) ||
|
||||
+ if (of_property_present(child, "reg") ||
|
||||
+ of_node_name_eq(child, "ethernet-phy-package"))
|
||||
continue;
|
||||
|
||||
|
@ -170,7 +170,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
refcount_t refcnt;
|
||||
unsigned long flags;
|
||||
size_t priv_size;
|
||||
@@ -1793,9 +1796,12 @@ int phy_ethtool_set_link_ksettings(struc
|
||||
@@ -1971,9 +1974,12 @@ int phy_ethtool_set_link_ksettings(struc
|
||||
const struct ethtool_link_ksettings *cmd);
|
||||
int phy_ethtool_nway_reset(struct net_device *ndev);
|
||||
int phy_package_join(struct phy_device *phydev, int base_addr, size_t priv_size);
|
||||
@ -181,5 +181,5 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
+int devm_of_phy_package_join(struct device *dev, struct phy_device *phydev,
|
||||
+ size_t priv_size);
|
||||
|
||||
#if IS_ENABLED(CONFIG_PHYLIB)
|
||||
int __init mdio_bus_init(void);
|
||||
void mdio_bus_exit(void);
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_ppe.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
|
||||
@@ -79,9 +79,9 @@ static int mtk_ppe_mib_wait_busy(struct
|
||||
@@ -80,9 +80,9 @@ static int mtk_ppe_mib_wait_busy(struct
|
||||
int ret;
|
||||
u32 val;
|
||||
|
||||
@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
if (ret)
|
||||
dev_err(ppe->dev, "MIB table busy");
|
||||
@@ -89,17 +89,31 @@ static int mtk_ppe_mib_wait_busy(struct
|
||||
@@ -90,17 +90,31 @@ static int mtk_ppe_mib_wait_busy(struct
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
cnt_r0 = readl(ppe->base + MTK_PPE_MIB_SER_R0);
|
||||
cnt_r1 = readl(ppe->base + MTK_PPE_MIB_SER_R1);
|
||||
@@ -108,19 +122,19 @@ static int mtk_mib_entry_read(struct mtk
|
||||
@@ -109,19 +123,19 @@ static int mtk_mib_entry_read(struct mtk
|
||||
if (mtk_is_netsys_v3_or_greater(ppe->eth)) {
|
||||
/* 64 bit for each counter */
|
||||
u32 cnt_r3 = readl(ppe->base + MTK_PPE_MIB_SER_R3);
|
||||
@ -76,9 +76,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
u32 pkt_cnt_low = FIELD_GET(MTK_PPE_MIB_SER_R1_PKT_CNT_LOW, cnt_r1);
|
||||
u32 pkt_cnt_high = FIELD_GET(MTK_PPE_MIB_SER_R2_PKT_CNT_HIGH, cnt_r2);
|
||||
- *bytes = ((u64)byte_cnt_high << 32) | byte_cnt_low;
|
||||
- *packets = (pkt_cnt_high << 16) | pkt_cnt_low;
|
||||
- *packets = ((u64)pkt_cnt_high << 16) | pkt_cnt_low;
|
||||
+ acct->bytes += ((u64)byte_cnt_high << 32) | byte_cnt_low;
|
||||
+ acct->packets += (pkt_cnt_high << 16) | pkt_cnt_low;
|
||||
+ acct->packets += ((u64)pkt_cnt_high << 16) | pkt_cnt_low;
|
||||
}
|
||||
|
||||
- return 0;
|
||||
@ -86,10 +86,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
}
|
||||
|
||||
static void mtk_ppe_cache_clear(struct mtk_ppe *ppe)
|
||||
@@ -519,13 +533,6 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp
|
||||
@@ -522,14 +536,6 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp
|
||||
hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID);
|
||||
dma_wmb();
|
||||
mtk_ppe_cache_clear(ppe);
|
||||
-
|
||||
- if (ppe->accounting) {
|
||||
- struct mtk_foe_accounting *acct;
|
||||
-
|
||||
@ -100,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
}
|
||||
entry->hash = 0xffff;
|
||||
|
||||
@@ -550,11 +557,14 @@ static int __mtk_foe_entry_idle_time(str
|
||||
@@ -554,11 +560,14 @@ static int __mtk_foe_entry_idle_time(str
|
||||
}
|
||||
|
||||
static bool
|
||||
@ -116,7 +117,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
int len;
|
||||
|
||||
if (hash == 0xffff)
|
||||
@@ -565,18 +575,35 @@ mtk_flow_entry_update(struct mtk_ppe *pp
|
||||
@@ -569,18 +578,35 @@ mtk_flow_entry_update(struct mtk_ppe *pp
|
||||
memcpy(&foe, hwe, len);
|
||||
|
||||
if (!mtk_flow_entry_match(ppe->eth, entry, &foe, len) ||
|
||||
@ -155,7 +156,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
struct mtk_flow_entry *cur;
|
||||
struct hlist_node *tmp;
|
||||
int idle;
|
||||
@@ -585,7 +612,9 @@ mtk_flow_entry_update_l2(struct mtk_ppe
|
||||
@@ -589,7 +615,9 @@ mtk_flow_entry_update_l2(struct mtk_ppe
|
||||
hlist_for_each_entry_safe(cur, tmp, &entry->l2_flows, l2_list) {
|
||||
int cur_idle;
|
||||
|
||||
@ -166,7 +167,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
__mtk_foe_entry_clear(ppe, entry, false);
|
||||
continue;
|
||||
}
|
||||
@@ -600,10 +629,29 @@ mtk_flow_entry_update_l2(struct mtk_ppe
|
||||
@@ -604,10 +632,29 @@ mtk_flow_entry_update_l2(struct mtk_ppe
|
||||
}
|
||||
}
|
||||
|
||||
@ -196,7 +197,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
struct mtk_eth *eth = ppe->eth;
|
||||
u16 timestamp = mtk_eth_timestamp(eth);
|
||||
struct mtk_foe_entry *hwe;
|
||||
@@ -634,6 +682,12 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
|
||||
@@ -638,6 +685,12 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
|
||||
|
||||
dma_wmb();
|
||||
|
||||
@ -209,7 +210,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
mtk_ppe_cache_clear(ppe);
|
||||
}
|
||||
|
||||
@@ -796,21 +850,6 @@ out:
|
||||
@@ -802,21 +855,6 @@ void __mtk_ppe_check_skb(struct mtk_ppe
|
||||
spin_unlock_bh(&ppe_lock);
|
||||
}
|
||||
|
||||
@ -231,7 +232,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
int mtk_ppe_prepare_reset(struct mtk_ppe *ppe)
|
||||
{
|
||||
if (!ppe)
|
||||
@@ -838,32 +877,6 @@ int mtk_ppe_prepare_reset(struct mtk_ppe
|
||||
@@ -844,32 +882,6 @@ int mtk_ppe_prepare_reset(struct mtk_ppe
|
||||
return mtk_ppe_wait_busy(ppe);
|
||||
}
|
||||
|
||||
@ -283,7 +284,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
void __mtk_ppe_check_skb(struct mtk_ppe *ppe, struct sk_buff *skb, u16 hash);
|
||||
|
||||
@@ -396,9 +399,8 @@ int mtk_foe_entry_set_queue(struct mtk_e
|
||||
@@ -397,9 +400,8 @@ int mtk_foe_entry_set_queue(struct mtk_e
|
||||
unsigned int queue);
|
||||
int mtk_foe_entry_commit(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
|
||||
void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
|
||||
@ -308,7 +309,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
seq_printf(m, "%05x %s %7s", i,
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
|
||||
@@ -501,24 +501,21 @@ static int
|
||||
@@ -505,24 +505,21 @@ static int
|
||||
mtk_flow_offload_stats(struct mtk_eth *eth, struct flow_cls_offload *f)
|
||||
{
|
||||
struct mtk_flow_entry *entry;
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_wed.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_wed.c
|
||||
@@ -421,7 +421,7 @@ free_pagelist:
|
||||
@@ -599,7 +599,7 @@ mtk_wed_free_tx_buffer(struct mtk_wed_device
|
||||
static int
|
||||
mtk_wed_rx_buffer_alloc(struct mtk_wed_device *dev)
|
||||
{
|
||||
@ -21,7 +21,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
dma_addr_t desc_phys;
|
||||
|
||||
dev->rx_buf_ring.size = dev->wlan.rx_nbuf;
|
||||
@@ -441,7 +441,7 @@ mtk_wed_rx_buffer_alloc(struct mtk_wed_d
|
||||
@@ -619,7 +619,7 @@ mtk_wed_rx_buffer_alloc(struct mtk_wed_d
|
||||
static void
|
||||
mtk_wed_free_rx_buffer(struct mtk_wed_device *dev)
|
||||
{
|
||||
@ -41,10 +41,10 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
__le32 buf0;
|
||||
__le32 token;
|
||||
} __packed __aligned(4);
|
||||
@@ -105,7 +105,7 @@ struct mtk_wed_device {
|
||||
@@ -109,7 +109,7 @@ struct mtk_wed_device {
|
||||
|
||||
struct {
|
||||
int size;
|
||||
struct page_frag_cache rx_page;
|
||||
- struct mtk_rxbm_desc *desc;
|
||||
+ struct mtk_wed_bm_desc *desc;
|
||||
dma_addr_t desc_phys;
|
||||
|
@ -26,9 +26,9 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
#define PHY_ID_AQR405 0x03a1b4b0
|
||||
+#define PHY_ID_AQR111 0x03a1b610
|
||||
+#define PHY_ID_AQR111B0 0x03a1b612
|
||||
#define PHY_ID_AQR112 0x03a1b662
|
||||
#define PHY_ID_AQR412 0x03a1b712
|
||||
#define PHY_ID_AQR113C 0x31c31c12
|
||||
|
||||
#define MDIO_PHYXS_VEND_IF_STATUS 0xe812
|
||||
@@ -670,6 +672,16 @@ static int aqr107_probe(struct phy_devic
|
||||
return aqr_hwmon_probe(phydev);
|
||||
}
|
||||
@ -91,12 +91,12 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
PHY_ID_MATCH_MODEL(PHY_ID_AQR405),
|
||||
.name = "Aquantia AQR405",
|
||||
.config_aneg = aqr_config_aneg,
|
||||
@@ -782,6 +832,8 @@ static struct mdio_device_id __maybe_unu
|
||||
@@ -820,6 +870,8 @@ static struct mdio_device_id __maybe_unu
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQCS109) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR405) },
|
||||
+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR111) },
|
||||
+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR111B0) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR112) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR412) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR113C) },
|
||||
{ }
|
||||
};
|
||||
|
@ -17,15 +17,15 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
--- a/drivers/net/phy/aquantia/aquantia_main.c
|
||||
+++ b/drivers/net/phy/aquantia/aquantia_main.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#define PHY_ID_AQR405 0x03a1b4b0
|
||||
#define PHY_ID_AQR111 0x03a1b610
|
||||
#define PHY_ID_AQR111B0 0x03a1b612
|
||||
#define PHY_ID_AQR112 0x03a1b662
|
||||
#define PHY_ID_AQR412 0x03a1b712
|
||||
+#define PHY_ID_AQR113 0x31c31c40
|
||||
#define PHY_ID_AQR113C 0x31c31c12
|
||||
|
||||
#define MDIO_PHYXS_VEND_IF_STATUS 0xe812
|
||||
@@ -802,6 +803,25 @@ static struct phy_driver aqr_driver[] =
|
||||
.read_status = aqr_read_status,
|
||||
.link_change_notify = aqr107_link_change_notify,
|
||||
},
|
||||
{
|
||||
+ PHY_ID_MATCH_MODEL(PHY_ID_AQR113),
|
||||
@ -51,9 +51,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
.name = "Aquantia AQR113C",
|
||||
.probe = aqr107_probe,
|
||||
@@ -834,6 +854,7 @@ static struct mdio_device_id __maybe_unu
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR405) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR111) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR111B0) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR112) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR412) },
|
||||
+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR113) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR113C) },
|
||||
{ }
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
--- a/drivers/net/phy/aquantia/aquantia_main.c
|
||||
+++ b/drivers/net/phy/aquantia/aquantia_main.c
|
||||
@@ -26,6 +26,7 @@
|
||||
#define PHY_ID_AQR111B0 0x03a1b612
|
||||
#define PHY_ID_AQR412 0x03a1b712
|
||||
#define PHY_ID_AQR113 0x31c31c40
|
||||
#define PHY_ID_AQR113C 0x31c31c12
|
||||
+#define PHY_ID_AQR813 0x31c31cb2
|
||||
@ -50,7 +50,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
module_phy_driver(aqr_driver);
|
||||
@@ -856,6 +876,7 @@ static struct mdio_device_id __maybe_unu
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR111B0) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR412) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR113) },
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR113C) },
|
||||
+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR813) },
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
@@ -2527,9 +2527,13 @@ static void stmmac_bump_dma_threshold(st
|
||||
@@ -2551,9 +2551,13 @@ static void stmmac_bump_dma_threshold(st
|
||||
* @priv: driver private structure
|
||||
* @budget: napi budget limiting this functions packet handling
|
||||
* @queue: TX queue index
|
||||
@ -32,32 +32,34 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
+ bool *pending_packets)
|
||||
{
|
||||
struct stmmac_tx_queue *tx_q = &priv->dma_conf.tx_queue[queue];
|
||||
unsigned int bytes_compl = 0, pkts_compl = 0;
|
||||
@@ -2692,7 +2696,7 @@ static int stmmac_tx_clean(struct stmmac
|
||||
struct stmmac_txq_stats *txq_stats = &priv->xstats.txq_stats[queue];
|
||||
@@ -2713,7 +2717,7 @@ static int stmmac_tx_clean(struct stmmac
|
||||
|
||||
/* We still have pending packets, let's call for a new scheduling */
|
||||
if (tx_q->dirty_tx != tx_q->cur_tx)
|
||||
- stmmac_tx_timer_arm(priv, queue);
|
||||
+ *pending_packets = true;
|
||||
|
||||
__netif_tx_unlock_bh(netdev_get_tx_queue(priv->dev, queue));
|
||||
|
||||
@@ -5488,12 +5492,13 @@ static int stmmac_napi_poll_tx(struct na
|
||||
struct stmmac_channel *ch =
|
||||
u64_stats_update_begin(&txq_stats->napi_syncp);
|
||||
u64_stats_add(&txq_stats->napi.tx_packets, tx_packets);
|
||||
@@ -5603,6 +5607,7 @@ static int stmmac_napi_poll_tx(struct na
|
||||
container_of(napi, struct stmmac_channel, tx_napi);
|
||||
struct stmmac_priv *priv = ch->priv_data;
|
||||
struct stmmac_txq_stats *txq_stats;
|
||||
+ bool pending_packets = false;
|
||||
u32 chan = ch->index;
|
||||
int work_done;
|
||||
|
||||
priv->xstats.napi_poll++;
|
||||
@@ -5611,7 +5616,7 @@ static int stmmac_napi_poll_tx(struct na
|
||||
u64_stats_inc(&txq_stats->napi.poll);
|
||||
u64_stats_update_end(&txq_stats->napi_syncp);
|
||||
|
||||
- work_done = stmmac_tx_clean(priv, budget, chan);
|
||||
+ work_done = stmmac_tx_clean(priv, budget, chan, &pending_packets);
|
||||
work_done = min(work_done, budget);
|
||||
|
||||
if (work_done < budget && napi_complete_done(napi, work_done)) {
|
||||
@@ -5504,6 +5509,10 @@ static int stmmac_napi_poll_tx(struct na
|
||||
@@ -5622,6 +5627,10 @@ static int stmmac_napi_poll_tx(struct na
|
||||
spin_unlock_irqrestore(&ch->lock, flags);
|
||||
}
|
||||
|
||||
@ -68,22 +70,24 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
return work_done;
|
||||
}
|
||||
|
||||
@@ -5512,12 +5521,13 @@ static int stmmac_napi_poll_rxtx(struct
|
||||
@@ -5630,6 +5639,7 @@ static int stmmac_napi_poll_rxtx(struct
|
||||
struct stmmac_channel *ch =
|
||||
container_of(napi, struct stmmac_channel, rxtx_napi);
|
||||
struct stmmac_priv *priv = ch->priv_data;
|
||||
+ bool tx_pending_packets = false;
|
||||
int rx_done, tx_done, rxtx_done;
|
||||
u32 chan = ch->index;
|
||||
|
||||
priv->xstats.napi_poll++;
|
||||
struct stmmac_rxq_stats *rxq_stats;
|
||||
struct stmmac_txq_stats *txq_stats;
|
||||
@@ -5645,7 +5655,7 @@ static int stmmac_napi_poll_rxtx(struct
|
||||
u64_stats_inc(&txq_stats->napi.poll);
|
||||
u64_stats_update_end(&txq_stats->napi_syncp);
|
||||
|
||||
- tx_done = stmmac_tx_clean(priv, budget, chan);
|
||||
+ tx_done = stmmac_tx_clean(priv, budget, chan, &tx_pending_packets);
|
||||
tx_done = min(tx_done, budget);
|
||||
|
||||
rx_done = stmmac_rx_zc(priv, budget, chan);
|
||||
@@ -5542,6 +5552,10 @@ static int stmmac_napi_poll_rxtx(struct
|
||||
@@ -5670,6 +5680,10 @@ static int stmmac_napi_poll_rxtx(struct
|
||||
spin_unlock_irqrestore(&ch->lock, flags);
|
||||
}
|
||||
|
||||
|
@ -217,10 +217,10 @@ Signed-off-by: Lee Jones <lee@kernel.org>
|
||||
+ return le16_to_cpu(reply);
|
||||
+}
|
||||
+
|
||||
static int omnia_leds_probe(struct i2c_client *client,
|
||||
const struct i2c_device_id *id)
|
||||
static int omnia_leds_probe(struct i2c_client *client)
|
||||
{
|
||||
@@ -383,6 +471,21 @@ static int omnia_leds_probe(struct i2c_c
|
||||
struct device *dev = &client->dev;
|
||||
@@ -382,6 +470,21 @@ static int omnia_leds_probe(struct i2c_c
|
||||
leds->client = client;
|
||||
i2c_set_clientdata(client, leds);
|
||||
|
||||
|
@ -20,8 +20,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
--- a/drivers/nvmem/core.c
|
||||
+++ b/drivers/nvmem/core.c
|
||||
@@ -20,29 +20,7 @@
|
||||
#include <linux/of_device.h>
|
||||
@@ -19,29 +19,7 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
-struct nvmem_device {
|
||||
|
Loading…
Reference in New Issue
Block a user