Lines Matching refs:mode

2  *  linux/drivers/video/modedb.c -- Standard video mode database management
34 * Standard video mode definitions (taken from XFree86)
536 * fb_try_mode - test a video mode
539 * @mode: frame buffer video mode structure
542 * Tries a video mode to test it's validity for device @info.
549 const struct fb_videomode *mode, unsigned int bpp)
553 DPRINTK("Trying mode %s %dx%d-%d@%d\n",
554 mode->name ? mode->name : "noname",
555 mode->xres, mode->yres, bpp, mode->refresh);
556 var->xres = mode->xres;
557 var->yres = mode->yres;
558 var->xres_virtual = mode->xres;
559 var->yres_virtual = mode->yres;
564 var->pixclock = mode->pixclock;
565 var->left_margin = mode->left_margin;
566 var->right_margin = mode->right_margin;
567 var->upper_margin = mode->upper_margin;
568 var->lower_margin = mode->lower_margin;
569 var->hsync_len = mode->hsync_len;
570 var->vsync_len = mode->vsync_len;
571 var->sync = mode->sync;
572 var->vmode = mode->vmode;
580 * fb_find_mode - finds a valid video mode
583 * @mode_option: string video mode to find
584 * @db: video mode database
586 * @default_mode: default video mode to fall back to
589 * Finds a suitable video mode, starting with the specified mode
591 * @default_mode fails, all modes in the video mode database will
594 * Valid mode specifiers for @mode_option::
609 * interlaced or progressive mode. If 'm' is present, add margins equal
620 * 3 if default mode is used, 4 if fall back to any valid mode.
644 /* Did the user specify a video mode? */
732 DPRINTK("CVT mode %dx%d@%dHz%s%s%s\n", xres, yres,
751 DPRINTK("modedb CVT: CVT mode ok\n");
755 DPRINTK("CVT mode invalid, getting mode from database\n");
758 DPRINTK("Trying specified video mode%s %ix%i\n",
764 * If the caller has provided a custom mode database and
765 * a valid monspecs structure, we look for the mode with
767 * it and try to find a mode with a refresh rate closest
838 DPRINTK("Trying default video mode\n");
847 DPRINTK("No valid mode found\n");
853 * @mode: pointer to struct fb_videomode
856 void fb_var_to_videomode(struct fb_videomode *mode,
861 mode->name = NULL;
862 mode->xres = var->xres;
863 mode->yres = var->yres;
864 mode->pixclock = var->pixclock;
865 mode->hsync_len = var->hsync_len;
866 mode->vsync_len = var->vsync_len;
867 mode->left_margin = var->left_margin;
868 mode->right_margin = var->right_margin;
869 mode->upper_margin = var->upper_margin;
870 mode->lower_margin = var->lower_margin;
871 mode->sync = var->sync;
872 mode->vmode = var->vmode & FB_VMODE_MASK;
873 mode->flag = FB_MODE_IS_FROM_VAR;
874 mode->refresh = 0;
895 mode->refresh = hfreq/vtotal;
901 * @mode: pointer to struct fb_videomode
904 const struct fb_videomode *mode)
906 var->xres = mode->xres;
907 var->yres = mode->yres;
908 var->xres_virtual = mode->xres;
909 var->yres_virtual = mode->yres;
912 var->pixclock = mode->pixclock;
913 var->left_margin = mode->left_margin;
914 var->right_margin = mode->right_margin;
915 var->upper_margin = mode->upper_margin;
916 var->lower_margin = mode->lower_margin;
917 var->hsync_len = mode->hsync_len;
918 var->vsync_len = mode->vsync_len;
919 var->sync = mode->sync;
920 var->vmode = mode->vmode & FB_VMODE_MASK;
968 struct fb_videomode *mode, *best = NULL;
973 mode = &modelist->mode;
975 if (mode->xres >= var->xres && mode->yres >= var->yres) {
976 d = (mode->xres - var->xres) +
977 (mode->yres - var->yres);
980 best = mode;
982 mode->refresh > best->refresh)
983 best = mode;
992 * @mode: pointer to struct fb_videomode
999 const struct fb_videomode *fb_find_nearest_mode(const struct fb_videomode *mode,
1008 cmode = &modelist->mode;
1010 d = abs(cmode->xres - mode->xres) +
1011 abs(cmode->yres - mode->yres);
1014 diff_refresh = abs(cmode->refresh - mode->refresh);
1017 d = abs(cmode->refresh - mode->refresh);
1040 struct fb_videomode *m, mode;
1042 fb_var_to_videomode(&mode, var);
1044 m = &modelist->mode;
1045 if (fb_mode_is_equal(m, &mode))
1053 * @mode: videomode to add
1057 * Will only add unmatched mode entries
1059 int fb_add_videomode(const struct fb_videomode *mode, struct list_head *head)
1066 m = &modelist->mode;
1067 if (fb_mode_is_equal(m, mode)) {
1078 modelist->mode = *mode;
1086 * @mode: videomode to remove
1090 * Will remove all matching mode entries
1092 void fb_delete_videomode(const struct fb_videomode *mode,
1101 m = &modelist->mode;
1102 if (fb_mode_is_equal(m, mode)) {
1125 * fb_videomode_to_modelist - convert mode array to mode list
1153 /* get the first detailed mode and the very first mode */
1155 m = &modelist->mode;
1174 /* find best mode based on display width and height */
1188 /* use first detailed mode */
1194 /* last resort, use the very first mode */