From: Greg Kroah-Hartman Date: Mon, 2 Apr 2012 16:25:09 +0000 (-0700) Subject: remove serial-pl011-clear-pending-interrupts.patch from 3.0, 3.2, and 3.3 X-Git-Tag: v3.0.27~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d6fc228de209528b262aad381b723b7a93ace07f;p=thirdparty%2Fkernel%2Fstable-queue.git remove serial-pl011-clear-pending-interrupts.patch from 3.0, 3.2, and 3.3 --- diff --git a/queue-3.0/serial-pl011-clear-pending-interrupts.patch b/queue-3.0/serial-pl011-clear-pending-interrupts.patch deleted file mode 100644 index 64a4e24e4a9..00000000000 --- a/queue-3.0/serial-pl011-clear-pending-interrupts.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 9b96fbacda34079dea0638ee1e92c56286f6114a Mon Sep 17 00:00:00 2001 -From: Linus Walleij -Date: Tue, 13 Mar 2012 13:27:23 +0100 -Subject: serial: PL011: clear pending interrupts - -From: Linus Walleij - -commit 9b96fbacda34079dea0638ee1e92c56286f6114a upstream. - -Chanho Min reported that when the boot loader transfers -control to the kernel, there may be pending interrupts -causing the UART to lock up in an eternal loop trying to -pick tokens from the FIFO (since the RX interrupt flag -indicates there are tokens) while in practice there are -no tokens - in fact there is only a pending IRQ flag. - -This patch address the issue with a combination of two -patches suggested by Russell King that clears and mask -all interrupts at probe() and clears any pending error -and RX interrupts at port startup time. - -We suspect the spurious interrupts are a side-effect of -switching the UART from FIFO to non-FIFO mode. - -Cc: Shreshtha Kumar Sahu -Reported-by: Chanho Min -Suggested-by: Russell King -Signed-off-by: Linus Walleij -Reviewed-by: Jong-Sung Kim -Signed-off-by: Greg Kroah-Hartman - ---- - drivers/tty/serial/amba-pl011.c | 15 +++++++++++---- - 1 file changed, 11 insertions(+), 4 deletions(-) - ---- a/drivers/tty/serial/amba-pl011.c -+++ b/drivers/tty/serial/amba-pl011.c -@@ -1376,6 +1376,10 @@ static int pl011_startup(struct uart_por - - uap->port.uartclk = clk_get_rate(uap->clk); - -+ /* Clear pending error and receive interrupts */ -+ writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS | -+ UART011_RTIS | UART011_RXIS, uap->port.membase + UART011_ICR); -+ - /* - * Allocate the IRQ - */ -@@ -1410,10 +1414,6 @@ static int pl011_startup(struct uart_por - cr = UART01x_CR_UARTEN | UART011_CR_RXE | UART011_CR_TXE; - writew(cr, uap->port.membase + UART011_CR); - -- /* Clear pending error interrupts */ -- writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS, -- uap->port.membase + UART011_ICR); -- - /* - * initialise the old status of the modem signals - */ -@@ -1428,6 +1428,9 @@ static int pl011_startup(struct uart_por - * as well. - */ - spin_lock_irq(&uap->port.lock); -+ /* Clear out any spuriously appearing RX interrupts */ -+ writew(UART011_RTIS | UART011_RXIS, -+ uap->port.membase + UART011_ICR); - uap->im = UART011_RTIM; - if (!pl011_dma_rx_running(uap)) - uap->im |= UART011_RXIM; -@@ -1904,6 +1907,10 @@ static int pl011_probe(struct amba_devic - goto unmap; - } - -+ /* Ensure interrupts from this UART are masked and cleared */ -+ writew(0, uap->port.membase + UART011_IMSC); -+ writew(0xffff, uap->port.membase + UART011_ICR); -+ - uap->vendor = vendor; - uap->lcrh_rx = vendor->lcrh_rx; - uap->lcrh_tx = vendor->lcrh_tx; diff --git a/queue-3.0/series b/queue-3.0/series index 407fa4f4c75..862896baefc 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -30,7 +30,6 @@ rt2x00-add-support-for-d-link-dwa-127-to-rt2800usb.patch rtlwifi-handle-previous-allocation-failures-when-freeing-device-memory.patch rtlwifi-rtl8192c-prevent-sleeping-from-invalid-context-in-rtl8192cu.patch rtlwifi-rtl8192ce-fix-loss-of-receive-performance.patch -serial-pl011-clear-pending-interrupts.patch math-introduce-div64_long.patch ntp-fix-integer-overflow-when-setting-time.patch uevent-send-events-in-correct-order-according-to-seqnum-v3.patch diff --git a/queue-3.2/serial-pl011-clear-pending-interrupts.patch b/queue-3.2/serial-pl011-clear-pending-interrupts.patch deleted file mode 100644 index 0ea64963e3b..00000000000 --- a/queue-3.2/serial-pl011-clear-pending-interrupts.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 9b96fbacda34079dea0638ee1e92c56286f6114a Mon Sep 17 00:00:00 2001 -From: Linus Walleij -Date: Tue, 13 Mar 2012 13:27:23 +0100 -Subject: serial: PL011: clear pending interrupts - -From: Linus Walleij - -commit 9b96fbacda34079dea0638ee1e92c56286f6114a upstream. - -Chanho Min reported that when the boot loader transfers -control to the kernel, there may be pending interrupts -causing the UART to lock up in an eternal loop trying to -pick tokens from the FIFO (since the RX interrupt flag -indicates there are tokens) while in practice there are -no tokens - in fact there is only a pending IRQ flag. - -This patch address the issue with a combination of two -patches suggested by Russell King that clears and mask -all interrupts at probe() and clears any pending error -and RX interrupts at port startup time. - -We suspect the spurious interrupts are a side-effect of -switching the UART from FIFO to non-FIFO mode. - -Cc: Shreshtha Kumar Sahu -Reported-by: Chanho Min -Suggested-by: Russell King -Signed-off-by: Linus Walleij -Reviewed-by: Jong-Sung Kim -Signed-off-by: Greg Kroah-Hartman - ---- - drivers/tty/serial/amba-pl011.c | 15 +++++++++++---- - 1 file changed, 11 insertions(+), 4 deletions(-) - ---- a/drivers/tty/serial/amba-pl011.c -+++ b/drivers/tty/serial/amba-pl011.c -@@ -1380,6 +1380,10 @@ static int pl011_startup(struct uart_por - - uap->port.uartclk = clk_get_rate(uap->clk); - -+ /* Clear pending error and receive interrupts */ -+ writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS | -+ UART011_RTIS | UART011_RXIS, uap->port.membase + UART011_ICR); -+ - /* - * Allocate the IRQ - */ -@@ -1414,10 +1418,6 @@ static int pl011_startup(struct uart_por - cr = UART01x_CR_UARTEN | UART011_CR_RXE | UART011_CR_TXE; - writew(cr, uap->port.membase + UART011_CR); - -- /* Clear pending error interrupts */ -- writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS, -- uap->port.membase + UART011_ICR); -- - /* - * initialise the old status of the modem signals - */ -@@ -1432,6 +1432,9 @@ static int pl011_startup(struct uart_por - * as well. - */ - spin_lock_irq(&uap->port.lock); -+ /* Clear out any spuriously appearing RX interrupts */ -+ writew(UART011_RTIS | UART011_RXIS, -+ uap->port.membase + UART011_ICR); - uap->im = UART011_RTIM; - if (!pl011_dma_rx_running(uap)) - uap->im |= UART011_RXIM; -@@ -1916,6 +1919,10 @@ static int pl011_probe(struct amba_devic - goto unmap; - } - -+ /* Ensure interrupts from this UART are masked and cleared */ -+ writew(0, uap->port.membase + UART011_IMSC); -+ writew(0xffff, uap->port.membase + UART011_ICR); -+ - uap->vendor = vendor; - uap->lcrh_rx = vendor->lcrh_rx; - uap->lcrh_tx = vendor->lcrh_tx; diff --git a/queue-3.2/series b/queue-3.2/series index 1a8134da474..b45018e6b59 100644 --- a/queue-3.2/series +++ b/queue-3.2/series @@ -39,7 +39,6 @@ rtlwifi-rtl8192c_common-rtl8192de-check-for-allocation-failures.patch rtlwifi-handle-previous-allocation-failures-when-freeing-device-memory.patch rtlwifi-rtl8192c-prevent-sleeping-from-invalid-context-in-rtl8192cu.patch rtlwifi-rtl8192ce-fix-loss-of-receive-performance.patch -serial-pl011-clear-pending-interrupts.patch iwlwifi-always-monitor-for-stuck-queues.patch math-introduce-div64_long.patch ntp-fix-integer-overflow-when-setting-time.patch diff --git a/queue-3.3/serial-pl011-clear-pending-interrupts.patch b/queue-3.3/serial-pl011-clear-pending-interrupts.patch deleted file mode 100644 index 477d7fb5427..00000000000 --- a/queue-3.3/serial-pl011-clear-pending-interrupts.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 9b96fbacda34079dea0638ee1e92c56286f6114a Mon Sep 17 00:00:00 2001 -From: Linus Walleij -Date: Tue, 13 Mar 2012 13:27:23 +0100 -Subject: serial: PL011: clear pending interrupts - -From: Linus Walleij - -commit 9b96fbacda34079dea0638ee1e92c56286f6114a upstream. - -Chanho Min reported that when the boot loader transfers -control to the kernel, there may be pending interrupts -causing the UART to lock up in an eternal loop trying to -pick tokens from the FIFO (since the RX interrupt flag -indicates there are tokens) while in practice there are -no tokens - in fact there is only a pending IRQ flag. - -This patch address the issue with a combination of two -patches suggested by Russell King that clears and mask -all interrupts at probe() and clears any pending error -and RX interrupts at port startup time. - -We suspect the spurious interrupts are a side-effect of -switching the UART from FIFO to non-FIFO mode. - -Cc: Shreshtha Kumar Sahu -Reported-by: Chanho Min -Suggested-by: Russell King -Signed-off-by: Linus Walleij -Reviewed-by: Jong-Sung Kim -Signed-off-by: Greg Kroah-Hartman - ---- - drivers/tty/serial/amba-pl011.c | 15 +++++++++++---- - 1 file changed, 11 insertions(+), 4 deletions(-) - ---- a/drivers/tty/serial/amba-pl011.c -+++ b/drivers/tty/serial/amba-pl011.c -@@ -1381,6 +1381,10 @@ static int pl011_startup(struct uart_por - - uap->port.uartclk = clk_get_rate(uap->clk); - -+ /* Clear pending error and receive interrupts */ -+ writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS | -+ UART011_RTIS | UART011_RXIS, uap->port.membase + UART011_ICR); -+ - /* - * Allocate the IRQ - */ -@@ -1417,10 +1421,6 @@ static int pl011_startup(struct uart_por - cr |= UART01x_CR_UARTEN | UART011_CR_RXE | UART011_CR_TXE; - writew(cr, uap->port.membase + UART011_CR); - -- /* Clear pending error interrupts */ -- writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS, -- uap->port.membase + UART011_ICR); -- - /* - * initialise the old status of the modem signals - */ -@@ -1435,6 +1435,9 @@ static int pl011_startup(struct uart_por - * as well. - */ - spin_lock_irq(&uap->port.lock); -+ /* Clear out any spuriously appearing RX interrupts */ -+ writew(UART011_RTIS | UART011_RXIS, -+ uap->port.membase + UART011_ICR); - uap->im = UART011_RTIM; - if (!pl011_dma_rx_running(uap)) - uap->im |= UART011_RXIM; -@@ -1927,6 +1930,10 @@ static int pl011_probe(struct amba_devic - goto unmap; - } - -+ /* Ensure interrupts from this UART are masked and cleared */ -+ writew(0, uap->port.membase + UART011_IMSC); -+ writew(0xffff, uap->port.membase + UART011_ICR); -+ - uap->vendor = vendor; - uap->lcrh_rx = vendor->lcrh_rx; - uap->lcrh_tx = vendor->lcrh_tx; diff --git a/queue-3.3/series b/queue-3.3/series index 2e754201532..cfa201a4184 100644 --- a/queue-3.3/series +++ b/queue-3.3/series @@ -44,7 +44,6 @@ rtlwifi-rtl8192c_common-rtl8192de-check-for-allocation-failures.patch rtlwifi-handle-previous-allocation-failures-when-freeing-device-memory.patch rtlwifi-rtl8192c-prevent-sleeping-from-invalid-context-in-rtl8192cu.patch rtlwifi-rtl8192ce-fix-loss-of-receive-performance.patch -serial-pl011-clear-pending-interrupts.patch iwlwifi-always-monitor-for-stuck-queues.patch ath9k-fix-going-to-full-sleep-on-ps-idle.patch math-introduce-div64_long.patch