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:
John Audia 2022-04-08 12:35:54 -04:00 committed by Hauke Mehrtens
parent be381a7ac7
commit b92ec82235
61 changed files with 111 additions and 229 deletions

View File

@ -1,2 +1,2 @@
LINUX_VERSION-5.10 = .109 LINUX_VERSION-5.10 = .110
LINUX_KERNEL_HASH-5.10.109 = 18fb22ecb249669ea775474aee614dcb0697cab299068074fd9f0bafa32113dc LINUX_KERNEL_HASH-5.10.110 = dbef6a06325433481551cb8cfca9254d908d0ae950bc809f3da8ade00c485693

View File

@ -23,7 +23,7 @@ produce a noisy warning.
xhci->quirks |= XHCI_RESET_ON_RESUME; xhci->quirks |= XHCI_RESET_ON_RESUME;
--- a/drivers/usb/host/xhci.c --- a/drivers/usb/host/xhci.c
+++ b/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); free_irq(hcd->irq, hcd);
hcd->irq = 0; hcd->irq = 0;
@ -43,7 +43,7 @@ produce a noisy warning.
hcd->msi_enabled = 1; hcd->msi_enabled = 1;
--- a/drivers/usb/host/xhci.h --- a/drivers/usb/host/xhci.h
+++ b/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 usb2_rhub;
struct xhci_hub usb3_rhub; struct xhci_hub usb3_rhub;
/* support xHCI 1.0 spec USB2 hardware LPM */ /* support xHCI 1.0 spec USB2 hardware LPM */

View File

@ -17,7 +17,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
--- a/sound/soc/codecs/Kconfig --- a/sound/soc/codecs/Kconfig
+++ b/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 select REGMAP_SPI
config SND_SOC_PCM5102A config SND_SOC_PCM5102A

View File

@ -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) static u64 mchp_pit64b_clksrc_read(struct clocksource *cs)
{ {
return mchp_pit64b_cnt_read(mchp_pit64b_cs_base); 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) static int mchp_pit64b_clkevt_shutdown(struct clock_event_device *cedev)
{ {

View File

@ -14,7 +14,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
--- a/mm/page_alloc.c --- a/mm/page_alloc.c
+++ b/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. */ /* Make sure the range is really isolated. */
if (test_pages_isolated(outer_start, end, 0)) { if (test_pages_isolated(outer_start, end, 0)) {

View File

@ -12442,7 +12442,7 @@ Signed-off-by: Joerg Schambacher joerg@i2audio.com
depends on I2C depends on I2C
select SND_SOC_AD193X 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 select SND_HDA
config SND_SOC_ICS43432 config SND_SOC_ICS43432
@ -12451,7 +12451,7 @@ Signed-off-by: Joerg Schambacher joerg@i2audio.com
config SND_SOC_INNO_RK3036 config SND_SOC_INNO_RK3036
tristate "Inno codec driver for RK3036 SoC" 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 This driver support the sound card functionality of the Cirrus
Logic Lochnagar audio development board. Logic Lochnagar audio development board.
@ -12465,7 +12465,7 @@ Signed-off-by: Joerg Schambacher joerg@i2audio.com
config SND_SOC_MADERA config SND_SOC_MADERA
tristate tristate
default y if SND_SOC_CS47L15=y 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" tristate "Realtek RT5616 CODEC"
depends on I2C depends on I2C
@ -12476,7 +12476,7 @@ Signed-off-by: Joerg Schambacher joerg@i2audio.com
config SND_SOC_RT5631 config SND_SOC_RT5631
tristate "Realtek ALC5631/RT5631 CODEC" tristate "Realtek ALC5631/RT5631 CODEC"
depends on I2C depends on I2C
@@ -1346,6 +1361,9 @@ config SND_SOC_TFA9879 @@ -1351,6 +1366,9 @@ config SND_SOC_TFA9879
tristate "NXP Semiconductors TFA9879 amplifier" tristate "NXP Semiconductors TFA9879 amplifier"
depends on I2C depends on I2C
@ -12486,7 +12486,7 @@ Signed-off-by: Joerg Schambacher joerg@i2audio.com
config SND_SOC_TLV320AIC23 config SND_SOC_TLV320AIC23
tristate tristate
@@ -1784,4 +1802,8 @@ config SND_SOC_TPA6130A2 @@ -1789,4 +1807,8 @@ config SND_SOC_TPA6130A2
tristate "Texas Instruments TPA6130A2 headphone amplifier" tristate "Texas Instruments TPA6130A2 headphone amplifier"
depends on I2C depends on I2C

View File

@ -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: @@ -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 * 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 @@ -5378,6 +5475,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,

View File

@ -47,7 +47,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
val); val);
--- a/drivers/usb/host/xhci.h --- a/drivers/usb/host/xhci.h
+++ b/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: * 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, * (1K bytes * 8bytes/bit) / (4*32 bits) = 64 segment entries in the table,
* meaning 64 ring segments. * meaning 64 ring segments.

View File

@ -14,7 +14,7 @@ Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
--- a/drivers/net/phy/broadcom.c --- a/drivers/net/phy/broadcom.c
+++ b/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) static int bcm54xx_config_init(struct phy_device *phydev)
{ {
int reg, err, val; int reg, err, val;
@ -24,7 +24,7 @@ Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
reg = phy_read(phydev, MII_BCM54XX_ECR); reg = phy_read(phydev, MII_BCM54XX_ECR);
if (reg < 0) 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); 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). /* Encode link speed into LED1 and LED3 pair (green/amber).
* Also flash these two LEDs on activity. This means configuring * Also flash these two LEDs on activity. This means configuring
* them for MULTICOLOR and encoding link/activity into them. * 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); bcm_phy_write_shadow(phydev, BCM5482_SHD_LEDS1, val);
val = BCM_LED_MULTICOLOR_IN_PHASE | val = BCM_LED_MULTICOLOR_IN_PHASE |

View File

@ -11,7 +11,7 @@ releases.
--- a/drivers/net/phy/broadcom.c --- a/drivers/net/phy/broadcom.c
+++ b/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; int reg, err, val;
u32 led_modes[] = {BCM_LED_MULTICOLOR_LINK_ACT, u32 led_modes[] = {BCM_LED_MULTICOLOR_LINK_ACT,
@ -20,7 +20,7 @@ releases.
struct device_node *np = phydev->mdio.dev.of_node; struct device_node *np = phydev->mdio.dev.of_node;
reg = phy_read(phydev, MII_BCM54XX_ECR); 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); of_property_read_u32_array(np, "led-modes", led_modes, 2);

View File

@ -51,7 +51,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
--- a/drivers/usb/host/xhci.h --- a/drivers/usb/host/xhci.h
+++ b/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_SG_TRB_CACHE_SIZE_QUIRK BIT_ULL(39)
#define XHCI_NO_SOFT_RETRY BIT_ULL(40) #define XHCI_NO_SOFT_RETRY BIT_ULL(40)
#define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(42) #define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(42)

View File

@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/arch/arm/boot/dts/bcm2711.dtsi --- a/arch/arm/boot/dts/bcm2711.dtsi
+++ b/arch/arm/boot/dts/bcm2711.dtsi +++ b/arch/arm/boot/dts/bcm2711.dtsi
@@ -510,8 +510,8 @@ @@ -560,8 +560,8 @@
msi-controller; msi-controller;
msi-parent = <&pcie0>; msi-parent = <&pcie0>;

View File

@ -16,7 +16,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
--- a/drivers/net/phy/broadcom.c --- a/drivers/net/phy/broadcom.c
+++ b/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_BCM50610 &&
BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610M && BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610M &&
BRCM_PHY_MODEL(phydev) != PHY_ID_BCM54810 && BRCM_PHY_MODEL(phydev) != PHY_ID_BCM54810 &&
@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
return; return;
val = bcm_phy_read_shadow(phydev, BCM54XX_SHD_SCR3); 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, .config_intr = bcm_phy_config_intr,
}, { }, {
.phy_id = PHY_ID_BCM54210E, .phy_id = PHY_ID_BCM54210E,
@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
.phy_id = PHY_ID_BCM5461, .phy_id = PHY_ID_BCM5461,
.phy_id_mask = 0xfffffff0, .phy_id_mask = 0xfffffff0,
.name = "Broadcom BCM5461", .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[] = { static struct mdio_device_id __maybe_unused broadcom_tbl[] = {
{ PHY_ID_BCM5411, 0xfffffff0 }, { PHY_ID_BCM5411, 0xfffffff0 },
{ PHY_ID_BCM5421, 0xfffffff0 }, { PHY_ID_BCM5421, 0xfffffff0 },

View File

@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/net/phy/broadcom.c --- a/drivers/net/phy/broadcom.c
+++ b/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; return 0;
} }
@ -22,7 +22,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
static int bcm54612e_config_init(struct phy_device *phydev) static int bcm54612e_config_init(struct phy_device *phydev)
{ {
int reg; 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: case PHY_ID_BCM54616S:
err = bcm54616s_config_init(phydev); err = bcm54616s_config_init(phydev);
break; break;

View File

@ -13,7 +13,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/arch/arm/boot/dts/bcm2711.dtsi --- a/arch/arm/boot/dts/bcm2711.dtsi
+++ b/arch/arm/boot/dts/bcm2711.dtsi +++ b/arch/arm/boot/dts/bcm2711.dtsi
@@ -561,6 +561,7 @@ @@ -611,6 +611,7 @@
&dsi1 { &dsi1 {
interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;

View File

@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/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 || if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
connector_type == DRM_MODE_CONNECTOR_DisplayPort || connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
connector_type == DRM_MODE_CONNECTOR_eDP) { connector_type == DRM_MODE_CONNECTOR_eDP) {

View File

@ -254,7 +254,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
* clk_get_parent - return the parent of a clk * clk_get_parent - return the parent of a clk
* @clk: the clk whose parent gets returned * @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; goto fail_parents;
INIT_HLIST_HEAD(&core->clks); INIT_HLIST_HEAD(&core->clks);

View File

@ -23,7 +23,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
status = "disabled"; status = "disabled";
}; };
@@ -1115,7 +1115,3 @@ @@ -1165,7 +1165,3 @@
&usb { &usb {
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
}; };

View File

@ -90,7 +90,7 @@ it on BCM4708 family.
/* /*
* Reset a halted HC. * 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) 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->shared_hcd->state = HC_STATE_RUNNING;
xhci->cmd_ring_state = CMD_RING_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, xhci_dbg_trace(xhci, trace_xhci_dbg_init,
"Finished xhci_run for USB3 roothub"); "Finished xhci_run for USB3 roothub");
return 0; return 0;
@ -127,7 +127,7 @@ it on BCM4708 family.
/* /*
--- a/drivers/usb/host/xhci.h --- a/drivers/usb/host/xhci.h
+++ b/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_SG_TRB_CACHE_SIZE_QUIRK BIT_ULL(39)
#define XHCI_NO_SOFT_RETRY BIT_ULL(40) #define XHCI_NO_SOFT_RETRY BIT_ULL(40)
#define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(42) #define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(42)

View File

@ -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); \

View File

@ -33,7 +33,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
enum udp_conntrack { enum udp_conntrack {
--- a/net/netfilter/nf_conntrack_proto_tcp.c --- a/net/netfilter/nf_conntrack_proto_tcp.c
+++ b/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_loose = nf_ct_tcp_loose;
tn->tcp_be_liberal = nf_ct_tcp_be_liberal; tn->tcp_be_liberal = nf_ct_tcp_be_liberal;
tn->tcp_max_retrans = nf_ct_tcp_max_retrans; tn->tcp_max_retrans = nf_ct_tcp_max_retrans;

View File

@ -1608,7 +1608,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
} }
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
+++ b/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 device_node *np;
struct axienet_local *lp; struct axienet_local *lp;
struct net_device *ndev; struct net_device *ndev;
@ -1618,7 +1618,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
int addr_width = 32; int addr_width = 32;
u32 value; 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"); dev_info(&pdev->dev, "Ethernet core IRQ not defined\n");
/* Retrieve the MAC address */ /* Retrieve the MAC address */

View File

@ -14,7 +14,7 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/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), mt7530_write(priv, MT7530_PVC_P(port),
PORT_SPEC_TAG); PORT_SPEC_TAG);
@ -24,7 +24,7 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
/* Set CPU port number */ /* Set CPU port number */
if (priv->id == ID_MT7621) if (priv->id == ID_MT7621)
mt7530_rmw(priv, MT7530_MFC, CPU_MASK, CPU_EN | CPU_PORT(port)); 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 static int
@ -45,7 +45,7 @@ Signed-off-by: DENG Qingfang <dqfext@gmail.com>
mt7530_port_bridge_join(struct dsa_switch *ds, int port, mt7530_port_bridge_join(struct dsa_switch *ds, int port,
struct net_device *bridge) struct net_device *bridge)
{ {
@@ -1357,6 +1368,63 @@ err: @@ -1331,6 +1342,63 @@ err:
} }
static int 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) mt7530_vlan_cmd(struct mt7530_priv *priv, enum mt7530_vlan_cmd cmd, u16 vid)
{ {
struct mt7530_dummy_poll p; 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_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,

View File

@ -27,7 +27,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
#include <linux/of_mdio.h> #include <linux/of_mdio.h>
#include <linux/of_net.h> #include <linux/of_net.h>
#include <linux/of_platform.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); 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); return mdiobus_write_nested(priv->bus, port, regnum, val);
} }
@@ -791,9 +788,8 @@ out: @@ -789,9 +786,8 @@ out:
} }
static int static int
@ -59,7 +59,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
int devad; int devad;
int ret; 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 static int
@ -71,7 +71,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
int devad; int devad;
int ret; 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; return ret;
} }
@ -94,7 +94,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static void static void
mt7530_get_strings(struct dsa_switch *ds, int port, u32 stringset, mt7530_get_strings(struct dsa_switch *ds, int port, u32 stringset,
uint8_t *data) 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); return devm_gpiochip_add_data(dev, gc, priv);
} }
@ -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)
{ {
@@ -2798,24 +3013,20 @@ static int @@ -2749,24 +2964,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,
@@ -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, .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,
@@ -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", dev_err(priv->dev, "Failed to disable io pwr: %d\n",
ret); ret);
@ -369,7 +369,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
#define MT7530_CPU_PORT 6 #define MT7530_CPU_PORT 6
#define MT7530_NUM_FDB_RECORDS 2048 #define MT7530_NUM_FDB_RECORDS 2048
#define MT7530_ALL_MEMBERS 0xff #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_SW_RST BIT(1)
#define SYS_CTRL_REG_RST BIT(0) #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 */ /* Register for PHY Indirect Access Control */
#define MT7531_PHY_IAC 0x701C #define MT7531_PHY_IAC 0x701C
#define MT7531_PHY_ACS_ST BIT(31) #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 /* struct mt753x_info - This is the main data structure for holding the specific
* part for each supported device * part for each supported device
* @sw_setup: Holding the handler to a device initialization * @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; enum mt753x_id id;
int (*sw_setup)(struct dsa_switch *ds); 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 (*pad_setup)(struct dsa_switch *ds, phy_interface_t interface);
int (*cpu_port_config)(struct dsa_switch *ds, int port); int (*cpu_port_config)(struct dsa_switch *ds, int port);
bool (*phy_mode_supported)(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 * registers
* @p6_interface Holding the current port 6 interface * @p6_interface Holding the current port 6 interface
* @p5_intf_sel: Holding the current port 5 interface select * @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 mt7530_priv {
struct device *dev; struct device *dev;
@@ -802,6 +815,9 @@ struct mt7530_priv { @@ -793,6 +806,9 @@ struct mt7530_priv {
struct mt7530_port ports[MT7530_NUM_PORTS]; struct mt7530_port ports[MT7530_NUM_PORTS];
/* protect among processes for registers access*/ /* protect among processes for registers access*/
struct mutex reg_mutex; struct mutex reg_mutex;

View File

@ -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
@@ -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_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;
} }
@@ -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; 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)
@@ -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); advk_writel(pcie, new, PCIE_ISR0_REG);
break; break;

View File

@ -48,7 +48,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
/* Enable summary interrupt for GIC SPI source */ /* Enable summary interrupt for GIC SPI source */
reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK); 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_mask = advk_readl(pcie, PCIE_MSI_MASK_REG);
msi_val = advk_readl(pcie, PCIE_MSI_STATUS_REG); msi_val = advk_readl(pcie, PCIE_MSI_STATUS_REG);

View File

@ -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
@@ -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); struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie);
int i; int i;

View File

@ -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
@@ -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 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 */
@@ -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_remove_root_bus(bridge->bus);
pci_unlock_rescan_remove(); pci_unlock_rescan_remove();

View File

@ -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
@@ -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); 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);

View File

@ -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
@@ -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_msi_irq_domain(pcie);
advk_pcie_remove_irq_domain(pcie); advk_pcie_remove_irq_domain(pcie);

View File

@ -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
@@ -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 */ /* Free config space for emulated root bridge */
pci_bridge_emul_cleanup(&pcie->bridge); pci_bridge_emul_cleanup(&pcie->bridge);

View File

@ -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
@@ -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) if (pcie->reset_gpio)
gpiod_set_value_cansleep(pcie->reset_gpio, 1); gpiod_set_value_cansleep(pcie->reset_gpio, 1);

View File

@ -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
@@ -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++) for (i = 0; i < OB_WIN_COUNT; i++)
advk_pcie_disable_ob_win(pcie, i); advk_pcie_disable_ob_win(pcie, i);

View File

@ -72,7 +72,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+MODULE_LICENSE("GPL"); +MODULE_LICENSE("GPL");
--- a/kernel/sched/core.c --- a/kernel/sched/core.c
+++ b/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); return try_to_wake_up(p, state, 0);
} }

View File

@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/mtd/ubi/build.c --- a/drivers/mtd/ubi/build.c
+++ b/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; return mtd;
} }
@ -82,7 +82,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
static int __init ubi_init(void) static int __init ubi_init(void)
{ {
int err, i, k; int err, i, k;
@@ -1275,6 +1342,12 @@ static int __init ubi_init(void) @@ -1268,6 +1335,12 @@ static int __init ubi_init(void)
} }
} }

View File

@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (ret < 0) if (ret < 0)
goto out; goto out;
@@ -565,6 +571,17 @@ full_scan: @@ -567,6 +573,17 @@ full_scan:
return err; return err;
} }

View File

@ -28,7 +28,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* /*
* Get the required data from the packet. * 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 && IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED &&
timeouts[new_state] > timeouts[TCP_CONNTRACK_UNACK]) timeouts[new_state] > timeouts[TCP_CONNTRACK_UNACK])
timeout = timeouts[TCP_CONNTRACK_UNACK]; timeout = timeouts[TCP_CONNTRACK_UNACK];

View File

@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
--- a/drivers/net/dsa/mv88e6xxx/chip.c --- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/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->ops = &mv88e6xxx_switch_ops;
ds->ageing_time_min = chip->info->age_time_coeff; ds->ageing_time_min = chip->info->age_time_coeff;
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX; ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;

View File

@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/* /*
* The Mellanox Tavor device gives false positive parity errors. Mark this * The Mellanox Tavor device gives false positive parity errors. Mark this
* device with a broken_parity_status to allow PCI scanning code to "skip" * 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, 0x65f9, quirk_intel_mc_errata);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, 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. * 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 * 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, 0x0e08, quirk_intel_ntb);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, 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 * Some BIOS implementations leave the Intel GPU interrupts enabled, even
* though no one is handling them (e.g., if the i915 driver is never * 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, 0x010a, disable_igfx_irq);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);

View File

@ -29,7 +29,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
/* PIO registers base address and register offsets */ /* PIO registers base address and register offsets */
#define PIO_BASE_ADDR 0x4000 #define PIO_BASE_ADDR 0x4000
#define PIO_CTRL (PIO_BASE_ADDR + 0x0) #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); bridge->conf.pref_mem_limit = cpu_to_le16(PCI_PREF_RANGE_TYPE_64);
/* Support interrupt A for MSI feature */ /* Support interrupt A for MSI feature */

View File

@ -27,7 +27,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
--- 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
@@ -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) static void advk_pcie_handle_msi(struct advk_pcie *pcie)
{ {
u32 msi_val, msi_mask, msi_status, msi_idx; 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_mask = advk_readl(pcie, PCIE_MSI_MASK_REG);
msi_val = advk_readl(pcie, PCIE_MSI_STATUS_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)) if (!(BIT(msi_idx) & msi_status))
continue; continue;

View File

@ -32,7 +32,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
--- 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
@@ -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_lo = lower_32_bits(msi_msg);
msg->address_hi = upper_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, 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; int hwirq, i;
mutex_lock(&pcie->msi_used_lock); 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++) for (i = 0; i < nr_irqs; i++)
irq_domain_set_info(domain, virq + i, hwirq + 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; struct advk_pcie *pcie = domain->host_data;
mutex_lock(&pcie->msi_used_lock); mutex_lock(&pcie->msi_used_lock);

View File

@ -31,7 +31,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
struct irq_domain *irq_domain; struct irq_domain *irq_domain;
struct irq_chip irq_chip; struct irq_chip irq_chip;
raw_spinlock_t irq_lock; 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) 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 advk_pcie *pcie;
struct pci_host_bridge *bridge; struct pci_host_bridge *bridge;
struct resource_entry *entry; 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)); bridge = devm_pci_alloc_host_bridge(dev, sizeof(struct advk_pcie));
if (!bridge) 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)) if (IS_ERR(pcie->base))
return PTR_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, pcie->reset_gpio = devm_gpiod_get_from_of_node(dev, dev->of_node,
"reset-gpios", 0, "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; 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_msi_irq_domain(pcie);
advk_pcie_remove_irq_domain(pcie); advk_pcie_remove_irq_domain(pcie);
return ret; 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_ISR1_ALL_MASK, PCIE_ISR1_REG);
advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG); advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG);

View File

@ -18,7 +18,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
--- 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
@@ -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); PCIE_ISR1_REG);
virq = irq_find_mapping(pcie->irq_domain, i); virq = irq_find_mapping(pcie->irq_domain, i);

View File

@ -34,7 +34,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
struct msi_domain_info msi_domain_info; struct msi_domain_info msi_domain_info;
DECLARE_BITMAP(msi_used, MSI_IRQ_NUM); DECLARE_BITMAP(msi_used, MSI_IRQ_NUM);
struct mutex msi_used_lock; 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; 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, static int advk_msi_irq_domain_alloc(struct irq_domain *domain,
unsigned int virq, unsigned int virq,
unsigned int nr_irqs, void *args) 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++) for (i = 0; i < nr_irqs; i++)
irq_domain_set_info(domain, virq + i, hwirq + 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, domain->host_data, handle_simple_irq,
NULL, NULL); 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, .xlate = irq_domain_xlate_onecell,
}; };

View File

@ -25,7 +25,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
DECLARE_BITMAP(msi_used, MSI_IRQ_NUM); DECLARE_BITMAP(msi_used, MSI_IRQ_NUM);
struct mutex msi_used_lock; struct mutex msi_used_lock;
u16 msi_msg; 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", .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); msi_msg_phys = virt_to_phys(&pcie->msi_msg);
advk_writel(pcie, lower_32_bits(msi_msg_phys), 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 = pcie->msi_domain =
pci_msi_create_irq_domain(of_node_to_fwnode(node), pci_msi_create_irq_domain(of_node_to_fwnode(node),

View File

@ -21,7 +21,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
--- 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
@@ -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) static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie)
{ {
struct device *dev = &pcie->pdev->dev; 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; phys_addr_t msi_msg_phys;
mutex_init(&pcie->msi_used_lock); 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; return -ENOMEM;
pcie->msi_domain = pcie->msi_domain =

View File

@ -43,7 +43,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
/* Unmask summary MSI interrupt */ /* Unmask summary MSI interrupt */
reg = advk_readl(pcie, PCIE_ISR0_MASK_REG); 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; 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, 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 = { 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 = { 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; struct device *dev = &pcie->pdev->dev;
phys_addr_t msi_msg_phys; phys_addr_t msi_msg_phys;

View File

@ -56,7 +56,7 @@ Cc: stable@vger.kernel.org # f21a8b1b6837 ("PCI: aardvark: Move to MSI handling
/* Enable MSI */ /* Enable MSI */
reg = advk_readl(pcie, PCIE_CORE_CTRL2_REG); reg = advk_readl(pcie, PCIE_CORE_CTRL2_REG);
reg |= PCIE_CORE_CTRL2_MSI_ENABLE; 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 msi_msg *msg)
{ {
struct advk_pcie *pcie = irq_data_get_irq_chip_data(data); 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; 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) static int advk_pcie_init_msi_irq_domain(struct advk_pcie *pcie)
{ {
struct device *dev = &pcie->pdev->dev; struct device *dev = &pcie->pdev->dev;

View File

@ -27,7 +27,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
--- 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
@@ -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 = { static struct msi_domain_info advk_msi_domain_info = {
.flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS | .flags = MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |

View File

@ -78,7 +78,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
if (mask & (PCI_BRIDGE_CTL_BUS_RESET << 16)) { if (mask & (PCI_BRIDGE_CTL_BUS_RESET << 16)) {
u32 val = advk_readl(pcie, PCIE_CORE_CTRL1_REG); u32 val = advk_readl(pcie, PCIE_CORE_CTRL1_REG);
if (new & (PCI_BRIDGE_CTL_BUS_RESET << 16)) 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_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG);
isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK); isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK);

View File

@ -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;
}

View File

@ -17,7 +17,7 @@ Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
--- a/arch/arm/boot/dts/qcom-ipq4019.dtsi --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
+++ b/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>; reg = <4>;
}; };
}; };

View File

@ -15,7 +15,7 @@ Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
--- a/arch/arm/boot/dts/qcom-ipq4019.dtsi --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
+++ b/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>; reg = <0x1800000 0x60000>;
}; };
@ -24,7 +24,7 @@ Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
compatible = "qcom,prng"; compatible = "qcom,prng";
reg = <0x22000 0x140>; reg = <0x22000 0x140>;
clocks = <&gcc GCC_PRNG_AHB_CLK>; clocks = <&gcc GCC_PRNG_AHB_CLK>;
@@ -300,7 +300,7 @@ @@ -301,7 +301,7 @@
status = "disabled"; status = "disabled";
}; };
@ -33,7 +33,7 @@ Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
compatible = "qcom,crypto-v5.1"; compatible = "qcom,crypto-v5.1";
reg = <0x08e3a000 0x6000>; reg = <0x08e3a000 0x6000>;
clocks = <&gcc GCC_CRYPTO_AHB_CLK>, clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
@@ -386,7 +386,7 @@ @@ -387,7 +387,7 @@
dma-names = "rx", "tx"; dma-names = "rx", "tx";
}; };

View File

@ -16,7 +16,7 @@ Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
--- a/arch/arm/boot/dts/qcom-ipq4019.dtsi --- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
+++ b/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>; interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
}; };

View File

@ -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>;
};

View File

@ -21,7 +21,7 @@
static void qcom_scm_set_download_mode(bool enable) static void qcom_scm_set_download_mode(bool enable)
{ {
bool avail; 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) if (download_mode)
qcom_scm_set_download_mode(true); qcom_scm_set_download_mode(true);

View File

@ -1,6 +1,6 @@
--- a/drivers/firmware/qcom_scm.c --- a/drivers/firmware/qcom_scm.c
+++ b/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) SCM_HAS_BUS_CLK)
}, },
{ .compatible = "qcom,scm-ipq4019" }, { .compatible = "qcom,scm-ipq4019" },

View File

@ -5481,7 +5481,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
(transaction layer end-to-end CRC checking). (transaction layer end-to-end CRC checking).
--- a/include/linux/pci.h --- a/include/linux/pci.h
+++ b/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); void *userdata);
int pci_cfg_space_size(struct pci_dev *dev); int pci_cfg_space_size(struct pci_dev *dev);
unsigned char pci_bus_max_busnr(struct pci_bus *bus); unsigned char pci_bus_max_busnr(struct pci_bus *bus);

View File

@ -19,7 +19,7 @@
}, },
[PORT_NPCM] = { [PORT_NPCM] = {
.name = "Nuvoton 16550", .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 long flags;
unsigned int baud, quot, frac = 0; unsigned int baud, quot, frac = 0;

View File

@ -22,7 +22,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
#include <linux/platform_data/x86/apple.h> #include <linux/platform_data/x86/apple.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>
#include <linux/suspend.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; pdev->dev_flags |= PCI_DEV_FLAGS_HAS_MSI_MASKING;
} }
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);