Skip to content

Commit 19a4505

Browse files
andy-shevbroonie
authored andcommitted
spi: microchip-core: use XOR instead of ANDNOT to fix the logic
Use XOR instead of ANDNOT to fix the logic. The current approach with (foo & BAR & ~baz) is harder to process, and it proved to be wrong, than more usual pattern for the comparing misconfiguration using ((foo ^ baz) & BAR) which can be read as "find all different bits between foo and baz that are related to BAR (mask)". Besides that it makes the binary code shorter. Function old new delta mchp_corespi_setup 103 99 -4 Fixes: 059f545 ("spi: add support for microchip "soft" spi controller") Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Tested-by: Prajna Rajendra Kumar <prajna.rajendrakumar@microchip.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://patch.msgid.link/20260108175100.3535306-1-andriy.shevchenko@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 36227ab commit 19a4505

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/spi/spi-microchip-core-spi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ static int mchp_corespi_setup(struct spi_device *spi)
161161
return -EOPNOTSUPP;
162162
}
163163

164-
if (spi->mode & SPI_MODE_X_MASK & ~spi->controller->mode_bits) {
164+
if ((spi->mode ^ spi->controller->mode_bits) & SPI_MODE_X_MASK) {
165165
dev_err(&spi->dev, "incompatible CPOL/CPHA, must match controller's Motorola mode\n");
166166
return -EINVAL;
167167
}

0 commit comments

Comments
 (0)