All patches automatically rebased.
Build system: x86_64
Build-tested: ipq806x/R7800
Run-tested: ipq806x/R7800
No dmesg regressions, everything functional
Signed-off-by: John Audia <graysky@archlinux.us>
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-5.4 = .138
+LINUX_VERSION-5.4 = .139
LINUX_VERSION-5.10 = .58
-LINUX_KERNEL_HASH-5.4.138 = a43957727a54e5e1035d7372a1e64203ae8e3060c52a3816916157967f9a8657
+LINUX_KERNEL_HASH-5.4.139 = 0471d0ccb7953cdae7d235192588ac5d72344851969962676d1703e69084a37f
LINUX_KERNEL_HASH-5.10.58 = 732cc56be539e65894621c3b6b2640597d8cf5da17319b82da6e7b4f7828f210
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
u32 *data, int in_pm)
{
-@@ -1964,7 +1968,8 @@ static int smsc95xx_rx_fixup(struct usbn
+@@ -1965,7 +1969,8 @@ static int smsc95xx_rx_fixup(struct usbn
if (dev->net->features & NETIF_F_RXCSUM)
smsc95xx_rx_csum_offload(skb);
skb_trim(skb, skb->len - 4); /* remove fcs */
return 1;
}
-@@ -1982,7 +1987,8 @@ static int smsc95xx_rx_fixup(struct usbn
+@@ -1983,7 +1988,8 @@ static int smsc95xx_rx_fixup(struct usbn
if (dev->net->features & NETIF_F_RXCSUM)
smsc95xx_rx_csum_offload(ax_skb);
skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
u32 *data, int in_pm)
{
-@@ -1095,13 +1099,13 @@ static int smsc95xx_reset(struct usbnet
+@@ -1096,13 +1100,13 @@ static int smsc95xx_reset(struct usbnet
if (!turbo_mode) {
burst_cap = 0;
+
static void smsc95xx_init_mac_address(struct usbnet *dev)
{
- const u8 *mac_addr;
-@@ -928,6 +980,10 @@ static void smsc95xx_init_mac_address(st
+ u8 mac_addr[ETH_ALEN];
+@@ -929,6 +981,10 @@ static void smsc95xx_init_mac_address(st
}
}
/* Disable rate control for now */
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
TDMA_FLOW_PERIOD);
-@@ -3574,9 +3574,12 @@ static int bcmgenet_probe(struct platfor
+@@ -3575,9 +3575,12 @@ static int bcmgenet_probe(struct platfor
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
/* Set default coalescing parameters */
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -3475,7 +3475,7 @@ static int bcmgenet_probe(struct platfor
+@@ -3476,7 +3476,7 @@ static int bcmgenet_probe(struct platfor
priv = netdev_priv(dev);
priv->irq0 = platform_get_irq(pdev, 0);
priv->irq1 = platform_get_irq(pdev, 1);
/* Reinitialize TDMA and RDMA and SW housekeeping */
ret = bcmgenet_init_dma(priv);
-@@ -3665,7 +3673,7 @@ static int bcmgenet_resume(struct device
+@@ -3666,7 +3674,7 @@ static int bcmgenet_resume(struct device
bcmgenet_power_up(priv, GENET_POWER_WOL_MAGIC);
/* Disable RX/TX DMA and flush TX queues */
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/string.h>
-@@ -647,7 +649,9 @@ static int bcm4908_enet_probe(struct pla
+@@ -647,7 +648,9 @@ static int bcm4908_enet_probe(struct pla
return err;
SET_NETDEV_DEV(netdev, &pdev->dev);
static int bcm4908_enet_change_mtu(struct net_device *netdev, int new_mtu)
{
struct bcm4908_enet *enet = netdev_priv(netdev);
-@@ -642,6 +706,8 @@ static int bcm4908_enet_probe(struct pla
+@@ -641,6 +705,8 @@ static int bcm4908_enet_probe(struct pla
if (netdev->irq < 0)
return netdev->irq;
dma_set_coherent_mask(dev, DMA_BIT_MASK(32));
err = bcm4908_enet_dma_alloc(enet);
-@@ -658,7 +724,8 @@ static int bcm4908_enet_probe(struct pla
+@@ -655,7 +721,8 @@ static int bcm4908_enet_probe(struct pla
netdev->min_mtu = ETH_ZLEN;
netdev->mtu = ETH_DATA_LEN;
netdev->max_mtu = ENET_MTU_MAX;
err = register_netdev(netdev);
if (err) {
-@@ -676,7 +743,8 @@ static int bcm4908_enet_remove(struct pl
+@@ -673,7 +740,8 @@ static int bcm4908_enet_remove(struct pl
struct bcm4908_enet *enet = platform_get_drvdata(pdev);
unregister_netdev(enet->netdev);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
-@@ -658,31 +867,60 @@ ltq_etop_probe(struct platform_device *p
+@@ -658,31 +866,60 @@ ltq_etop_probe(struct platform_device *p
goto err_out;
}
err = register_netdev(dev);
if (err)
-@@ -711,31 +951,22 @@ ltq_etop_remove(struct platform_device *
+@@ -711,31 +948,22 @@ ltq_etop_remove(struct platform_device *
return 0;
}
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) {
ret = device_reset(eth->dev);
if (ret) {
-@@ -3106,6 +3114,16 @@ static int mtk_probe(struct platform_dev
+@@ -3101,6 +3109,16 @@ static int mtk_probe(struct platform_dev
}
}
MVNETA_RX_BUF_SIZE(pp->pkt_size));
mvneta_rxq_bm_disable(pp, rxq);
mvneta_rxq_fill(pp, rxq, rxq->size);
-@@ -4715,7 +4720,7 @@ static int mvneta_probe(struct platform_
+@@ -4713,7 +4718,7 @@ static int mvneta_probe(struct platform_
SET_NETDEV_DEV(dev, &pdev->dev);
pp->id = global_port_id++;
};
static const struct ethtool_ops mvneta_eth_tool_ops = {
-@@ -4720,7 +4850,7 @@ static int mvneta_probe(struct platform_
+@@ -4718,7 +4848,7 @@ static int mvneta_probe(struct platform_
SET_NETDEV_DEV(dev, &pdev->dev);
pp->id = global_port_id++;
mvreg_write(pp, MVNETA_ACC_MODE, MVNETA_ACC_MODE_EXT1);
netdev_info(pp->dev, "fail to update MTU, fall back to software BM\n");
}
-@@ -4991,7 +4991,6 @@ static int mvneta_probe(struct platform_
+@@ -4989,7 +4989,6 @@ static int mvneta_probe(struct platform_
SET_NETDEV_DEV(dev, &pdev->dev);
pp->id = global_port_id++;
/* Obtain access to BM resources if enabled and already initialized */
bm_node = of_parse_phandle(dn, "buffer-manager", 0);
-@@ -5016,6 +5015,10 @@ static int mvneta_probe(struct platform_
+@@ -5014,6 +5013,10 @@ static int mvneta_probe(struct platform_
}
of_node_put(bm_node);
err = mvneta_init(&pdev->dev, pp);
if (err < 0)
goto err_netdev;
-@@ -5173,6 +5176,7 @@ static int mvneta_resume(struct device *
+@@ -5171,6 +5174,7 @@ static int mvneta_resume(struct device *
err = mvneta_bm_port_init(pdev, pp);
if (err < 0) {
dev_info(&pdev->dev, "use SW buffer management\n");
--- a/drivers/staging/octeon/ethernet.c
+++ b/drivers/staging/octeon/ethernet.c
-@@ -683,6 +683,7 @@ static int cvm_oct_probe(struct platform
+@@ -679,6 +679,7 @@ static int cvm_oct_probe(struct platform
int interface;
int fau = FAU_NUM_PACKET_BUFFERS_TO_FREE;
int qos;
struct device_node *pip;
int mtu_overhead = ETH_HLEN + ETH_FCS_LEN;
-@@ -806,13 +807,19 @@ static int cvm_oct_probe(struct platform
+@@ -802,13 +803,19 @@ static int cvm_oct_probe(struct platform
}
num_interfaces = cvmx_helper_get_number_of_interfaces();
Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
--- a/drivers/staging/octeon/ethernet.c
+++ b/drivers/staging/octeon/ethernet.c
-@@ -408,7 +408,11 @@ int cvm_oct_common_init(struct net_devic
+@@ -407,8 +407,12 @@ static int cvm_oct_common_set_mac_addres
int cvm_oct_common_init(struct net_device *dev)
{
struct octeon_ethernet *priv = netdev_priv(dev);
+ const u8 *label = NULL;
- int ret;
-+
+ int ret;
+
+ if (priv->of_node)
+ label = of_get_property(priv->of_node, "label", NULL);
-
++
ret = of_get_mac_address(priv->of_node, dev->dev_addr);
if (ret)
-@@ -445,6 +448,9 @@ int cvm_oct_common_init(struct net_devic
+ eth_hw_addr_random(dev);
+@@ -441,6 +445,9 @@ int cvm_oct_common_init(struct net_devic
if (dev->netdev_ops->ndo_stop)
dev->netdev_ops->ndo_stop(dev);
Signed-off-by: Roman Kuzmitskii <damex.pp@icloud.com>
--- a/drivers/staging/octeon/ethernet.c
+++ b/drivers/staging/octeon/ethernet.c
-@@ -885,8 +885,10 @@ static int cvm_oct_probe(struct platform
+@@ -882,8 +882,10 @@ static int cvm_oct_probe(struct platform
case CVMX_HELPER_INTERFACE_MODE_SGMII:
priv->phy_mode = PHY_INTERFACE_MODE_SGMII;
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -2943,6 +2943,7 @@ static const struct net_device_ops mtk_n
+@@ -2940,6 +2940,7 @@ static const struct net_device_ops mtk_n
static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
{
const __be32 *_id = of_get_property(np, "reg", NULL);
struct phylink *phylink;
int phy_mode, id, err;
-@@ -3037,6 +3038,9 @@ static int mtk_add_mac(struct mtk_eth *e
-
- of_platform_device_create(np, NULL, NULL);
+@@ -3032,6 +3033,9 @@ static int mtk_add_mac(struct mtk_eth *e
+
+ eth->netdev[id]->max_mtu = MTK_MAX_RX_LENGTH - MTK_RX_ETH_HLEN;
+ if (name)
+ strlcpy(eth->netdev[id]->name, name, IFNAMSIZ);
break;
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -380,6 +380,7 @@ struct phy_device {
+@@ -381,6 +381,7 @@ struct phy_device {
unsigned suspended_by_mdio_bus:1;
unsigned sysfs_links:1;
unsigned loopback_enabled:1;
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -644,6 +644,10 @@ struct phy_driver {
+@@ -645,6 +645,10 @@ struct phy_driver {
struct ethtool_tunable *tuna,
const void *data);
int (*set_loopback)(struct phy_device *dev, bool enable);
#include <linux/crc32.h>
#include <linux/if_vlan.h>
#include <linux/uaccess.h>
-@@ -4335,6 +4336,22 @@ static void rtl_tally_reset(struct r8152
+@@ -4336,6 +4337,22 @@ static void rtl_tally_reset(struct r8152
ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data);
}
static void r8152b_init(struct r8152 *tp)
{
u32 ocp_data;
-@@ -4376,6 +4393,8 @@ static void r8152b_init(struct r8152 *tp
+@@ -4377,6 +4394,8 @@ static void r8152b_init(struct r8152 *tp
ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL);
ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
}
static void r8153_init(struct r8152 *tp)
-@@ -4510,6 +4529,8 @@ static void r8153_init(struct r8152 *tp)
+@@ -4511,6 +4530,8 @@ static void r8153_init(struct r8152 *tp)
tp->coalesce = COALESCE_SLOW;
break;
}
}
static void r8153b_init(struct r8152 *tp)
-@@ -4586,6 +4607,8 @@ static void r8153b_init(struct r8152 *tp
+@@ -4587,6 +4608,8 @@ static void r8153b_init(struct r8152 *tp
rtl_tally_reset(tp);
tp->coalesce = 15000; /* 15 us */