diff --git a/root/target/linux/brcm2708/patches-4.19/0044-MMC-added-alternative-MMC-driver.patch b/root/target/linux/brcm2708/patches-4.19/0044-MMC-added-alternative-MMC-driver.patch index 45c8d0cc..51537701 100644 --- a/root/target/linux/brcm2708/patches-4.19/0044-MMC-added-alternative-MMC-driver.patch +++ b/root/target/linux/brcm2708/patches-4.19/0044-MMC-added-alternative-MMC-driver.patch @@ -1,7 +1,7 @@ -From 4d1939addc4ac55db7cb0bbbb6df87417cf25ce8 Mon Sep 17 00:00:00 2001 +From 0b468d7ad239197ea5a24aef3ec74756ea3731e1 Mon Sep 17 00:00:00 2001 From: gellert Date: Fri, 15 Aug 2014 16:35:06 +0100 -Subject: [PATCH 044/432] MMC: added alternative MMC driver +Subject: [PATCH 044/493] MMC: added alternative MMC driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -293,7 +293,7 @@ index ce8398e6f2c0..b402128375b6 100644 obj-$(CONFIG_MMC_MTK) += mtk-sd.o diff --git a/drivers/mmc/host/bcm2835-mmc.c b/drivers/mmc/host/bcm2835-mmc.c new file mode 100644 -index 000000000000..08a700e0639a +index 000000000000..905075c94232 --- /dev/null +++ b/drivers/mmc/host/bcm2835-mmc.c @@ -0,0 +1,1582 @@ @@ -550,7 +550,7 @@ index 000000000000..08a700e0639a + bcm2835_mmc_readl(host, SDHCI_INT_ENABLE), + bcm2835_mmc_readl(host, SDHCI_SIGNAL_ENABLE)); + pr_debug(DRIVER_NAME ": AC12 err: 0x%08x | Slot int: 0x%08x\n", -+ bcm2835_mmc_readw(host, SDHCI_ACMD12_ERR), ++ bcm2835_mmc_readw(host, SDHCI_AUTO_CMD_STATUS), + bcm2835_mmc_readw(host, SDHCI_SLOT_INT_STATUS)); + pr_debug(DRIVER_NAME ": Caps: 0x%08x | Caps_1: 0x%08x\n", + bcm2835_mmc_readl(host, SDHCI_CAPABILITIES), diff --git a/root/target/linux/brcm2708/patches-4.19/0433-media-m88ds3103-serialize-reset-messages-in-m88ds310.patch b/root/target/linux/brcm2708/patches-4.19/0433-media-m88ds3103-serialize-reset-messages-in-m88ds310.patch new file mode 100644 index 00000000..bd9bc0ef --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0433-media-m88ds3103-serialize-reset-messages-in-m88ds310.patch @@ -0,0 +1,102 @@ +From b954ef0dbb6bab97d22c921a79768e9207440fca Mon Sep 17 00:00:00 2001 +From: James Hutchinson +Date: Sun, 13 Jan 2019 16:13:47 -0500 +Subject: [PATCH 433/493] media: m88ds3103: serialize reset messages in + m88ds3103_set_frontend + +commit 981fbe3da20a6f35f17977453bce7dfc1664d74f upstream. + +Ref: https://bugzilla.kernel.org/show_bug.cgi?id=199323 + +Users are experiencing problems with the DVBSky S960/S960C USB devices +since the following commit: + +9d659ae: ("locking/mutex: Add lock handoff to avoid starvation") + +The device malfunctions after running for an indeterminable period of +time, and the problem can only be cleared by rebooting the machine. + +It is possible to encourage the problem to surface by blocking the +signal to the LNB. + +Further debugging revealed the cause of the problem. + +In the following capture: +- thread #1325 is running m88ds3103_set_frontend +- thread #42 is running ts2020_stat_work + +a> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 80 + [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 08 + [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 68 3f + [42] usb 1-1: dvb_usb_v2_generic_io: <<< 08 ff + [42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11 + [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 + [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 3d + [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff +b> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 00 + [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07 + [42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11 + [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 + [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 21 + [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff + [42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11 + [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 + [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 66 + [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff + [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11 + [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07 + [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 60 02 10 0b + [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07 + +Two i2c messages are sent to perform a reset in m88ds3103_set_frontend: + + a. 0x07, 0x80 + b. 0x07, 0x00 + +However, as shown in the capture, the regmap mutex is being handed over +to another thread (ts2020_stat_work) in between these two messages. + +>From here, the device responds to every i2c message with an 07 message, +and will only return to normal operation following a power cycle. + +Use regmap_multi_reg_write to group the two reset messages, ensuring +both are processed before the regmap mutex is unlocked. + +Signed-off-by: James Hutchinson +Reviewed-by: Antti Palosaari +Signed-off-by: Sean Young +Signed-off-by: Mauro Carvalho Chehab +--- + drivers/media/dvb-frontends/m88ds3103.c | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/drivers/media/dvb-frontends/m88ds3103.c b/drivers/media/dvb-frontends/m88ds3103.c +index dffd2d4bf1c8..c25c92797408 100644 +--- a/drivers/media/dvb-frontends/m88ds3103.c ++++ b/drivers/media/dvb-frontends/m88ds3103.c +@@ -309,6 +309,9 @@ static int m88ds3103_set_frontend(struct dvb_frontend *fe) + u16 u16tmp; + u32 tuner_frequency_khz, target_mclk; + s32 s32tmp; ++ static const struct reg_sequence reset_buf[] = { ++ {0x07, 0x80}, {0x07, 0x00} ++ }; + + dev_dbg(&client->dev, + "delivery_system=%d modulation=%d frequency=%u symbol_rate=%d inversion=%d pilot=%d rolloff=%d\n", +@@ -321,11 +324,7 @@ static int m88ds3103_set_frontend(struct dvb_frontend *fe) + } + + /* reset */ +- ret = regmap_write(dev->regmap, 0x07, 0x80); +- if (ret) +- goto err; +- +- ret = regmap_write(dev->regmap, 0x07, 0x00); ++ ret = regmap_multi_reg_write(dev->regmap, reset_buf, 2); + if (ret) + goto err; + +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0435-Revert-cgroup-Disable-cgroup-memory-by-default.patch b/root/target/linux/brcm2708/patches-4.19/0435-Revert-cgroup-Disable-cgroup-memory-by-default.patch new file mode 100644 index 00000000..53fc64af --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0435-Revert-cgroup-Disable-cgroup-memory-by-default.patch @@ -0,0 +1,68 @@ +From 16187430f6c1348b8b7cd279fec834db564a965c Mon Sep 17 00:00:00 2001 +From: P33M +Date: Wed, 24 Apr 2019 14:25:09 +0100 +Subject: [PATCH 435/493] Revert "cgroup: Disable cgroup "memory" by default" + +This reverts commit cd6ce4d0ded13c94ff5208c679ed5e030263149b. +--- + kernel/cgroup/cgroup.c | 30 ------------------------------ + 1 file changed, 30 deletions(-) + +diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c +index 3beaab75b081..63dae7e0ccae 100644 +--- a/kernel/cgroup/cgroup.c ++++ b/kernel/cgroup/cgroup.c +@@ -5290,8 +5290,6 @@ int __init cgroup_init_early(void) + } + + static u16 cgroup_disable_mask __initdata; +-static u16 cgroup_enable_mask __initdata; +-static int __init cgroup_disable(char *str); + + /** + * cgroup_init - cgroup initialization +@@ -5332,12 +5330,6 @@ int __init cgroup_init(void) + + mutex_unlock(&cgroup_mutex); + +- /* Apply an implicit disable... */ +- cgroup_disable("memory"); +- +- /* ...knowing that an explicit enable will override it. */ +- cgroup_disable_mask &= ~cgroup_enable_mask; +- + for_each_subsys(ss, ssid) { + if (ss->early_init) { + struct cgroup_subsys_state *css = +@@ -5721,28 +5713,6 @@ static int __init cgroup_disable(char *str) + } + __setup("cgroup_disable=", cgroup_disable); + +-static int __init cgroup_enable(char *str) +-{ +- struct cgroup_subsys *ss; +- char *token; +- int i; +- +- while ((token = strsep(&str, ",")) != NULL) { +- if (!*token) +- continue; +- +- for_each_subsys(ss, i) { +- if (strcmp(token, ss->name) && +- strcmp(token, ss->legacy_name)) +- continue; +- +- cgroup_enable_mask |= 1 << i; +- } +- } +- return 1; +-} +-__setup("cgroup_enable=", cgroup_enable); +- + /** + * css_tryget_online_from_dir - get corresponding css from a cgroup dentry + * @dentry: directory dentry of interest +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0483-dts-Increase-default-coherent-pool-size.patch b/root/target/linux/brcm2708/patches-4.19/0483-dts-Increase-default-coherent-pool-size.patch new file mode 100644 index 00000000..2592f1c4 --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0483-dts-Increase-default-coherent-pool-size.patch @@ -0,0 +1,32 @@ +From cd07072158b104f2e30a14bf5162095bb3b9c230 Mon Sep 17 00:00:00 2001 +From: P33M +Date: Wed, 1 May 2019 15:00:05 +0100 +Subject: [PATCH 483/493] dts: Increase default coherent pool size + +dwc_otg allocates DMA-coherent buffers in atomic context for misaligned +transfer buffers. The pool that these allocations come from is set up +at boot-time but can be overridden by a commandline parameter - +increase this for now to prevent failures seen on 4.19 with multiple +USB Ethernet devices. + +see: https://github.com/raspberrypi/linux/issues/2924 +--- + arch/arm/boot/dts/bcm270x.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi +index 55a03c0d5e1c..ecdb36e69c87 100644 +--- a/arch/arm/boot/dts/bcm270x.dtsi ++++ b/arch/arm/boot/dts/bcm270x.dtsi +@@ -3,7 +3,7 @@ + + / { + chosen { +- bootargs = ""; ++ bootargs = "coherent_pool=1M"; + /delete-property/ stdout-path; + }; + +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0486-smsc95xx-dynamically-fix-up-TX-buffer-alignment-with.patch b/root/target/linux/brcm2708/patches-4.19/0486-smsc95xx-dynamically-fix-up-TX-buffer-alignment-with.patch new file mode 100644 index 00000000..20002486 --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0486-smsc95xx-dynamically-fix-up-TX-buffer-alignment-with.patch @@ -0,0 +1,69 @@ +From d1ed37c3a772b2609faaf78717816faf41827629 Mon Sep 17 00:00:00 2001 +From: P33M +Date: Wed, 1 May 2019 17:04:32 +0100 +Subject: [PATCH 486/493] smsc95xx: dynamically fix up TX buffer alignment with + padding bytes + +dwc_otg requires a 32-bit aligned buffer start address, otherwise +expensive bounce buffers are used. The LAN951x hardware can skip up to +3 bytes between the TX header and the start of frame data, which can +be used to force alignment of the URB passed to dwc_otg. + +As found in https://github.com/raspberrypi/linux/issues/2924 +--- + drivers/net/usb/smsc95xx.c | 12 +++++++----- + drivers/net/usb/smsc95xx.h | 2 +- + 2 files changed, 8 insertions(+), 6 deletions(-) + +diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c +index a5bbec75f22d..c087b6d75753 100644 +--- a/drivers/net/usb/smsc95xx.c ++++ b/drivers/net/usb/smsc95xx.c +@@ -2082,7 +2082,9 @@ static struct sk_buff *smsc95xx_tx_fixup(struct usbnet *dev, + struct sk_buff *skb, gfp_t flags) + { + bool csum = skb->ip_summed == CHECKSUM_PARTIAL; +- int overhead = csum ? SMSC95XX_TX_OVERHEAD_CSUM : SMSC95XX_TX_OVERHEAD; ++ unsigned int align_bytes = -((uintptr_t)skb->data) & 0x3; ++ int overhead = csum ? SMSC95XX_TX_OVERHEAD_CSUM + align_bytes ++ : SMSC95XX_TX_OVERHEAD + align_bytes; + u32 tx_cmd_a, tx_cmd_b; + + /* We do not advertise SG, so skbs should be already linearized */ +@@ -2116,16 +2118,16 @@ static struct sk_buff *smsc95xx_tx_fixup(struct usbnet *dev, + } + } + +- skb_push(skb, 4); +- tx_cmd_b = (u32)(skb->len - 4); ++ skb_push(skb, 4 + align_bytes); ++ tx_cmd_b = (u32)(skb->len - 4 - align_bytes); + if (csum) + tx_cmd_b |= TX_CMD_B_CSUM_ENABLE; + cpu_to_le32s(&tx_cmd_b); + memcpy(skb->data, &tx_cmd_b, 4); + + skb_push(skb, 4); +- tx_cmd_a = (u32)(skb->len - 8) | TX_CMD_A_FIRST_SEG_ | +- TX_CMD_A_LAST_SEG_; ++ tx_cmd_a = (u32)(skb->len - 8 - align_bytes) | TX_CMD_A_FIRST_SEG_ | ++ (align_bytes << 16) | TX_CMD_A_LAST_SEG_; + cpu_to_le32s(&tx_cmd_a); + memcpy(skb->data, &tx_cmd_a, 4); + +diff --git a/drivers/net/usb/smsc95xx.h b/drivers/net/usb/smsc95xx.h +index cfc704f3a460..55f9f03e1a0c 100644 +--- a/drivers/net/usb/smsc95xx.h ++++ b/drivers/net/usb/smsc95xx.h +@@ -21,7 +21,7 @@ + #define _SMSC95XX_H + + /* Tx command words */ +-#define TX_CMD_A_DATA_OFFSET_ (0x001F0000) /* Data Start Offset */ ++#define TX_CMD_A_DATA_OFFSET_ (0x00030000) /* Data Start Offset */ + #define TX_CMD_A_FIRST_SEG_ (0x00002000) /* First Segment */ + #define TX_CMD_A_LAST_SEG_ (0x00001000) /* Last Segment */ + #define TX_CMD_A_BUF_SIZE_ (0x000007FF) /* Buffer Size */ +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0487-lan78xx-use-default-alignment-for-rx-buffers.patch b/root/target/linux/brcm2708/patches-4.19/0487-lan78xx-use-default-alignment-for-rx-buffers.patch new file mode 100644 index 00000000..b18a7585 --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0487-lan78xx-use-default-alignment-for-rx-buffers.patch @@ -0,0 +1,28 @@ +From 2f5a6b906ad86ef6570863a75b204551c2c62fec Mon Sep 17 00:00:00 2001 +From: P33M +Date: Thu, 2 May 2019 11:53:45 +0100 +Subject: [PATCH 487/493] lan78xx: use default alignment for rx buffers + +The lan78xx uses a 12-byte hardware rx header, so there is no need +to allocate SKBs with NET_IP_ALIGN set. Removes alignment faults +in both dwc_otg and in ipv6 processing. +--- + drivers/net/usb/lan78xx.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c +index 3387f44b132f..14f206a56187 100644 +--- a/drivers/net/usb/lan78xx.c ++++ b/drivers/net/usb/lan78xx.c +@@ -3250,7 +3250,7 @@ static int rx_submit(struct lan78xx_net *dev, struct urb *urb, gfp_t flags) + size_t size = dev->rx_urb_size; + int ret = 0; + +- skb = netdev_alloc_skb_ip_align(dev->net, size); ++ skb = netdev_alloc_skb(dev->net, size); + if (!skb) { + usb_free_urb(urb); + return -ENOMEM; +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0490-staging-mmal-vchiq-Free-the-event-context-for-contro.patch b/root/target/linux/brcm2708/patches-4.19/0490-staging-mmal-vchiq-Free-the-event-context-for-contro.patch new file mode 100644 index 00000000..24920492 --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0490-staging-mmal-vchiq-Free-the-event-context-for-contro.patch @@ -0,0 +1,33 @@ +From 1a3bcd6c80c9ad44e9108cf7d74db37712d171a8 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 1 May 2019 13:27:23 +0100 +Subject: [PATCH 490/493] staging: mmal-vchiq: Free the event context for + control ports + +vchiq_mmal_component_init calls init_event_context for the +control port, but vchiq_mmal_component_finalise didn't free +it, causing a memory leak.. + +Add the free call. + +Signed-off-by: Dave Stevenson +--- + drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c +index 7a48877ffff5..68c5881f3bf6 100644 +--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c ++++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c +@@ -1981,6 +1981,8 @@ int vchiq_mmal_component_finalise(struct vchiq_mmal_instance *instance, + for (idx = 0; idx < component->clocks; idx++) + free_event_context(&component->clock[idx]); + ++ free_event_context(&component->control); ++ + mutex_unlock(&instance->vchiq_mutex); + + return ret; +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0491-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch b/root/target/linux/brcm2708/patches-4.19/0491-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch new file mode 100644 index 00000000..f9ccddd7 --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0491-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch @@ -0,0 +1,72 @@ +From 40dddbf98b6a28a30d68333da8e94dfacf389be1 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 1 May 2019 15:17:00 +0100 +Subject: [PATCH 491/493] staging: mmal-vchiq: Replace spinlock protecting + context_map with mutex + +950fd86 staging: bcm2835-camera: Replace open-coded idr with a struct idr. +replaced an internal implementation of an idr with the standard functions +and a spinlock. +idr_alloc(GFP_KERNEL) can sleep whilst calling kmem_cache_alloc to allocate +the new node, but this is not valid whilst in an atomic context due to the +spinlock. + +There is no need for this to be a spinlock as a standard mutex is +sufficient. + +Signed-off-by: Dave Stevenson +--- + .../staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c +index 68c5881f3bf6..bce42b652e57 100644 +--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c ++++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c +@@ -185,7 +185,8 @@ struct vchiq_mmal_instance { + void *bulk_scratch; + + struct idr context_map; +- spinlock_t context_map_lock; ++ /* protect accesses to context_map */ ++ struct mutex context_map_lock; + + struct vchiq_mmal_component component[VCHIQ_MMAL_MAX_COMPONENTS]; + +@@ -209,10 +210,10 @@ get_msg_context(struct vchiq_mmal_instance *instance) + * that when we service the VCHI reply, we can look up what + * message is being replied to. + */ +- spin_lock(&instance->context_map_lock); ++ mutex_lock(&instance->context_map_lock); + handle = idr_alloc(&instance->context_map, msg_context, + 0, 0, GFP_KERNEL); +- spin_unlock(&instance->context_map_lock); ++ mutex_unlock(&instance->context_map_lock); + + if (handle < 0) { + kfree(msg_context); +@@ -236,9 +237,9 @@ release_msg_context(struct mmal_msg_context *msg_context) + { + struct vchiq_mmal_instance *instance = msg_context->instance; + +- spin_lock(&instance->context_map_lock); ++ mutex_lock(&instance->context_map_lock); + idr_remove(&instance->context_map, msg_context->handle); +- spin_unlock(&instance->context_map_lock); ++ mutex_unlock(&instance->context_map_lock); + kfree(msg_context); + } + +@@ -2143,7 +2144,7 @@ int vchiq_mmal_init(struct vchiq_mmal_instance **out_instance) + + instance->bulk_scratch = vmalloc(PAGE_SIZE); + +- spin_lock_init(&instance->context_map_lock); ++ mutex_init(&instance->context_map_lock); + idr_init_base(&instance->context_map, 1); + + params.callback_param = instance; +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0492-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch b/root/target/linux/brcm2708/patches-4.19/0492-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch new file mode 100644 index 00000000..397639fb --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0492-BCM270X_DT-Also-set-coherent_pool-1M-for-BT-Pis.patch @@ -0,0 +1,56 @@ +From 591bd5452ad361deedc19d21d3f98bf1eab623ca Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 2 May 2019 22:14:34 +0100 +Subject: [PATCH 492/493] BCM270X_DT: Also set coherent_pool=1M for BT Pis + +See: https://github.com/raspberrypi/linux/issues/2924 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2708-rpi-0-w.dts | 2 +- + arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts | 2 +- + arch/arm/boot/dts/bcm2710-rpi-3-b.dts | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2708-rpi-0-w.dts b/arch/arm/boot/dts/bcm2708-rpi-0-w.dts +index 68316404aab2..aa33646fcf53 100644 +--- a/arch/arm/boot/dts/bcm2708-rpi-0-w.dts ++++ b/arch/arm/boot/dts/bcm2708-rpi-0-w.dts +@@ -8,7 +8,7 @@ + model = "Raspberry Pi Zero W"; + + chosen { +- bootargs = "8250.nr_uarts=1"; ++ bootargs = "coherent_pool=1M 8250.nr_uarts=1"; + }; + + aliases { +diff --git a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts +index 898ab48479e3..b5f125296e1e 100644 +--- a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts ++++ b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts +@@ -9,7 +9,7 @@ + model = "Raspberry Pi 3 Model B+"; + + chosen { +- bootargs = "8250.nr_uarts=1"; ++ bootargs = "coherent_pool=1M 8250.nr_uarts=1"; + }; + + aliases { +diff --git a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts +index 61ecb46b9c06..d9d9505c6693 100644 +--- a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts ++++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts +@@ -9,7 +9,7 @@ + model = "Raspberry Pi 3 Model B"; + + chosen { +- bootargs = "8250.nr_uarts=1"; ++ bootargs = "coherent_pool=1M 8250.nr_uarts=1"; + }; + + aliases { +-- +2.19.1 +