Linux kernel staging patches
 help / color / mirror / Atom feed
* Re: [PATCH] staging: rtl8723bs: fix CamelCase style warnings in rtw_efuse.c
From: Dan Carpenter @ 2026-06-23 12:32 UTC (permalink / raw)
  To: Bruce Ou; +Cc: Greg Kroah-Hartman, linux-staging, linux-kernel
In-Reply-To: <20260623112629.4953-1-oubruce1234@gmail.com>

On Tue, Jun 23, 2026 at 07:26:29PM +0800, Bruce Ou wrote:
> Fix coding style warnings reported by checkpatch.pl regarding
> CamelCase local variable names in rtw_efuse.c. This includes
> variables like contentLen, mapLen, efuseType, Bytetemp, bResult,
> and Address.
> 
> No functional changes are introduced.
> 
> Signed-off-by: Bruce Ou <oubruce1234@gmail.com>
> ---

There are a whole series of rules to follow for v2 patches.
https://staticthinking.wordpress.com/2022/07/27/how-to-send-a-v2-patch/

But mainly please slow down and wait a day between resends...

regards,
dan carpenter



^ permalink raw reply

* [PATCH] staging: most: dim2: use dev_err_probe() for clock errors in rcar enable functions
From: Batu Ada Tutkun @ 2026-06-23 12:42 UTC (permalink / raw)
  To: parthiban.veerasooran, christian.gromm
  Cc: gregkh, linux-staging, linux-kernel, Batu Ada Tutkun

rcar_gen2_enable() and rcar_gen3_enable() use the old pattern of
dev_err() followed by return PTR_ERR() when devm_clk_get() fails.
fsl_mx6_enable() in the same file was already converted to use
dev_err_probe() by a previous cleanup series.

Convert the remaining two functions for consistency. devm_clk_get()
can return -EPROBE_DEFER, so dev_err_probe() is appropriate here: it
suppresses the log message at error level when the failure is a deferred
probe, avoiding misleading output during normal boot.

Signed-off-by: Batu Ada Tutkun <batuadatutkun@gmail.com>
---
 drivers/staging/most/dim2/dim2.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/most/dim2/dim2.c b/drivers/staging/most/dim2/dim2.c
index 7953d4626..56f856d6d 100644
--- a/drivers/staging/most/dim2/dim2.c
+++ b/drivers/staging/most/dim2/dim2.c
@@ -974,10 +974,9 @@ static int rcar_gen2_enable(struct platform_device *pdev)
 	int ret;
 
 	dev->clk = devm_clk_get(&pdev->dev, NULL);
-	if (IS_ERR(dev->clk)) {
-		dev_err(&pdev->dev, "cannot get clock\n");
-		return PTR_ERR(dev->clk);
-	}
+	if (IS_ERR(dev->clk))
+		return dev_err_probe(&pdev->dev, PTR_ERR(dev->clk),
+				     "cannot get clock\n");
 
 	ret = clk_prepare_enable(dev->clk);
 	if (ret) {
@@ -1019,10 +1018,9 @@ static int rcar_gen3_enable(struct platform_device *pdev)
 	int ret;
 
 	dev->clk = devm_clk_get(&pdev->dev, NULL);
-	if (IS_ERR(dev->clk)) {
-		dev_err(&pdev->dev, "cannot get clock\n");
-		return PTR_ERR(dev->clk);
-	}
+	if (IS_ERR(dev->clk))
+		return dev_err_probe(&pdev->dev, PTR_ERR(dev->clk),
+				     "cannot get clock\n");
 
 	ret = clk_prepare_enable(dev->clk);
 	if (ret) {
-- 
2.53.0


^ permalink raw reply related

* Re: [PATCH] staging: most: dim2: use dev_err_probe() for clock errors in rcar enable functions
From: Dan Carpenter @ 2026-06-23 13:16 UTC (permalink / raw)
  To: Batu Ada Tutkun
  Cc: parthiban.veerasooran, christian.gromm, gregkh, linux-staging,
	linux-kernel
In-Reply-To: <20260623124243.1245-1-batuadatutkun@gmail.com>

On Tue, Jun 23, 2026 at 03:42:43PM +0300, Batu Ada Tutkun wrote:
> rcar_gen2_enable() and rcar_gen3_enable() use the old pattern of
> dev_err() followed by return PTR_ERR() when devm_clk_get() fails.
> fsl_mx6_enable() in the same file was already converted to use
> dev_err_probe() by a previous cleanup series.
> 
> Convert the remaining two functions for consistency. devm_clk_get()
> can return -EPROBE_DEFER, so dev_err_probe() is appropriate here: it
> suppresses the log message at error level when the failure is a deferred
> probe, avoiding misleading output during normal boot.
> 

This feels like an AI patch.  Please state when you are using AI.

In fsl_mx6_enable(), the original code returned -EFAULT if
devm_clk_get() failed so change it to propagate the error code and
use dev_err_probe() made obvious sense.  This was done in
commit b7a013c12504 ("staging: most: dim2: use dev_err_probe and
proper error codes for clock").

In this case, the logic is "monkey see, monkey do" which is
reasonable AI logic but it's not enough motivation on its own
Does devm_clk_get() actually return -EPROBE_DEFER?  Does
clk_prepare_enable() return -EPROBE_DEFER?  Should that be changed
as well?

> Signed-off-by: Batu Ada Tutkun <batuadatutkun@gmail.com>
> ---
  ^^^
You need to say if a patch has been tested or not here under the
--- cut off line.

>  drivers/staging/most/dim2/dim2.c | 14 ++++++--------
>  1 file changed, 6 insertions(+), 8 deletions(-)

regards,
dan carpenter


^ permalink raw reply

* Re: [PATCH] staging: media: atomisp: use %s with __func__ in debug messages
From: Ambar Chakravartty @ 2026-06-23 14:48 UTC (permalink / raw)
  To: andy.shevchenko
  Cc: amch9605, andy, gregkh, hansg, linux-staging, mchehab,
	sakari.ailus
In-Reply-To: <CAHp75VcOo3=U_FJc_Mpfwq=oxAo_LkmsEG+CbLCr65w8SYSkKw@mail.gmail.com>

Thanks for the review.

I found the recent discussions in the linux-media archives regarding
moving from the current debugging messages to tracepoints and trace 
events.

Please disregard this patch.

--
Regards,
Ambar

^ permalink raw reply

* [PATCH v2] staging: rtl8723bs: remove unused function declarations
From: Aditya Chari @ 2026-06-22 13:04 UTC (permalink / raw)
  To: gregkh; +Cc: broonie, linux-staging, linux-kernel, Aditya Chari

rtl8192c_translate_rx_signal_stuff() and rtl8192c_query_rx_desc_status()
are declared in rtl8192c_recv.h but have no implementation and no
caller anywhere in the kernel tree. They are leftover from when this
driver was derived from Realtek's shared vendor codebase covering
multiple chip families.

Verified via grep across the full tree that neither symbol is
referenced outside this declaration, and confirmed via a full build
of the module before and after removal that no warnings or errors
are introduced.

This addresses the "find and remove any code for other chips that is
left over" item in the driver's TODO file.

Signed-off-by: Aditya Chari <adi25charis@gmail.com>
------------------------------------------------------------------

Changes since v1:
- Rebased onto linux-next as requested by Dan Carpenter
---
 drivers/staging/rtl8723bs/include/rtl8192c_recv.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/staging/rtl8723bs/include/rtl8192c_recv.h b/drivers/staging/rtl8723bs/include/rtl8192c_recv.h
index 1f86654f0..b63625ab4 100644
--- a/drivers/staging/rtl8723bs/include/rtl8192c_recv.h
+++ b/drivers/staging/rtl8723bs/include/rtl8192c_recv.h
@@ -30,7 +30,4 @@ struct phy_stat {
 /*  Rx smooth factor */
 #define	Rx_Smooth_Factor (20)
 
-void rtl8192c_translate_rx_signal_stuff(union recv_frame *precvframe, struct phy_stat *pphy_status);
-void rtl8192c_query_rx_desc_status(union recv_frame *precvframe, struct recv_stat *pdesc);
-
 #endif
-- 
2.53.0


^ permalink raw reply related

* Re: [PATCH] staging: most: dim2: use dev_err_probe() for clock errors in rcar enable functions
From: Batu Ada Tutkun @ 2026-06-23 17:41 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: parthiban.veerasooran, christian.gromm, gregkh, linux-staging,
	linux-kernel
In-Reply-To: <ajqHS-i9zNeYq-Ll@stanley.mountain>

Yes, this was drafted with AI assistance. Thank you for pointing it out.

You are right that the error code was not broken here. rcar_gen2 and gen3 already return PTR_ERR(dev->clk), so unlike the fsl_mx6 case there is no -EFAULT bug to fix. This is just a consistency cleanup, plus devm_clk_get() can return -EPROBE_DEFER when the clock provider has not registered yet so dev_err_probe() suppresses the misleading "cannot get clock" message during a normal deferred probe.

clk_prepare_enable() can't return -EPROBE_DEFER. By the time it is called the clock handle is already acquired and deferral only happens at acquisition. Because of that I deliberately left that path as dev_err().

Compile tested only. I do not have R-Car hardware.

Regards,
Batu Ada Tutkun

^ permalink raw reply

* Re: [PATCH] staging: most: dim2: use dev_err_probe() for clock errors in rcar enable functions
From: Dan Carpenter @ 2026-06-23 18:35 UTC (permalink / raw)
  To: Batu Ada Tutkun
  Cc: parthiban.veerasooran, christian.gromm, gregkh, linux-staging,
	linux-kernel
In-Reply-To: <6a3ac564.561280e1.325e99.1bee@mx.google.com>

On Tue, Jun 23, 2026 at 10:41:56AM -0700, Batu Ada Tutkun wrote:
> Yes, this was drafted with AI assistance. Thank you for pointing it out.
> 
> You are right that the error code was not broken here. rcar_gen2 and gen3 already return PTR_ERR(dev->clk), so unlike the fsl_mx6 case there is no -EFAULT bug to fix. This is just a consistency cleanup, plus devm_clk_get() can return -EPROBE_DEFER when the clock provider has not registered yet so dev_err_probe() suppresses the misleading "cannot get clock" message during a normal deferred probe.

I checked this and sure enough, clk_get() returns -EPROBE_DEFER.  Please
specifically mention clk_get() in the commit message in case someone wants
to check the code...

Useless: grep "when the clock provider has not registered yet"
 Useful: vim -t clk_get

> 
> clk_prepare_enable() can't return -EPROBE_DEFER. By the time it is called the clock handle is already acquired and deferral only happens at acquisition. Because of that I deliberately left that path as dev_err().
> 
> Compile tested only. I do not have R-Car hardware.

This is good information and it needs to be in the commit message under
the --- cut off line.  Obviously, I know that changing dev_err() to
dev_err_probe() does not cause a problem, but I also want to know if this
is something which is already affecting users in real life or if it's
just a correctness thing.

So the patch is fine, but the commit message needs to be re-written.

regards,
dan carpenter


^ permalink raw reply

* [PATCH v2] staging: most: dim2: use dev_err_probe() for clock errors in rcar enable functions
From: Batu Ada Tutkun @ 2026-06-23 19:46 UTC (permalink / raw)
  To: parthiban.veerasooran, christian.gromm
  Cc: gregkh, linux-staging, linux-kernel, error27
In-Reply-To: <20260623124243.1245-1-batuadatutkun@gmail.com>

rcar_gen2_enable() and rcar_gen3_enable() use the old pattern of
dev_err() followed by return PTR_ERR() when devm_clk_get() fails.
fsl_mx6_enable() in the same file was already converted to use
dev_err_probe() by a previous cleanup series.

Convert the remaining two functions for consistency. devm_clk_get()
calls clk_get() which can return -EPROBE_DEFER if the clock provider
has not yet registered. Using dev_err_probe() suppresses the log at
error level in that case, avoiding misleading "cannot get clock" output
during a normal deferred probe.

clk_prepare_enable() cannot return -EPROBE_DEFER since the clock handle
is already acquired at that point, so those error paths are left as
dev_err().

Signed-off-by: Batu Ada Tutkun <batuadatutkun@gmail.com>
---
Compile tested only. No R-Car hardware available. This is a correctness
fix for the deferred probe path, not a response to a reported
user visible issue.

Changes in v2:
- Mention clk_get() explicitly in commit message
- Add testing note under --- cut off line

 drivers/staging/most/video/video.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/most/video/video.c b/drivers/staging/most/video/video.c
index 04351f8cc..1e1ff3c52 100644
--- a/drivers/staging/most/video/video.c
+++ b/drivers/staging/most/video/video.c
@@ -33,14 +33,14 @@ struct most_video_dev {
 	bool mute;
 
 	struct list_head pending_mbos;
-	spinlock_t list_lock;
+	spinlock_t list_lock;	/* protects pending_mbos and mute */
 
 	struct v4l2_device v4l2_dev;
 	atomic_t access_ref;
 	struct video_device *vdev;
 	unsigned int ctrl_input;
 
-	struct mutex lock;
+	struct mutex lock;		/* serializes V4L2 ioctls */
 
 	wait_queue_head_t wait_data;
 };
-- 
2.53.0


^ permalink raw reply related

* [PATCH v2] staging: most: dim2: use dev_err_probe() for clock errors in rcar enable functions
From: Batu Ada Tutkun @ 2026-06-23 12:35 UTC (permalink / raw)
  To: parthiban.veerasooran, christian.gromm
  Cc: gregkh, linux-staging, linux-kernel, error27
In-Reply-To: <20260623124243.1245-1-batuadatutkun@gmail.com>

rcar_gen2_enable() and rcar_gen3_enable() use the old pattern of
dev_err() followed by return PTR_ERR() when devm_clk_get() fails.
fsl_mx6_enable() in the same file was already converted to use
dev_err_probe() by a previous cleanup series.

Convert the remaining two functions for consistency. devm_clk_get()
calls clk_get() which can return -EPROBE_DEFER if the clock provider
has not yet registered. Using dev_err_probe() suppresses the log at
error level in that case, avoiding misleading "cannot get clock" output
during a normal deferred probe.

clk_prepare_enable() cannot return -EPROBE_DEFER since the clock handle
is already acquired at that point, so those error paths are left as
dev_err().

Signed-off-by: Batu Ada Tutkun <batuadatutkun@gmail.com>

---
Compile tested only. No R-Car hardware available. This is a correctness
fix for the deferred probe path, not a response to a reported
user visible issue.

Changes in v2:
- Mention clk_get() explicitly in commit message
- Add testing note under --- cut off line

 drivers/staging/most/dim2/dim2.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/most/dim2/dim2.c b/drivers/staging/most/dim2/dim2.c
index 7953d4626..56f856d6d 100644
--- a/drivers/staging/most/dim2/dim2.c
+++ b/drivers/staging/most/dim2/dim2.c
@@ -974,10 +974,9 @@ static int rcar_gen2_enable(struct platform_device *pdev)
 	int ret;
 
 	dev->clk = devm_clk_get(&pdev->dev, NULL);
-	if (IS_ERR(dev->clk)) {
-		dev_err(&pdev->dev, "cannot get clock\n");
-		return PTR_ERR(dev->clk);
-	}
+	if (IS_ERR(dev->clk))
+		return dev_err_probe(&pdev->dev, PTR_ERR(dev->clk),
+				     "cannot get clock\n");
 
 	ret = clk_prepare_enable(dev->clk);
 	if (ret) {
@@ -1019,10 +1018,9 @@ static int rcar_gen3_enable(struct platform_device *pdev)
 	int ret;
 
 	dev->clk = devm_clk_get(&pdev->dev, NULL);
-	if (IS_ERR(dev->clk)) {
-		dev_err(&pdev->dev, "cannot get clock\n");
-		return PTR_ERR(dev->clk);
-	}
+	if (IS_ERR(dev->clk))
+		return dev_err_probe(&pdev->dev, PTR_ERR(dev->clk),
+				     "cannot get clock\n");
 
 	ret = clk_prepare_enable(dev->clk);
 	if (ret) {
-- 
2.53.0


^ permalink raw reply related

* Re: [PATCH v2 4/4] staging: fbtft: remove fb_ssd1351 driver
From: Amit Barzilai @ 2026-06-23 20:28 UTC (permalink / raw)
  To: javierm, andriy.shevchenko, mripard
  Cc: airlied, andy, azuddinadam, chintanlike, conor+dt, deller,
	devicetree, dri-devel, gregkh, krzk+dt, linux-fbdev, linux-kernel,
	linux-staging, maarten.lankhorst, robh, simona, tzimmermann
In-Reply-To: <87ik79iqsz.fsf@ocarina.mail-host-address-is-not-set>

Javier Martinez Canillas <javierm@redhat.com> writes:

> Andy Shevchenko <andriy.shevchenko@intel.com> writes:
>
>> On Mon, Jun 22, 2026 at 06:25:06PM +0300, Amit Barzilai wrote:
>>> The SSD1351 support was added to the ssd130x DRM driver. To avoid
>>> confusion and irrelevant updates, the staging fb_ssd1351 driver is
>>> removed.
>>
>> NAK, the fbtft has two drivers in one (SPI + parallel), plus as Maxime said,
>> it has its own binding.
>>
>
> Yes, I agree that we don't want to delete the fbtft driver.

I will remove this patch from the next version.

Thank you Javier, Andy and Maxime for the feedback and explanations.

-- 
Thanks,

Amit


^ permalink raw reply

* Re: [PATCH] staging: rtl8723bs: clean up style and dead code in rtw_recv.c
From: Andre Moreira @ 2026-06-23 21:21 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: gregkh, linux-staging, linux-kernel, kernel-janitors
In-Reply-To: <CACO0qFLm0KCdyiKuaQQy9zwX0iwEStgg7n0XyyDP6DOBX+ZF3g@mail.gmail.com>

Em ter., 23 de jun. de 2026 às 18:11, Andre Moreira
<andrem.33333@gmail.com> escreveu:
>
> Thanks for the review, Dan.
>
> I see how removing the 'else' broke the loop logic there. Thanks for the explanation and for catching that.
>
> It's great that this helped identify a pattern for a new Smatch check. I'll make sure to double-check the control flow on these legacy cleanups next time.
>
> Regards,
> André
>
> Em ter., 23 de jun. de 2026 às 02:36, Dan Carpenter <error27@gmail.com> escreveu:
>>
>> On Mon, Jun 22, 2026 at 05:02:39PM -0300, André Moreira wrote:
>> > Fix checkpatch.pl warnings in rtw_recv.c by removing an explicit '== true'
>> > comparison with extra parentheses from check_fwstate() and dropping a
>> > redundant 'else' block after an early return.
>> >
>> > Signed-off-by: André Moreira <andrem.33333@gmail.com>
>> > ---
>> >  drivers/staging/rtl8723bs/core/rtw_recv.c | 5 ++---
>> >  1 file changed, 2 insertions(+), 3 deletions(-)
>> >
>> > diff --git a/drivers/staging/rtl8723bs/core/rtw_recv.c b/drivers/staging/rtl8723bs/core/rtw_recv.c
>> > index f78194d508dfc..3fb48a8a52b17 100644
>> > --- a/drivers/staging/rtl8723bs/core/rtw_recv.c
>> > +++ b/drivers/staging/rtl8723bs/core/rtw_recv.c
>> > @@ -1597,7 +1597,7 @@ static signed int wlanhdr_to_ethhdr(union recv_frame *precvframe)
>> >       eth_type = ntohs(be_tmp); /* pattrib->ether_type */
>> >       pattrib->eth_type = eth_type;
>> >
>> > -     if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == true)) {
>> > +     if (check_fwstate(pmlmepriv, WIFI_MP_STATE)) {
>>
>>
>> Someone already did this.
>>
>> >               ptr += rmv_len;
>> >               *ptr = 0x87;
>> >               *(ptr + 1) = 0x12;
>> > @@ -1841,8 +1841,7 @@ static int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl, un
>> >                       /* Duplicate entry is found!! Do not insert current entry. */
>> >                       /* spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql); */
>> >                       return false;
>> > -             else
>> > -                     break;
>> > +             break;
>>
>> This change introduces a bug.  I created a Smatch check based on the
>> new bug.  It's in the Smatch devel branch.
>> https://github.com/error27/smatch/blob/devel/check_pointless_loop.c
>>
>> KTODO: review loops that are really if statements
>>
>> Some of these have comments where it was originally intended to be
>> a loop but it lead to bugs so they hacked around it by only looping
>> one time.  These are mostly quite old code and they seem to be working
>> okay so probably they are false positives in one way or another but
>> just I feel like most would be more readable as an if statement.
>>
>> kernel/rcu/tasks.h:1521 rcu_tasks_verify_self_tests() warn: replace while loop with if statement?
>> kernel/bpf/btf.c:7383 btf_struct_access() warn: replace while loop with if statement?
>> drivers/net/wireguard/selftest/ratelimiter.c:170 wg_ratelimiter_selftest() warn: replace while loop with if statement?
>> drivers/video/fbdev/sis/sis_main.c:2226 sisfb_sense_crt1() warn: replace while loop with if statement?
>> drivers/video/fbdev/sis/sis_main.c:2228 sisfb_sense_crt1() warn: replace while loop with if statement?
>> drivers/video/fbdev/aty/radeon_base.c:1556 radeon_calc_pll_regs() warn: replace while loop with if statement?
>> drivers/media/pci/tw686x/tw686x-video.c:133 tw686x_memcpy_buf_refill() warn: replace while loop with if statement?
>> drivers/media/pci/tw686x/tw686x-video.c:159 tw686x_contig_buf_refill() warn: replace while loop with if statement?
>> drivers/ntb/test/ntb_perf.c:462 perf_cmd_recv() warn: replace while loop with if statement?
>> fs/afs/rxrpc.c:526 afs_deliver_to_call() warn: replace while loop with if statement?
>> fs/xfs/scrub/attr_repair.c:532 xrep_xattr_find_buf() warn: replace while loop with if statement?
>>
>> regards,
>> dan carpenter

^ permalink raw reply

* Re: [PATCH v2 3/4] drm/ssd130x: Add SSD135X_FAMILY and SSD1351 support
From: Amit Barzilai @ 2026-06-23 21:34 UTC (permalink / raw)
  To: markus.elfring
  Cc: airlied, amit.barzilai22, andy, azuddinadam, chintanlike,
	conor+dt, deller, devicetree, dri-devel, gregkh, javierm, krzk+dt,
	linux-fbdev, linux-kernel, linux-staging, maarten.lankhorst,
	mripard, robh, simona, tzimmermann
In-Reply-To: <16a86f3d-caf0-46d0-97a4-c9585bdaa06c@web.de>

Markus Elfring <Markus.Elfring@web.de> writes:

>> +++ b/drivers/gpu/drm/solomon/ssd130x.c
>> @@ -146,6 +146,33 @@
>>  #define SSD133X_COLOR_DEPTH_256			0x0
>>  #define SSD133X_COLOR_DEPTH_65K			0x1
>>  
>> +/* ssd135x commands */
>> +#define SSD135X_SET_COL_RANGE			0x15
>> +#define SSD135X_WRITE_RAM			0x5c
>> +#define SSD135X_SET_ROW_RANGE			0x75
> [...]
>
> How do you think about to use an enumeration for such data?
> https://en.wikipedia.org/wiki/Enumerated_type#C_and_syntactically_similar_languages

Thank you for the suggestion.

I used #define to stay consistent with the rest of ssd130x.c, where the
command constants for the other families are all defined the same way.
In my opinion an enum could be a readable solution for these values, but I
don't think the switch should be included in this series.

-- 
Thanks,

Amit


^ permalink raw reply

* [PATCH] staging: sm750fb: rename variables to avoid CamelCase
From: André Moreira @ 2026-06-23 22:06 UTC (permalink / raw)
  To: sudipm.mukherjee, teddy.wang, gregkh
  Cc: linux-fbdev, linux-staging, linux-kernel, André Moreira

Rename 'pvReg' to 'pv_reg' and 'setAllEngOff' to 'set_all_eng_off'
throughout the driver to comply with the Linux kernel coding style.

Signed-off-by: André Moreira <andrem.33333@gmail.com>
---
 drivers/staging/sm750fb/sm750.c    |  6 +++---
 drivers/staging/sm750fb/sm750.h    |  4 ++--
 drivers/staging/sm750fb/sm750_hw.c | 12 ++++++------
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
index 89c811e0806c4..716a8935f58d1 100644
--- a/drivers/staging/sm750fb/sm750.c
+++ b/drivers/staging/sm750fb/sm750.c
@@ -743,7 +743,7 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
 	 * must be set after crtc member initialized
 	 */
 	crtc->cursor.offset = crtc->o_screen + crtc->vidmem_size - 1024;
-	crtc->cursor.mmio = sm750_dev->pvReg +
+	crtc->cursor.mmio = sm750_dev->pv_reg +
 		0x800f0 + (int)crtc->channel * 0x140;
 
 	crtc->cursor.max_h = 64;
@@ -848,7 +848,7 @@ static void sm750fb_setup(struct sm750_dev *sm750_dev, char *src)
 	sm750_dev->init_parm.mem_clk = 0;
 	sm750_dev->init_parm.master_clk = 0;
 	sm750_dev->init_parm.power_mode = 0;
-	sm750_dev->init_parm.setAllEngOff = 0;
+	sm750_dev->init_parm.set_all_eng_off = 0;
 	sm750_dev->init_parm.reset_memory = 1;
 
 	/* defaultly turn g_hwcursor on for both view */
@@ -1047,7 +1047,7 @@ static void lynxfb_pci_remove(struct pci_dev *pdev)
 	sm750fb_framebuffer_release(sm750_dev);
 	arch_phys_wc_del(sm750_dev->mtrr.vram);
 
-	iounmap(sm750_dev->pvReg);
+	iounmap(sm750_dev->pv_reg);
 	iounmap(sm750_dev->vmem);
 	pci_release_region(pdev, 1);
 	kfree(g_settings);
diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h
index d2c522e67f26a..e8885133da2e1 100644
--- a/drivers/staging/sm750fb/sm750.h
+++ b/drivers/staging/sm750fb/sm750.h
@@ -44,7 +44,7 @@ struct init_status {
 	ushort chip_clk;
 	ushort mem_clk;
 	ushort master_clk;
-	ushort setAllEngOff;
+	ushort set_all_eng_off;
 	ushort reset_memory;
 };
 
@@ -97,7 +97,7 @@ struct sm750_dev {
 	unsigned long vidreg_start;
 	__u32 vidmem_size;
 	__u32 vidreg_size;
-	void __iomem *pvReg;
+	void __iomem *pv_reg;
 	unsigned char __iomem *vmem;
 	/* locks*/
 	spinlock_t slock;
diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c
index 34a837fb4b649..95f797e5776a2 100644
--- a/drivers/staging/sm750fb/sm750_hw.c
+++ b/drivers/staging/sm750fb/sm750_hw.c
@@ -23,18 +23,18 @@ int hw_sm750_map(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 	}
 
 	/* now map mmio and vidmem */
-	sm750_dev->pvReg =
+	sm750_dev->pv_reg =
 		ioremap(sm750_dev->vidreg_start, sm750_dev->vidreg_size);
-	if (!sm750_dev->pvReg) {
+	if (!sm750_dev->pv_reg) {
 		dev_err(&pdev->dev, "mmio failed\n");
 		ret = -EFAULT;
 		goto err_release_region;
 	}
 
-	sm750_dev->accel.dpr_base = sm750_dev->pvReg + DE_BASE_ADDR_TYPE1;
-	sm750_dev->accel.dp_port_base = sm750_dev->pvReg + DE_PORT_ADDR_TYPE1;
+	sm750_dev->accel.dpr_base = sm750_dev->pv_reg + DE_BASE_ADDR_TYPE1;
+	sm750_dev->accel.dp_port_base = sm750_dev->pv_reg + DE_PORT_ADDR_TYPE1;
 
-	mmio750 = sm750_dev->pvReg;
+	mmio750 = sm750_dev->pv_reg;
 	sm750_set_chip_type(sm750_dev->devid, sm750_dev->revid);
 
 	sm750_dev->vidmem_start = pci_resource_start(pdev, 0);
@@ -58,7 +58,7 @@ int hw_sm750_map(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 	return 0;
 
 err_unmap_reg:
-	iounmap(sm750_dev->pvReg);
+	iounmap(sm750_dev->pv_reg);
 err_release_region:
 	pci_release_region(pdev, 1);
 	return ret;
-- 
2.43.0


^ permalink raw reply related

* [PATCH v3 0/3] staging: media: atomisp: use kvmalloc_objs() and drop redundant OOM messages
From: Rodrigo Gobbi @ 2026-06-23 22:09 UTC (permalink / raw)
  To: andy, hansg, mchehab, sakari.ailus, gregkh, feng
  Cc: ~lkcamp/patches, linux-kernel-mentees, linux-kernel, linux-media,
	linux-staging

Several allocations in the atomisp driver still size their buffers with
open-coded multiplication, e.g. width * height * sizeof(*p). When the
dimensions are large the product can silently wrap, causing kvmalloc()
to allocate an undersized buffer.

Convert the remaining sites to kvmalloc_objs() with array_size(), which
saturate to SIZE_MAX on overflow so kvmalloc() returns NULL instead of
allocating too few bytes.

This continues the work started in commit [2], and picks up the stalled
sites from [1], unifying with [3].

While here, drop the redundant IA_CSS_ERROR("out of memory") messages on
the touched allocation paths: the memory management core already emits a
far more detailed warning on allocation failure as raised at [1].

[1] https://lore.kernel.org/all/20260413112904.98864-1-feng@innora.ai/
[2] https://github.com/torvalds/linux/commit/d178c7ca8fefc28115d35b94c3b1f4d653e34182
[3] https://lore.kernel.org/all/20260609215110.118860-1-rodrigo.gobbi.7@gmail.com/
---
Changelog:
v3: keep original author chain/tags at v2 and v3; minor cnt usage at v2 for readability;
v2: https://lore.kernel.org/all/20260622224402.34001-1-rodrigo.gobbi.7@gmail.com/
v1: https://lore.kernel.org/all/20260609215110.118860-1-rodrigo.gobbi.7@gmail.com/
---
Feng Ning (1):
  staging: media: atomisp: use kvmalloc_objs() for overflow-safe
    allocation

Rodrigo Gobbi (2):
  staging: media: atomisp: use kvmalloc_objs() in make_histogram()
  staging: media: atomisp: drop redundant out-of-memory messages

 .../media/atomisp/pci/sh_css_metrics.c        |  11 +-
 .../media/atomisp/pci/sh_css_param_dvs.c      |   5 -
 .../staging/media/atomisp/pci/sh_css_params.c | 101 +++++++-----------
 3 files changed, 41 insertions(+), 76 deletions(-)

-- 
2.48.1


^ permalink raw reply

* [PATCH v3 1/3] staging: media: atomisp: use kvmalloc_objs() in make_histogram()
From: Rodrigo Gobbi @ 2026-06-23 22:09 UTC (permalink / raw)
  To: andy, hansg, mchehab, sakari.ailus, gregkh, feng
  Cc: ~lkcamp/patches, linux-kernel-mentees, linux-kernel, linux-media,
	linux-staging
In-Reply-To: <20260623221028.40238-1-rodrigo.gobbi.7@gmail.com>

Replace kvmalloc() with multiply with kvmalloc_objs(), which handles
the size multiplication internally with overflow checking, silenting
checkpatch warn.

Signed-off-by: Rodrigo Gobbi <rodrigo.gobbi.7@gmail.com>
---
 drivers/staging/media/atomisp/pci/sh_css_metrics.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/media/atomisp/pci/sh_css_metrics.c b/drivers/staging/media/atomisp/pci/sh_css_metrics.c
index edf473dd86ca..90d92ab8d52b 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_metrics.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_metrics.c
@@ -4,6 +4,8 @@
  * Copyright (c) 2015, Intel Corporation.
  */
 
+#include <linux/slab.h>
+
 #include "assert_support.h"
 #include "sh_css_metrics.h"
 
@@ -59,16 +61,13 @@ make_histogram(struct sh_css_pc_histogram *histogram, unsigned int length)
 		return;
 	if (histogram->run)
 		return;
-	histogram->run = kvmalloc(length * sizeof(*histogram->run),
-				  GFP_KERNEL);
+	histogram->run = kvmalloc_objs(*histogram->run, length);
 	if (!histogram->run)
 		return;
-	histogram->stall = kvmalloc(length * sizeof(*histogram->stall),
-				    GFP_KERNEL);
+	histogram->stall = kvmalloc_objs(*histogram->stall, length);
 	if (!histogram->stall)
 		return;
-	histogram->msink = kvmalloc(length * sizeof(*histogram->msink),
-				    GFP_KERNEL);
+	histogram->msink = kvmalloc_objs(*histogram->msink, length);
 	if (!histogram->msink)
 		return;
 
-- 
2.48.1


^ permalink raw reply related

* [PATCH v3 2/3] staging: media: atomisp: use kvmalloc_objs() for overflow-safe allocation
From: Rodrigo Gobbi @ 2026-06-23 22:09 UTC (permalink / raw)
  To: andy, hansg, mchehab, sakari.ailus, gregkh, feng
  Cc: ~lkcamp/patches, linux-kernel-mentees, linux-kernel, linux-media,
	linux-staging
In-Reply-To: <20260623221028.40238-1-rodrigo.gobbi.7@gmail.com>

From: Feng Ning <feng@innora.ai>

Replace open-coded width * height * sizeof() multiplications with
kvmalloc_objs() and array_size() to prevent integer overflow in buffer
allocations.

The atomisp driver computes DVS and statistics buffer sizes using
unchecked arithmetic.  When dimensions are large, the product can
silently wrap, causing kvmalloc() to allocate an undersized buffer.

kvmalloc_objs() uses size_mul() internally, which saturates to SIZE_MAX
on overflow, so kvmalloc() returns NULL instead of succeeding with too
few bytes.  array_size() provides the same overflow protection for the
two-factor dimension products.

Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Feng Ning <feng@innora.ai>
[rodrigo: rebased; convert only the sites left open-coded after
   commit d178c7ca8fef]
Signed-off-by: Rodrigo Gobbi <rodrigo.gobbi.7@gmail.com>
---
 .../staging/media/atomisp/pci/sh_css_params.c | 101 +++++++-----------
 1 file changed, 36 insertions(+), 65 deletions(-)

diff --git a/drivers/staging/media/atomisp/pci/sh_css_params.c b/drivers/staging/media/atomisp/pci/sh_css_params.c
index 8420a22fd8f0..adc329be8b0b 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_params.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_params.c
@@ -6,6 +6,7 @@
 
 #include <linux/overflow.h>
 #include <linux/math.h>
+#include <linux/slab.h>
 
 #include "gdc_device.h"		/* gdc_lut_store(), ... */
 #include "isp.h"			/* ISP_VEC_ELEMBITS */
@@ -4151,7 +4152,7 @@ struct ia_css_3a_statistics *
 ia_css_3a_statistics_allocate(const struct ia_css_3a_grid_info *grid)
 {
 	struct ia_css_3a_statistics *me;
-	int grid_size;
+	size_t grid_size;
 
 	IA_CSS_ENTER("grid=%p", grid);
 
@@ -4162,8 +4163,8 @@ ia_css_3a_statistics_allocate(const struct ia_css_3a_grid_info *grid)
 		goto err;
 
 	me->grid = *grid;
-	grid_size = grid->width * grid->height;
-	me->data = kvmalloc(grid_size * sizeof(*me->data), GFP_KERNEL);
+	grid_size = array_size(grid->width, grid->height);
+	me->data = kvmalloc_objs(*me->data, grid_size);
 	if (!me->data)
 		goto err;
 	/* No weighted histogram, no structure, treat the histogram data as a byte dump in a byte array */
@@ -4236,6 +4237,7 @@ struct ia_css_dvs_coefficients *
 ia_css_dvs_coefficients_allocate(const struct ia_css_dvs_grid_info *grid)
 {
 	struct ia_css_dvs_coefficients *me;
+	size_t cnt;
 
 	assert(grid);
 
@@ -4245,15 +4247,13 @@ ia_css_dvs_coefficients_allocate(const struct ia_css_dvs_grid_info *grid)
 
 	me->grid = *grid;
 
-	me->hor_coefs = kvmalloc(grid->num_hor_coefs *
-				 IA_CSS_DVS_NUM_COEF_TYPES *
-				 sizeof(*me->hor_coefs), GFP_KERNEL);
+	cnt = array_size(grid->num_hor_coefs, IA_CSS_DVS_NUM_COEF_TYPES);
+	me->hor_coefs = kvmalloc_objs(*me->hor_coefs, cnt);
 	if (!me->hor_coefs)
 		goto err;
 
-	me->ver_coefs = kvmalloc(grid->num_ver_coefs *
-				 IA_CSS_DVS_NUM_COEF_TYPES *
-				 sizeof(*me->ver_coefs), GFP_KERNEL);
+	cnt = array_size(grid->num_ver_coefs, IA_CSS_DVS_NUM_COEF_TYPES);
+	me->ver_coefs = kvmalloc_objs(*me->ver_coefs, cnt);
 	if (!me->ver_coefs)
 		goto err;
 
@@ -4277,6 +4277,7 @@ struct ia_css_dvs2_statistics *
 ia_css_dvs2_statistics_allocate(const struct ia_css_dvs_grid_info *grid)
 {
 	struct ia_css_dvs2_statistics *me;
+	size_t cnt;
 
 	assert(grid);
 
@@ -4286,59 +4287,37 @@ ia_css_dvs2_statistics_allocate(const struct ia_css_dvs_grid_info *grid)
 
 	me->grid = *grid;
 
-	me->hor_prod.odd_real = kvmalloc(grid->aligned_width *
-					 grid->aligned_height *
-					 sizeof(*me->hor_prod.odd_real),
-					 GFP_KERNEL);
+	cnt = array_size(grid->aligned_width, grid->aligned_height);
+
+	me->hor_prod.odd_real = kvmalloc_objs(*me->hor_prod.odd_real, cnt);
 	if (!me->hor_prod.odd_real)
 		goto err;
 
-	me->hor_prod.odd_imag = kvmalloc(grid->aligned_width *
-					 grid->aligned_height *
-					 sizeof(*me->hor_prod.odd_imag),
-					 GFP_KERNEL);
+	me->hor_prod.odd_imag = kvmalloc_objs(*me->hor_prod.odd_imag, cnt);
 	if (!me->hor_prod.odd_imag)
 		goto err;
 
-	me->hor_prod.even_real = kvmalloc(grid->aligned_width *
-					  grid->aligned_height *
-					  sizeof(*me->hor_prod.even_real),
-					  GFP_KERNEL);
+	me->hor_prod.even_real = kvmalloc_objs(*me->hor_prod.even_real, cnt);
 	if (!me->hor_prod.even_real)
 		goto err;
 
-	me->hor_prod.even_imag = kvmalloc(grid->aligned_width *
-					  grid->aligned_height *
-					  sizeof(*me->hor_prod.even_imag),
-					  GFP_KERNEL);
+	me->hor_prod.even_imag = kvmalloc_objs(*me->hor_prod.even_imag, cnt);
 	if (!me->hor_prod.even_imag)
 		goto err;
 
-	me->ver_prod.odd_real = kvmalloc(grid->aligned_width *
-					 grid->aligned_height *
-					 sizeof(*me->ver_prod.odd_real),
-					 GFP_KERNEL);
+	me->ver_prod.odd_real = kvmalloc_objs(*me->ver_prod.odd_real, cnt);
 	if (!me->ver_prod.odd_real)
 		goto err;
 
-	me->ver_prod.odd_imag = kvmalloc(grid->aligned_width *
-					 grid->aligned_height *
-					 sizeof(*me->ver_prod.odd_imag),
-					 GFP_KERNEL);
+	me->ver_prod.odd_imag = kvmalloc_objs(*me->ver_prod.odd_imag, cnt);
 	if (!me->ver_prod.odd_imag)
 		goto err;
 
-	me->ver_prod.even_real = kvmalloc(grid->aligned_width *
-					  grid->aligned_height *
-					  sizeof(*me->ver_prod.even_real),
-					  GFP_KERNEL);
+	me->ver_prod.even_real = kvmalloc_objs(*me->ver_prod.even_real, cnt);
 	if (!me->ver_prod.even_real)
 		goto err;
 
-	me->ver_prod.even_imag = kvmalloc(grid->aligned_width *
-					  grid->aligned_height *
-					  sizeof(*me->ver_prod.even_imag),
-					  GFP_KERNEL);
+	me->ver_prod.even_imag = kvmalloc_objs(*me->ver_prod.even_imag, cnt);
 	if (!me->ver_prod.even_imag)
 		goto err;
 
@@ -4377,51 +4356,43 @@ ia_css_dvs2_coefficients_allocate(const struct ia_css_dvs_grid_info *grid)
 
 	me->grid = *grid;
 
-	me->hor_coefs.odd_real = kvmalloc(grid->num_hor_coefs *
-					  sizeof(*me->hor_coefs.odd_real),
-					  GFP_KERNEL);
+	me->hor_coefs.odd_real = kvmalloc_objs(*me->hor_coefs.odd_real,
+					       grid->num_hor_coefs);
 	if (!me->hor_coefs.odd_real)
 		goto err;
 
-	me->hor_coefs.odd_imag = kvmalloc(grid->num_hor_coefs *
-					  sizeof(*me->hor_coefs.odd_imag),
-					  GFP_KERNEL);
+	me->hor_coefs.odd_imag = kvmalloc_objs(*me->hor_coefs.odd_imag,
+					       grid->num_hor_coefs);
 	if (!me->hor_coefs.odd_imag)
 		goto err;
 
-	me->hor_coefs.even_real = kvmalloc(grid->num_hor_coefs *
-					   sizeof(*me->hor_coefs.even_real),
-					   GFP_KERNEL);
+	me->hor_coefs.even_real = kvmalloc_objs(*me->hor_coefs.even_real,
+						grid->num_hor_coefs);
 	if (!me->hor_coefs.even_real)
 		goto err;
 
-	me->hor_coefs.even_imag = kvmalloc(grid->num_hor_coefs *
-					   sizeof(*me->hor_coefs.even_imag),
-					   GFP_KERNEL);
+	me->hor_coefs.even_imag = kvmalloc_objs(*me->hor_coefs.even_imag,
+						grid->num_hor_coefs);
 	if (!me->hor_coefs.even_imag)
 		goto err;
 
-	me->ver_coefs.odd_real = kvmalloc(grid->num_ver_coefs *
-					  sizeof(*me->ver_coefs.odd_real),
-					  GFP_KERNEL);
+	me->ver_coefs.odd_real = kvmalloc_objs(*me->ver_coefs.odd_real,
+					       grid->num_ver_coefs);
 	if (!me->ver_coefs.odd_real)
 		goto err;
 
-	me->ver_coefs.odd_imag = kvmalloc(grid->num_ver_coefs *
-					  sizeof(*me->ver_coefs.odd_imag),
-					  GFP_KERNEL);
+	me->ver_coefs.odd_imag = kvmalloc_objs(*me->ver_coefs.odd_imag,
+					       grid->num_ver_coefs);
 	if (!me->ver_coefs.odd_imag)
 		goto err;
 
-	me->ver_coefs.even_real = kvmalloc(grid->num_ver_coefs *
-					   sizeof(*me->ver_coefs.even_real),
-					   GFP_KERNEL);
+	me->ver_coefs.even_real = kvmalloc_objs(*me->ver_coefs.even_real,
+						grid->num_ver_coefs);
 	if (!me->ver_coefs.even_real)
 		goto err;
 
-	me->ver_coefs.even_imag = kvmalloc(grid->num_ver_coefs *
-					   sizeof(*me->ver_coefs.even_imag),
-					   GFP_KERNEL);
+	me->ver_coefs.even_imag = kvmalloc_objs(*me->ver_coefs.even_imag,
+						grid->num_ver_coefs);
 	if (!me->ver_coefs.even_imag)
 		goto err;
 
-- 
2.48.1


^ permalink raw reply related

* [PATCH v3 3/3] staging: media: atomisp: drop redundant out-of-memory messages
From: Rodrigo Gobbi @ 2026-06-23 22:09 UTC (permalink / raw)
  To: andy, hansg, mchehab, sakari.ailus, gregkh, feng
  Cc: ~lkcamp/patches, linux-kernel-mentees, linux-kernel, linux-media,
	linux-staging
In-Reply-To: <20260623221028.40238-1-rodrigo.gobbi.7@gmail.com>

On allocation failure the memory management core already emits a
detailed warning, so the driver's own IA_CSS_ERROR("out of memory")
lines add nothing but noise.

Remove them; the error handling itself is left unchanged.

Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Rodrigo Gobbi <rodrigo.gobbi.7@gmail.com>
---
 drivers/staging/media/atomisp/pci/sh_css_param_dvs.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/staging/media/atomisp/pci/sh_css_param_dvs.c b/drivers/staging/media/atomisp/pci/sh_css_param_dvs.c
index ad2a9b84e232..c0102056d421 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_param_dvs.c
+++ b/drivers/staging/media/atomisp/pci/sh_css_param_dvs.c
@@ -25,7 +25,6 @@ alloc_dvs_6axis_table(const struct ia_css_resolution *frame_res,
 
 	dvs_config = kvmalloc_obj(struct ia_css_dvs_6axis_config);
 	if (!dvs_config)	{
-		IA_CSS_ERROR("out of memory");
 		err = -ENOMEM;
 	} else {
 		/*Initialize new struct with latest config settings*/
@@ -52,7 +51,6 @@ alloc_dvs_6axis_table(const struct ia_css_resolution *frame_res,
 		dvs_config->xcoords_y = kvmalloc(array3_size(width_y, height_y, sizeof(uint32_t)),
 						 GFP_KERNEL);
 		if (!dvs_config->xcoords_y) {
-			IA_CSS_ERROR("out of memory");
 			err = -ENOMEM;
 			goto exit;
 		}
@@ -60,7 +58,6 @@ alloc_dvs_6axis_table(const struct ia_css_resolution *frame_res,
 		dvs_config->ycoords_y = kvmalloc(array3_size(width_y, height_y, sizeof(uint32_t)),
 						 GFP_KERNEL);
 		if (!dvs_config->ycoords_y) {
-			IA_CSS_ERROR("out of memory");
 			err = -ENOMEM;
 			goto exit;
 		}
@@ -72,7 +69,6 @@ alloc_dvs_6axis_table(const struct ia_css_resolution *frame_res,
 							      sizeof(uint32_t)),
 						  GFP_KERNEL);
 		if (!dvs_config->xcoords_uv) {
-			IA_CSS_ERROR("out of memory");
 			err = -ENOMEM;
 			goto exit;
 		}
@@ -81,7 +77,6 @@ alloc_dvs_6axis_table(const struct ia_css_resolution *frame_res,
 							      sizeof(uint32_t)),
 						  GFP_KERNEL);
 		if (!dvs_config->ycoords_uv) {
-			IA_CSS_ERROR("out of memory");
 			err = -ENOMEM;
 		}
 exit:
-- 
2.48.1


^ permalink raw reply related

* Re: [staging] staging: sm750fb: rename pvMem to vram and pvReg to reg
From: kernel test robot @ 2026-06-24  0:43 UTC (permalink / raw)
  To: Arnav Kapoor, Greg Kroah-Hartman, Sudip Mukherjee, Teddy Wang
  Cc: llvm, oe-kbuild-all, linux-staging, linux-fbdev, linux-kernel,
	Arnav Kapoor
In-Reply-To: <20260621045050.63460-1-kapoorarnav43@gmail.com>

Hi Arnav,

kernel test robot noticed the following build errors:

[auto build test ERROR on staging/staging-linus]
[also build test ERROR on v7.1]
[cannot apply to staging/staging-testing staging/staging-next linus/master next-20260623]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Arnav-Kapoor/staging-sm750fb-rename-pvMem-to-vram-and-pvReg-to-reg/20260622-235607
base:   staging/staging-linus
patch link:    https://lore.kernel.org/r/20260621045050.63460-1-kapoorarnav43%40gmail.com
patch subject: [staging] staging: sm750fb: rename pvMem to vram and pvReg to reg
config: sparc64-allmodconfig (https://download.01.org/0day-ci/archive/20260624/202606240823.hWXfYyPf-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260624/202606240823.hWXfYyPf-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202606240823.hWXfYyPf-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/staging/sm750fb/sm750.c:625:31: error: no member named 'vram' in 'struct sm750_dev'
     625 |                 crtc->v_screen = sm750_dev->vram;
         |                                  ~~~~~~~~~  ^
   drivers/staging/sm750fb/sm750.c:631:31: error: no member named 'vram' in 'struct sm750_dev'
     631 |                 crtc->v_screen = sm750_dev->vram;
         |                                  ~~~~~~~~~  ^
   drivers/staging/sm750fb/sm750.c:638:32: error: no member named 'vram' in 'struct sm750_dev'
     638 |                         crtc->v_screen = sm750_dev->vram;
         |                                          ~~~~~~~~~  ^
   drivers/staging/sm750fb/sm750.c:644:32: error: no member named 'vram' in 'struct sm750_dev'
     644 |                         crtc->v_screen = sm750_dev->vram + crtc->o_screen;
         |                                          ~~~~~~~~~  ^
   drivers/staging/sm750fb/sm750.c:652:32: error: no member named 'vram' in 'struct sm750_dev'
     652 |                         crtc->v_screen = sm750_dev->vram;
         |                                          ~~~~~~~~~  ^
   drivers/staging/sm750fb/sm750.c:660:32: error: no member named 'vram' in 'struct sm750_dev'
     660 |                         crtc->v_screen = sm750_dev->vram + crtc->o_screen;
         |                                          ~~~~~~~~~  ^
>> drivers/staging/sm750fb/sm750.c:758:33: error: no member named 'reg' in 'struct sm750_dev'
     758 |         crtc->cursor.mmio = sm750_dev->reg +
         |                             ~~~~~~~~~  ^
   drivers/staging/sm750fb/sm750.c:764:35: error: no member named 'vram' in 'struct sm750_dev'
     764 |         crtc->cursor.vstart = sm750_dev->vram + crtc->cursor.offset;
         |                               ~~~~~~~~~  ^
   drivers/staging/sm750fb/sm750.c:1031:23: error: no member named 'vram' in 'struct sm750_dev'
    1031 |         memset_io(sm750_dev->vram, 0, sm750_dev->vidmem_size);
         |                   ~~~~~~~~~  ^
   drivers/staging/sm750fb/sm750.c:1062:21: error: no member named 'reg' in 'struct sm750_dev'
    1062 |         iounmap(sm750_dev->reg);
         |                 ~~~~~~~~~  ^
   drivers/staging/sm750fb/sm750.c:1063:21: error: no member named 'vram' in 'struct sm750_dev'
    1063 |         iounmap(sm750_dev->vram);
         |                 ~~~~~~~~~  ^
   11 errors generated.


vim +625 drivers/staging/sm750fb/sm750.c

   591	
   592	static int sm750fb_set_drv(struct lynxfb_par *par)
   593	{
   594		int ret;
   595		struct sm750_dev *sm750_dev;
   596		struct lynxfb_output *output;
   597		struct lynxfb_crtc *crtc;
   598	
   599		ret = 0;
   600	
   601		sm750_dev = par->dev;
   602		output = &par->output;
   603		crtc = &par->crtc;
   604	
   605		crtc->vidmem_size = sm750_dev->vidmem_size;
   606		if (sm750_dev->fb_count > 1)
   607			crtc->vidmem_size >>= 1;
   608	
   609		/* setup crtc and output member */
   610		sm750_dev->hw_cursor = g_hwcursor;
   611	
   612		crtc->line_pad = 16;
   613		crtc->xpanstep = 8;
   614		crtc->ypanstep = 1;
   615		crtc->ywrapstep = 0;
   616	
   617		/* chip specific phase */
   618		sm750_dev->accel.de_wait = (sm750_dev->revid == SM750LE_REVISION_ID) ?
   619					    hw_sm750le_de_wait : hw_sm750_de_wait;
   620		switch (sm750_dev->dataflow) {
   621		case sm750_simul_pri:
   622			output->paths = sm750_pnc;
   623			crtc->channel = sm750_primary;
   624			crtc->o_screen = 0;
 > 625			crtc->v_screen = sm750_dev->vram;
   626			break;
   627		case sm750_simul_sec:
   628			output->paths = sm750_pnc;
   629			crtc->channel = sm750_secondary;
   630			crtc->o_screen = 0;
   631			crtc->v_screen = sm750_dev->vram;
   632			break;
   633		case sm750_dual_normal:
   634			if (par->index == 0) {
   635				output->paths = sm750_panel;
   636				crtc->channel = sm750_primary;
   637				crtc->o_screen = 0;
   638				crtc->v_screen = sm750_dev->vram;
   639			} else {
   640				output->paths = sm750_crt;
   641				crtc->channel = sm750_secondary;
   642				/* not consider of padding stuffs for o_screen,need fix */
   643				crtc->o_screen = sm750_dev->vidmem_size >> 1;
   644				crtc->v_screen = sm750_dev->vram + crtc->o_screen;
   645			}
   646			break;
   647		case sm750_dual_swap:
   648			if (par->index == 0) {
   649				output->paths = sm750_panel;
   650				crtc->channel = sm750_secondary;
   651				crtc->o_screen = 0;
   652				crtc->v_screen = sm750_dev->vram;
   653			} else {
   654				output->paths = sm750_crt;
   655				crtc->channel = sm750_primary;
   656				/* not consider of padding stuffs for o_screen,
   657				 * need fix
   658				 */
   659				crtc->o_screen = sm750_dev->vidmem_size >> 1;
   660				crtc->v_screen = sm750_dev->vram + crtc->o_screen;
   661			}
   662			break;
   663		default:
   664			ret = -EINVAL;
   665		}
   666	
   667		return ret;
   668	}
   669	
   670	static const struct fb_ops lynxfb_ops = {
   671		.owner = THIS_MODULE,
   672		FB_DEFAULT_IOMEM_OPS,
   673		.fb_check_var =  lynxfb_ops_check_var,
   674		.fb_set_par = lynxfb_ops_set_par,
   675		.fb_setcolreg = lynxfb_ops_setcolreg,
   676		.fb_blank = lynxfb_ops_blank,
   677		.fb_pan_display = lynxfb_ops_pan_display,
   678	};
   679	
   680	static const struct fb_ops lynxfb_ops_with_cursor = {
   681		.owner = THIS_MODULE,
   682		FB_DEFAULT_IOMEM_OPS,
   683		.fb_check_var =  lynxfb_ops_check_var,
   684		.fb_set_par = lynxfb_ops_set_par,
   685		.fb_setcolreg = lynxfb_ops_setcolreg,
   686		.fb_blank = lynxfb_ops_blank,
   687		.fb_pan_display = lynxfb_ops_pan_display,
   688		.fb_cursor = lynxfb_ops_cursor,
   689	};
   690	
   691	static const struct fb_ops lynxfb_ops_accel = {
   692		.owner = THIS_MODULE,
   693		__FB_DEFAULT_IOMEM_OPS_RDWR,
   694		.fb_check_var =  lynxfb_ops_check_var,
   695		.fb_set_par = lynxfb_ops_set_par,
   696		.fb_setcolreg = lynxfb_ops_setcolreg,
   697		.fb_blank = lynxfb_ops_blank,
   698		.fb_pan_display = lynxfb_ops_pan_display,
   699		.fb_fillrect = lynxfb_ops_fillrect,
   700		.fb_copyarea = lynxfb_ops_copyarea,
   701		.fb_imageblit = lynxfb_ops_imageblit,
   702		__FB_DEFAULT_IOMEM_OPS_MMAP,
   703	};
   704	
   705	static const struct fb_ops lynxfb_ops_accel_with_cursor = {
   706		.owner = THIS_MODULE,
   707		__FB_DEFAULT_IOMEM_OPS_RDWR,
   708		.fb_check_var =  lynxfb_ops_check_var,
   709		.fb_set_par = lynxfb_ops_set_par,
   710		.fb_setcolreg = lynxfb_ops_setcolreg,
   711		.fb_blank = lynxfb_ops_blank,
   712		.fb_pan_display = lynxfb_ops_pan_display,
   713		.fb_fillrect = lynxfb_ops_fillrect,
   714		.fb_copyarea = lynxfb_ops_copyarea,
   715		.fb_imageblit = lynxfb_ops_imageblit,
   716		.fb_cursor = lynxfb_ops_cursor,
   717		__FB_DEFAULT_IOMEM_OPS_MMAP,
   718	};
   719	
   720	static int lynxfb_set_fbinfo(struct fb_info *info, int index)
   721	{
   722		int i;
   723		struct lynxfb_par *par;
   724		struct sm750_dev *sm750_dev;
   725		struct lynxfb_crtc *crtc;
   726		struct lynxfb_output *output;
   727		struct fb_var_screeninfo *var;
   728		struct fb_fix_screeninfo *fix;
   729	
   730		const struct fb_videomode *pdb[] = {
   731			lynx750_ext, NULL, vesa_modes,
   732		};
   733		int cdb[] = {ARRAY_SIZE(lynx750_ext), 0, VESA_MODEDB_SIZE};
   734		static const char *fix_id[2] = {
   735			"sm750_fb1", "sm750_fb2",
   736		};
   737	
   738		int ret, line_length;
   739	
   740		ret = 0;
   741		par = (struct lynxfb_par *)info->par;
   742		sm750_dev = par->dev;
   743		crtc = &par->crtc;
   744		output = &par->output;
   745		var = &info->var;
   746		fix = &info->fix;
   747	
   748		/* set index */
   749		par->index = index;
   750		output->channel = &crtc->channel;
   751		sm750fb_set_drv(par);
   752	
   753		/*
   754		 * set current cursor variable and proc pointer,
   755		 * must be set after crtc member initialized
   756		 */
   757		crtc->cursor.offset = crtc->o_screen + crtc->vidmem_size - 1024;
 > 758		crtc->cursor.mmio = sm750_dev->reg +
   759			0x800f0 + (int)crtc->channel * 0x140;
   760	
   761		crtc->cursor.max_h = 64;
   762		crtc->cursor.max_w = 64;
   763		crtc->cursor.size = crtc->cursor.max_h * crtc->cursor.max_w * 2 / 8;
   764		crtc->cursor.vstart = sm750_dev->vram + crtc->cursor.offset;
   765	
   766		memset_io(crtc->cursor.vstart, 0, crtc->cursor.size);
   767		if (!g_hwcursor)
   768			sm750_hw_cursor_disable(&crtc->cursor);
   769	
   770		/* set info->fbops, must be set before fb_find_mode */
   771		if (!sm750_dev->accel_off) {
   772			/* use 2d acceleration */
   773			if (!g_hwcursor)
   774				info->fbops = &lynxfb_ops_accel;
   775			else
   776				info->fbops = &lynxfb_ops_accel_with_cursor;
   777		} else {
   778			if (!g_hwcursor)
   779				info->fbops = &lynxfb_ops;
   780			else
   781				info->fbops = &lynxfb_ops_with_cursor;
   782		}
   783	
   784		if (!g_fbmode[index]) {
   785			g_fbmode[index] = g_def_fbmode;
   786			if (index)
   787				g_fbmode[index] = g_fbmode[0];
   788		}
   789	
   790		for (i = 0; i < 3; i++) {
   791			ret = fb_find_mode(var, info, g_fbmode[index],
   792					   pdb[i], cdb[i], NULL, 8);
   793	
   794			if (ret == 1 || ret == 2)
   795				break;
   796		}
   797	
   798		/* set par */
   799		par->info = info;
   800	
   801		/* set info */
   802		line_length = ALIGN((var->xres_virtual * var->bits_per_pixel / 8),
   803				    crtc->line_pad);
   804	
   805		info->pseudo_palette = &par->pseudo_palette[0];
   806		info->screen_base = crtc->v_screen;
   807		info->screen_size = line_length * var->yres_virtual;
   808	
   809		/* set info->fix */
   810		fix->type = FB_TYPE_PACKED_PIXELS;
   811		fix->type_aux = 0;
   812		fix->xpanstep = crtc->xpanstep;
   813		fix->ypanstep = crtc->ypanstep;
   814		fix->ywrapstep = crtc->ywrapstep;
   815		fix->accel = FB_ACCEL_SMI;
   816	
   817		strscpy(fix->id, fix_id[index], sizeof(fix->id));
   818	
   819		fix->smem_start = crtc->o_screen + sm750_dev->vidmem_start;
   820		/*
   821		 * according to mmap experiment from user space application,
   822		 * fix->mmio_len should not larger than virtual size
   823		 * (xres_virtual x yres_virtual x ByPP)
   824		 * Below line maybe buggy when user mmap fb dev node and write
   825		 * data into the bound over virtual size
   826		 */
   827		fix->smem_len = crtc->vidmem_size;
   828		info->screen_size = fix->smem_len;
   829		fix->line_length = line_length;
   830		fix->mmio_start = sm750_dev->vidreg_start;
   831		fix->mmio_len = sm750_dev->vidreg_size;
   832	
   833		lynxfb_set_visual_mode(info);
   834	
   835		/* set var */
   836		var->activate = FB_ACTIVATE_NOW;
   837		var->accel_flags = 0;
   838		var->vmode = FB_VMODE_NONINTERLACED;
   839	
   840		ret = fb_alloc_cmap(&info->cmap, 256, 0);
   841		if (ret < 0) {
   842			dev_err(info->device, "Could not allocate memory for cmap.\n");
   843			goto exit;
   844		}
   845	
   846	exit:
   847		lynxfb_ops_check_var(var, info);
   848		return ret;
   849	}
   850	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply

* Re: [staging] staging: sm750fb: rename pvMem to vram and pvReg to reg
From: kernel test robot @ 2026-06-24  1:27 UTC (permalink / raw)
  To: Arnav Kapoor, Greg Kroah-Hartman, Sudip Mukherjee, Teddy Wang
  Cc: oe-kbuild-all, linux-staging, linux-fbdev, linux-kernel,
	Arnav Kapoor
In-Reply-To: <20260621045050.63460-1-kapoorarnav43@gmail.com>

Hi Arnav,

kernel test robot noticed the following build errors:

[auto build test ERROR on staging/staging-linus]
[also build test ERROR on v7.1]
[cannot apply to staging/staging-testing staging/staging-next linus/master next-20260623]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Arnav-Kapoor/staging-sm750fb-rename-pvMem-to-vram-and-pvReg-to-reg/20260622-235607
base:   staging/staging-linus
patch link:    https://lore.kernel.org/r/20260621045050.63460-1-kapoorarnav43%40gmail.com
patch subject: [staging] staging: sm750fb: rename pvMem to vram and pvReg to reg
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20260624/202606240932.nfoefhT9-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 16.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260624/202606240932.nfoefhT9-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202606240932.nfoefhT9-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/staging/sm750fb/sm750.c: In function 'sm750fb_set_drv':
>> drivers/staging/sm750fb/sm750.c:625:43: error: 'struct sm750_dev' has no member named 'vram'
     625 |                 crtc->v_screen = sm750_dev->vram;
         |                                           ^~
   drivers/staging/sm750fb/sm750.c:631:43: error: 'struct sm750_dev' has no member named 'vram'
     631 |                 crtc->v_screen = sm750_dev->vram;
         |                                           ^~
   drivers/staging/sm750fb/sm750.c:638:51: error: 'struct sm750_dev' has no member named 'vram'
     638 |                         crtc->v_screen = sm750_dev->vram;
         |                                                   ^~
   drivers/staging/sm750fb/sm750.c:644:51: error: 'struct sm750_dev' has no member named 'vram'
     644 |                         crtc->v_screen = sm750_dev->vram + crtc->o_screen;
         |                                                   ^~
   drivers/staging/sm750fb/sm750.c:652:51: error: 'struct sm750_dev' has no member named 'vram'
     652 |                         crtc->v_screen = sm750_dev->vram;
         |                                                   ^~
   drivers/staging/sm750fb/sm750.c:660:51: error: 'struct sm750_dev' has no member named 'vram'
     660 |                         crtc->v_screen = sm750_dev->vram + crtc->o_screen;
         |                                                   ^~
   drivers/staging/sm750fb/sm750.c: In function 'lynxfb_set_fbinfo':
>> drivers/staging/sm750fb/sm750.c:758:38: error: 'struct sm750_dev' has no member named 'reg'
     758 |         crtc->cursor.mmio = sm750_dev->reg +
         |                                      ^~
   drivers/staging/sm750fb/sm750.c:764:40: error: 'struct sm750_dev' has no member named 'vram'
     764 |         crtc->cursor.vstart = sm750_dev->vram + crtc->cursor.offset;
         |                                        ^~
   drivers/staging/sm750fb/sm750.c: In function 'lynxfb_pci_probe':
   drivers/staging/sm750fb/sm750.c:1031:28: error: 'struct sm750_dev' has no member named 'vram'
    1031 |         memset_io(sm750_dev->vram, 0, sm750_dev->vidmem_size);
         |                            ^~
   drivers/staging/sm750fb/sm750.c: In function 'lynxfb_pci_remove':
   drivers/staging/sm750fb/sm750.c:1062:26: error: 'struct sm750_dev' has no member named 'reg'
    1062 |         iounmap(sm750_dev->reg);
         |                          ^~
   drivers/staging/sm750fb/sm750.c:1063:26: error: 'struct sm750_dev' has no member named 'vram'
    1063 |         iounmap(sm750_dev->vram);
         |                          ^~


vim +625 drivers/staging/sm750fb/sm750.c

   591	
   592	static int sm750fb_set_drv(struct lynxfb_par *par)
   593	{
   594		int ret;
   595		struct sm750_dev *sm750_dev;
   596		struct lynxfb_output *output;
   597		struct lynxfb_crtc *crtc;
   598	
   599		ret = 0;
   600	
   601		sm750_dev = par->dev;
   602		output = &par->output;
   603		crtc = &par->crtc;
   604	
   605		crtc->vidmem_size = sm750_dev->vidmem_size;
   606		if (sm750_dev->fb_count > 1)
   607			crtc->vidmem_size >>= 1;
   608	
   609		/* setup crtc and output member */
   610		sm750_dev->hw_cursor = g_hwcursor;
   611	
   612		crtc->line_pad = 16;
   613		crtc->xpanstep = 8;
   614		crtc->ypanstep = 1;
   615		crtc->ywrapstep = 0;
   616	
   617		/* chip specific phase */
   618		sm750_dev->accel.de_wait = (sm750_dev->revid == SM750LE_REVISION_ID) ?
   619					    hw_sm750le_de_wait : hw_sm750_de_wait;
   620		switch (sm750_dev->dataflow) {
   621		case sm750_simul_pri:
   622			output->paths = sm750_pnc;
   623			crtc->channel = sm750_primary;
   624			crtc->o_screen = 0;
 > 625			crtc->v_screen = sm750_dev->vram;
   626			break;
   627		case sm750_simul_sec:
   628			output->paths = sm750_pnc;
   629			crtc->channel = sm750_secondary;
   630			crtc->o_screen = 0;
   631			crtc->v_screen = sm750_dev->vram;
   632			break;
   633		case sm750_dual_normal:
   634			if (par->index == 0) {
   635				output->paths = sm750_panel;
   636				crtc->channel = sm750_primary;
   637				crtc->o_screen = 0;
   638				crtc->v_screen = sm750_dev->vram;
   639			} else {
   640				output->paths = sm750_crt;
   641				crtc->channel = sm750_secondary;
   642				/* not consider of padding stuffs for o_screen,need fix */
   643				crtc->o_screen = sm750_dev->vidmem_size >> 1;
   644				crtc->v_screen = sm750_dev->vram + crtc->o_screen;
   645			}
   646			break;
   647		case sm750_dual_swap:
   648			if (par->index == 0) {
   649				output->paths = sm750_panel;
   650				crtc->channel = sm750_secondary;
   651				crtc->o_screen = 0;
 > 652				crtc->v_screen = sm750_dev->vram;
   653			} else {
   654				output->paths = sm750_crt;
   655				crtc->channel = sm750_primary;
   656				/* not consider of padding stuffs for o_screen,
   657				 * need fix
   658				 */
   659				crtc->o_screen = sm750_dev->vidmem_size >> 1;
   660				crtc->v_screen = sm750_dev->vram + crtc->o_screen;
   661			}
   662			break;
   663		default:
   664			ret = -EINVAL;
   665		}
   666	
   667		return ret;
   668	}
   669	
   670	static const struct fb_ops lynxfb_ops = {
   671		.owner = THIS_MODULE,
   672		FB_DEFAULT_IOMEM_OPS,
   673		.fb_check_var =  lynxfb_ops_check_var,
   674		.fb_set_par = lynxfb_ops_set_par,
   675		.fb_setcolreg = lynxfb_ops_setcolreg,
   676		.fb_blank = lynxfb_ops_blank,
   677		.fb_pan_display = lynxfb_ops_pan_display,
   678	};
   679	
   680	static const struct fb_ops lynxfb_ops_with_cursor = {
   681		.owner = THIS_MODULE,
   682		FB_DEFAULT_IOMEM_OPS,
   683		.fb_check_var =  lynxfb_ops_check_var,
   684		.fb_set_par = lynxfb_ops_set_par,
   685		.fb_setcolreg = lynxfb_ops_setcolreg,
   686		.fb_blank = lynxfb_ops_blank,
   687		.fb_pan_display = lynxfb_ops_pan_display,
   688		.fb_cursor = lynxfb_ops_cursor,
   689	};
   690	
   691	static const struct fb_ops lynxfb_ops_accel = {
   692		.owner = THIS_MODULE,
   693		__FB_DEFAULT_IOMEM_OPS_RDWR,
   694		.fb_check_var =  lynxfb_ops_check_var,
   695		.fb_set_par = lynxfb_ops_set_par,
   696		.fb_setcolreg = lynxfb_ops_setcolreg,
   697		.fb_blank = lynxfb_ops_blank,
   698		.fb_pan_display = lynxfb_ops_pan_display,
   699		.fb_fillrect = lynxfb_ops_fillrect,
   700		.fb_copyarea = lynxfb_ops_copyarea,
   701		.fb_imageblit = lynxfb_ops_imageblit,
   702		__FB_DEFAULT_IOMEM_OPS_MMAP,
   703	};
   704	
   705	static const struct fb_ops lynxfb_ops_accel_with_cursor = {
   706		.owner = THIS_MODULE,
   707		__FB_DEFAULT_IOMEM_OPS_RDWR,
   708		.fb_check_var =  lynxfb_ops_check_var,
   709		.fb_set_par = lynxfb_ops_set_par,
   710		.fb_setcolreg = lynxfb_ops_setcolreg,
   711		.fb_blank = lynxfb_ops_blank,
   712		.fb_pan_display = lynxfb_ops_pan_display,
   713		.fb_fillrect = lynxfb_ops_fillrect,
   714		.fb_copyarea = lynxfb_ops_copyarea,
   715		.fb_imageblit = lynxfb_ops_imageblit,
   716		.fb_cursor = lynxfb_ops_cursor,
   717		__FB_DEFAULT_IOMEM_OPS_MMAP,
   718	};
   719	
   720	static int lynxfb_set_fbinfo(struct fb_info *info, int index)
   721	{
   722		int i;
   723		struct lynxfb_par *par;
   724		struct sm750_dev *sm750_dev;
   725		struct lynxfb_crtc *crtc;
   726		struct lynxfb_output *output;
   727		struct fb_var_screeninfo *var;
   728		struct fb_fix_screeninfo *fix;
   729	
   730		const struct fb_videomode *pdb[] = {
   731			lynx750_ext, NULL, vesa_modes,
   732		};
   733		int cdb[] = {ARRAY_SIZE(lynx750_ext), 0, VESA_MODEDB_SIZE};
   734		static const char *fix_id[2] = {
   735			"sm750_fb1", "sm750_fb2",
   736		};
   737	
   738		int ret, line_length;
   739	
   740		ret = 0;
   741		par = (struct lynxfb_par *)info->par;
   742		sm750_dev = par->dev;
   743		crtc = &par->crtc;
   744		output = &par->output;
   745		var = &info->var;
   746		fix = &info->fix;
   747	
   748		/* set index */
   749		par->index = index;
   750		output->channel = &crtc->channel;
   751		sm750fb_set_drv(par);
   752	
   753		/*
   754		 * set current cursor variable and proc pointer,
   755		 * must be set after crtc member initialized
   756		 */
   757		crtc->cursor.offset = crtc->o_screen + crtc->vidmem_size - 1024;
 > 758		crtc->cursor.mmio = sm750_dev->reg +
   759			0x800f0 + (int)crtc->channel * 0x140;
   760	
   761		crtc->cursor.max_h = 64;
   762		crtc->cursor.max_w = 64;
   763		crtc->cursor.size = crtc->cursor.max_h * crtc->cursor.max_w * 2 / 8;
   764		crtc->cursor.vstart = sm750_dev->vram + crtc->cursor.offset;
   765	
   766		memset_io(crtc->cursor.vstart, 0, crtc->cursor.size);
   767		if (!g_hwcursor)
   768			sm750_hw_cursor_disable(&crtc->cursor);
   769	
   770		/* set info->fbops, must be set before fb_find_mode */
   771		if (!sm750_dev->accel_off) {
   772			/* use 2d acceleration */
   773			if (!g_hwcursor)
   774				info->fbops = &lynxfb_ops_accel;
   775			else
   776				info->fbops = &lynxfb_ops_accel_with_cursor;
   777		} else {
   778			if (!g_hwcursor)
   779				info->fbops = &lynxfb_ops;
   780			else
   781				info->fbops = &lynxfb_ops_with_cursor;
   782		}
   783	
   784		if (!g_fbmode[index]) {
   785			g_fbmode[index] = g_def_fbmode;
   786			if (index)
   787				g_fbmode[index] = g_fbmode[0];
   788		}
   789	
   790		for (i = 0; i < 3; i++) {
   791			ret = fb_find_mode(var, info, g_fbmode[index],
   792					   pdb[i], cdb[i], NULL, 8);
   793	
   794			if (ret == 1 || ret == 2)
   795				break;
   796		}
   797	
   798		/* set par */
   799		par->info = info;
   800	
   801		/* set info */
   802		line_length = ALIGN((var->xres_virtual * var->bits_per_pixel / 8),
   803				    crtc->line_pad);
   804	
   805		info->pseudo_palette = &par->pseudo_palette[0];
   806		info->screen_base = crtc->v_screen;
   807		info->screen_size = line_length * var->yres_virtual;
   808	
   809		/* set info->fix */
   810		fix->type = FB_TYPE_PACKED_PIXELS;
   811		fix->type_aux = 0;
   812		fix->xpanstep = crtc->xpanstep;
   813		fix->ypanstep = crtc->ypanstep;
   814		fix->ywrapstep = crtc->ywrapstep;
   815		fix->accel = FB_ACCEL_SMI;
   816	
   817		strscpy(fix->id, fix_id[index], sizeof(fix->id));
   818	
   819		fix->smem_start = crtc->o_screen + sm750_dev->vidmem_start;
   820		/*
   821		 * according to mmap experiment from user space application,
   822		 * fix->mmio_len should not larger than virtual size
   823		 * (xres_virtual x yres_virtual x ByPP)
   824		 * Below line maybe buggy when user mmap fb dev node and write
   825		 * data into the bound over virtual size
   826		 */
   827		fix->smem_len = crtc->vidmem_size;
   828		info->screen_size = fix->smem_len;
   829		fix->line_length = line_length;
   830		fix->mmio_start = sm750_dev->vidreg_start;
   831		fix->mmio_len = sm750_dev->vidreg_size;
   832	
   833		lynxfb_set_visual_mode(info);
   834	
   835		/* set var */
   836		var->activate = FB_ACTIVATE_NOW;
   837		var->accel_flags = 0;
   838		var->vmode = FB_VMODE_NONINTERLACED;
   839	
   840		ret = fb_alloc_cmap(&info->cmap, 256, 0);
   841		if (ret < 0) {
   842			dev_err(info->device, "Could not allocate memory for cmap.\n");
   843			goto exit;
   844		}
   845	
   846	exit:
   847		lynxfb_ops_check_var(var, info);
   848		return ret;
   849	}
   850	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply

* Re: [staging] staging: sm750fb: fix remaining CamelCase issues
From: kernel test robot @ 2026-06-24  1:51 UTC (permalink / raw)
  To: Arnav Kapoor, Greg Kroah-Hartman, Sudip Mukherjee, Teddy Wang
  Cc: llvm, oe-kbuild-all, linux-staging, linux-fbdev, linux-kernel,
	Arnav Kapoor
In-Reply-To: <20260621045340.65872-1-kapoorarnav43@gmail.com>

Hi Arnav,

kernel test robot noticed the following build errors:

[auto build test ERROR on staging/staging-linus]
[also build test ERROR on v7.1]
[cannot apply to staging/staging-testing staging/staging-next linus/master next-20260623]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Arnav-Kapoor/staging-sm750fb-fix-remaining-CamelCase-issues/20260622-235207
base:   staging/staging-linus
patch link:    https://lore.kernel.org/r/20260621045340.65872-1-kapoorarnav43%40gmail.com
patch subject: [staging] staging: sm750fb: fix remaining CamelCase issues
config: sparc64-allmodconfig (https://download.01.org/0day-ci/archive/20260624/202606240916.wIIrdOzC-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260624/202606240916.wIIrdOzC-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202606240916.wIIrdOzC-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/staging/sm750fb/sm750.c:862:23: error: no member named 'power_mode' in 'struct init_status'; did you mean 'powerMode'?
     862 |         sm750_dev->init_parm.power_mode = 0;
         |                              ^~~~~~~~~~
         |                              powerMode
   drivers/staging/sm750fb/sm750.h:42:9: note: 'powerMode' declared here
      42 |         ushort powerMode;
         |                ^
>> drivers/staging/sm750fb/sm750.c:863:23: error: no member named 'set_all_eng_off' in 'struct init_status'
     863 |         sm750_dev->init_parm.set_all_eng_off = 0;
         |         ~~~~~~~~~~~~~~~~~~~~ ^
>> drivers/staging/sm750fb/sm750.c:864:23: error: no member named 'reset_memory' in 'struct init_status'; did you mean 'resetMemory'?
     864 |         sm750_dev->init_parm.reset_memory = 1;
         |                              ^~~~~~~~~~~~
         |                              resetMemory
   drivers/staging/sm750fb/sm750.h:48:9: note: 'resetMemory' declared here
      48 |         ushort resetMemory;
         |                ^
>> drivers/staging/sm750fb/sm750.c:883:25: error: use of undeclared identifier 'SM750_DOUBLE_TFT'
     883 |                         sm750_dev->pnltype = SM750_DOUBLE_TFT;
         |                                              ^
>> drivers/staging/sm750fb/sm750.c:885:25: error: use of undeclared identifier 'SM750_DUAL_TFT'
     885 |                         sm750_dev->pnltype = SM750_DUAL_TFT;
         |                                              ^
   5 errors generated.


vim +862 drivers/staging/sm750fb/sm750.c

   850	
   851	/*	chip specific g_option configuration routine */
   852	static void sm750fb_setup(struct sm750_dev *sm750_dev, char *src)
   853	{
   854		char *opt;
   855		int swap;
   856	
   857		swap = 0;
   858	
   859		sm750_dev->init_parm.chip_clk = 0;
   860		sm750_dev->init_parm.mem_clk = 0;
   861		sm750_dev->init_parm.master_clk = 0;
 > 862		sm750_dev->init_parm.power_mode = 0;
 > 863		sm750_dev->init_parm.set_all_eng_off = 0;
 > 864		sm750_dev->init_parm.reset_memory = 1;
   865	
   866		/* defaultly turn g_hwcursor on for both view */
   867		g_hwcursor = 3;
   868	
   869		if (!src || !*src) {
   870			dev_warn(&sm750_dev->pdev->dev, "no specific g_option.\n");
   871			goto NO_PARAM;
   872		}
   873	
   874		while ((opt = strsep(&src, ":")) != NULL && *opt != 0) {
   875			dev_info(&sm750_dev->pdev->dev, "opt=%s\n", opt);
   876			dev_info(&sm750_dev->pdev->dev, "src=%s\n", src);
   877	
   878			if (!strncmp(opt, "swap", strlen("swap"))) {
   879				swap = 1;
   880			} else if (!strncmp(opt, "nocrt", strlen("nocrt"))) {
   881				sm750_dev->nocrt = 1;
   882			} else if (!strncmp(opt, "36bit", strlen("36bit"))) {
 > 883				sm750_dev->pnltype = SM750_DOUBLE_TFT;
   884			} else if (!strncmp(opt, "18bit", strlen("18bit"))) {
 > 885				sm750_dev->pnltype = SM750_DUAL_TFT;
   886			} else if (!strncmp(opt, "24bit", strlen("24bit"))) {
   887				sm750_dev->pnltype = sm750_24TFT;
   888			} else if (!strncmp(opt, "nohwc0", strlen("nohwc0"))) {
   889				g_hwcursor &= ~0x1;
   890			} else if (!strncmp(opt, "nohwc1", strlen("nohwc1"))) {
   891				g_hwcursor &= ~0x2;
   892			} else if (!strncmp(opt, "nohwc", strlen("nohwc"))) {
   893				g_hwcursor = 0;
   894			} else {
   895				if (!g_fbmode[0]) {
   896					g_fbmode[0] = opt;
   897					dev_info(&sm750_dev->pdev->dev,
   898						 "find fbmode0 : %s\n", g_fbmode[0]);
   899				} else if (!g_fbmode[1]) {
   900					g_fbmode[1] = opt;
   901					dev_info(&sm750_dev->pdev->dev,
   902						 "find fbmode1 : %s\n", g_fbmode[1]);
   903				} else {
   904					dev_warn(&sm750_dev->pdev->dev, "How many view you wann set?\n");
   905				}
   906			}
   907		}
   908	
   909	NO_PARAM:
   910		if (sm750_dev->revid != SM750LE_REVISION_ID) {
   911			if (sm750_dev->fb_count > 1) {
   912				if (swap)
   913					sm750_dev->dataflow = sm750_dual_swap;
   914				else
   915					sm750_dev->dataflow = sm750_dual_normal;
   916			} else {
   917				if (swap)
   918					sm750_dev->dataflow = sm750_simul_sec;
   919				else
   920					sm750_dev->dataflow = sm750_simul_pri;
   921			}
   922		} else {
   923			/* SM750LE only have one crt channel */
   924			sm750_dev->dataflow = sm750_simul_sec;
   925			/* sm750le do not have complex attributes */
   926			sm750_dev->nocrt = 0;
   927		}
   928	}
   929	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply

* [PATCH] staging: iio: frequency: reorder dds.h macro parameters to match IIO convention
From: Xiaofeng Yuan @ 2026-06-24  2:16 UTC (permalink / raw)
  To: gregkh; +Cc: jic23, linux-iio, linux-staging, linux-kernel, Xiaofeng Yuan

The IIO subsystem convention requires that the file permission
(_mode) parameter be the first argument of IIO_DEV_ATTR_* macros.
The dds.h macros had _mode after _channel, causing checkpatch to
misinterpret the channel number as a permission value.

Reorder the parameters so _mode is first, matching the convention
established by IIO_DEV_ATTR_SAMP_FREQ in include/linux/iio/sysfs.h.

Update all callers in ad9834.c and ad9832.c accordingly.

Compile tested.

Signed-off-by: Xiaofeng Yuan <xiaofengmian@163.com>
---
 drivers/staging/iio/frequency/ad9832.c | 20 ++++++++++----------
 drivers/staging/iio/frequency/ad9834.c | 22 +++++++++++-----------
 drivers/staging/iio/frequency/dds.h    | 24 ++++++++++++------------
 3 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/drivers/staging/iio/frequency/ad9832.c b/drivers/staging/iio/frequency/ad9832.c
index 659821a1e..2dfdd0d28 100644
--- a/drivers/staging/iio/frequency/ad9832.c
+++ b/drivers/staging/iio/frequency/ad9832.c
@@ -253,22 +253,22 @@ static ssize_t ad9832_write(struct device *dev, struct device_attribute *attr,
  * see dds.h for further information
  */
 
-static IIO_DEV_ATTR_FREQ(0, 0, 0200, NULL, ad9832_write, AD9832_FREQ0HM);
-static IIO_DEV_ATTR_FREQ(0, 1, 0200, NULL, ad9832_write, AD9832_FREQ1HM);
-static IIO_DEV_ATTR_FREQSYMBOL(0, 0200, NULL, ad9832_write, AD9832_FREQ_SYM);
+static IIO_DEV_ATTR_FREQ(0200, 0, 0, NULL, ad9832_write, AD9832_FREQ0HM);
+static IIO_DEV_ATTR_FREQ(0200, 0, 1, NULL, ad9832_write, AD9832_FREQ1HM);
+static IIO_DEV_ATTR_FREQSYMBOL(0200, 0, NULL, ad9832_write, AD9832_FREQ_SYM);
 static IIO_CONST_ATTR_FREQ_SCALE(0, "1"); /* 1Hz */
 
-static IIO_DEV_ATTR_PHASE(0, 0, 0200, NULL, ad9832_write, AD9832_PHASE0H);
-static IIO_DEV_ATTR_PHASE(0, 1, 0200, NULL, ad9832_write, AD9832_PHASE1H);
-static IIO_DEV_ATTR_PHASE(0, 2, 0200, NULL, ad9832_write, AD9832_PHASE2H);
-static IIO_DEV_ATTR_PHASE(0, 3, 0200, NULL, ad9832_write, AD9832_PHASE3H);
-static IIO_DEV_ATTR_PHASESYMBOL(0, 0200, NULL,
+static IIO_DEV_ATTR_PHASE(0200, 0, 0, NULL, ad9832_write, AD9832_PHASE0H);
+static IIO_DEV_ATTR_PHASE(0200, 0, 1, NULL, ad9832_write, AD9832_PHASE1H);
+static IIO_DEV_ATTR_PHASE(0200, 0, 2, NULL, ad9832_write, AD9832_PHASE2H);
+static IIO_DEV_ATTR_PHASE(0200, 0, 3, NULL, ad9832_write, AD9832_PHASE3H);
+static IIO_DEV_ATTR_PHASESYMBOL(0200, 0, NULL,
 				ad9832_write, AD9832_PHASE_SYM);
 static IIO_CONST_ATTR_PHASE_SCALE(0, "0.0015339808"); /* 2PI/2^12 rad*/
 
-static IIO_DEV_ATTR_PINCONTROL_EN(0, 0200, NULL,
+static IIO_DEV_ATTR_PINCONTROL_EN(0200, 0, NULL,
 				ad9832_write, AD9832_PINCTRL_EN);
-static IIO_DEV_ATTR_OUT_ENABLE(0, 0200, NULL,
+static IIO_DEV_ATTR_OUT_ENABLE(0200, 0, NULL,
 				ad9832_write, AD9832_OUTPUT_EN);
 
 static struct attribute *ad9832_attributes[] = {
diff --git a/drivers/staging/iio/frequency/ad9834.c b/drivers/staging/iio/frequency/ad9834.c
index 4359b358e..b232cb4a7 100644
--- a/drivers/staging/iio/frequency/ad9834.c
+++ b/drivers/staging/iio/frequency/ad9834.c
@@ -315,21 +315,21 @@ static IIO_DEVICE_ATTR(out_altvoltage0_out1_wavetype_available, 0444,
  * see dds.h for further information
  */
 
-static IIO_DEV_ATTR_FREQ(0, 0, 0200, NULL, ad9834_write, AD9834_REG_FREQ0);
-static IIO_DEV_ATTR_FREQ(0, 1, 0200, NULL, ad9834_write, AD9834_REG_FREQ1);
-static IIO_DEV_ATTR_FREQSYMBOL(0, 0200, NULL, ad9834_write, AD9834_FSEL);
+static IIO_DEV_ATTR_FREQ(0200, 0, 0, NULL, ad9834_write, AD9834_REG_FREQ0);
+static IIO_DEV_ATTR_FREQ(0200, 0, 1, NULL, ad9834_write, AD9834_REG_FREQ1);
+static IIO_DEV_ATTR_FREQSYMBOL(0200, 0, NULL, ad9834_write, AD9834_FSEL);
 static IIO_CONST_ATTR_FREQ_SCALE(0, "1"); /* 1Hz */
 
-static IIO_DEV_ATTR_PHASE(0, 0, 0200, NULL, ad9834_write, AD9834_REG_PHASE0);
-static IIO_DEV_ATTR_PHASE(0, 1, 0200, NULL, ad9834_write, AD9834_REG_PHASE1);
-static IIO_DEV_ATTR_PHASESYMBOL(0, 0200, NULL, ad9834_write, AD9834_PSEL);
+static IIO_DEV_ATTR_PHASE(0200, 0, 0, NULL, ad9834_write, AD9834_REG_PHASE0);
+static IIO_DEV_ATTR_PHASE(0200, 0, 1, NULL, ad9834_write, AD9834_REG_PHASE1);
+static IIO_DEV_ATTR_PHASESYMBOL(0200, 0, NULL, ad9834_write, AD9834_PSEL);
 static IIO_CONST_ATTR_PHASE_SCALE(0, "0.0015339808"); /* 2PI/2^12 rad*/
 
-static IIO_DEV_ATTR_PINCONTROL_EN(0, 0200, NULL, ad9834_write, AD9834_PIN_SW);
-static IIO_DEV_ATTR_OUT_ENABLE(0, 0200, NULL, ad9834_write, AD9834_RESET);
-static IIO_DEV_ATTR_OUTY_ENABLE(0, 1, 0200, NULL, ad9834_write, AD9834_OPBITEN);
-static IIO_DEV_ATTR_OUT_WAVETYPE(0, 0, ad9834_store_wavetype, 0);
-static IIO_DEV_ATTR_OUT_WAVETYPE(0, 1, ad9834_store_wavetype, 1);
+static IIO_DEV_ATTR_PINCONTROL_EN(0200, 0, NULL, ad9834_write, AD9834_PIN_SW);
+static IIO_DEV_ATTR_OUT_ENABLE(0200, 0, NULL, ad9834_write, AD9834_RESET);
+static IIO_DEV_ATTR_OUTY_ENABLE(0200, 0, 1, NULL, ad9834_write, AD9834_OPBITEN);
+static IIO_DEV_ATTR_OUT_WAVETYPE(0200, 0, 0, ad9834_store_wavetype, 0);
+static IIO_DEV_ATTR_OUT_WAVETYPE(0200, 0, 1, ad9834_store_wavetype, 1);
 
 static struct attribute *ad9834_attributes[] = {
 	&iio_dev_attr_out_altvoltage0_frequency0.dev_attr.attr,
diff --git a/drivers/staging/iio/frequency/dds.h b/drivers/staging/iio/frequency/dds.h
index 2ebe68eb7..b2ca8bb97 100644
--- a/drivers/staging/iio/frequency/dds.h
+++ b/drivers/staging/iio/frequency/dds.h
@@ -11,7 +11,7 @@
  * /sys/bus/iio/devices/.../out_altvoltageX_frequencyY
  */
 
-#define IIO_DEV_ATTR_FREQ(_channel, _num, _mode, _show, _store, _addr)	\
+#define IIO_DEV_ATTR_FREQ(_mode, _channel, _num, _show, _store, _addr)	\
 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_frequency##_num,	\
 			_mode, _show, _store, _addr)
 
@@ -26,7 +26,7 @@
  * /sys/bus/iio/devices/.../out_altvoltageX_frequencysymbol
  */
 
-#define IIO_DEV_ATTR_FREQSYMBOL(_channel, _mode, _show, _store, _addr)	\
+#define IIO_DEV_ATTR_FREQSYMBOL(_mode, _channel, _show, _store, _addr)	\
 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_frequencysymbol,	\
 			_mode, _show, _store, _addr)
 
@@ -34,7 +34,7 @@
  * /sys/bus/iio/devices/.../out_altvoltageX_phaseY
  */
 
-#define IIO_DEV_ATTR_PHASE(_channel, _num, _mode, _show, _store, _addr)	\
+#define IIO_DEV_ATTR_PHASE(_mode, _channel, _num, _show, _store, _addr)	\
 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_phase##_num,		\
 			_mode, _show, _store, _addr)
 
@@ -49,7 +49,7 @@
  * /sys/bus/iio/devices/.../out_altvoltageX_phasesymbol
  */
 
-#define IIO_DEV_ATTR_PHASESYMBOL(_channel, _mode, _show, _store, _addr)	\
+#define IIO_DEV_ATTR_PHASESYMBOL(_mode, _channel, _show, _store, _addr)	\
 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_phasesymbol,		\
 			_mode, _show, _store, _addr)
 
@@ -57,7 +57,7 @@
  * /sys/bus/iio/devices/.../out_altvoltageX_pincontrol_en
  */
 
-#define IIO_DEV_ATTR_PINCONTROL_EN(_channel, _mode, _show, _store, _addr)\
+#define IIO_DEV_ATTR_PINCONTROL_EN(_mode, _channel, _show, _store, _addr)\
 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_pincontrol_en,	\
 			_mode, _show, _store, _addr)
 
@@ -65,7 +65,7 @@
  * /sys/bus/iio/devices/.../out_altvoltageX_pincontrol_frequency_en
  */
 
-#define IIO_DEV_ATTR_PINCONTROL_FREQ_EN(_channel, _mode, _show, _store, _addr)\
+#define IIO_DEV_ATTR_PINCONTROL_FREQ_EN(_mode, _channel, _show, _store, _addr)\
 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_pincontrol_frequency_en,\
 			_mode, _show, _store, _addr)
 
@@ -73,7 +73,7 @@
  * /sys/bus/iio/devices/.../out_altvoltageX_pincontrol_phase_en
  */
 
-#define IIO_DEV_ATTR_PINCONTROL_PHASE_EN(_channel, _mode, _show, _store, _addr)\
+#define IIO_DEV_ATTR_PINCONTROL_PHASE_EN(_mode, _channel, _show, _store, _addr)\
 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_pincontrol_phase_en,	\
 			_mode, _show, _store, _addr)
 
@@ -81,7 +81,7 @@
  * /sys/bus/iio/devices/.../out_altvoltageX_out_enable
  */
 
-#define IIO_DEV_ATTR_OUT_ENABLE(_channel, _mode, _show, _store, _addr)	\
+#define IIO_DEV_ATTR_OUT_ENABLE(_mode, _channel, _show, _store, _addr)	\
 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_out_enable,		\
 			_mode, _show, _store, _addr)
 
@@ -89,8 +89,8 @@
  * /sys/bus/iio/devices/.../out_altvoltageX_outY_enable
  */
 
-#define IIO_DEV_ATTR_OUTY_ENABLE(_channel, _output,			\
-			_mode, _show, _store, _addr)			\
+#define IIO_DEV_ATTR_OUTY_ENABLE(_mode, _channel, _output,		\
+			_show, _store, _addr)				\
 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_out##_output##_enable,\
 			_mode, _show, _store, _addr)
 
@@ -98,9 +98,9 @@
  * /sys/bus/iio/devices/.../out_altvoltageX_outY_wavetype
  */
 
-#define IIO_DEV_ATTR_OUT_WAVETYPE(_channel, _output, _store, _addr)	\
+#define IIO_DEV_ATTR_OUT_WAVETYPE(_mode, _channel, _output, _store, _addr)\
 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_out##_output##_wavetype,\
-			0200, NULL, _store, _addr)
+			_mode, NULL, _store, _addr)
 
 /**
  * /sys/bus/iio/devices/.../out_altvoltageX_outY_wavetype_available
-- 
2.43.0


^ permalink raw reply related

* Re: [staging] staging: sm750fb: fix remaining CamelCase issues
From: kernel test robot @ 2026-06-24  3:26 UTC (permalink / raw)
  To: Arnav Kapoor, Greg Kroah-Hartman, Sudip Mukherjee, Teddy Wang
  Cc: oe-kbuild-all, linux-staging, linux-fbdev, linux-kernel,
	Arnav Kapoor
In-Reply-To: <20260621045340.65872-1-kapoorarnav43@gmail.com>

Hi Arnav,

kernel test robot noticed the following build errors:

[auto build test ERROR on staging/staging-linus]
[also build test ERROR on v7.1]
[cannot apply to staging/staging-testing staging/staging-next linus/master next-20260623]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Arnav-Kapoor/staging-sm750fb-fix-remaining-CamelCase-issues/20260622-235207
base:   staging/staging-linus
patch link:    https://lore.kernel.org/r/20260621045340.65872-1-kapoorarnav43%40gmail.com
patch subject: [staging] staging: sm750fb: fix remaining CamelCase issues
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20260624/202606241142.LlZq0AN1-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 16.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260624/202606241142.LlZq0AN1-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202606241142.LlZq0AN1-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/staging/sm750fb/sm750.c: In function 'sm750fb_setup':
>> drivers/staging/sm750fb/sm750.c:862:30: error: 'struct init_status' has no member named 'power_mode'; did you mean 'powerMode'?
     862 |         sm750_dev->init_parm.power_mode = 0;
         |                              ^~~~~~~~~~
         |                              powerMode
>> drivers/staging/sm750fb/sm750.c:863:30: error: 'struct init_status' has no member named 'set_all_eng_off'; did you mean 'setAllEngOff'?
     863 |         sm750_dev->init_parm.set_all_eng_off = 0;
         |                              ^~~~~~~~~~~~~~~
         |                              setAllEngOff
>> drivers/staging/sm750fb/sm750.c:864:30: error: 'struct init_status' has no member named 'reset_memory'; did you mean 'resetMemory'?
     864 |         sm750_dev->init_parm.reset_memory = 1;
         |                              ^~~~~~~~~~~~
         |                              resetMemory
>> drivers/staging/sm750fb/sm750.c:883:46: error: 'SM750_DOUBLE_TFT' undeclared (first use in this function); did you mean 'sm750_doubleTFT'?
     883 |                         sm750_dev->pnltype = SM750_DOUBLE_TFT;
         |                                              ^~~~~~~~~~~~~~~~
         |                                              sm750_doubleTFT
   drivers/staging/sm750fb/sm750.c:883:46: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/staging/sm750fb/sm750.c:885:46: error: 'SM750_DUAL_TFT' undeclared (first use in this function); did you mean 'sm750_dualTFT'?
     885 |                         sm750_dev->pnltype = SM750_DUAL_TFT;
         |                                              ^~~~~~~~~~~~~~
         |                                              sm750_dualTFT


vim +862 drivers/staging/sm750fb/sm750.c

   850	
   851	/*	chip specific g_option configuration routine */
   852	static void sm750fb_setup(struct sm750_dev *sm750_dev, char *src)
   853	{
   854		char *opt;
   855		int swap;
   856	
   857		swap = 0;
   858	
   859		sm750_dev->init_parm.chip_clk = 0;
   860		sm750_dev->init_parm.mem_clk = 0;
   861		sm750_dev->init_parm.master_clk = 0;
 > 862		sm750_dev->init_parm.power_mode = 0;
 > 863		sm750_dev->init_parm.set_all_eng_off = 0;
 > 864		sm750_dev->init_parm.reset_memory = 1;
   865	
   866		/* defaultly turn g_hwcursor on for both view */
   867		g_hwcursor = 3;
   868	
   869		if (!src || !*src) {
   870			dev_warn(&sm750_dev->pdev->dev, "no specific g_option.\n");
   871			goto NO_PARAM;
   872		}
   873	
   874		while ((opt = strsep(&src, ":")) != NULL && *opt != 0) {
   875			dev_info(&sm750_dev->pdev->dev, "opt=%s\n", opt);
   876			dev_info(&sm750_dev->pdev->dev, "src=%s\n", src);
   877	
   878			if (!strncmp(opt, "swap", strlen("swap"))) {
   879				swap = 1;
   880			} else if (!strncmp(opt, "nocrt", strlen("nocrt"))) {
   881				sm750_dev->nocrt = 1;
   882			} else if (!strncmp(opt, "36bit", strlen("36bit"))) {
 > 883				sm750_dev->pnltype = SM750_DOUBLE_TFT;
   884			} else if (!strncmp(opt, "18bit", strlen("18bit"))) {
 > 885				sm750_dev->pnltype = SM750_DUAL_TFT;
   886			} else if (!strncmp(opt, "24bit", strlen("24bit"))) {
   887				sm750_dev->pnltype = sm750_24TFT;
   888			} else if (!strncmp(opt, "nohwc0", strlen("nohwc0"))) {
   889				g_hwcursor &= ~0x1;
   890			} else if (!strncmp(opt, "nohwc1", strlen("nohwc1"))) {
   891				g_hwcursor &= ~0x2;
   892			} else if (!strncmp(opt, "nohwc", strlen("nohwc"))) {
   893				g_hwcursor = 0;
   894			} else {
   895				if (!g_fbmode[0]) {
   896					g_fbmode[0] = opt;
   897					dev_info(&sm750_dev->pdev->dev,
   898						 "find fbmode0 : %s\n", g_fbmode[0]);
   899				} else if (!g_fbmode[1]) {
   900					g_fbmode[1] = opt;
   901					dev_info(&sm750_dev->pdev->dev,
   902						 "find fbmode1 : %s\n", g_fbmode[1]);
   903				} else {
   904					dev_warn(&sm750_dev->pdev->dev, "How many view you wann set?\n");
   905				}
   906			}
   907		}
   908	
   909	NO_PARAM:
   910		if (sm750_dev->revid != SM750LE_REVISION_ID) {
   911			if (sm750_dev->fb_count > 1) {
   912				if (swap)
   913					sm750_dev->dataflow = sm750_dual_swap;
   914				else
   915					sm750_dev->dataflow = sm750_dual_normal;
   916			} else {
   917				if (swap)
   918					sm750_dev->dataflow = sm750_simul_sec;
   919				else
   920					sm750_dev->dataflow = sm750_simul_pri;
   921			}
   922		} else {
   923			/* SM750LE only have one crt channel */
   924			sm750_dev->dataflow = sm750_simul_sec;
   925			/* sm750le do not have complex attributes */
   926			sm750_dev->nocrt = 0;
   927		}
   928	}
   929	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply

* [PATCH v2] staging: sm750fb: fix remaining CamelCase issues
From: Arnav Kapoor @ 2026-06-24  4:25 UTC (permalink / raw)
  To: Sudip Mukherjee, Teddy Wang, Greg Kroah-Hartman
  Cc: linux-fbdev, linux-staging, linux-kernel, Arnav Kapoor
In-Reply-To: <20260621045340.65872-1-kapoorarnav43@gmail.com>

Rename the remaining CamelCase variables and constants
to follow kernel coding style.

Rename:

* powerMode -> power_mode
* setAllEngOff -> set_all_eng_off
* resetMemory -> reset_memory
* sm750_doubleTFT -> SM750_DOUBLE_TFT
* sm750_dualTFT -> SM750_DUAL_TFT

Fix build errors by renaming the corresponding
declarations and enum values as well.

Reported-by: kernel test robot [lkp@intel.com](mailto:lkp@intel.com)
Closes: https://lore.kernel.org/oe-kbuild-all/202606240916.wIIrdOzC-lkp@intel.com/
Signed-off-by: Arnav Kapoor <kapoorarnav43@gmail.com>
---
 drivers/staging/sm750fb/sm750.c    | 10 +++++-----
 drivers/staging/sm750fb/sm750.h    | 10 +++++-----
 drivers/staging/sm750fb/sm750_hw.c |  4 ++--
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
index 9f3e3d37e..858eda551 100644
--- a/drivers/staging/sm750fb/sm750.c
+++ b/drivers/staging/sm750fb/sm750.c
@@ -859,9 +859,9 @@ static void sm750fb_setup(struct sm750_dev *sm750_dev, char *src)
 	sm750_dev->init_parm.chip_clk = 0;
 	sm750_dev->init_parm.mem_clk = 0;
 	sm750_dev->init_parm.master_clk = 0;
-	sm750_dev->init_parm.powerMode = 0;
-	sm750_dev->init_parm.setAllEngOff = 0;
-	sm750_dev->init_parm.resetMemory = 1;
+	sm750_dev->init_parm.power_mode = 0;
+	sm750_dev->init_parm.set_all_eng_off = 0;
+	sm750_dev->init_parm.reset_memory = 1;
 
 	/* defaultly turn g_hwcursor on for both view */
 	g_hwcursor = 3;
@@ -880,9 +880,9 @@ static void sm750fb_setup(struct sm750_dev *sm750_dev, char *src)
 		} else if (!strncmp(opt, "nocrt", strlen("nocrt"))) {
 			sm750_dev->nocrt = 1;
 		} else if (!strncmp(opt, "36bit", strlen("36bit"))) {
-			sm750_dev->pnltype = sm750_doubleTFT;
+			sm750_dev->pnltype = SM750_DOUBLE_TFT;
 		} else if (!strncmp(opt, "18bit", strlen("18bit"))) {
-			sm750_dev->pnltype = sm750_dualTFT;
+			sm750_dev->pnltype = SM750_DUAL_TFT;
 		} else if (!strncmp(opt, "24bit", strlen("24bit"))) {
 			sm750_dev->pnltype = sm750_24TFT;
 		} else if (!strncmp(opt, "nohwc0", strlen("nohwc0"))) {
diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h
index 67b9bfa23..9da154f1a 100644
--- a/drivers/staging/sm750fb/sm750.h
+++ b/drivers/staging/sm750fb/sm750.h
@@ -14,8 +14,8 @@
 
 enum sm750_pnltype {
 	sm750_24TFT = 0,	/* 24bit tft */
-	sm750_dualTFT = 2,	/* dual 18 bit tft */
-	sm750_doubleTFT = 1,	/* 36 bit double pixel tft */
+	SM750_DUAL_TFT = 2,	/* dual 18 bit tft */
+	SM750_DOUBLE_TFT = 1,	/* 36 bit double pixel tft */
 };
 
 /* vga channel is not concerned  */
@@ -39,13 +39,13 @@ enum sm750_path {
 };
 
 struct init_status {
-	ushort powerMode;
+	ushort power_mode;
 	/* below three clocks are in unit of MHZ*/
 	ushort chip_clk;
 	ushort mem_clk;
 	ushort master_clk;
-	ushort setAllEngOff;
-	ushort resetMemory;
+	ushort set_all_eng_off;
+	ushort reset_memory;
 };
 
 struct lynx_accel {
diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c
index a2798d428..59fb3a207 100644
--- a/drivers/staging/sm750fb/sm750_hw.c
+++ b/drivers/staging/sm750fb/sm750_hw.c
@@ -130,10 +130,10 @@ int hw_sm750_inithw(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 		switch (sm750_dev->pnltype) {
 		case sm750_24TFT:
 			break;
-		case sm750_doubleTFT:
+		case SM750_DOUBLE_TFT:
 			val |= PANEL_DISPLAY_CTRL_DOUBLE_PIXEL;
 			break;
-		case sm750_dualTFT:
+		case SM750_DUAL_TFT:
 			val |= PANEL_DISPLAY_CTRL_DUAL_DISPLAY;
 			break;
 		}
-- 
2.53.0


^ permalink raw reply related

* [PATCH v2] staging: sm750fb: rename CamelCase pvMem and pvReg
From: Arnav Kapoor @ 2026-06-24  4:44 UTC (permalink / raw)
  To: Sudip Mukherjee, Teddy Wang, Greg Kroah-Hartman
  Cc: linux-fbdev, linux-staging, linux-kernel, Arnav Kapoor,
	kernel test robot
In-Reply-To: <MESSAGE-ID>

Rename the remaining CamelCase structure members
to follow kernel coding style.

Rename:

* pvMem -> vram
* pvReg -> reg

Fix build errors by renaming the corresponding
structure members in sm750.h as well.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202606240823.hWXfYyPf-lkp@intel.com/
Signed-off-by: Arnav Kapoor <kapoorarnav43@gmail.com>
---
 drivers/staging/sm750fb/sm750.c    | 22 +++++++++++-----------
 drivers/staging/sm750fb/sm750.h    |  4 ++--
 drivers/staging/sm750fb/sm750_hw.c | 16 ++++++++--------
 3 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
index 858eda551..efadb9c73 100644
--- a/drivers/staging/sm750fb/sm750.c
+++ b/drivers/staging/sm750fb/sm750.c
@@ -622,26 +622,26 @@ static int sm750fb_set_drv(struct lynxfb_par *par)
 		output->paths = sm750_pnc;
 		crtc->channel = sm750_primary;
 		crtc->o_screen = 0;
-		crtc->v_screen = sm750_dev->pvMem;
+		crtc->v_screen = sm750_dev->vram;
 		break;
 	case sm750_simul_sec:
 		output->paths = sm750_pnc;
 		crtc->channel = sm750_secondary;
 		crtc->o_screen = 0;
-		crtc->v_screen = sm750_dev->pvMem;
+		crtc->v_screen = sm750_dev->vram;
 		break;
 	case sm750_dual_normal:
 		if (par->index == 0) {
 			output->paths = sm750_panel;
 			crtc->channel = sm750_primary;
 			crtc->o_screen = 0;
-			crtc->v_screen = sm750_dev->pvMem;
+			crtc->v_screen = sm750_dev->vram;
 		} else {
 			output->paths = sm750_crt;
 			crtc->channel = sm750_secondary;
 			/* not consider of padding stuffs for o_screen,need fix */
 			crtc->o_screen = sm750_dev->vidmem_size >> 1;
-			crtc->v_screen = sm750_dev->pvMem + crtc->o_screen;
+			crtc->v_screen = sm750_dev->vram + crtc->o_screen;
 		}
 		break;
 	case sm750_dual_swap:
@@ -649,7 +649,7 @@ static int sm750fb_set_drv(struct lynxfb_par *par)
 			output->paths = sm750_panel;
 			crtc->channel = sm750_secondary;
 			crtc->o_screen = 0;
-			crtc->v_screen = sm750_dev->pvMem;
+			crtc->v_screen = sm750_dev->vram;
 		} else {
 			output->paths = sm750_crt;
 			crtc->channel = sm750_primary;
@@ -657,7 +657,7 @@ static int sm750fb_set_drv(struct lynxfb_par *par)
 			 * need fix
 			 */
 			crtc->o_screen = sm750_dev->vidmem_size >> 1;
-			crtc->v_screen = sm750_dev->pvMem + crtc->o_screen;
+			crtc->v_screen = sm750_dev->vram + crtc->o_screen;
 		}
 		break;
 	default:
@@ -755,13 +755,13 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
 	 * must be set after crtc member initialized
 	 */
 	crtc->cursor.offset = crtc->o_screen + crtc->vidmem_size - 1024;
-	crtc->cursor.mmio = sm750_dev->pvReg +
+	crtc->cursor.mmio = sm750_dev->reg +
 		0x800f0 + (int)crtc->channel * 0x140;
 
 	crtc->cursor.max_h = 64;
 	crtc->cursor.max_w = 64;
 	crtc->cursor.size = crtc->cursor.max_h * crtc->cursor.max_w * 2 / 8;
-	crtc->cursor.vstart = sm750_dev->pvMem + crtc->cursor.offset;
+	crtc->cursor.vstart = sm750_dev->vram + crtc->cursor.offset;
 
 	memset_io(crtc->cursor.vstart, 0, crtc->cursor.size);
 	if (!g_hwcursor)
@@ -1028,7 +1028,7 @@ static int lynxfb_pci_probe(struct pci_dev *pdev,
 		sm750_dev->mtrr.vram = arch_phys_wc_add(sm750_dev->vidmem_start,
 							sm750_dev->vidmem_size);
 
-	memset_io(sm750_dev->pvMem, 0, sm750_dev->vidmem_size);
+	memset_io(sm750_dev->vram, 0, sm750_dev->vidmem_size);
 
 	pci_set_drvdata(pdev, sm750_dev);
 
@@ -1059,8 +1059,8 @@ static void lynxfb_pci_remove(struct pci_dev *pdev)
 	sm750fb_framebuffer_release(sm750_dev);
 	arch_phys_wc_del(sm750_dev->mtrr.vram);
 
-	iounmap(sm750_dev->pvReg);
-	iounmap(sm750_dev->pvMem);
+	iounmap(sm750_dev->reg);
+	iounmap(sm750_dev->vram);
 	pci_release_region(pdev, 1);
 	kfree(g_settings);
 }
diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h
index 9da154f1a..dadf5874a 100644
--- a/drivers/staging/sm750fb/sm750.h
+++ b/drivers/staging/sm750fb/sm750.h
@@ -97,8 +97,8 @@ struct sm750_dev {
 	unsigned long vidreg_start;
 	__u32 vidmem_size;
 	__u32 vidreg_size;
-	void __iomem *pvReg;
-	unsigned char __iomem *pvMem;
+	void __iomem *reg;
+	unsigned char __iomem *vram;
 	/* locks*/
 	spinlock_t slock;
 
diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c
index 59fb3a207..1b768be20 100644
--- a/drivers/staging/sm750fb/sm750_hw.c
+++ b/drivers/staging/sm750fb/sm750_hw.c
@@ -42,18 +42,18 @@ int hw_sm750_map(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 	}
 
 	/* now map mmio and vidmem */
-	sm750_dev->pvReg =
+	sm750_dev->reg =
 		ioremap(sm750_dev->vidreg_start, sm750_dev->vidreg_size);
-	if (!sm750_dev->pvReg) {
+	if (!sm750_dev->reg) {
 		dev_err(&pdev->dev, "mmio failed\n");
 		ret = -EFAULT;
 		goto err_release_region;
 	}
 
-	sm750_dev->accel.dpr_base = sm750_dev->pvReg + DE_BASE_ADDR_TYPE1;
-	sm750_dev->accel.dp_port_base = sm750_dev->pvReg + DE_PORT_ADDR_TYPE1;
+	sm750_dev->accel.dpr_base = sm750_dev->reg + DE_BASE_ADDR_TYPE1;
+	sm750_dev->accel.dp_port_base = sm750_dev->reg + DE_PORT_ADDR_TYPE1;
 
-	mmio750 = sm750_dev->pvReg;
+	mmio750 = sm750_dev->reg;
 	sm750_set_chip_type(sm750_dev->devid, sm750_dev->revid);
 
 	sm750_dev->vidmem_start = pci_resource_start(pdev, 0);
@@ -66,9 +66,9 @@ int hw_sm750_map(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 	sm750_dev->vidmem_size = ddk750_get_vm_size();
 
 	/* reserve the vidmem space of smi adaptor */
-	sm750_dev->pvMem =
+	sm750_dev->vram =
 		ioremap_wc(sm750_dev->vidmem_start, sm750_dev->vidmem_size);
-	if (!sm750_dev->pvMem) {
+	if (!sm750_dev->vram) {
 		dev_err(&pdev->dev, "Map video memory failed\n");
 		ret = -EFAULT;
 		goto err_unmap_reg;
@@ -77,7 +77,7 @@ int hw_sm750_map(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 	return 0;
 
 err_unmap_reg:
-	iounmap(sm750_dev->pvReg);
+	iounmap(sm750_dev->reg);
 err_release_region:
 	pci_release_region(pdev, 1);
 	return ret;
-- 
2.53.0


^ permalink raw reply related

* [PATCH v2] staging: sm750fb: rename CamelCase pvMem and pvReg
From: Arnav Kapoor @ 2026-06-24  4:46 UTC (permalink / raw)
  To: Sudip Mukherjee, Teddy Wang, Greg Kroah-Hartman
  Cc: linux-fbdev, linux-staging, linux-kernel, Arnav Kapoor,
	kernel test robot
In-Reply-To: <20260621045050.63460-1-kapoorarnav43@gmail.com>

Rename the remaining CamelCase structure members
to follow kernel coding style.

Rename:

* pvMem -> vram
* pvReg -> reg

Fix build errors by renaming the corresponding
structure members in sm750.h as well.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202606240823.hWXfYyPf-lkp@intel.com/
Signed-off-by: Arnav Kapoor <kapoorarnav43@gmail.com>
---
 drivers/staging/sm750fb/sm750.c    | 22 +++++++++++-----------
 drivers/staging/sm750fb/sm750.h    |  4 ++--
 drivers/staging/sm750fb/sm750_hw.c | 16 ++++++++--------
 3 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
index 858eda551..efadb9c73 100644
--- a/drivers/staging/sm750fb/sm750.c
+++ b/drivers/staging/sm750fb/sm750.c
@@ -622,26 +622,26 @@ static int sm750fb_set_drv(struct lynxfb_par *par)
 		output->paths = sm750_pnc;
 		crtc->channel = sm750_primary;
 		crtc->o_screen = 0;
-		crtc->v_screen = sm750_dev->pvMem;
+		crtc->v_screen = sm750_dev->vram;
 		break;
 	case sm750_simul_sec:
 		output->paths = sm750_pnc;
 		crtc->channel = sm750_secondary;
 		crtc->o_screen = 0;
-		crtc->v_screen = sm750_dev->pvMem;
+		crtc->v_screen = sm750_dev->vram;
 		break;
 	case sm750_dual_normal:
 		if (par->index == 0) {
 			output->paths = sm750_panel;
 			crtc->channel = sm750_primary;
 			crtc->o_screen = 0;
-			crtc->v_screen = sm750_dev->pvMem;
+			crtc->v_screen = sm750_dev->vram;
 		} else {
 			output->paths = sm750_crt;
 			crtc->channel = sm750_secondary;
 			/* not consider of padding stuffs for o_screen,need fix */
 			crtc->o_screen = sm750_dev->vidmem_size >> 1;
-			crtc->v_screen = sm750_dev->pvMem + crtc->o_screen;
+			crtc->v_screen = sm750_dev->vram + crtc->o_screen;
 		}
 		break;
 	case sm750_dual_swap:
@@ -649,7 +649,7 @@ static int sm750fb_set_drv(struct lynxfb_par *par)
 			output->paths = sm750_panel;
 			crtc->channel = sm750_secondary;
 			crtc->o_screen = 0;
-			crtc->v_screen = sm750_dev->pvMem;
+			crtc->v_screen = sm750_dev->vram;
 		} else {
 			output->paths = sm750_crt;
 			crtc->channel = sm750_primary;
@@ -657,7 +657,7 @@ static int sm750fb_set_drv(struct lynxfb_par *par)
 			 * need fix
 			 */
 			crtc->o_screen = sm750_dev->vidmem_size >> 1;
-			crtc->v_screen = sm750_dev->pvMem + crtc->o_screen;
+			crtc->v_screen = sm750_dev->vram + crtc->o_screen;
 		}
 		break;
 	default:
@@ -755,13 +755,13 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
 	 * must be set after crtc member initialized
 	 */
 	crtc->cursor.offset = crtc->o_screen + crtc->vidmem_size - 1024;
-	crtc->cursor.mmio = sm750_dev->pvReg +
+	crtc->cursor.mmio = sm750_dev->reg +
 		0x800f0 + (int)crtc->channel * 0x140;
 
 	crtc->cursor.max_h = 64;
 	crtc->cursor.max_w = 64;
 	crtc->cursor.size = crtc->cursor.max_h * crtc->cursor.max_w * 2 / 8;
-	crtc->cursor.vstart = sm750_dev->pvMem + crtc->cursor.offset;
+	crtc->cursor.vstart = sm750_dev->vram + crtc->cursor.offset;
 
 	memset_io(crtc->cursor.vstart, 0, crtc->cursor.size);
 	if (!g_hwcursor)
@@ -1028,7 +1028,7 @@ static int lynxfb_pci_probe(struct pci_dev *pdev,
 		sm750_dev->mtrr.vram = arch_phys_wc_add(sm750_dev->vidmem_start,
 							sm750_dev->vidmem_size);
 
-	memset_io(sm750_dev->pvMem, 0, sm750_dev->vidmem_size);
+	memset_io(sm750_dev->vram, 0, sm750_dev->vidmem_size);
 
 	pci_set_drvdata(pdev, sm750_dev);
 
@@ -1059,8 +1059,8 @@ static void lynxfb_pci_remove(struct pci_dev *pdev)
 	sm750fb_framebuffer_release(sm750_dev);
 	arch_phys_wc_del(sm750_dev->mtrr.vram);
 
-	iounmap(sm750_dev->pvReg);
-	iounmap(sm750_dev->pvMem);
+	iounmap(sm750_dev->reg);
+	iounmap(sm750_dev->vram);
 	pci_release_region(pdev, 1);
 	kfree(g_settings);
 }
diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h
index 9da154f1a..dadf5874a 100644
--- a/drivers/staging/sm750fb/sm750.h
+++ b/drivers/staging/sm750fb/sm750.h
@@ -97,8 +97,8 @@ struct sm750_dev {
 	unsigned long vidreg_start;
 	__u32 vidmem_size;
 	__u32 vidreg_size;
-	void __iomem *pvReg;
-	unsigned char __iomem *pvMem;
+	void __iomem *reg;
+	unsigned char __iomem *vram;
 	/* locks*/
 	spinlock_t slock;
 
diff --git a/drivers/staging/sm750fb/sm750_hw.c b/drivers/staging/sm750fb/sm750_hw.c
index 59fb3a207..1b768be20 100644
--- a/drivers/staging/sm750fb/sm750_hw.c
+++ b/drivers/staging/sm750fb/sm750_hw.c
@@ -42,18 +42,18 @@ int hw_sm750_map(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 	}
 
 	/* now map mmio and vidmem */
-	sm750_dev->pvReg =
+	sm750_dev->reg =
 		ioremap(sm750_dev->vidreg_start, sm750_dev->vidreg_size);
-	if (!sm750_dev->pvReg) {
+	if (!sm750_dev->reg) {
 		dev_err(&pdev->dev, "mmio failed\n");
 		ret = -EFAULT;
 		goto err_release_region;
 	}
 
-	sm750_dev->accel.dpr_base = sm750_dev->pvReg + DE_BASE_ADDR_TYPE1;
-	sm750_dev->accel.dp_port_base = sm750_dev->pvReg + DE_PORT_ADDR_TYPE1;
+	sm750_dev->accel.dpr_base = sm750_dev->reg + DE_BASE_ADDR_TYPE1;
+	sm750_dev->accel.dp_port_base = sm750_dev->reg + DE_PORT_ADDR_TYPE1;
 
-	mmio750 = sm750_dev->pvReg;
+	mmio750 = sm750_dev->reg;
 	sm750_set_chip_type(sm750_dev->devid, sm750_dev->revid);
 
 	sm750_dev->vidmem_start = pci_resource_start(pdev, 0);
@@ -66,9 +66,9 @@ int hw_sm750_map(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 	sm750_dev->vidmem_size = ddk750_get_vm_size();
 
 	/* reserve the vidmem space of smi adaptor */
-	sm750_dev->pvMem =
+	sm750_dev->vram =
 		ioremap_wc(sm750_dev->vidmem_start, sm750_dev->vidmem_size);
-	if (!sm750_dev->pvMem) {
+	if (!sm750_dev->vram) {
 		dev_err(&pdev->dev, "Map video memory failed\n");
 		ret = -EFAULT;
 		goto err_unmap_reg;
@@ -77,7 +77,7 @@ int hw_sm750_map(struct sm750_dev *sm750_dev, struct pci_dev *pdev)
 	return 0;
 
 err_unmap_reg:
-	iounmap(sm750_dev->pvReg);
+	iounmap(sm750_dev->reg);
 err_release_region:
 	pci_release_region(pdev, 1);
 	return ret;
-- 
2.53.0


^ permalink raw reply related


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