Branch data Line data Source code
1 : : /*
2 : : * Linux driver model AC97 bus interface
3 : : *
4 : : * Author: Nicolas Pitre
5 : : * Created: Jan 14, 2005
6 : : * Copyright: (C) MontaVista Software Inc.
7 : : *
8 : : * This program is free software; you can redistribute it and/or modify
9 : : * it under the terms of the GNU General Public License as published by
10 : : * the Free Software Foundation; either version 2 of the License, or
11 : : * (at your option) any later version.
12 : : */
13 : :
14 : : #include <linux/module.h>
15 : : #include <linux/init.h>
16 : : #include <linux/device.h>
17 : : #include <linux/string.h>
18 : : #include <sound/ac97_codec.h>
19 : :
20 : : /*
21 : : * Let drivers decide whether they want to support given codec from their
22 : : * probe method. Drivers have direct access to the struct snd_ac97
23 : : * structure and may decide based on the id field amongst other things.
24 : : */
25 : 0 : static int ac97_bus_match(struct device *dev, struct device_driver *drv)
26 : : {
27 : 0 : return 1;
28 : : }
29 : :
30 : : #ifdef CONFIG_PM
31 : 0 : static int ac97_bus_suspend(struct device *dev, pm_message_t state)
32 : : {
33 : : int ret = 0;
34 : :
35 [ # # ][ # # ]: 0 : if (dev->driver && dev->driver->suspend)
36 : 0 : ret = dev->driver->suspend(dev, state);
37 : :
38 : 0 : return ret;
39 : : }
40 : :
41 : 0 : static int ac97_bus_resume(struct device *dev)
42 : : {
43 : : int ret = 0;
44 : :
45 [ # # ][ # # ]: 0 : if (dev->driver && dev->driver->resume)
46 : 0 : ret = dev->driver->resume(dev);
47 : :
48 : 0 : return ret;
49 : : }
50 : : #endif /* CONFIG_PM */
51 : :
52 : : struct bus_type ac97_bus_type = {
53 : : .name = "ac97",
54 : : .match = ac97_bus_match,
55 : : #ifdef CONFIG_PM
56 : : .suspend = ac97_bus_suspend,
57 : : .resume = ac97_bus_resume,
58 : : #endif /* CONFIG_PM */
59 : : };
60 : :
61 : 0 : static int __init ac97_bus_init(void)
62 : : {
63 : 0 : return bus_register(&ac97_bus_type);
64 : : }
65 : :
66 : : subsys_initcall(ac97_bus_init);
67 : :
68 : 0 : static void __exit ac97_bus_exit(void)
69 : : {
70 : 0 : bus_unregister(&ac97_bus_type);
71 : 0 : }
72 : :
73 : : module_exit(ac97_bus_exit);
74 : :
75 : : EXPORT_SYMBOL(ac97_bus_type);
76 : :
77 : : MODULE_LICENSE("GPL");
|