[MIPS] VPE: Sprinkle device model code into code to make udev happier.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Ralf Baechle
2007-02-07 13:48:59 +00:00
parent 66efc5a7e3
commit 27a3bbaf4b
3 changed files with 43 additions and 1 deletions

View File

@ -29,6 +29,7 @@
*/
#include <linux/kernel.h>
#include <linux/device.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/init.h>
@ -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>
@ -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;
@ -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");
@ -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();
@ -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)
@ -1490,6 +1509,7 @@ static void __exit vpe_module_exit(void)
}
}
device_destroy(mt_class, MKDEV(major, minor));
unregister_chrdev(major, module_name);
}