Linux kernel staging patches
 help / color / mirror / Atom feed
* [PATCH v2] staging: sm750fb: replace magic number with jiffies timeout
@ 2026-01-27 15:40 Madhumitha Sundar
  2026-01-28 11:55 ` Dan Carpenter
  0 siblings, 1 reply; 5+ messages in thread
From: Madhumitha Sundar @ 2026-01-27 15:40 UTC (permalink / raw)
  To: sudipm.mukherjee, teddy.wang, gregkh
  Cc: linux-fbdev, linux-staging, linux-kernel, Madhumitha Sundar

The hardware wait loop in hw_sm750_de_wait used a hardcoded loop
counter (0x10000000), which depends on CPU speed and is unreliable.

Replace the loop counter with a jiffies-based timeout (1 second)
using time_before(). This ensures consistent delays across architectures.

Signed-off-by: Madhumitha Sundar <madhuananda18@gmail.com>
---
Changes in v2:
 - Switched from loop counter to jiffies + cpu_relax() as requested by Greg KH.
---
 drivers/staging/sm750fb/sm750_hw.c | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c
index ce46f240c..b24d27a77 100644
--- a/drivers/staging/sm750fb/sm750_hw.c
+++ b/drivers/staging/sm750fb/sm750_hw.c
@@ -523,19 +523,32 @@ int hw_sm750le_de_wait(void)
 
 int hw_sm750_de_wait(void)
 {
-	int i = 0x10000000;
+	/* Wait for 1 second (HZ) */
+	unsigned long timeout = jiffies + HZ;
 	unsigned int mask = SYSTEM_CTRL_DE_STATUS_BUSY |
 			    SYSTEM_CTRL_DE_FIFO_EMPTY |
 			    SYSTEM_CTRL_DE_MEM_FIFO_EMPTY;
+	unsigned int val;
 
-	while (i--) {
-		unsigned int val = peek32(SYSTEM_CTRL);
+	/* Run while Current Time is BEFORE the Deadline */
+	while (time_before(jiffies, timeout)) {
+		val = peek32(SYSTEM_CTRL);
 
+		/* If Not Busy (0) AND Buffers Empty (1), we are good */
 		if ((val & mask) ==
 		    (SYSTEM_CTRL_DE_FIFO_EMPTY | SYSTEM_CTRL_DE_MEM_FIFO_EMPTY))
 			return 0;
+
+		/* Polite pause to save power */
+		cpu_relax();
 	}
-	/* timeout error */
+
+	/* Final check in case we succeeded at the last millisecond */
+	val = peek32(SYSTEM_CTRL);
+	if ((val & mask) ==
+	    (SYSTEM_CTRL_DE_FIFO_EMPTY | SYSTEM_CTRL_DE_MEM_FIFO_EMPTY))
+		return 0;
+
 	return -1;
 }
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [PATCH v2] staging: sm750fb: make fix_id array fully const
@ 2026-01-27 16:48 Madhumitha Sundar
  2026-01-27 16:48 ` [PATCH v2] staging: sm750fb: replace magic number with jiffies timeout Madhumitha Sundar
  0 siblings, 1 reply; 5+ messages in thread
From: Madhumitha Sundar @ 2026-01-27 16:48 UTC (permalink / raw)
  To: gregkh; +Cc: linux-staging, linux-kernel, Madhumitha Sundar

The fix_id array contains constant string literals, but the array itself
is currently mutable. Make the array const so that the compiler can
place it in the .rodata section.

This fixes the checkpatch warning:
static const char * array should probably be static const char * const

Signed-off-by: Madhumitha Sundar <madhuananda18@gmail.com>
---
 drivers/staging/sm750fb/sm750.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
index d100b9e1d3d5..092cfbadada4 100644
--- a/drivers/staging/sm750fb/sm750.c
+++ b/drivers/staging/sm750fb/sm750.c
@@ -740,7 +740,7 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
 		"kernel HELPERS prepared vesa_modes",
 	};
 
-	static const char *fix_id[2] = {
+	static const char * const fix_id[2] = {
 		"sm750_fb1", "sm750_fb2",
 	};
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-01-28 11:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-27 15:40 [PATCH v2] staging: sm750fb: replace magic number with jiffies timeout Madhumitha Sundar
2026-01-28 11:55 ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2026-01-27 16:48 [PATCH v2] staging: sm750fb: make fix_id array fully const Madhumitha Sundar
2026-01-27 16:48 ` [PATCH v2] staging: sm750fb: replace magic number with jiffies timeout Madhumitha Sundar
2026-01-28  5:57   ` Greg KH
     [not found]     ` <CAPn_1uMTAJYCWE08qd-abag77pDUu52yFsNu_x5=zGPL5b8n+g@mail.gmail.com>
2026-01-28 10:31       ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox