aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorPetr Štetiar <ynezz@true.cz>2020-04-29 23:24:49 +0200
committerPetr Štetiar <ynezz@true.cz>2020-04-30 00:52:04 +0200
commit5ea3ea154f9cc8a6f1d3425fa4763614e0e51f8d (patch)
tree182db94ff5efb9ad968862a8a70f054a585d6df4 /target/linux
parent493eef5b279a0455b76bfacabdec3af8bf642385 (diff)
downloadupstream-5ea3ea154f9cc8a6f1d3425fa4763614e0e51f8d.tar.gz
upstream-5ea3ea154f9cc8a6f1d3425fa4763614e0e51f8d.tar.bz2
upstream-5ea3ea154f9cc8a6f1d3425fa4763614e0e51f8d.zip
kernel: bump 5.4 to 5.4.36
Refreshed patches, removed upstreamed patch: generic/hack: 551-loop-Better-discard-support-for-block-devices.patch Added generic config symbol `ARM64_ERRATUM_1542419` due to Fixes: f2791551cedb ("arm64: errata: Hide CTR_EL0.DIC on systems affected by Neoverse-N1 #1542419"). Run tested: qemu-x86-64, apalis, nbg6617 Build tested: x86/64, imx6, ipq40xx, sunxi/a53 Signed-off-by: Petr Štetiar <ynezz@true.cz>
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/apm821xx/patches-5.4/802-usb-xhci-force-msi-renesas-xhci.patch2
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0037-Add-dwc_otg-driver.patch4
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0212-bcmgenet-Better-coalescing-parameter-defaults.patch4
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0222-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch2
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0268-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch4
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0296-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch2
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0318-dma-direct-Temporary-DMA-fix-on-arm64.patch2
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0341-drm-v3d-The-third-IRQ-is-optional.patch2
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0450-dma-direct-turn-ARCH_ZONE_DMA_BITS-into-a-variable.patch4
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0452-PCI-of-Add-inbound-resource-parsing-to-helpers.patch2
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0455-dma-direct-exclude-dma_direct_map_resource-from-the-.patch4
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0456-dma-mapping-treat-dev-bus_dma_mask-as-a-DMA-limit.patch12
-rw-r--r--target/linux/bcm53xx/patches-5.4/180-usb-xhci-add-support-for-performing-fake-doorbell.patch2
-rw-r--r--target/linux/generic/backport-5.4/750-v5.5-net-phy-add-support-for-clause-37-auto-negotiation.patch30
-rw-r--r--target/linux/generic/config-5.41
-rw-r--r--target/linux/generic/hack-5.4/550-loop-Report-EOPNOTSUPP-properly.patch4
-rw-r--r--target/linux/generic/hack-5.4/551-loop-Better-discard-support-for-block-devices.patch101
-rw-r--r--target/linux/generic/hack-5.4/702-phy_add_aneg_done_function.patch2
-rw-r--r--target/linux/generic/hack-5.4/902-debloat_proc.patch2
-rw-r--r--target/linux/ramips/patches-5.4/991-at803x.patch18
20 files changed, 49 insertions, 155 deletions
diff --git a/target/linux/apm821xx/patches-5.4/802-usb-xhci-force-msi-renesas-xhci.patch b/target/linux/apm821xx/patches-5.4/802-usb-xhci-force-msi-renesas-xhci.patch
index 55686a2fd8..7f09adf6a3 100644
--- a/target/linux/apm821xx/patches-5.4/802-usb-xhci-force-msi-renesas-xhci.patch
+++ b/target/linux/apm821xx/patches-5.4/802-usb-xhci-force-msi-renesas-xhci.patch
@@ -43,7 +43,7 @@ produce a noisy warning.
hcd->msi_enabled = 1;
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1879,6 +1879,7 @@ struct xhci_hcd {
+@@ -1880,6 +1880,7 @@ struct xhci_hcd {
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
/* support xHCI 1.0 spec USB2 hardware LPM */
diff --git a/target/linux/bcm27xx/patches-5.4/950-0037-Add-dwc_otg-driver.patch b/target/linux/bcm27xx/patches-5.4/950-0037-Add-dwc_otg-driver.patch
index 0823c01c53..a613aa6e60 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0037-Add-dwc_otg-driver.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0037-Add-dwc_otg-driver.patch
@@ -1040,7 +1040,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
}
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
-@@ -5306,7 +5306,7 @@ static void port_event(struct usb_hub *h
+@@ -5318,7 +5318,7 @@ static void port_event(struct usb_hub *h
port_dev->over_current_count++;
port_over_current_notify(port_dev);
@@ -1051,7 +1051,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
USB_PORT_FEAT_C_OVER_CURRENT);
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
-@@ -1993,6 +1993,85 @@ free_interfaces:
+@@ -2000,6 +2000,85 @@ free_interfaces:
if (cp->string == NULL &&
!(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS))
cp->string = usb_cache_string(dev, cp->desc.iConfiguration);
diff --git a/target/linux/bcm27xx/patches-5.4/950-0212-bcmgenet-Better-coalescing-parameter-defaults.patch b/target/linux/bcm27xx/patches-5.4/950-0212-bcmgenet-Better-coalescing-parameter-defaults.patch
index f2e829aec3..58418ce973 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0212-bcmgenet-Better-coalescing-parameter-defaults.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0212-bcmgenet-Better-coalescing-parameter-defaults.patch
@@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -2145,7 +2145,7 @@ static void bcmgenet_init_tx_ring(struct
+@@ -2147,7 +2147,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);
@@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
/* Disable rate control for now */
bcmgenet_tdma_ring_writel(priv, index, flow_period_val,
TDMA_FLOW_PERIOD);
-@@ -3567,9 +3567,12 @@ static int bcmgenet_probe(struct platfor
+@@ -3570,9 +3570,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 */
diff --git a/target/linux/bcm27xx/patches-5.4/950-0222-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch b/target/linux/bcm27xx/patches-5.4/950-0222-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
index fe1d069c20..127e91cd24 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0222-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0222-usb-add-plumbing-for-updating-interrupt-endpoint-int.patch
@@ -46,7 +46,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
* have been called previously. Use for set_configuration, set_interface,
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
-@@ -1113,6 +1113,21 @@ static void remove_intf_ep_devs(struct u
+@@ -1120,6 +1120,21 @@ static void remove_intf_ep_devs(struct u
intf->ep_devs_created = 0;
}
diff --git a/target/linux/bcm27xx/patches-5.4/950-0268-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch b/target/linux/bcm27xx/patches-5.4/950-0268-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch
index afddaa9462..6dba6fbc5f 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0268-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0268-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch
@@ -48,7 +48,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
dma_addr_t addr;
u64 hw_dequeue;
bool cycle_found = false;
-@@ -548,7 +551,28 @@ void xhci_find_new_dequeue_state(struct
+@@ -565,7 +568,28 @@ void xhci_find_new_dequeue_state(struct
hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id);
new_seg = ep_ring->deq_seg;
new_deq = ep_ring->dequeue;
@@ -80,7 +80,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
/*
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1872,6 +1872,7 @@ struct xhci_hcd {
+@@ -1873,6 +1873,7 @@ struct xhci_hcd {
#define XHCI_DEFAULT_PM_RUNTIME_ALLOW BIT_ULL(33)
#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
#define XHCI_SNPS_BROKEN_SUSPEND BIT_ULL(35)
diff --git a/target/linux/bcm27xx/patches-5.4/950-0296-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch b/target/linux/bcm27xx/patches-5.4/950-0296-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
index 73f92187f2..e52b4e9022 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0296-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0296-net-bcmgenet-Workaround-2-for-Pi4-Ethernet-fail.patch
@@ -38,7 +38,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
{
/* MIPS chips strapped for BE will automagically configure the
-@@ -1991,6 +1995,11 @@ static void reset_umac(struct bcmgenet_p
+@@ -1993,6 +1997,11 @@ static void reset_umac(struct bcmgenet_p
bcmgenet_rbuf_ctrl_set(priv, 0);
udelay(10);
diff --git a/target/linux/bcm27xx/patches-5.4/950-0318-dma-direct-Temporary-DMA-fix-on-arm64.patch b/target/linux/bcm27xx/patches-5.4/950-0318-dma-direct-Temporary-DMA-fix-on-arm64.patch
index e368ae6cd9..327a77c424 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0318-dma-direct-Temporary-DMA-fix-on-arm64.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0318-dma-direct-Temporary-DMA-fix-on-arm64.patch
@@ -12,7 +12,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
-@@ -397,7 +397,7 @@ int dma_direct_supported(struct device *
+@@ -398,7 +398,7 @@ int dma_direct_supported(struct device *
if (IS_ENABLED(CONFIG_ZONE_DMA))
min_mask = DMA_BIT_MASK(ARCH_ZONE_DMA_BITS);
else
diff --git a/target/linux/bcm27xx/patches-5.4/950-0341-drm-v3d-The-third-IRQ-is-optional.patch b/target/linux/bcm27xx/patches-5.4/950-0341-drm-v3d-The-third-IRQ-is-optional.patch
index ea583b105a..e58d8af2d0 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0341-drm-v3d-The-third-IRQ-is-optional.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0341-drm-v3d-The-third-IRQ-is-optional.patch
@@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
-@@ -3468,7 +3468,7 @@ static int bcmgenet_probe(struct platfor
+@@ -3471,7 +3471,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);
diff --git a/target/linux/bcm27xx/patches-5.4/950-0450-dma-direct-turn-ARCH_ZONE_DMA_BITS-into-a-variable.patch b/target/linux/bcm27xx/patches-5.4/950-0450-dma-direct-turn-ARCH_ZONE_DMA_BITS-into-a-variable.patch
index 5de73d37f7..c3ae61c993 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0450-dma-direct-turn-ARCH_ZONE_DMA_BITS-into-a-variable.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0450-dma-direct-turn-ARCH_ZONE_DMA_BITS-into-a-variable.patch
@@ -175,7 +175,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
static void report_addr(struct device *dev, dma_addr_t dma_addr, size_t size)
{
-@@ -69,7 +68,7 @@ static gfp_t __dma_direct_optimal_gfp_ma
+@@ -70,7 +69,7 @@ static gfp_t __dma_direct_optimal_gfp_ma
* Note that GFP_DMA32 and GFP_DMA are no ops without the corresponding
* zones.
*/
@@ -184,7 +184,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
return GFP_DMA;
if (*phys_mask <= DMA_BIT_MASK(32))
return GFP_DMA32;
-@@ -395,7 +394,7 @@ int dma_direct_supported(struct device *
+@@ -396,7 +395,7 @@ int dma_direct_supported(struct device *
u64 min_mask;
if (IS_ENABLED(CONFIG_ZONE_DMA))
diff --git a/target/linux/bcm27xx/patches-5.4/950-0452-PCI-of-Add-inbound-resource-parsing-to-helpers.patch b/target/linux/bcm27xx/patches-5.4/950-0452-PCI-of-Add-inbound-resource-parsing-to-helpers.patch
index 0d74bc57ad..987351c1fc 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0452-PCI-of-Add-inbound-resource-parsing-to-helpers.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0452-PCI-of-Add-inbound-resource-parsing-to-helpers.patch
@@ -382,7 +382,7 @@ Cc: linux-rockchip@lists.infradead.org
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
-@@ -636,11 +636,15 @@ static inline void pci_release_bus_of_no
+@@ -637,11 +637,15 @@ static inline void pci_release_bus_of_no
#if defined(CONFIG_OF_ADDRESS)
int devm_of_pci_get_host_bridge_resources(struct device *dev,
unsigned char busno, unsigned char bus_max,
diff --git a/target/linux/bcm27xx/patches-5.4/950-0455-dma-direct-exclude-dma_direct_map_resource-from-the-.patch b/target/linux/bcm27xx/patches-5.4/950-0455-dma-direct-exclude-dma_direct_map_resource-from-the-.patch
index 94a1329d84..dca3fbfb57 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0455-dma-direct-exclude-dma_direct_map_resource-from-the-.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0455-dma-direct-exclude-dma_direct_map_resource-from-the-.patch
@@ -84,7 +84,7 @@ Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
-@@ -325,7 +325,7 @@ static inline bool dma_direct_possible(s
+@@ -326,7 +326,7 @@ static inline bool dma_direct_possible(s
size_t size)
{
return swiotlb_force != SWIOTLB_FORCE &&
@@ -93,7 +93,7 @@ Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
}
dma_addr_t dma_direct_map_page(struct device *dev, struct page *page,
-@@ -374,7 +374,7 @@ dma_addr_t dma_direct_map_resource(struc
+@@ -375,7 +375,7 @@ dma_addr_t dma_direct_map_resource(struc
{
dma_addr_t dma_addr = paddr;
diff --git a/target/linux/bcm27xx/patches-5.4/950-0456-dma-mapping-treat-dev-bus_dma_mask-as-a-DMA-limit.patch b/target/linux/bcm27xx/patches-5.4/950-0456-dma-mapping-treat-dev-bus_dma_mask-as-a-DMA-limit.patch
index 155e18936a..162a91c530 100644
--- a/target/linux/bcm27xx/patches-5.4/950-0456-dma-mapping-treat-dev-bus_dma_mask-as-a-DMA-limit.patch
+++ b/target/linux/bcm27xx/patches-5.4/950-0456-dma-mapping-treat-dev-bus_dma_mask-as-a-DMA-limit.patch
@@ -296,7 +296,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
}
WARN_ON_ONCE(1);
}
-@@ -50,15 +50,14 @@ u64 dma_direct_get_required_mask(struct
+@@ -51,15 +51,14 @@ u64 dma_direct_get_required_mask(struct
}
static gfp_t __dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask,
@@ -316,7 +316,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
/*
* Optimistically try the zone that the physical address mask falls
-@@ -68,9 +67,9 @@ static gfp_t __dma_direct_optimal_gfp_ma
+@@ -69,9 +68,9 @@ static gfp_t __dma_direct_optimal_gfp_ma
* Note that GFP_DMA32 and GFP_DMA are no ops without the corresponding
* zones.
*/
@@ -328,7 +328,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
return GFP_DMA32;
return 0;
}
-@@ -78,7 +77,7 @@ static gfp_t __dma_direct_optimal_gfp_ma
+@@ -79,7 +78,7 @@ static gfp_t __dma_direct_optimal_gfp_ma
static bool dma_coherent_ok(struct device *dev, phys_addr_t phys, size_t size)
{
return phys_to_dma_direct(dev, phys) + size - 1 <=
@@ -337,7 +337,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
}
struct page *__dma_direct_alloc_pages(struct device *dev, size_t size,
-@@ -87,7 +86,7 @@ struct page *__dma_direct_alloc_pages(st
+@@ -88,7 +87,7 @@ struct page *__dma_direct_alloc_pages(st
size_t alloc_size = PAGE_ALIGN(size);
int node = dev_to_node(dev);
struct page *page = NULL;
@@ -346,7 +346,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
if (attrs & DMA_ATTR_NO_WARN)
gfp |= __GFP_NOWARN;
-@@ -95,7 +94,7 @@ struct page *__dma_direct_alloc_pages(st
+@@ -96,7 +95,7 @@ struct page *__dma_direct_alloc_pages(st
/* we always manually zero the memory once we are done: */
gfp &= ~__GFP_ZERO;
gfp |= __dma_direct_optimal_gfp_mask(dev, dev->coherent_dma_mask,
@@ -355,7 +355,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
page = dma_alloc_contiguous(dev, alloc_size, gfp);
if (page && !dma_coherent_ok(dev, page_to_phys(page), size)) {
dma_free_contiguous(dev, page, alloc_size);
-@@ -109,7 +108,7 @@ again:
+@@ -110,7 +109,7 @@ again:
page = NULL;
if (IS_ENABLED(CONFIG_ZONE_DMA32) &&
diff --git a/target/linux/bcm53xx/patches-5.4/180-usb-xhci-add-support-for-performing-fake-doorbell.patch b/target/linux/bcm53xx/patches-5.4/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
index d0ffcee460..4c4db76b01 100644
--- a/target/linux/bcm53xx/patches-5.4/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
+++ b/target/linux/bcm53xx/patches-5.4/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
@@ -127,7 +127,7 @@ it on BCM4708 family.
/*
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1872,6 +1872,7 @@ struct xhci_hcd {
+@@ -1873,6 +1873,7 @@ struct xhci_hcd {
#define XHCI_DEFAULT_PM_RUNTIME_ALLOW BIT_ULL(33)
#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
#define XHCI_SNPS_BROKEN_SUSPEND BIT_ULL(35)
diff --git a/target/linux/generic/backport-5.4/750-v5.5-net-phy-add-support-for-clause-37-auto-negotiation.patch b/target/linux/generic/backport-5.4/750-v5.5-net-phy-add-support-for-clause-37-auto-negotiation.patch
index da76523730..855c4d2aac 100644
--- a/target/linux/generic/backport-5.4/750-v5.5-net-phy-add-support-for-clause-37-auto-negotiation.patch
+++ b/target/linux/generic/backport-5.4/750-v5.5-net-phy-add-support-for-clause-37-auto-negotiation.patch
@@ -18,15 +18,12 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/phy.h | 4 +
2 files changed, 143 insertions(+)
-diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
-index f1f60bd4865a..fa71998fea51 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -1607,6 +1607,40 @@ static int genphy_config_advert(struct phy_device *phydev)
- return changed;
+@@ -1679,6 +1679,40 @@ static int genphy_config_advert(struct p
}
-+/**
+ /**
+ * genphy_c37_config_advert - sanitize and advertise auto-negotiation parameters
+ * @phydev: target phy_device struct
+ *
@@ -60,14 +57,14 @@ index f1f60bd4865a..fa71998fea51 100644
+ adv);
+}
+
- /**
++/**
* genphy_config_eee_advert - disable unwanted eee mode advertisement
* @phydev: target phy_device struct
-@@ -1715,6 +1749,54 @@ int __genphy_config_aneg(struct phy_device *phydev, bool changed)
- }
+ *
+@@ -1787,6 +1821,54 @@ int __genphy_config_aneg(struct phy_devi
EXPORT_SYMBOL(__genphy_config_aneg);
-+/**
+ /**
+ * genphy_c37_config_aneg - restart auto-negotiation or write BMCR
+ * @phydev: target phy_device struct
+ *
@@ -115,14 +112,14 @@ index f1f60bd4865a..fa71998fea51 100644
+}
+EXPORT_SYMBOL(genphy_c37_config_aneg);
+
- /**
++/**
* genphy_aneg_done - return auto-negotiation status
* @phydev: target phy_device struct
-@@ -1886,6 +1968,63 @@ int genphy_read_status(struct phy_device *phydev)
- }
+ *
+@@ -1958,6 +2040,63 @@ int genphy_read_status(struct phy_device
EXPORT_SYMBOL(genphy_read_status);
-+/**
+ /**
+ * genphy_c37_read_status - check the link status and update current link state
+ * @phydev: target phy_device struct
+ *
@@ -179,14 +176,13 @@ index f1f60bd4865a..fa71998fea51 100644
+}
+EXPORT_SYMBOL(genphy_c37_read_status);
+
- /**
++/**
* genphy_soft_reset - software reset the PHY via BMCR_RESET bit
* @phydev: target phy_device struct
-diff --git a/include/linux/phy.h b/include/linux/phy.h
-index 9a0e981df502..78436d58ce7c 100644
+ *
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -1106,6 +1106,10 @@ int genphy_read_mmd_unsupported(struct phy_device *phdev, int devad,
+@@ -1120,6 +1120,10 @@ int genphy_read_mmd_unsupported(struct p
int genphy_write_mmd_unsupported(struct phy_device *phdev, int devnum,
u16 regnum, u16 val);
diff --git a/target/linux/generic/config-5.4 b/target/linux/generic/config-5.4
index 21dd447cdf..a4ff887aa1 100644
--- a/target/linux/generic/config-5.4
+++ b/target/linux/generic/config-5.4
@@ -306,6 +306,7 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
# CONFIG_ARM64_ERRATUM_843419 is not set
# CONFIG_ARM64_ERRATUM_845719 is not set
# CONFIG_ARM64_ERRATUM_858921 is not set
+# CONFIG_ARM64_ERRATUM_1542419 is not set
# CONFIG_ARM64_HW_AFDBM is not set
# CONFIG_ARM64_LSE_ATOMICS is not set
# CONFIG_ARM64_MODULE_PLTS is not set
diff --git a/target/linux/generic/hack-5.4/550-loop-Report-EOPNOTSUPP-properly.patch b/target/linux/generic/hack-5.4/550-loop-Report-EOPNOTSUPP-properly.patch
index 479513bf54..754c01be1b 100644
--- a/target/linux/generic/hack-5.4/550-loop-Report-EOPNOTSUPP-properly.patch
+++ b/target/linux/generic/hack-5.4/550-loop-Report-EOPNOTSUPP-properly.patch
@@ -18,7 +18,7 @@ Reviewed-by: Bart Van Assche <bvanassche@acm.org>
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
-@@ -461,7 +461,7 @@ static void lo_complete_rq(struct reques
+@@ -462,7 +462,7 @@ static void lo_complete_rq(struct reques
if (!cmd->use_aio || cmd->ret < 0 || cmd->ret == blk_rq_bytes(rq) ||
req_op(rq) != REQ_OP_READ) {
if (cmd->ret < 0)
@@ -27,7 +27,7 @@ Reviewed-by: Bart Van Assche <bvanassche@acm.org>
goto end_io;
}
-@@ -1950,7 +1950,10 @@ static void loop_handle_cmd(struct loop_
+@@ -1970,7 +1970,10 @@ static void loop_handle_cmd(struct loop_
failed:
/* complete non-aio request */
if (!cmd->use_aio || ret) {
diff --git a/target/linux/generic/hack-5.4/551-loop-Better-discard-support-for-block-devices.patch b/target/linux/generic/hack-5.4/551-loop-Better-discard-support-for-block-devices.patch
deleted file mode 100644
index 38091290aa..0000000000
--- a/target/linux/generic/hack-5.4/551-loop-Better-discard-support-for-block-devices.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 3117c3f45edbcc269baaebd3d13f39b7bf884aa6 Mon Sep 17 00:00:00 2001
-From: Evan Green <evgreen@chromium.org>
-Date: Thu, 14 Nov 2019 15:50:08 -0800
-Subject: loop: Better discard support for block devices
-
-If the backing device for a loop device is itself a block device,
-then mirror the "write zeroes" capabilities of the underlying
-block device into the loop device. Copy this capability into both
-max_write_zeroes_sectors and max_discard_sectors of the loop device.
-
-The reason for this is that REQ_OP_DISCARD on a loop device translates
-into blkdev_issue_zeroout(), rather than blkdev_issue_discard(). This
-presents a consistent interface for loop devices (that discarded data
-is zeroed), regardless of the backing device type of the loop device.
-There should be no behavior change for loop devices backed by regular
-files.
-
-This change fixes blktest block/003, and removes an extraneous
-error print in block/013 when testing on a loop device backed
-by a block device that does not support discard.
-
-Signed-off-by: Evan Green <evgreen@chromium.org>
-Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
-Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
----
- drivers/block/loop.c | 40 +++++++++++++++++++++++++++++-----------
- 1 file changed, 29 insertions(+), 11 deletions(-)
-
---- a/drivers/block/loop.c
-+++ b/drivers/block/loop.c
-@@ -427,11 +427,12 @@ static int lo_fallocate(struct loop_devi
- * information.
- */
- struct file *file = lo->lo_backing_file;
-+ struct request_queue *q = lo->lo_queue;
- int ret;
-
- mode |= FALLOC_FL_KEEP_SIZE;
-
-- if ((!file->f_op->fallocate) || lo->lo_encrypt_key_size) {
-+ if (!blk_queue_discard(q)) {
- ret = -EOPNOTSUPP;
- goto out;
- }
-@@ -862,6 +863,21 @@ static void loop_config_discard(struct l
- struct file *file = lo->lo_backing_file;
- struct inode *inode = file->f_mapping->host;
- struct request_queue *q = lo->lo_queue;
-+ struct request_queue *backingq;
-+
-+ /*
-+ * If the backing device is a block device, mirror its zeroing
-+ * capability. REQ_OP_DISCARD translates to a zero-out even when backed
-+ * by block devices to keep consistent behavior with file-backed loop
-+ * devices.
-+ */
-+ if (S_ISBLK(inode->i_mode) && !lo->lo_encrypt_key_size) {
-+ backingq = bdev_get_queue(inode->i_bdev);
-+ blk_queue_max_discard_sectors(q,
-+ backingq->limits.max_write_zeroes_sectors);
-+
-+ blk_queue_max_write_zeroes_sectors(q,
-+ backingq->limits.max_write_zeroes_sectors);
-
- /*
- * We use punch hole to reclaim the free space used by the
-@@ -869,22 +885,24 @@ static void loop_config_discard(struct l
- * encryption is enabled, because it may give an attacker
- * useful information.
- */
-- if ((!file->f_op->fallocate) ||
-- lo->lo_encrypt_key_size) {
-+ } else if ((!file->f_op->fallocate) || lo->lo_encrypt_key_size) {
- q->limits.discard_granularity = 0;
- q->limits.discard_alignment = 0;
- blk_queue_max_discard_sectors(q, 0);
- blk_queue_max_write_zeroes_sectors(q, 0);
-- blk_queue_flag_clear(QUEUE_FLAG_DISCARD, q);
-- return;
-- }
-
-- q->limits.discard_granularity = inode->i_sb->s_blocksize;
-- q->limits.discard_alignment = 0;
-+ } else {
-+ q->limits.discard_granularity = inode->i_sb->s_blocksize;
-+ q->limits.discard_alignment = 0;
-
-- blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
-- blk_queue_max_write_zeroes_sectors(q, UINT_MAX >> 9);
-- blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
-+ blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
-+ blk_queue_max_write_zeroes_sectors(q, UINT_MAX >> 9);
-+ }
-+
-+ if (q->limits.max_write_zeroes_sectors)
-+ blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
-+ else
-+ blk_queue_flag_clear(QUEUE_FLAG_DISCARD, q);
- }
-
- static void loop_unprepare_queue(struct loop_device *lo)
diff --git a/target/linux/generic/hack-5.4/702-phy_add_aneg_done_function.patch b/target/linux/generic/hack-5.4/702-phy_add_aneg_done_function.patch
index f82cef1f94..f58b190025 100644
--- a/target/linux/generic/hack-5.4/702-phy_add_aneg_done_function.patch
+++ b/target/linux/generic/hack-5.4/702-phy_add_aneg_done_function.patch
@@ -15,7 +15,7 @@
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -1827,6 +1827,9 @@ int genphy_update_link(struct phy_device
+@@ -1909,6 +1909,9 @@ int genphy_update_link(struct phy_device
if (bmcr & BMCR_ANRESTART)
goto done;
diff --git a/target/linux/generic/hack-5.4/902-debloat_proc.patch b/target/linux/generic/hack-5.4/902-debloat_proc.patch
index f652751339..d2acd40e19 100644
--- a/target/linux/generic/hack-5.4/902-debloat_proc.patch
+++ b/target/linux/generic/hack-5.4/902-debloat_proc.patch
@@ -235,7 +235,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!pe)
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
-@@ -3552,6 +3552,8 @@ static const struct seq_operations vmall
+@@ -3562,6 +3562,8 @@ static const struct seq_operations vmall
static int __init proc_vmalloc_init(void)
{
diff --git a/target/linux/ramips/patches-5.4/991-at803x.patch b/target/linux/ramips/patches-5.4/991-at803x.patch
index 60afe2a35f..dd1d2755ed 100644
--- a/target/linux/ramips/patches-5.4/991-at803x.patch
+++ b/target/linux/ramips/patches-5.4/991-at803x.patch
@@ -12,11 +12,9 @@ Signed-off-by: René van Dorst <opensource@vdorst.com>
drivers/net/phy/at803x.c | 74 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 74 insertions(+)
-diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
-index 481cf48c9b9e4..a6536ecf15db4 100644
--- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c
-@@ -19,6 +19,7 @@
+@@ -14,6 +14,7 @@
#include <linux/etherdevice.h>
#include <linux/of_gpio.h>
#include <linux/gpio/consumer.h>
@@ -24,7 +22,7 @@ index 481cf48c9b9e4..a6536ecf15db4 100644
#define AT803X_SPECIFIC_STATUS 0x11
#define AT803X_SS_SPEED_MASK (3 << 14)
-@@ -57,9 +58,18 @@
+@@ -53,9 +54,18 @@
#define AT803X_MODE_CFG_MASK 0x0F
#define AT803X_MODE_CFG_SGMII 0x01
@@ -43,8 +41,8 @@ index 481cf48c9b9e4..a6536ecf15db4 100644
#define AT803X_DEBUG_REG_0 0x00
#define AT803X_DEBUG_RX_CLK_DLY_EN BIT(15)
-@@ -475,10 +485,56 @@ static int at803x_parse_dt(struct phy_device *phydev)
- return 0;
+@@ -243,10 +253,56 @@ static int at803x_resume(struct phy_devi
+ return phy_modify(phydev, MII_BMCR, BMCR_PDOWN | BMCR_ISOLATE, 0);
}
+static int at803x_mode(struct phy_device *phydev)
@@ -100,7 +98,7 @@ index 481cf48c9b9e4..a6536ecf15db4 100644
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
if (!priv)
-@@ -658,6 +714,10 @@ static int at803x_read_status(struct phy_device *phydev)
+@@ -394,6 +450,10 @@ static int at803x_read_status(struct phy
{
int ss, err, old_link = phydev->link;
@@ -111,7 +109,7 @@ index 481cf48c9b9e4..a6536ecf15db4 100644
/* Update the link, but return if there was an error */
err = genphy_update_link(phydev);
if (err)
-@@ -712,6 +772,19 @@ static int at803x_read_status(struct phy_device *phydev)
+@@ -448,6 +508,19 @@ static int at803x_read_status(struct phy
return 0;
}
@@ -130,8 +128,8 @@ index 481cf48c9b9e4..a6536ecf15db4 100644
+
static struct phy_driver at803x_driver[] = {
{
- /* Qualcomm Atheros AR8035 */
-@@ -758,6 +831,7 @@ static struct phy_driver at803x_driver[] = {
+ /* ATHEROS 8035 */
+@@ -491,6 +564,7 @@ static struct phy_driver at803x_driver[]
.suspend = at803x_suspend,
.resume = at803x_resume,
/* PHY_GBIT_FEATURES */