[PATCH v2 1/2] staging: sm750fb: Replace busy-wait loop with udelay()

From: Oarora Etimis

Date: Sun Mar 15 2026 - 19:21:12 EST


From: OaroraEtimis <OaroraEtimis@xxxxxxxxx>

The empty for-loop in sw_i2c_wait() triggers a -Wunused-but-set-variable
warning and can be optimized away by modern compilers.

Fix this by replacing the unreliable loop with a standard udelay(2).
This also cleans up the unused 'tmp' variable and outdated comments.
Include <linux/delay.h> to resolve the implicit function declaration.

Signed-off-by: OaroraEtimis <OaroraEtimis@xxxxxxxxx>
---
Changes in v2:
- Rebased onto the latest staging-next branch to resolve merge conflicts.
- No logical code changes.

drivers/staging/sm750fb/ddk750_swi2c.c | 20 ++------------------
1 file changed, 2 insertions(+), 18 deletions(-)

diff --git a/drivers/staging/sm750fb/ddk750_swi2c.c b/drivers/staging/sm750fb/ddk750_swi2c.c
index e63f3b00ec4c..d579cb9da79e 100644
--- a/drivers/staging/sm750fb/ddk750_swi2c.c
+++ b/drivers/staging/sm750fb/ddk750_swi2c.c
@@ -11,6 +11,7 @@
#include "ddk750_reg.h"
#include "ddk750_swi2c.h"
#include "ddk750_power.h"
+#include <linux/delay.h>

/*
* I2C Software Master Driver:
@@ -80,24 +81,7 @@ static unsigned long sw_i2c_data_gpio_data_dir_reg = GPIO_DATA_DIRECTION;
*/
static void sw_i2c_wait(void)
{
- /* find a bug:
- * peekIO method works well before suspend/resume
- * but after suspend, peekIO(0x3ce,0x61) & 0x10
- * always be non-zero,which makes the while loop
- * never finish.
- * use non-ultimate for loop below is safe
- */
-
- /* Change wait algorithm to use PCI bus clock,
- * it's more reliable than counter loop ..
- * write 0x61 to 0x3ce and read from 0x3cf
- */
- int i, tmp;
-
- for (i = 0; i < 600; i++) {
- tmp = i;
- tmp += i;
- }
+ udelay(2);
}

/*
--
2.47.3