I requested that the team not create a new DDI_QUIESCE command. The
expansion of detach(9e) and attach(9e) with new interfaces was, IMO, a
big mistake. The biggest problem is that it is impossible to tell (at
least easily) if a driver supports the new interfaces or not. By adding
a new devops entry point, it becomes nothing more than a matter of
routine inspection. (The current design is one of the major limiting
factors in suspend-to-ram. There is no predictability about whether
suspend will work or not -- the only way to know is to actually try it.)
-- Garrett
David Kahn wrote:
>
> Also, I suppose we could use a detach_cmd_t
> value for DDI_QUIESCE instead of expanding
> struct dev_ops.
>
> int prefix detach(dev_info_t *dip, ddi_detach_cmd_t cmd);
>
> This is really a form of detach, isn't it?
>
> Right now cmd must be either DDI_DETACH or
> DDI_SUSPEND. The driver returns DDI_FAILURE
> if it's not one of those two values.
>
> -David
>