diff options
| author | Søren Schmidt <sos@FreeBSD.org> | 2003-05-04 09:34:14 +0000 |
|---|---|---|
| committer | Søren Schmidt <sos@FreeBSD.org> | 2003-05-04 09:34:14 +0000 |
| commit | 9c51ecf436e170469b2985d9dbe99b689042cdea (patch) | |
| tree | ac4daa951f65c242e0cb23730580c8fb422bd2a5 | |
| parent | 7ed6898c2f519f5b93edf34712c96dbe46118a43 (diff) | |
Notes
| -rw-r--r-- | sys/dev/ata/ata-all.c | 13 | ||||
| -rw-r--r-- | sys/dev/ata/ata-all.h | 1 | ||||
| -rw-r--r-- | sys/dev/ata/ata-pci.c | 1 |
3 files changed, 15 insertions, 0 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c index c3dbe6edec81..9a5daf701aea 100644 --- a/sys/dev/ata/ata-all.c +++ b/sys/dev/ata/ata-all.c @@ -241,6 +241,19 @@ ata_detach(device_t dev) } int +ata_suspend(device_t dev) +{ + struct ata_channel *ch; + + if (!dev || !(ch = device_get_softc(dev))) + return ENXIO; + + ch->locking(ch, ATA_LF_LOCK); + ATA_SLEEPLOCK_CH(ch, ATA_CONTROL); + return 0; +} + +int ata_resume(device_t dev) { struct ata_channel *ch; diff --git a/sys/dev/ata/ata-all.h b/sys/dev/ata/ata-all.h index 8f261cb34604..44cb042e2b82 100644 --- a/sys/dev/ata/ata-all.h +++ b/sys/dev/ata/ata-all.h @@ -282,6 +282,7 @@ extern struct intr_config_hook *ata_delayed_attach; int ata_probe(device_t); int ata_attach(device_t); int ata_detach(device_t); +int ata_suspend(device_t); int ata_resume(device_t); void ata_start(struct ata_channel *); void ata_reset(struct ata_channel *); diff --git a/sys/dev/ata/ata-pci.c b/sys/dev/ata/ata-pci.c index 217e35f16c73..0636194d735d 100644 --- a/sys/dev/ata/ata-pci.c +++ b/sys/dev/ata/ata-pci.c @@ -522,6 +522,7 @@ static device_method_t ata_pcisub_methods[] = { DEVMETHOD(device_probe, ata_pcisub_probe), DEVMETHOD(device_attach, ata_attach), DEVMETHOD(device_detach, ata_detach), + DEVMETHOD(device_suspend, ata_suspend), DEVMETHOD(device_resume, ata_resume), { 0, 0 } }; |
