Skip to content

Commit 8221545

Browse files
committed
spi: omap2-mcspi: Revert multi mode support
There have been multiple reports that the multi-mode support in the OMAP2 McSPI driver has caused regressions on existing systems. There's been some discussion and some proposed changes but nothing that's been tested by all the reporters. Drop the patch for v6.10, hopefully we can get to the bottom of the issue and reenable the feature for v6.11. Reported-by: Colin Foster <[email protected]> Reported-by: João Paulo Gonçalves <[email protected]> Fixes: e64d3b6 ("spi: omap2-mcpsi: Enable MULTI-mode in more situations") Signed-off-by: Mark Brown <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent 1762dc0 commit 8221545

File tree

1 file changed

+1
-14
lines changed

1 file changed

+1
-14
lines changed

drivers/spi/spi-omap2-mcspi.c

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1277,24 +1277,11 @@ static int omap2_mcspi_prepare_message(struct spi_controller *ctlr,
12771277

12781278
/*
12791279
* Check if this transfer contains only one word;
1280-
* OR contains 1 to 4 words, with bits_per_word == 8 and no delay between each word
1281-
* OR contains 1 to 2 words, with bits_per_word == 16 and no delay between each word
1282-
*
1283-
* If one of the two last case is true, this also change the bits_per_word of this
1284-
* transfer to make it a bit faster.
1285-
* It's not an issue to change the bits_per_word here even if the multi-mode is not
1286-
* applicable for this message, the signal on the wire will be the same.
12871280
*/
12881281
if (bits_per_word < 8 && tr->len == 1) {
12891282
/* multi-mode is applicable, only one word (1..7 bits) */
1290-
} else if (tr->word_delay.value == 0 && bits_per_word == 8 && tr->len <= 4) {
1291-
/* multi-mode is applicable, only one "bigger" word (8,16,24,32 bits) */
1292-
tr->bits_per_word = tr->len * bits_per_word;
1293-
} else if (tr->word_delay.value == 0 && bits_per_word == 16 && tr->len <= 2) {
1294-
/* multi-mode is applicable, only one "bigger" word (16,32 bits) */
1295-
tr->bits_per_word = tr->len * bits_per_word / 2;
12961283
} else if (bits_per_word >= 8 && tr->len == bits_per_word / 8) {
1297-
/* multi-mode is applicable, only one word (9..15,17..32 bits) */
1284+
/* multi-mode is applicable, only one word (8..32 bits) */
12981285
} else {
12991286
/* multi-mode is not applicable: more than one word in the transfer */
13001287
mcspi->use_multi_mode = false;

0 commit comments

Comments
 (0)