Message ID | 20181029130232.31661-1-prarit@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fbcon: Silence fbcon logo on 'quiet' boots | expand |
Hi Prarit,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on sof-driver-fuweitax/master]
[also build test ERROR on v4.19 next-20181029]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Prarit-Bhargava/fbcon-Silence-fbcon-logo-on-quiet-boots/20181029-211617
base: https://github.com/fuweitax/linux master
config: m68k-multi_defconfig (attached as .config)
compiler: m68k-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=m68k
All errors (new ones prefixed by >>):
drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo':
drivers/video/fbdev/core/fbcon.c:680:13: error: invalid storage class for function 'set_blitting_type'
static void set_blitting_type(struct vc_data *vc, struct fb_info *info)
^~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:680:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
static void set_blitting_type(struct vc_data *vc, struct fb_info *info)
^~~~~~
drivers/video/fbdev/core/fbcon.c:690:12: error: invalid storage class for function 'fbcon_invalid_charcount'
static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount)
^~~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:698:12: error: invalid storage class for function 'con2fb_acquire_newinfo'
static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info,
^~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:734:12: error: invalid storage class for function 'con2fb_release_oldinfo'
static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo,
^~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:780:13: error: invalid storage class for function 'con2fb_init_display'
static void con2fb_init_display(struct vc_data *vc, struct fb_info *info,
^~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:825:12: error: invalid storage class for function 'set_con2fb_map'
static int set_con2fb_map(int unit, int newidx, int user)
^~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:882:12: error: invalid storage class for function 'var_to_display'
static int var_to_display(struct display *disp,
^~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:906:13: error: invalid storage class for function 'display_to_var'
static void display_to_var(struct fb_var_screeninfo *var,
^~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:925:20: error: invalid storage class for function 'fbcon_startup'
static const char *fbcon_startup(void)
^~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1036:13: error: invalid storage class for function 'fbcon_init'
static void fbcon_init(struct vc_data *vc, int init)
^~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1183:13: error: invalid storage class for function 'fbcon_free_font'
static void fbcon_free_font(struct display *p, bool freefont)
^~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1191:13: error: invalid storage class for function 'set_vc_hi_font'
static void set_vc_hi_font(struct vc_data *vc, bool set);
^~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1193:13: error: invalid storage class for function 'fbcon_deinit'
static void fbcon_deinit(struct vc_data *vc)
^~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c: In function 'fbcon_deinit':
>> drivers/video/fbdev/core/fbcon.c:1229:3: error: implicit declaration of function 'set_vc_hi_font'; did you mean 'seq_path_root'? [-Werror=implicit-function-declaration]
set_vc_hi_font(vc, false);
^~~~~~~~~~~~~~
seq_path_root
drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo':
drivers/video/fbdev/core/fbcon.c:1262:13: error: invalid storage class for function 'fbcon_clear'
static void fbcon_clear(struct vc_data *vc, int sy, int sx, int height,
^~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1300:13: error: invalid storage class for function 'fbcon_putcs'
static void fbcon_putcs(struct vc_data *vc, const unsigned short *s,
^~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1313:13: error: invalid storage class for function 'fbcon_putc'
static void fbcon_putc(struct vc_data *vc, int c, int ypos, int xpos)
^~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1321:13: error: invalid storage class for function 'fbcon_clear_margins'
static void fbcon_clear_margins(struct vc_data *vc, int bottom_only)
^~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1330:13: error: invalid storage class for function 'fbcon_cursor'
static void fbcon_cursor(struct vc_data *vc, int mode)
^~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1365:13: error: invalid storage class for function 'fbcon_set_disp'
static void fbcon_set_disp(struct fb_info *info, struct fb_var_screeninfo *var,
^~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1433:24: error: invalid storage class for function 'ywrap_up'
static __inline__ void ywrap_up(struct vc_data *vc, int count)
^~~~~~~~
drivers/video/fbdev/core/fbcon.c:1452:24: error: invalid storage class for function 'ywrap_down'
static __inline__ void ywrap_down(struct vc_data *vc, int count)
^~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1471:24: error: invalid storage class for function 'ypan_up'
static __inline__ void ypan_up(struct vc_data *vc, int count)
^~~~~~~
drivers/video/fbdev/core/fbcon.c:1495:24: error: invalid storage class for function 'ypan_up_redraw'
static __inline__ void ypan_up_redraw(struct vc_data *vc, int t, int count)
^~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1519:24: error: invalid storage class for function 'ypan_down'
static __inline__ void ypan_down(struct vc_data *vc, int count)
^~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1543:24: error: invalid storage class for function 'ypan_down_redraw'
static __inline__ void ypan_down_redraw(struct vc_data *vc, int t, int count)
^~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1567:13: error: invalid storage class for function 'fbcon_redraw_softback'
static void fbcon_redraw_softback(struct vc_data *vc, struct display *p,
^~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1660:13: error: invalid storage class for function 'fbcon_redraw_move'
static void fbcon_redraw_move(struct vc_data *vc, struct display *p,
^~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1694:13: error: invalid storage class for function 'fbcon_redraw_blit'
static void fbcon_redraw_blit(struct vc_data *vc, struct fb_info *info,
^~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1744:13: error: invalid storage class for function 'fbcon_redraw'
static void fbcon_redraw(struct vc_data *vc, struct display *p,
^~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1799:20: error: invalid storage class for function 'fbcon_softback_note'
static inline void fbcon_softback_note(struct vc_data *vc, int t,
^~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1824:13: error: invalid storage class for function 'fbcon_scroll'
static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b,
^~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2028:13: error: invalid storage class for function 'fbcon_bmove'
static void fbcon_bmove(struct vc_data *vc, int sy, int sx, int dy, int dx,
^~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2051:13: error: invalid storage class for function 'fbcon_bmove_rec'
static void fbcon_bmove_rec(struct vc_data *vc, struct display *p, int sy, int sx,
^~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2093:13: error: invalid storage class for function 'updatescrollmode'
static void updatescrollmode(struct display *p,
^~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2140:12: error: invalid storage class for function 'fbcon_resize'
static int fbcon_resize(struct vc_data *vc, unsigned int width,
^~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2186:12: error: invalid storage class for function 'fbcon_switch'
static int fbcon_switch(struct vc_data *vc)
^~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2325:13: error: invalid storage class for function 'fbcon_generic_blank'
static void fbcon_generic_blank(struct vc_data *vc, struct fb_info *info,
^~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2350:12: error: invalid storage class for function 'fbcon_blank'
static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch)
^~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2392:12: error: invalid storage class for function 'fbcon_debug_enter'
static int fbcon_debug_enter(struct vc_data *vc)
^~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2405:12: error: invalid storage class for function 'fbcon_debug_leave'
static int fbcon_debug_leave(struct vc_data *vc)
^~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2416:12: error: invalid storage class for function 'fbcon_get_font'
static int fbcon_get_font(struct vc_data *vc, struct console_font *font)
^~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2468:13: error: invalid storage class for function 'set_vc_hi_font'
static void set_vc_hi_font(struct vc_data *vc, bool set)
^~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2528:12: error: invalid storage class for function 'fbcon_do_set_font'
static int fbcon_do_set_font(struct vc_data *vc, int w, int h,
^~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2579:12: error: invalid storage class for function 'fbcon_copy_font'
static int fbcon_copy_font(struct vc_data *vc, int con)
^~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:2601:12: error: invalid storage class for function 'fbcon_set_font'
static int fbcon_set_font(struct vc_data *vc, struct console_font *font,
^~~~~~~~~~~~~~
vim +1229 drivers/video/fbdev/core/fbcon.c
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1190
8aac7f34 drivers/video/console/fbcon.c Takashi Iwai 2017-01-11 @1191 static void set_vc_hi_font(struct vc_data *vc, bool set);
8aac7f34 drivers/video/console/fbcon.c Takashi Iwai 2017-01-11 1192
^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 1193 static void fbcon_deinit(struct vc_data *vc)
^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 1194 {
^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 1195 struct display *p = &fb_display[vc->vc_num];
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1196 struct fb_info *info;
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1197 struct fbcon_ops *ops;
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1198 int idx;
ae128786 drivers/video/console/fbcon.c Dave Airlie 2013-01-24 1199 bool free_font = true;
^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 1200
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1201 idx = con2fb_map[vc->vc_num];
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1202
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1203 if (idx == -1)
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1204 goto finished;
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1205
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1206 info = registered_fb[idx];
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1207
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1208 if (!info)
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1209 goto finished;
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1210
ae128786 drivers/video/console/fbcon.c Dave Airlie 2013-01-24 1211 if (info->flags & FBINFO_MISC_FIRMWARE)
ae128786 drivers/video/console/fbcon.c Dave Airlie 2013-01-24 1212 free_font = false;
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1213 ops = info->fbcon_par;
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1214
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1215 if (!ops)
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1216 goto finished;
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1217
6ca8dfd7 drivers/video/console/fbcon.c Jiri Slaby 2016-06-23 1218 if (con_is_visible(vc))
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1219 fbcon_del_cursor_timer(info);
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1220
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1221 ops->flags &= ~FBCON_FLAGS_INIT;
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1222 finished:
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1223
ae128786 drivers/video/console/fbcon.c Dave Airlie 2013-01-24 1224 fbcon_free_font(p, free_font);
e6637d54 drivers/video/console/fbcon.c Mika Kuoppala 2013-04-22 1225 if (free_font)
e6637d54 drivers/video/console/fbcon.c Mika Kuoppala 2013-04-22 1226 vc->vc_font.data = NULL;
ae128786 drivers/video/console/fbcon.c Dave Airlie 2013-01-24 1227
8aac7f34 drivers/video/console/fbcon.c Takashi Iwai 2017-01-11 1228 if (vc->vc_hi_font_mask)
8aac7f34 drivers/video/console/fbcon.c Takashi Iwai 2017-01-11 @1229 set_vc_hi_font(vc, false);
8aac7f34 drivers/video/console/fbcon.c Takashi Iwai 2017-01-11 1230
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1231 if (!con_is_bound(&fb_con))
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1232 fbcon_exit();
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1233
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1234 return;
^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 1235 }
^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 1236
:::::: The code at line 1229 was first introduced by commit
:::::: 8aac7f34369726d1a158788ae8aff3002d5eb528 fbcon: Fix vc attr at deinit
:::::: TO: Takashi Iwai <tiwai@suse.de>
:::::: CC: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Prarit, Thank you for the patch! Yet something to improve: [auto build test ERROR on sof-driver-fuweitax/master] [also build test ERROR on v4.19 next-20181029] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Prarit-Bhargava/fbcon-Silence-fbcon-logo-on-quiet-boots/20181029-211617 base: https://github.com/fuweitax/linux master config: i386-randconfig-x005-201843 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo': >> drivers/video/fbdev/core/fbcon.c:655:13: error: invalid storage class for function 'set_blitting_type' static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^~~~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:655:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^~~~~~ >> drivers/video/fbdev/core/fbcon.c:669:12: error: invalid storage class for function 'fbcon_invalid_charcount' static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) ^~~~~~~~~~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:698:12: error: invalid storage class for function 'con2fb_acquire_newinfo' static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:734:12: error: invalid storage class for function 'con2fb_release_oldinfo' static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo, ^~~~~~~~~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:780:13: error: invalid storage class for function 'con2fb_init_display' static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:825:12: error: invalid storage class for function 'set_con2fb_map' static int set_con2fb_map(int unit, int newidx, int user) ^~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:882:12: error: invalid storage class for function 'var_to_display' static int var_to_display(struct display *disp, ^~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:906:13: error: invalid storage class for function 'display_to_var' static void display_to_var(struct fb_var_screeninfo *var, ^~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:925:20: error: invalid storage class for function 'fbcon_startup' static const char *fbcon_startup(void) ^~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:1036:13: error: invalid storage class for function 'fbcon_init' static void fbcon_init(struct vc_data *vc, int init) ^~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:1183:13: error: invalid storage class for function 'fbcon_free_font' static void fbcon_free_font(struct display *p, bool freefont) ^~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:1191:13: error: invalid storage class for function 'set_vc_hi_font' static void set_vc_hi_font(struct vc_data *vc, bool set); ^~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:1193:13: error: invalid storage class for function 'fbcon_deinit' static void fbcon_deinit(struct vc_data *vc) ^~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c: In function 'fbcon_deinit': >> drivers/video/fbdev/core/fbcon.c:1229:3: error: implicit declaration of function 'set_vc_hi_font'; did you mean 'set_page_zone'? [-Werror=implicit-function-declaration] set_vc_hi_font(vc, false); ^~~~~~~~~~~~~~ set_page_zone drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo': >> drivers/video/fbdev/core/fbcon.c:1262:13: error: invalid storage class for function 'fbcon_clear' static void fbcon_clear(struct vc_data *vc, int sy, int sx, int height, ^~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:1300:13: error: invalid storage class for function 'fbcon_putcs' static void fbcon_putcs(struct vc_data *vc, const unsigned short *s, ^~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:1313:13: error: invalid storage class for function 'fbcon_putc' static void fbcon_putc(struct vc_data *vc, int c, int ypos, int xpos) ^~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:1321:13: error: invalid storage class for function 'fbcon_clear_margins' static void fbcon_clear_margins(struct vc_data *vc, int bottom_only) ^~~~~~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:1330:13: error: invalid storage class for function 'fbcon_cursor' static void fbcon_cursor(struct vc_data *vc, int mode) ^~~~~~~~~~~~ vim +/set_blitting_type +655 drivers/video/fbdev/core/fbcon.c ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 653 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 654 #ifdef CONFIG_FB_TILEBLITTING b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 @655 static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 656 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 657 struct fbcon_ops *ops = info->fbcon_par; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 658 b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 659 ops->p = &fb_display[vc->vc_num]; ab767201 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-13 660 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 661 if ((info->flags & FBINFO_MISC_TILEBLITTING)) b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 662 fbcon_set_tileops(vc, info); e4fc2761 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-08 663 else { b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 664 fbcon_set_rotation(info); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 665 fbcon_set_bitops(ops); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 666 } e4fc2761 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-08 667 } 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 668 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 @669 static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 670 { 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 671 int err = 0; 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 672 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 673 if (info->flags & FBINFO_MISC_TILEBLITTING && 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 674 info->tileops->fb_get_tilemax(info) < charcount) 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 675 err = 1; 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 676 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 677 return err; 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 678 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 679 #else b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 680 static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 681 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 682 struct fbcon_ops *ops = info->fbcon_par; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 683 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 684 info->flags &= ~FBINFO_MISC_TILEBLITTING; b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 685 ops->p = &fb_display[vc->vc_num]; b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 686 fbcon_set_rotation(info); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 687 fbcon_set_bitops(ops); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 688 } 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 689 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 690 static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 691 { 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 692 return 0; 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 693 } 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 694 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 695 #endif /* CONFIG_MISC_TILEBLITTING */ ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 696 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 697 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 @698 static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 699 int unit, int oldidx) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 700 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 701 struct fbcon_ops *ops = NULL; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 702 int err = 0; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 703 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 704 if (!try_module_get(info->fbops->owner)) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 705 err = -ENODEV; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 706 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 707 if (!err && info->fbops->fb_open && ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 708 info->fbops->fb_open(info, 0)) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 709 err = -ENODEV; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 710 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 711 if (!err) { a39bc34e drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 712 ops = kzalloc(sizeof(struct fbcon_ops), GFP_KERNEL); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 713 if (!ops) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 714 err = -ENOMEM; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 715 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 716 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 717 if (!err) { a1e533ec drivers/video/console/fbcon.c Jean-Philippe Brucker 2016-02-15 718 ops->cur_blink_jiffies = HZ / 5; 6c789357 drivers/video/fbdev/core/fbcon.c Kees Cook 2017-11-10 719 ops->info = info; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 720 info->fbcon_par = ops; d1baa4ff drivers/video/console/fbcon.c Antonino A. Daplas 2007-07-17 721 d1baa4ff drivers/video/console/fbcon.c Antonino A. Daplas 2007-07-17 722 if (vc) b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 723 set_blitting_type(vc, info); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 724 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 725 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 726 if (err) { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 727 con2fb_map[unit] = oldidx; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 728 module_put(info->fbops->owner); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 729 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 730 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 731 return err; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 732 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 733 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 @734 static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 735 struct fb_info *newinfo, int unit, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 736 int oldidx, int found) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 737 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 738 struct fbcon_ops *ops = oldinfo->fbcon_par; 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 739 int err = 0, ret; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 740 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 741 if (oldinfo->fbops->fb_release && ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 742 oldinfo->fbops->fb_release(oldinfo, 0)) { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 743 con2fb_map[unit] = oldidx; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 744 if (!found && newinfo->fbops->fb_release) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 745 newinfo->fbops->fb_release(newinfo, 0); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 746 if (!found) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 747 module_put(newinfo->fbops->owner); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 748 err = -ENODEV; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 749 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 750 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 751 if (!err) { 88fb2c6e drivers/video/console/fbcon.c Antonino A. Daplas 2005-09-09 752 fbcon_del_cursor_timer(oldinfo); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 753 kfree(ops->cursor_state.mask); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 754 kfree(ops->cursor_data); 7a966fbd drivers/video/console/fbcon.c Masami Ichikawa 2014-04-23 755 kfree(ops->cursor_src); e4fc2761 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-08 756 kfree(ops->fontbuffer); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 757 kfree(oldinfo->fbcon_par); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 758 oldinfo->fbcon_par = NULL; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 759 module_put(oldinfo->fbops->owner); dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 760 /* dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 761 If oldinfo and newinfo are driving the same hardware, dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 762 the fb_release() method of oldinfo may attempt to dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 763 restore the hardware state. This will leave the dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 764 newinfo in an undefined state. Thus, a call to dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 765 fb_set_par() may be needed for the newinfo. dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 766 */ 5f4dc28b drivers/video/console/fbcon.c Keith Packard 2014-01-20 767 if (newinfo && newinfo->fbops->fb_set_par) { 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 768 ret = newinfo->fbops->fb_set_par(newinfo); 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 769 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 770 if (ret) 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 771 printk(KERN_ERR "con2fb_release_oldinfo: " 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 772 "detected unhandled fb_set_par error, " 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 773 "error code %d\n", ret); 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 774 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 775 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 776 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 777 return err; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 778 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 779 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 @780 static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 781 int unit, int show_logo) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 782 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 783 struct fbcon_ops *ops = info->fbcon_par; 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 784 int ret; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 785 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 786 ops->currcon = fg_console; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 787 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 788 if (info->fbops->fb_set_par && !(ops->flags & FBCON_FLAGS_INIT)) { 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 789 ret = info->fbops->fb_set_par(info); 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 790 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 791 if (ret) 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 792 printk(KERN_ERR "con2fb_init_display: detected " 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 793 "unhandled fb_set_par error, " 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 794 "error code %d\n", ret); 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 795 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 796 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 797 ops->flags |= FBCON_FLAGS_INIT; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 798 ops->graphics = 0; d1baa4ff drivers/video/console/fbcon.c Antonino A. Daplas 2007-07-17 799 fbcon_set_disp(info, &info->var, unit); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 800 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 801 if (show_logo) { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 802 struct vc_data *fg_vc = vc_cons[fg_console].d; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 803 struct fb_info *fg_info = ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 804 registered_fb[con2fb_map[fg_console]]; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 805 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 806 fbcon_prepare_logo(fg_vc, fg_info, fg_vc->vc_cols, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 807 fg_vc->vc_rows, fg_vc->vc_cols, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 808 fg_vc->vc_rows); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 809 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 810 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 811 update_screen(vc_cons[fg_console].d); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 812 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 813 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 814 /** ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 815 * set_con2fb_map - map console to frame buffer device ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 816 * @unit: virtual console number to map ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 817 * @newidx: frame buffer index to map virtual console to ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 818 * @user: user request ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 819 * ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 820 * Maps a virtual console @unit to a frame buffer device ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 821 * @newidx. 054430e7 drivers/video/console/fbcon.c Dave Airlie 2013-01-25 822 * 054430e7 drivers/video/console/fbcon.c Dave Airlie 2013-01-25 823 * This should be called with the console lock held. ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 824 */ ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 @825 static int set_con2fb_map(int unit, int newidx, int user) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 826 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 827 struct vc_data *vc = vc_cons[unit].d; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 828 int oldidx = con2fb_map[unit]; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 829 struct fb_info *info = registered_fb[newidx]; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 830 struct fb_info *oldinfo = NULL; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 831 int found, err = 0; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 832 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 833 if (oldidx == newidx) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 834 return 0; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 835 32b98bf8 drivers/video/console/fbcon.c Dave Airlie 2010-12-21 836 if (!info) e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 837 return -EINVAL; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 838 32b98bf8 drivers/video/console/fbcon.c Dave Airlie 2010-12-21 839 if (!search_for_mapped_con() || !con_is_bound(&fb_con)) { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 840 info_idx = newidx; 054430e7 drivers/video/console/fbcon.c Dave Airlie 2013-01-25 841 return do_fbcon_takeover(0); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 842 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 843 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 844 if (oldidx != -1) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 845 oldinfo = registered_fb[oldidx]; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 846 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 847 found = search_fb_in_map(newidx); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 848 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 849 con2fb_map[unit] = newidx; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 850 if (!err && !found) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 851 err = con2fb_acquire_newinfo(vc, info, unit, oldidx); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 852 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 853 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 854 /* ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 855 * If old fb is not mapped to any of the consoles, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 856 * fbcon should release it. ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 857 */ ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 858 if (!err && oldinfo && !search_fb_in_map(oldidx)) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 859 err = con2fb_release_oldinfo(vc, oldinfo, info, unit, oldidx, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 860 found); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 861 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 862 if (!err) { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 863 int show_logo = (fg_console == 0 && !user && ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 864 logo_shown != FBCON_LOGO_DONTSHOW); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 865 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 866 if (!found) 88fb2c6e drivers/video/console/fbcon.c Antonino A. Daplas 2005-09-09 867 fbcon_add_cursor_timer(info); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 868 con2fb_map_boot[unit] = newidx; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 869 con2fb_init_display(vc, info, unit, show_logo); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 870 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 871 e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 872 if (!search_fb_in_map(info_idx)) e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 873 info_idx = newidx; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 874 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 875 return err; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 876 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 877 :::::: The code at line 655 was first introduced by commit :::::: b73deed32d08740bdbf5f4aab43d988e4d135d95 [PATCH] fbcon: Sanitize fbcon :::::: TO: Antonino A. Daplas <adaplas@gmail.com> :::::: CC: Linus Torvalds <torvalds@g5.osdl.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
On 10/29/2018 09:56 AM, kbuild test robot wrote: > Hi Prarit, > > Thank you for the patch! Yet something to improve: > > [auto build test ERROR on sof-driver-fuweitax/master] > [also build test ERROR on v4.19 next-20181029] > [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] > > url: https://github.com/0day-ci/linux/commits/Prarit-Bhargava/fbcon-Silence-fbcon-logo-on-quiet-boots/20181029-211617 > base: https://github.com/fuweitax/linux master > config: m68k-multi_defconfig (attached as .config) > compiler: m68k-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 > reproduce: > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # save the attached .config to linux build tree > GCC_VERSION=7.2.0 make.cross ARCH=m68k > > All errors (new ones prefixed by >>): > > drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo': > drivers/video/fbdev/core/fbcon.c:680:13: error: invalid storage class for function 'set_blitting_type' > static void set_blitting_type(struct vc_data *vc, struct fb_info *info) > ^~~~~~~~~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c:680:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] > static void set_blitting_type(struct vc_data *vc, struct fb_info *info) > ^~~~~~ > drivers/video/fbdev/core/fbcon.c:690:12: error: invalid storage class for function 'fbcon_invalid_charcount' > static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) > ^~~~~~~~~~~~~~~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c:698:12: error: invalid storage class for function 'con2fb_acquire_newinfo' > static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info, > ^~~~~~~~~~~~~~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c:734:12: error: invalid storage class for function 'con2fb_release_oldinfo' > static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo, > ^~~~~~~~~~~~~~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c:780:13: error: invalid storage class for function 'con2fb_init_display' > static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, > ^~~~~~~~~~~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c:825:12: error: invalid storage class for function 'set_con2fb_map' > static int set_con2fb_map(int unit, int newidx, int user) > ^~~~~~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c:882:12: error: invalid storage class for function 'var_to_display' > static int var_to_display(struct display *disp, > ^~~~~~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c:906:13: error: invalid storage class for function 'display_to_var' > static void display_to_var(struct fb_var_screeninfo *var, > ^~~~~~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c:925:20: error: invalid storage class for function 'fbcon_startup' > static const char *fbcon_startup(void) > ^~~~~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c:1036:13: error: invalid storage class for function 'fbcon_init' > static void fbcon_init(struct vc_data *vc, int init) > ^~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c:1183:13: error: invalid storage class for function 'fbcon_free_font' > static void fbcon_free_font(struct display *p, bool freefont) > ^~~~~~~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c:1191:13: error: invalid storage class for function 'set_vc_hi_font' > static void set_vc_hi_font(struct vc_data *vc, bool set); > ^~~~~~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c:1193:13: error: invalid storage class for function 'fbcon_deinit' > static void fbcon_deinit(struct vc_data *vc) > ^~~~~~~~~~~~ > drivers/video/fbdev/core/fbcon.c: In function 'fbcon_deinit': >>> drivers/video/fbdev/core/fbcon.c:1229:3: error: implicit declaration of function 'set_vc_hi_font'; did you mean 'seq_path_root'? [-Werror=implicit-function-declaration] > set_vc_hi_font(vc, false); > ^~~~~~~~~~~~~~ Hmm ... this doesn't look like anything that is at fault with my patch. There's a lot of warnings here, and perhaps another fix is required to make sure that the configs are set correctly? I can certainly take a look in another patch but AFAICT this isn't an issue with my patch. P.
On Mon, Oct 29, 2018 at 09:02:32AM -0400, Prarit Bhargava wrote: > A variant of this patch has been in Fedora since at least 2010 and > AFAWCT there haven't been any complaints about the change in behavior. > > https://src.fedoraproject.org/cgit/rpms/kernel.git/tree/silence-fbcon-logo.patch > > P. > > ---8<--- > > On text-based systems the 'quiet' boot option will show printk levels > higher than CONSOLE_LOGLEVEL_QUIET. The displaying of the Tux logo > during boot can cause some consoles to lose display data and as a result > confuse the end user. > > Do not display the Tux logo on systems that are in 'quiet' boot. > > Signed-off-by: Prarit Bhargava <prarit@redhat.com> > Cc: Hans de Goede <hdegoede@redhat.com> > Cc: Marko Myllynen <myllynen@redhat.com> > Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Cc: Kees Cook <keescook@chromium.org> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Cc: Thierry Reding <treding@nvidia.com> > Cc: Yisheng Xie <ysxie@foxmail.com> > Cc: dri-devel@lists.freedesktop.org > Cc: Steven Rostedt (VMware) <rostedt@goodmis.org> > --- > drivers/video/fbdev/core/fbcon.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c > index 75ebbbf0a1fb..a2f2c7ea11ef 100644 > --- a/drivers/video/fbdev/core/fbcon.c > +++ b/drivers/video/fbdev/core/fbcon.c > @@ -650,11 +650,14 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info, > kfree(save); > } > > + if (logo_shown == FBCON_LOGO_DONTSHOW) { > + return; > + You're missing a closing } here (well, you really shouldn't have the opening { in the first place since this is a single line block. That's what's causing the warnings from the 0-day builder. Thierry
On 10/29/2018 11:24 AM, Thierry Reding wrote: > On Mon, Oct 29, 2018 at 09:02:32AM -0400, Prarit Bhargava wrote: >> A variant of this patch has been in Fedora since at least 2010 and >> AFAWCT there haven't been any complaints about the change in behavior. >> >> https://src.fedoraproject.org/cgit/rpms/kernel.git/tree/silence-fbcon-logo.patch >> >> P. >> >> ---8<--- >> >> On text-based systems the 'quiet' boot option will show printk levels >> higher than CONSOLE_LOGLEVEL_QUIET. The displaying of the Tux logo >> during boot can cause some consoles to lose display data and as a result >> confuse the end user. >> >> Do not display the Tux logo on systems that are in 'quiet' boot. >> >> Signed-off-by: Prarit Bhargava <prarit@redhat.com> >> Cc: Hans de Goede <hdegoede@redhat.com> >> Cc: Marko Myllynen <myllynen@redhat.com> >> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> >> Cc: Kees Cook <keescook@chromium.org> >> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> >> Cc: Thierry Reding <treding@nvidia.com> >> Cc: Yisheng Xie <ysxie@foxmail.com> >> Cc: dri-devel@lists.freedesktop.org >> Cc: Steven Rostedt (VMware) <rostedt@goodmis.org> >> --- >> drivers/video/fbdev/core/fbcon.c | 13 ++++++++----- >> 1 file changed, 8 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c >> index 75ebbbf0a1fb..a2f2c7ea11ef 100644 >> --- a/drivers/video/fbdev/core/fbcon.c >> +++ b/drivers/video/fbdev/core/fbcon.c >> @@ -650,11 +650,14 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info, >> kfree(save); >> } >> >> + if (logo_shown == FBCON_LOGO_DONTSHOW) { >> + return; >> + > > You're missing a closing } here (well, you really shouldn't have the > opening { in the first place since this is a single line block. > > That's what's causing the warnings from the 0-day builder. Will send v2. P. > > Thierry >
On 10/29/2018 11:15 PM, Prarit Bhargava wrote: > > On 10/29/2018 09:56 AM, kbuild test robot wrote: >> Hi Prarit, >> >> Thank you for the patch! Yet something to improve: >> >> [auto build test ERROR on sof-driver-fuweitax/master] >> [also build test ERROR on v4.19 next-20181029] >> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] >> >> url: https://github.com/0day-ci/linux/commits/Prarit-Bhargava/fbcon-Silence-fbcon-logo-on-quiet-boots/20181029-211617 >> base: https://github.com/fuweitax/linux master >> config: m68k-multi_defconfig (attached as .config) >> compiler: m68k-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 >> reproduce: >> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross >> chmod +x ~/bin/make.cross >> # save the attached .config to linux build tree >> GCC_VERSION=7.2.0 make.cross ARCH=m68k >> >> All errors (new ones prefixed by >>): >> >> drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo': >> drivers/video/fbdev/core/fbcon.c:680:13: error: invalid storage class for function 'set_blitting_type' >> static void set_blitting_type(struct vc_data *vc, struct fb_info *info) >> ^~~~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:680:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] >> static void set_blitting_type(struct vc_data *vc, struct fb_info *info) >> ^~~~~~ >> drivers/video/fbdev/core/fbcon.c:690:12: error: invalid storage class for function 'fbcon_invalid_charcount' >> static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) >> ^~~~~~~~~~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:698:12: error: invalid storage class for function 'con2fb_acquire_newinfo' >> static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info, >> ^~~~~~~~~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:734:12: error: invalid storage class for function 'con2fb_release_oldinfo' >> static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo, >> ^~~~~~~~~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:780:13: error: invalid storage class for function 'con2fb_init_display' >> static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, >> ^~~~~~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:825:12: error: invalid storage class for function 'set_con2fb_map' >> static int set_con2fb_map(int unit, int newidx, int user) >> ^~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:882:12: error: invalid storage class for function 'var_to_display' >> static int var_to_display(struct display *disp, >> ^~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:906:13: error: invalid storage class for function 'display_to_var' >> static void display_to_var(struct fb_var_screeninfo *var, >> ^~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:925:20: error: invalid storage class for function 'fbcon_startup' >> static const char *fbcon_startup(void) >> ^~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:1036:13: error: invalid storage class for function 'fbcon_init' >> static void fbcon_init(struct vc_data *vc, int init) >> ^~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:1183:13: error: invalid storage class for function 'fbcon_free_font' >> static void fbcon_free_font(struct display *p, bool freefont) >> ^~~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:1191:13: error: invalid storage class for function 'set_vc_hi_font' >> static void set_vc_hi_font(struct vc_data *vc, bool set); >> ^~~~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c:1193:13: error: invalid storage class for function 'fbcon_deinit' >> static void fbcon_deinit(struct vc_data *vc) >> ^~~~~~~~~~~~ >> drivers/video/fbdev/core/fbcon.c: In function 'fbcon_deinit': >>>> drivers/video/fbdev/core/fbcon.c:1229:3: error: implicit declaration of function 'set_vc_hi_font'; did you mean 'seq_path_root'? [-Werror=implicit-function-declaration] >> set_vc_hi_font(vc, false); >> ^~~~~~~~~~~~~~ > Hmm ... this doesn't look like anything that is at fault with my patch. > > There's a lot of warnings here, and perhaps another fix is required to make > sure that the configs are set correctly? I can certainly take a look in > another patch but AFAICT this isn't an issue with my patch. Please accept my apologies for taking your time, we will look into it. Best Regards, Rong Chen
On 11/11/2018 10:18 PM, Rong Chen wrote: > > > On 10/29/2018 11:15 PM, Prarit Bhargava wrote: >> >> On 10/29/2018 09:56 AM, kbuild test robot wrote: >>> Hi Prarit, >>> >>> Thank you for the patch! Yet something to improve: >>> >>> [auto build test ERROR on sof-driver-fuweitax/master] >>> [also build test ERROR on v4.19 next-20181029] >>> [if your patch is applied to the wrong git tree, please drop us a note to >>> help improve the system] >>> >>> url: >>> https://github.com/0day-ci/linux/commits/Prarit-Bhargava/fbcon-Silence-fbcon-logo-on-quiet-boots/20181029-211617 >>> >>> base: https://github.com/fuweitax/linux master >>> config: m68k-multi_defconfig (attached as .config) >>> compiler: m68k-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 >>> reproduce: >>> wget >>> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O >>> ~/bin/make.cross >>> chmod +x ~/bin/make.cross >>> # save the attached .config to linux build tree >>> GCC_VERSION=7.2.0 make.cross ARCH=m68k >>> >>> All errors (new ones prefixed by >>): >>> >>> drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo': >>> drivers/video/fbdev/core/fbcon.c:680:13: error: invalid storage class for >>> function 'set_blitting_type' >>> static void set_blitting_type(struct vc_data *vc, struct fb_info *info) >>> ^~~~~~~~~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c:680:1: warning: ISO C90 forbids mixed >>> declarations and code [-Wdeclaration-after-statement] >>> static void set_blitting_type(struct vc_data *vc, struct fb_info *info) >>> ^~~~~~ >>> drivers/video/fbdev/core/fbcon.c:690:12: error: invalid storage class for >>> function 'fbcon_invalid_charcount' >>> static int fbcon_invalid_charcount(struct fb_info *info, unsigned >>> charcount) >>> ^~~~~~~~~~~~~~~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c:698:12: error: invalid storage class for >>> function 'con2fb_acquire_newinfo' >>> static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info, >>> ^~~~~~~~~~~~~~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c:734:12: error: invalid storage class for >>> function 'con2fb_release_oldinfo' >>> static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info >>> *oldinfo, >>> ^~~~~~~~~~~~~~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c:780:13: error: invalid storage class for >>> function 'con2fb_init_display' >>> static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, >>> ^~~~~~~~~~~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c:825:12: error: invalid storage class for >>> function 'set_con2fb_map' >>> static int set_con2fb_map(int unit, int newidx, int user) >>> ^~~~~~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c:882:12: error: invalid storage class for >>> function 'var_to_display' >>> static int var_to_display(struct display *disp, >>> ^~~~~~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c:906:13: error: invalid storage class for >>> function 'display_to_var' >>> static void display_to_var(struct fb_var_screeninfo *var, >>> ^~~~~~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c:925:20: error: invalid storage class for >>> function 'fbcon_startup' >>> static const char *fbcon_startup(void) >>> ^~~~~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c:1036:13: error: invalid storage class >>> for function 'fbcon_init' >>> static void fbcon_init(struct vc_data *vc, int init) >>> ^~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c:1183:13: error: invalid storage class >>> for function 'fbcon_free_font' >>> static void fbcon_free_font(struct display *p, bool freefont) >>> ^~~~~~~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c:1191:13: error: invalid storage class >>> for function 'set_vc_hi_font' >>> static void set_vc_hi_font(struct vc_data *vc, bool set); >>> ^~~~~~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c:1193:13: error: invalid storage class >>> for function 'fbcon_deinit' >>> static void fbcon_deinit(struct vc_data *vc) >>> ^~~~~~~~~~~~ >>> drivers/video/fbdev/core/fbcon.c: In function 'fbcon_deinit': >>>>> drivers/video/fbdev/core/fbcon.c:1229:3: error: implicit declaration of >>>>> function 'set_vc_hi_font'; did you mean 'seq_path_root'? >>>>> [-Werror=implicit-function-declaration] >>> set_vc_hi_font(vc, false); >>> ^~~~~~~~~~~~~~ >> Hmm ... this doesn't look like anything that is at fault with my patch. >> >> There's a lot of warnings here, and perhaps another fix is required to make >> sure that the configs are set correctly? I can certainly take a look in >> another patch but AFAICT this isn't an issue with my patch. > > Please accept my apologies for taking your time, we will look into it. > Rong, it turns out that this was a bug in my patch. I have posted a new patch that resolves the above compile issue. P. > Best Regards, > Rong Chen
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c index 75ebbbf0a1fb..a2f2c7ea11ef 100644 --- a/drivers/video/fbdev/core/fbcon.c +++ b/drivers/video/fbdev/core/fbcon.c @@ -650,11 +650,14 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info, kfree(save); } + if (logo_shown == FBCON_LOGO_DONTSHOW) { + return; + if (logo_lines > vc->vc_bottom) { logo_shown = FBCON_LOGO_CANSHOW; printk(KERN_INFO "fbcon_init: disable boot-logo (boot-logo bigger than screen).\n"); - } else if (logo_shown != FBCON_LOGO_DONTSHOW) { + } else { logo_shown = FBCON_LOGO_DRAW; vc->vc_top = logo_lines; } @@ -1052,7 +1055,7 @@ static void fbcon_init(struct vc_data *vc, int init) struct vc_data **default_mode = vc->vc_display_fg; struct vc_data *svc = *default_mode; struct display *t, *p = &fb_display[vc->vc_num]; - int logo = 1, new_rows, new_cols, rows, cols, charcnt = 256; + int new_rows, new_cols, rows, cols, charcnt = 256; int cap, ret; if (info_idx == -1 || info == NULL) @@ -1060,9 +1063,9 @@ static void fbcon_init(struct vc_data *vc, int init) cap = info->flags; - if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW || + if (vc != svc || console_loglevel <= CONSOLE_LOGLEVEL_QUIET || (info->fix.type == FB_TYPE_TEXT)) - logo = 0; + logo_shown = FBCON_LOGO_DONTSHOW; if (var_to_display(p, &info->var, info)) return; @@ -1178,7 +1181,7 @@ static void fbcon_init(struct vc_data *vc, int init) } else vc_resize(vc, new_cols, new_rows); - if (logo) + if (logo_shown != FBCON_LOGO_DONTSHOW) fbcon_prepare_logo(vc, info, cols, rows, new_cols, new_rows); if (vc == svc && softback_buf)
A variant of this patch has been in Fedora since at least 2010 and AFAWCT there haven't been any complaints about the change in behavior. https://src.fedoraproject.org/cgit/rpms/kernel.git/tree/silence-fbcon-logo.patch P. ---8<--- On text-based systems the 'quiet' boot option will show printk levels higher than CONSOLE_LOGLEVEL_QUIET. The displaying of the Tux logo during boot can cause some consoles to lose display data and as a result confuse the end user. Do not display the Tux logo on systems that are in 'quiet' boot. Signed-off-by: Prarit Bhargava <prarit@redhat.com> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Marko Myllynen <myllynen@redhat.com> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Cc: Kees Cook <keescook@chromium.org> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Thierry Reding <treding@nvidia.com> Cc: Yisheng Xie <ysxie@foxmail.com> Cc: dri-devel@lists.freedesktop.org Cc: Steven Rostedt (VMware) <rostedt@goodmis.org> --- drivers/video/fbdev/core/fbcon.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)