sparc32: add irq + smp declarations to headers
authorSam Ravnborg <sam@ravnborg.org>
Fri, 28 Jan 2011 22:08:18 +0000 (22:08 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 17 Mar 2011 01:19:08 +0000 (18:19 -0700)
In preparation for cleaning up a number of files add
declarations for irq and smp related data/functions to
the relevant headers.

This showed that the extern declaration of cputypval differed
in the two files where it was used.
As cputypval is defined like this:

cputypval:
        .asciz "sun4c"

the correct representation is a char array.
Fix users to use the new declaration.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/include/asm/mmu_32.h
arch/sparc/include/asm/smp_32.h
arch/sparc/kernel/irq_32.c
arch/sparc/kernel/kernel.h
arch/sparc/kernel/setup_32.c

index ccd36d26615a7c12abc6ec328e2295152038f833..6f056e535cf8c34ec1cdb7086a5d1c9c53825994 100644 (file)
@@ -4,4 +4,7 @@
 /* Default "unsigned long" context */
 typedef unsigned long mm_context_t;
 
+/* mm/srmmu.c */
+extern ctxd_t *srmmu_ctx_table_phys;
+
 #endif
index 841905c102155e364eb9e19cf49bb649e850acfe..d82d7f4c0a798f58eef6a4af71bfaa0e2ed357fa 100644 (file)
  */
 
 extern unsigned char boot_cpu_id;
+extern volatile unsigned long cpu_callin_map[NR_CPUS];
+extern cpumask_t smp_commenced_mask;
+extern struct linux_prom_registers smp_penguin_ctable;
 
 typedef void (*smpfunc_t)(unsigned long, unsigned long, unsigned long,
                       unsigned long, unsigned long);
 
+void cpu_panic(void);
+extern void smp4m_irq_rotate(int cpu);
+
 /*
  *     General functions that each host system must provide.
  */
index 07c3e39c02355e78386db52b142ca5af113ad633..85db35d894fc7ee071a6120894b2f518d0efd6b3 100644 (file)
@@ -130,9 +130,9 @@ EXPORT_SYMBOL(arch_local_irq_restore);
 
 static void irq_panic(void)
 {
-    extern char *cputypval;
-    prom_printf("machine: %s doesn't have irq handlers defined!\n",cputypval);
-    prom_halt();
+       prom_printf("machine: %s doesn't have irq handlers defined!\n",
+                   &cputypval[0]);
+       prom_halt();
 }
 
 void (*sparc_init_timers)(irq_handler_t ) =
index 15d8a3f645c9e7ba599753f4f94ce84875af7429..7eb7363143815fc8c965d28cfb53b956d0c0f1c0 100644 (file)
@@ -26,6 +26,53 @@ extern int static_irq_count;
 extern spinlock_t irq_action_lock;
 
 extern void unexpected_irq(int irq, void *dev_id, struct pt_regs * regs);
+extern void init_IRQ(void);
+
+/* sun4c_irq.c */
+extern void sun4c_init_IRQ(void);
+
+/* sun4m_irq.c */
+extern unsigned int lvl14_resolution;
+
+extern void sun4m_init_IRQ(void);
+extern void sun4m_clear_profile_irq(int cpu);
+
+/* sun4d_irq.c */
+extern spinlock_t sun4d_imsk_lock;
+
+extern void sun4d_init_IRQ(void);
+extern int sun4d_request_irq(unsigned int irq,
+                             irq_handler_t handler,
+                             unsigned long irqflags,
+                             const char *devname, void *dev_id);
+extern int show_sun4d_interrupts(struct seq_file *, void *);
+extern void sun4d_distribute_irqs(void);
+extern void sun4d_free_irq(unsigned int irq, void *dev_id);
+
+/* head_32.S */
+extern unsigned int t_nmi[];
+extern unsigned int linux_trap_ipi15_sun4d[];
+extern unsigned int linux_trap_ipi15_sun4m[];
+
+extern unsigned long trapbase_cpu1[];
+extern unsigned long trapbase_cpu2[];
+extern unsigned long trapbase_cpu3[];
+
+extern char cputypval[];
+
+/* entry.S */
+extern unsigned long lvl14_save[4];
+extern unsigned int real_irq_entry[];
+extern unsigned int smp4d_ticker[];
+extern unsigned int patchme_maybe_smp_msg[];
+
+extern void floppy_hardint(void);
+
+/* trampoline_32.S */
+extern int __smp4m_processor_id(void);
+extern int __smp4d_processor_id(void);
+extern unsigned long sun4m_cpu_startup;
+extern unsigned long sun4d_cpu_startup;
 
 #else /* CONFIG_SPARC32 */
 #endif /* CONFIG_SPARC32 */
index 648f2161b8516a87af3e48d7e155c7537e9bb925..7b8b76c9557f2bc0ce0a5c37ec073a00fb5db8b7 100644 (file)
@@ -184,7 +184,6 @@ static void __init boot_flags_init(char *commands)
  */
 
 extern void sun4c_probe_vac(void);
-extern char cputypval;
 
 extern unsigned short root_flags;
 extern unsigned short root_dev;
@@ -218,21 +217,21 @@ void __init setup_arch(char **cmdline_p)
 
        /* Set sparc_cpu_model */
        sparc_cpu_model = sun_unknown;
-       if (!strcmp(&cputypval,"sun4 "))
+       if (!strcmp(&cputypval[0], "sun4 "))
                sparc_cpu_model = sun4;
-       if (!strcmp(&cputypval,"sun4c"))
+       if (!strcmp(&cputypval[0], "sun4c"))
                sparc_cpu_model = sun4c;
-       if (!strcmp(&cputypval,"sun4m"))
+       if (!strcmp(&cputypval[0], "sun4m"))
                sparc_cpu_model = sun4m;
-       if (!strcmp(&cputypval,"sun4s"))
+       if (!strcmp(&cputypval[0], "sun4s"))
                sparc_cpu_model = sun4m; /* CP-1200 with PROM 2.30 -E */
-       if (!strcmp(&cputypval,"sun4d"))
+       if (!strcmp(&cputypval[0], "sun4d"))
                sparc_cpu_model = sun4d;
-       if (!strcmp(&cputypval,"sun4e"))
+       if (!strcmp(&cputypval[0], "sun4e"))
                sparc_cpu_model = sun4e;
-       if (!strcmp(&cputypval,"sun4u"))
+       if (!strcmp(&cputypval[0], "sun4u"))
                sparc_cpu_model = sun4u;
-       if (!strncmp(&cputypval, "leon" , 4))
+       if (!strncmp(&cputypval[0], "leon" , 4))
                sparc_cpu_model = sparc_leon;
 
        printk("ARCH: ");
@@ -335,7 +334,7 @@ static int show_cpuinfo(struct seq_file *m, void *__unused)
                   prom_rev,
                   romvec->pv_printrev >> 16,
                   romvec->pv_printrev & 0xffff,
-                  &cputypval,
+                  &cputypval[0],
                   ncpus_probed,
                   num_online_cpus()
 #ifndef CONFIG_SMP