Re: [PATCH v9 05/24] wfx: add main.c/main.h

2022-02-10 Thread Kalle Valo
Jérôme Pouiller  writes:

>> > There is also the patch 01/24 about the SDIO IDs.
>> >
>> > I think the v10 could contain only 3 patches:
>> >
>> > 1. mmc: sdio: add SDIO IDs for Silabs WF200 chip
>> > 2. dt-bindings: introduce silabs,wfx.yaml
>> > 3. [all the patches 3 to 24 squashed]
>> >
>> > Would it be right for you?
>> 
>> TBH I don't see the point of patch 3 at this moment, we have had so many
>> iterations with the full driver already. If people want to look at the
>> driver, they can check it from the staging tree. So in the next round I
>> recommend submitting only patches 1 and 2 and focus on getting all the
>> pending patches to staging tree.
>
> Ok.
>
>> And the chances are that a big patch like that would be filtered by the
>> mailing lists anyway.
>
> I believe that with -M, the patch would be very small.

Ah, you mean patch 3 would be about moving wfx from drivers/staging to
drivers/net/wireless? Yeah, with -M that would be a good idea.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v9 05/24] wfx: add main.c/main.h

2022-02-10 Thread Jérôme Pouiller
On Thursday 10 February 2022 17:25:05 CET Kalle Valo wrote:
> Jérôme Pouiller  writes:
> 
> > On Thursday 10 February 2022 15:51:03 CET Kalle Valo wrote:
> >> Jérôme Pouiller  writes:
> >> > On Thursday 10 February 2022 15:20:56 CET Kalle Valo wrote:
> >> >> Jérôme Pouiller  writes:
> >> >>
> >> >> > Kalle, is this function what you expected? If it is right for you, I 
> >> >> > am
> >> >> > going to send it to the staging tree.
> >> >>
> >> >> Looks better, but I don't get why '{' and '}' are still needed. Ah, does
> >> >> the firmware require to have them?
> >> >
> >> > Indeed. If '{' and '}' are not present, I guarantee the firmware will 
> >> > return
> >> > an error (or assert). However, I am more confident in the driver than in 
> >> > the
> >> > firmware to report errors to the user.
> >>
> >> Agreed.
> >>
> >> > If there is no other comment, I am going to:
> >> >   - submit this change to the staging tree
> >>
> >> Good, it's important that you get all your changes to the staging tree
> >> before the next merge window.
> >>
> >> >   - publish the tool that generate this new format
> >> >   - submit the PDS files referenced in bus_{sdio,spi}.c to linux-firmware
> >> >   - send the v10 of this PR
> >>
> >> I'm not sure if there's a need to send a full patchset anymore? We are
> >> so close now anyway and the full driver is available from the staging
> >> tree, at least that's what I will use from now on when reviewing wfx.
> >>
> >> What about the Device Tree bindings? That needs to be acked by the DT
> >> maintainers, so that's good to submit as a separate patch for review.
> >
> > There is also the patch 01/24 about the SDIO IDs.
> >
> > I think the v10 could contain only 3 patches:
> >
> > 1. mmc: sdio: add SDIO IDs for Silabs WF200 chip
> > 2. dt-bindings: introduce silabs,wfx.yaml
> > 3. [all the patches 3 to 24 squashed]
> >
> > Would it be right for you?
> 
> TBH I don't see the point of patch 3 at this moment, we have had so many
> iterations with the full driver already. If people want to look at the
> driver, they can check it from the staging tree. So in the next round I
> recommend submitting only patches 1 and 2 and focus on getting all the
> pending patches to staging tree.

Ok.

> And the chances are that a big patch like that would be filtered by the
> mailing lists anyway.

I believe that with -M, the patch would be very small.

-- 
Jérôme Pouiller


___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v9 05/24] wfx: add main.c/main.h

2022-02-10 Thread Kalle Valo
Jérôme Pouiller  writes:

> On Thursday 10 February 2022 15:51:03 CET Kalle Valo wrote:
>> Jérôme Pouiller  writes:
>> > On Thursday 10 February 2022 15:20:56 CET Kalle Valo wrote:
>> >> Jérôme Pouiller  writes:
>> >>
>> >> > Kalle, is this function what you expected? If it is right for you, I am
>> >> > going to send it to the staging tree.
>> >>
>> >> Looks better, but I don't get why '{' and '}' are still needed. Ah, does
>> >> the firmware require to have them?
>> >
>> > Indeed. If '{' and '}' are not present, I guarantee the firmware will 
>> > return
>> > an error (or assert). However, I am more confident in the driver than in 
>> > the
>> > firmware to report errors to the user.
>> 
>> Agreed.
>> 
>> > If there is no other comment, I am going to:
>> >   - submit this change to the staging tree
>> 
>> Good, it's important that you get all your changes to the staging tree
>> before the next merge window.
>> 
>> >   - publish the tool that generate this new format
>> >   - submit the PDS files referenced in bus_{sdio,spi}.c to linux-firmware
>> >   - send the v10 of this PR
>> 
>> I'm not sure if there's a need to send a full patchset anymore? We are
>> so close now anyway and the full driver is available from the staging
>> tree, at least that's what I will use from now on when reviewing wfx.
>> 
>> What about the Device Tree bindings? That needs to be acked by the DT
>> maintainers, so that's good to submit as a separate patch for review.
>
> There is also the patch 01/24 about the SDIO IDs.
>
> I think the v10 could contain only 3 patches:
>
> 1. mmc: sdio: add SDIO IDs for Silabs WF200 chip
> 2. dt-bindings: introduce silabs,wfx.yaml
> 3. [all the patches 3 to 24 squashed]
>
> Would it be right for you?

TBH I don't see the point of patch 3 at this moment, we have had so many
iterations with the full driver already. If people want to look at the
driver, they can check it from the staging tree. So in the next round I
recommend submitting only patches 1 and 2 and focus on getting all the
pending patches to staging tree.

And the chances are that a big patch like that would be filtered by the
mailing lists anyway.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v9 05/24] wfx: add main.c/main.h

2022-02-10 Thread Jérôme Pouiller
On Thursday 10 February 2022 15:51:03 CET Kalle Valo wrote:
> Jérôme Pouiller  writes:
> > On Thursday 10 February 2022 15:20:56 CET Kalle Valo wrote:
> >> Jérôme Pouiller  writes:
> >>
> >> > Kalle, is this function what you expected? If it is right for you, I am
> >> > going to send it to the staging tree.
> >>
> >> Looks better, but I don't get why '{' and '}' are still needed. Ah, does
> >> the firmware require to have them?
> >
> > Indeed. If '{' and '}' are not present, I guarantee the firmware will return
> > an error (or assert). However, I am more confident in the driver than in the
> > firmware to report errors to the user.
> 
> Agreed.
> 
> > If there is no other comment, I am going to:
> >   - submit this change to the staging tree
> 
> Good, it's important that you get all your changes to the staging tree
> before the next merge window.
> 
> >   - publish the tool that generate this new format
> >   - submit the PDS files referenced in bus_{sdio,spi}.c to linux-firmware
> >   - send the v10 of this PR
> 
> I'm not sure if there's a need to send a full patchset anymore? We are
> so close now anyway and the full driver is available from the staging
> tree, at least that's what I will use from now on when reviewing wfx.
> 
> What about the Device Tree bindings? That needs to be acked by the DT
> maintainers, so that's good to submit as a separate patch for review.

There is also the patch 01/24 about the SDIO IDs.

I think the v10 could contain only 3 patches:

1. mmc: sdio: add SDIO IDs for Silabs WF200 chip
2. dt-bindings: introduce silabs,wfx.yaml
3. [all the patches 3 to 24 squashed]

Would it be right for you?

-- 
Jérôme Pouiller


___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v9 05/24] wfx: add main.c/main.h

2022-02-10 Thread Kalle Valo
Jérôme Pouiller  writes:

> On Thursday 10 February 2022 15:20:56 CET Kalle Valo wrote:
>> 
>> Jérôme Pouiller  writes:
>> 
>> > Kalle, is this function what you expected? If it is right for you, I am
>> > going to send it to the staging tree.
>> 
>> Looks better, but I don't get why '{' and '}' are still needed. Ah, does
>> the firmware require to have them?
>
> Indeed. If '{' and '}' are not present, I guarantee the firmware will return
> an error (or assert). However, I am more confident in the driver than in the
> firmware to report errors to the user.

Agreed.

> If there is no other comment, I am going to:
>   - submit this change to the staging tree

Good, it's important that you get all your changes to the staging tree
before the next merge window.

>   - publish the tool that generate this new format
>   - submit the PDS files referenced in bus_{sdio,spi}.c to linux-firmware
>   - send the v10 of this PR

I'm not sure if there's a need to send a full patchset anymore? We are
so close now anyway and the full driver is available from the staging
tree, at least that's what I will use from now on when reviewing wfx.

What about the Device Tree bindings? That needs to be acked by the DT
maintainers, so that's good to submit as a separate patch for review.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v9 05/24] wfx: add main.c/main.h

2022-02-10 Thread Jérôme Pouiller
On Thursday 10 February 2022 15:20:56 CET Kalle Valo wrote:
> 
> Jérôme Pouiller  writes:
> 
> > Hi Kalle,
> >
> > On Tuesday 11 January 2022 18:14:05 CET Jerome Pouiller wrote:
> >> From: Jérôme Pouiller 
> >>
> >> Signed-off-by: Jérôme Pouiller 
> >> ---
> >>  drivers/net/wireless/silabs/wfx/main.c | 485 +
> >>  drivers/net/wireless/silabs/wfx/main.h |  42 +++
> >>  2 files changed, 527 insertions(+)
> >>  create mode 100644 drivers/net/wireless/silabs/wfx/main.c
> >>  create mode 100644 drivers/net/wireless/silabs/wfx/main.h
> >>
> > [...]
> >> +/* The device needs data about the antenna configuration. This 
> >> information in
> >> + * provided by PDS (Platform Data Set, this is the wording used in WF200
> >> + * documentation) files. For hardware integrators, the full process to 
> >> create
> >> + * PDS files is described here:
> >> + *   https:github.com/SiliconLabs/wfx-firmware/blob/master/PDS/README.md
> >> + *
> >> + * The PDS file is an array of Time-Length-Value structs.
> >> + */
> >> + int wfx_send_pds(struct wfx_dev *wdev, u8 *buf, size_t len)
> >> +{
> >> +int ret, chunk_type, chunk_len, chunk_num = 0;
> >> +
> >> +if (*buf == '{') {
> >> +dev_err(wdev->dev, "PDS: malformed file (legacy format?)\n");
> >> +return -EINVAL;
> >> +}
> >> +while (len > 0) {
> >> +chunk_type = get_unaligned_le16(buf + 0);
> >> +chunk_len = get_unaligned_le16(buf + 2);
> >> +if (chunk_len > len) {
> >> +dev_err(wdev->dev, "PDS:%d: corrupted file\n", 
> >> chunk_num);
> >> +return -EINVAL;
> >> +}
> >> +if (chunk_type != WFX_PDS_TLV_TYPE) {
> >> +dev_info(wdev->dev, "PDS:%d: skip unknown data\n", 
> >> chunk_num);
> >> +goto next;
> >> +}
> >> +if (chunk_len > WFX_PDS_MAX_CHUNK_SIZE)
> >> + dev_warn(wdev->dev, "PDS:%d: unexpectly large chunk\n",
> >> chunk_num);
> >> +if (buf[4] != '{' || buf[chunk_len - 1] != '}')
> >> + dev_warn(wdev->dev, "PDS:%d: unexpected content\n", chunk_num);
> >> +
> >> +ret = wfx_hif_configuration(wdev, buf + 4, chunk_len - 4);
> >> +if (ret > 0) {
> >> + dev_err(wdev->dev, "PDS:%d: invalid data (unsupported
> >> options?)\n",
> >> +chunk_num);
> >> +return -EINVAL;
> >> +}
> >> +if (ret == -ETIMEDOUT) {
> >> + dev_err(wdev->dev, "PDS:%d: chip didn't reply (corrupted
> >> file?)\n",
> >> +chunk_num);
> >> +return ret;
> >> +}
> >> +if (ret) {
> >> + dev_err(wdev->dev, "PDS:%d: chip returned an unknown error\n",
> >> chunk_num);
> >> +return -EIO;
> >> +}
> >> +next:
> >> +chunk_num++;
> >> +len -= chunk_len;
> >> +buf += chunk_len;
> >> +}
> >> +return 0;
> >> +}
> >
> > Kalle, is this function what you expected? If it is right for you, I am
> > going to send it to the staging tree.
> 
> Looks better, but I don't get why '{' and '}' are still needed. Ah, does
> the firmware require to have them?

Indeed. If '{' and '}' are not present, I guarantee the firmware will return
an error (or assert). However, I am more confident in the driver than in the
firmware to report errors to the user.

If there is no other comment, I am going to:
  - submit this change to the staging tree
  - publish the tool that generate this new format
  - submit the PDS files referenced in bus_{sdio,spi}.c to linux-firmware
  - send the v10 of this PR


-- 
Jérôme Pouiller


___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v9 05/24] wfx: add main.c/main.h

2022-02-10 Thread Pali Rohár
On Tuesday 11 January 2022 18:14:05 Jerome Pouiller wrote:
> +/* The device needs data about the antenna configuration. This information in
> + * provided by PDS (Platform Data Set, this is the wording used in WF200
> + * documentation) files. For hardware integrators, the full process to create
> + * PDS files is described here:
> + *   https:github.com/SiliconLabs/wfx-firmware/blob/master/PDS/README.md
> + *

Just a small cosmetic issue but URL cannot be automatically opened as it
is missing slashes after https protocol.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v9 05/24] wfx: add main.c/main.h

2022-02-10 Thread Kalle Valo
Jérôme Pouiller  writes:

> Hi Kalle,
>
> On Tuesday 11 January 2022 18:14:05 CET Jerome Pouiller wrote:
>> From: Jérôme Pouiller 
>> 
>> Signed-off-by: Jérôme Pouiller 
>> ---
>>  drivers/net/wireless/silabs/wfx/main.c | 485 +
>>  drivers/net/wireless/silabs/wfx/main.h |  42 +++
>>  2 files changed, 527 insertions(+)
>>  create mode 100644 drivers/net/wireless/silabs/wfx/main.c
>>  create mode 100644 drivers/net/wireless/silabs/wfx/main.h
>> 
> [...]
>> +/* The device needs data about the antenna configuration. This information 
>> in
>> + * provided by PDS (Platform Data Set, this is the wording used in WF200
>> + * documentation) files. For hardware integrators, the full process to 
>> create
>> + * PDS files is described here:
>> + *   https:github.com/SiliconLabs/wfx-firmware/blob/master/PDS/README.md
>> + *
>> + * The PDS file is an array of Time-Length-Value structs.
>> + */
>> + int wfx_send_pds(struct wfx_dev *wdev, u8 *buf, size_t len)
>> +{
>> +int ret, chunk_type, chunk_len, chunk_num = 0;
>> +
>> +if (*buf == '{') {
>> +dev_err(wdev->dev, "PDS: malformed file (legacy format?)\n");
>> +return -EINVAL;
>> +}
>> +while (len > 0) {
>> +chunk_type = get_unaligned_le16(buf + 0);
>> +chunk_len = get_unaligned_le16(buf + 2);
>> +if (chunk_len > len) {
>> +dev_err(wdev->dev, "PDS:%d: corrupted file\n", 
>> chunk_num);
>> +return -EINVAL;
>> +}
>> +if (chunk_type != WFX_PDS_TLV_TYPE) {
>> +dev_info(wdev->dev, "PDS:%d: skip unknown data\n", 
>> chunk_num);
>> +goto next;
>> +}
>> +if (chunk_len > WFX_PDS_MAX_CHUNK_SIZE)
>> + dev_warn(wdev->dev, "PDS:%d: unexpectly large chunk\n",
>> chunk_num);
>> +if (buf[4] != '{' || buf[chunk_len - 1] != '}')
>> + dev_warn(wdev->dev, "PDS:%d: unexpected content\n", chunk_num);
>> +
>> +ret = wfx_hif_configuration(wdev, buf + 4, chunk_len - 4);
>> +if (ret > 0) {
>> + dev_err(wdev->dev, "PDS:%d: invalid data (unsupported
>> options?)\n",
>> +chunk_num);
>> +return -EINVAL;
>> +}
>> +if (ret == -ETIMEDOUT) {
>> + dev_err(wdev->dev, "PDS:%d: chip didn't reply (corrupted
>> file?)\n",
>> +chunk_num);
>> +return ret;
>> +}
>> +if (ret) {
>> + dev_err(wdev->dev, "PDS:%d: chip returned an unknown error\n",
>> chunk_num);
>> +return -EIO;
>> +}
>> +next:
>> +chunk_num++;
>> +len -= chunk_len;
>> +buf += chunk_len;
>> +}
>> +return 0;
>> +}
>
> Kalle, is this function what you expected? If it is right for you, I am
> going to send it to the staging tree.

Looks better, but I don't get why '{' and '}' are still needed. Ah, does
the firmware require to have them?

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v9 05/24] wfx: add main.c/main.h

2022-01-26 Thread Jérôme Pouiller
Hi Kalle,

On Tuesday 11 January 2022 18:14:05 CET Jerome Pouiller wrote:
> From: Jérôme Pouiller 
> 
> Signed-off-by: Jérôme Pouiller 
> ---
>  drivers/net/wireless/silabs/wfx/main.c | 485 +
>  drivers/net/wireless/silabs/wfx/main.h |  42 +++
>  2 files changed, 527 insertions(+)
>  create mode 100644 drivers/net/wireless/silabs/wfx/main.c
>  create mode 100644 drivers/net/wireless/silabs/wfx/main.h
> 
[...]
> +/* The device needs data about the antenna configuration. This information in
> + * provided by PDS (Platform Data Set, this is the wording used in WF200
> + * documentation) files. For hardware integrators, the full process to create
> + * PDS files is described here:
> + *   https:github.com/SiliconLabs/wfx-firmware/blob/master/PDS/README.md
> + *
> + * The PDS file is an array of Time-Length-Value structs.
> + */
> + int wfx_send_pds(struct wfx_dev *wdev, u8 *buf, size_t len)
> +{
> + int ret, chunk_type, chunk_len, chunk_num = 0;
> +
> + if (*buf == '{') {
> + dev_err(wdev->dev, "PDS: malformed file (legacy format?)\n");
> + return -EINVAL;
> + }
> + while (len > 0) {
> + chunk_type = get_unaligned_le16(buf + 0);
> + chunk_len = get_unaligned_le16(buf + 2);
> + if (chunk_len > len) {
> + dev_err(wdev->dev, "PDS:%d: corrupted file\n", 
> chunk_num);
> + return -EINVAL;
> + }
> + if (chunk_type != WFX_PDS_TLV_TYPE) {
> + dev_info(wdev->dev, "PDS:%d: skip unknown data\n", 
> chunk_num);
> + goto next;
> + }
> + if (chunk_len > WFX_PDS_MAX_CHUNK_SIZE)
> + dev_warn(wdev->dev, "PDS:%d: unexpectly large chunk\n", 
> chunk_num);
> + if (buf[4] != '{' || buf[chunk_len - 1] != '}')
> + dev_warn(wdev->dev, "PDS:%d: unexpected content\n", 
> chunk_num);
> +
> + ret = wfx_hif_configuration(wdev, buf + 4, chunk_len - 4);
> + if (ret > 0) {
> + dev_err(wdev->dev, "PDS:%d: invalid data (unsupported 
> options?)\n",
> + chunk_num);
> + return -EINVAL;
> + }
> + if (ret == -ETIMEDOUT) {
> + dev_err(wdev->dev, "PDS:%d: chip didn't reply 
> (corrupted file?)\n",
> + chunk_num);
> + return ret;
> + }
> + if (ret) {
> + dev_err(wdev->dev, "PDS:%d: chip returned an unknown 
> error\n", chunk_num);
> + return -EIO;
> + }
> +next:
> + chunk_num++;
> + len -= chunk_len;
> + buf += chunk_len;
> + }
> + return 0;
> +}

Kalle, is this function what you expected? If it is right for you, I am
going to send it to the staging tree.


-- 
Jérôme Pouiller


___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel