* [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes()
@ 2025-04-17 15:24 Andy Shevchenko
2025-04-17 15:24 ` [PATCH v3 1/2] spi: Add spi_bpw_to_bytes() helper and use it Andy Shevchenko
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Andy Shevchenko @ 2025-04-17 15:24 UTC (permalink / raw)
To: Mark Brown, Andy Shevchenko, linux-spi, linux-kernel; +Cc: David Lechner
Recently in the discussion with David the idea of having
a common helper popped up. The helper converts the given
bits per word to bytes. The result will always be power-of-two
(e.g. for 37 bits it returns 8 bytes) or 0 for 0 input.
More details are in the respective code comment.
This mini-series introduces it and replaces current users
under drivers/spi and we expect more (and possibly some
lurking in other subsystems).
Mark, if you okay with the idea, please, make this to be
an immutable branch or tag for others to pull.
In v3:
- fixed the typos in the examples
In v2:
- improved examples in the code comment and commit message (David)
Andy Shevchenko (2):
spi: Add spi_bpw_to_bytes() helper and use it
spi: dw: Use spi_bpw_to_bytes() helper
drivers/spi/spi-dw-core.c | 2 +-
drivers/spi/spi.c | 2 +-
include/linux/spi/spi.h | 26 ++++++++++++++++++++++++++
3 files changed, 28 insertions(+), 2 deletions(-)
--
2.47.2
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 1/2] spi: Add spi_bpw_to_bytes() helper and use it
2025-04-17 15:24 [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes() Andy Shevchenko
@ 2025-04-17 15:24 ` Andy Shevchenko
2025-04-17 15:24 ` [PATCH v3 2/2] spi: dw: Use spi_bpw_to_bytes() helper Andy Shevchenko
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2025-04-17 15:24 UTC (permalink / raw)
To: Mark Brown, Andy Shevchenko, linux-spi, linux-kernel; +Cc: David Lechner
This helper converts the given bits per word to bytes. The result
will always be power-of-two, e.g.,
=============== =================
Input (in bits) Output (in bytes)
=============== =================
5 1
9 2
21 4
37 8
=============== =================
It will return 0 for the 0 input.
There are a couple of cases in SPI that are using the same approach
and at least one more (in IIO) would benefit of it. Add a helper
for everyone.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/spi/spi.c | 2 +-
include/linux/spi/spi.h | 26 ++++++++++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index b0e7702951fe..1bc0fdbb1bd7 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -3800,7 +3800,7 @@ int spi_split_transfers_maxwords(struct spi_controller *ctlr,
size_t maxsize;
int ret;
- maxsize = maxwords * roundup_pow_of_two(BITS_TO_BYTES(xfer->bits_per_word));
+ maxsize = maxwords * spi_bpw_to_bytes(xfer->bits_per_word);
if (xfer->len > maxsize) {
ret = __spi_split_transfer_maxsize(ctlr, msg, &xfer,
maxsize);
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
index 834a09bd8ccc..c921ff902f0c 100644
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -1340,6 +1340,32 @@ static inline bool spi_is_bpw_supported(struct spi_device *spi, u32 bpw)
return false;
}
+/**
+ * spi_bpw_to_bytes - Covert bits per word to bytes
+ * @bpw: Bits per word
+ *
+ * This function converts the given @bpw to bytes. The result is always
+ * power-of-two, e.g.,
+ *
+ * =============== =================
+ * Input (in bits) Output (in bytes)
+ * =============== =================
+ * 5 1
+ * 9 2
+ * 21 4
+ * 37 8
+ * =============== =================
+ *
+ * It will return 0 for the 0 input.
+ *
+ * Returns:
+ * Bytes for the given @bpw.
+ */
+static inline u32 spi_bpw_to_bytes(u32 bpw)
+{
+ return roundup_pow_of_two(BITS_TO_BYTES(bpw));
+}
+
/**
* spi_controller_xfer_timeout - Compute a suitable timeout value
* @ctlr: SPI device
--
2.47.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 2/2] spi: dw: Use spi_bpw_to_bytes() helper
2025-04-17 15:24 [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes() Andy Shevchenko
2025-04-17 15:24 ` [PATCH v3 1/2] spi: Add spi_bpw_to_bytes() helper and use it Andy Shevchenko
@ 2025-04-17 15:24 ` Andy Shevchenko
2025-04-17 15:30 ` [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes() David Lechner
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2025-04-17 15:24 UTC (permalink / raw)
To: Mark Brown, Andy Shevchenko, linux-spi, linux-kernel; +Cc: David Lechner
Use existing helper to get amount of bytes (as power-of-two value)
from bits per word.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/spi/spi-dw-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/spi/spi-dw-core.c b/drivers/spi/spi-dw-core.c
index 941ecc6f59f8..b3b883cb9541 100644
--- a/drivers/spi/spi-dw-core.c
+++ b/drivers/spi/spi-dw-core.c
@@ -423,7 +423,7 @@ static int dw_spi_transfer_one(struct spi_controller *host,
int ret;
dws->dma_mapped = 0;
- dws->n_bytes = roundup_pow_of_two(BITS_TO_BYTES(transfer->bits_per_word));
+ dws->n_bytes = spi_bpw_to_bytes(transfer->bits_per_word);
dws->tx = (void *)transfer->tx_buf;
dws->tx_len = transfer->len / dws->n_bytes;
dws->rx = transfer->rx_buf;
--
2.47.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes()
2025-04-17 15:24 [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes() Andy Shevchenko
2025-04-17 15:24 ` [PATCH v3 1/2] spi: Add spi_bpw_to_bytes() helper and use it Andy Shevchenko
2025-04-17 15:24 ` [PATCH v3 2/2] spi: dw: Use spi_bpw_to_bytes() helper Andy Shevchenko
@ 2025-04-17 15:30 ` David Lechner
2025-04-17 16:00 ` Andy Shevchenko
2025-04-17 16:22 ` Mukesh Kumar Savaliya
2025-04-18 5:25 ` Mark Brown
4 siblings, 1 reply; 7+ messages in thread
From: David Lechner @ 2025-04-17 15:30 UTC (permalink / raw)
To: Andy Shevchenko, Mark Brown, linux-spi, linux-kernel
On 4/17/25 10:24 AM, Andy Shevchenko wrote:
> Recently in the discussion with David the idea of having
> a common helper popped up. The helper converts the given
> bits per word to bytes. The result will always be power-of-two
> (e.g. for 37 bits it returns 8 bytes) or 0 for 0 input.
> More details are in the respective code comment.
>
> This mini-series introduces it and replaces current users
> under drivers/spi and we expect more (and possibly some
> lurking in other subsystems).
>
> Mark, if you okay with the idea, please, make this to be
> an immutable branch or tag for others to pull.
>
> In v3:
> - fixed the typos in the examples
>
> In v2:
> - improved examples in the code comment and commit message (David)
>
Reviewed-by: David Lechner <dlechner@baylibre.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes()
2025-04-17 15:30 ` [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes() David Lechner
@ 2025-04-17 16:00 ` Andy Shevchenko
0 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2025-04-17 16:00 UTC (permalink / raw)
To: David Lechner; +Cc: Mark Brown, linux-spi, linux-kernel
On Thu, Apr 17, 2025 at 10:30:46AM -0500, David Lechner wrote:
> On 4/17/25 10:24 AM, Andy Shevchenko wrote:
> > Recently in the discussion with David the idea of having
> > a common helper popped up. The helper converts the given
> > bits per word to bytes. The result will always be power-of-two
> > (e.g. for 37 bits it returns 8 bytes) or 0 for 0 input.
> > More details are in the respective code comment.
> >
> > This mini-series introduces it and replaces current users
> > under drivers/spi and we expect more (and possibly some
> > lurking in other subsystems).
> >
> > Mark, if you okay with the idea, please, make this to be
> > an immutable branch or tag for others to pull.
> >
> > In v3:
> > - fixed the typos in the examples
> >
> > In v2:
> > - improved examples in the code comment and commit message (David)
>
> Reviewed-by: David Lechner <dlechner@baylibre.com>
Thank you for the review!
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes()
2025-04-17 15:24 [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes() Andy Shevchenko
` (2 preceding siblings ...)
2025-04-17 15:30 ` [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes() David Lechner
@ 2025-04-17 16:22 ` Mukesh Kumar Savaliya
2025-04-18 5:25 ` Mark Brown
4 siblings, 0 replies; 7+ messages in thread
From: Mukesh Kumar Savaliya @ 2025-04-17 16:22 UTC (permalink / raw)
To: Andy Shevchenko, Mark Brown, linux-spi, linux-kernel; +Cc: David Lechner
On 4/17/2025 8:54 PM, Andy Shevchenko wrote:
> Recently in the discussion with David the idea of having
> a common helper popped up. The helper converts the given
> bits per word to bytes. The result will always be power-of-two
> (e.g. for 37 bits it returns 8 bytes) or 0 for 0 input.
> More details are in the respective code comment.
>
> This mini-series introduces it and replaces current users
> under drivers/spi and we expect more (and possibly some
> lurking in other subsystems).
>
> Mark, if you okay with the idea, please, make this to be
> an immutable branch or tag for others to pull.
>
> In v3:
> - fixed the typos in the examples
>
> In v2:
> - improved examples in the code comment and commit message (David)
>
> Andy Shevchenko (2):
> spi: Add spi_bpw_to_bytes() helper and use it
> spi: dw: Use spi_bpw_to_bytes() helper
>
> drivers/spi/spi-dw-core.c | 2 +-
> drivers/spi/spi.c | 2 +-
> include/linux/spi/spi.h | 26 ++++++++++++++++++++++++++
> 3 files changed, 28 insertions(+), 2 deletions(-)
>
Acked-by: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes()
2025-04-17 15:24 [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes() Andy Shevchenko
` (3 preceding siblings ...)
2025-04-17 16:22 ` Mukesh Kumar Savaliya
@ 2025-04-18 5:25 ` Mark Brown
4 siblings, 0 replies; 7+ messages in thread
From: Mark Brown @ 2025-04-18 5:25 UTC (permalink / raw)
To: linux-spi, linux-kernel, Andy Shevchenko; +Cc: David Lechner
On Thu, 17 Apr 2025 18:24:45 +0300, Andy Shevchenko wrote:
> Recently in the discussion with David the idea of having
> a common helper popped up. The helper converts the given
> bits per word to bytes. The result will always be power-of-two
> (e.g. for 37 bits it returns 8 bytes) or 0 for 0 input.
> More details are in the respective code comment.
>
> This mini-series introduces it and replaces current users
> under drivers/spi and we expect more (and possibly some
> lurking in other subsystems).
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next
Thanks!
[1/2] spi: Add spi_bpw_to_bytes() helper and use it
commit: 163ddf1fea590229c30a8dc4c29ff4febfb895c3
[2/2] spi: dw: Use spi_bpw_to_bytes() helper
commit: e30b7a75666b3f444abfabed6a144642fa9994d8
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-04-18 5:25 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-17 15:24 [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes() Andy Shevchenko
2025-04-17 15:24 ` [PATCH v3 1/2] spi: Add spi_bpw_to_bytes() helper and use it Andy Shevchenko
2025-04-17 15:24 ` [PATCH v3 2/2] spi: dw: Use spi_bpw_to_bytes() helper Andy Shevchenko
2025-04-17 15:30 ` [PATCH v3 0/2] spi: Introduce and use spi_bpw_to_bytes() David Lechner
2025-04-17 16:00 ` Andy Shevchenko
2025-04-17 16:22 ` Mukesh Kumar Savaliya
2025-04-18 5:25 ` Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).