aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/hvc
diff options
context:
space:
mode:
authorMiche Baker-Harvey <miche@google.com>2011-10-05 13:48:51 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-10-18 17:17:10 -0400
commit361162459f62dc0826b82c9690a741a940f457f0 (patch)
tree5ad067d69e9f3d765c4a28dc75b1a89fdfca494c /drivers/tty/hvc
parent53d785ccd918d571c227d459477793872676fc02 (diff)
hvc_console: display printk messages on console.
printk only works for "registered consoles." Currently, the hvc_console code calls register_console() from hvc_instantiate(), but that's only used in the early console case. In hvc_alloc(), register_console() was not called. Add a call to register_console() in hvc_alloc(), set up the index in the hvc_console, and set up the necessary vtermnos[] and cons_op[] entries so that printk functions work. Signed-off-by: Miche Baker-Harvey <miche@google.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/tty/hvc')
-rw-r--r--drivers/tty/hvc/hvc_console.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c
index b6b2d18fa38..7430bc3c8d5 100644
--- a/drivers/tty/hvc/hvc_console.c
+++ b/drivers/tty/hvc/hvc_console.c
@@ -852,7 +852,7 @@ struct hvc_struct *hvc_alloc(uint32_t vtermno, int data,
852 * find index to use: 852 * find index to use:
853 * see if this vterm id matches one registered for console. 853 * see if this vterm id matches one registered for console.
854 */ 854 */
855 for (i=0; i < MAX_NR_HVC_CONSOLES; i++) 855 for (i = 0; i < MAX_NR_HVC_CONSOLES; i++)
856 if (vtermnos[i] == hp->vtermno && 856 if (vtermnos[i] == hp->vtermno &&
857 cons_ops[i] == hp->ops) 857 cons_ops[i] == hp->ops)
858 break; 858 break;
@@ -862,9 +862,13 @@ struct hvc_struct *hvc_alloc(uint32_t vtermno, int data,
862 i = ++last_hvc; 862 i = ++last_hvc;
863 863
864 hp->index = i; 864 hp->index = i;
865 hvc_console.index = i;
866 vtermnos[i] = vtermno;
867 cons_ops[i] = ops;
865 868
866 list_add_tail(&(hp->next), &hvc_structs); 869 list_add_tail(&(hp->next), &hvc_structs);
867 spin_unlock(&hvc_structs_lock); 870 spin_unlock(&hvc_structs_lock);
871 register_console(&hvc_console);
868 872
869 return hp; 873 return hp;
870} 874}
@@ -875,6 +879,7 @@ int hvc_remove(struct hvc_struct *hp)
875 unsigned long flags; 879 unsigned long flags;
876 struct tty_struct *tty; 880 struct tty_struct *tty;
877 881
882 unregister_console(&hvc_console);
878 spin_lock_irqsave(&hp->lock, flags); 883 spin_lock_irqsave(&hp->lock, flags);
879 tty = tty_kref_get(hp->tty); 884 tty = tty_kref_get(hp->tty);
880 885