summaryrefslogtreecommitdiff
path: root/target/linux/brcm2708/patches-4.9
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.9')
-rw-r--r--target/linux/brcm2708/patches-4.9/950-0005-mm-Remove-the-PFN-busy-warning.patch2
-rw-r--r--target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch2
-rw-r--r--target/linux/brcm2708/patches-4.9/950-0047-Added-hwmon-thermal-driver-for-reporting-core-temper.patch2
-rw-r--r--target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch4
-rw-r--r--target/linux/brcm2708/patches-4.9/950-0106-i2c-bcm2835-Fix-hang-for-writing-messages-larger-tha.patch90
5 files changed, 5 insertions, 95 deletions
diff --git a/target/linux/brcm2708/patches-4.9/950-0005-mm-Remove-the-PFN-busy-warning.patch b/target/linux/brcm2708/patches-4.9/950-0005-mm-Remove-the-PFN-busy-warning.patch
index b271d26..c7b7e85 100644
--- a/target/linux/brcm2708/patches-4.9/950-0005-mm-Remove-the-PFN-busy-warning.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0005-mm-Remove-the-PFN-busy-warning.patch
@@ -14,7 +14,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -7323,8 +7323,6 @@ int alloc_contig_range(unsigned long sta
+@@ -7324,8 +7324,6 @@ int alloc_contig_range(unsigned long sta
/* Make sure the range is really isolated. */
if (test_pages_isolated(outer_start, end, false)) {
diff --git a/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch b/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch
index 0610d03..b311876 100644
--- a/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch
@@ -696,7 +696,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
}
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
-@@ -5009,7 +5009,7 @@ static void port_event(struct usb_hub *h
+@@ -5025,7 +5025,7 @@ static void port_event(struct usb_hub *h
if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
u16 status = 0, unused;
diff --git a/target/linux/brcm2708/patches-4.9/950-0047-Added-hwmon-thermal-driver-for-reporting-core-temper.patch b/target/linux/brcm2708/patches-4.9/950-0047-Added-hwmon-thermal-driver-for-reporting-core-temper.patch
index ff6084f..cbae56b 100644
--- a/target/linux/brcm2708/patches-4.9/950-0047-Added-hwmon-thermal-driver-for-reporting-core-temper.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0047-Added-hwmon-thermal-driver-for-reporting-core-temper.patch
@@ -39,7 +39,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
depends on X86_THERMAL_VECTOR
--- a/drivers/thermal/Makefile
+++ b/drivers/thermal/Makefile
-@@ -41,6 +41,7 @@ obj-$(CONFIG_MAX77620_THERMAL) += max776
+@@ -42,6 +42,7 @@ obj-$(CONFIG_MAX77620_THERMAL) += max776
obj-$(CONFIG_QORIQ_THERMAL) += qoriq_thermal.o
obj-$(CONFIG_DB8500_CPUFREQ_COOLING) += db8500_cpufreq_cooling.o
obj-$(CONFIG_INTEL_POWERCLAMP) += intel_powerclamp.o
diff --git a/target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch b/target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
index 73c9ede..e17a84d 100644
--- a/target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
@@ -10,7 +10,7 @@ Subject: [PATCH] config: Enable CONFIG_MEMCG, but leave it disabled (due to
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
-@@ -5626,7 +5626,7 @@ int __init cgroup_init_early(void)
+@@ -5627,7 +5627,7 @@ int __init cgroup_init_early(void)
return 0;
}
@@ -19,7 +19,7 @@ Subject: [PATCH] config: Enable CONFIG_MEMCG, but leave it disabled (due to
/**
* cgroup_init - cgroup initialization
-@@ -6163,6 +6163,28 @@ static int __init cgroup_no_v1(char *str
+@@ -6164,6 +6164,28 @@ static int __init cgroup_no_v1(char *str
}
__setup("cgroup_no_v1=", cgroup_no_v1);
diff --git a/target/linux/brcm2708/patches-4.9/950-0106-i2c-bcm2835-Fix-hang-for-writing-messages-larger-tha.patch b/target/linux/brcm2708/patches-4.9/950-0106-i2c-bcm2835-Fix-hang-for-writing-messages-larger-tha.patch
deleted file mode 100644
index 899c75e..0000000
--- a/target/linux/brcm2708/patches-4.9/950-0106-i2c-bcm2835-Fix-hang-for-writing-messages-larger-tha.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 89b466914a0d49f08d00be25556ba22497b9a284 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
-Date: Sat, 17 Sep 2016 15:07:10 +0200
-Subject: [PATCH] i2c: bcm2835: Fix hang for writing messages larger than 16
- bytes
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Writing messages larger than the FIFO size results in a hang, rendering
-the machine unusable. This is because the RXD status flag is set on the
-first interrupt which results in bcm2835_drain_rxfifo() stealing bytes
-from the buffer. The controller continues to trigger interrupts waiting
-for the missing bytes, but bcm2835_fill_txfifo() has none to give.
-In this situation wait_for_completion_timeout() apparently is unable to
-stop the madness.
-
-The BCM2835 ARM Peripherals datasheet has this to say about the flags:
- TXD: is set when the FIFO has space for at least one byte of data.
- RXD: is set when the FIFO contains at least one byte of data.
- TXW: is set during a write transfer and the FIFO is less than full.
- RXR: is set during a read transfer and the FIFO is or more full.
-
-Implementing the logic from the downstream i2c-bcm2708 driver solved
-the hang problem.
-
-Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
-Reviewed-by: Eric Anholt <eric@anholt.net>
-Reviewed-by: Martin Sperl <kernel@martin.sperl.org>
----
- drivers/i2c/busses/i2c-bcm2835.c | 22 ++++++++++++++--------
- 1 file changed, 14 insertions(+), 8 deletions(-)
-
---- a/drivers/i2c/busses/i2c-bcm2835.c
-+++ b/drivers/i2c/busses/i2c-bcm2835.c
-@@ -64,6 +64,7 @@ struct bcm2835_i2c_dev {
- int irq;
- struct i2c_adapter adapter;
- struct completion completion;
-+ struct i2c_msg *curr_msg;
- u32 msg_err;
- u8 *msg_buf;
- size_t msg_buf_remaining;
-@@ -126,14 +127,13 @@ static irqreturn_t bcm2835_i2c_isr(int t
- return IRQ_HANDLED;
- }
-
-- if (val & BCM2835_I2C_S_RXD) {
-- bcm2835_drain_rxfifo(i2c_dev);
-- if (!(val & BCM2835_I2C_S_DONE))
-- return IRQ_HANDLED;
-- }
--
- if (val & BCM2835_I2C_S_DONE) {
-- if (i2c_dev->msg_buf_remaining)
-+ if (i2c_dev->curr_msg->flags & I2C_M_RD) {
-+ bcm2835_drain_rxfifo(i2c_dev);
-+ val = bcm2835_i2c_readl(i2c_dev, BCM2835_I2C_S);
-+ }
-+
-+ if ((val & BCM2835_I2C_S_RXD) || i2c_dev->msg_buf_remaining)
- i2c_dev->msg_err = BCM2835_I2C_S_LEN;
- else
- i2c_dev->msg_err = 0;
-@@ -141,11 +141,16 @@ static irqreturn_t bcm2835_i2c_isr(int t
- return IRQ_HANDLED;
- }
-
-- if (val & BCM2835_I2C_S_TXD) {
-+ if (val & BCM2835_I2C_S_TXW) {
- bcm2835_fill_txfifo(i2c_dev);
- return IRQ_HANDLED;
- }
-
-+ if (val & BCM2835_I2C_S_RXR) {
-+ bcm2835_drain_rxfifo(i2c_dev);
-+ return IRQ_HANDLED;
-+ }
-+
- return IRQ_NONE;
- }
-
-@@ -155,6 +160,7 @@ static int bcm2835_i2c_xfer_msg(struct b
- u32 c;
- unsigned long time_left;
-
-+ i2c_dev->curr_msg = msg;
- i2c_dev->msg_buf = msg->buf;
- i2c_dev->msg_buf_remaining = msg->len;
- reinit_completion(&i2c_dev->completion);