mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 03:53:37 +02:00
spi: Add spi_bpw_to_bytes() helper and use it
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>
Reviewed-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20250417152529.490582-2-andriy.shevchenko@linux.intel.com
Acked-by: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
8ffd015db8
commit
163ddf1fea
|
|
@ -3802,7 +3802,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);
|
||||
|
|
|
|||
|
|
@ -1325,6 +1325,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
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user