diff options
author | Daniel Golle <daniel@makrotopia.org> | 2022-03-21 01:16:48 +0000 |
---|---|---|
committer | Daniel Golle <daniel@makrotopia.org> | 2022-03-21 13:11:56 +0000 |
commit | 786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186 (patch) | |
tree | 926fecb2b1f6ce1e42ba7ef4c7aab8e68dfd214c /target/linux/generic/backport-5.4/806-v5.8-i2c-pxa-re-arrange-functions-to-flow-better.patch | |
parent | 9470160c350d15f765c33d6c1db15d6c4709a64c (diff) | |
download | upstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.tar.gz upstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.tar.bz2 upstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.zip |
kernel: delete Linux 5.4 config and patches
As the upcoming release will be based on Linux 5.10 only, remove all
kernel configuration as well as patches for Linux 5.4.
There were no targets still actively using Linux 5.4.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 3a14580411adfb75f9a44eded9f41245b9e44606)
Diffstat (limited to 'target/linux/generic/backport-5.4/806-v5.8-i2c-pxa-re-arrange-functions-to-flow-better.patch')
-rw-r--r-- | target/linux/generic/backport-5.4/806-v5.8-i2c-pxa-re-arrange-functions-to-flow-better.patch | 380 |
1 files changed, 0 insertions, 380 deletions
diff --git a/target/linux/generic/backport-5.4/806-v5.8-i2c-pxa-re-arrange-functions-to-flow-better.patch b/target/linux/generic/backport-5.4/806-v5.8-i2c-pxa-re-arrange-functions-to-flow-better.patch deleted file mode 100644 index 9f09f9dacb..0000000000 --- a/target/linux/generic/backport-5.4/806-v5.8-i2c-pxa-re-arrange-functions-to-flow-better.patch +++ /dev/null @@ -1,380 +0,0 @@ -From: Russell King <rmk+kernel@armlinux.org.uk> -Bcc: linux@mail.armlinux.org.uk -Cc: linux-i2c@vger.kernel.org -Subject: [PATCH 04/17] i2c: pxa: re-arrange functions to flow better -MIME-Version: 1.0 -Content-Disposition: inline -Content-Transfer-Encoding: 8bit -Content-Type: text/plain; charset="utf-8" - -Re-arrange the PXA I2C code to avoid forward declarations, and keep -similar functionality (e.g. the non-IRQ mode support) together. This -improves code readability. - -Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> ---- - drivers/i2c/busses/i2c-pxa.c | 325 +++++++++++++++++------------------ - 1 file changed, 162 insertions(+), 163 deletions(-) - ---- a/drivers/i2c/busses/i2c-pxa.c -+++ b/drivers/i2c/busses/i2c-pxa.c -@@ -326,7 +326,6 @@ static void i2c_pxa_scream_blue_murder(s - #endif /* ifdef DEBUG / else */ - - static void i2c_pxa_master_complete(struct pxa_i2c *i2c, int ret); --static irqreturn_t i2c_pxa_handler(int this_irq, void *dev_id); - - static inline int i2c_pxa_is_slavemode(struct pxa_i2c *i2c) - { -@@ -697,34 +696,6 @@ static inline void i2c_pxa_stop_message( - writel(icr, _ICR(i2c)); - } - --static int i2c_pxa_pio_set_master(struct pxa_i2c *i2c) --{ -- /* make timeout the same as for interrupt based functions */ -- long timeout = 2 * DEF_TIMEOUT; -- -- /* -- * Wait for the bus to become free. -- */ -- while (timeout-- && readl(_ISR(i2c)) & (ISR_IBB | ISR_UB)) { -- udelay(1000); -- show_state(i2c); -- } -- -- if (timeout < 0) { -- show_state(i2c); -- dev_err(&i2c->adap.dev, -- "i2c_pxa: timeout waiting for bus free\n"); -- return I2C_RETRY; -- } -- -- /* -- * Set master mode. -- */ -- writel(readl(_ICR(i2c)) | ICR_SCLE, _ICR(i2c)); -- -- return 0; --} -- - /* - * PXA I2C send master code - * 1. Load master code to IDBR and send it. -@@ -753,140 +724,6 @@ static int i2c_pxa_send_mastercode(struc - return (timeout == 0) ? I2C_RETRY : 0; - } - --static int i2c_pxa_do_pio_xfer(struct pxa_i2c *i2c, -- struct i2c_msg *msg, int num) --{ -- unsigned long timeout = 500000; /* 5 seconds */ -- int ret = 0; -- -- ret = i2c_pxa_pio_set_master(i2c); -- if (ret) -- goto out; -- -- i2c->msg = msg; -- i2c->msg_num = num; -- i2c->msg_idx = 0; -- i2c->msg_ptr = 0; -- i2c->irqlogidx = 0; -- -- i2c_pxa_start_message(i2c); -- -- while (i2c->msg_num > 0 && --timeout) { -- i2c_pxa_handler(0, i2c); -- udelay(10); -- } -- -- i2c_pxa_stop_message(i2c); -- -- /* -- * We place the return code in i2c->msg_idx. -- */ -- ret = i2c->msg_idx; -- --out: -- if (timeout == 0) { -- i2c_pxa_scream_blue_murder(i2c, "timeout"); -- ret = I2C_RETRY; -- } -- -- return ret; --} -- --/* -- * We are protected by the adapter bus mutex. -- */ --static int i2c_pxa_do_xfer(struct pxa_i2c *i2c, struct i2c_msg *msg, int num) --{ -- long timeout; -- int ret; -- -- /* -- * Wait for the bus to become free. -- */ -- ret = i2c_pxa_wait_bus_not_busy(i2c); -- if (ret) { -- dev_err(&i2c->adap.dev, "i2c_pxa: timeout waiting for bus free\n"); -- goto out; -- } -- -- /* -- * Set master mode. -- */ -- ret = i2c_pxa_set_master(i2c); -- if (ret) { -- dev_err(&i2c->adap.dev, "i2c_pxa_set_master: error %d\n", ret); -- goto out; -- } -- -- if (i2c->high_mode) { -- ret = i2c_pxa_send_mastercode(i2c); -- if (ret) { -- dev_err(&i2c->adap.dev, "i2c_pxa_send_mastercode timeout\n"); -- goto out; -- } -- } -- -- spin_lock_irq(&i2c->lock); -- -- i2c->msg = msg; -- i2c->msg_num = num; -- i2c->msg_idx = 0; -- i2c->msg_ptr = 0; -- i2c->irqlogidx = 0; -- -- i2c_pxa_start_message(i2c); -- -- spin_unlock_irq(&i2c->lock); -- -- /* -- * The rest of the processing occurs in the interrupt handler. -- */ -- timeout = wait_event_timeout(i2c->wait, i2c->msg_num == 0, HZ * 5); -- i2c_pxa_stop_message(i2c); -- -- /* -- * We place the return code in i2c->msg_idx. -- */ -- ret = i2c->msg_idx; -- -- if (!timeout && i2c->msg_num) { -- i2c_pxa_scream_blue_murder(i2c, "timeout"); -- ret = I2C_RETRY; -- } -- -- out: -- return ret; --} -- --static int i2c_pxa_pio_xfer(struct i2c_adapter *adap, -- struct i2c_msg msgs[], int num) --{ -- struct pxa_i2c *i2c = adap->algo_data; -- int ret, i; -- -- /* If the I2C controller is disabled we need to reset it -- (probably due to a suspend/resume destroying state). We do -- this here as we can then avoid worrying about resuming the -- controller before its users. */ -- if (!(readl(_ICR(i2c)) & ICR_IUE)) -- i2c_pxa_reset(i2c); -- -- for (i = adap->retries; i >= 0; i--) { -- ret = i2c_pxa_do_pio_xfer(i2c, msgs, num); -- if (ret != I2C_RETRY) -- goto out; -- -- if (i2c_debug) -- dev_dbg(&adap->dev, "Retrying transmission\n"); -- udelay(100); -- } -- i2c_pxa_scream_blue_murder(i2c, "exhausted retries"); -- ret = -EREMOTEIO; -- out: -- i2c_pxa_set_slave(i2c, ret); -- return ret; --} -- - /* - * i2c_pxa_master_complete - complete the message and wake up. - */ -@@ -1093,6 +930,71 @@ static irqreturn_t i2c_pxa_handler(int t - return IRQ_HANDLED; - } - -+/* -+ * We are protected by the adapter bus mutex. -+ */ -+static int i2c_pxa_do_xfer(struct pxa_i2c *i2c, struct i2c_msg *msg, int num) -+{ -+ long timeout; -+ int ret; -+ -+ /* -+ * Wait for the bus to become free. -+ */ -+ ret = i2c_pxa_wait_bus_not_busy(i2c); -+ if (ret) { -+ dev_err(&i2c->adap.dev, "i2c_pxa: timeout waiting for bus free\n"); -+ goto out; -+ } -+ -+ /* -+ * Set master mode. -+ */ -+ ret = i2c_pxa_set_master(i2c); -+ if (ret) { -+ dev_err(&i2c->adap.dev, "i2c_pxa_set_master: error %d\n", ret); -+ goto out; -+ } -+ -+ if (i2c->high_mode) { -+ ret = i2c_pxa_send_mastercode(i2c); -+ if (ret) { -+ dev_err(&i2c->adap.dev, "i2c_pxa_send_mastercode timeout\n"); -+ goto out; -+ } -+ } -+ -+ spin_lock_irq(&i2c->lock); -+ -+ i2c->msg = msg; -+ i2c->msg_num = num; -+ i2c->msg_idx = 0; -+ i2c->msg_ptr = 0; -+ i2c->irqlogidx = 0; -+ -+ i2c_pxa_start_message(i2c); -+ -+ spin_unlock_irq(&i2c->lock); -+ -+ /* -+ * The rest of the processing occurs in the interrupt handler. -+ */ -+ timeout = wait_event_timeout(i2c->wait, i2c->msg_num == 0, HZ * 5); -+ i2c_pxa_stop_message(i2c); -+ -+ /* -+ * We place the return code in i2c->msg_idx. -+ */ -+ ret = i2c->msg_idx; -+ -+ if (!timeout && i2c->msg_num) { -+ i2c_pxa_scream_blue_murder(i2c, "timeout"); -+ ret = I2C_RETRY; -+ } -+ -+ out: -+ return ret; -+} - - static int i2c_pxa_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num) - { -@@ -1126,6 +1028,103 @@ static const struct i2c_algorithm i2c_px - .functionality = i2c_pxa_functionality, - }; - -+/* Non-interrupt mode support */ -+static int i2c_pxa_pio_set_master(struct pxa_i2c *i2c) -+{ -+ /* make timeout the same as for interrupt based functions */ -+ long timeout = 2 * DEF_TIMEOUT; -+ -+ /* -+ * Wait for the bus to become free. -+ */ -+ while (timeout-- && readl(_ISR(i2c)) & (ISR_IBB | ISR_UB)) { -+ udelay(1000); -+ show_state(i2c); -+ } -+ -+ if (timeout < 0) { -+ show_state(i2c); -+ dev_err(&i2c->adap.dev, -+ "i2c_pxa: timeout waiting for bus free\n"); -+ return I2C_RETRY; -+ } -+ -+ /* -+ * Set master mode. -+ */ -+ writel(readl(_ICR(i2c)) | ICR_SCLE, _ICR(i2c)); -+ -+ return 0; -+} -+ -+static int i2c_pxa_do_pio_xfer(struct pxa_i2c *i2c, -+ struct i2c_msg *msg, int num) -+{ -+ unsigned long timeout = 500000; /* 5 seconds */ -+ int ret = 0; -+ -+ ret = i2c_pxa_pio_set_master(i2c); -+ if (ret) -+ goto out; -+ -+ i2c->msg = msg; -+ i2c->msg_num = num; -+ i2c->msg_idx = 0; -+ i2c->msg_ptr = 0; -+ i2c->irqlogidx = 0; -+ -+ i2c_pxa_start_message(i2c); -+ -+ while (i2c->msg_num > 0 && --timeout) { -+ i2c_pxa_handler(0, i2c); -+ udelay(10); -+ } -+ -+ i2c_pxa_stop_message(i2c); -+ -+ /* -+ * We place the return code in i2c->msg_idx. -+ */ -+ ret = i2c->msg_idx; -+ -+out: -+ if (timeout == 0) { -+ i2c_pxa_scream_blue_murder(i2c, "timeout"); -+ ret = I2C_RETRY; -+ } -+ -+ return ret; -+} -+ -+static int i2c_pxa_pio_xfer(struct i2c_adapter *adap, -+ struct i2c_msg msgs[], int num) -+{ -+ struct pxa_i2c *i2c = adap->algo_data; -+ int ret, i; -+ -+ /* If the I2C controller is disabled we need to reset it -+ (probably due to a suspend/resume destroying state). We do -+ this here as we can then avoid worrying about resuming the -+ controller before its users. */ -+ if (!(readl(_ICR(i2c)) & ICR_IUE)) -+ i2c_pxa_reset(i2c); -+ -+ for (i = adap->retries; i >= 0; i--) { -+ ret = i2c_pxa_do_pio_xfer(i2c, msgs, num); -+ if (ret != I2C_RETRY) -+ goto out; -+ -+ if (i2c_debug) -+ dev_dbg(&adap->dev, "Retrying transmission\n"); -+ udelay(100); -+ } -+ i2c_pxa_scream_blue_murder(i2c, "exhausted retries"); -+ ret = -EREMOTEIO; -+ out: -+ i2c_pxa_set_slave(i2c, ret); -+ return ret; -+} -+ - static const struct i2c_algorithm i2c_pxa_pio_algorithm = { - .master_xfer = i2c_pxa_pio_xfer, - .functionality = i2c_pxa_functionality, |