Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=accaa24c492f1aa3b9c37226d868dc59c3007531
Commit:     accaa24c492f1aa3b9c37226d868dc59c3007531
Parent:     840bc9b0937aebd6004debf457cfb53f1f122d3b
Author:     Randy Dunlap <[EMAIL PROTECTED]>
AuthorDate: Tue Oct 16 01:29:37 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Tue Oct 16 09:43:20 2007 -0700

    fbcon: logo: disable logo at boot
    
    Add logo.nologo kernel boot option to disable the logo in order to provide
    more screen space for kernel messages; especially useful when debugging and
    screen space is more critical.
    
    newport_con driver changes are untested.
    
    [EMAIL PROTECTED]: cleanups, coding-style fixes]
    Signed-off-by: Randy Dunlap <[EMAIL PROTECTED]>
    Signed-off-by: Antonino Daplas <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 Documentation/kernel-parameters.txt |    5 +++++
 drivers/video/console/newport_con.c |   20 ++++++++++++++------
 drivers/video/logo/logo.c           |    7 +++++++
 3 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/Documentation/kernel-parameters.txt 
b/Documentation/kernel-parameters.txt
index 760ed57..eb24799 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -911,6 +911,11 @@ and is between 256 and 4096 characters. It is defined in 
the file
                        n must be a power of two.  The default size
                        is set in the kernel config file.
 
+       logo.nologo     [FB] Disables display of the built-in Linux logo.
+                       This may be used to provide more screen space for
+                       kernel log messages and is useful when debugging
+                       kernel boot problems.
+
        lp=0            [LP]    Specify parallel ports to use, e.g,
        lp=port[,port...]       lp=none,parport0 (lp0 not configured, lp1 uses
        lp=reset                first parallel port). 'lp=0' disables the
diff --git a/drivers/video/console/newport_con.c 
b/drivers/video/console/newport_con.c
index dda0586..f57d7b2 100644
--- a/drivers/video/console/newport_con.c
+++ b/drivers/video/console/newport_con.c
@@ -98,14 +98,19 @@ static inline void newport_init_cmap(void)
        }
 }
 
-static void newport_show_logo(void)
+static struct linux_logo *newport_show_logo(void)
 {
 #ifdef CONFIG_LOGO_SGI_CLUT224
        const struct linux_logo *logo = fb_find_logo(8);
-       const unsigned char *clut = logo->clut;
-       const unsigned char *data = logo->data;
+       const unsigned char *clut;
+       const unsigned char *data;
        unsigned long i;
 
+       if (!logo)
+               return NULL;
+       *clut = logo->clut;
+       *data = logo->data;
+
        for (i = 0; i < logo->clutsize; i++) {
                newport_bfwait(npregs);
                newport_cmap_setaddr(npregs, i + 0x20);
@@ -123,6 +128,8 @@ static void newport_show_logo(void)
 
        for (i = 0; i < logo->width*logo->height; i++)
                npregs->go.hostrw0 = *data++ << 24;
+
+       return logo;
 #endif /* CONFIG_LOGO_SGI_CLUT224 */
 }
 
@@ -465,9 +472,10 @@ static int newport_switch(struct vc_data *vc)
        npregs->cset.topscan = 0x3ff;
 
        if (!logo_drawn) {
-               newport_show_logo();
-               logo_drawn = 1;
-               logo_active = 1;
+               if (newport_show_logo()) {
+                       logo_drawn = 1;
+                       logo_active = 1;
+               }
        }
 
        return 1;
diff --git a/drivers/video/logo/logo.c b/drivers/video/logo/logo.c
index 2b0f799..a9283ba 100644
--- a/drivers/video/logo/logo.c
+++ b/drivers/video/logo/logo.c
@@ -34,6 +34,10 @@ extern const struct linux_logo logo_superh_vga16;
 extern const struct linux_logo logo_superh_clut224;
 extern const struct linux_logo logo_m32r_clut224;
 
+static int nologo;
+module_param(nologo, bool, 0);
+MODULE_PARM_DESC(nologo, "Disables startup logo");
+
 /* logo's are marked __initdata. Use __init_refok to tell
  * modpost that it is intended that this function uses data
  * marked __initdata.
@@ -42,6 +46,9 @@ const struct linux_logo * __init_refok fb_find_logo(int depth)
 {
        const struct linux_logo *logo = NULL;
 
+       if (nologo)
+               return NULL;
+
        if (depth >= 1) {
 #ifdef CONFIG_LOGO_LINUX_MONO
                /* Generic Linux logo */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to