mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 18:19:02 +00:00
kernel: bump 4.14 to 4.14.81
Refreshed all patches. Removed upstreamed patches: - 081-spi-bcm-qspi-switch-back-to-reading-flash-using-smal.patch Altered patches: - 0054-cpufreq-dt-Handle-OPP-voltage-adjust-events Compile-tested on: cns3xxx, imx6, ipq806x, x86_64 Runtime-tested on: cns3xxx, imx6, x86_64 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
parent
6f388adef8
commit
4db74fbd69
@ -3,10 +3,10 @@
|
||||
LINUX_RELEASE?=1
|
||||
|
||||
LINUX_VERSION-4.9 = .137
|
||||
LINUX_VERSION-4.14 = .80
|
||||
LINUX_VERSION-4.14 = .81
|
||||
|
||||
LINUX_KERNEL_HASH-4.9.137 = 6db2512a9094bf4c830124641d1275635600b052962a7db3556da18914ea2589
|
||||
LINUX_KERNEL_HASH-4.14.80 = 9ddc7bc11cbea6475ac5abf18e01a143d7d506bece591e0dcb15c9452d3ed7d2
|
||||
LINUX_KERNEL_HASH-4.14.81 = 4b36dfd053844ef0617799d432eed67aa4795d3403216d6789288aa7a0e75bde
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
@ -1,44 +0,0 @@
|
||||
From 940ec770c295682993d1cccce3081fd7c74fece8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Thu, 11 Oct 2018 09:42:17 +0200
|
||||
Subject: [PATCH] spi: bcm-qspi: switch back to reading flash using smaller
|
||||
chunks
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Fixing/optimizing bcm_qspi_bspi_read() performance introduced two
|
||||
changes:
|
||||
1) It added a loop to read all requested data using multiple BSPI ops.
|
||||
2) It bumped max size of a single BSPI block request from 256 to 512 B.
|
||||
|
||||
The later change resulted in occasional BSPI timeouts causing a
|
||||
regression.
|
||||
|
||||
For some unknown reason hardware doesn't always handle reads as expected
|
||||
when using 512 B chunks. In such cases it may happen that BSPI returns
|
||||
amount of requested bytes without the last 1-3 ones. It provides the
|
||||
remaining bytes later but doesn't raise an interrupt until another LR
|
||||
start.
|
||||
|
||||
Switching back to 256 B reads fixes that problem and regression.
|
||||
|
||||
Fixes: 345309fa7c0c ("spi: bcm-qspi: Fix bcm_qspi_bspi_read() performance")
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||
Cc: stable@vger.kernel.org
|
||||
---
|
||||
drivers/spi/spi-bcm-qspi.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/spi/spi-bcm-qspi.c
|
||||
+++ b/drivers/spi/spi-bcm-qspi.c
|
||||
@@ -88,7 +88,7 @@
|
||||
#define BSPI_BPP_MODE_SELECT_MASK BIT(8)
|
||||
#define BSPI_BPP_ADDR_SELECT_MASK BIT(16)
|
||||
|
||||
-#define BSPI_READ_LENGTH 512
|
||||
+#define BSPI_READ_LENGTH 256
|
||||
|
||||
/* MSPI register offsets */
|
||||
#define MSPI_SPCR0_LSB 0x000
|
@ -1,6 +1,6 @@
|
||||
--- a/drivers/pcmcia/yenta_socket.c
|
||||
+++ b/drivers/pcmcia/yenta_socket.c
|
||||
@@ -919,6 +919,8 @@ static unsigned int yenta_probe_irq(stru
|
||||
@@ -920,6 +920,8 @@ static unsigned int yenta_probe_irq(stru
|
||||
* Probe for usable interrupts using the force
|
||||
* register to generate bogus card status events.
|
||||
*/
|
||||
@ -9,7 +9,7 @@
|
||||
cb_writel(socket, CB_SOCKET_EVENT, -1);
|
||||
cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);
|
||||
reg = exca_readb(socket, I365_CSCINT);
|
||||
@@ -934,6 +936,7 @@ static unsigned int yenta_probe_irq(stru
|
||||
@@ -935,6 +937,7 @@ static unsigned int yenta_probe_irq(stru
|
||||
}
|
||||
cb_writel(socket, CB_SOCKET_MASK, 0);
|
||||
exca_writeb(socket, I365_CSCINT, reg);
|
||||
@ -17,7 +17,7 @@
|
||||
|
||||
mask = probe_irq_mask(val) & 0xffff;
|
||||
|
||||
@@ -1018,6 +1021,10 @@ static void yenta_get_socket_capabilitie
|
||||
@@ -1019,6 +1022,10 @@ static void yenta_get_socket_capabilitie
|
||||
else
|
||||
socket->socket.irq_mask = 0;
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
dev_info(&socket->dev->dev, "ISA IRQ mask 0x%04x, PCI irq %d\n",
|
||||
socket->socket.irq_mask, socket->cb_irq);
|
||||
}
|
||||
@@ -1250,6 +1257,15 @@ static int yenta_probe(struct pci_dev *d
|
||||
@@ -1251,6 +1258,15 @@ static int yenta_probe(struct pci_dev *d
|
||||
dev_info(&dev->dev, "Socket status: %08x\n",
|
||||
cb_readl(socket, CB_SOCKET_STATE));
|
||||
|
||||
|
@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
device, it has to decide which ones to send first, which ones to
|
||||
--- a/net/sched/sch_api.c
|
||||
+++ b/net/sched/sch_api.c
|
||||
@@ -2029,7 +2029,7 @@ static int __init pktsched_init(void)
|
||||
@@ -2028,7 +2028,7 @@ static int __init pktsched_init(void)
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -244,7 +244,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
|
||||
+}
|
||||
--- a/fs/jffs2/super.c
|
||||
+++ b/fs/jffs2/super.c
|
||||
@@ -372,14 +372,41 @@ static int __init init_jffs2_fs(void)
|
||||
@@ -370,14 +370,41 @@ static int __init init_jffs2_fs(void)
|
||||
BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68);
|
||||
BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);
|
||||
|
||||
|
@ -49,7 +49,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 (f.e. i915 driver is never loaded).
|
||||
@@ -3167,6 +3171,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
|
||||
@@ -3171,6 +3175,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);
|
||||
|
||||
|
@ -28,7 +28,7 @@ Signed-off-by: Sricharan R <sricharan@codeaurora.org>
|
||||
|
||||
--- a/drivers/cpufreq/cpufreq-dt.c
|
||||
+++ b/drivers/cpufreq/cpufreq-dt.c
|
||||
@@ -220,7 +220,10 @@ static int cpufreq_init(struct cpufreq_p
|
||||
@@ -231,7 +231,10 @@ static int cpufreq_init(struct cpufreq_p
|
||||
}
|
||||
|
||||
if (fallback) {
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Sricharan R <sricharan@codeaurora.org>
|
||||
|
||||
/*
|
||||
* OPP tables are initialized only for policy->cpu, do it for
|
||||
@@ -372,6 +375,8 @@ static int dt_cpufreq_probe(struct platf
|
||||
@@ -376,6 +379,8 @@ static int dt_cpufreq_probe(struct platf
|
||||
if (data && data->have_governor_per_policy)
|
||||
dt_cpufreq_driver.flags |= CPUFREQ_HAVE_GOVERNOR_PER_POLICY;
|
||||
|
||||
|
@ -32,10 +32,10 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
||||
+ struct notifier_block opp_nb;
|
||||
+ struct mutex lock;
|
||||
+ unsigned long opp_freq;
|
||||
bool have_static_opps;
|
||||
};
|
||||
|
||||
static struct freq_attr *cpufreq_dt_attr[] = {
|
||||
@@ -43,9 +46,16 @@ static struct freq_attr *cpufreq_dt_attr
|
||||
@@ -44,9 +47,16 @@ static struct freq_attr *cpufreq_dt_attr
|
||||
static int set_target(struct cpufreq_policy *policy, unsigned int index)
|
||||
{
|
||||
struct private_data *priv = policy->driver_data;
|
||||
@ -54,7 +54,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -86,6 +96,39 @@ node_put:
|
||||
@@ -87,6 +97,39 @@ node_put:
|
||||
return name;
|
||||
}
|
||||
|
||||
@ -94,7 +94,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
||||
static int resources_available(void)
|
||||
{
|
||||
struct device *cpu_dev;
|
||||
@@ -152,6 +195,7 @@ static int cpufreq_init(struct cpufreq_p
|
||||
@@ -153,6 +196,7 @@ static int cpufreq_init(struct cpufreq_p
|
||||
bool fallback = false;
|
||||
const char *name;
|
||||
int ret;
|
||||
@ -102,30 +102,27 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
||||
|
||||
cpu_dev = get_cpu_device(policy->cpu);
|
||||
if (!cpu_dev) {
|
||||
@@ -241,13 +285,16 @@ static int cpufreq_init(struct cpufreq_p
|
||||
goto out_free_opp;
|
||||
@@ -246,10 +290,13 @@ static int cpufreq_init(struct cpufreq_p
|
||||
__func__, ret);
|
||||
}
|
||||
|
||||
+ mutex_init(&priv->lock);
|
||||
+ dev_pm_opp_register_notifier(cpu_dev, &priv->opp_nb);
|
||||
+
|
||||
priv->reg_name = name;
|
||||
priv->opp_table = opp_table;
|
||||
|
||||
ret = dev_pm_opp_init_cpufreq_table(cpu_dev, &freq_table);
|
||||
if (ret) {
|
||||
dev_err(cpu_dev, "failed to init cpufreq table: %d\n", ret);
|
||||
- goto out_free_priv;
|
||||
- goto out_free_opp;
|
||||
+ goto out_unregister_nb;
|
||||
}
|
||||
|
||||
priv->cpu_dev = cpu_dev;
|
||||
@@ -283,6 +330,8 @@ static int cpufreq_init(struct cpufreq_p
|
||||
@@ -285,6 +332,8 @@ static int cpufreq_init(struct cpufreq_p
|
||||
|
||||
out_free_cpufreq_table:
|
||||
dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table);
|
||||
+out_unregister_nb:
|
||||
+ dev_pm_opp_unregister_notifier(cpu_dev, &priv->opp_nb);
|
||||
out_free_priv:
|
||||
kfree(priv);
|
||||
out_free_opp:
|
||||
if (priv->have_static_opps)
|
||||
dev_pm_opp_of_cpumask_remove_table(policy->cpus);
|
||||
|
@ -11,7 +11,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
||||
|
||||
--- a/drivers/cpufreq/cpufreq-dt.c
|
||||
+++ b/drivers/cpufreq/cpufreq-dt.c
|
||||
@@ -48,11 +48,41 @@ static int set_target(struct cpufreq_pol
|
||||
@@ -49,11 +49,41 @@ static int set_target(struct cpufreq_pol
|
||||
struct private_data *priv = policy->driver_data;
|
||||
int ret;
|
||||
unsigned long target_freq = policy->freq_table[index].frequency * 1000;
|
||||
@ -54,7 +54,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
||||
mutex_unlock(&priv->lock);
|
||||
|
||||
return ret;
|
||||
@@ -196,6 +226,8 @@ static int cpufreq_init(struct cpufreq_p
|
||||
@@ -197,6 +227,8 @@ static int cpufreq_init(struct cpufreq_p
|
||||
const char *name;
|
||||
int ret;
|
||||
struct srcu_notifier_head *opp_srcu_head;
|
||||
@ -63,7 +63,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
||||
|
||||
cpu_dev = get_cpu_device(policy->cpu);
|
||||
if (!cpu_dev) {
|
||||
@@ -303,6 +335,13 @@ static int cpufreq_init(struct cpufreq_p
|
||||
@@ -305,6 +337,13 @@ static int cpufreq_init(struct cpufreq_p
|
||||
|
||||
policy->suspend_freq = dev_pm_opp_get_suspend_opp_freq(cpu_dev) / 1000;
|
||||
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
||||
|
||||
--- a/drivers/cpufreq/cpufreq-dt.c
|
||||
+++ b/drivers/cpufreq/cpufreq-dt.c
|
||||
@@ -143,8 +143,10 @@ static int opp_notifier(struct notifier_
|
||||
@@ -144,8 +144,10 @@ static int opp_notifier(struct notifier_
|
||||
ret = PTR_ERR(cpu_reg);
|
||||
goto out;
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
};
|
||||
--- a/drivers/net/phy/phylink.c
|
||||
+++ b/drivers/net/phy/phylink.c
|
||||
@@ -1042,34 +1042,6 @@ int phylink_ethtool_set_pauseparam(struc
|
||||
@@ -1045,34 +1045,6 @@ int phylink_ethtool_set_pauseparam(struc
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(phylink_ethtool_set_pauseparam);
|
||||
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
|
||||
--- a/drivers/net/phy/phylink.c
|
||||
+++ b/drivers/net/phy/phylink.c
|
||||
@@ -757,8 +757,8 @@ void phylink_start(struct phylink *pl)
|
||||
@@ -760,8 +760,8 @@ void phylink_start(struct phylink *pl)
|
||||
clear_bit(PHYLINK_DISABLE_STOPPED, &pl->phylink_disable_state);
|
||||
phylink_run_resolve(pl);
|
||||
|
||||
@ -21,7 +21,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||
if (pl->phydev)
|
||||
phy_start(pl->phydev);
|
||||
}
|
||||
@@ -770,8 +770,8 @@ void phylink_stop(struct phylink *pl)
|
||||
@@ -773,8 +773,8 @@ void phylink_stop(struct phylink *pl)
|
||||
|
||||
if (pl->phydev)
|
||||
phy_stop(pl->phydev);
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- a/arch/arm/boot/dts/ox820-cloudengines-pogoplug-series-3.dts 2018-08-14 18:03:56.542679083 +0200
|
||||
+++ b/arch/arm/boot/dts/ox820-cloudengines-pogoplug-series-3.dts 2018-11-04 18:19:35.154886643 +0100
|
||||
--- a/arch/arm/boot/dts/ox820-cloudengines-pogoplug-series-3.dts
|
||||
+++ b/arch/arm/boot/dts/ox820-cloudengines-pogoplug-series-3.dts
|
||||
@@ -15,7 +15,7 @@
|
||||
compatible = "cloudengines,pogoplugv3", "oxsemi,ox820";
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user