Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 296539 | Differences between
and this patch

Collapse All | Expand All

(-)a/drivers/video/modedb.c (-8 / +8 lines)
Lines 636-643 done: Link Here
636
			if (refresh_specified && db[i].refresh == refresh) {
636
			if (refresh_specified && db[i].refresh == refresh) {
637
				return 1;
637
				return 1;
638
			} else {
638
			} else {
639
				if (abs(db[i].refresh - refresh) < diff) {
639
				tdiff = abs((signed)(db[i].refresh - refresh));
640
					diff = abs(db[i].refresh - refresh);
640
				if (tdiff < diff) {
641
					diff = tdiff;
641
					best = i;
642
					best = i;
642
				}
643
				}
643
			}
644
			}
Lines 654-662 done: Link Here
654
	for (i = 0; i < dbsize; i++) {
655
	for (i = 0; i < dbsize; i++) {
655
		DPRINTK("Trying %ix%i\n", db[i].xres, db[i].yres);
656
		DPRINTK("Trying %ix%i\n", db[i].xres, db[i].yres);
656
		if (!fb_try_mode(var, info, &db[i], bpp)) {
657
		if (!fb_try_mode(var, info, &db[i], bpp)) {
657
			tdiff = abs(db[i].xres - xres) +
658
			tdiff = abs((signed)(db[i].xres - xres)) +
658
				abs(db[i].yres - yres);
659
				abs((signed)(db[i].yres - yres));
659
660
			/*
660
			/*
661
			 * Penalize modes with resolutions smaller
661
			 * Penalize modes with resolutions smaller
662
			 * than requested.
662
			 * than requested.
Lines 851-863 const struct fb_videomode *fb_find_nearest_mode(const struct fb_videomode *mode, Link Here
851
		modelist = list_entry(pos, struct fb_modelist, list);
851
		modelist = list_entry(pos, struct fb_modelist, list);
852
		cmode = &modelist->mode;
852
		cmode = &modelist->mode;
853
853
854
		d = abs(cmode->xres - mode->xres) +
854
		d = abs((signed)(cmode->xres - mode->xres)) +
855
			abs(cmode->yres - mode->yres);
855
			abs((signed)(cmode->yres - mode->yres));
856
		if (diff > d) {
856
		if (diff > d) {
857
			diff = d;
857
			diff = d;
858
			best = cmode;
858
			best = cmode;
859
		} else if (diff == d) {
859
		} else if (diff == d) {
860
			d = abs(cmode->refresh - mode->refresh);
860
			d = abs((signed)(cmode->refresh - mode->refresh));
861
			if (diff_refresh > d) {
861
			if (diff_refresh > d) {
862
				diff_refresh = d;
862
				diff_refresh = d;
863
				best = cmode;
863
				best = cmode;
(-)a/drivers/video/uvesafb.c (-5 / +6 lines)
Lines 317-328 static void uvesafb_setup_var(struct fb_var_screeninfo *var, Link Here
317
static int uvesafb_vbe_find_mode(struct uvesafb_par *par,
317
static int uvesafb_vbe_find_mode(struct uvesafb_par *par,
318
		int xres, int yres, int depth, unsigned char flags)
318
		int xres, int yres, int depth, unsigned char flags)
319
{
319
{
320
	int i, match = -1, h = 0, d = 0x7fffffff;
320
	int i, match = -1;
321
	unsigned int h = 0, d = UINT_MAX;
321
322
322
	for (i = 0; i < par->vbe_modes_cnt; i++) {
323
	for (i = 0; i < par->vbe_modes_cnt; i++) {
323
		h = abs(par->vbe_modes[i].x_res - xres) +
324
		h = abs((signed)(par->vbe_modes[i].x_res - xres)) +
324
		    abs(par->vbe_modes[i].y_res - yres) +
325
		    abs((signed)(par->vbe_modes[i].y_res - yres)) +
325
		    abs(depth - par->vbe_modes[i].depth);
326
		    abs((signed)(depth - par->vbe_modes[i].depth));
326
327
327
		/*
328
		/*
328
		 * We have an exact match in terms of resolution
329
		 * We have an exact match in terms of resolution
Lines 1375-1381 static int uvesafb_check_var(struct fb_var_screeninfo *var, Link Here
1375
	 * which is theoretically incorrect, but which we'll try to handle
1376
	 * which is theoretically incorrect, but which we'll try to handle
1376
	 * here.
1377
	 * here.
1377
	 */
1378
	 */
1378
	if (depth == 0 || abs(depth - var->bits_per_pixel) >= 8)
1379
	if (depth == 0 || abs((signed)(depth - var->bits_per_pixel)) >= 8)
1379
		depth = var->bits_per_pixel;
1380
		depth = var->bits_per_pixel;
1380
1381
1381
	match = uvesafb_vbe_find_mode(par, var->xres, var->yres, depth,
1382
	match = uvesafb_vbe_find_mode(par, var->xres, var->yres, depth,

Return to bug 296539