mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-19 05:38:00 +00:00
kernel: bump 5.10 to 5.10.110
Removed upstreamed: generic/backport-5.10/350-v5.18-MIPS-pgalloc-fix-memory-leak-caused-by-pgd_free.patch generic/pending-5.10/850-0014-PCI-aardvark-Fix-reading-PCI_EXP_RTSTA_PME-bit-on-em.patch ipq40xx/patches-5.10/105-ipq40xx-fix-sleep-clock.patch All patches automatically rebased. Build system: x86_64 Build-tested: bcm2711/RPi4B, mt7622/RT3200 Run-tested: bcm2711/RPi4B, mt7622/RT3200 Compile-/run-tested: ath79/generic (Archer C7 v2). Signed-off-by: John Audia <graysky@archlinux.us>
This commit is contained in:
parent
be381a7ac7
commit
b92ec82235
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.10 = .109
|
||||
LINUX_KERNEL_HASH-5.10.109 = 18fb22ecb249669ea775474aee614dcb0697cab299068074fd9f0bafa32113dc
|
||||
LINUX_VERSION-5.10 = .110
|
||||
LINUX_KERNEL_HASH-5.10.110 = dbef6a06325433481551cb8cfca9254d908d0ae950bc809f3da8ade00c485693
|
||||
|
@ -23,7 +23,7 @@ produce a noisy warning.
|
||||
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -427,10 +427,14 @@ static int xhci_try_enable_msi(struct us
|
||||
@@ -425,10 +425,14 @@ static int xhci_try_enable_msi(struct us
|
||||
free_irq(hcd->irq, hcd);
|
||||
hcd->irq = 0;
|
||||
|
||||
@ -43,7 +43,7 @@ produce a noisy warning.
|
||||
hcd->msi_enabled = 1;
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -1892,6 +1892,7 @@ struct xhci_hcd {
|
||||
@@ -1895,6 +1895,7 @@ struct xhci_hcd {
|
||||
struct xhci_hub usb2_rhub;
|
||||
struct xhci_hub usb3_rhub;
|
||||
/* support xHCI 1.0 spec USB2 hardware LPM */
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||
|
||||
--- a/sound/soc/codecs/Kconfig
|
||||
+++ b/sound/soc/codecs/Kconfig
|
||||
@@ -1003,7 +1003,7 @@ config SND_SOC_PCM3168A_SPI
|
||||
@@ -1008,7 +1008,7 @@ config SND_SOC_PCM3168A_SPI
|
||||
select REGMAP_SPI
|
||||
|
||||
config SND_SOC_PCM5102A
|
||||
|
@ -78,7 +78,7 @@ Link: https://lore.kernel.org/r/1611061165-30180-1-git-send-email-claudiu.beznea
|
||||
static u64 mchp_pit64b_clksrc_read(struct clocksource *cs)
|
||||
{
|
||||
return mchp_pit64b_cnt_read(mchp_pit64b_cs_base);
|
||||
@@ -128,7 +172,7 @@ static u64 mchp_pit64b_sched_read_clk(vo
|
||||
@@ -128,7 +172,7 @@ static u64 notrace mchp_pit64b_sched_rea
|
||||
|
||||
static int mchp_pit64b_clkevt_shutdown(struct clock_event_device *cedev)
|
||||
{
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
|
||||
|
||||
--- a/mm/page_alloc.c
|
||||
+++ b/mm/page_alloc.c
|
||||
@@ -8596,8 +8596,6 @@ int alloc_contig_range(unsigned long sta
|
||||
@@ -8603,8 +8603,6 @@ int alloc_contig_range(unsigned long sta
|
||||
|
||||
/* Make sure the range is really isolated. */
|
||||
if (test_pages_isolated(outer_start, end, 0)) {
|
||||
|
@ -12442,7 +12442,7 @@ Signed-off-by: Joerg Schambacher joerg@i2audio.com
|
||||
depends on I2C
|
||||
select SND_SOC_AD193X
|
||||
|
||||
@@ -804,7 +808,7 @@ config SND_SOC_HDAC_HDA
|
||||
@@ -809,7 +813,7 @@ config SND_SOC_HDAC_HDA
|
||||
select SND_HDA
|
||||
|
||||
config SND_SOC_ICS43432
|
||||
@ -12451,7 +12451,7 @@ Signed-off-by: Joerg Schambacher joerg@i2audio.com
|
||||
|
||||
config SND_SOC_INNO_RK3036
|
||||
tristate "Inno codec driver for RK3036 SoC"
|
||||
@@ -825,6 +829,13 @@ config SND_SOC_LOCHNAGAR_SC
|
||||
@@ -830,6 +834,13 @@ config SND_SOC_LOCHNAGAR_SC
|
||||
This driver support the sound card functionality of the Cirrus
|
||||
Logic Lochnagar audio development board.
|
||||
|
||||
@ -12465,7 +12465,7 @@ Signed-off-by: Joerg Schambacher joerg@i2audio.com
|
||||
config SND_SOC_MADERA
|
||||
tristate
|
||||
default y if SND_SOC_CS47L15=y
|
||||
@@ -1125,6 +1136,10 @@ config SND_SOC_RT5616
|
||||
@@ -1130,6 +1141,10 @@ config SND_SOC_RT5616
|
||||
tristate "Realtek RT5616 CODEC"
|
||||
depends on I2C
|
||||
|
||||
@ -12476,7 +12476,7 @@ Signed-off-by: Joerg Schambacher joerg@i2audio.com
|
||||
config SND_SOC_RT5631
|
||||
tristate "Realtek ALC5631/RT5631 CODEC"
|
||||
depends on I2C
|
||||
@@ -1346,6 +1361,9 @@ config SND_SOC_TFA9879
|
||||
@@ -1351,6 +1366,9 @@ config SND_SOC_TFA9879
|
||||
tristate "NXP Semiconductors TFA9879 amplifier"
|
||||
depends on I2C
|
||||
|
||||
@ -12486,7 +12486,7 @@ Signed-off-by: Joerg Schambacher joerg@i2audio.com
|
||||
config SND_SOC_TLV320AIC23
|
||||
tristate
|
||||
|
||||
@@ -1784,4 +1802,8 @@ config SND_SOC_TPA6130A2
|
||||
@@ -1789,4 +1807,8 @@ config SND_SOC_TPA6130A2
|
||||
tristate "Texas Instruments TPA6130A2 headphone amplifier"
|
||||
depends on I2C
|
||||
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1474,6 +1474,103 @@ command_cleanup:
|
||||
@@ -1472,6 +1472,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
|
||||
* we drop ownership so next owner (or urb unlink) can get it
|
||||
*/
|
||||
@@ -5380,6 +5477,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
@@ -5378,6 +5475,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
.endpoint_reset = xhci_endpoint_reset,
|
||||
.check_bandwidth = xhci_check_bandwidth,
|
||||
.reset_bandwidth = xhci_reset_bandwidth,
|
||||
|
@ -47,7 +47,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
val);
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -1653,8 +1653,8 @@ struct urb_priv {
|
||||
@@ -1656,8 +1656,8 @@ struct urb_priv {
|
||||
* Each segment table entry is 4*32bits long. 1K seems like an ok size:
|
||||
* (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
|
||||
* meaning 64 ring segments.
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
|
||||
|
||||
--- a/drivers/net/phy/broadcom.c
|
||||
+++ b/drivers/net/phy/broadcom.c
|
||||
@@ -313,6 +313,9 @@ static void bcm54xx_adjust_rxrefclk(stru
|
||||
@@ -314,6 +314,9 @@ static void bcm54xx_adjust_rxrefclk(stru
|
||||
static int bcm54xx_config_init(struct phy_device *phydev)
|
||||
{
|
||||
int reg, err, val;
|
||||
@ -24,7 +24,7 @@ Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
|
||||
|
||||
reg = phy_read(phydev, MII_BCM54XX_ECR);
|
||||
if (reg < 0)
|
||||
@@ -368,6 +371,8 @@ static int bcm54xx_config_init(struct ph
|
||||
@@ -369,6 +372,8 @@ static int bcm54xx_config_init(struct ph
|
||||
|
||||
bcm54xx_phydsp_config(phydev);
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
|
||||
/* Encode link speed into LED1 and LED3 pair (green/amber).
|
||||
* Also flash these two LEDs on activity. This means configuring
|
||||
* them for MULTICOLOR and encoding link/activity into them.
|
||||
@@ -377,8 +382,8 @@ static int bcm54xx_config_init(struct ph
|
||||
@@ -378,8 +383,8 @@ static int bcm54xx_config_init(struct ph
|
||||
bcm_phy_write_shadow(phydev, BCM5482_SHD_LEDS1, val);
|
||||
|
||||
val = BCM_LED_MULTICOLOR_IN_PHASE |
|
||||
|
@ -11,7 +11,7 @@ releases.
|
||||
|
||||
--- a/drivers/net/phy/broadcom.c
|
||||
+++ b/drivers/net/phy/broadcom.c
|
||||
@@ -314,7 +314,7 @@ static int bcm54xx_config_init(struct ph
|
||||
@@ -315,7 +315,7 @@ static int bcm54xx_config_init(struct ph
|
||||
{
|
||||
int reg, err, val;
|
||||
u32 led_modes[] = {BCM_LED_MULTICOLOR_LINK_ACT,
|
||||
@ -20,7 +20,7 @@ releases.
|
||||
struct device_node *np = phydev->mdio.dev.of_node;
|
||||
|
||||
reg = phy_read(phydev, MII_BCM54XX_ECR);
|
||||
@@ -373,10 +373,6 @@ static int bcm54xx_config_init(struct ph
|
||||
@@ -374,10 +374,6 @@ static int bcm54xx_config_init(struct ph
|
||||
|
||||
of_property_read_u32_array(np, "led-modes", led_modes, 2);
|
||||
|
||||
|
@ -51,7 +51,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -1885,6 +1885,7 @@ struct xhci_hcd {
|
||||
@@ -1888,6 +1888,7 @@ struct xhci_hcd {
|
||||
#define XHCI_SG_TRB_CACHE_SIZE_QUIRK BIT_ULL(39)
|
||||
#define XHCI_NO_SOFT_RETRY BIT_ULL(40)
|
||||
#define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(42)
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm2711.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
@@ -510,8 +510,8 @@
|
||||
@@ -560,8 +560,8 @@
|
||||
msi-controller;
|
||||
msi-parent = <&pcie0>;
|
||||
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
|
||||
--- a/drivers/net/phy/broadcom.c
|
||||
+++ b/drivers/net/phy/broadcom.c
|
||||
@@ -252,7 +252,8 @@ static void bcm54xx_adjust_rxrefclk(stru
|
||||
@@ -253,7 +253,8 @@ static void bcm54xx_adjust_rxrefclk(stru
|
||||
BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610 &&
|
||||
BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610M &&
|
||||
BRCM_PHY_MODEL(phydev) != PHY_ID_BCM54810 &&
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
return;
|
||||
|
||||
val = bcm_phy_read_shadow(phydev, BCM54XX_SHD_SCR3);
|
||||
@@ -763,13 +764,21 @@ static struct phy_driver broadcom_driver
|
||||
@@ -784,13 +785,21 @@ static struct phy_driver broadcom_driver
|
||||
.config_intr = bcm_phy_config_intr,
|
||||
}, {
|
||||
.phy_id = PHY_ID_BCM54210E,
|
||||
@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
.phy_id = PHY_ID_BCM5461,
|
||||
.phy_id_mask = 0xfffffff0,
|
||||
.name = "Broadcom BCM5461",
|
||||
@@ -925,7 +934,8 @@ module_phy_driver(broadcom_drivers);
|
||||
@@ -946,7 +955,8 @@ module_phy_driver(broadcom_drivers);
|
||||
static struct mdio_device_id __maybe_unused broadcom_tbl[] = {
|
||||
{ PHY_ID_BCM5411, 0xfffffff0 },
|
||||
{ PHY_ID_BCM5421, 0xfffffff0 },
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/net/phy/broadcom.c
|
||||
+++ b/drivers/net/phy/broadcom.c
|
||||
@@ -82,6 +82,11 @@ static int bcm54210e_config_init(struct
|
||||
@@ -83,6 +83,11 @@ static int bcm54210e_config_init(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
static int bcm54612e_config_init(struct phy_device *phydev)
|
||||
{
|
||||
int reg;
|
||||
@@ -357,6 +362,9 @@ static int bcm54xx_config_init(struct ph
|
||||
@@ -358,6 +363,9 @@ static int bcm54xx_config_init(struct ph
|
||||
case PHY_ID_BCM54616S:
|
||||
err = bcm54616s_config_init(phydev);
|
||||
break;
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm2711.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
@@ -561,6 +561,7 @@
|
||||
@@ -611,6 +611,7 @@
|
||||
|
||||
&dsi1 {
|
||||
interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
||||
@@ -6528,9 +6528,7 @@ void amdgpu_dm_connector_init_helper(str
|
||||
@@ -6531,9 +6531,7 @@ void amdgpu_dm_connector_init_helper(str
|
||||
if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
|
||||
connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
|
||||
connector_type == DRM_MODE_CONNECTOR_eDP) {
|
||||
|
@ -254,7 +254,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
* clk_get_parent - return the parent of a clk
|
||||
* @clk: the clk whose parent gets returned
|
||||
*
|
||||
@@ -3838,6 +3958,7 @@ __clk_register(struct device *dev, struc
|
||||
@@ -3851,6 +3971,7 @@ __clk_register(struct device *dev, struc
|
||||
goto fail_parents;
|
||||
|
||||
INIT_HLIST_HEAD(&core->clks);
|
||||
|
@ -23,7 +23,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -1115,7 +1115,3 @@
|
||||
@@ -1165,7 +1165,3 @@
|
||||
&usb {
|
||||
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
@ -90,7 +90,7 @@ it on BCM4708 family.
|
||||
/*
|
||||
* Reset a halted HC.
|
||||
*
|
||||
@@ -608,10 +651,20 @@ static int xhci_init(struct usb_hcd *hcd
|
||||
@@ -606,10 +649,20 @@ static int xhci_init(struct usb_hcd *hcd
|
||||
|
||||
static int xhci_run_finished(struct xhci_hcd *xhci)
|
||||
{
|
||||
@ -114,7 +114,7 @@ it on BCM4708 family.
|
||||
xhci->shared_hcd->state = HC_STATE_RUNNING;
|
||||
xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
|
||||
|
||||
@@ -621,6 +674,10 @@ static int xhci_run_finished(struct xhci
|
||||
@@ -619,6 +672,10 @@ static int xhci_run_finished(struct xhci
|
||||
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
|
||||
"Finished xhci_run for USB3 roothub");
|
||||
return 0;
|
||||
@ -127,7 +127,7 @@ it on BCM4708 family.
|
||||
/*
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -1885,6 +1885,7 @@ struct xhci_hcd {
|
||||
@@ -1888,6 +1888,7 @@ struct xhci_hcd {
|
||||
#define XHCI_SG_TRB_CACHE_SIZE_QUIRK BIT_ULL(39)
|
||||
#define XHCI_NO_SOFT_RETRY BIT_ULL(40)
|
||||
#define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(42)
|
||||
|
@ -1,48 +0,0 @@
|
||||
From e852442da56f43795cb6255d90b9fd0c84b209bb Mon Sep 17 00:00:00 2001
|
||||
From: Yaliang Wang <Yaliang.Wang@windriver.com>
|
||||
Date: Thu, 10 Mar 2022 19:31:16 +0800
|
||||
Subject: [PATCH] MIPS: pgalloc: fix memory leak caused by pgd_free()
|
||||
|
||||
pgd page is freed by generic implementation pgd_free() since commit
|
||||
f9cb654cb550 ("asm-generic: pgalloc: provide generic pgd_free()"),
|
||||
however, there are scenarios that the system uses more than one page as
|
||||
the pgd table, in such cases the generic implementation pgd_free() won't
|
||||
be applicable anymore. For example, when PAGE_SIZE_4KB is enabled and
|
||||
MIPS_VA_BITS_48 is not enabled in a 64bit system, the macro "PGD_ORDER"
|
||||
will be set as "1", which will cause allocating two pages as the pgd
|
||||
table. Well, at the same time, the generic implementation pgd_free()
|
||||
just free one pgd page, which will result in the memory leak.
|
||||
|
||||
The memory leak can be easily detected by executing shell command:
|
||||
"while true; do ls > /dev/null; grep MemFree /proc/meminfo; done"
|
||||
|
||||
Fixes: f9cb654cb550 ("asm-generic: pgalloc: provide generic pgd_free()")
|
||||
Signed-off-by: Yaliang Wang <Yaliang.Wang@windriver.com>
|
||||
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
(cherry picked from commit 2bc5bab9a763d520937e4f3fe8df51c6a1eceb97)
|
||||
---
|
||||
arch/mips/include/asm/pgalloc.h | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
--- a/arch/mips/include/asm/pgalloc.h
|
||||
+++ b/arch/mips/include/asm/pgalloc.h
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#define __HAVE_ARCH_PMD_ALLOC_ONE
|
||||
#define __HAVE_ARCH_PUD_ALLOC_ONE
|
||||
+#define __HAVE_ARCH_PGD_FREE
|
||||
#include <asm-generic/pgalloc.h>
|
||||
|
||||
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
|
||||
@@ -49,6 +50,11 @@ static inline void pud_populate(struct m
|
||||
extern void pgd_init(unsigned long page);
|
||||
extern pgd_t *pgd_alloc(struct mm_struct *mm);
|
||||
|
||||
+static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
|
||||
+{
|
||||
+ free_pages((unsigned long)pgd, PGD_ORDER);
|
||||
+}
|
||||
+
|
||||
#define __pte_free_tlb(tlb,pte,address) \
|
||||
do { \
|
||||
pgtable_pte_page_dtor(pte); \
|
@ -33,7 +33,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
enum udp_conntrack {
|
||||
--- a/net/netfilter/nf_conntrack_proto_tcp.c
|
||||
+++ b/net/netfilter/nf_conntrack_proto_tcp.c
|
||||
@@ -1438,6 +1438,11 @@ void nf_conntrack_tcp_init_net(struct ne
|
||||
@@ -1447,6 +1447,11 @@ void nf_conntrack_tcp_init_net(struct ne
|
||||
tn->tcp_loose = nf_ct_tcp_loose;
|
||||
tn->tcp_be_liberal = nf_ct_tcp_be_liberal;
|
||||
tn->tcp_max_retrans = nf_ct_tcp_max_retrans;
|
||||
|
@ -1608,7 +1608,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
}
|
||||
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
|
||||
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
|
||||
@@ -1831,8 +1831,8 @@ static int axienet_probe(struct platform
|
||||
@@ -1843,8 +1843,8 @@ static int axienet_probe(struct platform
|
||||
struct device_node *np;
|
||||
struct axienet_local *lp;
|
||||
struct net_device *ndev;
|
||||
@ -1618,7 +1618,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
int addr_width = 32;
|
||||
u32 value;
|
||||
|
||||
@@ -2032,13 +2032,14 @@ static int axienet_probe(struct platform
|
||||
@@ -2044,13 +2044,14 @@ static int axienet_probe(struct platform
|
||||
dev_info(&pdev->dev, "Ethernet core IRQ not defined\n");
|
||||
|
||||
/* Retrieve the MAC address */
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
|
||||
|
||||
--- a/drivers/net/dsa/mt7530.c
|
||||
+++ b/drivers/net/dsa/mt7530.c
|
||||
@@ -1000,9 +1000,6 @@ mt753x_cpu_port_enable(struct dsa_switch
|
||||
@@ -998,9 +998,6 @@ mt753x_cpu_port_enable(struct dsa_switch
|
||||
mt7530_write(priv, MT7530_PVC_P(port),
|
||||
PORT_SPEC_TAG);
|
||||
|
||||
@ -24,7 +24,7 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
|
||||
/* Set CPU port number */
|
||||
if (priv->id == ID_MT7621)
|
||||
mt7530_rmw(priv, MT7530_MFC, CPU_MASK, CPU_EN | CPU_PORT(port));
|
||||
@@ -1138,6 +1135,20 @@ mt7530_stp_state_set(struct dsa_switch *
|
||||
@@ -1131,6 +1128,20 @@ mt7530_stp_state_set(struct dsa_switch *
|
||||
}
|
||||
|
||||
static int
|
||||
@ -45,7 +45,7 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
|
||||
mt7530_port_bridge_join(struct dsa_switch *ds, int port,
|
||||
struct net_device *bridge)
|
||||
{
|
||||
@@ -1357,6 +1368,63 @@ err:
|
||||
@@ -1331,6 +1342,63 @@ err:
|
||||
}
|
||||
|
||||
static int
|
||||
@ -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)
|
||||
{
|
||||
struct mt7530_dummy_poll p;
|
||||
@@ -2794,11 +2862,15 @@ static const struct dsa_switch_ops mt753
|
||||
@@ -2745,11 +2813,15 @@ static const struct dsa_switch_ops mt753
|
||||
.port_change_mtu = mt7530_port_change_mtu,
|
||||
.port_max_mtu = mt7530_port_max_mtu,
|
||||
.port_stp_state_set = mt7530_stp_state_set,
|
||||
|
@ -27,7 +27,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
#include <linux/of_mdio.h>
|
||||
#include <linux/of_net.h>
|
||||
#include <linux/of_platform.h>
|
||||
@@ -602,18 +603,14 @@ mt7530_mib_reset(struct dsa_switch *ds)
|
||||
@@ -600,18 +601,14 @@ mt7530_mib_reset(struct dsa_switch *ds)
|
||||
mt7530_write(priv, MT7530_MIB_CCR, CCR_MIB_ACTIVATE);
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
return mdiobus_write_nested(priv->bus, port, regnum, val);
|
||||
}
|
||||
|
||||
@@ -791,9 +788,8 @@ out:
|
||||
@@ -789,9 +786,8 @@ out:
|
||||
}
|
||||
|
||||
static int
|
||||
@ -59,7 +59,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
int devad;
|
||||
int ret;
|
||||
|
||||
@@ -809,10 +805,9 @@ mt7531_ind_phy_read(struct dsa_switch *d
|
||||
@@ -807,10 +803,9 @@ mt7531_ind_phy_read(struct dsa_switch *d
|
||||
}
|
||||
|
||||
static int
|
||||
@ -71,7 +71,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
int devad;
|
||||
int ret;
|
||||
|
||||
@@ -828,6 +823,22 @@ mt7531_ind_phy_write(struct dsa_switch *
|
||||
@@ -826,6 +821,22 @@ mt7531_ind_phy_write(struct dsa_switch *
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -94,7 +94,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static void
|
||||
mt7530_get_strings(struct dsa_switch *ds, int port, u32 stringset,
|
||||
uint8_t *data)
|
||||
@@ -1824,6 +1835,210 @@ mt7530_setup_gpio(struct mt7530_priv *pr
|
||||
@@ -1793,6 +1804,210 @@ mt7530_setup_gpio(struct mt7530_priv *pr
|
||||
return devm_gpiochip_add_data(dev, gc, priv);
|
||||
}
|
||||
|
||||
@ -305,7 +305,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
static int
|
||||
mt7530_setup(struct dsa_switch *ds)
|
||||
{
|
||||
@@ -2798,24 +3013,20 @@ static int
|
||||
@@ -2749,24 +2964,20 @@ static int
|
||||
mt753x_setup(struct dsa_switch *ds)
|
||||
{
|
||||
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,
|
||||
@@ -2852,8 +3063,6 @@ static const struct dsa_switch_ops mt753
|
||||
@@ -2803,8 +3014,6 @@ static const struct dsa_switch_ops mt753
|
||||
.get_tag_protocol = mtk_get_tag_protocol,
|
||||
.setup = mt753x_setup,
|
||||
.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_sset_count = mt7530_get_sset_count,
|
||||
.set_ageing_time = mt7530_set_ageing_time,
|
||||
@@ -3036,6 +3245,9 @@ mt7530_remove(struct mdio_device *mdiode
|
||||
@@ -2987,6 +3196,9 @@ mt7530_remove(struct mdio_device *mdiode
|
||||
dev_err(priv->dev, "Failed to disable io pwr: %d\n",
|
||||
ret);
|
||||
|
||||
@ -369,7 +369,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
#define MT7530_CPU_PORT 6
|
||||
#define MT7530_NUM_FDB_RECORDS 2048
|
||||
#define MT7530_ALL_MEMBERS 0xff
|
||||
@@ -401,6 +402,12 @@ enum mt7531_sgmii_force_duplex {
|
||||
@@ -392,6 +393,12 @@ enum mt7531_sgmii_force_duplex {
|
||||
#define SYS_CTRL_SW_RST BIT(1)
|
||||
#define SYS_CTRL_REG_RST BIT(0)
|
||||
|
||||
@ -382,7 +382,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
/* Register for PHY Indirect Access Control */
|
||||
#define MT7531_PHY_IAC 0x701C
|
||||
#define MT7531_PHY_ACS_ST BIT(31)
|
||||
@@ -722,6 +729,8 @@ static const char *p5_intf_modes(unsigne
|
||||
@@ -713,6 +720,8 @@ static const char *p5_intf_modes(unsigne
|
||||
}
|
||||
}
|
||||
|
||||
@ -391,7 +391,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
/* struct mt753x_info - This is the main data structure for holding the specific
|
||||
* part for each supported device
|
||||
* @sw_setup: Holding the handler to a device initialization
|
||||
@@ -746,8 +755,8 @@ struct mt753x_info {
|
||||
@@ -737,8 +746,8 @@ struct mt753x_info {
|
||||
enum mt753x_id id;
|
||||
|
||||
int (*sw_setup)(struct dsa_switch *ds);
|
||||
@ -402,7 +402,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
int (*pad_setup)(struct dsa_switch *ds, phy_interface_t interface);
|
||||
int (*cpu_port_config)(struct dsa_switch *ds, int port);
|
||||
bool (*phy_mode_supported)(struct dsa_switch *ds, int port,
|
||||
@@ -781,6 +790,10 @@ struct mt753x_info {
|
||||
@@ -772,6 +781,10 @@ struct mt753x_info {
|
||||
* registers
|
||||
* @p6_interface Holding the current port 6 interface
|
||||
* @p5_intf_sel: Holding the current port 5 interface select
|
||||
@ -413,7 +413,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
*/
|
||||
struct mt7530_priv {
|
||||
struct device *dev;
|
||||
@@ -802,6 +815,9 @@ struct mt7530_priv {
|
||||
@@ -793,6 +806,9 @@ struct mt7530_priv {
|
||||
struct mt7530_port ports[MT7530_NUM_PORTS];
|
||||
/* protect among processes for registers access*/
|
||||
struct mutex reg_mutex;
|
||||
|
@ -21,7 +21,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -881,8 +881,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru
|
||||
@@ -883,8 +883,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru
|
||||
|
||||
case PCI_EXP_DEVCAP:
|
||||
case PCI_EXP_DEVCTL:
|
||||
@ -35,7 +35,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
default:
|
||||
return PCI_BRIDGE_EMUL_NOT_HANDLED;
|
||||
}
|
||||
@@ -896,10 +901,6 @@ advk_pci_bridge_emul_pcie_conf_write(str
|
||||
@@ -898,10 +903,6 @@ advk_pci_bridge_emul_pcie_conf_write(str
|
||||
struct advk_pcie *pcie = bridge->data;
|
||||
|
||||
switch (reg) {
|
||||
@ -46,7 +46,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
case PCI_EXP_LNKCTL:
|
||||
advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg);
|
||||
if (new & PCI_EXP_LNKCTL_RL)
|
||||
@@ -921,6 +922,12 @@ advk_pci_bridge_emul_pcie_conf_write(str
|
||||
@@ -923,6 +924,12 @@ advk_pci_bridge_emul_pcie_conf_write(str
|
||||
advk_writel(pcie, new, PCIE_ISR0_REG);
|
||||
break;
|
||||
|
||||
|
@ -48,7 +48,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
/* Enable summary interrupt for GIC SPI source */
|
||||
reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK);
|
||||
@@ -1399,7 +1401,7 @@ static void advk_pcie_handle_msi(struct
|
||||
@@ -1401,7 +1403,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);
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1698,11 +1698,13 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1700,11 +1700,13 @@ static int advk_pcie_remove(struct platf
|
||||
struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie);
|
||||
int i;
|
||||
|
||||
|
@ -19,7 +19,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1696,6 +1696,7 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1698,6 +1698,7 @@ static int advk_pcie_remove(struct platf
|
||||
{
|
||||
struct advk_pcie *pcie = platform_get_drvdata(pdev);
|
||||
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;
|
||||
|
||||
/* Remove PCI bus with all devices */
|
||||
@@ -1704,6 +1705,11 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1706,6 +1707,11 @@ static int advk_pcie_remove(struct platf
|
||||
pci_remove_root_bus(bridge->bus);
|
||||
pci_unlock_rescan_remove();
|
||||
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1710,6 +1710,27 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1712,6 +1712,27 @@ static int advk_pcie_remove(struct platf
|
||||
val &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
|
||||
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
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1735,6 +1735,9 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1737,6 +1737,9 @@ static int advk_pcie_remove(struct platf
|
||||
advk_pcie_remove_msi_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
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1738,6 +1738,10 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1740,6 +1740,10 @@ static int advk_pcie_remove(struct platf
|
||||
/* Free config space for emulated root 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
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1742,6 +1742,11 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1744,6 +1744,11 @@ static int advk_pcie_remove(struct platf
|
||||
if (pcie->reset_gpio)
|
||||
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
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1751,6 +1751,9 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1753,6 +1753,9 @@ static int advk_pcie_remove(struct platf
|
||||
for (i = 0; i < OB_WIN_COUNT; i++)
|
||||
advk_pcie_disable_ob_win(pcie, i);
|
||||
|
||||
|
@ -72,7 +72,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+MODULE_LICENSE("GPL");
|
||||
--- a/kernel/sched/core.c
|
||||
+++ b/kernel/sched/core.c
|
||||
@@ -3065,6 +3065,7 @@ int wake_up_state(struct task_struct *p,
|
||||
@@ -3066,6 +3066,7 @@ int wake_up_state(struct task_struct *p,
|
||||
{
|
||||
return try_to_wake_up(p, state, 0);
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
--- a/drivers/mtd/ubi/build.c
|
||||
+++ b/drivers/mtd/ubi/build.c
|
||||
@@ -1192,6 +1192,73 @@ static struct mtd_info * __init open_mtd
|
||||
@@ -1185,6 +1185,73 @@ static struct mtd_info * __init open_mtd
|
||||
return mtd;
|
||||
}
|
||||
|
||||
@ -82,7 +82,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
static int __init ubi_init(void)
|
||||
{
|
||||
int err, i, k;
|
||||
@@ -1275,6 +1342,12 @@ static int __init ubi_init(void)
|
||||
@@ -1268,6 +1335,12 @@ static int __init ubi_init(void)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
@@ -565,6 +571,17 @@ full_scan:
|
||||
@@ -567,6 +573,17 @@ full_scan:
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/*
|
||||
* Get the required data from the packet.
|
||||
*/
|
||||
@@ -1130,7 +1136,7 @@ int nf_conntrack_tcp_packet(struct nf_co
|
||||
@@ -1139,7 +1145,7 @@ int nf_conntrack_tcp_packet(struct nf_co
|
||||
IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED &&
|
||||
timeouts[new_state] > timeouts[TCP_CONNTRACK_UNACK])
|
||||
timeout = timeouts[TCP_CONNTRACK_UNACK];
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
||||
|
||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||
@@ -5484,6 +5484,7 @@ static int mv88e6xxx_register_switch(str
|
||||
@@ -5485,6 +5485,7 @@ static int mv88e6xxx_register_switch(str
|
||||
ds->ops = &mv88e6xxx_switch_ops;
|
||||
ds->ageing_time_min = chip->info->age_time_coeff;
|
||||
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
|
||||
|
@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
/*
|
||||
* The Mellanox Tavor device gives false positive parity errors. Mark this
|
||||
* device with a broken_parity_status to allow PCI scanning code to "skip"
|
||||
@@ -3323,6 +3324,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
|
||||
@@ -3335,6 +3336,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
|
||||
|
||||
@ -42,7 +42,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
/*
|
||||
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.
|
||||
* To work around this, query the size it should be configured to by the
|
||||
@@ -3348,6 +3351,8 @@ static void quirk_intel_ntb(struct pci_d
|
||||
@@ -3360,6 +3363,8 @@ static void quirk_intel_ntb(struct pci_d
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb);
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
|
||||
|
||||
@ -51,7 +51,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
/*
|
||||
* Some BIOS implementations leave the Intel GPU interrupts enabled, even
|
||||
* though no one is handling them (e.g., if the i915 driver is never
|
||||
@@ -3386,6 +3391,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
|
||||
@@ -3398,6 +3403,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
|
||||
|
||||
|
@ -29,7 +29,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
/* PIO registers base address and register offsets */
|
||||
#define PIO_BASE_ADDR 0x4000
|
||||
#define PIO_CTRL (PIO_BASE_ADDR + 0x0)
|
||||
@@ -966,7 +962,7 @@ static int advk_sw_pci_bridge_init(struc
|
||||
@@ -968,7 +964,7 @@ static int advk_sw_pci_bridge_init(struc
|
||||
bridge->conf.pref_mem_limit = cpu_to_le16(PCI_PREF_RANGE_TYPE_64);
|
||||
|
||||
/* Support interrupt A for MSI feature */
|
||||
|
@ -27,7 +27,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1393,7 +1393,7 @@ static void advk_pcie_remove_irq_domain(
|
||||
@@ -1395,7 +1395,7 @@ static void advk_pcie_remove_irq_domain(
|
||||
static void advk_pcie_handle_msi(struct advk_pcie *pcie)
|
||||
{
|
||||
u32 msi_val, msi_mask, msi_status, msi_idx;
|
||||
@ -36,7 +36,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
msi_mask = advk_readl(pcie, PCIE_MSI_MASK_REG);
|
||||
msi_val = advk_readl(pcie, PCIE_MSI_STATUS_REG);
|
||||
@@ -1403,13 +1403,12 @@ static void advk_pcie_handle_msi(struct
|
||||
@@ -1405,13 +1405,12 @@ static void advk_pcie_handle_msi(struct
|
||||
if (!(BIT(msi_idx) & msi_status))
|
||||
continue;
|
||||
|
||||
|
@ -32,7 +32,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1189,7 +1189,7 @@ static void advk_msi_irq_compose_msi_msg
|
||||
@@ -1191,7 +1191,7 @@ static void advk_msi_irq_compose_msi_msg
|
||||
|
||||
msg->address_lo = lower_32_bits(msi_msg);
|
||||
msg->address_hi = upper_32_bits(msi_msg);
|
||||
@ -41,7 +41,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
}
|
||||
|
||||
static int advk_msi_set_affinity(struct irq_data *irq_data,
|
||||
@@ -1206,15 +1206,11 @@ static int advk_msi_irq_domain_alloc(str
|
||||
@@ -1208,15 +1208,11 @@ static int advk_msi_irq_domain_alloc(str
|
||||
int hwirq, i;
|
||||
|
||||
mutex_lock(&pcie->msi_used_lock);
|
||||
@ -61,7 +61,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
for (i = 0; i < nr_irqs; i++)
|
||||
irq_domain_set_info(domain, virq + i, hwirq + i,
|
||||
@@ -1232,7 +1228,7 @@ static void advk_msi_irq_domain_free(str
|
||||
@@ -1234,7 +1230,7 @@ static void advk_msi_irq_domain_free(str
|
||||
struct advk_pcie *pcie = domain->host_data;
|
||||
|
||||
mutex_lock(&pcie->msi_used_lock);
|
||||
|
@ -31,7 +31,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
struct irq_domain *irq_domain;
|
||||
struct irq_chip irq_chip;
|
||||
raw_spinlock_t irq_lock;
|
||||
@@ -1442,21 +1443,26 @@ static void advk_pcie_handle_int(struct
|
||||
@@ -1444,21 +1445,26 @@ static void advk_pcie_handle_int(struct
|
||||
}
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
}
|
||||
|
||||
static void __maybe_unused advk_pcie_disable_phy(struct advk_pcie *pcie)
|
||||
@@ -1523,7 +1529,7 @@ static int advk_pcie_probe(struct platfo
|
||||
@@ -1525,7 +1531,7 @@ static int advk_pcie_probe(struct platfo
|
||||
struct advk_pcie *pcie;
|
||||
struct pci_host_bridge *bridge;
|
||||
struct resource_entry *entry;
|
||||
@ -77,7 +77,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
bridge = devm_pci_alloc_host_bridge(dev, sizeof(struct advk_pcie));
|
||||
if (!bridge)
|
||||
@@ -1611,17 +1617,9 @@ static int advk_pcie_probe(struct platfo
|
||||
@@ -1613,17 +1619,9 @@ static int advk_pcie_probe(struct platfo
|
||||
if (IS_ERR(pcie->base))
|
||||
return PTR_ERR(pcie->base);
|
||||
|
||||
@ -98,7 +98,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
pcie->reset_gpio = devm_gpiod_get_from_of_node(dev, dev->of_node,
|
||||
"reset-gpios", 0,
|
||||
@@ -1670,11 +1668,14 @@ static int advk_pcie_probe(struct platfo
|
||||
@@ -1672,11 +1670,14 @@ static int advk_pcie_probe(struct platfo
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -113,7 +113,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
advk_pcie_remove_msi_irq_domain(pcie);
|
||||
advk_pcie_remove_irq_domain(pcie);
|
||||
return ret;
|
||||
@@ -1722,6 +1723,9 @@ static int advk_pcie_remove(struct platf
|
||||
@@ -1724,6 +1725,9 @@ static int advk_pcie_remove(struct platf
|
||||
advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG);
|
||||
advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG);
|
||||
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1439,7 +1439,9 @@ static void advk_pcie_handle_int(struct
|
||||
@@ -1441,7 +1441,9 @@ static void advk_pcie_handle_int(struct
|
||||
PCIE_ISR1_REG);
|
||||
|
||||
virq = irq_find_mapping(pcie->irq_domain, i);
|
||||
|
@ -34,7 +34,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
struct msi_domain_info msi_domain_info;
|
||||
DECLARE_BITMAP(msi_used, MSI_IRQ_NUM);
|
||||
struct mutex msi_used_lock;
|
||||
@@ -1199,6 +1197,12 @@ static int advk_msi_set_affinity(struct
|
||||
@@ -1201,6 +1199,12 @@ static int advk_msi_set_affinity(struct
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
static int advk_msi_irq_domain_alloc(struct irq_domain *domain,
|
||||
unsigned int virq,
|
||||
unsigned int nr_irqs, void *args)
|
||||
@@ -1215,7 +1219,7 @@ static int advk_msi_irq_domain_alloc(str
|
||||
@@ -1217,7 +1221,7 @@ static int advk_msi_irq_domain_alloc(str
|
||||
|
||||
for (i = 0; i < nr_irqs; i++)
|
||||
irq_domain_set_info(domain, virq + i, hwirq + i,
|
||||
@ -56,7 +56,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
domain->host_data, handle_simple_irq,
|
||||
NULL, NULL);
|
||||
|
||||
@@ -1285,29 +1289,23 @@ static const struct irq_domain_ops advk_
|
||||
@@ -1287,29 +1291,23 @@ static const struct irq_domain_ops advk_
|
||||
.xlate = irq_domain_xlate_onecell,
|
||||
};
|
||||
|
||||
|
@ -25,7 +25,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
DECLARE_BITMAP(msi_used, MSI_IRQ_NUM);
|
||||
struct mutex msi_used_lock;
|
||||
u16 msi_msg;
|
||||
@@ -1293,20 +1292,20 @@ static struct irq_chip advk_msi_irq_chip
|
||||
@@ -1295,20 +1294,20 @@ static struct irq_chip advk_msi_irq_chip
|
||||
.name = "advk-MSI",
|
||||
};
|
||||
|
||||
@ -52,7 +52,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
msi_msg_phys = virt_to_phys(&pcie->msi_msg);
|
||||
|
||||
advk_writel(pcie, lower_32_bits(msi_msg_phys),
|
||||
@@ -1322,7 +1321,8 @@ static int advk_pcie_init_msi_irq_domain
|
||||
@@ -1324,7 +1323,8 @@ static int advk_pcie_init_msi_irq_domain
|
||||
|
||||
pcie->msi_domain =
|
||||
pci_msi_create_irq_domain(of_node_to_fwnode(node),
|
||||
|
@ -21,7 +21,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1301,7 +1301,6 @@ static struct msi_domain_info advk_msi_d
|
||||
@@ -1303,7 +1303,6 @@ static struct msi_domain_info advk_msi_d
|
||||
static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie)
|
||||
{
|
||||
struct device *dev = &pcie->pdev->dev;
|
||||
@ -29,7 +29,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
phys_addr_t msi_msg_phys;
|
||||
|
||||
mutex_init(&pcie->msi_used_lock);
|
||||
@@ -1320,7 +1319,7 @@ static int advk_pcie_init_msi_irq_domain
|
||||
@@ -1322,7 +1321,7 @@ static int advk_pcie_init_msi_irq_domain
|
||||
return -ENOMEM;
|
||||
|
||||
pcie->msi_domain =
|
||||
|
@ -43,7 +43,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
/* Unmask summary MSI interrupt */
|
||||
reg = advk_readl(pcie, PCIE_ISR0_MASK_REG);
|
||||
@@ -1198,10 +1197,52 @@ static int advk_msi_set_affinity(struct
|
||||
@@ -1200,10 +1199,52 @@ static int advk_msi_set_affinity(struct
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -96,7 +96,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
};
|
||||
|
||||
static int advk_msi_irq_domain_alloc(struct irq_domain *domain,
|
||||
@@ -1291,7 +1332,9 @@ static const struct irq_domain_ops advk_
|
||||
@@ -1293,7 +1334,9 @@ static const struct irq_domain_ops advk_
|
||||
};
|
||||
|
||||
static struct irq_chip advk_msi_irq_chip = {
|
||||
@ -107,7 +107,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
};
|
||||
|
||||
static struct msi_domain_info advk_msi_domain_info = {
|
||||
@@ -1305,6 +1348,7 @@ static int advk_pcie_init_msi_irq_domain
|
||||
@@ -1307,6 +1350,7 @@ static int advk_pcie_init_msi_irq_domain
|
||||
struct device *dev = &pcie->pdev->dev;
|
||||
phys_addr_t msi_msg_phys;
|
||||
|
||||
|
@ -56,7 +56,7 @@ Cc: stable@vger.kernel.org # f21a8b1b6837 ("PCI: aardvark: Move to MSI handling
|
||||
/* Enable MSI */
|
||||
reg = advk_readl(pcie, PCIE_CORE_CTRL2_REG);
|
||||
reg |= PCIE_CORE_CTRL2_MSI_ENABLE;
|
||||
@@ -1184,10 +1189,10 @@ static void advk_msi_irq_compose_msi_msg
|
||||
@@ -1186,10 +1191,10 @@ static void advk_msi_irq_compose_msi_msg
|
||||
struct msi_msg *msg)
|
||||
{
|
||||
struct advk_pcie *pcie = irq_data_get_irq_chip_data(data);
|
||||
@ -70,7 +70,7 @@ Cc: stable@vger.kernel.org # f21a8b1b6837 ("PCI: aardvark: Move to MSI handling
|
||||
msg->data = data->hwirq;
|
||||
}
|
||||
|
||||
@@ -1346,18 +1351,10 @@ static struct msi_domain_info advk_msi_d
|
||||
@@ -1348,18 +1353,10 @@ static struct msi_domain_info advk_msi_d
|
||||
static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie)
|
||||
{
|
||||
struct device *dev = &pcie->pdev->dev;
|
||||
|
@ -27,7 +27,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -1344,7 +1344,7 @@ static struct irq_chip advk_msi_irq_chip
|
||||
@@ -1346,7 +1346,7 @@ static struct irq_chip advk_msi_irq_chip
|
||||
|
||||
static struct msi_domain_info advk_msi_domain_info = {
|
||||
.flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
|
||||
|
@ -78,7 +78,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
if (mask & (PCI_BRIDGE_CTL_BUS_RESET << 16)) {
|
||||
u32 val = advk_readl(pcie, PCIE_CORE_CTRL1_REG);
|
||||
if (new & (PCI_BRIDGE_CTL_BUS_RESET << 16))
|
||||
@@ -1466,6 +1487,19 @@ static void advk_pcie_handle_int(struct
|
||||
@@ -1468,6 +1489,19 @@ static void advk_pcie_handle_int(struct
|
||||
isr1_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG);
|
||||
isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK);
|
||||
|
||||
|
@ -1,44 +0,0 @@
|
||||
From 5f354992eeef9a51c67796dc9f7f578d3584baa2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
|
||||
Date: Wed, 8 Dec 2021 05:57:54 +0100
|
||||
Subject: [PATCH] PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated
|
||||
bridge
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The emulated bridge returns incorrect value for PCI_EXP_RTSTA register
|
||||
during readout in advk_pci_bridge_emul_pcie_conf_read() function: the
|
||||
correct bit is BIT(16), but we are setting BIT(23), because the code
|
||||
does
|
||||
*value = (isr0 & PCIE_MSG_PM_PME_MASK) << 16
|
||||
where
|
||||
PCIE_MSG_PM_PME_MASK
|
||||
is
|
||||
BIT(7).
|
||||
|
||||
The code should probably have been something like
|
||||
*value = (!!(isr0 & PCIE_MSG_PM_PME_MASK)) << 16,
|
||||
but we are better of using an if() and using the proper macro for this
|
||||
bit.
|
||||
|
||||
Fixes: 8a3ebd8de328 ("PCI: aardvark: Implement emulated root PCI bridge config space")
|
||||
Signed-off-by: Pali Rohár <pali@kernel.org>
|
||||
Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
---
|
||||
drivers/pci/controller/pci-aardvark.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/pci/controller/pci-aardvark.c
|
||||
+++ b/drivers/pci/controller/pci-aardvark.c
|
||||
@@ -874,7 +874,9 @@ advk_pci_bridge_emul_pcie_conf_read(stru
|
||||
case PCI_EXP_RTSTA: {
|
||||
u32 isr0 = advk_readl(pcie, PCIE_ISR0_REG);
|
||||
u32 msglog = advk_readl(pcie, PCIE_MSG_LOG_REG);
|
||||
- *value = (isr0 & PCIE_MSG_PM_PME_MASK) << 16 | (msglog >> 16);
|
||||
+ *value = msglog >> 16;
|
||||
+ if (isr0 & PCIE_MSG_PM_PME_MASK)
|
||||
+ *value |= PCI_EXP_RTSTA_PME;
|
||||
return PCI_BRIDGE_EMUL_HANDLED;
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
|
||||
|
||||
--- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
|
||||
+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi
|
||||
@@ -605,5 +605,79 @@
|
||||
@@ -606,5 +606,79 @@
|
||||
reg = <4>;
|
||||
};
|
||||
};
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
|
||||
|
||||
--- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
|
||||
+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi
|
||||
@@ -190,7 +190,7 @@
|
||||
@@ -191,7 +191,7 @@
|
||||
reg = <0x1800000 0x60000>;
|
||||
};
|
||||
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
|
||||
compatible = "qcom,prng";
|
||||
reg = <0x22000 0x140>;
|
||||
clocks = <&gcc GCC_PRNG_AHB_CLK>;
|
||||
@@ -300,7 +300,7 @@
|
||||
@@ -301,7 +301,7 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@ -33,7 +33,7 @@ Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
|
||||
compatible = "qcom,crypto-v5.1";
|
||||
reg = <0x08e3a000 0x6000>;
|
||||
clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
|
||||
@@ -386,7 +386,7 @@
|
||||
@@ -387,7 +387,7 @@
|
||||
dma-names = "rx", "tx";
|
||||
};
|
||||
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
|
||||
|
||||
--- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
|
||||
+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi
|
||||
@@ -209,6 +209,16 @@
|
||||
@@ -210,6 +210,16 @@
|
||||
interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
|
@ -1,26 +0,0 @@
|
||||
From a63c7162a1dae9f1185897641dc3e47e295563d6 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Kubelun <be.dissent@gmail.com>
|
||||
Date: Mon, 6 May 2019 20:55:16 +0300
|
||||
Subject: [PATCH] ARM: dts: qcom: ipq4019: fix sleep clock
|
||||
|
||||
It seems like sleep_clk was copied from ipq806x.
|
||||
Fix ipq40xx sleep_clk to the value QSDK defines.
|
||||
|
||||
Link: https://source.codeaurora.org/quic/qsdk/oss/kernel/linux-msm/commit/?id=d92ec59973484acc86dd24b67f10f8911b4b4b7d
|
||||
Link: https://patchwork.kernel.org/comment/22721613/
|
||||
Suggested-by: Bjorn Andersson <bjorn.andersson@linaro.org> [clock-output-names]
|
||||
Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
|
||||
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [just fixed the value]
|
||||
---
|
||||
--- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
|
||||
+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi
|
||||
@@ -142,7 +142,8 @@
|
||||
clocks {
|
||||
sleep_clk: sleep_clk {
|
||||
compatible = "fixed-clock";
|
||||
- clock-frequency = <32768>;
|
||||
+ clock-frequency = <32000>;
|
||||
+ clock-output-names = "gcc_sleep_clk_src";
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
@ -21,7 +21,7 @@
|
||||
static void qcom_scm_set_download_mode(bool enable)
|
||||
{
|
||||
bool avail;
|
||||
@@ -1256,6 +1270,13 @@ static int qcom_scm_probe(struct platfor
|
||||
@@ -1250,6 +1264,13 @@ static int qcom_scm_probe(struct platfor
|
||||
if (download_mode)
|
||||
qcom_scm_set_download_mode(true);
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/drivers/firmware/qcom_scm.c
|
||||
+++ b/drivers/firmware/qcom_scm.c
|
||||
@@ -1275,6 +1275,7 @@ static const struct of_device_id qcom_sc
|
||||
@@ -1269,6 +1269,7 @@ static const struct of_device_id qcom_sc
|
||||
SCM_HAS_BUS_CLK)
|
||||
},
|
||||
{ .compatible = "qcom,scm-ipq4019" },
|
||||
|
@ -5481,7 +5481,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
(transaction layer end-to-end CRC checking).
|
||||
--- a/include/linux/pci.h
|
||||
+++ b/include/linux/pci.h
|
||||
@@ -1419,6 +1419,8 @@ void pci_walk_bus(struct pci_bus *top, i
|
||||
@@ -1420,6 +1420,8 @@ void pci_walk_bus(struct pci_bus *top, i
|
||||
void *userdata);
|
||||
int pci_cfg_space_size(struct pci_dev *dev);
|
||||
unsigned char pci_bus_max_busnr(struct pci_bus *bus);
|
||||
|
@ -19,7 +19,7 @@
|
||||
},
|
||||
[PORT_NPCM] = {
|
||||
.name = "Nuvoton 16550",
|
||||
@@ -2725,6 +2725,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2735,6 +2735,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
unsigned long flags;
|
||||
unsigned int baud, quot, frac = 0;
|
||||
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
|
||||
#include <linux/platform_data/x86/apple.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/suspend.h>
|
||||
@@ -5772,3 +5773,34 @@ static void nvidia_ion_ahci_fixup(struct
|
||||
@@ -5784,3 +5785,34 @@ static void nvidia_ion_ahci_fixup(struct
|
||||
pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING;
|
||||
}
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);
|
||||
|
Loading…
Reference in New Issue
Block a user