* [PATCH RESEND v2 1/5] staging: sm750fb: Use memset_io instead of memset
@ 2015-03-18 19:04 Lorenzo Stoakes
2015-03-18 19:04 ` [PATCH RESEND v2 4/5] staging: sm750fb: Fix __iomem pointer types Lorenzo Stoakes
0 siblings, 1 reply; 4+ messages in thread
From: Lorenzo Stoakes @ 2015-03-18 19:04 UTC (permalink / raw)
To: sudipm.mukherjee, teddy.wang, gregkh
Cc: linux-fbdev, devel, linux-kernel, Lorenzo Stoakes
This patch takes into account that cursor->vstart, crtc->vScreen and
share->pvMem are pointers to memory-mapped I/O and thus we should use memset_io
to make this explicit. In addition, some architectures require special treatment
of memory-mapped I/O so the previous code could actually break without this
change.
This fixes the following sparse warnings:-
drivers/staging/sm750fb/sm750.c:489:17: warning: incorrect type in argument 1 (different address spaces)
drivers/staging/sm750fb/sm750.c:490:17: warning: incorrect type in argument 1 (different address spaces)
drivers/staging/sm750fb/sm750.c:501:17: warning: incorrect type in argument 1 (different address spaces)
drivers/staging/sm750fb/sm750.c:502:17: warning: incorrect type in argument 1 (different address spaces)
drivers/staging/sm750fb/sm750.c:833:5: warning: incorrect type in argument 1 (different address spaces)
drivers/staging/sm750fb/sm750.c:1154:9: warning: incorrect type in argument 1 (different address spaces)
Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com>
---
v2: Whitespace fixups, updated commit message
drivers/staging/sm750fb/sm750.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
index aa0888c..3e36b6a 100644
--- a/drivers/staging/sm750fb/sm750.c
+++ b/drivers/staging/sm750fb/sm750.c
@@ -486,8 +486,8 @@ static int lynxfb_resume(struct pci_dev* pdev)
par = info->par;
crtc = &par->crtc;
cursor = &crtc->cursor;
- memset(cursor->vstart, 0x0, cursor->size);
- memset(crtc->vScreen,0x0,crtc->vidmem_size);
+ memset_io(cursor->vstart, 0x0, cursor->size);
+ memset_io(crtc->vScreen, 0x0, crtc->vidmem_size);
lynxfb_ops_set_par(info);
fb_set_suspend(info, 0);
}
@@ -498,8 +498,8 @@ static int lynxfb_resume(struct pci_dev* pdev)
par = info->par;
crtc = &par->crtc;
cursor = &crtc->cursor;
- memset(cursor->vstart, 0x0, cursor->size);
- memset(crtc->vScreen,0x0,crtc->vidmem_size);
+ memset_io(cursor->vstart, 0x0, cursor->size);
+ memset_io(crtc->vScreen, 0x0, crtc->vidmem_size);
lynxfb_ops_set_par(info);
fb_set_suspend(info, 0);
}
@@ -830,7 +830,7 @@ static int lynxfb_set_fbinfo(struct fb_info* info,int index)
crtc->cursor.share = share;
- memset(crtc->cursor.vstart, 0, crtc->cursor.size);
+ memset_io(crtc->cursor.vstart, 0, crtc->cursor.size);
if(!g_hwcursor){
lynxfb_ops.fb_cursor = NULL;
crtc->cursor.disable(&crtc->cursor);
@@ -1151,7 +1151,7 @@ static int lynxfb_pci_probe(struct pci_dev * pdev,
}
#endif
- memset(share->pvMem,0,share->vidmem_size);
+ memset_io(share->pvMem, 0, share->vidmem_size);
pr_info("sm%3x mmio address = %p\n",share->devid,share->pvReg);
--
2.3.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH RESEND v2 4/5] staging: sm750fb: Fix __iomem pointer types
2015-03-18 19:04 [PATCH RESEND v2 1/5] staging: sm750fb: Use memset_io instead of memset Lorenzo Stoakes
@ 2015-03-18 19:04 ` Lorenzo Stoakes
2015-03-20 13:03 ` Greg KH
0 siblings, 1 reply; 4+ messages in thread
From: Lorenzo Stoakes @ 2015-03-18 19:04 UTC (permalink / raw)
To: sudipm.mukherjee, teddy.wang, gregkh
Cc: linux-fbdev, devel, linux-kernel, Lorenzo Stoakes
This patch annotates pointers as referring to I/O mapped memory where they ought
to be, removes now unnecessary ugly casts, eliminates an incorrect deref on I/O
mapped memory by using iowrite16 instead, and updates the pointer arithmetic
accordingly to take into account that the pointers are now byte-sized. This
fixes the following sparse warnings:-
drivers/staging/sm750fb/sm750_cursor.c:113:19: warning: cast removes address space of expression
drivers/staging/sm750fb/sm750_cursor.c:204:19: warning: cast removes address space of expression
Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com>
---
v2: Whitespace fixups
drivers/staging/sm750fb/sm750_cursor.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/staging/sm750fb/sm750_cursor.c b/drivers/staging/sm750fb/sm750_cursor.c
index 6cceef1..c2ff3bd 100644
--- a/drivers/staging/sm750fb/sm750_cursor.c
+++ b/drivers/staging/sm750fb/sm750_cursor.c
@@ -98,7 +98,7 @@ void hw_cursor_setData(struct lynx_cursor * cursor,
int i,j,count,pitch,offset;
u8 color,mask,opr;
u16 data;
- u16 * pbuffer,*pstart;
+ void __iomem *pbuffer, *pstart;
/* in byte*/
pitch = cursor->w >> 3;
@@ -106,11 +106,11 @@ void hw_cursor_setData(struct lynx_cursor * cursor,
/* in byte */
count = pitch * cursor->h;
- /* in ushort */
- offset = cursor->maxW * 2 / 8 / 2;
+ /* in byte */
+ offset = cursor->maxW * 2 / 8;
data = 0;
- pstart = (u16 *)cursor->vstart;
+ pstart = cursor->vstart;
pbuffer = pstart;
/*
@@ -161,7 +161,7 @@ void hw_cursor_setData(struct lynx_cursor * cursor,
}
}
#endif
- *pbuffer = data;
+ iowrite16(data, pbuffer);
/* assume pitch is 1,2,4,8,...*/
#if 0
@@ -174,7 +174,7 @@ void hw_cursor_setData(struct lynx_cursor * cursor,
pstart += offset;
pbuffer = pstart;
}else{
- pbuffer++;
+ pbuffer += sizeof(u16);
}
}
@@ -189,7 +189,7 @@ void hw_cursor_setData2(struct lynx_cursor * cursor,
int i,j,count,pitch,offset;
u8 color, mask;
u16 data;
- u16 * pbuffer,*pstart;
+ void __iomem *pbuffer, *pstart;
/* in byte*/
pitch = cursor->w >> 3;
@@ -197,11 +197,11 @@ void hw_cursor_setData2(struct lynx_cursor * cursor,
/* in byte */
count = pitch * cursor->h;
- /* in ushort */
- offset = cursor->maxW * 2 / 8 / 2;
+ /* in byte */
+ offset = cursor->maxW * 2 / 8;
data = 0;
- pstart = (u16 *)cursor->vstart;
+ pstart = cursor->vstart;
pbuffer = pstart;
for(i=0;i<count;i++)
@@ -234,7 +234,7 @@ void hw_cursor_setData2(struct lynx_cursor * cursor,
data |= ((color & (1<<j))?1:2)<<(j*2);
}
#endif
- *pbuffer = data;
+ iowrite16(data, pbuffer);
/* assume pitch is 1,2,4,8,...*/
if(!(i&(pitch-1)))
@@ -244,7 +244,7 @@ void hw_cursor_setData2(struct lynx_cursor * cursor,
pstart += offset;
pbuffer = pstart;
}else{
- pbuffer++;
+ pbuffer += sizeof(u16);
}
}
--
2.3.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH RESEND v2 4/5] staging: sm750fb: Fix __iomem pointer types
2015-03-18 19:04 ` [PATCH RESEND v2 4/5] staging: sm750fb: Fix __iomem pointer types Lorenzo Stoakes
@ 2015-03-20 13:03 ` Greg KH
2015-03-20 15:24 ` Lorenzo Stoakes
0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2015-03-20 13:03 UTC (permalink / raw)
To: Lorenzo Stoakes
Cc: sudipm.mukherjee, teddy.wang, devel, linux-fbdev, linux-kernel
On Wed, Mar 18, 2015 at 07:04:53PM +0000, Lorenzo Stoakes wrote:
> This patch annotates pointers as referring to I/O mapped memory where they ought
> to be, removes now unnecessary ugly casts, eliminates an incorrect deref on I/O
> mapped memory by using iowrite16 instead, and updates the pointer arithmetic
> accordingly to take into account that the pointers are now byte-sized. This
> fixes the following sparse warnings:-
>
> drivers/staging/sm750fb/sm750_cursor.c:113:19: warning: cast removes address space of expression
> drivers/staging/sm750fb/sm750_cursor.c:204:19: warning: cast removes address space of expression
>
> Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com>
> ---
> v2: Whitespace fixups
>
> drivers/staging/sm750fb/sm750_cursor.c | 24 ++++++++++++------------
> 1 file changed, 12 insertions(+), 12 deletions(-)
I only see 2 patches in this "series", yet you refer to 5? Please
resend the whole series, I dropped your previous ones from my queue.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH RESEND v2 4/5] staging: sm750fb: Fix __iomem pointer types
2015-03-20 13:03 ` Greg KH
@ 2015-03-20 15:24 ` Lorenzo Stoakes
0 siblings, 0 replies; 4+ messages in thread
From: Lorenzo Stoakes @ 2015-03-20 15:24 UTC (permalink / raw)
To: Greg KH; +Cc: Sudip Mukherjee, Teddy Wang, devel, linux-fbdev, linux-kernel
On 20 March 2015 at 13:03, Greg KH <gregkh@linuxfoundation.org> wrote:
> I only see 2 patches in this "series", yet you refer to 5? Please
> resend the whole series, I dropped your previous ones from my queue.
>
> thanks,
>
> greg k-h
I have resent all the patches as RESEND 2 as well as updating them to
apply against staging-testing.
Best,
--
Lorenzo Stoakes
https:/ljs.io
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-03-20 15:24 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-18 19:04 [PATCH RESEND v2 1/5] staging: sm750fb: Use memset_io instead of memset Lorenzo Stoakes
2015-03-18 19:04 ` [PATCH RESEND v2 4/5] staging: sm750fb: Fix __iomem pointer types Lorenzo Stoakes
2015-03-20 13:03 ` Greg KH
2015-03-20 15:24 ` Lorenzo Stoakes
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).