All patches automatically rebased.
Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B
Signed-off-by: John Audia <therealgraysky@proton.me>
-LINUX_VERSION-5.10 = .113
-LINUX_KERNEL_HASH-5.10.113 = 82516a02bb52456f6e8057217dde6e02b78003b1e058117557c2ae9661696dfc
+LINUX_VERSION-5.10 = .114
+LINUX_KERNEL_HASH-5.10.114 = 07d09fb57ce355f4659097e6b538853c00cdded6d3e010b6de9a3244d9b30526
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -279,6 +279,7 @@ static void xhci_pci_quirks(struct devic
+@@ -281,6 +281,7 @@ static void xhci_pci_quirks(struct devic
pdev->device == 0x0015) {
xhci->quirks |= XHCI_RESET_ON_RESUME;
xhci->quirks |= XHCI_ZERO_64B_REGS;
list_for_each_entry(p, head, list) {
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
-@@ -611,48 +611,53 @@ static void tcp_options_write(__be32 *pt
+@@ -612,48 +612,53 @@ static void tcp_options_write(__be32 *pt
u16 options = opts->options; /* mungable copy */
if (unlikely(OPTION_MD5 & options)) {
}
if (unlikely(opts->num_sack_blocks)) {
-@@ -660,16 +665,17 @@ static void tcp_options_write(__be32 *pt
+@@ -661,16 +666,17 @@ static void tcp_options_write(__be32 *pt
tp->duplicate_sack : tp->selective_acks;
int this_sack;
}
tp->rx_opt.dsack = 0;
-@@ -682,13 +688,14 @@ static void tcp_options_write(__be32 *pt
+@@ -683,13 +689,14 @@ static void tcp_options_write(__be32 *pt
if (foc->exp) {
len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len;
EXPORT_SYMBOL(xfrm_parse_spi);
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
-@@ -4083,14 +4083,16 @@ static bool tcp_parse_aligned_timestamp(
+@@ -4084,14 +4084,16 @@ static bool tcp_parse_aligned_timestamp(
{
const __be32 *ptr = (const __be32 *)(th + 1);
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -2597,7 +2597,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2604,7 +2604,7 @@ static void bcmgenet_init_tx_ring(struct
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_PROD_INDEX);
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
/* Disable rate control for now */
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
TDMA_FLOW_PERIOD);
-@@ -4062,9 +4062,12 @@ static int bcmgenet_probe(struct platfor
+@@ -4069,9 +4069,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/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
-@@ -1472,6 +1472,103 @@ command_cleanup:
+@@ -1483,6 +1483,103 @@ command_cleanup:
}
/*
* non-error returns are a promise to giveback() the urb later
* we drop ownership so next owner (or urb unlink) can get it
*/
-@@ -5378,6 +5475,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5389,6 +5486,7 @@ static const struct hc_driver xhci_hc_dr
.endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth,
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
{
-@@ -2428,6 +2431,11 @@ static void reset_umac(struct bcmgenet_p
+@@ -2435,6 +2438,11 @@ static void reset_umac(struct bcmgenet_p
bcmgenet_rbuf_ctrl_set(priv, 0);
udelay(10);
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -3246,7 +3246,7 @@ static void bcmgenet_get_hw_addr(struct
+@@ -3253,7 +3253,7 @@ static void bcmgenet_get_hw_addr(struct
}
/* Returns a reusable dma control register value */
{
unsigned int i;
u32 reg;
-@@ -3271,6 +3271,14 @@ static u32 bcmgenet_dma_disable(struct b
+@@ -3278,6 +3278,14 @@ static u32 bcmgenet_dma_disable(struct b
udelay(10);
bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH);
return dma_ctrl;
}
-@@ -3334,8 +3342,8 @@ static int bcmgenet_open(struct net_devi
+@@ -3341,8 +3349,8 @@ static int bcmgenet_open(struct net_devi
bcmgenet_set_hw_addr(priv, dev->dev_addr);
/* Reinitialize TDMA and RDMA and SW housekeeping */
ret = bcmgenet_init_dma(priv);
-@@ -4191,7 +4199,7 @@ static int bcmgenet_resume(struct device
+@@ -4198,7 +4206,7 @@ static int bcmgenet_resume(struct device
bcmgenet_hfb_create_rxnfc_filter(priv, rule);
/* Disable RX/TX DMA and flush TX queues */
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -291,6 +291,7 @@ static void xhci_pci_quirks(struct devic
+@@ -293,6 +293,7 @@ static void xhci_pci_quirks(struct devic
if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
xhci->quirks |= XHCI_LPM_SUPPORT;
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
-@@ -4268,9 +4268,9 @@ void xhci_queue_new_dequeue_state(struct
+@@ -4270,9 +4270,9 @@ void xhci_queue_new_dequeue_state(struct
}
ep = &xhci->devs[slot_id]->eps[ep_index];
if ((ep->ep_state & SET_DEQ_PENDING)) {
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
-@@ -395,7 +395,7 @@ static int socfpga_dwmac_probe(struct pl
+@@ -397,7 +397,7 @@ static int socfpga_dwmac_probe(struct pl
if (ret)
return ret;
#define QUECTEL_VENDOR_ID 0x2c7c
/* These Quectel products use Quectel's vendor ID */
-@@ -1127,6 +1129,11 @@ static const struct usb_device_id option
+@@ -1129,6 +1131,11 @@ static const struct usb_device_id option
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
.driver_info = RSVD(4) },
obj-$(CONFIG_MTD_BLOCK) += mtdblock.o
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
-@@ -608,6 +608,24 @@ static inline void mtd_align_erase_req(s
+@@ -606,6 +606,24 @@ static inline void mtd_align_erase_req(s
req->len += mtd->erasesize - mod;
}
static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd)
{
if (mtd->writesize_shift)
-@@ -680,6 +698,13 @@ extern void __put_mtd_device(struct mtd_
+@@ -678,6 +696,13 @@ extern void __put_mtd_device(struct mtd_
extern struct mtd_info *get_mtd_device_nm(const char *name);
extern void put_mtd_device(struct mtd_info *mtd);
mutex_lock(&mtd_table_mutex);
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
-@@ -698,6 +698,8 @@ extern struct mtd_info *get_mtd_device(s
+@@ -696,6 +696,8 @@ extern struct mtd_info *get_mtd_device(s
extern int __get_mtd_device(struct mtd_info *mtd);
extern void __put_mtd_device(struct mtd_info *mtd);
extern struct mtd_info *get_mtd_device_nm(const char *name);
}
static void gswip_port_set_link(struct gswip_priv *priv, int port, bool link)
-@@ -1639,6 +1687,9 @@ static void gswip_phylink_mac_config(str
+@@ -1636,6 +1684,9 @@ static void gswip_phylink_mac_config(str
case PHY_INTERFACE_MODE_RGMII_TXID:
miicfg |= GSWIP_MII_CFG_MODE_RGMII;
break;
default:
dev_err(ds->dev,
"Unsupported interface: %d\n", state->interface);
-@@ -1765,7 +1816,7 @@ static int gswip_get_sset_count(struct d
+@@ -1762,7 +1813,7 @@ static int gswip_get_sset_count(struct d
return ARRAY_SIZE(gswip_rmon_cnt);
}
.get_tag_protocol = gswip_get_tag_protocol,
.setup = gswip_setup,
.port_enable = gswip_port_enable,
-@@ -1781,7 +1832,31 @@ static const struct dsa_switch_ops gswip
+@@ -1778,7 +1829,31 @@ static const struct dsa_switch_ops gswip
.port_fdb_add = gswip_port_fdb_add,
.port_fdb_del = gswip_port_fdb_del,
.port_fdb_dump = gswip_port_fdb_dump,
.phylink_mac_config = gswip_phylink_mac_config,
.phylink_mac_link_down = gswip_phylink_mac_link_down,
.phylink_mac_link_up = gswip_phylink_mac_link_up,
-@@ -2043,7 +2118,7 @@ static int gswip_probe(struct platform_d
+@@ -2040,7 +2115,7 @@ static int gswip_probe(struct platform_d
priv->ds->dev = dev;
priv->ds->num_ports = priv->hw_info->max_ports;
priv->ds->priv = priv;
priv->dev = dev;
version = gswip_switch_r(priv, GSWIP_VERSION);
-@@ -2127,10 +2202,19 @@ static int gswip_remove(struct platform_
+@@ -2124,10 +2199,19 @@ static int gswip_remove(struct platform_
static const struct gswip_hw_info gswip_xrx200 = {
.max_ports = 7,
.cpu_port = 6,
static void gswip_xrx200_phylink_validate(struct dsa_switch *ds, int port,
unsigned long *supported,
struct phylink_link_state *state)
-@@ -1832,6 +1873,8 @@ static const struct dsa_switch_ops gswip
+@@ -1829,6 +1870,8 @@ static const struct dsa_switch_ops gswip
.port_fdb_add = gswip_port_fdb_add,
.port_fdb_del = gswip_port_fdb_del,
.port_fdb_dump = gswip_port_fdb_dump,
.phylink_validate = gswip_xrx200_phylink_validate,
.phylink_mac_config = gswip_phylink_mac_config,
.phylink_mac_link_down = gswip_phylink_mac_link_down,
-@@ -1856,6 +1899,8 @@ static const struct dsa_switch_ops gswip
+@@ -1853,6 +1896,8 @@ static const struct dsa_switch_ops gswip
.port_fdb_add = gswip_port_fdb_add,
.port_fdb_del = gswip_port_fdb_del,
.port_fdb_dump = gswip_port_fdb_dump,
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -1959,6 +1959,13 @@ static void sfp_sm_module(struct sfp *sf
+@@ -1966,6 +1966,13 @@ static void sfp_sm_module(struct sfp *sf
return;
}
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -412,32 +412,72 @@ static int sfp_i2c_write(struct sfp *sfp
+@@ -413,32 +413,72 @@ static int sfp_i2c_write(struct sfp *sfp
return ret == ARRAY_SIZE(msgs) ? len : 0;
}