All patches automatically rebased.
Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200
Signed-off-by: John Audia <graysky@archlinux.us>
-LINUX_VERSION-5.10 = .112
-LINUX_KERNEL_HASH-5.10.112 = 8c6c1dc361ebb1ef63a7666b2069c9d7cdcec8ebb706b03780af1c8bb03b4aa5
+LINUX_VERSION-5.10 = .113
+LINUX_KERNEL_HASH-5.10.113 = 82516a02bb52456f6e8057217dde6e02b78003b1e058117557c2ae9661696dfc
#ifdef CONFIG_MACB_USE_HWSTAMP
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -3823,15 +3823,15 @@ static int macb_init(struct platform_dev
+@@ -3831,15 +3831,15 @@ static int macb_init(struct platform_dev
if (!(bp->caps & MACB_CAPS_USRIO_DISABLED)) {
val = 0;
if (phy_interface_mode_is_rgmii(bp->phy_interface))
macb_or_gem_writel(bp, USRIO, val);
}
-@@ -4349,6 +4349,13 @@ static int fu540_c000_init(struct platfo
+@@ -4357,6 +4357,13 @@ static int fu540_c000_init(struct platfo
return macb_init(pdev);
}
static const struct macb_config fu540_c000_config = {
.caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_JUMBO |
MACB_CAPS_GEM_HAS_PTP,
-@@ -4356,12 +4363,14 @@ static const struct macb_config fu540_c0
+@@ -4364,12 +4371,14 @@ static const struct macb_config fu540_c0
.clk_init = fu540_c000_clk_init,
.init = fu540_c000_init,
.jumbo_max_len = 10240,
};
static const struct macb_config sama5d3macb_config = {
-@@ -4369,6 +4378,7 @@ static const struct macb_config sama5d3m
+@@ -4377,6 +4386,7 @@ static const struct macb_config sama5d3m
| MACB_CAPS_USRIO_HAS_CLKEN | MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII,
.clk_init = macb_clk_init,
.init = macb_init,
};
static const struct macb_config pc302gem_config = {
-@@ -4376,6 +4386,7 @@ static const struct macb_config pc302gem
+@@ -4384,6 +4394,7 @@ static const struct macb_config pc302gem
.dma_burst_length = 16,
.clk_init = macb_clk_init,
.init = macb_init,
};
static const struct macb_config sama5d2_config = {
-@@ -4383,6 +4394,7 @@ static const struct macb_config sama5d2_
+@@ -4391,6 +4402,7 @@ static const struct macb_config sama5d2_
.dma_burst_length = 16,
.clk_init = macb_clk_init,
.init = macb_init,
};
static const struct macb_config sama5d3_config = {
-@@ -4392,6 +4404,7 @@ static const struct macb_config sama5d3_
+@@ -4400,6 +4412,7 @@ static const struct macb_config sama5d3_
.clk_init = macb_clk_init,
.init = macb_init,
.jumbo_max_len = 10240,
};
static const struct macb_config sama5d4_config = {
-@@ -4399,18 +4412,21 @@ static const struct macb_config sama5d4_
+@@ -4407,18 +4420,21 @@ static const struct macb_config sama5d4_
.dma_burst_length = 4,
.clk_init = macb_clk_init,
.init = macb_init,
};
static const struct macb_config zynqmp_config = {
-@@ -4421,6 +4437,7 @@ static const struct macb_config zynqmp_c
+@@ -4429,6 +4445,7 @@ static const struct macb_config zynqmp_c
.clk_init = macb_clk_init,
.init = macb_init,
.jumbo_max_len = 10240,
};
static const struct macb_config zynq_config = {
-@@ -4429,6 +4446,7 @@ static const struct macb_config zynq_con
+@@ -4437,6 +4454,7 @@ static const struct macb_config zynq_con
.dma_burst_length = 16,
.clk_init = macb_clk_init,
.init = macb_init,
};
static const struct of_device_id macb_dt_ids[] = {
-@@ -4549,6 +4567,8 @@ static int macb_probe(struct platform_de
+@@ -4557,6 +4575,8 @@ static int macb_probe(struct platform_de
bp->wol |= MACB_WOL_HAS_MAGIC_PACKET;
device_set_wakeup_capable(&pdev->dev, bp->wol & MACB_WOL_HAS_MAGIC_PACKET);
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -3598,6 +3598,20 @@ static void macb_probe_queues(void __iom
+@@ -3606,6 +3606,20 @@ static void macb_probe_queues(void __iom
*num_queues = hweight32(*queue_mask);
}
static int macb_clk_init(struct platform_device *pdev, struct clk **pclk,
struct clk **hclk, struct clk **tx_clk,
struct clk **rx_clk, struct clk **tsu_clk)
-@@ -4660,11 +4674,7 @@ err_out_free_netdev:
+@@ -4668,11 +4682,7 @@ err_out_free_netdev:
free_netdev(dev);
err_disable_clocks:
pm_runtime_disable(&pdev->dev);
pm_runtime_set_suspended(&pdev->dev);
pm_runtime_dont_use_autosuspend(&pdev->dev);
-@@ -4689,11 +4699,8 @@ static int macb_remove(struct platform_d
+@@ -4697,11 +4707,8 @@ static int macb_remove(struct platform_d
pm_runtime_disable(&pdev->dev);
pm_runtime_dont_use_autosuspend(&pdev->dev);
if (!pm_runtime_suspended(&pdev->dev)) {
pm_runtime_set_suspended(&pdev->dev);
}
phylink_destroy(bp->phylink);
-@@ -4872,13 +4879,10 @@ static int __maybe_unused macb_runtime_s
+@@ -4880,13 +4887,10 @@ static int __maybe_unused macb_runtime_s
struct net_device *netdev = dev_get_drvdata(dev);
struct macb *bp = netdev_priv(netdev);
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -4330,8 +4330,10 @@ static int fu540_c000_clk_init(struct pl
+@@ -4338,8 +4338,10 @@ static int fu540_c000_clk_init(struct pl
return err;
mgmt = devm_kzalloc(&pdev->dev, sizeof(*mgmt), GFP_KERNEL);
init.name = "sifive-gemgxl-mgmt";
init.ops = &fu540_c000_ops;
-@@ -4342,16 +4344,26 @@ static int fu540_c000_clk_init(struct pl
+@@ -4350,16 +4352,26 @@ static int fu540_c000_clk_init(struct pl
mgmt->hw.init = &init;
*tx_clk = devm_clk_register(&pdev->dev, &mgmt->hw);
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -4382,6 +4382,14 @@ static const struct macb_usrio_config ma
+@@ -4390,6 +4390,14 @@ static const struct macb_usrio_config ma
.refclk = MACB_BIT(CLKEN),
};
static const struct macb_config fu540_c000_config = {
.caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_JUMBO |
MACB_CAPS_GEM_HAS_PTP,
-@@ -4475,6 +4483,14 @@ static const struct macb_config zynq_con
+@@ -4483,6 +4491,14 @@ static const struct macb_config zynq_con
.usrio = &macb_default_usrio,
};
static const struct of_device_id macb_dt_ids[] = {
{ .compatible = "cdns,at32ap7000-macb" },
{ .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config },
-@@ -4492,6 +4508,7 @@ static const struct of_device_id macb_dt
+@@ -4500,6 +4516,7 @@ static const struct of_device_id macb_dt
{ .compatible = "cdns,zynqmp-gem", .data = &zynqmp_config},
{ .compatible = "cdns,zynq-gem", .data = &zynq_config },
{ .compatible = "sifive,fu540-c000-gem", .data = &fu540_c000_config },
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -4491,6 +4491,14 @@ static const struct macb_config sama7g5_
+@@ -4499,6 +4499,14 @@ static const struct macb_config sama7g5_
.usrio = &sama7g5_usrio,
};
static const struct of_device_id macb_dt_ids[] = {
{ .compatible = "cdns,at32ap7000-macb" },
{ .compatible = "cdns,at91sam9260-macb", .data = &at91sam9260_config },
-@@ -4509,6 +4517,7 @@ static const struct of_device_id macb_dt
+@@ -4517,6 +4525,7 @@ static const struct of_device_id macb_dt
{ .compatible = "cdns,zynq-gem", .data = &zynq_config },
{ .compatible = "sifive,fu540-c000-gem", .data = &fu540_c000_config },
{ .compatible = "microchip,sama7g5-gem", .data = &sama7g5_gem_config },
while (!(at_xdmac_chan_read(atchan, AT_XDMAC_CIS) & AT_XDMAC_CIS_FIS))
cpu_relax();
}
-@@ -1760,7 +1810,7 @@ static int at_xdmac_device_pause(struct
+@@ -1762,7 +1812,7 @@ static int at_xdmac_device_pause(struct
return 0;
spin_lock_irqsave(&atchan->lock, flags);
while (at_xdmac_chan_read(atchan, AT_XDMAC_CC)
& (AT_XDMAC_CC_WRIP | AT_XDMAC_CC_RDIP))
cpu_relax();
-@@ -1783,7 +1833,7 @@ static int at_xdmac_device_resume(struct
+@@ -1785,7 +1835,7 @@ static int at_xdmac_device_resume(struct
return 0;
}
clear_bit(AT_XDMAC_CHAN_IS_PAUSED, &atchan->status);
spin_unlock_irqrestore(&atchan->lock, flags);
-@@ -1985,6 +2035,10 @@ static int at_xdmac_probe(struct platfor
+@@ -1987,6 +2037,10 @@ static int at_xdmac_probe(struct platfor
atxdmac->regs = base;
atxdmac->irq = irq;
atxdmac->clk = devm_clk_get(&pdev->dev, "dma_clk");
if (IS_ERR(atxdmac->clk)) {
dev_err(&pdev->dev, "can't get dma_clk\n");
-@@ -2127,6 +2181,10 @@ static const struct dev_pm_ops atmel_xdm
+@@ -2129,6 +2183,10 @@ static const struct dev_pm_ops atmel_xdm
static const struct of_device_id atmel_xdmac_dt_ids[] = {
{
.compatible = "atmel,sama5d4-dma",
};
static inline void __iomem *at_xdmac_chan_reg_base(struct at_xdmac *atxdmac, unsigned int chan_nb)
-@@ -1996,6 +2017,30 @@ static int atmel_xdmac_resume(struct dev
+@@ -1998,6 +2019,30 @@ static int atmel_xdmac_resume(struct dev
}
#endif /* CONFIG_PM_SLEEP */
static int at_xdmac_probe(struct platform_device *pdev)
{
struct at_xdmac *atxdmac;
-@@ -2140,6 +2185,8 @@ static int at_xdmac_probe(struct platfor
+@@ -2142,6 +2187,8 @@ static int at_xdmac_probe(struct platfor
dev_info(&pdev->dev, "%d channels, mapped at 0x%p\n",
nr_channels, atxdmac->regs);
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -3860,6 +3860,13 @@ static int macb_init(struct platform_dev
+@@ -3868,6 +3868,13 @@ static int macb_init(struct platform_dev
return 0;
}
#if defined(CONFIG_OF)
/* 1518 rounded up */
#define AT91ETHER_MAX_RBUFF_SZ 0x600
-@@ -4375,13 +4382,6 @@ static int fu540_c000_init(struct platfo
+@@ -4383,13 +4390,6 @@ static int fu540_c000_init(struct platfo
return macb_init(pdev);
}
static const struct macb_usrio_config sama7g5_usrio = {
.mii = 0,
.rmii = 1,
-@@ -4530,6 +4530,7 @@ static const struct macb_config default_
+@@ -4538,6 +4538,7 @@ static const struct macb_config default_
.dma_burst_length = 16,
.clk_init = macb_clk_init,
.init = macb_init,
*sum = csum_fold(csum_partial(diff, sizeof(diff),
--- a/include/linux/etherdevice.h
+++ b/include/linux/etherdevice.h
-@@ -500,7 +500,7 @@ static inline bool is_etherdev_addr(cons
+@@ -499,7 +499,7 @@ static inline bool is_etherdev_addr(cons
* @b: Pointer to Ethernet header
*
* Compare two Ethernet headers, returns 0 if equal.
* aligned OR the platform can handle unaligned access. This is the
* case for all packets coming into netif_receive_skb or similar
* entry points.
-@@ -523,11 +523,12 @@ static inline unsigned long compare_ethe
+@@ -522,11 +522,12 @@ static inline unsigned long compare_ethe
fold |= *(unsigned long *)(a + 6) ^ *(unsigned long *)(b + 6);
return fold;
#else
--- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
+++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
-@@ -299,6 +299,7 @@ static int rpi_touchscreen_enable(struct
+@@ -299,6 +299,7 @@ static int rpi_touchscreen_prepare(struc
int i;
rpi_touchscreen_i2c_write(ts, REG_POWERON, 1);
struct vc4_dsi_encoder {
@@ -837,7 +848,7 @@ static void vc4_dsi_encoder_enable(struc
- ret = pm_runtime_get_sync(dev);
+ ret = pm_runtime_resume_and_get(dev);
if (ret) {
- DRM_ERROR("Failed to runtime PM enable on DSI%d\n", dsi->port);
+ DRM_ERROR("Failed to runtime PM enable on DSI%d\n", dsi->variant->port);
if (bgmac->irq < 0)
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
-@@ -4479,7 +4479,6 @@ static int macb_probe(struct platform_de
+@@ -4487,7 +4487,6 @@ static int macb_probe(struct platform_de
struct net_device *dev;
struct resource *regs;
void __iomem *mem;
struct macb *bp;
int err, val;
-@@ -4592,15 +4591,11 @@ static int macb_probe(struct platform_de
+@@ -4600,15 +4599,11 @@ static int macb_probe(struct platform_de
if (bp->caps & MACB_CAPS_NEEDS_RSTONUBR)
bp->rx_intr_mask |= MACB_BIT(RXUBR);
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -3325,6 +3327,7 @@ static int packet_create(struct net *net
+@@ -3330,6 +3332,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -3969,6 +3972,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3974,6 +3977,16 @@ packet_setsockopt(struct socket *sock, i
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
return 0;
}
default:
return -ENOPROTOOPT;
}
-@@ -4025,6 +4038,13 @@ static int packet_getsockopt(struct sock
+@@ -4030,6 +4043,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;
case RTN_THROW:
case RTN_UNREACHABLE:
default:
-@@ -4448,6 +4467,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -4449,6 +4468,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
/*
* Allocate a dst for local (unicast / anycast) address.
*/
-@@ -4928,7 +4958,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -4929,7 +4959,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT ||
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -6127,6 +6158,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6128,6 +6159,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
-@@ -6138,6 +6171,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6139,6 +6172,7 @@ static int ip6_route_dev_notify(struct n
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
#endif
}
-@@ -6329,6 +6363,8 @@ static int __net_init ip6_route_net_init
+@@ -6330,6 +6364,8 @@ static int __net_init ip6_route_net_init
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.fib6_has_custom_rules = false;
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
sizeof(*net->ipv6.ip6_prohibit_entry),
GFP_KERNEL);
-@@ -6339,11 +6375,21 @@ static int __net_init ip6_route_net_init
+@@ -6340,11 +6376,21 @@ static int __net_init ip6_route_net_init
ip6_template_metrics, true);
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true);
-@@ -6370,6 +6416,8 @@ out:
+@@ -6371,6 +6417,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -6389,6 +6437,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6390,6 +6438,7 @@ static void __net_exit ip6_route_net_exi
kfree(net->ipv6.ip6_null_entry);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry);
kfree(net->ipv6.ip6_blk_hole_entry);
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
-@@ -6466,6 +6515,9 @@ void __init ip6_route_init_special_entri
+@@ -6467,6 +6516,9 @@ void __init ip6_route_init_special_entri
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);