Staging: sep: statically initialize the fops like other drivers
This doesn't need to be done at runtime so do it at compile time Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
a2171b6807
commit
2f82614ca5
1 changed files with 24 additions and 23 deletions
|
@ -71,14 +71,6 @@
|
|||
INT_MODULE_PARM(sepDebug, 0x0);
|
||||
MODULE_PARM_DESC(sepDebug, "Flag to enable SEP debug messages");
|
||||
|
||||
/* major and minor device numbers */
|
||||
static dev_t g_sep_device_number;
|
||||
|
||||
/* the files operations structure of the driver */
|
||||
static struct file_operations g_sep_fops;
|
||||
|
||||
/* cdev struct of the driver */
|
||||
static struct cdev g_sep_cdev;
|
||||
|
||||
/*
|
||||
mutex for the access to the internals of the sep driver
|
||||
|
@ -2456,31 +2448,40 @@ static void sep_configure_dma_burst(void)
|
|||
|
||||
}
|
||||
|
||||
/* major and minor device numbers */
|
||||
static dev_t sep_devno;
|
||||
|
||||
/* the files operations structure of the driver */
|
||||
static struct file_operations sep_file_operations = {
|
||||
.owner = THIS_MODULE,
|
||||
.ioctl = sep_ioctl,
|
||||
.poll = sep_poll,
|
||||
.open = sep_open,
|
||||
.release = sep_release,
|
||||
.mmap = sep_mmap,
|
||||
};
|
||||
|
||||
|
||||
/* cdev struct of the driver */
|
||||
static struct cdev sep_cdev;
|
||||
|
||||
/*
|
||||
this function registers the driver to the file system
|
||||
*/
|
||||
static int sep_register_driver_to_fs(void)
|
||||
{
|
||||
int ret_val = alloc_chrdev_region(&g_sep_device_number, 0, 1, "sep_sec_driver");
|
||||
int ret_val = alloc_chrdev_region(&sep_devno, 0, 1, "sep_sec_driver");
|
||||
if (ret_val) {
|
||||
edbg("sep_driver:major number allocation failed, retval is %d\n", ret_val);
|
||||
goto end_function;
|
||||
}
|
||||
|
||||
/* set the files operations structure */
|
||||
g_sep_fops.owner = THIS_MODULE;
|
||||
g_sep_fops.ioctl = sep_ioctl;
|
||||
g_sep_fops.poll = sep_poll;
|
||||
g_sep_fops.open = sep_open;
|
||||
g_sep_fops.release = sep_release;
|
||||
g_sep_fops.mmap = sep_mmap;
|
||||
|
||||
/* init cdev */
|
||||
cdev_init(&g_sep_cdev, &g_sep_fops);
|
||||
g_sep_cdev.owner = THIS_MODULE;
|
||||
cdev_init(&sep_cdev, &sep_file_operations);
|
||||
sep_cdev.owner = THIS_MODULE;
|
||||
|
||||
/* register the driver with the kernel */
|
||||
ret_val = cdev_add(&g_sep_cdev, g_sep_device_number, 1);
|
||||
ret_val = cdev_add(&sep_cdev, sep_devno, 1);
|
||||
|
||||
if (ret_val) {
|
||||
edbg("sep_driver:cdev_add failed, retval is %d\n", ret_val);
|
||||
|
@ -2492,7 +2493,7 @@ static int sep_register_driver_to_fs(void)
|
|||
end_function_unregister_devnum:
|
||||
|
||||
/* unregister dev numbers */
|
||||
unregister_chrdev_region(g_sep_device_number, 1);
|
||||
unregister_chrdev_region(sep_devno, 1);
|
||||
|
||||
end_function:
|
||||
return ret_val;
|
||||
|
@ -2503,9 +2504,9 @@ static int sep_register_driver_to_fs(void)
|
|||
*/
|
||||
static void sep_unregister_driver_from_fs(void)
|
||||
{
|
||||
cdev_del(&g_sep_cdev);
|
||||
cdev_del(&sep_cdev);
|
||||
/* unregister dev numbers */
|
||||
unregister_chrdev_region(g_sep_device_number, 1);
|
||||
unregister_chrdev_region(sep_devno, 1);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue