[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <fd443617-0460-4c44-84a1-3563c0c76033@molgen.mpg.de>
Date: Wed, 23 Oct 2024 12:07:06 +0200
From: Paul Menzel <pmenzel@...gen.mpg.de>
To: Konrad Knitter <konrad.knitter@...el.com>
Cc: intel-wired-lan@...ts.osuosl.org, jacob.e.keller@...el.com,
netdev@...r.kernel.org, jiri@...nulli.us, davem@...emloft.net,
edumazet@...gle.com, kuba@...nel.org, pabeni@...hat.com,
linux-kernel@...r.kernel.org, anthony.l.nguyen@...el.com,
przemyslaw.kitszel@...el.com, Marcin Szycik <marcin.szycik@...ux.intel.com>
Subject: Re: [Intel-wired-lan] [PATCH iwl-next v1 1/3] pldmfw: selected
component update
Dear Konrad,
Thank you for your patch.
Am 23.10.24 um 12:07 schrieb Konrad Knitter:
> Enable update of a selected component.
It’d be great if you used that for the summary/title to make it a
statement (by adding a verb in imperative mood).
It’d be great, if you elaborated, what that feature is, and included the
documentation used for the implementation. Also, how can it be tested?
> Reviewed-by: Marcin Szycik <marcin.szycik@...ux.intel.com>
> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@...el.com>
> Signed-off-by: Konrad Knitter <konrad.knitter@...el.com>
> ---
> include/linux/pldmfw.h | 8 ++++++++
> lib/pldmfw/pldmfw.c | 8 ++++++++
> 2 files changed, 16 insertions(+)
>
> diff --git a/include/linux/pldmfw.h b/include/linux/pldmfw.h
> index 0fc831338226..f5047983004f 100644
> --- a/include/linux/pldmfw.h
> +++ b/include/linux/pldmfw.h
> @@ -125,9 +125,17 @@ struct pldmfw_ops;
> * a pointer to their own data, used to implement the device specific
> * operations.
> */
> +
> +enum pldmfw_update_mode {
> + PLDMFW_UPDATE_MODE_FULL,
> + PLDMFW_UPDATE_MODE_SINGLE_COMPONENT,
> +};
> +
> struct pldmfw {
> const struct pldmfw_ops *ops;
> struct device *dev;
> + u16 component_identifier;
> + enum pldmfw_update_mode mode;
> };
>
> bool pldmfw_op_pci_match_record(struct pldmfw *context, struct pldmfw_record *record);
> diff --git a/lib/pldmfw/pldmfw.c b/lib/pldmfw/pldmfw.c
> index 6e1581b9a616..6264e2013f25 100644
> --- a/lib/pldmfw/pldmfw.c
> +++ b/lib/pldmfw/pldmfw.c
> @@ -481,9 +481,17 @@ static int pldm_parse_components(struct pldmfw_priv *data)
> component->component_data = data->fw->data + offset;
> component->component_size = size;
>
> + if (data->context->mode == PLDMFW_UPDATE_MODE_SINGLE_COMPONENT &&
> + data->context->component_identifier != component->identifier)
> + continue;
> +
> list_add_tail(&component->entry, &data->components);
> }
>
> + if (data->context->mode == PLDMFW_UPDATE_MODE_SINGLE_COMPONENT &&
> + list_empty(&data->components))
> + return -ENOENT;
> +
> header_crc_ptr = data->fw->data + data->offset;
>
> err = pldm_move_fw_offset(data, sizeof(data->header_crc));
Kind regards,
Paul
Powered by blists - more mailing lists