#include <linux/pm_runtime.h>
#include <linux/export.h>
#include <linux/blk-pm.h>
#include <scsi/scsi.h>
#include <scsi/scsi_device.h>
#include <scsi/scsi_driver.h>
#include <scsi/scsi_host.h>
#include "scsi_priv.h"
#ifdef CONFIG_PM_SLEEP
static int do_scsi_suspend(struct device *dev, const struct dev_pm_ops *pm)
{ … }
static int do_scsi_freeze(struct device *dev, const struct dev_pm_ops *pm)
{ … }
static int do_scsi_poweroff(struct device *dev, const struct dev_pm_ops *pm)
{ … }
static int do_scsi_resume(struct device *dev, const struct dev_pm_ops *pm)
{ … }
static int do_scsi_thaw(struct device *dev, const struct dev_pm_ops *pm)
{ … }
static int do_scsi_restore(struct device *dev, const struct dev_pm_ops *pm)
{ … }
static int scsi_dev_type_suspend(struct device *dev,
int (*cb)(struct device *, const struct dev_pm_ops *))
{ … }
static int
scsi_bus_suspend_common(struct device *dev,
int (*cb)(struct device *, const struct dev_pm_ops *))
{ … }
static int scsi_bus_resume_common(struct device *dev,
int (*cb)(struct device *, const struct dev_pm_ops *))
{ … }
static int scsi_bus_prepare(struct device *dev)
{ … }
static int scsi_bus_suspend(struct device *dev)
{ … }
static int scsi_bus_resume(struct device *dev)
{ … }
static int scsi_bus_freeze(struct device *dev)
{ … }
static int scsi_bus_thaw(struct device *dev)
{ … }
static int scsi_bus_poweroff(struct device *dev)
{ … }
static int scsi_bus_restore(struct device *dev)
{ … }
#else
#define scsi_bus_prepare …
#define scsi_bus_suspend …
#define scsi_bus_resume …
#define scsi_bus_freeze …
#define scsi_bus_thaw …
#define scsi_bus_poweroff …
#define scsi_bus_restore …
#endif
static int sdev_runtime_suspend(struct device *dev)
{ … }
static int scsi_runtime_suspend(struct device *dev)
{ … }
static int sdev_runtime_resume(struct device *dev)
{ … }
static int scsi_runtime_resume(struct device *dev)
{ … }
static int scsi_runtime_idle(struct device *dev)
{ … }
int scsi_autopm_get_device(struct scsi_device *sdev)
{ … }
EXPORT_SYMBOL_GPL(…);
void scsi_autopm_put_device(struct scsi_device *sdev)
{ … }
EXPORT_SYMBOL_GPL(…);
void scsi_autopm_get_target(struct scsi_target *starget)
{ … }
void scsi_autopm_put_target(struct scsi_target *starget)
{ … }
int scsi_autopm_get_host(struct Scsi_Host *shost)
{ … }
void scsi_autopm_put_host(struct Scsi_Host *shost)
{ … }
const struct dev_pm_ops scsi_bus_pm_ops = …;