#endif
static inline void color_imageblit(const struct fb_image *image,
- struct fb_info *p, u8 *dst1,
+ struct fb_info *p, u8 __iomem *dst1,
u32 start_index,
u32 pitch_index)
{
/* Draw the penguin */
- u32 *dst, *dst2, color = 0, val, shift;
+ u32 __iomem *dst, *dst2;
+ u32 color = 0, val, shift;
int i, n, bpp = p->var.bits_per_pixel;
u32 null_bits = 32 - bpp;
u32 *palette = (u32 *) p->pseudo_palette;
const u8 *src = image->data;
- dst2 = (u32 *) dst1;
+ dst2 = (u32 __iomem *) dst1;
for (i = image->height; i--; ) {
n = image->width;
- dst = (u32 *) dst1;
+ dst = (u32 __iomem *) dst1;
shift = 0;
val = 0;
dst1 += p->fix.line_length;
if (pitch_index) {
dst2 += p->fix.line_length;
- dst1 = (u8 *)((long)dst2 & ~(sizeof(u32) - 1));
+ dst1 = (u8 __iomem *)((long __force)dst2 & ~(sizeof(u32) - 1));
start_index += pitch_index;
start_index &= 32 - 1;
}
static inline void slow_imageblit(const struct fb_image *image, struct fb_info *p,
- u8 *dst1, u32 fgcolor,
+ u8 __iomem *dst1, u32 fgcolor,
u32 bgcolor,
u32 start_index,
u32 pitch_index)
{
u32 shift, color = 0, bpp = p->var.bits_per_pixel;
- u32 *dst, *dst2, val, pitch = p->fix.line_length;
+ u32 __iomem *dst, *dst2;
+ u32 val, pitch = p->fix.line_length;
u32 null_bits = 32 - bpp;
u32 spitch = (image->width+7)/8;
const u8 *src = image->data, *s;
u32 i, j, l;
- dst2 = (u32 *) dst1;
+ dst2 = (u32 __iomem *) dst1;
for (i = image->height; i--; ) {
shift = val = 0;
l = 8;
j = image->width;
- dst = (u32 *) dst1;
+ dst = (u32 __iomem *) dst1;
s = src;
/* write leading bits */
src += spitch;
if (pitch_index) {
dst2 += pitch;
- dst1 = (u8 *)((long)dst2 & ~(sizeof(u32) - 1));
+ dst1 = (u8 __iomem *)((long __force)dst2 & ~(sizeof(u32) - 1));
start_index += pitch_index;
start_index &= 32 - 1;
}
* beginning and end of a scanline is dword aligned
*/
static inline void fast_imageblit(const struct fb_image *image, struct fb_info *p,
- u8 *dst1, u32 fgcolor,
+ u8 __iomem *dst1, u32 fgcolor,
u32 bgcolor)
{
u32 fgx = fgcolor, bgx = bgcolor, bpp = p->var.bits_per_pixel;
u32 ppw = 32/bpp, spitch = (image->width + 7)/8;
u32 bit_mask, end_mask, eorx, shift;
const char *s = image->data, *src;
- u32 *dst;
+ u32 __iomem *dst;
u32 *tab = NULL;
int i, j, k;
k = image->width/ppw;
for (i = image->height; i--; ) {
- dst = (u32 *) dst1, shift = 8; src = s;
+ dst = (u32 __iomem *) dst1, shift = 8; src = s;
for (j = k; j--; ) {
shift -= ppw;
u32 width = image->width, height = image->height;
u32 dx = image->dx, dy = image->dy;
int x2, y2, vxres, vyres;
- u8 *dst1;
+ u8 __iomem *dst1;
if (p->state != FBINFO_STATE_RUNNING)
return;
else
slow_imageblit(image, p, dst1, fgcolor, bgcolor,
start_index, pitch_index);
- } else if (image->depth <= bpp)
+ } else
color_imageblit(image, p, dst1, start_index, pitch_index);
}