kernel: bump 5.4 to 5.4.133

Manually rebased:
  pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
This commit is contained in:
John Audia 2021-07-19 05:17:10 -04:00 committed by Hauke Mehrtens
parent 2b2ac841e0
commit 5408e811b2
26 changed files with 66 additions and 87 deletions

View File

@ -6,10 +6,10 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
LINUX_VERSION-5.4 = .132
LINUX_VERSION-5.4 = .133
LINUX_VERSION-5.10 = .52
LINUX_KERNEL_HASH-5.4.132 = 8466adbfb3579e751ede683496df7bb20f258b5f882250f3dd82be63736d00ef
LINUX_KERNEL_HASH-5.4.133 = 89a366fbb8784f5bc296c9f3311094e9e4cffeb6dbdf7589168cc032cb950830
LINUX_KERNEL_HASH-5.10.52 = 769e57a0fa218589fa2f8460b8682eb784a72718c7a3d95295f382a77902ae79
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))

View File

@ -267,7 +267,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
goto out;
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -1922,7 +1922,8 @@ EXPORT_SYMBOL(mmc_erase);
@@ -1925,7 +1925,8 @@ EXPORT_SYMBOL(mmc_erase);
int mmc_can_erase(struct mmc_card *card)
{
if ((card->host->caps & MMC_CAP_ERASE) &&

View File

@ -82,7 +82,7 @@ Cc: linux-rockchip@lists.infradead.org
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1049,7 +1049,8 @@ static int advk_pcie_probe(struct platfo
@@ -1060,7 +1060,8 @@ static int advk_pcie_probe(struct platfo
return ret;
}

View File

@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
#define MAX_TUNING_LOOP 40
@@ -2758,7 +2758,7 @@ static void sdhci_timeout_timer(struct t
@@ -2762,7 +2762,7 @@ static void sdhci_timeout_timer(struct t
spin_lock_irqsave(&host->lock, flags);
if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
@ -31,7 +31,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
mmc_hostname(host->mmc));
sdhci_dumpregs(host);
@@ -2780,7 +2780,7 @@ static void sdhci_timeout_data_timer(str
@@ -2784,7 +2784,7 @@ static void sdhci_timeout_data_timer(str
if (host->data || host->data_cmd ||
(host->cmd && sdhci_data_line_cmd(host->cmd))) {

View File

@ -20,7 +20,7 @@ Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
@@ -670,6 +670,29 @@ struct v4l2_subdev_pad_config {
@@ -674,6 +674,29 @@ struct v4l2_subdev_pad_config {
*
* @set_frame_desc: set the low level media bus frame parameters, @fd array
* may be adjusted by the subdev driver to device capabilities.
@ -50,7 +50,7 @@ Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
*/
struct v4l2_subdev_pad_ops {
int (*init_cfg)(struct v4l2_subdev *sd,
@@ -710,6 +733,10 @@ struct v4l2_subdev_pad_ops {
@@ -714,6 +737,10 @@ struct v4l2_subdev_pad_ops {
struct v4l2_mbus_frame_desc *fd);
int (*set_frame_desc)(struct v4l2_subdev *sd, unsigned int pad,
struct v4l2_mbus_frame_desc *fd);

View File

@ -17,7 +17,7 @@ Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
--- a/include/media/v4l2-subdev.h
+++ b/include/media/v4l2-subdev.h
@@ -402,12 +402,6 @@ struct v4l2_mbus_frame_desc {
@@ -406,12 +406,6 @@ struct v4l2_mbus_frame_desc {
*
* @query_dv_timings: callback for VIDIOC_QUERY_DV_TIMINGS() ioctl handler code.
*
@ -30,7 +30,7 @@ Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
* @s_rx_buffer: set a host allocated memory buffer for the subdev. The subdev
* can adjust @size to a lower value and must not write more data to the
* buffer starting at @data than the original value of @size.
@@ -435,10 +429,6 @@ struct v4l2_subdev_video_ops {
@@ -439,10 +433,6 @@ struct v4l2_subdev_video_ops {
struct v4l2_dv_timings *timings);
int (*query_dv_timings)(struct v4l2_subdev *sd,
struct v4l2_dv_timings *timings);

View File

@ -18,7 +18,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
--- a/drivers/of/of_net.c
+++ b/drivers/of/of_net.c
@@ -61,6 +61,7 @@ static void *of_get_mac_addr_nvmem(struc
@@ -55,6 +55,7 @@ static void *of_get_mac_addr_nvmem(struc
void *mac;
u8 nvmem_mac[ETH_ALEN];
struct platform_device *pdev = of_find_device_by_node(np);
@ -26,7 +26,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
if (!pdev) {
*err = -ENODEV;
@@ -78,10 +79,29 @@ static void *of_get_mac_addr_nvmem(struc
@@ -72,10 +73,29 @@ static void *of_get_mac_addr_nvmem(struc
put_device(&pdev->dev);
if (!mac) {
*err = -ENOMEM;

View File

@ -14,11 +14,9 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index ed4eacef17ce..666803817540 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -3015,6 +3015,8 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
@@ -3034,6 +3034,8 @@ static int mtk_add_mac(struct mtk_eth *e
eth->netdev[id]->dev.of_node = np;
eth->netdev[id]->max_mtu = MTK_MAX_RX_LENGTH - MTK_RX_ETH_HLEN;
@ -27,6 +25,3 @@ index ed4eacef17ce..666803817540 100644
return 0;
--
2.31.1

View File

@ -15,8 +15,6 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
net/dsa/dsa2.c | 2 +
1 file changed, 2 insertion(+)
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index b71e87909f0e..55bbc1a769ca 100644
--- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c
@@ -14,6 +14,7 @@
@ -27,7 +25,7 @@ index b71e87909f0e..55bbc1a769ca 100644
#include <net/devlink.h>
#include "dsa_priv.h"
@@ -392,6 +392,7 @@ static int dsa_port_setup(struct dsa_port *dp)
@@ -318,6 +319,7 @@ static int dsa_port_setup(struct dsa_por
break;
devlink_port_registered = true;
@ -35,6 +33,3 @@ index b71e87909f0e..55bbc1a769ca 100644
dp->mac = of_get_mac_address(dp->dn);
err = dsa_slave_create(dp);
if (err)
--
2.31.1

View File

@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (netif_elide_gro(skb->dev))
goto normal;
@@ -7284,6 +7287,48 @@ static void __netdev_adjacent_dev_unlink
@@ -7291,6 +7294,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info,
@@ -7334,6 +7379,7 @@ static int __netdev_upper_dev_link(struc
@@ -7341,6 +7386,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
ret = notifier_to_errno(ret);
@@ -7427,6 +7473,7 @@ void netdev_upper_dev_unlink(struct net_
@@ -7434,6 +7480,7 @@ void netdev_upper_dev_unlink(struct net_
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
@@ -8157,6 +8204,7 @@ int dev_set_mac_address(struct net_devic
@@ -8164,6 +8211,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;

View File

@ -15,8 +15,6 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
drivers/of/of_net.c | 75 ++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 74 insertions(+), 1 deletion(-)
diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c
index 6e411821583e..f072e2509cc9 100644
--- a/drivers/of/of_net.c
+++ b/drivers/of/of_net.c
@@ -11,6 +11,7 @@
@ -27,7 +25,7 @@ index 6e411821583e..f072e2509cc9 100644
/**
* of_get_phy_mode - Get phy mode for given device_node
@@ -45,7 +46,7 @@ int of_get_phy_mode(struct device_node *np, phy_interface_t *interface)
@@ -39,7 +40,7 @@ int of_get_phy_mode(struct device_node *
}
EXPORT_SYMBOL_GPL(of_get_phy_mode);
@ -36,7 +34,7 @@ index 6e411821583e..f072e2509cc9 100644
{
struct property *pp = of_find_property(np, name, NULL);
@@ -78,6 +79,70 @@ static const void *of_get_mac_addr_nvmem(struct device_node *np)
@@ -72,6 +73,70 @@ static const void *of_get_mac_addr_nvmem
return mac;
}
@ -107,7 +105,7 @@ index 6e411821583e..f072e2509cc9 100644
/**
* Search the device tree for the best MAC address to use. 'mac-address' is
* checked first, because that is supposed to contain to "most recent" MAC
@@ -98,6 +163,10 @@ static const void *of_get_mac_addr_nvmem(struct device_node *np)
@@ -92,6 +157,10 @@ static const void *of_get_mac_addr_nvmem
* this case, the real MAC is in 'local-mac-address', and 'mac-address' exists
* but is all zeros.
*
@ -118,7 +116,7 @@ index 6e411821583e..f072e2509cc9 100644
* Return: Will be a valid pointer on success and ERR_PTR in case of error.
*/
const void *of_get_mac_address(struct device_node *np)
@@ -116,6 +185,10 @@ const void *of_get_mac_address(struct device_node *np)
@@ -110,6 +179,10 @@ const void *of_get_mac_address(struct de
if (addr)
return addr;
@ -129,6 +127,3 @@ index 6e411821583e..f072e2509cc9 100644
return of_get_mac_addr_nvmem(np);
}
EXPORT_SYMBOL(of_get_mac_address);
--
2.30.2

View File

@ -18,11 +18,9 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
drivers/of/of_net.c | 59 ++++++++++++++++++++++++++++++++++-----------
1 file changed, 45 insertions(+), 14 deletions(-)
diff --git a/drivers/of/of_net.c b/drivers/of/of_net.c
index f072e2509cc9..0dbd1f7ef396 100644
--- a/drivers/of/of_net.c
+++ b/drivers/of/of_net.c
@@ -55,31 +55,36 @@ static void *of_get_mac_addr(struct device_node *np, const char *name)
@@ -49,31 +49,36 @@ static void *of_get_mac_addr(struct devi
return NULL;
}
@ -67,7 +65,7 @@ index f072e2509cc9..0dbd1f7ef396 100644
{
#ifdef CONFIG_MTD
struct device_node *mtd_np = NULL;
@@ -167,28 +172,54 @@ static const void *of_get_mac_address_mtd(struct device_node *np)
@@ -161,28 +166,54 @@ free:
* If a mtd-mac-address property exists, try to fetch the MAC address from the
* specified mtd device, and store it as a 'mac-address' property
*
@ -128,6 +126,3 @@ index f072e2509cc9..0dbd1f7ef396 100644
+ return addr;
}
EXPORT_SYMBOL(of_get_mac_address);
--
2.30.2

View File

@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
local_irq_save(flags);
____napi_schedule(this_cpu_ptr(&softnet_data), n);
local_irq_restore(flags);
@@ -5978,6 +5984,11 @@ EXPORT_SYMBOL(napi_schedule_prep);
@@ -5982,6 +5988,10 @@ EXPORT_SYMBOL(napi_schedule_prep);
*/
void __napi_schedule_irqoff(struct napi_struct *n)
{
@ -115,11 +115,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ queue_work(napi_workq, &n->work);
+ return;
+ }
+
____napi_schedule(this_cpu_ptr(&softnet_data), n);
}
EXPORT_SYMBOL(__napi_schedule_irqoff);
@@ -6239,9 +6250,89 @@ static void init_gro_hash(struct napi_st
if (!IS_ENABLED(CONFIG_PREEMPT_RT))
____napi_schedule(this_cpu_ptr(&softnet_data), n);
else
@@ -6246,9 +6256,89 @@ static void init_gro_hash(struct napi_st
napi->gro_bitmask = 0;
}
@ -209,7 +208,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
INIT_LIST_HEAD(&napi->poll_list);
hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED);
napi->timer.function = napi_watchdog;
@@ -6258,6 +6349,7 @@ void netif_napi_add(struct net_device *d
@@ -6265,6 +6355,7 @@ void netif_napi_add(struct net_device *d
#ifdef CONFIG_NETPOLL
napi->poll_owner = -1;
#endif
@ -217,7 +216,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
set_bit(NAPI_STATE_SCHED, &napi->state);
set_bit(NAPI_STATE_NPSVC, &napi->state);
list_add_rcu(&napi->dev_list, &dev->napi_list);
@@ -6298,6 +6390,7 @@ static void flush_gro_hash(struct napi_s
@@ -6305,6 +6396,7 @@ static void flush_gro_hash(struct napi_s
void netif_napi_del(struct napi_struct *napi)
{
might_sleep();
@ -225,7 +224,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (napi_hash_del(napi))
synchronize_net();
list_del_init(&napi->dev_list);
@@ -6310,50 +6403,18 @@ EXPORT_SYMBOL(netif_napi_del);
@@ -6317,50 +6409,18 @@ EXPORT_SYMBOL(netif_napi_del);
static int napi_poll(struct napi_struct *n, struct list_head *repoll)
{
@ -239,8 +238,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
have = netpoll_poll_lock(n);
- weight = n->weight;
+ work = __napi_poll(n, &do_repoll);
-
- /* This NAPI_STATE_SCHED test is for avoiding a race
- * with netpoll's poll_napi(). Only the entity which
- * obtains the lock and sees NAPI_STATE_SCHED set will
@ -254,7 +252,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
- }
-
- WARN_ON_ONCE(work > weight);
-
+ work = __napi_poll(n, &do_repoll);
- if (likely(work < weight))
- goto out_unlock;
-
@ -280,7 +279,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* Some drivers may have called napi_schedule
* prior to exhausting their budget.
@@ -10333,6 +10394,10 @@ static int __init net_dev_init(void)
@@ -10340,6 +10400,10 @@ static int __init net_dev_init(void)
sd->backlog.weight = weight_p;
}

View File

@ -25,7 +25,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -205,6 +205,7 @@ static void quirk_mmio_always_on(struct
@@ -206,6 +206,7 @@ static void quirk_mmio_always_on(struct
DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
@ -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"
@@ -3320,6 +3321,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
@@ -3321,6 +3322,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
@@ -3345,6 +3348,8 @@ static void quirk_intel_ntb(struct pci_d
@@ -3346,6 +3349,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
@@ -3383,6 +3388,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
@@ -3384,6 +3389,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);

View File

@ -19,7 +19,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2523,6 +2523,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VI
@@ -2524,6 +2524,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VI
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3364, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8380_0, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, 0x0761, quirk_disable_all_msi);

View File

@ -17,7 +17,7 @@ Signed-off-by: Shrikant Bobade <Shrikant_Bobade@mentor.com>
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1356,6 +1356,10 @@ DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR
@@ -1357,6 +1357,10 @@ DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR
occur when mode detecting */
DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_VIA, PCI_ANY_ID,
PCI_CLASS_STORAGE_IDE, 8, quirk_no_ata_d3);

View File

@ -14,7 +14,7 @@ Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2529,6 +2529,9 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VI
@@ -2530,6 +2530,9 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VI
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, 0x0761, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x43ec, quirk_disable_all_msi);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_BROADCOM, 0x43ef, quirk_disable_all_msi);

View File

@ -33,7 +33,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -338,6 +338,14 @@ static void advk_pcie_setup_hw(struct ad
@@ -349,6 +349,14 @@ static void advk_pcie_setup_hw(struct ad
reg |= PIO_CTRL_ADDR_WIN_DISABLE;
advk_writel(pcie, reg, PIO_CTRL);

View File

@ -29,7 +29,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -300,11 +300,6 @@ static void advk_pcie_setup_hw(struct ad
@@ -311,11 +311,6 @@ static void advk_pcie_setup_hw(struct ad
reg |= LANE_COUNT_1;
advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG);
@ -41,7 +41,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
/* Enable MSI */
reg = advk_readl(pcie, PCIE_CORE_CTRL2_REG);
reg |= PCIE_CORE_CTRL2_MSI_ENABLE;
@@ -346,7 +341,15 @@ static void advk_pcie_setup_hw(struct ad
@@ -357,7 +352,15 @@ static void advk_pcie_setup_hw(struct ad
*/
msleep(PCI_PM_D3COLD_WAIT);

View File

@ -42,7 +42,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
#define PCIE_CORE_LINK_WIDTH_SHIFT 20
#define PCIE_CORE_ERR_CAPCTL_REG 0x118
#define PCIE_CORE_ERR_CAPCTL_ECRC_CHK_TX BIT(5)
@@ -201,6 +202,7 @@ struct advk_pcie {
@@ -202,6 +203,7 @@ struct advk_pcie {
struct mutex msi_used_lock;
u16 msi_msg;
int root_bus_nr;
@ -50,7 +50,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
struct pci_bridge_emul bridge;
};
@@ -225,20 +227,16 @@ static int advk_pcie_link_up(struct advk
@@ -226,20 +228,16 @@ static int advk_pcie_link_up(struct advk
static int advk_pcie_wait_for_link(struct advk_pcie *pcie)
{
@ -72,7 +72,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
return -ETIMEDOUT;
}
@@ -253,6 +251,85 @@ static void advk_pcie_wait_for_retrain(s
@@ -254,6 +252,85 @@ static void advk_pcie_wait_for_retrain(s
}
}
@ -158,7 +158,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
static void advk_pcie_setup_hw(struct advk_pcie *pcie)
{
u32 reg;
@@ -288,12 +365,6 @@ static void advk_pcie_setup_hw(struct ad
@@ -299,12 +376,6 @@ static void advk_pcie_setup_hw(struct ad
PCIE_CORE_CTRL2_TD_ENABLE;
advk_writel(pcie, reg, PCIE_CORE_CTRL2_REG);
@ -171,7 +171,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
/* Set lane X1 */
reg = advk_readl(pcie, PCIE_CORE_CTRL0_REG);
reg &= ~LANE_CNT_MSK;
@@ -341,20 +412,7 @@ static void advk_pcie_setup_hw(struct ad
@@ -352,20 +423,7 @@ static void advk_pcie_setup_hw(struct ad
*/
msleep(PCI_PM_D3COLD_WAIT);
@ -193,7 +193,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
reg = advk_readl(pcie, PCIE_CORE_CMD_STATUS_REG);
reg |= PCIE_CORE_CMD_MEM_ACCESS_EN |
@@ -1066,6 +1124,12 @@ static int advk_pcie_probe(struct platfo
@@ -1077,6 +1135,12 @@ static int advk_pcie_probe(struct platfo
return ret;
}

View File

@ -48,7 +48,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
#include <linux/of_pci.h>
#include "../pci.h"
@@ -204,6 +206,7 @@ struct advk_pcie {
@@ -205,6 +207,7 @@ struct advk_pcie {
int root_bus_nr;
int link_gen;
struct pci_bridge_emul bridge;
@ -56,7 +56,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
};
static inline void advk_writel(struct advk_pcie *pcie, u32 val, u64 reg)
@@ -330,10 +333,31 @@ err:
@@ -331,10 +334,31 @@ err:
dev_err(dev, "link never came up\n");
}
@ -88,7 +88,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
/* Set to Direct mode */
reg = advk_readl(pcie, CTRL_CONFIG_REG);
reg &= ~(CTRL_MODE_MASK << CTRL_MODE_SHIFT);
@@ -406,7 +430,8 @@ static void advk_pcie_setup_hw(struct ad
@@ -417,7 +441,8 @@ static void advk_pcie_setup_hw(struct ad
/*
* PERST# signal could have been asserted by pinctrl subsystem before
@ -98,7 +98,7 @@ Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* fundamental reset. As required by PCI Express spec a delay for at
* least 100ms after such a reset before link training is needed.
*/
@@ -1124,6 +1149,22 @@ static int advk_pcie_probe(struct platfo
@@ -1135,6 +1160,22 @@ static int advk_pcie_probe(struct platfo
return ret;
}

View File

@ -56,7 +56,7 @@ Cc: Miquèl Raynal <miquel.raynal@bootlin.com>
#define PCIE_MSG_LOG_REG (CONTROL_BASE_ADDR + 0x30)
#define PCIE_ISR0_REG (CONTROL_BASE_ADDR + 0x40)
#define PCIE_MSG_PM_PME_MASK BIT(7)
@@ -207,6 +210,7 @@ struct advk_pcie {
@@ -208,6 +211,7 @@ struct advk_pcie {
int link_gen;
struct pci_bridge_emul bridge;
struct gpio_desc *reset_gpio;
@ -64,7 +64,7 @@ Cc: Miquèl Raynal <miquel.raynal@bootlin.com>
};
static inline void advk_writel(struct advk_pcie *pcie, u32 val, u64 reg)
@@ -358,6 +362,11 @@ static void advk_pcie_setup_hw(struct ad
@@ -359,6 +363,11 @@ static void advk_pcie_setup_hw(struct ad
advk_pcie_issue_perst(pcie);
@ -76,7 +76,7 @@ Cc: Miquèl Raynal <miquel.raynal@bootlin.com>
/* Set to Direct mode */
reg = advk_readl(pcie, CTRL_CONFIG_REG);
reg &= ~(CTRL_MODE_MASK << CTRL_MODE_SHIFT);
@@ -1114,6 +1123,62 @@ out_release_res:
@@ -1125,6 +1134,62 @@ out_release_res:
return err;
}
@ -139,7 +139,7 @@ Cc: Miquèl Raynal <miquel.raynal@bootlin.com>
static int advk_pcie_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -1171,6 +1236,10 @@ static int advk_pcie_probe(struct platfo
@@ -1182,6 +1247,10 @@ static int advk_pcie_probe(struct platfo
else
pcie->link_gen = ret;

View File

@ -34,7 +34,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -639,6 +639,13 @@ static bool advk_pcie_valid_device(struc
@@ -650,6 +650,13 @@ static bool advk_pcie_valid_device(struc
if ((bus->number == pcie->root_bus_nr) && PCI_SLOT(devfn) != 0)
return false;

View File

@ -31,7 +31,7 @@ Cc: <stable@vger.kernel.org> # 5.8+: ea17a0f153af: phy: marvell: comphy: Convert
--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -1154,7 +1154,9 @@ static int advk_pcie_enable_phy(struct a
@@ -1165,7 +1165,9 @@ static int advk_pcie_enable_phy(struct a
}
ret = phy_power_on(pcie->phy);

View File

@ -21,8 +21,8 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
+#include <linux/of.h>
#include <linux/platform_data/x86/apple.h>
#include <linux/pm_runtime.h>
#include <linux/switchtec.h>
@@ -5714,3 +5715,34 @@ static void apex_pci_fixup_class(struct
#include <linux/suspend.h>
@@ -5725,3 +5726,34 @@ static void apex_pci_fixup_class(struct
}
DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);

View File

@ -64,7 +64,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#include <media/v4l2-common.h>
@@ -1156,9 +1161,149 @@ static void uvc_video_decode_data(struct
@@ -1183,9 +1188,149 @@ static void uvc_video_decode_data(struct
uvc_urb->async_operations++;
}
@ -214,7 +214,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* Mark the buffer as done if the EOF marker is set. */
if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n");
@@ -1715,6 +1860,8 @@ static int uvc_init_video_isoc(struct uv
@@ -1742,6 +1887,8 @@ static int uvc_init_video_isoc(struct uv
if (npackets == 0)
return -ENOMEM;