Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933184AbXAaMoE (ORCPT ); Wed, 31 Jan 2007 07:44:04 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S933186AbXAaMoE (ORCPT ); Wed, 31 Jan 2007 07:44:04 -0500 Received: from vervifontaine.sonytel.be ([80.88.33.193]:41251 "EHLO vervifontaine.sonycom.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S933184AbXAaMoB (ORCPT ); Wed, 31 Jan 2007 07:44:01 -0500 Date: Wed, 31 Jan 2007 13:43:59 +0100 (CET) From: Geert Uytterhoeven To: James Simmons cc: Linux Frame Buffer Device Development , Cell Broadband Engine OSS Development , Linux Kernel Development Subject: [PATCH 2/7] fbdev: fb_do_show_logo() updates In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3035 Lines: 88 fb_do_show_logo() updates: - Use width and height of the passed image instead of the global variable fb_logo - Explicitly pass the number of logos to draw Signed-off-by: Geert Uytterhoeven Signed-off-by: Geoff Levand --- drivers/video/fbmem.c | 34 +++++++++++++++------------------- 1 files changed, 15 insertions(+), 19 deletions(-) --- ps3-linux-2.6.20-rc7.orig/drivers/video/fbmem.c +++ ps3-linux-2.6.20-rc7/drivers/video/fbmem.c @@ -377,37 +377,33 @@ static void fb_rotate_logo(struct fb_inf } static void fb_do_show_logo(struct fb_info *info, struct fb_image *image, - int rotate) + int rotate, unsigned int num) { - int x; + unsigned int x; if (rotate == FB_ROTATE_UR) { - for (x = 0; x < num_online_cpus() && - x * (fb_logo.logo->width + 8) <= - info->var.xres - fb_logo.logo->width; x++) { + for (x = 0; + x < num && image->dx + image->width <= info->var.xres; + x++) { info->fbops->fb_imageblit(info, image); - image->dx += fb_logo.logo->width + 8; + image->dx += image->width + 8; } } else if (rotate == FB_ROTATE_UD) { - for (x = 0; x < num_online_cpus() && - x * (fb_logo.logo->width + 8) <= - info->var.xres - fb_logo.logo->width; x++) { + for (x = 0; x < num && image->dx >= 0; x++) { info->fbops->fb_imageblit(info, image); - image->dx -= fb_logo.logo->width + 8; + image->dx -= image->width + 8; } } else if (rotate == FB_ROTATE_CW) { - for (x = 0; x < num_online_cpus() && - x * (fb_logo.logo->width + 8) <= - info->var.yres - fb_logo.logo->width; x++) { + for (x = 0; + x < num && image->dy + image->height <= info->var.yres; + x++) { info->fbops->fb_imageblit(info, image); - image->dy += fb_logo.logo->width + 8; + image->dy += image->height + 8; } } else if (rotate == FB_ROTATE_CCW) { - for (x = 0; x < num_online_cpus() && - x * (fb_logo.logo->width + 8) <= - info->var.yres - fb_logo.logo->width; x++) { + for (x = 0; x < num && image->dy >= 0; x++) { info->fbops->fb_imageblit(info, image); - image->dy -= fb_logo.logo->width + 8; + image->dy -= image->height + 8; } } } @@ -533,7 +529,7 @@ int fb_show_logo(struct fb_info *info, i fb_rotate_logo(info, logo_rotate, &image, rotate); } - fb_do_show_logo(info, &image, rotate); + fb_do_show_logo(info, &image, rotate, num_online_cpus()); kfree(palette); if (saved_pseudo_palette != NULL) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- Sony Network and Software Technology Center Europe (NSCE) Geert.Uytterhoeven@sonycom.com ------- The Corporate Village, Da Vincilaan 7-D1 Voice +32-2-7008453 Fax +32-2-7008622 ---------------- B-1935 Zaventem, Belgium - 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/