Re: [PATCH] platform/chrome: cros_ec_rpmsg: Add host command AP sleep state support

From: Pi-Hsun Shih
Date: Tue Aug 27 2019 - 00:02:26 EST


Tested that with this patch, SCP does receive host command from AP
while AP goes to suspend and back.

Tested-by: Pi-Hsun Shih <pihsun@xxxxxxxxxxxx>

On Fri, Aug 23, 2019 at 3:36 AM Enric Balletbo i Serra
<enric.balletbo@xxxxxxxxxxxxx> wrote:
>
> Hi,
>
> On 14/8/19 10:17, Yilun Lin wrote:
> > Add EC host command to inform EC of AP suspend/resume status.
> >
> > Signed-off-by: Yilun Lin <yllin@xxxxxxxxxxxx>
>
> The patch looks good to me but as I don't have the hardware to test this, could
> I get a Tested-by Pi-Hsun if possible before queuing in chrome-platform-5.4
>
> Thanks,
> Enric
>
> > ---
> >
> > drivers/platform/chrome/cros_ec_rpmsg.c | 20 ++++++++++++++++++++
> > 1 file changed, 20 insertions(+)
> >
> > diff --git a/drivers/platform/chrome/cros_ec_rpmsg.c b/drivers/platform/chrome/cros_ec_rpmsg.c
> > index 5d3fb2abad1d..6f34fe629e2c 100644
> > --- a/drivers/platform/chrome/cros_ec_rpmsg.c
> > +++ b/drivers/platform/chrome/cros_ec_rpmsg.c
> > @@ -236,6 +236,25 @@ static void cros_ec_rpmsg_remove(struct rpmsg_device *rpdev)
> > cancel_work_sync(&ec_rpmsg->host_event_work);
> > }
> >
> > +#ifdef CONFIG_PM_SLEEP
> > +static int cros_ec_rpmsg_suspend(struct device *dev)
> > +{
> > + struct cros_ec_device *ec_dev = dev_get_drvdata(dev);
> > +
> > + return cros_ec_suspend(ec_dev);
> > +}
> > +
> > +static int cros_ec_rpmsg_resume(struct device *dev)
> > +{
> > + struct cros_ec_device *ec_dev = dev_get_drvdata(dev);
> > +
> > + return cros_ec_resume(ec_dev);
> > +}
> > +#endif
> > +
> > +static SIMPLE_DEV_PM_OPS(cros_ec_rpmsg_pm_ops, cros_ec_rpmsg_suspend,
> > + cros_ec_rpmsg_resume);
> > +
> > static const struct of_device_id cros_ec_rpmsg_of_match[] = {
> > { .compatible = "google,cros-ec-rpmsg", },
> > { }
> > @@ -246,6 +265,7 @@ static struct rpmsg_driver cros_ec_driver_rpmsg = {
> > .drv = {
> > .name = "cros-ec-rpmsg",
> > .of_match_table = cros_ec_rpmsg_of_match,
> > + .pm = &cros_ec_rpmsg_pm_ops,
> > },
> > .probe = cros_ec_rpmsg_probe,
> > .remove = cros_ec_rpmsg_remove,
> >