From: Greg KH <gregkh@linuxfoundation.org>
To: Madhumitha Sundar <madhuananda18@gmail.com>
Cc: linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] staging: sm750fb: replace magic number with jiffies timeout
Date: Wed, 28 Jan 2026 06:57:39 +0100 [thread overview]
Message-ID: <2026012818-landmass-cattle-d8c2@gregkh> (raw)
In-Reply-To: <20260127164816.91481-2-madhuananda18@gmail.com>
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
next prev parent reply other threads:[~2026-01-28 5:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
[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
-- strict thread matches above, loose matches on Subject: below --
2026-01-27 15:40 [PATCH v2] staging: sm750fb: replace magic number with jiffies timeout Madhumitha Sundar
2026-01-28 11:55 ` Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2026012818-landmass-cattle-d8c2@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=madhuananda18@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox