[PATCH] usb: ulpi: Incorrect operator used

Andrew Goodbody andrew.goodbody at linaro.org
Tue Sep 30 18:06:44 CEST 2025


Combining two bits into a mask to be used so that the same write code
can be used to set or reset bits in a register clearly needs to use the
binary 'or' operator, not the binary 'and'. Fix it.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody at linaro.org>
---
 drivers/usb/ulpi/ulpi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/ulpi/ulpi.c b/drivers/usb/ulpi/ulpi.c
index 128adcbde134bc5a3b3705c3ddd932b540b54cd4..0e0f0e4983d33583aa6d3212ccffc9db9ab3bc29 100644
--- a/drivers/usb/ulpi/ulpi.c
+++ b/drivers/usb/ulpi/ulpi.c
@@ -127,7 +127,7 @@ int ulpi_set_vbus_indicator(struct ulpi_viewport *ulpi_vp, int external,
 	if (val == ULPI_ERROR)
 		return val;
 
-	val = val & ~(ULPI_IFACE_PASSTHRU & ULPI_IFACE_EXTVBUS_COMPLEMENT);
+	val = val & ~(ULPI_IFACE_PASSTHRU | ULPI_IFACE_EXTVBUS_COMPLEMENT);
 	val |= flags;
 	val = ulpi_write(ulpi_vp, &ulpi->iface_ctrl, val);
 	if (val)

---
base-commit: 9710d98e8942151fc0c62d54100d9d27e8263d04
change-id: 20250930-usb_ulpi-a86af1a4495e

Best regards,
-- 
Andrew Goodbody <andrew.goodbody at linaro.org>



More information about the U-Boot mailing list