Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5ee1ef96 authored by Antonino A. Daplas's avatar Antonino A. Daplas Committed by Linus Torvalds
Browse files

[PATCH] fbdev: Convert a few drivers to use the fb_find_best_display helper



Convert i810fb, nvidiafb and savagefb to use the fb_find_best_display helper
when searching for the initial video mode.

Signed-off-by: default avatarAntonino Daplas <adaplas@pol.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 003cfc0c
Loading
Loading
Loading
Loading
+4 −13
Original line number Original line Diff line number Diff line
@@ -1871,27 +1871,18 @@ static void __devinit i810fb_find_init_mode(struct fb_info *info)
	fb_videomode_to_modelist(specs->modedb, specs->modedb_len,
	fb_videomode_to_modelist(specs->modedb, specs->modedb_len,
				 &info->modelist);
				 &info->modelist);
	if (specs->modedb != NULL) {
	if (specs->modedb != NULL) {
		if (xres && yres) {
		struct fb_videomode *m;
		struct fb_videomode *m;


		if (xres && yres) {
			if ((m = fb_find_best_mode(&var, &info->modelist))) {
			if ((m = fb_find_best_mode(&var, &info->modelist))) {
				mode = *m;
				mode = *m;
				found  = 1;
				found  = 1;
			}
			}
		}
		}


		if (!found && specs->misc & FB_MISC_1ST_DETAIL) {
			for (i = 0; i < specs->modedb_len; i++) {
				if (specs->modedb[i].flag & FB_MODE_IS_FIRST) {
					mode = specs->modedb[i];
					found = 1;
					break;
				}
			}
		}

		if (!found) {
		if (!found) {
			mode = specs->modedb[0];
			m = fb_find_best_display(&info->monspecs, &info->modelist);
			mode = *m;
			found = 1;
			found = 1;
		}
		}


+3 −15
Original line number Original line Diff line number Diff line
@@ -1383,22 +1383,10 @@ static int __devinit nvidia_set_fbinfo(struct fb_info *info)
	fb_var_to_videomode(&modedb, &nvidiafb_default_var);
	fb_var_to_videomode(&modedb, &nvidiafb_default_var);


	if (specs->modedb != NULL) {
	if (specs->modedb != NULL) {
		/* get preferred timing */
		struct fb_videomode *modedb;
		if (specs->misc & FB_MISC_1ST_DETAIL) {
			int i;

			for (i = 0; i < specs->modedb_len; i++) {
				if (specs->modedb[i].flag & FB_MODE_IS_FIRST) {
					modedb = specs->modedb[i];
					break;
				}
			}
		} else {
			/* otherwise, get first mode in database */
			modedb = specs->modedb[0];
		}


		fb_videomode_to_var(&nvidiafb_default_var, &modedb);
		modedb = fb_find_best_display(specs, &info->modelist);
		fb_videomode_to_var(&nvidiafb_default_var, modedb);
		nvidiafb_default_var.bits_per_pixel = 8;
		nvidiafb_default_var.bits_per_pixel = 8;
	} else if (par->fpWidth && par->fpHeight) {
	} else if (par->fpWidth && par->fpHeight) {
		char buf[16];
		char buf[16];
+4 −17
Original line number Original line Diff line number Diff line
@@ -2052,24 +2052,11 @@ static int __devinit savagefb_probe (struct pci_dev* dev,
			     info->monspecs.modedb, info->monspecs.modedb_len,
			     info->monspecs.modedb, info->monspecs.modedb_len,
			     NULL, 8);
			     NULL, 8);
	} else if (info->monspecs.modedb != NULL) {
	} else if (info->monspecs.modedb != NULL) {
		struct fb_monspecs *specs = &info->monspecs;
		struct fb_videomode *modedb;
		struct fb_videomode modedb;


		if (info->monspecs.misc & FB_MISC_1ST_DETAIL) {
		modedb = fb_find_best_display(&info->monspecs,
			int i;
					      &info->modelist);

		savage_update_var(&info->var, modedb);
			for (i = 0; i < specs->modedb_len; i++) {
				if (specs->modedb[i].flag & FB_MODE_IS_FIRST) {
					modedb = specs->modedb[i];
					break;
				}
			}
		} else {
			/* otherwise, get first mode in database */
			modedb = specs->modedb[0];
		}

		savage_update_var(&info->var, &modedb);
	}
	}


	/* maximize virtual vertical length */
	/* maximize virtual vertical length */