Missatge de Rajat Jain <raja...@google.com> del dia dj., 4 d’abr. 2019 a les 20:40: > > On Wed, Apr 3, 2019 at 2:34 PM Evan Green <evgr...@chromium.org> wrote: > > > > Introduce the command and response structures for the second revision > > of the host sleep event. These structures are part of a new EC change > > that enables detection of failure to enter S0ix. The EC waits a > > kernel-specified timeout (or a default amount of time) for the S0_SLP > > pin to change, and wakes the system if that change does not occur in > > time. > > > > Signed-off-by: Evan Green <evgr...@chromium.org> > Reviewed-by: Rajat Jain <raja...@chromium.org>
Acked-by: Enric Balletbo i Serra <enric.balle...@collabora.com> > > > > > --- > > > > Changes in v3: None > > Changes in v2: > > - Made unions anonymous > > - Replaced reserved union members with a comment > > > > include/linux/mfd/cros_ec_commands.h | 57 ++++++++++++++++++++++++++++ > > 1 file changed, 57 insertions(+) > > > > diff --git a/include/linux/mfd/cros_ec_commands.h > > b/include/linux/mfd/cros_ec_commands.h > > index fc91082d4c35..1cdb07c0ece1 100644 > > --- a/include/linux/mfd/cros_ec_commands.h > > +++ b/include/linux/mfd/cros_ec_commands.h > > @@ -2729,6 +2729,63 @@ struct ec_params_host_sleep_event { > > uint8_t sleep_event; > > } __packed; > > > > +/* > > + * Use a default timeout value (CONFIG_SLEEP_TIMEOUT_MS) for detecting > > sleep > > + * transition failures > > + */ > > +#define EC_HOST_SLEEP_TIMEOUT_DEFAULT 0 > > + > > +/* Disable timeout detection for this sleep transition */ > > +#define EC_HOST_SLEEP_TIMEOUT_INFINITE 0xFFFF > > + > > +struct ec_params_host_sleep_event_v1 { > > + /* The type of sleep being entered or exited. */ > > + uint8_t sleep_event; > > + > > + /* Padding */ > > + uint8_t reserved; > > + union { > > + /* Parameters that apply for suspend messages. */ > > + struct { > > + /* > > + * The timeout in milliseconds between when this > > message > > + * is received and when the EC will declare sleep > > + * transition failure if the sleep signal is not > > + * asserted. > > + */ > > + uint16_t sleep_timeout_ms; > > + } suspend_params; > > + > > + /* No parameters for non-suspend messages. */ > > + }; > > +} __packed; > > + > > +/* A timeout occurred when this bit is set */ > > +#define EC_HOST_RESUME_SLEEP_TIMEOUT 0x80000000 > > + > > +/* > > + * The mask defining which bits correspond to the number of sleep > > transitions, > > + * as well as the maximum number of suspend line transitions that will be > > + * reported back to the host. > > + */ > > +#define EC_HOST_RESUME_SLEEP_TRANSITIONS_MASK 0x7FFFFFFF > > + > > +struct ec_response_host_sleep_event_v1 { > > + union { > > + /* Response fields that apply for resume messages. */ > > + struct { > > + /* > > + * The number of sleep power signal transitions that > > + * occurred since the suspend message. The high bit > > + * indicates a timeout occurred. > > + */ > > + uint32_t sleep_transitions; > > + } resume_response; > > + > > + /* No response fields for non-resume messages. */ > > + }; > > +} __packed; > > + > > > > /*****************************************************************************/ > > /* Smart battery pass-through */ > > > > -- > > 2.20.1 > >