mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
kernel: bump 5.10 to 5.10.115 (#9405)
* kernel: bump 5.10 to 5.10.114 All patches automatically rebased. Build system: x86_64 Build-tested: bcm2711/RPi4B Run-tested: bcm2711/RPi4B Signed-off-by: John Audia <therealgraysky@proton.me> * kernel: bump 5.10 to 5.10.115 Removed upstreamed: backport-5.10/850-v5.17-0004-PCI-aardvark-Clear-all-MSIs-at-setup.patch pending-5.10/850-0002-PCI-aardvark-Fix-reading-MSI-interrupt-number.patch All other patches automatically rebased. Build system: x86_64 Build-tested: bcm2711/RPi4B Signed-off-by: John Audia <therealgraysky@proton.me> Co-authored-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
parent
46e5c437a8
commit
bbabd70e44
@ -1,2 +1,2 @@
|
|||||||
LINUX_VERSION-5.10 = .113
|
LINUX_VERSION-5.10 = .115
|
||||||
LINUX_KERNEL_HASH-5.10.113 = 82516a02bb52456f6e8057217dde6e02b78003b1e058117557c2ae9661696dfc
|
LINUX_KERNEL_HASH-5.10.115 = f5e417b32f89318b6d0a230109a592ffd68997817463dc4692fa49ec7fe42f71
|
||||||
|
@ -13,7 +13,7 @@ produce a noisy warning.
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/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) {
|
pdev->device == 0x0015) {
|
||||||
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
||||||
xhci->quirks |= XHCI_ZERO_64B_REGS;
|
xhci->quirks |= XHCI_ZERO_64B_REGS;
|
||||||
|
@ -305,7 +305,7 @@
|
|||||||
list_for_each_entry(p, head, list) {
|
list_for_each_entry(p, head, list) {
|
||||||
--- a/net/ipv4/tcp_output.c
|
--- a/net/ipv4/tcp_output.c
|
||||||
+++ b/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 */
|
u16 options = opts->options; /* mungable copy */
|
||||||
|
|
||||||
if (unlikely(OPTION_MD5 & options)) {
|
if (unlikely(OPTION_MD5 & options)) {
|
||||||
@ -382,7 +382,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(opts->num_sack_blocks)) {
|
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;
|
tp->duplicate_sack : tp->selective_acks;
|
||||||
int this_sack;
|
int this_sack;
|
||||||
|
|
||||||
@ -406,7 +406,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
tp->rx_opt.dsack = 0;
|
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) {
|
if (foc->exp) {
|
||||||
len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len;
|
len = TCPOLEN_EXP_FASTOPEN_BASE + foc->len;
|
||||||
@ -706,7 +706,7 @@
|
|||||||
EXPORT_SYMBOL(xfrm_parse_spi);
|
EXPORT_SYMBOL(xfrm_parse_spi);
|
||||||
--- a/net/ipv4/tcp_input.c
|
--- a/net/ipv4/tcp_input.c
|
||||||
+++ b/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);
|
const __be32 *ptr = (const __be32 *)(th + 1);
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
||||||
+++ b/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_PROD_INDEX);
|
||||||
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
|
bcmgenet_tdma_ring_writel(priv, index, 0, TDMA_CONS_INDEX);
|
||||||
@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
/* Disable rate control for now */
|
/* Disable rate control for now */
|
||||||
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
|
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
|
||||||
TDMA_FLOW_PERIOD);
|
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);
|
netif_set_real_num_rx_queues(priv->dev, priv->hw_params->rx_queues + 1);
|
||||||
|
|
||||||
/* Set default coalescing parameters */
|
/* Set default coalescing parameters */
|
||||||
|
@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci.c
|
--- a/drivers/usb/host/xhci.c
|
||||||
+++ b/drivers/usb/host/xhci.c
|
+++ b/drivers/usb/host/xhci.c
|
||||||
@@ -1474,6 +1474,103 @@ command_cleanup:
|
@@ -1483,6 +1483,103 @@ command_cleanup:
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
* non-error returns are a promise to giveback() the urb later
|
* non-error returns are a promise to giveback() the urb later
|
||||||
* we drop ownership so next owner (or urb unlink) can get it
|
* we drop ownership so next owner (or urb unlink) can get it
|
||||||
*/
|
*/
|
||||||
@@ -5380,6 +5477,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,
|
.endpoint_reset = xhci_endpoint_reset,
|
||||||
.check_bandwidth = xhci_check_bandwidth,
|
.check_bandwidth = xhci_check_bandwidth,
|
||||||
.reset_bandwidth = xhci_reset_bandwidth,
|
.reset_bandwidth = xhci_reset_bandwidth,
|
||||||
|
@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
|
|
||||||
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
|
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);
|
bcmgenet_rbuf_ctrl_set(priv, 0);
|
||||||
udelay(10);
|
udelay(10);
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
||||||
+++ b/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 */
|
/* Returns a reusable dma control register value */
|
||||||
@ -33,7 +33,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
u32 reg;
|
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);
|
udelay(10);
|
||||||
bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH);
|
bcmgenet_umac_writel(priv, 0, UMAC_TX_FLUSH);
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
return dma_ctrl;
|
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);
|
bcmgenet_set_hw_addr(priv, dev->dev_addr);
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
|
|
||||||
/* Reinitialize TDMA and RDMA and SW housekeeping */
|
/* Reinitialize TDMA and RDMA and SW housekeeping */
|
||||||
ret = bcmgenet_init_dma(priv);
|
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);
|
bcmgenet_hfb_create_rxnfc_filter(priv, rule);
|
||||||
|
|
||||||
/* Disable RX/TX DMA and flush TX queues */
|
/* Disable RX/TX DMA and flush TX queues */
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/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) {
|
if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
|
||||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||||
|
@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-ring.c
|
--- a/drivers/usb/host/xhci-ring.c
|
||||||
+++ b/drivers/usb/host/xhci-ring.c
|
+++ b/drivers/usb/host/xhci-ring.c
|
||||||
@@ -4258,9 +4258,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];
|
ep = &xhci->devs[slot_id]->eps[ep_index];
|
||||||
if ((ep->ep_state & SET_DEQ_PENDING)) {
|
if ((ep->ep_state & SET_DEQ_PENDING)) {
|
||||||
|
@ -137,7 +137,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|||||||
static int
|
static int
|
||||||
mt7530_setup(struct dsa_switch *ds)
|
mt7530_setup(struct dsa_switch *ds)
|
||||||
{
|
{
|
||||||
@@ -1675,6 +1779,12 @@ mt7530_setup(struct dsa_switch *ds)
|
@@ -1676,6 +1780,12 @@ mt7530_setup(struct dsa_switch *ds)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/drivers/net/dsa/mt7530.c
|
--- a/drivers/net/dsa/mt7530.c
|
||||||
+++ b/drivers/net/dsa/mt7530.c
|
+++ b/drivers/net/dsa/mt7530.c
|
||||||
@@ -2371,6 +2371,17 @@ static void mt753x_phylink_mac_link_up(s
|
@@ -2372,6 +2372,17 @@ static void mt753x_phylink_mac_link_up(s
|
||||||
mcr |= PMCR_RX_FC_EN;
|
mcr |= PMCR_RX_FC_EN;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
mt7530_set(priv, MT7530_PMCR_P(port), mcr);
|
mt7530_set(priv, MT7530_PMCR_P(port), mcr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2601,6 +2612,36 @@ mt753x_phy_write(struct dsa_switch *ds,
|
@@ -2602,6 +2613,36 @@ mt753x_phy_write(struct dsa_switch *ds,
|
||||||
return priv->info->phy_write(ds, port, regnum, val);
|
return priv->info->phy_write(ds, port, regnum, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
static const struct dsa_switch_ops mt7530_switch_ops = {
|
static const struct dsa_switch_ops mt7530_switch_ops = {
|
||||||
.get_tag_protocol = mtk_get_tag_protocol,
|
.get_tag_protocol = mtk_get_tag_protocol,
|
||||||
.setup = mt753x_setup,
|
.setup = mt753x_setup,
|
||||||
@@ -2629,6 +2670,8 @@ static const struct dsa_switch_ops mt753
|
@@ -2630,6 +2671,8 @@ static const struct dsa_switch_ops mt753
|
||||||
.phylink_mac_an_restart = mt753x_phylink_mac_an_restart,
|
.phylink_mac_an_restart = mt753x_phylink_mac_an_restart,
|
||||||
.phylink_mac_link_down = mt753x_phylink_mac_link_down,
|
.phylink_mac_link_down = mt753x_phylink_mac_link_down,
|
||||||
.phylink_mac_link_up = mt753x_phylink_mac_link_up,
|
.phylink_mac_link_up = mt753x_phylink_mac_link_up,
|
||||||
|
@ -1294,7 +1294,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
|
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
|
||||||
+++ b/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)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@ -1327,7 +1327,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
|
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
|
||||||
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
|
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
|
||||||
@@ -1202,7 +1202,7 @@ static int sun8i_dwmac_probe(struct plat
|
@@ -1203,7 +1203,7 @@ static int sun8i_dwmac_probe(struct plat
|
||||||
if (ret)
|
if (ret)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
@ -1478,7 +1478,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
if (ret)
|
if (ret)
|
||||||
--- a/drivers/net/ethernet/ti/cpsw_new.c
|
--- a/drivers/net/ethernet/ti/cpsw_new.c
|
||||||
+++ b/drivers/net/ethernet/ti/cpsw_new.c
|
+++ b/drivers/net/ethernet/ti/cpsw_new.c
|
||||||
@@ -1267,7 +1267,6 @@ static int cpsw_probe_dt(struct cpsw_com
|
@@ -1269,7 +1269,6 @@ static int cpsw_probe_dt(struct cpsw_com
|
||||||
|
|
||||||
for_each_child_of_node(tmp_node, port_np) {
|
for_each_child_of_node(tmp_node, port_np) {
|
||||||
struct cpsw_slave_data *slave_data;
|
struct cpsw_slave_data *slave_data;
|
||||||
@ -1486,7 +1486,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
u32 port_id;
|
u32 port_id;
|
||||||
|
|
||||||
ret = of_property_read_u32(port_np, "reg", &port_id);
|
ret = of_property_read_u32(port_np, "reg", &port_id);
|
||||||
@@ -1326,10 +1325,8 @@ static int cpsw_probe_dt(struct cpsw_com
|
@@ -1328,10 +1327,8 @@ static int cpsw_probe_dt(struct cpsw_com
|
||||||
goto err_node_put;
|
goto err_node_put;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1641,7 +1641,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
lp->coalesce_count_tx = XAXIDMA_DFT_TX_THRESHOLD;
|
lp->coalesce_count_tx = XAXIDMA_DFT_TX_THRESHOLD;
|
||||||
--- a/drivers/net/ethernet/xilinx/xilinx_emaclite.c
|
--- a/drivers/net/ethernet/xilinx/xilinx_emaclite.c
|
||||||
+++ b/drivers/net/ethernet/xilinx/xilinx_emaclite.c
|
+++ b/drivers/net/ethernet/xilinx/xilinx_emaclite.c
|
||||||
@@ -1113,7 +1113,6 @@ static int xemaclite_of_probe(struct pla
|
@@ -1122,7 +1122,6 @@ static int xemaclite_of_probe(struct pla
|
||||||
struct net_device *ndev = NULL;
|
struct net_device *ndev = NULL;
|
||||||
struct net_local *lp = NULL;
|
struct net_local *lp = NULL;
|
||||||
struct device *dev = &ofdev->dev;
|
struct device *dev = &ofdev->dev;
|
||||||
@ -1649,7 +1649,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
@@ -1155,12 +1154,9 @@ static int xemaclite_of_probe(struct pla
|
@@ -1164,12 +1163,9 @@ static int xemaclite_of_probe(struct pla
|
||||||
lp->next_rx_buf_to_use = 0x0;
|
lp->next_rx_buf_to_use = 0x0;
|
||||||
lp->tx_ping_pong = get_bool(ofdev, "xlnx,tx-ping-pong");
|
lp->tx_ping_pong = get_bool(ofdev, "xlnx,tx-ping-pong");
|
||||||
lp->rx_ping_pong = get_bool(ofdev, "xlnx,rx-ping-pong");
|
lp->rx_ping_pong = get_bool(ofdev, "xlnx,rx-ping-pong");
|
||||||
|
@ -73,7 +73,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|||||||
static void
|
static void
|
||||||
mt7530_stp_state_set(struct dsa_switch *ds, int port, u8 state)
|
mt7530_stp_state_set(struct dsa_switch *ds, int port, u8 state)
|
||||||
{
|
{
|
||||||
@@ -2652,6 +2699,8 @@ static const struct dsa_switch_ops mt753
|
@@ -2653,6 +2700,8 @@ static const struct dsa_switch_ops mt753
|
||||||
.get_sset_count = mt7530_get_sset_count,
|
.get_sset_count = mt7530_get_sset_count,
|
||||||
.port_enable = mt7530_port_enable,
|
.port_enable = mt7530_port_enable,
|
||||||
.port_disable = mt7530_port_disable,
|
.port_disable = mt7530_port_disable,
|
||||||
|
@ -26,7 +26,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|||||||
|
|
||||||
if (priv->id == ID_MT7530) {
|
if (priv->id == ID_MT7530) {
|
||||||
regulator_set_voltage(priv->core_pwr, 1000000, 1000000);
|
regulator_set_voltage(priv->core_pwr, 1000000, 1000000);
|
||||||
@@ -1947,6 +1948,7 @@ mt7531_setup(struct dsa_switch *ds)
|
@@ -1948,6 +1949,7 @@ mt7531_setup(struct dsa_switch *ds)
|
||||||
}
|
}
|
||||||
|
|
||||||
ds->configure_vlan_while_not_filtering = true;
|
ds->configure_vlan_while_not_filtering = true;
|
||||||
|
@ -67,7 +67,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface)
|
static void mt7530_setup_port5(struct dsa_switch *ds, phy_interface_t interface)
|
||||||
{
|
{
|
||||||
struct mt7530_priv *priv = ds->priv;
|
struct mt7530_priv *priv = ds->priv;
|
||||||
@@ -2699,6 +2739,7 @@ static const struct dsa_switch_ops mt753
|
@@ -2700,6 +2740,7 @@ static const struct dsa_switch_ops mt753
|
||||||
.phy_write = mt753x_phy_write,
|
.phy_write = mt753x_phy_write,
|
||||||
.get_ethtool_stats = mt7530_get_ethtool_stats,
|
.get_ethtool_stats = mt7530_get_ethtool_stats,
|
||||||
.get_sset_count = mt7530_get_sset_count,
|
.get_sset_count = mt7530_get_sset_count,
|
||||||
|
@ -109,7 +109,7 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
|
|||||||
mt7530_vlan_cmd(struct mt7530_priv *priv, enum mt7530_vlan_cmd cmd, u16 vid)
|
mt7530_vlan_cmd(struct mt7530_priv *priv, enum mt7530_vlan_cmd cmd, u16 vid)
|
||||||
{
|
{
|
||||||
struct mt7530_dummy_poll p;
|
struct mt7530_dummy_poll p;
|
||||||
@@ -2745,11 +2813,15 @@ static const struct dsa_switch_ops mt753
|
@@ -2746,11 +2814,15 @@ static const struct dsa_switch_ops mt753
|
||||||
.port_change_mtu = mt7530_port_change_mtu,
|
.port_change_mtu = mt7530_port_change_mtu,
|
||||||
.port_max_mtu = mt7530_port_max_mtu,
|
.port_max_mtu = mt7530_port_max_mtu,
|
||||||
.port_stp_state_set = mt7530_stp_state_set,
|
.port_stp_state_set = mt7530_stp_state_set,
|
||||||
|
@ -305,7 +305,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
static int
|
static int
|
||||||
mt7530_setup(struct dsa_switch *ds)
|
mt7530_setup(struct dsa_switch *ds)
|
||||||
{
|
{
|
||||||
@@ -2749,24 +2964,20 @@ static int
|
@@ -2750,24 +2965,20 @@ static int
|
||||||
mt753x_setup(struct dsa_switch *ds)
|
mt753x_setup(struct dsa_switch *ds)
|
||||||
{
|
{
|
||||||
struct mt7530_priv *priv = ds->priv;
|
struct mt7530_priv *priv = ds->priv;
|
||||||
@ -340,7 +340,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int mt753x_get_mac_eee(struct dsa_switch *ds, int port,
|
static int mt753x_get_mac_eee(struct dsa_switch *ds, int port,
|
||||||
@@ -2803,8 +3014,6 @@ static const struct dsa_switch_ops mt753
|
@@ -2804,8 +3015,6 @@ static const struct dsa_switch_ops mt753
|
||||||
.get_tag_protocol = mtk_get_tag_protocol,
|
.get_tag_protocol = mtk_get_tag_protocol,
|
||||||
.setup = mt753x_setup,
|
.setup = mt753x_setup,
|
||||||
.get_strings = mt7530_get_strings,
|
.get_strings = mt7530_get_strings,
|
||||||
@ -349,7 +349,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
.get_ethtool_stats = mt7530_get_ethtool_stats,
|
.get_ethtool_stats = mt7530_get_ethtool_stats,
|
||||||
.get_sset_count = mt7530_get_sset_count,
|
.get_sset_count = mt7530_get_sset_count,
|
||||||
.set_ageing_time = mt7530_set_ageing_time,
|
.set_ageing_time = mt7530_set_ageing_time,
|
||||||
@@ -2987,6 +3196,9 @@ mt7530_remove(struct mdio_device *mdiode
|
@@ -2988,6 +3197,9 @@ mt7530_remove(struct mdio_device *mdiode
|
||||||
dev_err(priv->dev, "Failed to disable io pwr: %d\n",
|
dev_err(priv->dev, "Failed to disable io pwr: %d\n",
|
||||||
ret);
|
ret);
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
--- a/drivers/pci/controller/pci-aardvark.c
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||||
@@ -883,8 +883,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru
|
@@ -885,8 +885,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru
|
||||||
|
|
||||||
case PCI_EXP_DEVCAP:
|
case PCI_EXP_DEVCAP:
|
||||||
case PCI_EXP_DEVCTL:
|
case PCI_EXP_DEVCTL:
|
||||||
@ -35,7 +35,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|||||||
default:
|
default:
|
||||||
return PCI_BRIDGE_EMUL_NOT_HANDLED;
|
return PCI_BRIDGE_EMUL_NOT_HANDLED;
|
||||||
}
|
}
|
||||||
@@ -898,10 +903,6 @@ advk_pci_bridge_emul_pcie_conf_write(str
|
@@ -900,10 +905,6 @@ advk_pci_bridge_emul_pcie_conf_write(str
|
||||||
struct advk_pcie *pcie = bridge->data;
|
struct advk_pcie *pcie = bridge->data;
|
||||||
|
|
||||||
switch (reg) {
|
switch (reg) {
|
||||||
@ -46,7 +46,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|||||||
case PCI_EXP_LNKCTL:
|
case PCI_EXP_LNKCTL:
|
||||||
advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg);
|
advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg);
|
||||||
if (new & PCI_EXP_LNKCTL_RL)
|
if (new & PCI_EXP_LNKCTL_RL)
|
||||||
@@ -923,6 +924,12 @@ advk_pci_bridge_emul_pcie_conf_write(str
|
@@ -925,6 +926,12 @@ advk_pci_bridge_emul_pcie_conf_write(str
|
||||||
advk_writel(pcie, new, PCIE_ISR0_REG);
|
advk_writel(pcie, new, PCIE_ISR0_REG);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1,59 +0,0 @@
|
|||||||
From 7d8dc1f7cd007a7ce94c5b4c20d63a8b8d6d7751 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
|
|
||||||
Date: Tue, 30 Nov 2021 18:29:06 +0100
|
|
||||||
Subject: [PATCH] PCI: aardvark: Clear all MSIs at setup
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
We already clear all the other interrupts (ISR0, ISR1, HOST_CTRL_INT).
|
|
||||||
|
|
||||||
Define a new macro PCIE_MSI_ALL_MASK and do the same clearing for MSIs,
|
|
||||||
to ensure that we don't start receiving spurious interrupts.
|
|
||||||
|
|
||||||
Use this new mask in advk_pcie_handle_msi();
|
|
||||||
|
|
||||||
Link: https://lore.kernel.org/r/20211130172913.9727-5-kabel@kernel.org
|
|
||||||
Signed-off-by: Pali Rohár <pali@kernel.org>
|
|
||||||
Signed-off-by: Marek Behún <kabel@kernel.org>
|
|
||||||
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|
||||||
---
|
|
||||||
drivers/pci/controller/pci-aardvark.c | 6 ++++--
|
|
||||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
|
||||||
@@ -114,6 +114,7 @@
|
|
||||||
#define PCIE_MSI_ADDR_HIGH_REG (CONTROL_BASE_ADDR + 0x54)
|
|
||||||
#define PCIE_MSI_STATUS_REG (CONTROL_BASE_ADDR + 0x58)
|
|
||||||
#define PCIE_MSI_MASK_REG (CONTROL_BASE_ADDR + 0x5C)
|
|
||||||
+#define PCIE_MSI_ALL_MASK GENMASK(31, 0)
|
|
||||||
#define PCIE_MSI_PAYLOAD_REG (CONTROL_BASE_ADDR + 0x9C)
|
|
||||||
#define PCIE_MSI_DATA_MASK GENMASK(15, 0)
|
|
||||||
|
|
||||||
@@ -577,6 +578,7 @@ static void advk_pcie_setup_hw(struct ad
|
|
||||||
advk_writel(pcie, reg, PCIE_CORE_CTRL2_REG);
|
|
||||||
|
|
||||||
/* Clear all interrupts */
|
|
||||||
+ advk_writel(pcie, PCIE_MSI_ALL_MASK, PCIE_MSI_STATUS_REG);
|
|
||||||
advk_writel(pcie, PCIE_ISR0_ALL_MASK, PCIE_ISR0_REG);
|
|
||||||
advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG);
|
|
||||||
advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG);
|
|
||||||
@@ -589,7 +591,7 @@ static void advk_pcie_setup_hw(struct ad
|
|
||||||
advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_MASK_REG);
|
|
||||||
|
|
||||||
/* Unmask all MSIs */
|
|
||||||
- advk_writel(pcie, 0, PCIE_MSI_MASK_REG);
|
|
||||||
+ advk_writel(pcie, ~(u32)PCIE_MSI_ALL_MASK, PCIE_MSI_MASK_REG);
|
|
||||||
|
|
||||||
/* Enable summary interrupt for GIC SPI source */
|
|
||||||
reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK);
|
|
||||||
@@ -1397,7 +1399,7 @@ static void advk_pcie_handle_msi(struct
|
|
||||||
|
|
||||||
msi_mask = advk_readl(pcie, PCIE_MSI_MASK_REG);
|
|
||||||
msi_val = advk_readl(pcie, PCIE_MSI_STATUS_REG);
|
|
||||||
- msi_status = msi_val & ~msi_mask;
|
|
||||||
+ msi_status = msi_val & ((~msi_mask) & PCIE_MSI_ALL_MASK);
|
|
||||||
|
|
||||||
for (msi_idx = 0; msi_idx < MSI_IRQ_NUM; msi_idx++) {
|
|
||||||
if (!(BIT(msi_idx) & msi_status))
|
|
@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
--- a/drivers/pci/controller/pci-aardvark.c
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||||
@@ -1696,11 +1696,13 @@ static int advk_pcie_remove(struct platf
|
@@ -1692,11 +1692,13 @@ static int advk_pcie_remove(struct platf
|
||||||
struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie);
|
struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
--- a/drivers/pci/controller/pci-aardvark.c
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||||
@@ -1694,6 +1694,7 @@ static int advk_pcie_remove(struct platf
|
@@ -1690,6 +1690,7 @@ static int advk_pcie_remove(struct platf
|
||||||
{
|
{
|
||||||
struct advk_pcie *pcie = platform_get_drvdata(pdev);
|
struct advk_pcie *pcie = platform_get_drvdata(pdev);
|
||||||
struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie);
|
struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie);
|
||||||
@ -27,7 +27,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* Remove PCI bus with all devices */
|
/* Remove PCI bus with all devices */
|
||||||
@@ -1702,6 +1703,11 @@ static int advk_pcie_remove(struct platf
|
@@ -1698,6 +1699,11 @@ static int advk_pcie_remove(struct platf
|
||||||
pci_remove_root_bus(bridge->bus);
|
pci_remove_root_bus(bridge->bus);
|
||||||
pci_unlock_rescan_remove();
|
pci_unlock_rescan_remove();
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
--- a/drivers/pci/controller/pci-aardvark.c
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||||
@@ -1708,6 +1708,27 @@ static int advk_pcie_remove(struct platf
|
@@ -1704,6 +1704,27 @@ static int advk_pcie_remove(struct platf
|
||||||
val &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
|
val &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
|
||||||
advk_writel(pcie, val, PCIE_CORE_CMD_STATUS_REG);
|
advk_writel(pcie, val, PCIE_CORE_CMD_STATUS_REG);
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
--- a/drivers/pci/controller/pci-aardvark.c
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||||
@@ -1733,6 +1733,9 @@ static int advk_pcie_remove(struct platf
|
@@ -1729,6 +1729,9 @@ static int advk_pcie_remove(struct platf
|
||||||
advk_pcie_remove_msi_irq_domain(pcie);
|
advk_pcie_remove_msi_irq_domain(pcie);
|
||||||
advk_pcie_remove_irq_domain(pcie);
|
advk_pcie_remove_irq_domain(pcie);
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
--- a/drivers/pci/controller/pci-aardvark.c
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||||
@@ -1736,6 +1736,10 @@ static int advk_pcie_remove(struct platf
|
@@ -1732,6 +1732,10 @@ static int advk_pcie_remove(struct platf
|
||||||
/* Free config space for emulated root bridge */
|
/* Free config space for emulated root bridge */
|
||||||
pci_bridge_emul_cleanup(&pcie->bridge);
|
pci_bridge_emul_cleanup(&pcie->bridge);
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
--- a/drivers/pci/controller/pci-aardvark.c
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||||
@@ -1740,6 +1740,11 @@ static int advk_pcie_remove(struct platf
|
@@ -1736,6 +1736,11 @@ static int advk_pcie_remove(struct platf
|
||||||
if (pcie->reset_gpio)
|
if (pcie->reset_gpio)
|
||||||
gpiod_set_value_cansleep(pcie->reset_gpio, 1);
|
gpiod_set_value_cansleep(pcie->reset_gpio, 1);
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|||||||
|
|
||||||
--- a/drivers/pci/controller/pci-aardvark.c
|
--- a/drivers/pci/controller/pci-aardvark.c
|
||||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||||
@@ -1749,6 +1749,9 @@ static int advk_pcie_remove(struct platf
|
@@ -1745,6 +1745,9 @@ static int advk_pcie_remove(struct platf
|
||||||
for (i = 0; i < OB_WIN_COUNT; i++)
|
for (i = 0; i < OB_WIN_COUNT; i++)
|
||||||
advk_pcie_disable_ob_win(pcie, i);
|
advk_pcie_disable_ob_win(pcie, i);
|
||||||
|
|
||||||
|
@ -272,7 +272,7 @@
|
|||||||
obj-$(CONFIG_MTD_BLOCK) += mtdblock.o
|
obj-$(CONFIG_MTD_BLOCK) += mtdblock.o
|
||||||
--- a/include/linux/mtd/mtd.h
|
--- a/include/linux/mtd/mtd.h
|
||||||
+++ b/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;
|
req->len += mtd->erasesize - mod;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,7 +297,7 @@
|
|||||||
static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd)
|
static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd)
|
||||||
{
|
{
|
||||||
if (mtd->writesize_shift)
|
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 struct mtd_info *get_mtd_device_nm(const char *name);
|
||||||
extern void put_mtd_device(struct mtd_info *mtd);
|
extern void put_mtd_device(struct mtd_info *mtd);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user