From: "André Almeida" <andrealmeid@collabora.com>
To: Sanjay R Mehta <sanju.mehta@amd.com>,
Mark Brown <broonie@kernel.org>,
linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org,
kernel@collabora.com,
Lucas Tanure <tanureal@opensource.cirrus.com>,
Nehal Bakulchandra Shah <Nehal-Bakulchandra.shah@amd.com>,
Charles Keepax <ckeepax@opensource.cirrus.com>
Cc: "André Almeida" <andrealmeid@collabora.com>
Subject: [PATCH v2 1/3] spi: amd: Use iopoll for busy waiting
Date: Fri, 11 Feb 2022 11:31:53 -0300 [thread overview]
Message-ID: <20220211143155.75513-2-andrealmeid@collabora.com> (raw)
In-Reply-To: <20220211143155.75513-1-andrealmeid@collabora.com>
Instead of implementing a custom IO busy wait function, just use
readl_poll_timeout().
Signed-off-by: André Almeida <andrealmeid@collabora.com>
---
drivers/spi/spi-amd.c | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/drivers/spi/spi-amd.c b/drivers/spi/spi-amd.c
index 4b3ac7aceaf6..899b8d90ff61 100644
--- a/drivers/spi/spi-amd.c
+++ b/drivers/spi/spi-amd.c
@@ -12,6 +12,7 @@
#include <linux/platform_device.h>
#include <linux/delay.h>
#include <linux/spi/spi.h>
+#include <linux/iopoll.h>
#define AMD_SPI_CTRL0_REG 0x00
#define AMD_SPI_EXEC_CMD BIT(16)
@@ -103,16 +104,10 @@ static inline void amd_spi_set_tx_count(struct amd_spi *amd_spi, u8 tx_count)
static int amd_spi_busy_wait(struct amd_spi *amd_spi)
{
- int timeout = 100000;
+ u32 val;
- /* poll for SPI bus to become idle */
- while (amd_spi_readreg32(amd_spi, AMD_SPI_CTRL0_REG) & AMD_SPI_BUSY) {
- usleep_range(10, 20);
- if (timeout-- < 0)
- return -ETIMEDOUT;
- }
-
- return 0;
+ return readl_poll_timeout(amd_spi->io_remap_addr + AMD_SPI_CTRL0_REG,
+ val, !(val & AMD_SPI_BUSY), 20, 2000000);
}
static int amd_spi_execute_opcode(struct amd_spi *amd_spi)
--
2.35.0
next prev parent reply other threads:[~2022-02-11 14:32 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-11 14:31 [PATCH v2 0/3] spi: amd: Add support for new controller version André Almeida
2022-02-11 14:31 ` André Almeida [this message]
2022-02-11 14:31 ` [PATCH v2 2/3] spi: amd: Remove needless rom_addr variable André Almeida
2022-02-11 14:31 ` [PATCH v2 3/3] spi: amd: Add support for version AMDI0062 André Almeida
2022-02-11 19:31 ` kernel test robot
2022-02-11 19:31 ` kernel test robot
2022-02-11 20:33 ` kernel test robot
2022-02-11 20:33 ` kernel test robot
2022-02-11 22:04 ` kernel test robot
2022-02-11 22:04 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220211143155.75513-2-andrealmeid@collabora.com \
--to=andrealmeid@collabora.com \
--cc=Nehal-Bakulchandra.shah@amd.com \
--cc=broonie@kernel.org \
--cc=ckeepax@opensource.cirrus.com \
--cc=kernel@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=sanju.mehta@amd.com \
--cc=tanureal@opensource.cirrus.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.