Messages in this thread | | | From | Enric Balletbo Serra <> | Date | Thu, 21 Mar 2019 22:31:27 +0100 | Subject | Re: [PATCH 1/2] mfd: cros_ec: Add host_sleep_event_v1 command |
| |
Hi Evan,Thanks for sending this upstream, one comment below. Missatge de Evan Green <evgreen@chromium.org> del dia dc., 20 de març 2019 a les 22:24: > > 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 <evgreen@chromium.org> > > --- > > include/linux/mfd/cros_ec_commands.h | 59 ++++++++++++++++++++++++++++
We're trying to sync kernel cros_ec_commands.h with the EC protocol at https://chromium.googlesource.com/chromiumos/platform/ec/+/master/include/ec_commands.h
Gwendal send a first patch [1] and a second version will be sent soon. I don't see these definitions in the mentioned patch neither the master ec_commands.h from the EC firmware repository. Is this a feature that didn't land in the EC firmware yet?
[1] https://lkml.org/lkml/2019/2/27/723
Thanks, Enric
> 1 file changed, 59 insertions(+) > > diff --git a/include/linux/mfd/cros_ec_commands.h b/include/linux/mfd/cros_ec_commands.h > index fc91082d4c35..4db1240c28a8 100644 > --- a/include/linux/mfd/cros_ec_commands.h > +++ b/include/linux/mfd/cros_ec_commands.h > @@ -2729,6 +2729,65 @@ 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; > + > + /* Reserved space for non-suspend commands. */ > + uint16_t reserved; > + } u; > +} __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; > + > + /* Padding for non-resume responses. */ > + uint32_t reserved; > + } u; > +} __packed; > + > /*****************************************************************************/ > /* Smart battery pass-through */ > > -- > 2.20.1 >
| |