From: Benson Leung <bleung@google.com>
To: Daniel Campello <campello@chromium.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Enric Balletbo i Serra <enric.balletbo@collabora.com>,
Benson Leung <bleung@chromium.org>,
Alexandre Belloni <alexandre.belloni@bootlin.com>,
Duncan Laurie <dlaurie@google.com>,
Nick Crews <ncrews@chromium.org>
Subject: Re: [PATCH v4] platform/chrome: wilco_ec: Add debugfs test_event file
Date: Mon, 23 Sep 2019 17:11:16 -0700 [thread overview]
Message-ID: <20190924001116.GA73943@google.com> (raw)
In-Reply-To: <20190918204316.237342-1-campello@chromium.org>
[-- Attachment #1: Type: text/plain, Size: 4101 bytes --]
Hi Daniel,
Thanks for sending this.
On Wed, Sep 18, 2019 at 02:43:16PM -0600, Daniel Campello wrote:
> This change introduces a new debugfs file 'test_event' that when written
> to causes the EC to generate a test event.
Please mention that this adds a second sub cmd for the test event, and
pulls out send_ec_cmd to be a common helper between h1_gpio_get and
test_event_set.
>
> Signed-off-by: Daniel Campello <campello@chromium.org>
> ---
> Changes for v2:
> - Cleaned up and added comments.
> - Renamed and updated function signature from write_to_mailbox to
> send_ec_cmd.
> Changes for v3:
> - Switched NULL format string to empty format string
> - Renamed val parameter on send_ec_cmd to out_val
> Changes for v4:
> - Provided a format string to avoid -Wformat-zero-length warning
>
> drivers/platform/chrome/wilco_ec/debugfs.c | 46 +++++++++++++++++-----
> 1 file changed, 36 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/platform/chrome/wilco_ec/debugfs.c b/drivers/platform/chrome/wilco_ec/debugfs.c
> index 8d65a1e2f1a3..ba86c38421ff 100644
> --- a/drivers/platform/chrome/wilco_ec/debugfs.c
> +++ b/drivers/platform/chrome/wilco_ec/debugfs.c
> @@ -160,29 +160,29 @@ static const struct file_operations fops_raw = {
>
> #define CMD_KB_CHROME 0x88
> #define SUB_CMD_H1_GPIO 0x0A
> +#define SUB_CMD_TEST_EVENT 0x0B
>
> -struct h1_gpio_status_request {
> +struct ec_request {
> u8 cmd; /* Always CMD_KB_CHROME */
> u8 reserved;
> - u8 sub_cmd; /* Always SUB_CMD_H1_GPIO */
> + u8 sub_cmd;
> } __packed;
>
> -struct hi_gpio_status_response {
> +struct ec_response {
> u8 status; /* 0 if allowed */
> - u8 val; /* BIT(0)=ENTRY_TO_FACT_MODE, BIT(1)=SPI_CHROME_SEL */
> + u8 val;
> } __packed;
>
> -static int h1_gpio_get(void *arg, u64 *val)
> +static int send_ec_cmd(struct wilco_ec_device *ec, u8 sub_cmd, u8 *out_val)
> {
> - struct wilco_ec_device *ec = arg;
> - struct h1_gpio_status_request rq;
> - struct hi_gpio_status_response rs;
> + struct ec_request rq;
> + struct ec_response rs;
> struct wilco_ec_message msg;
> int ret;
>
> memset(&rq, 0, sizeof(rq));
> rq.cmd = CMD_KB_CHROME;
> - rq.sub_cmd = SUB_CMD_H1_GPIO;
> + rq.sub_cmd = sub_cmd;
>
> memset(&msg, 0, sizeof(msg));
> msg.type = WILCO_EC_MSG_LEGACY;
> @@ -196,13 +196,37 @@ static int h1_gpio_get(void *arg, u64 *val)
> if (rs.status)
> return -EIO;
>
> - *val = rs.val;
> + *out_val = rs.val;
>
> return 0;
> }
> +/**
Minor nit. Add one line of whitespace before this comment start.
> + * h1_gpio_get() - Gets h1 gpio status.
> + * @arg: The wilco EC device.
> + * @val: BIT(0)=ENTRY_TO_FACT_MODE, BIT(1)=SPI_CHROME_SEL
> + */
> +static int h1_gpio_get(void *arg, u64 *val)
> +{
> + return send_ec_cmd(arg, SUB_CMD_H1_GPIO, (u8 *)val);
> +}
>
> DEFINE_DEBUGFS_ATTRIBUTE(fops_h1_gpio, h1_gpio_get, NULL, "0x%02llx\n");
>
> +/**
> + * test_event_set() - Sends command to EC to cause an EC test event.
> + * @arg: The wilco EC device.
> + * @val: unused.
> + */
> +static int test_event_set(void *arg, u64 val)
> +{
> + u8 ret;
> +
> + return send_ec_cmd(arg, SUB_CMD_TEST_EVENT, &ret);
> +}
> +
> +/* Format is unused since it is only required for get method which is NULL */
> +DEFINE_DEBUGFS_ATTRIBUTE(fops_test_event, NULL, test_event_set, "%llu\n");
> +
> /**
> * wilco_ec_debugfs_probe() - Create the debugfs node
> * @pdev: The platform device, probably created in core.c
> @@ -226,6 +250,8 @@ static int wilco_ec_debugfs_probe(struct platform_device *pdev)
> debugfs_create_file("raw", 0644, debug_info->dir, NULL, &fops_raw);
> debugfs_create_file("h1_gpio", 0444, debug_info->dir, ec,
> &fops_h1_gpio);
> + debugfs_create_file("test_event", 0200, debug_info->dir, ec,
> + &fops_test_event);
>
> return 0;
> }
> --
> 2.23.0.237.gc6a4ce50a0-goog
>
--
Benson Leung
Staff Software Engineer
Chrome OS Kernel
Google Inc.
bleung@google.com
Chromium OS Project
bleung@chromium.org
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2019-09-24 0:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-18 20:43 [PATCH v4] platform/chrome: wilco_ec: Add debugfs test_event file Daniel Campello
2019-09-18 21:44 ` Nick Crews
2019-09-24 0:11 ` Benson Leung [this message]
2019-09-24 20:43 ` Daniel Campello
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=20190924001116.GA73943@google.com \
--to=bleung@google.com \
--cc=alexandre.belloni@bootlin.com \
--cc=bleung@chromium.org \
--cc=campello@chromium.org \
--cc=dlaurie@google.com \
--cc=enric.balletbo@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=ncrews@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.