staging: sm750fb: Fix __iomem pointer types

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Lorenzo Stoakes 2015-03-20 15:22:14 +00:00 committed by Greg Kroah-Hartman
parent 2ffbc9c6aa
commit 35fb80b9de

View File

@ -98,7 +98,7 @@ void hw_cursor_setData(struct lynx_cursor * cursor,
int i,j,count,pitch,offset; int i,j,count,pitch,offset;
u8 color,mask,opr; u8 color,mask,opr;
u16 data; u16 data;
u16 * pbuffer,*pstart; void __iomem *pbuffer, *pstart;
/* in byte*/ /* in byte*/
pitch = cursor->w >> 3; pitch = cursor->w >> 3;
@ -106,11 +106,11 @@ void hw_cursor_setData(struct lynx_cursor * cursor,
/* in byte */ /* in byte */
count = pitch * cursor->h; count = pitch * cursor->h;
/* in ushort */ /* in byte */
offset = cursor->maxW * 2 / 8 / 2; offset = cursor->maxW * 2 / 8;
data = 0; data = 0;
pstart = (u16 *)cursor->vstart; pstart = cursor->vstart;
pbuffer = pstart; pbuffer = pstart;
/* /*
@ -161,7 +161,7 @@ void hw_cursor_setData(struct lynx_cursor * cursor,
} }
} }
#endif #endif
*pbuffer = data; iowrite16(data, pbuffer);
/* assume pitch is 1,2,4,8,...*/ /* assume pitch is 1,2,4,8,...*/
#if 0 #if 0
@ -174,7 +174,7 @@ void hw_cursor_setData(struct lynx_cursor * cursor,
pstart += offset; pstart += offset;
pbuffer = pstart; pbuffer = pstart;
}else{ }else{
pbuffer++; pbuffer += sizeof(u16);
} }
} }
@ -189,7 +189,7 @@ void hw_cursor_setData2(struct lynx_cursor * cursor,
int i,j,count,pitch,offset; int i,j,count,pitch,offset;
u8 color, mask; u8 color, mask;
u16 data; u16 data;
u16 * pbuffer,*pstart; void __iomem *pbuffer, *pstart;
/* in byte*/ /* in byte*/
pitch = cursor->w >> 3; pitch = cursor->w >> 3;
@ -197,11 +197,11 @@ void hw_cursor_setData2(struct lynx_cursor * cursor,
/* in byte */ /* in byte */
count = pitch * cursor->h; count = pitch * cursor->h;
/* in ushort */ /* in byte */
offset = cursor->maxW * 2 / 8 / 2; offset = cursor->maxW * 2 / 8;
data = 0; data = 0;
pstart = (u16 *)cursor->vstart; pstart = cursor->vstart;
pbuffer = pstart; pbuffer = pstart;
for(i=0;i<count;i++) 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); data |= ((color & (1<<j))?1:2)<<(j*2);
} }
#endif #endif
*pbuffer = data; iowrite16(data, pbuffer);
/* assume pitch is 1,2,4,8,...*/ /* assume pitch is 1,2,4,8,...*/
if(!(i&(pitch-1))) if(!(i&(pitch-1)))
@ -244,7 +244,7 @@ void hw_cursor_setData2(struct lynx_cursor * cursor,
pstart += offset; pstart += offset;
pbuffer = pstart; pbuffer = pstart;
}else{ }else{
pbuffer++; pbuffer += sizeof(u16);
} }
} }