config_attach.9 seems to be the man page which best describes what
struct cfattach members do. The following patch adds a section
describing what the ca_activate function pointer within struct cfattach
does via a description of the corresponding config_deactivate function
as to follow config_attach.9's established model. The following
additions do not incur any mdoc(7) warnings or errors.
I couldn't ascertain whether config_deactivate is always called from
process context; if anyone can authoritatively determine it is, please
chime in here so I can make a note of it in the CONTEXT section.
Ian
Index: man9/config_attach.9
===================================================================
RCS file: /cvs/src/share/man/man9/config_attach.9,v
retrieving revision 1.3
diff -u -p -r1.3 config_attach.9
--- man9/config_attach.9 5 Dec 2014 16:55:53 -0000 1.3
+++ man9/config_attach.9 8 Aug 2016 04:13:27 -0000
@@ -34,7 +34,8 @@
.Sh NAME
.Nm config_attach ,
.Nm config_detach ,
-.Nm config_detach_children
+.Nm config_detach_children ,
+.Nm config_deactivate
.Nd attach and detach devices
.Sh SYNOPSIS
.In sys/param.h
@@ -43,9 +44,11 @@
.Fn config_attach "struct device *parent" "void *cf" "void *aux" \
"cfprint_t print"
.Ft "int"
-.Fn config_detach "struct device *dev" "int flags"
+.Fn config_detach "struct device *dev"
.Ft "int"
.Fn config_detach_children "struct device *parent" "int flags"
+.Ft "int"
+.Fn config_deactivate "struct device *dev"
.Sh DESCRIPTION
The
.Fn config_attach
@@ -71,6 +74,21 @@ contains detachment flags:
#define DETACH_FORCE 0x01 /* Force detachment; hardware gone */
#define DETACH_QUIET 0x02 /* Don't print a notice */
.Ed
+.Pp
+The
+.Fn config_deactivate
+function is called by the parent to change the child device's operational state
+by calling the driver's activate function with a
+.Fa flags
+argument describing the targeted operational state:
+.Bd -literal
+#define DVACT_DEACTIVATE 1 /* deactivate the device */
+#define DVACT_QUIESCE 2 /* warn the device about
suspend */
+#define DVACT_SUSPEND 3 /* suspend the device */
+#define DVACT_RESUME 4 /* resume the device */
+#define DVACT_WAKEUP 5 /* tell device to recover after
resume */
+#define DVACT_POWERDOWN 6 /* power device down */
+.Ed
.Sh CONTEXT
.Fn config_detach
is always called from process context, allowing
@@ -79,6 +97,8 @@ to be called while the device detaches i
which have a device open).
.Sh RETURN VALUES
.Fn config_detach
-returns zero if successful and an error code otherwise.
+and
+.Fn config_deactivate
+return zero if successful and an error code otherwise.
.Sh SEE ALSO
.Xr config_found 9