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