Skip to content

Commit

Permalink
ALSA: aoa-soundbus: Switch to dev_pm_ops
Browse files Browse the repository at this point in the history
Update the aoa-soundbus framework to use dev_pm_ops rather than the
deprecated legacy suspend and resume callbacks.

Since there isn't anything special to do at the bus level the bus driver
does not have to implement any callbacks. The device driver core will
automatically pick up and execute the device's PM ops.

As there is only a single aoa-soundbus driver implementing suspend and
resume, update both the core and driver at the same time to avoid
unnecessary code churn.

Signed-off-by: Lars-Peter Clausen <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
  • Loading branch information
larsclausen authored and tiwai committed Aug 5, 2015
1 parent 9f502ff commit f6af5df
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 39 deletions.
21 changes: 12 additions & 9 deletions sound/aoa/fabrics/layout.c
Original file line number Diff line number Diff line change
Expand Up @@ -1120,39 +1120,42 @@ static int aoa_fabric_layout_remove(struct soundbus_dev *sdev)
return 0;
}

#ifdef CONFIG_PM
static int aoa_fabric_layout_suspend(struct soundbus_dev *sdev, pm_message_t state)
#ifdef CONFIG_PM_SLEEP
static int aoa_fabric_layout_suspend(struct device *dev)
{
struct layout_dev *ldev = dev_get_drvdata(&sdev->ofdev.dev);
struct layout_dev *ldev = dev_get_drvdata(dev);

if (ldev->gpio.methods && ldev->gpio.methods->all_amps_off)
ldev->gpio.methods->all_amps_off(&ldev->gpio);

return 0;
}

static int aoa_fabric_layout_resume(struct soundbus_dev *sdev)
static int aoa_fabric_layout_resume(struct device *dev)
{
struct layout_dev *ldev = dev_get_drvdata(&sdev->ofdev.dev);
struct layout_dev *ldev = dev_get_drvdata(dev);

if (ldev->gpio.methods && ldev->gpio.methods->all_amps_restore)
ldev->gpio.methods->all_amps_restore(&ldev->gpio);

return 0;
}

static SIMPLE_DEV_PM_OPS(aoa_fabric_layout_pm_ops,
aoa_fabric_layout_suspend, aoa_fabric_layout_resume);

#endif

static struct soundbus_driver aoa_soundbus_driver = {
.name = "snd_aoa_soundbus_drv",
.owner = THIS_MODULE,
.probe = aoa_fabric_layout_probe,
.remove = aoa_fabric_layout_remove,
#ifdef CONFIG_PM
.suspend = aoa_fabric_layout_suspend,
.resume = aoa_fabric_layout_resume,
#endif
.driver = {
.owner = THIS_MODULE,
#ifdef CONFIG_PM_SLEEP
.pm = &aoa_fabric_layout_pm_ops,
#endif
}
};

Expand Down
28 changes: 0 additions & 28 deletions sound/aoa/soundbus/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -126,30 +126,6 @@ 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 = {
Expand All @@ -158,10 +134,6 @@ static struct bus_type soundbus_bus_type = {
.uevent = soundbus_uevent,
.remove = soundbus_device_remove,
.shutdown = soundbus_device_shutdown,
#ifdef CONFIG_PM
.suspend = soundbus_device_suspend,
.resume = soundbus_device_resume,
#endif
.dev_groups = soundbus_dev_groups,
};

Expand Down
2 changes: 0 additions & 2 deletions sound/aoa/soundbus/soundbus.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit f6af5df

Please sign in to comment.