2022-05-18 09:23:08

by Tzung-Bi Shih

[permalink] [raw]
Subject: [PATCH 0/4] platform/chrome: cros_ec_proto: add initial Kunit tests

The series adds some early Kunit tests for ChromeOS EC protocol.

The 2nd patch is a refactor.

The 3rd patch updates code comment.

The 1st and 4th patches add Kunit tests.

Use the following example commands to run the Kunit tests:
$ ./tools/testing/kunit/kunit.py run \
--arch=x86_64 \
--kconfig_add CONFIG_CHROME_PLATFORMS=y \
--kconfig_add CONFIG_CROS_EC=y \
cros_ec*
$ ./tools/testing/kunit/kunit.py run \
--arch=arm64 --cross_compile aarch64-linux-gnu- \
--kconfig_add CONFIG_CHROME_PLATFORMS=y \
--kconfig_add CONFIG_CROS_EC=y \
cros_ec*

Tzung-Bi Shih (4):
platform/chrome: cros_ec_proto: add Kunit tests for
cros_ec_prepare_tx()
platform/chrome: cros_ec_proto: factor legacy out from
cros_ec_prepare_tx()
platform/chrome: cros_ec_proto: update cros_ec_check_result() comment
platform/chrome: cros_ec_proto: add Kunit tests for
cros_ec_check_result()

drivers/platform/chrome/Kconfig | 9 +
drivers/platform/chrome/Makefile | 3 +
drivers/platform/chrome/cros_ec_proto.c | 58 ++---
drivers/platform/chrome/cros_ec_proto_test.c | 214 +++++++++++++++++++
4 files changed, 259 insertions(+), 25 deletions(-)
create mode 100644 drivers/platform/chrome/cros_ec_proto_test.c


base-commit: a0e7d2f65fa706a106dae4b52a7cfe48e0ddfdff
--
2.36.0.550.gb090851708-goog



2022-05-18 09:23:19

by Tzung-Bi Shih

[permalink] [raw]
Subject: [PATCH 3/4] platform/chrome: cros_ec_proto: update cros_ec_check_result() comment

At first glance, cros_ec_check_result() is quite like cros_ec_map_error().
They check for `ec_msg->result` and return corresponding errors. However,
as calling from `pkt_xfer` and `cmd_xfer`, cros_ec_check_result() should
not report furthermore errors. -EAGAIN is the only exception.

See [1][2][3] for some known userland programs' code. The return code
from ioctl only denotes the EC communication status. Userland programs
would further analyze the `result` in struct cros_ec_command* for
follow-up actions (e.g. [4]).

To clarify, update the function comment.

[1]: https://crrev.com/54400e93a75ef440a83d6eaac2cec066daf99cf0/util/comm-dev.c#154
[2]: https://crrev.com/fe32670a89bf59e1aff84bba9dd3295657b85e9b/cros_ec_dev.c#296
[3]: https://crrev.com/4e19eb1d89de0422ff1bbd3f7260b131c761098c/drivers/google/cros_ec_dev.c#120
[4]: https://crrev.com/54400e93a75ef440a83d6eaac2cec066daf99cf0/util/comm-dev.c#164

Signed-off-by: Tzung-Bi Shih <[email protected]>
---
Changes from previous version:
(https://patchwork.kernel.org/project/chrome-platform/patch/[email protected]/)
- Update the link of [3].

drivers/platform/chrome/cros_ec_proto.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
index 01ab58b3269b..13ced9d2dd71 100644
--- a/drivers/platform/chrome/cros_ec_proto.c
+++ b/drivers/platform/chrome/cros_ec_proto.c
@@ -204,9 +204,12 @@ EXPORT_SYMBOL(cros_ec_prepare_tx);
* @msg: Message to check.
*
* This is used by ChromeOS EC drivers to check the ec_msg->result for
- * errors and to warn about them.
+ * EC_RES_IN_PROGRESS and to warn about them.
*
- * Return: 0 on success or negative error code.
+ * The function should not check for furthermore error codes. Otherwise,
+ * it would break the ABI.
+ *
+ * Return: -EAGAIN if ec_msg->result == EC_RES_IN_PROGRESS. Otherwise, 0.
*/
int cros_ec_check_result(struct cros_ec_device *ec_dev,
struct cros_ec_command *msg)
--
2.36.0.550.gb090851708-goog


2022-05-18 09:23:19

by Tzung-Bi Shih

[permalink] [raw]
Subject: [PATCH 2/4] platform/chrome: cros_ec_proto: factor legacy out from cros_ec_prepare_tx()

cros_ec_prepare_tx() mixed the code for both versions. To be neat and to
make it clear, factor the legacy part out as a separate function, rename
the function, and update the comments.

Specifically,
- prepare_tx(), for current protocol version (i.e. 3).
- prepare_tx_legacy(), for protocol version <= 2.

Signed-off-by: Tzung-Bi Shih <[email protected]>
---
drivers/platform/chrome/cros_ec_proto.c | 51 ++++++++++++++-----------
1 file changed, 28 insertions(+), 23 deletions(-)

diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
index ff767dccdf0f..01ab58b3269b 100644
--- a/drivers/platform/chrome/cros_ec_proto.c
+++ b/drivers/platform/chrome/cros_ec_proto.c
@@ -52,8 +52,8 @@ static int cros_ec_map_error(uint32_t result)
return ret;
}

-static int prepare_packet(struct cros_ec_device *ec_dev,
- struct cros_ec_command *msg)
+static int prepare_tx(struct cros_ec_device *ec_dev,
+ struct cros_ec_command *msg)
{
struct ec_host_request *request;
u8 *out;
@@ -85,6 +85,28 @@ static int prepare_packet(struct cros_ec_device *ec_dev,
return sizeof(*request) + msg->outsize;
}

+static int prepare_tx_legacy(struct cros_ec_device *ec_dev,
+ struct cros_ec_command *msg)
+{
+ u8 *out;
+ u8 csum;
+ int i;
+
+ if (msg->outsize > EC_PROTO2_MAX_PARAM_SIZE)
+ return -EINVAL;
+
+ out = ec_dev->dout;
+ out[0] = EC_CMD_VERSION0 + msg->version;
+ out[1] = msg->command;
+ out[2] = msg->outsize;
+ csum = out[0] + out[1] + out[2];
+ for (i = 0; i < msg->outsize; i++)
+ csum += out[EC_MSG_TX_HEADER_BYTES + i] = msg->data[i];
+ out[EC_MSG_TX_HEADER_BYTES + msg->outsize] = csum;
+
+ return EC_MSG_TX_PROTO_BYTES + msg->outsize;
+}
+
static int send_command(struct cros_ec_device *ec_dev,
struct cros_ec_command *msg)
{
@@ -161,35 +183,18 @@ static int send_command(struct cros_ec_device *ec_dev,
* @ec_dev: Device to register.
* @msg: Message to write.
*
- * This is intended to be used by all ChromeOS EC drivers, but at present
- * only SPI uses it. Once LPC uses the same protocol it can start using it.
- * I2C could use it now, with a refactor of the existing code.
+ * This is used by all ChromeOS EC drivers to prepare the outgoing message
+ * according to different protocol versions.
*
* Return: number of prepared bytes on success or negative error code.
*/
int cros_ec_prepare_tx(struct cros_ec_device *ec_dev,
struct cros_ec_command *msg)
{
- u8 *out;
- u8 csum;
- int i;
-
if (ec_dev->proto_version > 2)
- return prepare_packet(ec_dev, msg);
-
- if (msg->outsize > EC_PROTO2_MAX_PARAM_SIZE)
- return -EINVAL;
-
- out = ec_dev->dout;
- out[0] = EC_CMD_VERSION0 + msg->version;
- out[1] = msg->command;
- out[2] = msg->outsize;
- csum = out[0] + out[1] + out[2];
- for (i = 0; i < msg->outsize; i++)
- csum += out[EC_MSG_TX_HEADER_BYTES + i] = msg->data[i];
- out[EC_MSG_TX_HEADER_BYTES + msg->outsize] = csum;
+ return prepare_tx(ec_dev, msg);

- return EC_MSG_TX_PROTO_BYTES + msg->outsize;
+ return prepare_tx_legacy(ec_dev, msg);
}
EXPORT_SYMBOL(cros_ec_prepare_tx);

--
2.36.0.550.gb090851708-goog


2022-05-18 09:23:20

by Tzung-Bi Shih

[permalink] [raw]
Subject: [PATCH 4/4] platform/chrome: cros_ec_proto: add Kunit tests for cros_ec_check_result()

cros_ec_check_result() is used to check if the EC communication success but
EC responded EC_RES_IN_PROGRESS. It should return 0 even if EC wasn't
happy about the host command.

Add Kunit tests for cros_ec_check_result().

Signed-off-by: Tzung-Bi Shih <[email protected]>
---
drivers/platform/chrome/cros_ec_proto_test.c | 41 ++++++++++++++++++++
1 file changed, 41 insertions(+)

diff --git a/drivers/platform/chrome/cros_ec_proto_test.c b/drivers/platform/chrome/cros_ec_proto_test.c
index 61abb18ac00b..25c4fca5c165 100644
--- a/drivers/platform/chrome/cros_ec_proto_test.c
+++ b/drivers/platform/chrome/cros_ec_proto_test.c
@@ -132,6 +132,46 @@ static void cros_ec_proto_test_prepare_tx_bad_msg_outsize(struct kunit *test)
KUNIT_EXPECT_EQ(test, ret, -EINVAL);
}

+static void cros_ec_proto_test_check_result(struct kunit *test)
+{
+ struct cros_ec_proto_test_priv *priv = test->priv;
+ struct cros_ec_device *ec_dev = &priv->ec_dev;
+ struct cros_ec_command *msg = priv->msg;
+ int ret, i;
+ static enum ec_status status[] = {
+ EC_RES_SUCCESS,
+ EC_RES_INVALID_COMMAND,
+ EC_RES_ERROR,
+ EC_RES_INVALID_PARAM,
+ EC_RES_ACCESS_DENIED,
+ EC_RES_INVALID_RESPONSE,
+ EC_RES_INVALID_VERSION,
+ EC_RES_INVALID_CHECKSUM,
+ EC_RES_UNAVAILABLE,
+ EC_RES_TIMEOUT,
+ EC_RES_OVERFLOW,
+ EC_RES_INVALID_HEADER,
+ EC_RES_REQUEST_TRUNCATED,
+ EC_RES_RESPONSE_TOO_BIG,
+ EC_RES_BUS_ERROR,
+ EC_RES_BUSY,
+ EC_RES_INVALID_HEADER_VERSION,
+ EC_RES_INVALID_HEADER_CRC,
+ EC_RES_INVALID_DATA_CRC,
+ EC_RES_DUP_UNAVAILABLE,
+ };
+
+ for (i = 0; i < ARRAY_SIZE(status); ++i) {
+ msg->result = status[i];
+ ret = cros_ec_check_result(ec_dev, msg);
+ KUNIT_EXPECT_EQ(test, ret, 0);
+ }
+
+ msg->result = EC_RES_IN_PROGRESS;
+ ret = cros_ec_check_result(ec_dev, msg);
+ KUNIT_EXPECT_EQ(test, ret, -EAGAIN);
+}
+
static int cros_ec_proto_test_init(struct kunit *test)
{
struct cros_ec_proto_test_priv *priv;
@@ -159,6 +199,7 @@ static struct kunit_case cros_ec_proto_test_cases[] = {
KUNIT_CASE(cros_ec_proto_test_prepare_tx_legacy_bad_msg_outsize),
KUNIT_CASE(cros_ec_proto_test_prepare_tx_normal),
KUNIT_CASE(cros_ec_proto_test_prepare_tx_bad_msg_outsize),
+ KUNIT_CASE(cros_ec_proto_test_check_result),
{}
};

--
2.36.0.550.gb090851708-goog


2022-05-18 16:30:14

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 2/4] platform/chrome: cros_ec_proto: factor legacy out from cros_ec_prepare_tx()

On Wed, May 18, 2022 at 2:18 AM Tzung-Bi Shih <[email protected]> wrote:
>
> cros_ec_prepare_tx() mixed the code for both versions. To be neat and to
> make it clear, factor the legacy part out as a separate function, rename
> the function, and update the comments.
>
> Specifically,
> - prepare_tx(), for current protocol version (i.e. 3).
> - prepare_tx_legacy(), for protocol version <= 2.
>
> Signed-off-by: Tzung-Bi Shih <[email protected]>

Reviewed-by: Guenter Roeck <[email protected]>

> ---
> drivers/platform/chrome/cros_ec_proto.c | 51 ++++++++++++++-----------
> 1 file changed, 28 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
> index ff767dccdf0f..01ab58b3269b 100644
> --- a/drivers/platform/chrome/cros_ec_proto.c
> +++ b/drivers/platform/chrome/cros_ec_proto.c
> @@ -52,8 +52,8 @@ static int cros_ec_map_error(uint32_t result)
> return ret;
> }
>
> -static int prepare_packet(struct cros_ec_device *ec_dev,
> - struct cros_ec_command *msg)
> +static int prepare_tx(struct cros_ec_device *ec_dev,
> + struct cros_ec_command *msg)
> {
> struct ec_host_request *request;
> u8 *out;
> @@ -85,6 +85,28 @@ static int prepare_packet(struct cros_ec_device *ec_dev,
> return sizeof(*request) + msg->outsize;
> }
>
> +static int prepare_tx_legacy(struct cros_ec_device *ec_dev,
> + struct cros_ec_command *msg)
> +{
> + u8 *out;
> + u8 csum;
> + int i;
> +
> + if (msg->outsize > EC_PROTO2_MAX_PARAM_SIZE)
> + return -EINVAL;
> +
> + out = ec_dev->dout;
> + out[0] = EC_CMD_VERSION0 + msg->version;
> + out[1] = msg->command;
> + out[2] = msg->outsize;
> + csum = out[0] + out[1] + out[2];
> + for (i = 0; i < msg->outsize; i++)
> + csum += out[EC_MSG_TX_HEADER_BYTES + i] = msg->data[i];
> + out[EC_MSG_TX_HEADER_BYTES + msg->outsize] = csum;
> +
> + return EC_MSG_TX_PROTO_BYTES + msg->outsize;
> +}
> +
> static int send_command(struct cros_ec_device *ec_dev,
> struct cros_ec_command *msg)
> {
> @@ -161,35 +183,18 @@ static int send_command(struct cros_ec_device *ec_dev,
> * @ec_dev: Device to register.
> * @msg: Message to write.
> *
> - * This is intended to be used by all ChromeOS EC drivers, but at present
> - * only SPI uses it. Once LPC uses the same protocol it can start using it.
> - * I2C could use it now, with a refactor of the existing code.
> + * This is used by all ChromeOS EC drivers to prepare the outgoing message
> + * according to different protocol versions.
> *
> * Return: number of prepared bytes on success or negative error code.
> */
> int cros_ec_prepare_tx(struct cros_ec_device *ec_dev,
> struct cros_ec_command *msg)
> {
> - u8 *out;
> - u8 csum;
> - int i;
> -
> if (ec_dev->proto_version > 2)
> - return prepare_packet(ec_dev, msg);
> -
> - if (msg->outsize > EC_PROTO2_MAX_PARAM_SIZE)
> - return -EINVAL;
> -
> - out = ec_dev->dout;
> - out[0] = EC_CMD_VERSION0 + msg->version;
> - out[1] = msg->command;
> - out[2] = msg->outsize;
> - csum = out[0] + out[1] + out[2];
> - for (i = 0; i < msg->outsize; i++)
> - csum += out[EC_MSG_TX_HEADER_BYTES + i] = msg->data[i];
> - out[EC_MSG_TX_HEADER_BYTES + msg->outsize] = csum;
> + return prepare_tx(ec_dev, msg);
>
> - return EC_MSG_TX_PROTO_BYTES + msg->outsize;
> + return prepare_tx_legacy(ec_dev, msg);
> }
> EXPORT_SYMBOL(cros_ec_prepare_tx);
>
> --
> 2.36.0.550.gb090851708-goog
>

2022-05-18 16:34:45

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 3/4] platform/chrome: cros_ec_proto: update cros_ec_check_result() comment

On Wed, May 18, 2022 at 2:18 AM Tzung-Bi Shih <[email protected]> wrote:
>
> At first glance, cros_ec_check_result() is quite like cros_ec_map_error().
> They check for `ec_msg->result` and return corresponding errors. However,
> as calling from `pkt_xfer` and `cmd_xfer`, cros_ec_check_result() should
> not report furthermore errors. -EAGAIN is the only exception.
>
> See [1][2][3] for some known userland programs' code. The return code
> from ioctl only denotes the EC communication status. Userland programs
> would further analyze the `result` in struct cros_ec_command* for
> follow-up actions (e.g. [4]).
>
> To clarify, update the function comment.
>
> [1]: https://crrev.com/54400e93a75ef440a83d6eaac2cec066daf99cf0/util/comm-dev.c#154
> [2]: https://crrev.com/fe32670a89bf59e1aff84bba9dd3295657b85e9b/cros_ec_dev.c#296
> [3]: https://crrev.com/4e19eb1d89de0422ff1bbd3f7260b131c761098c/drivers/google/cros_ec_dev.c#120
> [4]: https://crrev.com/54400e93a75ef440a83d6eaac2cec066daf99cf0/util/comm-dev.c#164
>
> Signed-off-by: Tzung-Bi Shih <[email protected]>
> ---
> Changes from previous version:
> (https://patchwork.kernel.org/project/chrome-platform/patch/[email protected]/)
> - Update the link of [3].

The patch should be marked as v2 if there is a previous version. Other
than that,

Reviewed-by: Guenter Roeck <[email protected]>

>
> drivers/platform/chrome/cros_ec_proto.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
> index 01ab58b3269b..13ced9d2dd71 100644
> --- a/drivers/platform/chrome/cros_ec_proto.c
> +++ b/drivers/platform/chrome/cros_ec_proto.c
> @@ -204,9 +204,12 @@ EXPORT_SYMBOL(cros_ec_prepare_tx);
> * @msg: Message to check.
> *
> * This is used by ChromeOS EC drivers to check the ec_msg->result for
> - * errors and to warn about them.
> + * EC_RES_IN_PROGRESS and to warn about them.
> *
> - * Return: 0 on success or negative error code.
> + * The function should not check for furthermore error codes. Otherwise,
> + * it would break the ABI.
> + *
> + * Return: -EAGAIN if ec_msg->result == EC_RES_IN_PROGRESS. Otherwise, 0.
> */
> int cros_ec_check_result(struct cros_ec_device *ec_dev,
> struct cros_ec_command *msg)
> --
> 2.36.0.550.gb090851708-goog
>

2022-05-18 16:36:48

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 4/4] platform/chrome: cros_ec_proto: add Kunit tests for cros_ec_check_result()

On Wed, May 18, 2022 at 2:18 AM Tzung-Bi Shih <[email protected]> wrote:
>
> cros_ec_check_result() is used to check if the EC communication success but
> EC responded EC_RES_IN_PROGRESS. It should return 0 even if EC wasn't
> happy about the host command.
>
> Add Kunit tests for cros_ec_check_result().
>
> Signed-off-by: Tzung-Bi Shih <[email protected]>

Reviewed-by: Guenter Roeck <[email protected]>

> ---
> drivers/platform/chrome/cros_ec_proto_test.c | 41 ++++++++++++++++++++
> 1 file changed, 41 insertions(+)
>
> diff --git a/drivers/platform/chrome/cros_ec_proto_test.c b/drivers/platform/chrome/cros_ec_proto_test.c
> index 61abb18ac00b..25c4fca5c165 100644
> --- a/drivers/platform/chrome/cros_ec_proto_test.c
> +++ b/drivers/platform/chrome/cros_ec_proto_test.c
> @@ -132,6 +132,46 @@ static void cros_ec_proto_test_prepare_tx_bad_msg_outsize(struct kunit *test)
> KUNIT_EXPECT_EQ(test, ret, -EINVAL);
> }
>
> +static void cros_ec_proto_test_check_result(struct kunit *test)
> +{
> + struct cros_ec_proto_test_priv *priv = test->priv;
> + struct cros_ec_device *ec_dev = &priv->ec_dev;
> + struct cros_ec_command *msg = priv->msg;
> + int ret, i;
> + static enum ec_status status[] = {
> + EC_RES_SUCCESS,
> + EC_RES_INVALID_COMMAND,
> + EC_RES_ERROR,
> + EC_RES_INVALID_PARAM,
> + EC_RES_ACCESS_DENIED,
> + EC_RES_INVALID_RESPONSE,
> + EC_RES_INVALID_VERSION,
> + EC_RES_INVALID_CHECKSUM,
> + EC_RES_UNAVAILABLE,
> + EC_RES_TIMEOUT,
> + EC_RES_OVERFLOW,
> + EC_RES_INVALID_HEADER,
> + EC_RES_REQUEST_TRUNCATED,
> + EC_RES_RESPONSE_TOO_BIG,
> + EC_RES_BUS_ERROR,
> + EC_RES_BUSY,
> + EC_RES_INVALID_HEADER_VERSION,
> + EC_RES_INVALID_HEADER_CRC,
> + EC_RES_INVALID_DATA_CRC,
> + EC_RES_DUP_UNAVAILABLE,
> + };
> +
> + for (i = 0; i < ARRAY_SIZE(status); ++i) {
> + msg->result = status[i];
> + ret = cros_ec_check_result(ec_dev, msg);
> + KUNIT_EXPECT_EQ(test, ret, 0);
> + }
> +
> + msg->result = EC_RES_IN_PROGRESS;
> + ret = cros_ec_check_result(ec_dev, msg);
> + KUNIT_EXPECT_EQ(test, ret, -EAGAIN);
> +}
> +
> static int cros_ec_proto_test_init(struct kunit *test)
> {
> struct cros_ec_proto_test_priv *priv;
> @@ -159,6 +199,7 @@ static struct kunit_case cros_ec_proto_test_cases[] = {
> KUNIT_CASE(cros_ec_proto_test_prepare_tx_legacy_bad_msg_outsize),
> KUNIT_CASE(cros_ec_proto_test_prepare_tx_normal),
> KUNIT_CASE(cros_ec_proto_test_prepare_tx_bad_msg_outsize),
> + KUNIT_CASE(cros_ec_proto_test_check_result),
> {}
> };
>
> --
> 2.36.0.550.gb090851708-goog
>

Subject: Re: [PATCH 0/4] platform/chrome: cros_ec_proto: add initial Kunit tests

Hello:

This series was applied to chrome-platform/linux.git (for-kernelci)
by Tzung-Bi Shih <[email protected]>:

On Wed, 18 May 2022 17:18:10 +0800 you wrote:
> The series adds some early Kunit tests for ChromeOS EC protocol.
>
> The 2nd patch is a refactor.
>
> The 3rd patch updates code comment.
>
> The 1st and 4th patches add Kunit tests.
>
> [...]

Here is the summary with links:
- [1/4] platform/chrome: cros_ec_proto: add Kunit tests for cros_ec_prepare_tx()
https://git.kernel.org/chrome-platform/c/2c2d9dc1541b
- [2/4] platform/chrome: cros_ec_proto: factor legacy out from cros_ec_prepare_tx()
https://git.kernel.org/chrome-platform/c/c81768cb844f
- [3/4] platform/chrome: cros_ec_proto: update cros_ec_check_result() comment
https://git.kernel.org/chrome-platform/c/a78a6540e90e
- [4/4] platform/chrome: cros_ec_proto: add Kunit tests for cros_ec_check_result()
https://git.kernel.org/chrome-platform/c/90ce792231d1

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



Subject: Re: [PATCH 0/4] platform/chrome: cros_ec_proto: add initial Kunit tests

Hello:

This series was applied to chrome-platform/linux.git (for-kernelci)
by Tzung-Bi Shih <[email protected]>:

On Wed, 18 May 2022 17:18:10 +0800 you wrote:
> The series adds some early Kunit tests for ChromeOS EC protocol.
>
> The 2nd patch is a refactor.
>
> The 3rd patch updates code comment.
>
> The 1st and 4th patches add Kunit tests.
>
> [...]

Here is the summary with links:
- [1/4] platform/chrome: cros_ec_proto: add Kunit tests for cros_ec_prepare_tx()
https://git.kernel.org/chrome-platform/c/c185ba01c945
- [2/4] platform/chrome: cros_ec_proto: factor legacy out from cros_ec_prepare_tx()
https://git.kernel.org/chrome-platform/c/103c883f4ace
- [3/4] platform/chrome: cros_ec_proto: update cros_ec_check_result() comment
https://git.kernel.org/chrome-platform/c/3cd0cacd4b64
- [4/4] platform/chrome: cros_ec_proto: add Kunit tests for cros_ec_check_result()
https://git.kernel.org/chrome-platform/c/3c470e42dd47

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



Subject: Re: [PATCH 0/4] platform/chrome: cros_ec_proto: add initial Kunit tests

Hello:

This series was applied to chrome-platform/linux.git (for-next)
by Tzung-Bi Shih <[email protected]>:

On Wed, 18 May 2022 17:18:10 +0800 you wrote:
> The series adds some early Kunit tests for ChromeOS EC protocol.
>
> The 2nd patch is a refactor.
>
> The 3rd patch updates code comment.
>
> The 1st and 4th patches add Kunit tests.
>
> [...]

Here is the summary with links:
- [1/4] platform/chrome: cros_ec_proto: add Kunit tests for cros_ec_prepare_tx()
https://git.kernel.org/chrome-platform/c/db681eaf7145
- [2/4] platform/chrome: cros_ec_proto: factor legacy out from cros_ec_prepare_tx()
https://git.kernel.org/chrome-platform/c/23a34e3a9d00
- [3/4] platform/chrome: cros_ec_proto: update cros_ec_check_result() comment
https://git.kernel.org/chrome-platform/c/97b11dd6350a
- [4/4] platform/chrome: cros_ec_proto: add Kunit tests for cros_ec_check_result()
https://git.kernel.org/chrome-platform/c/4319cbd4ed99

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html