* [PATCH v2 0/2] staging: sm750fb: improve error handling in de_wait path @ 2026-04-09 15:58 Hungyu Lin 2026-04-09 15:58 ` [PATCH v2 1/2] staging: sm750fb: return -ETIMEDOUT on timeout in de_wait functions Hungyu Lin 2026-04-09 15:58 ` [PATCH v2 2/2] staging: sm750fb: propagate error codes from de_wait() Hungyu Lin 0 siblings, 2 replies; 5+ messages in thread From: Hungyu Lin @ 2026-04-09 15:58 UTC (permalink / raw) To: Sudip Mukherjee, Teddy Wang, Greg Kroah-Hartman Cc: linux-fbdev, linux-staging, linux-kernel, Hungyu Lin This series improves error handling in the sm750fb driver. The de_wait() helpers previously returned -1 on timeout, and callers discarded the error code by always returning -1. This series replaces -1 with -ETIMEDOUT and propagates the error code to improve error reporting. Patch 1 replaces -1 with -ETIMEDOUT in de_wait() helpers. Patch 2 propagates error codes from de_wait(). v2: - Restore the removed comment in sm750_accel.c as requested Hungyu Lin (2): staging: sm750fb: return -ETIMEDOUT on timeout in de_wait functions staging: sm750fb: propagate error codes from de_wait() drivers/staging/sm750fb/sm750_accel.c | 20 +++++++++++++------- drivers/staging/sm750fb/sm750_hw.c | 4 ++-- 2 files changed, 15 insertions(+), 9 deletions(-) -- 2.34.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/2] staging: sm750fb: return -ETIMEDOUT on timeout in de_wait functions 2026-04-09 15:58 [PATCH v2 0/2] staging: sm750fb: improve error handling in de_wait path Hungyu Lin @ 2026-04-09 15:58 ` Hungyu Lin 2026-04-26 19:08 ` Greg Kroah-Hartman 2026-04-09 15:58 ` [PATCH v2 2/2] staging: sm750fb: propagate error codes from de_wait() Hungyu Lin 1 sibling, 1 reply; 5+ messages in thread From: Hungyu Lin @ 2026-04-09 15:58 UTC (permalink / raw) To: Sudip Mukherjee, Teddy Wang, Greg Kroah-Hartman Cc: linux-fbdev, linux-staging, linux-kernel, Hungyu Lin The hw_sm750le_de_wait() and hw_sm750_de_wait() functions return -1 when a timeout occurs. Replace these with -ETIMEDOUT to use a proper errno value and better describe the error condition. All callers check the return value as non-zero, so this change does not alter existing behavior. Signed-off-by: Hungyu Lin <dennylin0707@gmail.com> --- drivers/staging/sm750fb/sm750_hw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c index a2798d428663..3809401baa3a 100644 --- a/drivers/staging/sm750fb/sm750_hw.c +++ b/drivers/staging/sm750fb/sm750_hw.c @@ -502,7 +502,7 @@ int hw_sm750le_de_wait(void) return 0; } /* timeout error */ - return -1; + return -ETIMEDOUT; } int hw_sm750_de_wait(void) @@ -520,7 +520,7 @@ int hw_sm750_de_wait(void) return 0; } /* timeout error */ - return -1; + return -ETIMEDOUT; } int hw_sm750_pan_display(struct lynxfb_crtc *crtc, -- 2.34.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] staging: sm750fb: return -ETIMEDOUT on timeout in de_wait functions 2026-04-09 15:58 ` [PATCH v2 1/2] staging: sm750fb: return -ETIMEDOUT on timeout in de_wait functions Hungyu Lin @ 2026-04-26 19:08 ` Greg Kroah-Hartman 0 siblings, 0 replies; 5+ messages in thread From: Greg Kroah-Hartman @ 2026-04-26 19:08 UTC (permalink / raw) To: Hungyu Lin Cc: Sudip Mukherjee, Teddy Wang, linux-fbdev, linux-staging, linux-kernel On Thu, Apr 09, 2026 at 03:58:20PM +0000, Hungyu Lin wrote: > The hw_sm750le_de_wait() and hw_sm750_de_wait() functions return -1 > when a timeout occurs. Replace these with -ETIMEDOUT to use a proper > errno value and better describe the error condition. > > All callers check the return value as non-zero, so this change does > not alter existing behavior. > > Signed-off-by: Hungyu Lin <dennylin0707@gmail.com> > --- > drivers/staging/sm750fb/sm750_hw.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c > index a2798d428663..3809401baa3a 100644 > --- a/drivers/staging/sm750fb/sm750_hw.c > +++ b/drivers/staging/sm750fb/sm750_hw.c > @@ -502,7 +502,7 @@ int hw_sm750le_de_wait(void) > return 0; > } > /* timeout error */ > - return -1; > + return -ETIMEDOUT; > } > > int hw_sm750_de_wait(void) > @@ -520,7 +520,7 @@ int hw_sm750_de_wait(void) > return 0; > } > /* timeout error */ > - return -1; > + return -ETIMEDOUT; The comment should be removed at the same time, now that the code itself documents it properly, right? thanks, greg k-h ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] staging: sm750fb: propagate error codes from de_wait() 2026-04-09 15:58 [PATCH v2 0/2] staging: sm750fb: improve error handling in de_wait path Hungyu Lin 2026-04-09 15:58 ` [PATCH v2 1/2] staging: sm750fb: return -ETIMEDOUT on timeout in de_wait functions Hungyu Lin @ 2026-04-09 15:58 ` Hungyu Lin 2026-04-26 19:08 ` Greg Kroah-Hartman 1 sibling, 1 reply; 5+ messages in thread From: Hungyu Lin @ 2026-04-09 15:58 UTC (permalink / raw) To: Sudip Mukherjee, Teddy Wang, Greg Kroah-Hartman Cc: linux-fbdev, linux-staging, linux-kernel, Hungyu Lin The sm750 acceleration functions currently return -1 when de_wait() fails, discarding the original error code. Since de_wait() now returns proper errno values, propagate the error code instead of returning -1. Signed-off-by: Hungyu Lin <dennylin0707@gmail.com> --- drivers/staging/sm750fb/sm750_accel.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/staging/sm750fb/sm750_accel.c b/drivers/staging/sm750fb/sm750_accel.c index 0f94d859e91c..688ec262a8ed 100644 --- a/drivers/staging/sm750fb/sm750_accel.c +++ b/drivers/staging/sm750fb/sm750_accel.c @@ -90,14 +90,16 @@ int sm750_hw_fillrect(struct lynx_accel *accel, u32 color, u32 rop) { u32 de_ctrl; + int ret; - if (accel->de_wait() != 0) { + ret = accel->de_wait(); + if (ret) { /* - * int time wait and always busy,seems hardware + * int time wait and always busy, seems hardware * got something error */ pr_debug("De engine always busy\n"); - return -1; + return ret; } write_dpr(accel, DE_WINDOW_DESTINATION_BASE, base); /* dpr40 */ @@ -154,6 +156,7 @@ int sm750_hw_copyarea(struct lynx_accel *accel, unsigned int rop2) { unsigned int direction, de_ctrl; + int ret; direction = LEFT_TO_RIGHT; /* Direction of ROP2 operation: 1 = Left to Right, (-1) = Right to Left */ @@ -263,8 +266,9 @@ int sm750_hw_copyarea(struct lynx_accel *accel, DE_WINDOW_WIDTH_DST_MASK) | (source_pitch / Bpp & DE_WINDOW_WIDTH_SRC_MASK)); /* dpr3c */ - if (accel->de_wait() != 0) - return -1; + ret = accel->de_wait(); + if (ret) + return ret; write_dpr(accel, DE_SOURCE, ((sx << DE_SOURCE_X_K1_SHIFT) & DE_SOURCE_X_K1_MASK) | @@ -326,14 +330,16 @@ int sm750_hw_imageblit(struct lynx_accel *accel, const char *src_buf, unsigned int de_ctrl = 0; unsigned char remain[4]; int i, j; + int ret; start_bit &= 7; /* Just make sure the start bit is within legal range */ bytes_per_scan = (width + start_bit + 7) / 8; words_per_scan = bytes_per_scan & ~3; bytes_remain = bytes_per_scan & 3; - if (accel->de_wait() != 0) - return -1; + ret = accel->de_wait(); + if (ret) + return ret; /* * 2D Source Base. -- 2.34.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] staging: sm750fb: propagate error codes from de_wait() 2026-04-09 15:58 ` [PATCH v2 2/2] staging: sm750fb: propagate error codes from de_wait() Hungyu Lin @ 2026-04-26 19:08 ` Greg Kroah-Hartman 0 siblings, 0 replies; 5+ messages in thread From: Greg Kroah-Hartman @ 2026-04-26 19:08 UTC (permalink / raw) To: Hungyu Lin Cc: Sudip Mukherjee, Teddy Wang, linux-fbdev, linux-staging, linux-kernel On Thu, Apr 09, 2026 at 03:58:21PM +0000, Hungyu Lin wrote: > The sm750 acceleration functions currently return -1 when > de_wait() fails, discarding the original error code. > > Since de_wait() now returns proper errno values, propagate > the error code instead of returning -1. You can use the full 72 columns for a changelog text. > > Signed-off-by: Hungyu Lin <dennylin0707@gmail.com> > --- > drivers/staging/sm750fb/sm750_accel.c | 20 +++++++++++++------- > 1 file changed, 13 insertions(+), 7 deletions(-) > > diff --git a/drivers/staging/sm750fb/sm750_accel.c b/drivers/staging/sm750fb/sm750_accel.c > index 0f94d859e91c..688ec262a8ed 100644 > --- a/drivers/staging/sm750fb/sm750_accel.c > +++ b/drivers/staging/sm750fb/sm750_accel.c > @@ -90,14 +90,16 @@ int sm750_hw_fillrect(struct lynx_accel *accel, > u32 color, u32 rop) > { > u32 de_ctrl; > + int ret; > > - if (accel->de_wait() != 0) { > + ret = accel->de_wait(); > + if (ret) { > /* > - * int time wait and always busy,seems hardware > + * int time wait and always busy, seems hardware Nice fix, but not part of this change to make :( thanks, greg k-h ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-04-27 3:50 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-04-09 15:58 [PATCH v2 0/2] staging: sm750fb: improve error handling in de_wait path Hungyu Lin 2026-04-09 15:58 ` [PATCH v2 1/2] staging: sm750fb: return -ETIMEDOUT on timeout in de_wait functions Hungyu Lin 2026-04-26 19:08 ` Greg Kroah-Hartman 2026-04-09 15:58 ` [PATCH v2 2/2] staging: sm750fb: propagate error codes from de_wait() Hungyu Lin 2026-04-26 19:08 ` Greg Kroah-Hartman
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox