Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=ca2b164e0f72d0ad1518514188d9ba5f0bced5ee

commit ca2b164e0f72d0ad1518514188d9ba5f0bced5ee
Author: DeX77 <[email protected]>
Date:   Thu Jan 5 10:10:00 2017 +0100

kernel-4.8.15-2-x86_64

+ add patch to fix "yellow tty1" bug

diff --git a/source/base/kernel/FrugalBuild b/source/base/kernel/FrugalBuild
index e0aae83..a0467a1 100644
--- a/source/base/kernel/FrugalBuild
+++ b/source/base/kernel/FrugalBuild
@@ -24,7 +24,8 @@ _F_kernel_patches=(   
http://algo.ing.unimo.it/people/paolo/disk_sched/patches/4.8
http://algo.ing.unimo.it/people/paolo/disk_sched/patches/4.8.0-v8r4/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-v7r11-to-.patch
 \
http://algo.ing.unimo.it/people/paolo/disk_sched/patches/4.8.0-v8r4/0004-Turn-BFQ-v7r11-into-BFQ-v8r4-for-4.8.0.patch
 \
'fix-i915.patch' \
-                       'enable_alx_wol.patch')
+                       'enable_alx_wol.patch' \
+                       fbcon.patch)

for ppatch in "${_F_kernel_patches[@]}"
do
diff --git a/source/base/kernel/fbcon.patch b/source/base/kernel/fbcon.patch
new file mode 100644
index 0000000..610cf9e
--- /dev/null
+++ b/source/base/kernel/fbcon.patch
@@ -0,0 +1,111 @@
+@@ -, +, @@
+---
+ drivers/video/console/fbcon.c | 67 ++++++++++++++++++++++++++-----------------
+ 1 file changed, 40 insertions(+), 27 deletions(-)
+--- a/drivers/video/console/fbcon.c
++++ a/drivers/video/console/fbcon.c
+@@ -1165,6 +1165,8 @@ static void fbcon_free_font(struct display *p, bool 
freefont)
+       p->userfont = 0;
+ }
+
++static void set_vc_hi_font(struct vc_data *vc, bool set);
++
+ static void fbcon_deinit(struct vc_data *vc)
+ {
+       struct display *p = &fb_display[vc->vc_num];
+@@ -1200,6 +1202,9 @@ static void fbcon_deinit(struct vc_data *vc)
+       if (free_font)
+               vc->vc_font.data = NULL;
+
++      if (vc->vc_hi_font_mask)
++              set_vc_hi_font(vc, false);
++
+       if (!con_is_bound(&fb_con))
+               fbcon_exit();
+
+@@ -2436,32 +2441,10 @@ static int fbcon_get_font(struct vc_data *vc, struct 
console_font *font)
+       return 0;
+ }
+
+-static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
+-                           const u8 * data, int userfont)
++/* set/clear vc_hi_font_mask and update vc attrs accordingly */
++static void set_vc_hi_font(struct vc_data *vc, bool set)
+ {
+-      struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
+-      struct fbcon_ops *ops = info->fbcon_par;
+-      struct display *p = &fb_display[vc->vc_num];
+-      int resize;
+-      int cnt;
+-      char *old_data = NULL;
+-
+-      if (con_is_visible(vc) && softback_lines)
+-              fbcon_set_origin(vc);
+-
+-      resize = (w != vc->vc_font.width) || (h != vc->vc_font.height);
+-      if (p->userfont)
+-              old_data = vc->vc_font.data;
+-      if (userfont)
+-              cnt = FNTCHARCNT(data);
+-      else
+-              cnt = 256;
+-      vc->vc_font.data = (void *)(p->fontdata = data);
+-      if ((p->userfont = userfont))
+-              REFCOUNT(data)++;
+-      vc->vc_font.width = w;
+-      vc->vc_font.height = h;
+-      if (vc->vc_hi_font_mask && cnt == 256) {
++      if (!set) {
+               vc->vc_hi_font_mask = 0;
+               if (vc->vc_can_do_color) {
+                       vc->vc_complement_mask >>= 1;
+@@ -2484,7 +2467,7 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, 
int h,
+                           ((c & 0xfe00) >> 1) | (c & 0xff);
+                       vc->vc_attr >>= 1;
+               }
+-      } else if (!vc->vc_hi_font_mask && cnt == 512) {
++      } else {
+               vc->vc_hi_font_mask = 0x100;
+               if (vc->vc_can_do_color) {
+                       vc->vc_complement_mask <<= 1;
+@@ -2516,8 +2499,38 @@ static int fbcon_do_set_font(struct vc_data *vc, int w, 
int h,
+                       } else
+                               vc->vc_video_erase_char = c & ~0x100;
+               }
+-
+       }
++}
++
++static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
++                           const u8 * data, int userfont)
++{
++      struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]];
++      struct fbcon_ops *ops = info->fbcon_par;
++      struct display *p = &fb_display[vc->vc_num];
++      int resize;
++      int cnt;
++      char *old_data = NULL;
++
++      if (con_is_visible(vc) && softback_lines)
++              fbcon_set_origin(vc);
++
++      resize = (w != vc->vc_font.width) || (h != vc->vc_font.height);
++      if (p->userfont)
++              old_data = vc->vc_font.data;
++      if (userfont)
++              cnt = FNTCHARCNT(data);
++      else
++              cnt = 256;
++      vc->vc_font.data = (void *)(p->fontdata = data);
++      if ((p->userfont = userfont))
++              REFCOUNT(data)++;
++      vc->vc_font.width = w;
++      vc->vc_font.height = h;
++      if (vc->vc_hi_font_mask && cnt == 256)
++              set_vc_hi_font(vc, false);
++      else if (!vc->vc_hi_font_mask && cnt == 512)
++              set_vc_hi_font(vc, true);
+
+       if (resize) {
+               int cols, rows;
+--
diff --git a/source/include/kernel-version.sh b/source/include/kernel-version.sh
index 829ad6e..13eb41a 100644
--- a/source/include/kernel-version.sh
+++ b/source/include/kernel-version.sh
@@ -17,7 +17,7 @@
# * _F_kernelver_nextver: the next kernel version
###
_F_kernelver_ver=4.8.15
-_F_kernelver_rel=1
+_F_kernelver_rel=2

###
# == APPENDED VALUES
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to