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
7e20e4ab96
commit
e14dc93073
12 changed files with 28 additions and 75 deletions
|
@ -4,11 +4,11 @@ LINUX_RELEASE?=1
|
||||||
|
|
||||||
LINUX_VERSION-3.18 = .125
|
LINUX_VERSION-3.18 = .125
|
||||||
LINUX_VERSION-4.9 = .137
|
LINUX_VERSION-4.9 = .137
|
||||||
LINUX_VERSION-4.14 = .80
|
LINUX_VERSION-4.14 = .81
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-3.18.125 = 708433b360efd8623f7303b721ffb0e7c59cbe8552f1a3f4c0d980a12b4ed90e
|
LINUX_KERNEL_HASH-3.18.125 = 708433b360efd8623f7303b721ffb0e7c59cbe8552f1a3f4c0d980a12b4ed90e
|
||||||
LINUX_KERNEL_HASH-4.9.137 = 6db2512a9094bf4c830124641d1275635600b052962a7db3556da18914ea2589
|
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))))
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(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
|
--- a/drivers/pcmcia/yenta_socket.c
|
||||||
+++ b/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
|
* Probe for usable interrupts using the force
|
||||||
* register to generate bogus card status events.
|
* register to generate bogus card status events.
|
||||||
*/
|
*/
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
cb_writel(socket, CB_SOCKET_EVENT, -1);
|
cb_writel(socket, CB_SOCKET_EVENT, -1);
|
||||||
cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);
|
cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);
|
||||||
reg = exca_readb(socket, I365_CSCINT);
|
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);
|
cb_writel(socket, CB_SOCKET_MASK, 0);
|
||||||
exca_writeb(socket, I365_CSCINT, reg);
|
exca_writeb(socket, I365_CSCINT, reg);
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
mask = probe_irq_mask(val) & 0xffff;
|
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
|
else
|
||||||
socket->socket.irq_mask = 0;
|
socket->socket.irq_mask = 0;
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
dev_info(&socket->dev->dev, "ISA IRQ mask 0x%04x, PCI irq %d\n",
|
dev_info(&socket->dev->dev, "ISA IRQ mask 0x%04x, PCI irq %d\n",
|
||||||
socket->socket.irq_mask, socket->cb_irq);
|
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",
|
dev_info(&dev->dev, "Socket status: %08x\n",
|
||||||
cb_readl(socket, CB_SOCKET_STATE));
|
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
|
device, it has to decide which ones to send first, which ones to
|
||||||
--- a/net/sched/sch_api.c
|
--- a/net/sched/sch_api.c
|
||||||
+++ b/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;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -244,7 +244,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
|
||||||
+}
|
+}
|
||||||
--- a/fs/jffs2/super.c
|
--- a/fs/jffs2/super.c
|
||||||
+++ b/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_inode) != 68);
|
||||||
BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);
|
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,
|
* Some BIOS implementations leave the Intel GPU interrupts enabled,
|
||||||
* even though no one is handling them (f.e. i915 driver is never loaded).
|
* 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, 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);
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ Signed-off-by: Sricharan R <sricharan@codeaurora.org>
|
||||||
|
|
||||||
--- a/drivers/cpufreq/cpufreq-dt.c
|
--- a/drivers/cpufreq/cpufreq-dt.c
|
||||||
+++ b/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) {
|
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
|
* 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)
|
if (data && data->have_governor_per_policy)
|
||||||
dt_cpufreq_driver.flags |= CPUFREQ_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 notifier_block opp_nb;
|
||||||
+ struct mutex lock;
|
+ struct mutex lock;
|
||||||
+ unsigned long opp_freq;
|
+ unsigned long opp_freq;
|
||||||
|
bool have_static_opps;
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct freq_attr *cpufreq_dt_attr[] = {
|
@@ -44,9 +47,16 @@ static struct freq_attr *cpufreq_dt_attr
|
||||||
@@ -43,9 +46,16 @@ static struct freq_attr *cpufreq_dt_attr
|
|
||||||
static int set_target(struct cpufreq_policy *policy, unsigned int index)
|
static int set_target(struct cpufreq_policy *policy, unsigned int index)
|
||||||
{
|
{
|
||||||
struct private_data *priv = policy->driver_data;
|
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;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
||||||
static int resources_available(void)
|
static int resources_available(void)
|
||||||
{
|
{
|
||||||
struct device *cpu_dev;
|
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;
|
bool fallback = false;
|
||||||
const char *name;
|
const char *name;
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -102,30 +102,27 @@ Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
||||||
|
|
||||||
cpu_dev = get_cpu_device(policy->cpu);
|
cpu_dev = get_cpu_device(policy->cpu);
|
||||||
if (!cpu_dev) {
|
if (!cpu_dev) {
|
||||||
@@ -241,13 +285,16 @@ static int cpufreq_init(struct cpufreq_p
|
@@ -246,10 +290,13 @@ static int cpufreq_init(struct cpufreq_p
|
||||||
goto out_free_opp;
|
__func__, ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ mutex_init(&priv->lock);
|
+ mutex_init(&priv->lock);
|
||||||
+ dev_pm_opp_register_notifier(cpu_dev, &priv->opp_nb);
|
+ 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);
|
ret = dev_pm_opp_init_cpufreq_table(cpu_dev, &freq_table);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(cpu_dev, "failed to init cpufreq table: %d\n", 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;
|
+ goto out_unregister_nb;
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->cpu_dev = cpu_dev;
|
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:
|
out_free_cpufreq_table:
|
||||||
dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table);
|
dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table);
|
||||||
+out_unregister_nb:
|
+out_unregister_nb:
|
||||||
+ dev_pm_opp_unregister_notifier(cpu_dev, &priv->opp_nb);
|
+ dev_pm_opp_unregister_notifier(cpu_dev, &priv->opp_nb);
|
||||||
out_free_priv:
|
|
||||||
kfree(priv);
|
|
||||||
out_free_opp:
|
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
|
--- a/drivers/cpufreq/cpufreq-dt.c
|
||||||
+++ b/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;
|
struct private_data *priv = policy->driver_data;
|
||||||
int ret;
|
int ret;
|
||||||
unsigned long target_freq = policy->freq_table[index].frequency * 1000;
|
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);
|
mutex_unlock(&priv->lock);
|
||||||
|
|
||||||
return ret;
|
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;
|
const char *name;
|
||||||
int ret;
|
int ret;
|
||||||
struct srcu_notifier_head *opp_srcu_head;
|
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);
|
cpu_dev = get_cpu_device(policy->cpu);
|
||||||
if (!cpu_dev) {
|
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;
|
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
|
--- a/drivers/cpufreq/cpufreq-dt.c
|
||||||
+++ b/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);
|
ret = PTR_ERR(cpu_reg);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||||
};
|
};
|
||||||
--- a/drivers/net/phy/phylink.c
|
--- a/drivers/net/phy/phylink.c
|
||||||
+++ b/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);
|
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
|
--- a/drivers/net/phy/phylink.c
|
||||||
+++ b/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);
|
clear_bit(PHYLINK_DISABLE_STOPPED, &pl->phylink_disable_state);
|
||||||
phylink_run_resolve(pl);
|
phylink_run_resolve(pl);
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||||
if (pl->phydev)
|
if (pl->phydev)
|
||||||
phy_start(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)
|
if (pl->phydev)
|
||||||
phy_stop(pl->phydev);
|
phy_stop(pl->phydev);
|
||||||
|
|
Loading…
Reference in a new issue