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

Collapse All | Expand All

(-)3.6_kernel.4200_fbcondecor-0.9.6.patch (-58 / +61 lines)
Lines 228-235 Link Here
228
index 95952c8..b55db6d 100644
228
index 95952c8..b55db6d 100644
229
--- a/drivers/Makefile
229
--- a/drivers/Makefile
230
+++ b/drivers/Makefile
230
+++ b/drivers/Makefile
231
@@ -11,6 +11,10 @@ obj-y				+= gpio/
231
@@ -16,4 +16,8 @@ obj-$(CONFIG_PCI)		+= pci/
232
 obj-$(CONFIG_PCI)		+= pci/
233
 obj-$(CONFIG_PARISC)		+= parisc/
232
 obj-$(CONFIG_PARISC)		+= parisc/
234
 obj-$(CONFIG_RAPIDIO)		+= rapidio/
233
 obj-$(CONFIG_RAPIDIO)		+= rapidio/
235
+# tty/ comes before char/ so that the VT console is the boot-time
234
+# tty/ comes before char/ so that the VT console is the boot-time
Lines 238-245 Link Here
238
+obj-y				+= char/
237
+obj-y				+= char/
239
 obj-y				+= video/
238
 obj-y				+= video/
240
 obj-y				+= idle/
239
 obj-y				+= idle/
241
 obj-$(CONFIG_ACPI)		+= acpi/
240
@@ -37,11 +41,6 @@ obj-$(CONFIG_XEN)		+= xen/
242
@@ -29,11 +33,6 @@ obj-$(CONFIG_XEN)		+= xen/
243
 # regulators early, since some subsystems rely on them to initialize
241
 # regulators early, since some subsystems rely on them to initialize
244
 obj-$(CONFIG_REGULATOR)		+= regulator/
242
 obj-$(CONFIG_REGULATOR)		+= regulator/
245
 
243
 
Lines 255-261 Link Here
255
index a290be5..3a4ca32 100644
253
index a290be5..3a4ca32 100644
256
--- a/drivers/video/Kconfig
254
--- a/drivers/video/Kconfig
257
+++ b/drivers/video/Kconfig
255
+++ b/drivers/video/Kconfig
258
@@ -1241,7 +1241,6 @@ config FB_MATROX
256
@@ -1229,7 +1229,6 @@ config FB_MATROX
259
 	select FB_CFB_FILLRECT
257
 	select FB_CFB_FILLRECT
260
 	select FB_CFB_COPYAREA
258
 	select FB_CFB_COPYAREA
261
 	select FB_CFB_IMAGEBLIT
259
 	select FB_CFB_IMAGEBLIT
Lines 870-876 Link Here
870
 	      u16 c, int is_fg)
868
 	      u16 c, int is_fg)
871
 {
869
 {
872
 	int depth = fb_get_color_depth(&info->var, &info->fix);
870
 	int depth = fb_get_color_depth(&info->var, &info->fix);
873
@@ -458,7 +459,7 @@ static int __init fb_console_setup(char *this_opt)
871
@@ -465,7 +466,7 @@ static int __init fb_console_setup(char *this_opt)
874
 			} else
872
 			} else
875
 				return 1;
873
 				return 1;
876
 		}
874
 		}
Lines 879-885 Link Here
879
 		if (!strncmp(options, "map:", 4)) {
877
 		if (!strncmp(options, "map:", 4)) {
880
 			options += 4;
878
 			options += 4;
881
 			if (*options) {
879
 			if (*options) {
882
@@ -483,8 +484,8 @@ static int __init fb_console_setup(char *this_opt)
880
@@ -490,8 +491,8 @@ static int __init fb_console_setup(char *this_opt)
883
 				first_fb_vc = 0;
881
 				first_fb_vc = 0;
884
 			if (*options++ == '-')
882
 			if (*options++ == '-')
885
 				last_fb_vc = simple_strtoul(options, &options, 10) - 1;
883
 				last_fb_vc = simple_strtoul(options, &options, 10) - 1;
Lines 890-896 Link Here
890
 
888
 
891
 		if (!strncmp(options, "rotate:", 7)) {
889
 		if (!strncmp(options, "rotate:", 7)) {
892
 			options += 7;
890
 			options += 7;
893
@@ -545,6 +546,9 @@ static int fbcon_takeover(int show_logo)
891
@@ -552,6 +553,9 @@ static int fbcon_takeover(int show_logo)
894
 		info_idx = -1;
892
 		info_idx = -1;
895
 	} else {
893
 	} else {
896
 		fbcon_has_console_bind = 1;
894
 		fbcon_has_console_bind = 1;
Lines 900-906 Link Here
900
 	}
898
 	}
901
 
899
 
902
 	return err;
900
 	return err;
903
@@ -935,7 +939,7 @@ static const char *fbcon_startup(void)
901
@@ -942,7 +946,7 @@ static const char *fbcon_startup(void)
904
 	info = registered_fb[info_idx];
902
 	info = registered_fb[info_idx];
905
 	if (!info)
903
 	if (!info)
906
 		return NULL;
904
 		return NULL;
Lines 909-915 Link Here
909
 	owner = info->fbops->owner;
907
 	owner = info->fbops->owner;
910
 	if (!try_module_get(owner))
908
 	if (!try_module_get(owner))
911
 		return NULL;
909
 		return NULL;
912
@@ -999,6 +1003,12 @@ static const char *fbcon_startup(void)
910
@@ -1006,6 +1010,12 @@ static const char *fbcon_startup(void)
913
 	rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
911
 	rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
914
 	cols /= vc->vc_font.width;
912
 	cols /= vc->vc_font.width;
915
 	rows /= vc->vc_font.height;
913
 	rows /= vc->vc_font.height;
Lines 922-928 Link Here
922
 	vc_resize(vc, cols, rows);
920
 	vc_resize(vc, cols, rows);
923
 
921
 
924
 	DPRINTK("mode:   %s\n", info->fix.id);
922
 	DPRINTK("mode:   %s\n", info->fix.id);
925
@@ -1028,7 +1038,7 @@ static void fbcon_init(struct vc_data *vc, int init)
923
@@ -1035,7 +1045,7 @@ static void fbcon_init(struct vc_data *vc, int init)
926
 	cap = info->flags;
924
 	cap = info->flags;
927
 
925
 
928
 	if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW ||
926
 	if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW ||
Lines 931-937 Link Here
931
 		logo = 0;
929
 		logo = 0;
932
 
930
 
933
 	if (var_to_display(p, &info->var, info))
931
 	if (var_to_display(p, &info->var, info))
934
@@ -1238,6 +1248,11 @@ static void fbcon_clear(struct vc_data *vc, int sy, int sx, int height,
932
@@ -1245,6 +1255,11 @@ static void fbcon_clear(struct vc_data *vc, int sy, int sx, int height,
935
 	if (sy < vc->vc_top && vc->vc_top == logo_lines)
933
 	if (sy < vc->vc_top && vc->vc_top == logo_lines)
936
 		vc->vc_top = 0;
934
 		vc->vc_top = 0;
937
 
935
 
Lines 943-949 Link Here
943
 	/* Split blits that cross physical y_wrap boundary */
941
 	/* Split blits that cross physical y_wrap boundary */
944
 
942
 
945
 	y_break = p->vrows - p->yscroll;
943
 	y_break = p->vrows - p->yscroll;
946
@@ -1257,10 +1272,15 @@ static void fbcon_putcs(struct vc_data *vc, const unsigned short *s,
944
@@ -1264,10 +1279,15 @@ static void fbcon_putcs(struct vc_data *vc, const unsigned short *s,
947
 	struct display *p = &fb_display[vc->vc_num];
945
 	struct display *p = &fb_display[vc->vc_num];
948
 	struct fbcon_ops *ops = info->fbcon_par;
946
 	struct fbcon_ops *ops = info->fbcon_par;
949
 
947
 
Lines 963-969 Link Here
963
 }
961
 }
964
 
962
 
965
 static void fbcon_putc(struct vc_data *vc, int c, int ypos, int xpos)
963
 static void fbcon_putc(struct vc_data *vc, int c, int ypos, int xpos)
966
@@ -1276,8 +1296,13 @@ static void fbcon_clear_margins(struct vc_data *vc, int bottom_only)
964
@@ -1283,8 +1303,13 @@ static void fbcon_clear_margins(struct vc_data *vc, int bottom_only)
967
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
965
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
968
 	struct fbcon_ops *ops = info->fbcon_par;
966
 	struct fbcon_ops *ops = info->fbcon_par;
969
 
967
 
Lines 979-985 Link Here
979
 }
977
 }
980
 
978
 
981
 static void fbcon_cursor(struct vc_data *vc, int mode)
979
 static void fbcon_cursor(struct vc_data *vc, int mode)
982
@@ -1387,7 +1412,7 @@ static __inline__ void ywrap_up(struct vc_data *vc, int count)
980
@@ -1394,7 +1419,7 @@ static __inline__ void ywrap_up(struct vc_data *vc, int count)
983
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
981
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
984
 	struct fbcon_ops *ops = info->fbcon_par;
982
 	struct fbcon_ops *ops = info->fbcon_par;
985
 	struct display *p = &fb_display[vc->vc_num];
983
 	struct display *p = &fb_display[vc->vc_num];
Lines 988-994 Link Here
988
 	p->yscroll += count;
986
 	p->yscroll += count;
989
 	if (p->yscroll >= p->vrows)	/* Deal with wrap */
987
 	if (p->yscroll >= p->vrows)	/* Deal with wrap */
990
 		p->yscroll -= p->vrows;
988
 		p->yscroll -= p->vrows;
991
@@ -1406,7 +1431,7 @@ static __inline__ void ywrap_down(struct vc_data *vc, int count)
989
@@ -1413,7 +1438,7 @@ static __inline__ void ywrap_down(struct vc_data *vc, int count)
992
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
990
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
993
 	struct fbcon_ops *ops = info->fbcon_par;
991
 	struct fbcon_ops *ops = info->fbcon_par;
994
 	struct display *p = &fb_display[vc->vc_num];
992
 	struct display *p = &fb_display[vc->vc_num];
Lines 997-1003 Link Here
997
 	p->yscroll -= count;
995
 	p->yscroll -= count;
998
 	if (p->yscroll < 0)	/* Deal with wrap */
996
 	if (p->yscroll < 0)	/* Deal with wrap */
999
 		p->yscroll += p->vrows;
997
 		p->yscroll += p->vrows;
1000
@@ -1473,7 +1498,7 @@ static __inline__ void ypan_down(struct vc_data *vc, int count)
998
@@ -1480,7 +1505,7 @@ static __inline__ void ypan_down(struct vc_data *vc, int count)
1001
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
999
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
1002
 	struct display *p = &fb_display[vc->vc_num];
1000
 	struct display *p = &fb_display[vc->vc_num];
1003
 	struct fbcon_ops *ops = info->fbcon_par;
1001
 	struct fbcon_ops *ops = info->fbcon_par;
Lines 1006-1012 Link Here
1006
 	p->yscroll -= count;
1004
 	p->yscroll -= count;
1007
 	if (p->yscroll < 0) {
1005
 	if (p->yscroll < 0) {
1008
 		ops->bmove(vc, info, 0, 0, p->vrows - vc->vc_rows,
1006
 		ops->bmove(vc, info, 0, 0, p->vrows - vc->vc_rows,
1009
@@ -1797,7 +1822,7 @@ static int fbcon_scroll(struct vc_data *vc, int t, int b, int dir,
1007
@@ -1804,7 +1829,7 @@ static int fbcon_scroll(struct vc_data *vc, int t, int b, int dir,
1010
 			count = vc->vc_rows;
1008
 			count = vc->vc_rows;
1011
 		if (softback_top)
1009
 		if (softback_top)
1012
 			fbcon_softback_note(vc, t, count);
1010
 			fbcon_softback_note(vc, t, count);
Lines 1015-1021 Link Here
1015
 			goto redraw_up;
1013
 			goto redraw_up;
1016
 		switch (p->scrollmode) {
1014
 		switch (p->scrollmode) {
1017
 		case SCROLL_MOVE:
1015
 		case SCROLL_MOVE:
1018
@@ -1890,6 +1915,8 @@ static int fbcon_scroll(struct vc_data *vc, int t, int b, int dir,
1016
@@ -1897,6 +1922,8 @@ static int fbcon_scroll(struct vc_data *vc, int t, int b, int dir,
1019
 			count = vc->vc_rows;
1017
 			count = vc->vc_rows;
1020
 		if (logo_shown >= 0)
1018
 		if (logo_shown >= 0)
1021
 			goto redraw_down;
1019
 			goto redraw_down;
Lines 1024-1030 Link Here
1024
 		switch (p->scrollmode) {
1022
 		switch (p->scrollmode) {
1025
 		case SCROLL_MOVE:
1023
 		case SCROLL_MOVE:
1026
 			fbcon_redraw_blit(vc, info, p, b - 1, b - t - count,
1024
 			fbcon_redraw_blit(vc, info, p, b - 1, b - t - count,
1027
@@ -1982,7 +2009,7 @@ static void fbcon_bmove(struct vc_data *vc, int sy, int sx, int dy, int dx,
1025
@@ -1989,7 +2016,7 @@ static void fbcon_bmove(struct vc_data *vc, int sy, int sx, int dy, int dx,
1028
 {
1026
 {
1029
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
1027
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
1030
 	struct display *p = &fb_display[vc->vc_num];
1028
 	struct display *p = &fb_display[vc->vc_num];
Lines 1033-1039 Link Here
1033
 	if (fbcon_is_inactive(vc, info))
1031
 	if (fbcon_is_inactive(vc, info))
1034
 		return;
1032
 		return;
1035
 
1033
 
1036
@@ -2000,7 +2027,7 @@ static void fbcon_bmove(struct vc_data *vc, int sy, int sx, int dy, int dx,
1034
@@ -2007,7 +2034,7 @@ static void fbcon_bmove(struct vc_data *vc, int sy, int sx, int dy, int dx,
1037
 			p->vrows - p->yscroll);
1035
 			p->vrows - p->yscroll);
1038
 }
1036
 }
1039
 
1037
 
Lines 1042-1048 Link Here
1042
 			    int dy, int dx, int height, int width, u_int y_break)
1040
 			    int dy, int dx, int height, int width, u_int y_break)
1043
 {
1041
 {
1044
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
1042
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
1045
@@ -2038,6 +2065,13 @@ static void fbcon_bmove_rec(struct vc_data *vc, struct display *p, int sy, int s
1043
@@ -2045,6 +2072,13 @@ static void fbcon_bmove_rec(struct vc_data *vc, struct display *p, int sy, int s
1046
 		}
1044
 		}
1047
 		return;
1045
 		return;
1048
 	}
1046
 	}
Lines 1056-1062 Link Here
1056
 	ops->bmove(vc, info, real_y(p, sy), sx, real_y(p, dy), dx,
1054
 	ops->bmove(vc, info, real_y(p, sy), sx, real_y(p, dy), dx,
1057
 		   height, width);
1055
 		   height, width);
1058
 }
1056
 }
1059
@@ -2089,7 +2123,7 @@ static void updatescrollmode(struct display *p,
1057
@@ -2096,7 +2130,7 @@ static void updatescrollmode(struct display *p,
1060
 	}
1058
 	}
1061
 }
1059
 }
1062
 
1060
 
Lines 1065-1071 Link Here
1065
 			unsigned int height, unsigned int user)
1063
 			unsigned int height, unsigned int user)
1066
 {
1064
 {
1067
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
1065
 	struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
1068
@@ -2108,8 +2142,8 @@ static int fbcon_resize(struct vc_data *vc, unsigned int width,
1066
@@ -2115,8 +2149,8 @@ static int fbcon_resize(struct vc_data *vc, unsigned int width,
1069
 	var.yres = virt_h * virt_fh;
1067
 	var.yres = virt_h * virt_fh;
1070
 	x_diff = info->var.xres - var.xres;
1068
 	x_diff = info->var.xres - var.xres;
1071
 	y_diff = info->var.yres - var.yres;
1069
 	y_diff = info->var.yres - var.yres;
Lines 1076-1082 Link Here
1076
 		const struct fb_videomode *mode;
1074
 		const struct fb_videomode *mode;
1077
 
1075
 
1078
 		DPRINTK("attempting resize %ix%i\n", var.xres, var.yres);
1076
 		DPRINTK("attempting resize %ix%i\n", var.xres, var.yres);
1079
@@ -2145,6 +2179,21 @@ static int fbcon_switch(struct vc_data *vc)
1077
@@ -2152,6 +2186,21 @@ static int fbcon_switch(struct vc_data *vc)
1080
 
1078
 
1081
 	info = registered_fb[con2fb_map[vc->vc_num]];
1079
 	info = registered_fb[con2fb_map[vc->vc_num]];
1082
 	ops = info->fbcon_par;
1080
 	ops = info->fbcon_par;
Lines 1098-1104 Link Here
1098
 
1096
 
1099
 	if (softback_top) {
1097
 	if (softback_top) {
1100
 		if (softback_lines)
1098
 		if (softback_lines)
1101
@@ -2163,9 +2212,6 @@ static int fbcon_switch(struct vc_data *vc)
1099
@@ -2170,9 +2219,6 @@ static int fbcon_switch(struct vc_data *vc)
1102
 		logo_shown = FBCON_LOGO_CANSHOW;
1100
 		logo_shown = FBCON_LOGO_CANSHOW;
1103
 	}
1101
 	}
1104
 
1102
 
Lines 1108-1114 Link Here
1108
 	/*
1106
 	/*
1109
 	 * FIXME: If we have multiple fbdev's loaded, we need to
1107
 	 * FIXME: If we have multiple fbdev's loaded, we need to
1110
 	 * update all info->currcon.  Perhaps, we can place this
1108
 	 * update all info->currcon.  Perhaps, we can place this
1111
@@ -2209,6 +2255,18 @@ static int fbcon_switch(struct vc_data *vc)
1109
@@ -2216,6 +2262,18 @@ static int fbcon_switch(struct vc_data *vc)
1112
 			fbcon_del_cursor_timer(old_info);
1110
 			fbcon_del_cursor_timer(old_info);
1113
 	}
1111
 	}
1114
 
1112
 
Lines 1127-1133 Link Here
1127
 	if (fbcon_is_inactive(vc, info) ||
1125
 	if (fbcon_is_inactive(vc, info) ||
1128
 	    ops->blank_state != FB_BLANK_UNBLANK)
1126
 	    ops->blank_state != FB_BLANK_UNBLANK)
1129
 		fbcon_del_cursor_timer(info);
1127
 		fbcon_del_cursor_timer(info);
1130
@@ -2257,11 +2315,10 @@ static int fbcon_switch(struct vc_data *vc)
1128
@@ -2264,11 +2322,10 @@ static int fbcon_switch(struct vc_data *vc)
1131
 	    ops->update_start(info);
1129
 	    ops->update_start(info);
1132
 	}
1130
 	}
1133
 
1131
 
Lines 1140-1146 Link Here
1140
 		logo_shown = fg_console;
1138
 		logo_shown = fg_console;
1141
 		/* This is protected above by initmem_freed */
1139
 		/* This is protected above by initmem_freed */
1142
 		fb_show_logo(info, ops->rotate);
1140
 		fb_show_logo(info, ops->rotate);
1143
@@ -2317,15 +2374,20 @@ static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch)
1141
@@ -2324,15 +2381,20 @@ static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch)
1144
 		}
1142
 		}
1145
 	}
1143
 	}
1146
 
1144
 
Lines 1165-1171 Link Here
1165
 		}
1163
 		}
1166
 
1164
 
1167
 		if (!blank)
1165
 		if (!blank)
1168
@@ -2447,7 +2509,7 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
1166
@@ -2454,7 +2516,7 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
1169
 			vc->vc_complement_mask >>= 1;
1167
 			vc->vc_complement_mask >>= 1;
1170
 			vc->vc_s_complement_mask >>= 1;
1168
 			vc->vc_s_complement_mask >>= 1;
1171
 		}
1169
 		}
Lines 1174-1180 Link Here
1174
 		/* ++Edmund: reorder the attribute bits */
1172
 		/* ++Edmund: reorder the attribute bits */
1175
 		if (vc->vc_can_do_color) {
1173
 		if (vc->vc_can_do_color) {
1176
 			unsigned short *cp =
1174
 			unsigned short *cp =
1177
@@ -2470,7 +2532,7 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
1175
@@ -2477,7 +2539,7 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
1178
 			vc->vc_complement_mask <<= 1;
1176
 			vc->vc_complement_mask <<= 1;
1179
 			vc->vc_s_complement_mask <<= 1;
1177
 			vc->vc_s_complement_mask <<= 1;
1180
 		}
1178
 		}
Lines 1183-1189 Link Here
1183
 		/* ++Edmund: reorder the attribute bits */
1181
 		/* ++Edmund: reorder the attribute bits */
1184
 		{
1182
 		{
1185
 			unsigned short *cp =
1183
 			unsigned short *cp =
1186
@@ -2500,13 +2562,22 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
1184
@@ -2507,13 +2569,22 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
1187
 	}
1185
 	}
1188
 
1186
 
1189
 	if (resize) {
1187
 	if (resize) {
Lines 1206-1212 Link Here
1206
 		if (CON_IS_VISIBLE(vc) && softback_buf)
1204
 		if (CON_IS_VISIBLE(vc) && softback_buf)
1207
 			fbcon_update_softback(vc);
1205
 			fbcon_update_softback(vc);
1208
 	} else if (CON_IS_VISIBLE(vc)
1206
 	} else if (CON_IS_VISIBLE(vc)
1209
@@ -2590,7 +2661,7 @@ static int fbcon_set_font(struct vc_data *vc, struct console_font *font, unsigne
1207
@@ -2597,7 +2661,7 @@ static int fbcon_set_font(struct vc_data *vc, struct console_font *font, unsigne
1210
 	/* Check if the same font is on some other console already */
1208
 	/* Check if the same font is on some other console already */
1211
 	for (i = first_fb_vc; i <= last_fb_vc; i++) {
1209
 	for (i = first_fb_vc; i <= last_fb_vc; i++) {
1212
 		struct vc_data *tmp = vc_cons[i].d;
1210
 		struct vc_data *tmp = vc_cons[i].d;
Lines 1215-1221 Link Here
1215
 		if (fb_display[i].userfont &&
1213
 		if (fb_display[i].userfont &&
1216
 		    fb_display[i].fontdata &&
1214
 		    fb_display[i].fontdata &&
1217
 		    FNTSUM(fb_display[i].fontdata) == csum &&
1215
 		    FNTSUM(fb_display[i].fontdata) == csum &&
1218
@@ -2635,7 +2706,11 @@ static int fbcon_set_palette(struct vc_data *vc, unsigned char *table)
1216
@@ -2642,7 +2713,11 @@ static int fbcon_set_palette(struct vc_data *vc, unsigned char *table)
1219
 	int i, j, k, depth;
1217
 	int i, j, k, depth;
1220
 	u8 val;
1218
 	u8 val;
1221
 
1219
 
Lines 1228-1234 Link Here
1228
 		return -EINVAL;
1226
 		return -EINVAL;
1229
 
1227
 
1230
 	if (!CON_IS_VISIBLE(vc))
1228
 	if (!CON_IS_VISIBLE(vc))
1231
@@ -2661,14 +2736,56 @@ static int fbcon_set_palette(struct vc_data *vc, unsigned char *table)
1229
@@ -2668,14 +2743,56 @@ static int fbcon_set_palette(struct vc_data *vc, unsigned char *table)
1232
 	} else
1230
 	} else
1233
 		fb_copy_cmap(fb_default_cmap(1 << depth), &palette_cmap);
1231
 		fb_copy_cmap(fb_default_cmap(1 << depth), &palette_cmap);
1234
 
1232
 
Lines 1287-1293 Link Here
1287
 	if (vc->vc_num != fg_console || !softback_lines)
1285
 	if (vc->vc_num != fg_console || !softback_lines)
1288
 		return (u16 *) (vc->vc_origin + offset);
1286
 		return (u16 *) (vc->vc_origin + offset);
1289
 	line = offset / vc->vc_size_row;
1287
 	line = offset / vc->vc_size_row;
1290
@@ -2887,7 +3004,14 @@ static void fbcon_modechanged(struct fb_info *info)
1288
@@ -2894,7 +3011,14 @@ static void fbcon_modechanged(struct fb_info *info)
1291
 		rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
1289
 		rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
1292
 		cols /= vc->vc_font.width;
1290
 		cols /= vc->vc_font.width;
1293
 		rows /= vc->vc_font.height;
1291
 		rows /= vc->vc_font.height;
Lines 1303-1309 Link Here
1303
 		updatescrollmode(p, info, vc);
1301
 		updatescrollmode(p, info, vc);
1304
 		scrollback_max = 0;
1302
 		scrollback_max = 0;
1305
 		scrollback_current = 0;
1303
 		scrollback_current = 0;
1306
@@ -2932,7 +3056,9 @@ static void fbcon_set_all_vcs(struct fb_info *info)
1304
@@ -2939,7 +3063,9 @@ static void fbcon_set_all_vcs(struct fb_info *info)
1307
 		rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
1305
 		rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres);
1308
 		cols /= vc->vc_font.width;
1306
 		cols /= vc->vc_font.width;
1309
 		rows /= vc->vc_font.height;
1307
 		rows /= vc->vc_font.height;
Lines 1314-1320 Link Here
1314
 	}
1312
 	}
1315
 
1313
 
1316
 	if (fg != -1)
1314
 	if (fg != -1)
1317
@@ -3542,6 +3668,7 @@ static void fbcon_exit(void)
1315
@@ -3549,6 +3675,7 @@ static void fbcon_exit(void)
1318
 		}
1316
 		}
1319
 	}
1317
 	}
1320
 
1318
 
Lines 1322-1328 Link Here
1322
 	fbcon_has_exited = 1;
1320
 	fbcon_has_exited = 1;
1323
 }
1321
 }
1324
 
1322
 
1325
@@ -3595,7 +3722,7 @@ static void __exit fb_console_exit(void)
1323
@@ -3602,7 +3729,7 @@ static void __exit fb_console_exit(void)
1326
 	fbcon_exit();
1324
 	fbcon_exit();
1327
 	console_unlock();
1325
 	console_unlock();
1328
 	unregister_con_driver(&fb_con);
1326
 	unregister_con_driver(&fb_con);
Lines 2014-2020 Link Here
2014
index c6ce416..7ce6640 100644
2012
index c6ce416..7ce6640 100644
2015
--- a/drivers/video/fbmem.c
2013
--- a/drivers/video/fbmem.c
2016
+++ b/drivers/video/fbmem.c
2014
+++ b/drivers/video/fbmem.c
2017
@@ -1222,15 +1222,6 @@ struct fb_fix_screeninfo32 {
2015
@@ -1231,15 +1231,6 @@ struct fb_fix_screeninfo32 {
2018
 	u16			reserved[3];
2016
 	u16			reserved[3];
2019
 };
2017
 };
2020
 
2018
 
Lines 2103-2113 Link Here
2103
 	/* additional information is in vt_kern.h */
2101
 	/* additional information is in vt_kern.h */
2104
 };
2102
 };
2105
 
2103
 
2106
diff --git a/include/linux/fb.h b/include/linux/fb.h
2104
diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h
2107
index d31cb68..ad161bb 100644
2105
index d31cb68..ad161bb 100644
2108
--- a/include/linux/fb.h
2106
--- a/include/uapi/linux/fb.h
2109
+++ b/include/linux/fb.h
2107
+++ b/include/uapi/linux/fb.h
2110
@@ -11,6 +11,25 @@
2108
@@ -8,6 +8,25 @@
2111
 
2109
 
2112
 #define FB_MAX			32	/* sufficient for now */
2110
 #define FB_MAX			32	/* sufficient for now */
2113
 
2111
 
Lines 2133-2139 Link Here
2133
 /* ioctls
2131
 /* ioctls
2134
    0x46 is 'F'								*/
2132
    0x46 is 'F'								*/
2135
 #define FBIOGET_VSCREENINFO	0x4600
2133
 #define FBIOGET_VSCREENINFO	0x4600
2136
@@ -39,6 +58,24 @@
2134
@@ -34,6 +53,24 @@
2137
 #define FBIOPUT_MODEINFO        0x4617
2135
 #define FBIOPUT_MODEINFO        0x4617
2138
 #define FBIOGET_DISPINFO        0x4618
2136
 #define FBIOGET_DISPINFO        0x4618
2139
 #define FBIO_WAITFORVSYNC	_IOW('F', 0x20, __u32)
2137
 #define FBIO_WAITFORVSYNC	_IOW('F', 0x20, __u32)
Lines 2158-2164 Link Here
2158
 
2156
 
2159
 #define FB_TYPE_PACKED_PIXELS		0	/* Packed Pixels	*/
2157
 #define FB_TYPE_PACKED_PIXELS		0	/* Packed Pixels	*/
2160
 #define FB_TYPE_PLANES			1	/* Non interleaved planes */
2158
 #define FB_TYPE_PLANES			1	/* Non interleaved planes */
2161
@@ -291,6 +328,28 @@ struct fb_cmap {
2159
@@ -286,6 +323,28 @@ struct fb_cmap {
2162
 	__u16 *transp;			/* transparency, can be NULL */
2160
 	__u16 *transp;			/* transparency, can be NULL */
2163
 };
2161
 };
2164
 
2162
 
Lines 2187-2193 Link Here
2187
 struct fb_con2fbmap {
2185
 struct fb_con2fbmap {
2188
 	__u32 console;
2186
 	__u32 console;
2189
 	__u32 framebuffer;
2187
 	__u32 framebuffer;
2190
@@ -372,6 +431,34 @@ struct fb_image {
2188
@@ -367,6 +426,34 @@ struct fb_image {
2191
 	struct fb_cmap cmap;	/* color map info */
2189
 	struct fb_cmap cmap;	/* color map info */
2192
 };
2190
 };
2193
 
2191
 
Lines 2222-2229 Link Here
2222
 /*
2220
 /*
2223
  * hardware cursor control
2221
  * hardware cursor control
2224
  */
2222
  */
2225
@@ -881,6 +968,9 @@ struct fb_info {
2223
2226
 #define FBINFO_STATE_SUSPENDED	1
2224
diff --git a/include/linux/fb.h b/include/linux/fb.h
2225
index d31cb68..ad161bb 100644
2226
--- a/include/linux/fb.h
2227
+++ b/include/linux/fb.h
2228
@@ -488,5 +488,8 @@ #define FBINFO_STATE_SUSPENDED		1
2227
 	u32 state;			/* Hardware state i.e suspend */
2229
 	u32 state;			/* Hardware state i.e suspend */
2228
 	void *fbcon_par;                /* fbcon use-only private area */
2230
 	void *fbcon_par;                /* fbcon use-only private area */
2229
+
2231
+
Lines 2232-2242 Link Here
2232
 	/* From here on everything is device dependent */
2234
 	/* From here on everything is device dependent */
2233
 	void *par;
2235
 	void *par;
2234
 	/* we need the PCI or similar aperture base/size not
2236
 	/* we need the PCI or similar aperture base/size not
2237
2235
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
2238
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
2236
index 4ab1187..6561627 100644
2239
index 4ab1187..6561627 100644
2237
--- a/kernel/sysctl.c
2240
--- a/kernel/sysctl.c
2238
+++ b/kernel/sysctl.c
2241
+++ b/kernel/sysctl.c
2239
@@ -142,6 +142,10 @@ static int min_percpu_pagelist_fract = 8;
2242
@@ -145,6 +145,10 @@ static int min_percpu_pagelist_fract = 8;
2240
 static int ngroups_max = NGROUPS_MAX;
2243
 static int ngroups_max = NGROUPS_MAX;
2241
 static const int cap_last_cap = CAP_LAST_CAP;
2244
 static const int cap_last_cap = CAP_LAST_CAP;
2242
 
2245
 
Lines 2247-2253 Link Here
2247
 #ifdef CONFIG_INOTIFY_USER
2250
 #ifdef CONFIG_INOTIFY_USER
2248
 #include <linux/inotify.h>
2251
 #include <linux/inotify.h>
2249
 #endif
2252
 #endif
2250
@@ -238,6 +242,15 @@ static struct ctl_table sysctl_base_table[] = {
2253
@@ -248,6 +252,15 @@ static struct ctl_table sysctl_base_table[] = {
2251
 		.mode		= 0555,
2254
 		.mode		= 0555,
2252
 		.child		= dev_table,
2255
 		.child		= dev_table,
2253
 	},
2256
 	},
Lines 2263-2269 Link Here
2263
 	{ }
2266
 	{ }
2264
 };
2267
 };
2265
 
2268
 
2266
@@ -1038,7 +1051,7 @@ static struct ctl_table vm_table[] = {
2269
@@ -1091,7 +1104,7 @@ static struct ctl_table vm_table[] = {
2267
 		.proc_handler	= proc_dointvec,
2270
 		.proc_handler	= proc_dointvec,
2268
 	},
2271
 	},
2269
 	{
2272
 	{
Lines 2272-2278 Link Here
2272
 		.data		= &page_cluster,
2275
 		.data		= &page_cluster,
2273
 		.maxlen		= sizeof(int),
2276
 		.maxlen		= sizeof(int),
2274
 		.mode		= 0644,
2277
 		.mode		= 0644,
2275
@@ -1484,7 +1497,7 @@ static struct ctl_table fs_table[] = {
2278
@@ -1535,7 +1548,7 @@ static struct ctl_table fs_table[] = {
2276
 		.mode		= 0555,
2279
 		.mode		= 0555,
2277
 		.child		= inotify_table,
2280
 		.child		= inotify_table,
2278
 	},
2281
 	},
Lines 2281-2287 Link Here
2281
 #ifdef CONFIG_EPOLL
2284
 #ifdef CONFIG_EPOLL
2282
 	{
2285
 	{
2283
 		.procname	= "epoll",
2286
 		.procname	= "epoll",
2284
@@ -1802,12 +1815,12 @@ static int __do_proc_dointvec(void *tbl_data, struct ctl_table *table,
2287
@@ -1873,12 +1886,12 @@ static int __do_proc_dointvec(void *tbl_data, struct ctl_table *table,
2285
 	unsigned long page = 0;
2288
 	unsigned long page = 0;
2286
 	size_t left;
2289
 	size_t left;
2287
 	char *kbuf;
2290
 	char *kbuf;
Lines 2296-2302 Link Here
2296
 	i = (int *) tbl_data;
2299
 	i = (int *) tbl_data;
2297
 	vleft = table->maxlen / sizeof(*i);
2300
 	vleft = table->maxlen / sizeof(*i);
2298
 	left = *lenp;
2301
 	left = *lenp;
2299
@@ -1896,7 +1909,7 @@ static int do_proc_dointvec(struct ctl_table *table, int write,
2302
@@ -1967,7 +1980,7 @@ static int do_proc_dointvec(struct ctl_table *table, int write,
2300
  * @ppos: file position
2303
  * @ppos: file position
2301
  *
2304
  *
2302
  * Reads/writes up to table->maxlen/sizeof(unsigned int) integer
2305
  * Reads/writes up to table->maxlen/sizeof(unsigned int) integer
Lines 2305-2311 Link Here
2305
  *
2308
  *
2306
  * Returns 0 on success.
2309
  * Returns 0 on success.
2307
  */
2310
  */
2308
@@ -2223,7 +2236,7 @@ static int do_proc_dointvec_ms_jiffies_conv(bool *negp, unsigned long *lvalp,
2311
@@ -2326,7 +2339,7 @@ static int do_proc_dointvec_ms_jiffies_conv(bool *negp, unsigned long *lvalp,
2309
  * @ppos: file position
2312
  * @ppos: file position
2310
  *
2313
  *
2311
  * Reads/writes up to table->maxlen/sizeof(unsigned int) integer
2314
  * Reads/writes up to table->maxlen/sizeof(unsigned int) integer
Lines 2314-2320 Link Here
2314
  * The values read are assumed to be in seconds, and are converted into
2317
  * The values read are assumed to be in seconds, and are converted into
2315
  * jiffies.
2318
  * jiffies.
2316
  *
2319
  *
2317
@@ -2245,8 +2258,8 @@ int proc_dointvec_jiffies(struct ctl_table *table, int write,
2320
@@ -2348,8 +2361,8 @@ int proc_dointvec_jiffies(struct ctl_table *table, int write,
2318
  * @ppos: pointer to the file position
2321
  * @ppos: pointer to the file position
2319
  *
2322
  *
2320
  * Reads/writes up to table->maxlen/sizeof(unsigned int) integer
2323
  * Reads/writes up to table->maxlen/sizeof(unsigned int) integer
Lines 2325-2331 Link Here
2325
  * are converted into jiffies.
2328
  * are converted into jiffies.
2326
  *
2329
  *
2327
  * Returns 0 on success.
2330
  * Returns 0 on success.
2328
@@ -2268,8 +2281,8 @@ int proc_dointvec_userhz_jiffies(struct ctl_table *table, int write,
2331
@@ -2371,8 +2384,8 @@ int proc_dointvec_userhz_jiffies(struct ctl_table *table, int write,
2329
  * @ppos: the current position in the file
2332
  * @ppos: the current position in the file
2330
  *
2333
  *
2331
  * Reads/writes up to table->maxlen/sizeof(unsigned int) integer
2334
  * Reads/writes up to table->maxlen/sizeof(unsigned int) integer

Return to bug 459060