* [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
2026-01-28 5:55 ` [PATCH v2] staging: sm750fb: make fix_id array fully const Greg KH
0 siblings, 2 replies; 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
* [PATCH v2] staging: sm750fb: replace magic number with jiffies timeout
2026-01-27 16:48 [PATCH v2] staging: sm750fb: make fix_id array fully const Madhumitha Sundar
@ 2026-01-27 16:48 ` Madhumitha Sundar
2026-01-28 5:57 ` Greg KH
2026-01-28 5:55 ` [PATCH v2] staging: sm750fb: make fix_id array fully const Greg KH
1 sibling, 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 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
* Re: [PATCH v2] staging: sm750fb: make fix_id array fully const
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:55 ` Greg KH
1 sibling, 0 replies; 5+ messages in thread
From: Greg KH @ 2026-01-28 5:55 UTC (permalink / raw)
To: Madhumitha Sundar; +Cc: linux-staging, linux-kernel
On Tue, Jan 27, 2026 at 04:48:15PM +0000, Madhumitha Sundar wrote:
> 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
>
Hi,
This is the friendly patch-bot of Greg Kroah-Hartman. You have sent him
a patch that has triggered this response. He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created. Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.
You are receiving this message because of the following common error(s)
as indicated below:
- This looks like a new version of a previously submitted patch, but you
did not list below the --- line any changes from the previous version.
Please read the section entitled "The canonical patch format" in the
kernel file, Documentation/process/submitting-patches.rst for what
needs to be done here to properly describe this.
If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.
thanks,
greg k-h's patch email bot
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] staging: sm750fb: replace magic number with jiffies timeout
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>
0 siblings, 1 reply; 5+ messages in thread
From: Greg KH @ 2026-01-28 5:57 UTC (permalink / raw)
To: Madhumitha Sundar; +Cc: linux-staging, linux-kernel
On Tue, Jan 27, 2026 at 04:48:16PM +0000, Madhumitha Sundar wrote:
> 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) */
No need for a comment, right?
> + unsigned long timeout = jiffies + HZ;
Why is a variable needed?
And are you sure 1 second is ok? How short was the original timeout?
> unsigned int mask = SYSTEM_CTRL_DE_STATUS_BUSY |
> SYSTEM_CTRL_DE_FIFO_EMPTY |
> SYSTEM_CTRL_DE_MEM_FIFO_EMPTY;
> + unsigned int val;
Why move this?
> - while (i--) {
> - unsigned int val = peek32(SYSTEM_CTRL);
> + /* Run while Current Time is BEFORE the Deadline */
Run what?
> + 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();
Are you sure you can sleep here?
> }
> - /* timeout error */
> +
> + /* Final check in case we succeeded at the last millisecond */
I do not understand this, why would this matter?
> + val = peek32(SYSTEM_CTRL);
> + if ((val & mask) ==
> + (SYSTEM_CTRL_DE_FIFO_EMPTY | SYSTEM_CTRL_DE_MEM_FIFO_EMPTY))
> + return 0;
> +
Was this tested on real hardware?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] staging: sm750fb: replace magic number with jiffies timeout
[not found] ` <CAPn_1uMTAJYCWE08qd-abag77pDUu52yFsNu_x5=zGPL5b8n+g@mail.gmail.com>
@ 2026-01-28 10:31 ` Greg KH
0 siblings, 0 replies; 5+ messages in thread
From: Greg KH @ 2026-01-28 10:31 UTC (permalink / raw)
To: MADHU ANAND; +Cc: linux-staging, linux-kernel
On Wed, Jan 28, 2026 at 10:18:07AM +0000, MADHU ANAND wrote:
> My apologies for the private reply and the top-posting. I am resending my
> responses to the list now and will ensure correct formatting going forward.
>
> You're absolutely right. I over-engineered the implementation and added
> redundant comments that shouldn't be there.
>
> To address your points:
>
> 1.
Sorry, I don't have much context here, you seem to have removed my
responses and the original patch entirely :(
Remember, some of us get over 1000 emails a day and context in an email
matters to know what is going on.
> I used 1 second (HZ) as a safe upper bound, but since I don't have the
> hardware to verify the original loop's speed, this was an assumption.
If you are changing timing loops, testing on the real hardware is
essencial. Please don't do any sort of logic changes like this without
being able to do so.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-01-28 10:31 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2026-01-28 5:55 ` [PATCH v2] staging: sm750fb: make fix_id array fully const Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox