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:
		| @@ -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); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Koen Vandeputte
					Koen Vandeputte