Messages in this thread | | | Date | Fri, 14 May 2004 13:49:33 -0500 | From | "J. Ryan Earl" <> | Subject | drivers/video/riva/fbdev.c broken on x86_64 |
| |
The following snippet is from drivers/video/riva/fbdev.c I'm put arrows on the lines I think break cursor loading. It does segfault, but boy does the cursor look weird. The code in this function is so confusing, I have no idea what was going on or how to fix it:
/** * rivafb_load_cursor_image - load cursor image to hardware * @data: address to monochrome bitmap (1 = foreground color, 0 = background) * @par: pointer to private data * @w: width of cursor image in pixels * @h: height of cursor image in scanlines * @bg: background color (ARGB1555) - alpha bit determines opacity * @fg: foreground color (ARGB1555) * * DESCRIPTiON: * Loads cursor image based on a monochrome source and mask bitmap. The * image bits determines the color of the pixel, 0 for background, 1 for * foreground. Only the affected region (as determined by @w and @h * parameters) will be updated. * * CALLED FROM: * rivafb_cursor() */ static void rivafb_load_cursor_image(struct riva_par *par, u8 *data, u8 *mask, u16 bg, u16 fg, u32 w, u32 h) { int i, j, k = 0; u32 b, m, tmp;
for (i = 0; i < h; i++) { -> b = *((u32 *)data); b = (u32)((u32 *)b + 1); -> m = *((u32 *)mask); m = (u32)((u32 *)m + 1); reverse_order(&b);
-ryan - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |