sh: Rip out special unknown machvec.

This kills off the BareCPU board as a "special" machvec, rather,
we leave this as a default for when no other vector is available,
or when we want to use it in combination with other vectors for
testing with generic ops. As sh_mv is copied out anyways (or
overloaded when an alternate vector is explicitly selected), this
doesn't consume any additional memory.

The generic machvec can be forcibly selected with sh_mv=generic,
or by not having any other boards enabled.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
diff --git a/arch/sh/kernel/cf-enabler.c b/arch/sh/kernel/cf-enabler.c
index ebc73b8..1c3b996 100644
--- a/arch/sh/kernel/cf-enabler.c
+++ b/arch/sh/kernel/cf-enabler.c
@@ -75,11 +75,7 @@
 #if defined(CONFIG_CPU_SH4)
 	allocate_cf_area();
 #endif
-#if defined(CONFIG_SH_UNKNOWN)
-	/* This should be done in each board's init_xxx_irq. */
-	make_imask_irq(14);
-	disable_irq(14);
-#endif
+
 	return 0;
 }
 
diff --git a/arch/sh/kernel/machvec.c b/arch/sh/kernel/machvec.c
index e8121de..23c5948 100644
--- a/arch/sh/kernel/machvec.c
+++ b/arch/sh/kernel/machvec.c
@@ -35,6 +35,8 @@
 	return NULL;
 }
 
+static unsigned int __initdata machvec_selected;
+
 static int __init early_parse_mv(char *from)
 {
 	char mv_name[MV_NAME_SIZE] = "";
@@ -55,9 +57,15 @@
 	mv_name[mv_len] = '\0';
 	from = mv_end;
 
+	machvec_selected = 1;
+
+	/* Boot with the generic vector */
+	if (strcmp(mv_name, "generic") == 0)
+		return 0;
+
 	mvp = get_mv_byname(mv_name);
 	if (unlikely(!mvp)) {
-		printk("Available vectors:\n\n\t");
+		printk("Available vectors:\n\n\t'%s', ", sh_mv.mv_name);
 		for_each_mv(mvp)
 			printk("'%s', ", mvp->mv_name);
 		printk("\n\n");
@@ -76,7 +84,7 @@
 	 * Only overload the machvec if one hasn't been selected on
 	 * the command line with sh_mv=
 	 */
-	if (strcmp(sh_mv.mv_name, "Unknown") != 0) {
+	if (!machvec_selected) {
 		unsigned long machvec_size;
 
 		machvec_size = ((unsigned long)&__machvec_end -
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index 55ed653..6f1ea9b 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -47,7 +47,7 @@
  * The machine vector. First entry in .machvec.init, or clobbered by
  * sh_mv= on the command line, prior to .machvec.init teardown.
  */
-struct sh_machine_vector sh_mv = { .mv_name = "Unknown", };
+struct sh_machine_vector sh_mv = { .mv_name = "generic", };
 
 #ifdef CONFIG_VT
 struct screen_info screen_info;