summaryrefslogtreecommitdiffstats
path: root/kernel/sound/aoa/soundbus
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sound/aoa/soundbus')
-rw-r--r--kernel/sound/aoa/soundbus/core.c32
-rw-r--r--kernel/sound/aoa/soundbus/soundbus.h4
-rw-r--r--kernel/sound/aoa/soundbus/sysfs.c13
3 files changed, 12 insertions, 37 deletions
diff --git a/kernel/sound/aoa/soundbus/core.c b/kernel/sound/aoa/soundbus/core.c
index 7487eb76e..70bcaa7f9 100644
--- a/kernel/sound/aoa/soundbus/core.c
+++ b/kernel/sound/aoa/soundbus/core.c
@@ -126,41 +126,15 @@ static void soundbus_device_shutdown(struct device *dev)
drv->shutdown(soundbus_dev);
}
-#ifdef CONFIG_PM
-
-static int soundbus_device_suspend(struct device *dev, pm_message_t state)
-{
- struct soundbus_dev * soundbus_dev = to_soundbus_device(dev);
- struct soundbus_driver * drv = to_soundbus_driver(dev->driver);
-
- if (dev->driver && drv->suspend)
- return drv->suspend(soundbus_dev, state);
- return 0;
-}
-
-static int soundbus_device_resume(struct device * dev)
-{
- struct soundbus_dev * soundbus_dev = to_soundbus_device(dev);
- struct soundbus_driver * drv = to_soundbus_driver(dev->driver);
-
- if (dev->driver && drv->resume)
- return drv->resume(soundbus_dev);
- return 0;
-}
-
-#endif /* CONFIG_PM */
-
+/* soundbus_dev_attrs is declared in sysfs.c */
+ATTRIBUTE_GROUPS(soundbus_dev);
static struct bus_type soundbus_bus_type = {
.name = "aoa-soundbus",
.probe = soundbus_probe,
.uevent = soundbus_uevent,
.remove = soundbus_device_remove,
.shutdown = soundbus_device_shutdown,
-#ifdef CONFIG_PM
- .suspend = soundbus_device_suspend,
- .resume = soundbus_device_resume,
-#endif
- .dev_attrs = soundbus_dev_attrs,
+ .dev_groups = soundbus_dev_groups,
};
int soundbus_add_one(struct soundbus_dev *dev)
diff --git a/kernel/sound/aoa/soundbus/soundbus.h b/kernel/sound/aoa/soundbus/soundbus.h
index adecbf36f..ae4022438 100644
--- a/kernel/sound/aoa/soundbus/soundbus.h
+++ b/kernel/sound/aoa/soundbus/soundbus.h
@@ -188,8 +188,6 @@ struct soundbus_driver {
int (*probe)(struct soundbus_dev* dev);
int (*remove)(struct soundbus_dev* dev);
- int (*suspend)(struct soundbus_dev* dev, pm_message_t state);
- int (*resume)(struct soundbus_dev* dev);
int (*shutdown)(struct soundbus_dev* dev);
struct device_driver driver;
@@ -199,6 +197,6 @@ struct soundbus_driver {
extern int soundbus_register_driver(struct soundbus_driver *drv);
extern void soundbus_unregister_driver(struct soundbus_driver *drv);
-extern struct device_attribute soundbus_dev_attrs[];
+extern struct attribute *soundbus_dev_attrs[];
#endif /* __SOUNDBUS_H */
diff --git a/kernel/sound/aoa/soundbus/sysfs.c b/kernel/sound/aoa/soundbus/sysfs.c
index e0980b5c2..5b2d51d99 100644
--- a/kernel/sound/aoa/soundbus/sysfs.c
+++ b/kernel/sound/aoa/soundbus/sysfs.c
@@ -30,13 +30,16 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
return length;
}
+static DEVICE_ATTR_RO(modalias);
soundbus_config_of_attr (name, "%s\n");
+static DEVICE_ATTR_RO(name);
soundbus_config_of_attr (type, "%s\n");
+static DEVICE_ATTR_RO(type);
-struct device_attribute soundbus_dev_attrs[] = {
- __ATTR_RO(name),
- __ATTR_RO(type),
- __ATTR_RO(modalias),
- __ATTR_NULL
+struct attribute *soundbus_dev_attrs[] = {
+ &dev_attr_name.attr,
+ &dev_attr_type.attr,
+ &dev_attr_modalias.attr,
+ NULL,
};