diff options
-rw-r--r-- | drivers/video/console/fbcon.c | 4 | ||||
-rw-r--r-- | drivers/video/console/fbcon.h | 2 | ||||
-rw-r--r-- | drivers/video/fbsysfs.c | 2 | ||||
-rw-r--r-- | drivers/video/i810/i810_main.c | 4 | ||||
-rw-r--r-- | drivers/video/modedb.c | 33 | ||||
-rw-r--r-- | drivers/video/nvidia/nvidia.c | 8 | ||||
-rw-r--r-- | drivers/video/riva/fbdev.c | 5 | ||||
-rw-r--r-- | drivers/video/savage/savagefb_driver.c | 12 | ||||
-rw-r--r-- | include/linux/fb.h | 31 |
9 files changed, 52 insertions, 49 deletions
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index 31f476a64790..ce5ac268074e 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c | |||
@@ -2071,7 +2071,7 @@ static int fbcon_resize(struct vc_data *vc, unsigned int width, | |||
2071 | y_diff = info->var.yres - var.yres; | 2071 | y_diff = info->var.yres - var.yres; |
2072 | if (x_diff < 0 || x_diff > virt_fw || | 2072 | if (x_diff < 0 || x_diff > virt_fw || |
2073 | y_diff < 0 || y_diff > virt_fh) { | 2073 | y_diff < 0 || y_diff > virt_fh) { |
2074 | struct fb_videomode *mode; | 2074 | const struct fb_videomode *mode; |
2075 | 2075 | ||
2076 | DPRINTK("attempting resize %ix%i\n", var.xres, var.yres); | 2076 | DPRINTK("attempting resize %ix%i\n", var.xres, var.yres); |
2077 | mode = fb_find_best_mode(&var, &info->modelist); | 2077 | mode = fb_find_best_mode(&var, &info->modelist); |
@@ -2975,7 +2975,7 @@ static void fbcon_new_modelist(struct fb_info *info) | |||
2975 | int i; | 2975 | int i; |
2976 | struct vc_data *vc; | 2976 | struct vc_data *vc; |
2977 | struct fb_var_screeninfo var; | 2977 | struct fb_var_screeninfo var; |
2978 | struct fb_videomode *mode; | 2978 | const struct fb_videomode *mode; |
2979 | 2979 | ||
2980 | for (i = first_fb_vc; i <= last_fb_vc; i++) { | 2980 | for (i = first_fb_vc; i <= last_fb_vc; i++) { |
2981 | if (registered_fb[con2fb_map[i]] != info) | 2981 | if (registered_fb[con2fb_map[i]] != info) |
diff --git a/drivers/video/console/fbcon.h b/drivers/video/console/fbcon.h index b9386d168c04..71f24e00fcd0 100644 --- a/drivers/video/console/fbcon.h +++ b/drivers/video/console/fbcon.h | |||
@@ -48,7 +48,7 @@ struct display { | |||
48 | struct fb_bitfield green; | 48 | struct fb_bitfield green; |
49 | struct fb_bitfield blue; | 49 | struct fb_bitfield blue; |
50 | struct fb_bitfield transp; | 50 | struct fb_bitfield transp; |
51 | struct fb_videomode *mode; | 51 | const struct fb_videomode *mode; |
52 | }; | 52 | }; |
53 | 53 | ||
54 | struct fbcon_ops { | 54 | struct fbcon_ops { |
diff --git a/drivers/video/fbsysfs.c b/drivers/video/fbsysfs.c index 323bdf6fc7d5..818fb09105f9 100644 --- a/drivers/video/fbsysfs.c +++ b/drivers/video/fbsysfs.c | |||
@@ -175,7 +175,7 @@ static ssize_t store_modes(struct device *device, | |||
175 | 175 | ||
176 | acquire_console_sem(); | 176 | acquire_console_sem(); |
177 | list_splice(&fb_info->modelist, &old_list); | 177 | list_splice(&fb_info->modelist, &old_list); |
178 | fb_videomode_to_modelist((struct fb_videomode *)buf, i, | 178 | fb_videomode_to_modelist((const struct fb_videomode *)buf, i, |
179 | &fb_info->modelist); | 179 | &fb_info->modelist); |
180 | if (fb_new_modelist(fb_info)) { | 180 | if (fb_new_modelist(fb_info)) { |
181 | fb_destroy_modelist(&fb_info->modelist); | 181 | fb_destroy_modelist(&fb_info->modelist); |
diff --git a/drivers/video/i810/i810_main.c b/drivers/video/i810/i810_main.c index 29f89db428ce..ab1b8fe34d6d 100644 --- a/drivers/video/i810/i810_main.c +++ b/drivers/video/i810/i810_main.c | |||
@@ -1049,7 +1049,7 @@ static int i810_check_params(struct fb_var_screeninfo *var, | |||
1049 | mode_valid = 1; | 1049 | mode_valid = 1; |
1050 | 1050 | ||
1051 | if (!mode_valid && info->monspecs.modedb_len) { | 1051 | if (!mode_valid && info->monspecs.modedb_len) { |
1052 | struct fb_videomode *mode; | 1052 | const struct fb_videomode *mode; |
1053 | 1053 | ||
1054 | mode = fb_find_best_mode(var, &info->modelist); | 1054 | mode = fb_find_best_mode(var, &info->modelist); |
1055 | if (mode) { | 1055 | if (mode) { |
@@ -1924,7 +1924,7 @@ static void __devinit i810fb_find_init_mode(struct fb_info *info) | |||
1924 | fb_videomode_to_modelist(specs->modedb, specs->modedb_len, | 1924 | fb_videomode_to_modelist(specs->modedb, specs->modedb_len, |
1925 | &info->modelist); | 1925 | &info->modelist); |
1926 | if (specs->modedb != NULL) { | 1926 | if (specs->modedb != NULL) { |
1927 | struct fb_videomode *m; | 1927 | const struct fb_videomode *m; |
1928 | 1928 | ||
1929 | if (xres && yres) { | 1929 | if (xres && yres) { |
1930 | if ((m = fb_find_best_mode(&var, &info->modelist))) { | 1930 | if ((m = fb_find_best_mode(&var, &info->modelist))) { |
diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c index 53427a734d4b..61fc6cd25fc1 100644 --- a/drivers/video/modedb.c +++ b/drivers/video/modedb.c | |||
@@ -668,7 +668,7 @@ done: | |||
668 | * @var: pointer to struct fb_var_screeninfo | 668 | * @var: pointer to struct fb_var_screeninfo |
669 | */ | 669 | */ |
670 | void fb_var_to_videomode(struct fb_videomode *mode, | 670 | void fb_var_to_videomode(struct fb_videomode *mode, |
671 | struct fb_var_screeninfo *var) | 671 | const struct fb_var_screeninfo *var) |
672 | { | 672 | { |
673 | u32 pixclock, hfreq, htotal, vtotal; | 673 | u32 pixclock, hfreq, htotal, vtotal; |
674 | 674 | ||
@@ -712,7 +712,7 @@ void fb_var_to_videomode(struct fb_videomode *mode, | |||
712 | * @mode: pointer to struct fb_videomode | 712 | * @mode: pointer to struct fb_videomode |
713 | */ | 713 | */ |
714 | void fb_videomode_to_var(struct fb_var_screeninfo *var, | 714 | void fb_videomode_to_var(struct fb_var_screeninfo *var, |
715 | struct fb_videomode *mode) | 715 | const struct fb_videomode *mode) |
716 | { | 716 | { |
717 | var->xres = mode->xres; | 717 | var->xres = mode->xres; |
718 | var->yres = mode->yres; | 718 | var->yres = mode->yres; |
@@ -735,8 +735,8 @@ void fb_videomode_to_var(struct fb_var_screeninfo *var, | |||
735 | * RETURNS: | 735 | * RETURNS: |
736 | * 1 if equal, 0 if not | 736 | * 1 if equal, 0 if not |
737 | */ | 737 | */ |
738 | int fb_mode_is_equal(struct fb_videomode *mode1, | 738 | int fb_mode_is_equal(const struct fb_videomode *mode1, |
739 | struct fb_videomode *mode2) | 739 | const struct fb_videomode *mode2) |
740 | { | 740 | { |
741 | return (mode1->xres == mode2->xres && | 741 | return (mode1->xres == mode2->xres && |
742 | mode1->yres == mode2->yres && | 742 | mode1->yres == mode2->yres && |
@@ -768,8 +768,8 @@ int fb_mode_is_equal(struct fb_videomode *mode1, | |||
768 | * var->xres and var->yres. If more than 1 videomode is found, will return | 768 | * var->xres and var->yres. If more than 1 videomode is found, will return |
769 | * the videomode with the highest refresh rate | 769 | * the videomode with the highest refresh rate |
770 | */ | 770 | */ |
771 | struct fb_videomode *fb_find_best_mode(struct fb_var_screeninfo *var, | 771 | const struct fb_videomode *fb_find_best_mode(const struct fb_var_screeninfo *var, |
772 | struct list_head *head) | 772 | struct list_head *head) |
773 | { | 773 | { |
774 | struct list_head *pos; | 774 | struct list_head *pos; |
775 | struct fb_modelist *modelist; | 775 | struct fb_modelist *modelist; |
@@ -806,8 +806,8 @@ struct fb_videomode *fb_find_best_mode(struct fb_var_screeninfo *var, | |||
806 | * If more than 1 videomode is found, will return the videomode with | 806 | * If more than 1 videomode is found, will return the videomode with |
807 | * the closest refresh rate. | 807 | * the closest refresh rate. |
808 | */ | 808 | */ |
809 | struct fb_videomode *fb_find_nearest_mode(struct fb_videomode *mode, | 809 | const struct fb_videomode *fb_find_nearest_mode(const struct fb_videomode *mode, |
810 | struct list_head *head) | 810 | struct list_head *head) |
811 | { | 811 | { |
812 | struct list_head *pos; | 812 | struct list_head *pos; |
813 | struct fb_modelist *modelist; | 813 | struct fb_modelist *modelist; |
@@ -845,8 +845,8 @@ struct fb_videomode *fb_find_nearest_mode(struct fb_videomode *mode, | |||
845 | * RETURNS: | 845 | * RETURNS: |
846 | * struct fb_videomode, NULL if none found | 846 | * struct fb_videomode, NULL if none found |
847 | */ | 847 | */ |
848 | struct fb_videomode *fb_match_mode(struct fb_var_screeninfo *var, | 848 | const struct fb_videomode *fb_match_mode(const struct fb_var_screeninfo *var, |
849 | struct list_head *head) | 849 | struct list_head *head) |
850 | { | 850 | { |
851 | struct list_head *pos; | 851 | struct list_head *pos; |
852 | struct fb_modelist *modelist; | 852 | struct fb_modelist *modelist; |
@@ -870,7 +870,7 @@ struct fb_videomode *fb_match_mode(struct fb_var_screeninfo *var, | |||
870 | * NOTES: | 870 | * NOTES: |
871 | * Will only add unmatched mode entries | 871 | * Will only add unmatched mode entries |
872 | */ | 872 | */ |
873 | int fb_add_videomode(struct fb_videomode *mode, struct list_head *head) | 873 | int fb_add_videomode(const struct fb_videomode *mode, struct list_head *head) |
874 | { | 874 | { |
875 | struct list_head *pos; | 875 | struct list_head *pos; |
876 | struct fb_modelist *modelist; | 876 | struct fb_modelist *modelist; |
@@ -905,7 +905,8 @@ int fb_add_videomode(struct fb_videomode *mode, struct list_head *head) | |||
905 | * NOTES: | 905 | * NOTES: |
906 | * Will remove all matching mode entries | 906 | * Will remove all matching mode entries |
907 | */ | 907 | */ |
908 | void fb_delete_videomode(struct fb_videomode *mode, struct list_head *head) | 908 | void fb_delete_videomode(const struct fb_videomode *mode, |
909 | struct list_head *head) | ||
909 | { | 910 | { |
910 | struct list_head *pos, *n; | 911 | struct list_head *pos, *n; |
911 | struct fb_modelist *modelist; | 912 | struct fb_modelist *modelist; |
@@ -941,7 +942,7 @@ void fb_destroy_modelist(struct list_head *head) | |||
941 | * @num: number of entries in array | 942 | * @num: number of entries in array |
942 | * @head: struct list_head of modelist | 943 | * @head: struct list_head of modelist |
943 | */ | 944 | */ |
944 | void fb_videomode_to_modelist(struct fb_videomode *modedb, int num, | 945 | void fb_videomode_to_modelist(const struct fb_videomode *modedb, int num, |
945 | struct list_head *head) | 946 | struct list_head *head) |
946 | { | 947 | { |
947 | int i; | 948 | int i; |
@@ -954,12 +955,12 @@ void fb_videomode_to_modelist(struct fb_videomode *modedb, int num, | |||
954 | } | 955 | } |
955 | } | 956 | } |
956 | 957 | ||
957 | struct fb_videomode *fb_find_best_display(struct fb_monspecs *specs, | 958 | const struct fb_videomode *fb_find_best_display(const struct fb_monspecs *specs, |
958 | struct list_head *head) | 959 | struct list_head *head) |
959 | { | 960 | { |
960 | struct list_head *pos; | 961 | struct list_head *pos; |
961 | struct fb_modelist *modelist; | 962 | struct fb_modelist *modelist; |
962 | struct fb_videomode *m, *m1 = NULL, *md = NULL, *best = NULL; | 963 | const struct fb_videomode *m, *m1 = NULL, *md = NULL, *best = NULL; |
963 | int first = 0; | 964 | int first = 0; |
964 | 965 | ||
965 | if (!head->prev || !head->next || list_empty(head)) | 966 | if (!head->prev || !head->next || list_empty(head)) |
diff --git a/drivers/video/nvidia/nvidia.c b/drivers/video/nvidia/nvidia.c index 547374230179..8e5b484db649 100644 --- a/drivers/video/nvidia/nvidia.c +++ b/drivers/video/nvidia/nvidia.c | |||
@@ -829,7 +829,7 @@ static int nvidiafb_check_var(struct fb_var_screeninfo *var, | |||
829 | } | 829 | } |
830 | 830 | ||
831 | if (!mode_valid) { | 831 | if (!mode_valid) { |
832 | struct fb_videomode *mode; | 832 | const struct fb_videomode *mode; |
833 | 833 | ||
834 | mode = fb_find_best_mode(var, &info->modelist); | 834 | mode = fb_find_best_mode(var, &info->modelist); |
835 | if (mode) { | 835 | if (mode) { |
@@ -1046,10 +1046,10 @@ static int __devinit nvidia_set_fbinfo(struct fb_info *info) | |||
1046 | } | 1046 | } |
1047 | 1047 | ||
1048 | if (specs->modedb != NULL) { | 1048 | if (specs->modedb != NULL) { |
1049 | struct fb_videomode *modedb; | 1049 | const struct fb_videomode *mode; |
1050 | 1050 | ||
1051 | modedb = fb_find_best_display(specs, &info->modelist); | 1051 | mode = fb_find_best_display(specs, &info->modelist); |
1052 | fb_videomode_to_var(&nvidiafb_default_var, modedb); | 1052 | fb_videomode_to_var(&nvidiafb_default_var, mode); |
1053 | nvidiafb_default_var.bits_per_pixel = bpp; | 1053 | nvidiafb_default_var.bits_per_pixel = bpp; |
1054 | } else if (par->fpWidth && par->fpHeight) { | 1054 | } else if (par->fpWidth && par->fpHeight) { |
1055 | char buf[16]; | 1055 | char buf[16]; |
diff --git a/drivers/video/riva/fbdev.c b/drivers/video/riva/fbdev.c index 9316905e027a..f2e9b742c92f 100644 --- a/drivers/video/riva/fbdev.c +++ b/drivers/video/riva/fbdev.c | |||
@@ -894,7 +894,8 @@ out: | |||
894 | return rc; | 894 | return rc; |
895 | } | 895 | } |
896 | 896 | ||
897 | static void riva_update_var(struct fb_var_screeninfo *var, struct fb_videomode *modedb) | 897 | static void riva_update_var(struct fb_var_screeninfo *var, |
898 | const struct fb_videomode *modedb) | ||
898 | { | 899 | { |
899 | NVTRACE_ENTER(); | 900 | NVTRACE_ENTER(); |
900 | var->xres = var->xres_virtual = modedb->xres; | 901 | var->xres = var->xres_virtual = modedb->xres; |
@@ -1152,7 +1153,7 @@ static int rivafb_release(struct fb_info *info, int user) | |||
1152 | 1153 | ||
1153 | static int rivafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) | 1154 | static int rivafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) |
1154 | { | 1155 | { |
1155 | struct fb_videomode *mode; | 1156 | const struct fb_videomode *mode; |
1156 | struct riva_par *par = info->par; | 1157 | struct riva_par *par = info->par; |
1157 | int nom, den; /* translating from pixels->bytes */ | 1158 | int nom, den; /* translating from pixels->bytes */ |
1158 | int mode_valid = 0; | 1159 | int mode_valid = 0; |
diff --git a/drivers/video/savage/savagefb_driver.c b/drivers/video/savage/savagefb_driver.c index 82b3deaae02d..4afa30522fdb 100644 --- a/drivers/video/savage/savagefb_driver.c +++ b/drivers/video/savage/savagefb_driver.c | |||
@@ -833,7 +833,8 @@ static void savage_set_default_par(struct savagefb_par *par, | |||
833 | vga_out8(0x3d5, cr66, par); | 833 | vga_out8(0x3d5, cr66, par); |
834 | } | 834 | } |
835 | 835 | ||
836 | static void savage_update_var(struct fb_var_screeninfo *var, struct fb_videomode *modedb) | 836 | static void savage_update_var(struct fb_var_screeninfo *var, |
837 | const struct fb_videomode *modedb) | ||
837 | { | 838 | { |
838 | var->xres = var->xres_virtual = modedb->xres; | 839 | var->xres = var->xres_virtual = modedb->xres; |
839 | var->yres = modedb->yres; | 840 | var->yres = modedb->yres; |
@@ -902,7 +903,7 @@ static int savagefb_check_var(struct fb_var_screeninfo *var, | |||
902 | } | 903 | } |
903 | 904 | ||
904 | if (!mode_valid) { | 905 | if (!mode_valid) { |
905 | struct fb_videomode *mode; | 906 | const struct fb_videomode *mode; |
906 | 907 | ||
907 | mode = fb_find_best_mode(var, &info->modelist); | 908 | mode = fb_find_best_mode(var, &info->modelist); |
908 | if (mode) { | 909 | if (mode) { |
@@ -2206,11 +2207,10 @@ static int __devinit savagefb_probe(struct pci_dev* dev, | |||
2206 | info->monspecs.modedb, info->monspecs.modedb_len, | 2207 | info->monspecs.modedb, info->monspecs.modedb_len, |
2207 | NULL, 8); | 2208 | NULL, 8); |
2208 | } else if (info->monspecs.modedb != NULL) { | 2209 | } else if (info->monspecs.modedb != NULL) { |
2209 | struct fb_videomode *modedb; | 2210 | const struct fb_videomode *mode; |
2210 | 2211 | ||
2211 | modedb = fb_find_best_display(&info->monspecs, | 2212 | mode = fb_find_best_display(&info->monspecs, &info->modelist); |
2212 | &info->modelist); | 2213 | savage_update_var(&info->var, mode); |
2213 | savage_update_var(&info->var, modedb); | ||
2214 | } | 2214 | } |
2215 | 2215 | ||
2216 | /* maximize virtual vertical length */ | 2216 | /* maximize virtual vertical length */ |
diff --git a/include/linux/fb.h b/include/linux/fb.h index 9402dec393ac..a78e25683f82 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
@@ -952,25 +952,26 @@ extern unsigned char *fb_ddc_read(struct i2c_adapter *adapter); | |||
952 | /* drivers/video/modedb.c */ | 952 | /* drivers/video/modedb.c */ |
953 | #define VESA_MODEDB_SIZE 34 | 953 | #define VESA_MODEDB_SIZE 34 |
954 | extern void fb_var_to_videomode(struct fb_videomode *mode, | 954 | extern void fb_var_to_videomode(struct fb_videomode *mode, |
955 | struct fb_var_screeninfo *var); | 955 | const struct fb_var_screeninfo *var); |
956 | extern void fb_videomode_to_var(struct fb_var_screeninfo *var, | 956 | extern void fb_videomode_to_var(struct fb_var_screeninfo *var, |
957 | struct fb_videomode *mode); | 957 | const struct fb_videomode *mode); |
958 | extern int fb_mode_is_equal(struct fb_videomode *mode1, | 958 | extern int fb_mode_is_equal(const struct fb_videomode *mode1, |
959 | struct fb_videomode *mode2); | 959 | const struct fb_videomode *mode2); |
960 | extern int fb_add_videomode(struct fb_videomode *mode, struct list_head *head); | 960 | extern int fb_add_videomode(const struct fb_videomode *mode, |
961 | extern void fb_delete_videomode(struct fb_videomode *mode, | 961 | struct list_head *head); |
962 | extern void fb_delete_videomode(const struct fb_videomode *mode, | ||
962 | struct list_head *head); | 963 | struct list_head *head); |
963 | extern struct fb_videomode *fb_match_mode(struct fb_var_screeninfo *var, | 964 | extern const struct fb_videomode *fb_match_mode(const struct fb_var_screeninfo *var, |
964 | struct list_head *head); | 965 | struct list_head *head); |
965 | extern struct fb_videomode *fb_find_best_mode(struct fb_var_screeninfo *var, | 966 | extern const struct fb_videomode *fb_find_best_mode(const struct fb_var_screeninfo *var, |
966 | struct list_head *head); | 967 | struct list_head *head); |
967 | extern struct fb_videomode *fb_find_nearest_mode(struct fb_videomode *mode, | 968 | extern const struct fb_videomode *fb_find_nearest_mode(const struct fb_videomode *mode, |
968 | struct list_head *head); | 969 | struct list_head *head); |
969 | extern void fb_destroy_modelist(struct list_head *head); | 970 | extern void fb_destroy_modelist(struct list_head *head); |
970 | extern void fb_videomode_to_modelist(struct fb_videomode *modedb, int num, | 971 | extern void fb_videomode_to_modelist(const struct fb_videomode *modedb, int num, |
971 | struct list_head *head); | 972 | struct list_head *head); |
972 | extern struct fb_videomode *fb_find_best_display(struct fb_monspecs *specs, | 973 | extern const struct fb_videomode *fb_find_best_display(const struct fb_monspecs *specs, |
973 | struct list_head *head); | 974 | struct list_head *head); |
974 | 975 | ||
975 | /* drivers/video/fbcmap.c */ | 976 | /* drivers/video/fbcmap.c */ |
976 | extern int fb_alloc_cmap(struct fb_cmap *cmap, int len, int transp); | 977 | extern int fb_alloc_cmap(struct fb_cmap *cmap, int len, int transp); |