OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [drivers/] [cpuidle/] [driver.c] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
 * driver.c - driver support
3
 *
4
 * (C) 2006-2007 Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
5
 *               Shaohua Li <shaohua.li@intel.com>
6
 *               Adam Belay <abelay@novell.com>
7
 *
8
 * This code is licenced under the GPL.
9
 */
10
 
11
#include <linux/mutex.h>
12
#include <linux/module.h>
13
#include <linux/cpuidle.h>
14
 
15
#include "cpuidle.h"
16
 
17
struct cpuidle_driver *cpuidle_curr_driver;
18
DEFINE_SPINLOCK(cpuidle_driver_lock);
19
 
20
/**
21
 * cpuidle_register_driver - registers a driver
22
 * @drv: the driver
23
 */
24
int cpuidle_register_driver(struct cpuidle_driver *drv)
25
{
26
        if (!drv)
27
                return -EINVAL;
28
 
29
        spin_lock(&cpuidle_driver_lock);
30
        if (cpuidle_curr_driver) {
31
                spin_unlock(&cpuidle_driver_lock);
32
                return -EBUSY;
33
        }
34
        cpuidle_curr_driver = drv;
35
        spin_unlock(&cpuidle_driver_lock);
36
 
37
        return 0;
38
}
39
 
40
EXPORT_SYMBOL_GPL(cpuidle_register_driver);
41
 
42
/**
43
 * cpuidle_unregister_driver - unregisters a driver
44
 * @drv: the driver
45
 */
46
void cpuidle_unregister_driver(struct cpuidle_driver *drv)
47
{
48
        if (!drv)
49
                return;
50
 
51
        spin_lock(&cpuidle_driver_lock);
52
        cpuidle_curr_driver = NULL;
53
        spin_unlock(&cpuidle_driver_lock);
54
}
55
 
56
EXPORT_SYMBOL_GPL(cpuidle_unregister_driver);

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.