Loading arch/mips/kernel/mips-mt.c +19 −0 Original line number Diff line number Diff line Loading @@ -3,9 +3,11 @@ * Copyright (C) 2005 Mips Technologies, Inc */ #include <linux/device.h> #include <linux/kernel.h> #include <linux/sched.h> #include <linux/cpumask.h> #include <linux/module.h> #include <linux/interrupt.h> #include <linux/security.h> Loading Loading @@ -453,3 +455,20 @@ void mt_cflush_release(void) #endif /* CONFIG_MIPS_MT_SMTC */ /* FILL IN VSMP and AP/SP VERSIONS HERE */ } struct class *mt_class; static int __init mt_init(void) { struct class *mtc; mtc = class_create(THIS_MODULE, "mt"); if (IS_ERR(mtc)) return PTR_ERR(mtc); mt_class = mtc; return 0; } subsys_initcall(mt_init); arch/mips/kernel/vpe.c +21 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ */ #include <linux/kernel.h> #include <linux/device.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/init.h> Loading @@ -48,6 +49,7 @@ #include <asm/cacheflush.h> #include <asm/atomic.h> #include <asm/cpu.h> #include <asm/mips_mt.h> #include <asm/processor.h> #include <asm/system.h> #include <asm/vpe.h> Loading @@ -64,6 +66,7 @@ typedef void *vpe_handle; static char module_name[] = "vpe"; static int major; static const int minor = 1; /* fixed for now */ #ifdef CONFIG_MIPS_APSP_KSPD static struct kspd_notifications kspd_events; Loading Loading @@ -1365,12 +1368,15 @@ static void kspd_sp_exit( int sp_id) } #endif static struct device *vpe_dev; static int __init vpe_module_init(void) { struct vpe *v = NULL; struct device *dev; struct tc *t; unsigned long val; int i; int i, err; if (!cpu_has_mipsmt) { printk("VPE loader: not a MIPS MT capable processor\n"); Loading @@ -1383,6 +1389,14 @@ static int __init vpe_module_init(void) return major; } dev = device_create(mt_class, NULL, MKDEV(major, minor), "tc%d", minor); if (IS_ERR(dev)) { err = PTR_ERR(dev); goto out_chrdev; } vpe_dev = dev; dmt(); dvpe(); Loading Loading @@ -1478,6 +1492,11 @@ static int __init vpe_module_init(void) kspd_events.kspd_sp_exit = kspd_sp_exit; #endif return 0; out_chrdev: unregister_chrdev(major, module_name); return err; } static void __exit vpe_module_exit(void) Loading @@ -1490,6 +1509,7 @@ static void __exit vpe_module_exit(void) } } device_destroy(mt_class, MKDEV(major, minor)); unregister_chrdev(major, module_name); } Loading include/asm-mips/mips_mt.h +3 −0 Original line number Diff line number Diff line Loading @@ -12,4 +12,7 @@ extern unsigned long mt_fpemul_threshold; extern void mips_mt_regdump(unsigned long previous_mvpcontrol_value); extern void mips_mt_set_cpuoptions(void); struct class; extern struct class *mt_class; #endif /* __ASM_MIPS_MT_H */ Loading
arch/mips/kernel/mips-mt.c +19 −0 Original line number Diff line number Diff line Loading @@ -3,9 +3,11 @@ * Copyright (C) 2005 Mips Technologies, Inc */ #include <linux/device.h> #include <linux/kernel.h> #include <linux/sched.h> #include <linux/cpumask.h> #include <linux/module.h> #include <linux/interrupt.h> #include <linux/security.h> Loading Loading @@ -453,3 +455,20 @@ void mt_cflush_release(void) #endif /* CONFIG_MIPS_MT_SMTC */ /* FILL IN VSMP and AP/SP VERSIONS HERE */ } struct class *mt_class; static int __init mt_init(void) { struct class *mtc; mtc = class_create(THIS_MODULE, "mt"); if (IS_ERR(mtc)) return PTR_ERR(mtc); mt_class = mtc; return 0; } subsys_initcall(mt_init);
arch/mips/kernel/vpe.c +21 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ */ #include <linux/kernel.h> #include <linux/device.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/init.h> Loading @@ -48,6 +49,7 @@ #include <asm/cacheflush.h> #include <asm/atomic.h> #include <asm/cpu.h> #include <asm/mips_mt.h> #include <asm/processor.h> #include <asm/system.h> #include <asm/vpe.h> Loading @@ -64,6 +66,7 @@ typedef void *vpe_handle; static char module_name[] = "vpe"; static int major; static const int minor = 1; /* fixed for now */ #ifdef CONFIG_MIPS_APSP_KSPD static struct kspd_notifications kspd_events; Loading Loading @@ -1365,12 +1368,15 @@ static void kspd_sp_exit( int sp_id) } #endif static struct device *vpe_dev; static int __init vpe_module_init(void) { struct vpe *v = NULL; struct device *dev; struct tc *t; unsigned long val; int i; int i, err; if (!cpu_has_mipsmt) { printk("VPE loader: not a MIPS MT capable processor\n"); Loading @@ -1383,6 +1389,14 @@ static int __init vpe_module_init(void) return major; } dev = device_create(mt_class, NULL, MKDEV(major, minor), "tc%d", minor); if (IS_ERR(dev)) { err = PTR_ERR(dev); goto out_chrdev; } vpe_dev = dev; dmt(); dvpe(); Loading Loading @@ -1478,6 +1492,11 @@ static int __init vpe_module_init(void) kspd_events.kspd_sp_exit = kspd_sp_exit; #endif return 0; out_chrdev: unregister_chrdev(major, module_name); return err; } static void __exit vpe_module_exit(void) Loading @@ -1490,6 +1509,7 @@ static void __exit vpe_module_exit(void) } } device_destroy(mt_class, MKDEV(major, minor)); unregister_chrdev(major, module_name); } Loading
include/asm-mips/mips_mt.h +3 −0 Original line number Diff line number Diff line Loading @@ -12,4 +12,7 @@ extern unsigned long mt_fpemul_threshold; extern void mips_mt_regdump(unsigned long previous_mvpcontrol_value); extern void mips_mt_set_cpuoptions(void); struct class; extern struct class *mt_class; #endif /* __ASM_MIPS_MT_H */