aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/backport-5.4/814-v5.8-i2c-pxa-fix-i2c_pxa_wait_bus_not_busy-boundary-condi.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/backport-5.4/814-v5.8-i2c-pxa-fix-i2c_pxa_wait_bus_not_busy-boundary-condi.patch')
-rw-r--r--target/linux/generic/backport-5.4/814-v5.8-i2c-pxa-fix-i2c_pxa_wait_bus_not_busy-boundary-condi.patch53
1 files changed, 0 insertions, 53 deletions
diff --git a/target/linux/generic/backport-5.4/814-v5.8-i2c-pxa-fix-i2c_pxa_wait_bus_not_busy-boundary-condi.patch b/target/linux/generic/backport-5.4/814-v5.8-i2c-pxa-fix-i2c_pxa_wait_bus_not_busy-boundary-condi.patch
deleted file mode 100644
index 2aadecc357..0000000000
--- a/target/linux/generic/backport-5.4/814-v5.8-i2c-pxa-fix-i2c_pxa_wait_bus_not_busy-boundary-condi.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From: Russell King <rmk+kernel@armlinux.org.uk>
-Bcc: linux@mail.armlinux.org.uk
-Cc: linux-i2c@vger.kernel.org
-Subject: [PATCH 12/17] i2c: pxa: fix i2c_pxa_wait_bus_not_busy() boundary
- condition
-MIME-Version: 1.0
-Content-Disposition: inline
-Content-Transfer-Encoding: 8bit
-Content-Type: text/plain; charset="utf-8"
-
-Fix i2c_pxa_wait_bus_not_busy()'s boundary conditions, so that a
-coincidental success and timeout results in the function returning
-success.
-
-Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
----
- drivers/i2c/busses/i2c-pxa.c | 17 ++++++++++++-----
- 1 file changed, 12 insertions(+), 5 deletions(-)
-
---- a/drivers/i2c/busses/i2c-pxa.c
-+++ b/drivers/i2c/busses/i2c-pxa.c
-@@ -417,19 +417,26 @@ static void i2c_pxa_abort(struct pxa_i2c
- static int i2c_pxa_wait_bus_not_busy(struct pxa_i2c *i2c)
- {
- int timeout = DEF_TIMEOUT;
-+ u32 isr;
-
-- while (timeout-- && readl(_ISR(i2c)) & (ISR_IBB | ISR_UB)) {
-- if ((readl(_ISR(i2c)) & ISR_SAD) != 0)
-+ while (1) {
-+ isr = readl(_ISR(i2c));
-+ if (!(isr & (ISR_IBB | ISR_UB)))
-+ return 0;
-+
-+ if (isr & ISR_SAD)
- timeout += 4;
-
-+ if (!timeout--)
-+ break;
-+
- msleep(2);
- show_state(i2c);
- }
-
-- if (timeout < 0)
-- show_state(i2c);
-+ show_state(i2c);
-
-- return timeout < 0 ? I2C_RETRY : 0;
-+ return I2C_RETRY;
- }
-
- static int i2c_pxa_wait_master(struct pxa_i2c *i2c)