All of lore.kernel.org
 help / color / mirror / Atom feed
From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
To: Gwendal Grignou <gwendal@chromium.org>,
	groeck@chromium.org, bleung@chromium.org,
	twawrzynczak@chromium.org
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] platform: cros_ec_debugfs: control uptime information request
Date: Thu, 21 May 2020 11:21:16 +0200	[thread overview]
Message-ID: <e83f3849-9e2d-4919-1a65-35f63eabe993@collabora.com> (raw)
In-Reply-To: <20200521052832.66620-1-gwendal@chromium.org>

Hi Gwendal,

Thank you for your patch.

On 21/5/20 7:28, Gwendal Grignou wrote:
> When EC does not support uptime command (EC_CMD_GET_UPTIME_INFO),
> return -EPROTO to read of /sys/kernel/debug/cros_ec/uptime without
> calling the EC after the first try.
> 
> The EC console log will not contain EC_CMD_GET_UPTIME_INFO anymore.
> 

Oh, what you mean with this? Uptime is only exposed via sysfs or I am missing
something.

> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
>  drivers/platform/chrome/cros_ec_debugfs.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/platform/chrome/cros_ec_debugfs.c b/drivers/platform/chrome/cros_ec_debugfs.c
> index 6ae484989d1f5..70a29afb6d9e7 100644
> --- a/drivers/platform/chrome/cros_ec_debugfs.c
> +++ b/drivers/platform/chrome/cros_ec_debugfs.c
> @@ -49,6 +49,8 @@ struct cros_ec_debugfs {
>  	struct delayed_work log_poll_work;
>  	/* EC panicinfo */
>  	struct debugfs_blob_wrapper panicinfo_blob;
> +	/* EC uptime */
> +	bool uptime_supported;

Ideally, if uptime can be supported or not we should only expose uptime when is
supported, so the sysfs entry should only be created when is supported, similar
to what we do with the console_log. See cros_ec_create_console_log()

If doing this doesn't break userspace, I'd prefer doing in that way.

Thanks,
 Enric


>  };
>  
>  /*
> @@ -256,12 +258,19 @@ static ssize_t cros_ec_uptime_read(struct file *file, char __user *user_buf,
>  	char read_buf[32];
>  	int ret;
>  
> +	if (!debug_info->uptime_supported)
> +		return -EPROTO;
> +
>  	resp = (struct ec_response_uptime_info *)&msg.resp;
>  
>  	msg.cmd.command = EC_CMD_GET_UPTIME_INFO;
>  	msg.cmd.insize = sizeof(*resp);
>  
>  	ret = cros_ec_cmd_xfer_status(ec_dev, &msg.cmd);
> +	if (ret == -EPROTO && msg.cmd.result == EC_RES_INVALID_COMMAND) {
> +		debug_info->uptime_supported = false;
> +		return ret;
> +	}
>  	if (ret < 0)
>  		return ret;
>  
> @@ -434,6 +443,9 @@ static int cros_ec_debugfs_probe(struct platform_device *pd)
>  	debug_info->ec = ec;
>  	debug_info->dir = debugfs_create_dir(name, NULL);
>  
> +	/* Give uptime a chance to run. */
> +	debug_info->uptime_supported = true;
> +
>  	ret = cros_ec_create_panicinfo(debug_info);
>  	if (ret)
>  		goto remove_debugfs;
> 

  reply	other threads:[~2020-05-21  9:21 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-21  5:28 [PATCH] platform: cros_ec_debugfs: control uptime information request Gwendal Grignou
2020-05-21  9:21 ` Enric Balletbo i Serra [this message]
2020-05-26 18:49   ` Gwendal Grignou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e83f3849-9e2d-4919-1a65-35f63eabe993@collabora.com \
    --to=enric.balletbo@collabora.com \
    --cc=bleung@chromium.org \
    --cc=groeck@chromium.org \
    --cc=gwendal@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=twawrzynczak@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.