mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	kernel: bump 5.4 to 5.4.59
Removed since added upstream:
  bcm27xx:
    950-0428-staging-vchiq_arm-Add-a-matching-unregister-call.patch
  lantiq:
    0800-spi-lantiq-ssc-Fix-warning-by-using-WQ_MEM_RECLAI.patch
Manually adjusted patches:
  layerscape:
    801-audio-0005-Revert-ASoC-fsl_sai-Add-support-for-SAI-new-version.patch
Build-tested: ath79/generic, ramips, lantiq/xrx200, lantiq/xway,
   mvebu/cortexa9, sunxi/a53
Run-tested: ipq806x (R7800), layerscape (LS1012A-FRDM, LS1046A-RDB)
Building on layerscape is only possible with workaround from PR #3179.
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-By: John Audia <graysky@archlinux.us> [ipq806x]
Tested-by: Pawel Dembicki <paweldembicki@gmail.com> [layerscape]
			
			
This commit is contained in:
		
							parent
							
								
									cf7c101135
								
							
						
					
					
						commit
						83b1e40561
					
				@ -8,11 +8,11 @@ endif
 | 
			
		||||
 | 
			
		||||
LINUX_VERSION-4.14 = .193
 | 
			
		||||
LINUX_VERSION-4.19 = .138
 | 
			
		||||
LINUX_VERSION-5.4 = .58
 | 
			
		||||
LINUX_VERSION-5.4 = .59
 | 
			
		||||
 | 
			
		||||
LINUX_KERNEL_HASH-4.14.193 = 0b0fb41d4430e1a42738b341cbfd2f41951aa5cd02acabbd53f076119c8b9f03
 | 
			
		||||
LINUX_KERNEL_HASH-4.19.138 = d15c27d05f6c527269b75b30cc72972748e55720e7e00ad8abbaa4fe3b1d5e02
 | 
			
		||||
LINUX_KERNEL_HASH-5.4.58 = 702fe2af119375387b314481b603d8ce71e71b4e5bae4cb70a980e0951b21647
 | 
			
		||||
LINUX_KERNEL_HASH-5.4.59 = 9bcb9db2e4435f2e5948375862baf0973f1d7860ebe3d750383e5a6deac4b2fd
 | 
			
		||||
 | 
			
		||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 | 
			
		||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 | 
			
		||||
 | 
			
		||||
--- a/drivers/spi/spidev.c
 | 
			
		||||
+++ b/drivers/spi/spidev.c
 | 
			
		||||
@@ -729,7 +729,7 @@ static int spidev_probe(struct spi_devic
 | 
			
		||||
@@ -734,7 +734,7 @@ static int spidev_probe(struct spi_devic
 | 
			
		||||
 	 * compatible string, it is a Linux implementation thing
 | 
			
		||||
 	 * rather than a description of the hardware.
 | 
			
		||||
 	 */
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@ Signed-off-by: Dom Cobley <dom@raspberrypi.com>
 | 
			
		||||
 | 
			
		||||
--- a/drivers/cpufreq/Kconfig.arm
 | 
			
		||||
+++ b/drivers/cpufreq/Kconfig.arm
 | 
			
		||||
@@ -300,6 +300,15 @@ config ARM_TANGO_CPUFREQ
 | 
			
		||||
@@ -301,6 +301,15 @@ config ARM_TANGO_CPUFREQ
 | 
			
		||||
 	depends on CPUFREQ_DT && ARCH_TANGO
 | 
			
		||||
 	default y
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
@ -30,9 +30,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 | 
			
		||||
 	bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
 | 
			
		||||
 	bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
 | 
			
		||||
 
 | 
			
		||||
@@ -3265,6 +3267,7 @@ failed_platform_init:
 | 
			
		||||
 static int vchiq_remove(struct platform_device *pdev)
 | 
			
		||||
@@ -3266,6 +3268,7 @@ static int vchiq_remove(struct platform_
 | 
			
		||||
 {
 | 
			
		||||
 	platform_device_unregister(bcm2835_audio);
 | 
			
		||||
 	platform_device_unregister(bcm2835_camera);
 | 
			
		||||
+	platform_device_unregister(vcsm_cma);
 | 
			
		||||
 	vchiq_debugfs_deinit();
 | 
			
		||||
 | 
			
		||||
@ -30,9 +30,9 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 | 
			
		||||
 	bcm2835_camera = vchiq_register_child(pdev, "bcm2835-camera");
 | 
			
		||||
 	bcm2835_audio = vchiq_register_child(pdev, "bcm2835_audio");
 | 
			
		||||
 
 | 
			
		||||
@@ -3267,6 +3269,7 @@ failed_platform_init:
 | 
			
		||||
 static int vchiq_remove(struct platform_device *pdev)
 | 
			
		||||
@@ -3268,6 +3270,7 @@ static int vchiq_remove(struct platform_
 | 
			
		||||
 {
 | 
			
		||||
 	platform_device_unregister(bcm2835_audio);
 | 
			
		||||
 	platform_device_unregister(bcm2835_camera);
 | 
			
		||||
+	platform_device_unregister(bcm2835_codec);
 | 
			
		||||
 	platform_device_unregister(vcsm_cma);
 | 
			
		||||
 | 
			
		||||
@ -1,25 +0,0 @@
 | 
			
		||||
From 79a2c3013a3b2a4304f953a4a55c49c1bc85202b Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Phil Elwell <phil@raspberrypi.com>
 | 
			
		||||
Date: Mon, 3 Feb 2020 17:33:01 +0000
 | 
			
		||||
Subject: [PATCH] staging: vchiq_arm: Add a matching unregister call
 | 
			
		||||
 | 
			
		||||
All the registered children of vchiq have a corresponding call to
 | 
			
		||||
platform_device_unregister except bcm2835_audio. Fix that.
 | 
			
		||||
 | 
			
		||||
Fixes: 25c7597af20d ("staging: vchiq_arm: Register a platform device for audio")
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
 | 
			
		||||
---
 | 
			
		||||
 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 1 +
 | 
			
		||||
 1 file changed, 1 insertion(+)
 | 
			
		||||
 | 
			
		||||
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 | 
			
		||||
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
 | 
			
		||||
@@ -3293,6 +3293,7 @@ failed_platform_init:
 | 
			
		||||
 
 | 
			
		||||
 static int vchiq_remove(struct platform_device *pdev)
 | 
			
		||||
 {
 | 
			
		||||
+	platform_device_unregister(bcm2835_audio);
 | 
			
		||||
 	platform_device_unregister(bcm2835_camera);
 | 
			
		||||
 	platform_device_unregister(bcm2835_codec);
 | 
			
		||||
 	platform_device_unregister(vcsm_cma);
 | 
			
		||||
@ -174,7 +174,7 @@ Cc: linux-rockchip@lists.infradead.org
 | 
			
		||||
 		return ret;
 | 
			
		||||
--- a/drivers/pci/controller/pcie-cadence-host.c
 | 
			
		||||
+++ b/drivers/pci/controller/pcie-cadence-host.c
 | 
			
		||||
@@ -211,7 +211,7 @@ static int cdns_pcie_host_init(struct de
 | 
			
		||||
@@ -216,7 +216,7 @@ static int cdns_pcie_host_init(struct de
 | 
			
		||||
 	int err;
 | 
			
		||||
 
 | 
			
		||||
 	/* Parse our PCI ranges and request their resources */
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,7 @@ This reverts commit 83b2a8fe43bda0c11981ad6afa5dd0104d78be28.
 | 
			
		||||
 | 
			
		||||
--- a/drivers/spi/spidev.c
 | 
			
		||||
+++ b/drivers/spi/spidev.c
 | 
			
		||||
@@ -394,7 +394,6 @@ spidev_ioctl(struct file *filp, unsigned
 | 
			
		||||
@@ -399,7 +399,6 @@ spidev_ioctl(struct file *filp, unsigned
 | 
			
		||||
 		else
 | 
			
		||||
 			retval = get_user(tmp, (u32 __user *)arg);
 | 
			
		||||
 		if (retval == 0) {
 | 
			
		||||
@ -19,7 +19,7 @@ This reverts commit 83b2a8fe43bda0c11981ad6afa5dd0104d78be28.
 | 
			
		||||
 			u32	save = spi->mode;
 | 
			
		||||
 
 | 
			
		||||
 			if (tmp & ~SPI_MODE_MASK) {
 | 
			
		||||
@@ -402,10 +401,6 @@ spidev_ioctl(struct file *filp, unsigned
 | 
			
		||||
@@ -407,10 +406,6 @@ spidev_ioctl(struct file *filp, unsigned
 | 
			
		||||
 				break;
 | 
			
		||||
 			}
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
@ -25,7 +25,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 | 
			
		||||
 | 
			
		||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
 | 
			
		||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
 | 
			
		||||
@@ -4921,6 +4921,80 @@ static int mv88e6xxx_port_mdb_del(struct
 | 
			
		||||
@@ -4920,6 +4920,80 @@ static int mv88e6xxx_port_mdb_del(struct
 | 
			
		||||
 	return err;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
@ -106,7 +106,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 | 
			
		||||
 static int mv88e6xxx_port_egress_floods(struct dsa_switch *ds, int port,
 | 
			
		||||
 					 bool unicast, bool multicast)
 | 
			
		||||
 {
 | 
			
		||||
@@ -4975,6 +5049,8 @@ static const struct dsa_switch_ops mv88e
 | 
			
		||||
@@ -4974,6 +5048,8 @@ static const struct dsa_switch_ops mv88e
 | 
			
		||||
 	.port_mdb_prepare       = mv88e6xxx_port_mdb_prepare,
 | 
			
		||||
 	.port_mdb_add           = mv88e6xxx_port_mdb_add,
 | 
			
		||||
 	.port_mdb_del           = mv88e6xxx_port_mdb_del,
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 | 
			
		||||
 | 
			
		||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
 | 
			
		||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
 | 
			
		||||
@@ -4988,7 +4988,7 @@ static void mv88e6xxx_port_mirror_del(st
 | 
			
		||||
@@ -4987,7 +4987,7 @@ static void mv88e6xxx_port_mirror_del(st
 | 
			
		||||
 		if (chip->info->ops->set_egress_port(chip,
 | 
			
		||||
 						     direction,
 | 
			
		||||
 						     dsa_upstream_port(ds,
 | 
			
		||||
 | 
			
		||||
@ -22,7 +22,7 @@ Signed-off-by: Pavel Machek <pavel@ucw.cz>
 | 
			
		||||
 #include "leds.h"
 | 
			
		||||
 
 | 
			
		||||
 static struct class *leds_class;
 | 
			
		||||
@@ -276,8 +277,10 @@ int led_classdev_register_ext(struct dev
 | 
			
		||||
@@ -277,8 +278,10 @@ int led_classdev_register_ext(struct dev
 | 
			
		||||
 		mutex_unlock(&led_cdev->led_access);
 | 
			
		||||
 		return PTR_ERR(led_cdev->dev);
 | 
			
		||||
 	}
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 /* Align . to a 8 byte boundary equals to maximum function alignment. */
 | 
			
		||||
 #define ALIGN_FUNCTION()  . = ALIGN(8)
 | 
			
		||||
 
 | 
			
		||||
@@ -406,14 +416,14 @@
 | 
			
		||||
@@ -407,14 +417,14 @@
 | 
			
		||||
 	/* Kernel symbol table: Normal symbols */			\
 | 
			
		||||
 	__ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {		\
 | 
			
		||||
 		__start___ksymtab = .;					\
 | 
			
		||||
@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 		__stop___ksymtab_gpl = .;				\
 | 
			
		||||
 	}								\
 | 
			
		||||
 									\
 | 
			
		||||
@@ -475,7 +485,7 @@
 | 
			
		||||
@@ -476,7 +486,7 @@
 | 
			
		||||
 									\
 | 
			
		||||
 	/* Kernel symbol table: strings */				\
 | 
			
		||||
         __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) {	\
 | 
			
		||||
@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 	}								\
 | 
			
		||||
 									\
 | 
			
		||||
 	/* __*init sections */						\
 | 
			
		||||
@@ -884,6 +894,8 @@
 | 
			
		||||
@@ -885,6 +895,8 @@
 | 
			
		||||
 	EXIT_TEXT							\
 | 
			
		||||
 	EXIT_DATA							\
 | 
			
		||||
 	EXIT_CALL							\
 | 
			
		||||
 | 
			
		||||
@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 
 | 
			
		||||
--- a/net/core/sock.c
 | 
			
		||||
+++ b/net/core/sock.c
 | 
			
		||||
@@ -3608,6 +3608,8 @@ static __net_initdata struct pernet_oper
 | 
			
		||||
@@ -3613,6 +3613,8 @@ static __net_initdata struct pernet_oper
 | 
			
		||||
 
 | 
			
		||||
 static int __init proto_init(void)
 | 
			
		||||
 {
 | 
			
		||||
 | 
			
		||||
@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
+MODULE_LICENSE("GPL");
 | 
			
		||||
--- a/kernel/sched/core.c
 | 
			
		||||
+++ b/kernel/sched/core.c
 | 
			
		||||
@@ -2668,6 +2668,7 @@ int wake_up_state(struct task_struct *p,
 | 
			
		||||
@@ -2679,6 +2679,7 @@ int wake_up_state(struct task_struct *p,
 | 
			
		||||
 {
 | 
			
		||||
 	return try_to_wake_up(p, state, 0);
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@ Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
 | 
			
		||||
 | 
			
		||||
--- a/drivers/spi/spidev.c
 | 
			
		||||
+++ b/drivers/spi/spidev.c
 | 
			
		||||
@@ -673,6 +673,7 @@ static const struct of_device_id spidev_
 | 
			
		||||
@@ -678,6 +678,7 @@ static const struct of_device_id spidev_
 | 
			
		||||
 	{ .compatible = "lwn,bk4" },
 | 
			
		||||
 	{ .compatible = "dh,dhcom-board" },
 | 
			
		||||
 	{ .compatible = "menlo,m53cpld" },
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 #define PACKET_FANOUT_LB		1
 | 
			
		||||
--- a/net/packet/af_packet.c
 | 
			
		||||
+++ b/net/packet/af_packet.c
 | 
			
		||||
@@ -1795,6 +1795,7 @@ static int packet_rcv_spkt(struct sk_buf
 | 
			
		||||
@@ -1797,6 +1797,7 @@ static int packet_rcv_spkt(struct sk_buf
 | 
			
		||||
 {
 | 
			
		||||
 	struct sock *sk;
 | 
			
		||||
 	struct sockaddr_pkt *spkt;
 | 
			
		||||
@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 
 | 
			
		||||
 	/*
 | 
			
		||||
 	 *	When we registered the protocol we saved the socket in the data
 | 
			
		||||
@@ -1802,6 +1803,7 @@ static int packet_rcv_spkt(struct sk_buf
 | 
			
		||||
@@ -1804,6 +1805,7 @@ static int packet_rcv_spkt(struct sk_buf
 | 
			
		||||
 	 */
 | 
			
		||||
 
 | 
			
		||||
 	sk = pt->af_packet_priv;
 | 
			
		||||
@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 
 | 
			
		||||
 	/*
 | 
			
		||||
 	 *	Yank back the headers [hope the device set this
 | 
			
		||||
@@ -1814,7 +1816,7 @@ static int packet_rcv_spkt(struct sk_buf
 | 
			
		||||
@@ -1816,7 +1818,7 @@ static int packet_rcv_spkt(struct sk_buf
 | 
			
		||||
 	 *	so that this procedure is noop.
 | 
			
		||||
 	 */
 | 
			
		||||
 
 | 
			
		||||
@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 		goto out;
 | 
			
		||||
 
 | 
			
		||||
 	if (!net_eq(dev_net(dev), sock_net(sk)))
 | 
			
		||||
@@ -2052,12 +2054,12 @@ static int packet_rcv(struct sk_buff *sk
 | 
			
		||||
@@ -2054,12 +2056,12 @@ static int packet_rcv(struct sk_buff *sk
 | 
			
		||||
 	unsigned int snaplen, res;
 | 
			
		||||
 	bool is_drop_n_account = false;
 | 
			
		||||
 
 | 
			
		||||
@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 	if (!net_eq(dev_net(dev), sock_net(sk)))
 | 
			
		||||
 		goto drop;
 | 
			
		||||
 
 | 
			
		||||
@@ -2182,12 +2184,12 @@ static int tpacket_rcv(struct sk_buff *s
 | 
			
		||||
@@ -2184,12 +2186,12 @@ static int tpacket_rcv(struct sk_buff *s
 | 
			
		||||
 	BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
 | 
			
		||||
 	BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
 | 
			
		||||
 
 | 
			
		||||
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 	if (!net_eq(dev_net(dev), sock_net(sk)))
 | 
			
		||||
 		goto drop;
 | 
			
		||||
 
 | 
			
		||||
@@ -3279,6 +3281,7 @@ static int packet_create(struct net *net
 | 
			
		||||
@@ -3284,6 +3286,7 @@ static int packet_create(struct net *net
 | 
			
		||||
 	mutex_init(&po->pg_vec_lock);
 | 
			
		||||
 	po->rollover = NULL;
 | 
			
		||||
 	po->prot_hook.func = packet_rcv;
 | 
			
		||||
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 
 | 
			
		||||
 	if (sock->type == SOCK_PACKET)
 | 
			
		||||
 		po->prot_hook.func = packet_rcv_spkt;
 | 
			
		||||
@@ -3912,6 +3915,16 @@ packet_setsockopt(struct socket *sock, i
 | 
			
		||||
@@ -3917,6 +3920,16 @@ packet_setsockopt(struct socket *sock, i
 | 
			
		||||
 		po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
 | 
			
		||||
 		return 0;
 | 
			
		||||
 	}
 | 
			
		||||
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
 	default:
 | 
			
		||||
 		return -ENOPROTOOPT;
 | 
			
		||||
 	}
 | 
			
		||||
@@ -3968,6 +3981,13 @@ static int packet_getsockopt(struct sock
 | 
			
		||||
@@ -3973,6 +3986,13 @@ static int packet_getsockopt(struct sock
 | 
			
		||||
 	case PACKET_VNET_HDR:
 | 
			
		||||
 		val = po->has_vnet_hdr;
 | 
			
		||||
 		break;
 | 
			
		||||
 | 
			
		||||
@ -35,7 +35,7 @@ Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
 | 
			
		||||
 --------------------
 | 
			
		||||
--- a/drivers/cpufreq/Kconfig.arm
 | 
			
		||||
+++ b/drivers/cpufreq/Kconfig.arm
 | 
			
		||||
@@ -134,7 +134,7 @@ config ARM_OMAP2PLUS_CPUFREQ
 | 
			
		||||
@@ -135,7 +135,7 @@ config ARM_OMAP2PLUS_CPUFREQ
 | 
			
		||||
 
 | 
			
		||||
 config ARM_QCOM_CPUFREQ_NVMEM
 | 
			
		||||
 	tristate "Qualcomm nvmem based CPUFreq"
 | 
			
		||||
 | 
			
		||||
@ -1,35 +0,0 @@
 | 
			
		||||
From 907137d9ef048e7d0282c28e47b32aa4084ad395 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: Hauke Mehrtens <hauke@hauke-m.de>
 | 
			
		||||
Date: Mon, 6 Jul 2020 00:05:12 +0200
 | 
			
		||||
Subject: [PATCH v2] spi: lantiq-ssc: Fix warning by using WQ_MEM_RECLAIM
 | 
			
		||||
 | 
			
		||||
The lantiq-ssc driver uses internally an own workqueue to wait till the
 | 
			
		||||
data is not only written out of the FIFO but really written to the wire.
 | 
			
		||||
This workqueue is flushed while the SPI subsystem is working in some
 | 
			
		||||
other system workqueue.
 | 
			
		||||
 | 
			
		||||
The system workqueue is marked as WQ_MEM_RECLAIM, but the workqueue in
 | 
			
		||||
the lantiq-ssc driver does not use WQ_MEM_RECLAIM for now. Add this flag
 | 
			
		||||
too to prevent this warning.
 | 
			
		||||
 | 
			
		||||
This fixes the following warning:
 | 
			
		||||
[    2.975956] WARNING: CPU: 1 PID: 17 at kernel/workqueue.c:2614 check_flush_dependency+0x168/0x184
 | 
			
		||||
[    2.984752] workqueue: WQ_MEM_RECLAIM kblockd:blk_mq_run_work_fn is flushing !WQ_MEM_RECLAIM 1e100800.spi:0x0
 | 
			
		||||
 | 
			
		||||
Fixes: 891b7c5fbf61 ("mtd_blkdevs: convert to blk-mq")
 | 
			
		||||
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 | 
			
		||||
---
 | 
			
		||||
 drivers/spi/spi-lantiq-ssc.c | 2 +-
 | 
			
		||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
			
		||||
 | 
			
		||||
--- a/drivers/spi/spi-lantiq-ssc.c
 | 
			
		||||
+++ b/drivers/spi/spi-lantiq-ssc.c
 | 
			
		||||
@@ -907,7 +907,7 @@ static int lantiq_ssc_probe(struct platf
 | 
			
		||||
 	master->bits_per_word_mask = SPI_BPW_RANGE_MASK(2, 8) |
 | 
			
		||||
 				     SPI_BPW_MASK(16) | SPI_BPW_MASK(32);
 | 
			
		||||
 
 | 
			
		||||
-	spi->wq = alloc_ordered_workqueue(dev_name(dev), 0);
 | 
			
		||||
+	spi->wq = alloc_ordered_workqueue(dev_name(dev), WQ_MEM_RECLAIM);
 | 
			
		||||
 	if (!spi->wq) {
 | 
			
		||||
 		err = -ENOMEM;
 | 
			
		||||
 		goto err_clk_put;
 | 
			
		||||
@ -56,7 +56,7 @@ Acked-by: Madalin Bucur <madalin.bucur@nxp.com>
 | 
			
		||||
 
 | 
			
		||||
 static void enable_rams_ecc(struct fman_fpm_regs __iomem *fpm_rg)
 | 
			
		||||
 {
 | 
			
		||||
@@ -1919,7 +1941,10 @@ _return:
 | 
			
		||||
@@ -1918,7 +1940,10 @@ _return:
 | 
			
		||||
 static int fman_init(struct fman *fman)
 | 
			
		||||
 {
 | 
			
		||||
 	struct fman_cfg *cfg = NULL;
 | 
			
		||||
@ -68,7 +68,7 @@ Acked-by: Madalin Bucur <madalin.bucur@nxp.com>
 | 
			
		||||
 
 | 
			
		||||
 	if (is_init_done(fman->cfg))
 | 
			
		||||
 		return -EINVAL;
 | 
			
		||||
@@ -1939,6 +1964,7 @@ static int fman_init(struct fman *fman)
 | 
			
		||||
@@ -1938,6 +1963,7 @@ static int fman_init(struct fman *fman)
 | 
			
		||||
 	memset_io((void __iomem *)(fman->base_addr + CGP_OFFSET), 0,
 | 
			
		||||
 		  fman->state->fm_port_num_of_cg);
 | 
			
		||||
 
 | 
			
		||||
@ -76,7 +76,7 @@ Acked-by: Madalin Bucur <madalin.bucur@nxp.com>
 | 
			
		||||
 	/* Save LIODN info before FMan reset
 | 
			
		||||
 	 * Skipping non-existent port 0 (i = 1)
 | 
			
		||||
 	 */
 | 
			
		||||
@@ -1958,6 +1984,9 @@ static int fman_init(struct fman *fman)
 | 
			
		||||
@@ -1957,6 +1983,9 @@ static int fman_init(struct fman *fman)
 | 
			
		||||
 		}
 | 
			
		||||
 		fman->liodn_base[i] = liodn_base;
 | 
			
		||||
 	}
 | 
			
		||||
@ -86,7 +86,7 @@ Acked-by: Madalin Bucur <madalin.bucur@nxp.com>
 | 
			
		||||
 
 | 
			
		||||
 	err = fman_reset(fman);
 | 
			
		||||
 	if (err)
 | 
			
		||||
@@ -2186,8 +2215,12 @@ int fman_set_port_params(struct fman *fm
 | 
			
		||||
@@ -2185,8 +2214,12 @@ int fman_set_port_params(struct fman *fm
 | 
			
		||||
 	if (err)
 | 
			
		||||
 		goto return_err;
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
@ -28,7 +28,7 @@ This reverts commit e75f4940e8ad0dd76527302a10c06b58bf7eb590.
 | 
			
		||||
 	ret = snd_pcm_hw_constraint_list(substream->runtime, 0,
 | 
			
		||||
 			SNDRV_PCM_HW_PARAM_RATE, &fsl_sai_rate_constraints);
 | 
			
		||||
 
 | 
			
		||||
@@ -1048,35 +1038,30 @@ static int fsl_sai_remove(struct platfor
 | 
			
		||||
@@ -1049,35 +1039,30 @@ static int fsl_sai_remove(struct platfor
 | 
			
		||||
 
 | 
			
		||||
 static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
 | 
			
		||||
 	.use_imx_pcm = false,
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,7 @@ This reverts commit 6eeb60be5ebb73b2e5911e26fb1aed02940b7d09.
 | 
			
		||||
 | 
			
		||||
--- a/sound/soc/fsl/fsl_sai.c
 | 
			
		||||
+++ b/sound/soc/fsl/fsl_sai.c
 | 
			
		||||
@@ -1043,19 +1043,12 @@ static const struct fsl_sai_soc_data fsl
 | 
			
		||||
@@ -1044,19 +1044,12 @@ static const struct fsl_sai_soc_data fsl
 | 
			
		||||
 	.reg_offset = 8,
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,7 @@ This reverts commit a860fac420971c5a90d4f78959b44ead793aee4f.
 | 
			
		||||
 | 
			
		||||
--- a/sound/soc/fsl/fsl_sai.c
 | 
			
		||||
+++ b/sound/soc/fsl/fsl_sai.c
 | 
			
		||||
@@ -1031,24 +1031,10 @@ static const struct fsl_sai_soc_data fsl
 | 
			
		||||
@@ -1032,24 +1032,10 @@ static const struct fsl_sai_soc_data fsl
 | 
			
		||||
 	.reg_offset = 0,
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
@ -287,7 +287,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
 | 
			
		||||
 			   FSL_SAI_CR3_TRCE_MASK, 0);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
@@ -643,20 +633,18 @@ static const struct snd_soc_dai_ops fsl_
 | 
			
		||||
@@ -643,20 +633,17 @@ static const struct snd_soc_dai_ops fsl_
 | 
			
		||||
 static int fsl_sai_dai_probe(struct snd_soc_dai *cpu_dai)
 | 
			
		||||
 {
 | 
			
		||||
 	struct fsl_sai *sai = dev_get_drvdata(cpu_dai->dev);
 | 
			
		||||
@ -305,17 +305,16 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
 | 
			
		||||
+	regmap_write(sai->regmap, FSL_SAI_RCSR, 0);
 | 
			
		||||
 
 | 
			
		||||
-	regmap_update_bits(sai->regmap, FSL_SAI_TCR1(ofs),
 | 
			
		||||
-			   FSL_SAI_CR1_RFW_MASK,
 | 
			
		||||
-			   FSL_SAI_CR1_RFW_MASK(sai->soc_data->fifo_depth),
 | 
			
		||||
+	regmap_update_bits(sai->regmap, FSL_SAI_TCR1, FSL_SAI_CR1_RFW_MASK,
 | 
			
		||||
 			   sai->soc_data->fifo_depth - FSL_SAI_MAXBURST_TX);
 | 
			
		||||
-	regmap_update_bits(sai->regmap, FSL_SAI_RCR1(ofs),
 | 
			
		||||
-			   FSL_SAI_CR1_RFW_MASK, FSL_SAI_MAXBURST_RX - 1);
 | 
			
		||||
-			   FSL_SAI_CR1_RFW_MASK(sai->soc_data->fifo_depth),
 | 
			
		||||
+	regmap_update_bits(sai->regmap, FSL_SAI_RCR1, FSL_SAI_CR1_RFW_MASK,
 | 
			
		||||
+			   FSL_SAI_MAXBURST_RX - 1);
 | 
			
		||||
 			   FSL_SAI_MAXBURST_RX - 1);
 | 
			
		||||
 
 | 
			
		||||
 	snd_soc_dai_init_dma_data(cpu_dai, &sai->dma_params_tx,
 | 
			
		||||
 				&sai->dma_params_rx);
 | 
			
		||||
@@ -693,12 +681,12 @@ static const struct snd_soc_component_dr
 | 
			
		||||
@@ -694,12 +681,12 @@ static const struct snd_soc_component_dr
 | 
			
		||||
 	.name           = "fsl-sai",
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
@ -334,7 +333,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
 | 
			
		||||
 	{FSL_SAI_TDR0, 0},
 | 
			
		||||
 	{FSL_SAI_TDR1, 0},
 | 
			
		||||
 	{FSL_SAI_TDR2, 0},
 | 
			
		||||
@@ -707,50 +695,24 @@ static struct reg_default fsl_sai_reg_de
 | 
			
		||||
@@ -708,50 +695,24 @@ static struct reg_default fsl_sai_reg_de
 | 
			
		||||
 	{FSL_SAI_TDR5, 0},
 | 
			
		||||
 	{FSL_SAI_TDR6, 0},
 | 
			
		||||
 	{FSL_SAI_TDR7, 0},
 | 
			
		||||
@ -398,7 +397,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
 | 
			
		||||
 	case FSL_SAI_TFR0:
 | 
			
		||||
 	case FSL_SAI_TFR1:
 | 
			
		||||
 	case FSL_SAI_TFR2:
 | 
			
		||||
@@ -760,6 +722,12 @@ static bool fsl_sai_readable_reg(struct
 | 
			
		||||
@@ -761,6 +722,12 @@ static bool fsl_sai_readable_reg(struct
 | 
			
		||||
 	case FSL_SAI_TFR6:
 | 
			
		||||
 	case FSL_SAI_TFR7:
 | 
			
		||||
 	case FSL_SAI_TMR:
 | 
			
		||||
@ -411,7 +410,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
 | 
			
		||||
 	case FSL_SAI_RDR0:
 | 
			
		||||
 	case FSL_SAI_RDR1:
 | 
			
		||||
 	case FSL_SAI_RDR2:
 | 
			
		||||
@@ -785,13 +753,9 @@ static bool fsl_sai_readable_reg(struct
 | 
			
		||||
@@ -786,13 +753,9 @@ static bool fsl_sai_readable_reg(struct
 | 
			
		||||
 
 | 
			
		||||
 static bool fsl_sai_volatile_reg(struct device *dev, unsigned int reg)
 | 
			
		||||
 {
 | 
			
		||||
@ -427,7 +426,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
 | 
			
		||||
 	case FSL_SAI_TFR0:
 | 
			
		||||
 	case FSL_SAI_TFR1:
 | 
			
		||||
 	case FSL_SAI_TFR2:
 | 
			
		||||
@@ -824,16 +788,13 @@ static bool fsl_sai_volatile_reg(struct
 | 
			
		||||
@@ -825,16 +788,13 @@ static bool fsl_sai_volatile_reg(struct
 | 
			
		||||
 
 | 
			
		||||
 static bool fsl_sai_writeable_reg(struct device *dev, unsigned int reg)
 | 
			
		||||
 {
 | 
			
		||||
@ -450,7 +449,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
 | 
			
		||||
 	case FSL_SAI_TDR0:
 | 
			
		||||
 	case FSL_SAI_TDR1:
 | 
			
		||||
 	case FSL_SAI_TDR2:
 | 
			
		||||
@@ -843,6 +804,12 @@ static bool fsl_sai_writeable_reg(struct
 | 
			
		||||
@@ -844,6 +804,12 @@ static bool fsl_sai_writeable_reg(struct
 | 
			
		||||
 	case FSL_SAI_TDR6:
 | 
			
		||||
 	case FSL_SAI_TDR7:
 | 
			
		||||
 	case FSL_SAI_TMR:
 | 
			
		||||
@ -463,7 +462,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
 | 
			
		||||
 	case FSL_SAI_RMR:
 | 
			
		||||
 		return true;
 | 
			
		||||
 	default:
 | 
			
		||||
@@ -850,15 +817,15 @@ static bool fsl_sai_writeable_reg(struct
 | 
			
		||||
@@ -851,15 +817,15 @@ static bool fsl_sai_writeable_reg(struct
 | 
			
		||||
 	}
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
@ -482,7 +481,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
 | 
			
		||||
 	.readable_reg = fsl_sai_readable_reg,
 | 
			
		||||
 	.volatile_reg = fsl_sai_volatile_reg,
 | 
			
		||||
 	.writeable_reg = fsl_sai_writeable_reg,
 | 
			
		||||
@@ -890,12 +857,6 @@ static int fsl_sai_probe(struct platform
 | 
			
		||||
@@ -891,12 +857,6 @@ static int fsl_sai_probe(struct platform
 | 
			
		||||
 	if (IS_ERR(base))
 | 
			
		||||
 		return PTR_ERR(base);
 | 
			
		||||
 
 | 
			
		||||
@ -495,7 +494,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
 | 
			
		||||
 	sai->regmap = devm_regmap_init_mmio_clk(&pdev->dev,
 | 
			
		||||
 			"bus", base, &fsl_sai_regmap_config);
 | 
			
		||||
 
 | 
			
		||||
@@ -1022,13 +983,11 @@ static int fsl_sai_remove(struct platfor
 | 
			
		||||
@@ -1023,13 +983,11 @@ static int fsl_sai_remove(struct platfor
 | 
			
		||||
 static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
 | 
			
		||||
 	.use_imx_pcm = false,
 | 
			
		||||
 	.fifo_depth = 32,
 | 
			
		||||
@ -509,7 +508,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
 | 
			
		||||
 };
 | 
			
		||||
 
 | 
			
		||||
 static const struct of_device_id fsl_sai_ids[] = {
 | 
			
		||||
@@ -1061,7 +1020,6 @@ static int fsl_sai_runtime_suspend(struc
 | 
			
		||||
@@ -1062,7 +1020,6 @@ static int fsl_sai_runtime_suspend(struc
 | 
			
		||||
 static int fsl_sai_runtime_resume(struct device *dev)
 | 
			
		||||
 {
 | 
			
		||||
 	struct fsl_sai *sai = dev_get_drvdata(dev);
 | 
			
		||||
@ -517,7 +516,7 @@ This reverts commit 4f7a0728b5305e2d865f543fbcffd617e03c7674.
 | 
			
		||||
 	int ret;
 | 
			
		||||
 
 | 
			
		||||
 	ret = clk_prepare_enable(sai->bus_clk);
 | 
			
		||||
@@ -1083,11 +1041,11 @@ static int fsl_sai_runtime_resume(struct
 | 
			
		||||
@@ -1084,11 +1041,11 @@ static int fsl_sai_runtime_resume(struct
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
 	regcache_cache_only(sai->regmap, false);
 | 
			
		||||
 | 
			
		||||
@ -22,7 +22,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
 | 
			
		||||
 #include <linux/platform_data/x86/apple.h>
 | 
			
		||||
 #include <linux/pm_runtime.h>
 | 
			
		||||
 #include <linux/switchtec.h>
 | 
			
		||||
@@ -5617,3 +5618,34 @@ static void apex_pci_fixup_class(struct
 | 
			
		||||
@@ -5619,3 +5620,34 @@ static void apex_pci_fixup_class(struct
 | 
			
		||||
 }
 | 
			
		||||
 DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
 | 
			
		||||
 			       PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user