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


[staging:staging-testing] BUILD SUCCESS 64b2d6ffff862c0e7278198b4229e42e1abb3bb1

2022-01-26 Thread kernel test robot
i386 randconfig-a005-20220124
i386 randconfig-a003-20220124
i386 randconfig-a004-20220124
i386 randconfig-a001-20220124
i386 randconfig-a006-20220124
x86_64randconfig-a011
x86_64randconfig-a013
x86_64randconfig-a015
x86_64randconfig-a006
x86_64randconfig-a004
x86_64randconfig-a002
i386  randconfig-a012
i386  randconfig-a014
i386  randconfig-a016
arc  randconfig-r043-20220124
riscvrandconfig-r042-20220125
arc  randconfig-r043-20220125
s390 randconfig-r044-20220125
riscvnommu_k210_defconfig
riscvallyesconfig
riscvnommu_virt_defconfig
riscv allnoconfig
riscv   defconfig
riscv  rv32_defconfig
riscvallmodconfig
x86_64rhel-8.3-kselftests
um   x86_64_defconfig
um i386_defconfig
x86_64   allyesconfig
x86_64  defconfig
x86_64   rhel-8.3
x86_64  rhel-8.3-func
x86_64  kexec

clang tested configs:
arm  randconfig-c002-20220124
riscvrandconfig-c006-20220124
i386 randconfig-c001-20220124
powerpc  randconfig-c003-20220124
mips randconfig-c004-20220124
x86_64   randconfig-c007-20220124
arm  imote2_defconfig
powerpc  mpc866_ads_defconfig
powerpc   mpc834x_itxgp_defconfig
mipsmalta_qemu_32r6_defconfig
mips tb0219_defconfig
mips  malta_defconfig
powerpc mpc836x_mds_defconfig
powerpcsocrates_defconfig
powerpc  obs600_defconfig
armmmp2_defconfig
mips   sb1250_swarm_defconfig
powerpc   microwatt_defconfig
arm   omap1_defconfig
powerpc skiroot_defconfig
i386 allyesconfig
powerpc  walnut_defconfig
powerpc xes_mpc85xx_defconfig
powerpc powernv_defconfig
i386  randconfig-a002
i386  randconfig-a006
i386  randconfig-a004
x86_64   randconfig-a011-20220124
x86_64   randconfig-a013-20220124
x86_64   randconfig-a015-20220124
x86_64   randconfig-a016-20220124
x86_64   randconfig-a014-20220124
x86_64   randconfig-a012-20220124
x86_64randconfig-a012
x86_64randconfig-a014
x86_64randconfig-a016
i386 randconfig-a011-20220124
i386 randconfig-a016-20220124
i386 randconfig-a013-20220124
i386 randconfig-a014-20220124
i386 randconfig-a015-20220124
i386 randconfig-a012-20220124
i386  randconfig-a013
i386  randconfig-a011
i386  randconfig-a015
hexagon  randconfig-r045-20220124
hexagon  randconfig-r041-20220124
riscvrandconfig-r042-20220124
s390 randconfig-r044-20220124
hexagon  randconfig-r045-20220125
hexagon  randconfig-r041-20220125
riscvrandconfig-r042-20220126
hexagon  randconfig-r045-20220126
hexagon  randconfig-r041-20220126

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[driver-core:driver-core-testing] BUILD SUCCESS c6479f19e2573b2bac15ab9265b2ec975f40296f

2022-01-26 Thread kernel test robot
  randconfig-a014
i386  randconfig-a016
riscvrandconfig-r042-20220125
arc  randconfig-r043-20220125
arc  randconfig-r043-20220124
s390 randconfig-r044-20220125
riscvnommu_k210_defconfig
riscvallyesconfig
riscvnommu_virt_defconfig
riscv allnoconfig
riscv   defconfig
riscv  rv32_defconfig
riscvallmodconfig
x86_64rhel-8.3-kselftests
um   x86_64_defconfig
um i386_defconfig
x86_64   allyesconfig
x86_64  defconfig
x86_64   rhel-8.3
x86_64  rhel-8.3-func
x86_64  kexec

clang tested configs:
arm  randconfig-c002-20220124
riscvrandconfig-c006-20220124
i386 randconfig-c001-20220124
powerpc  randconfig-c003-20220124
mips randconfig-c004-20220124
x86_64   randconfig-c007-20220124
arm  imote2_defconfig
mips tb0219_defconfig
mips  malta_defconfig
powerpc mpc836x_mds_defconfig
mips loongson2k_defconfig
armneponset_defconfig
powerpc kmeter1_defconfig
powerpcsocrates_defconfig
arm   omap1_defconfig
powerpc skiroot_defconfig
i386 allyesconfig
powerpc  walnut_defconfig
i386  randconfig-a002
i386  randconfig-a006
i386  randconfig-a004
x86_64   randconfig-a011-20220124
x86_64   randconfig-a013-20220124
x86_64   randconfig-a015-20220124
x86_64   randconfig-a016-20220124
x86_64   randconfig-a014-20220124
x86_64   randconfig-a012-20220124
x86_64randconfig-a012
x86_64randconfig-a014
x86_64randconfig-a016
i386 randconfig-a011-20220124
i386 randconfig-a016-20220124
i386 randconfig-a013-20220124
i386 randconfig-a014-20220124
i386 randconfig-a015-20220124
i386 randconfig-a012-20220124
riscvrandconfig-r042-20220124
hexagon  randconfig-r045-20220124
hexagon  randconfig-r041-20220124
hexagon  randconfig-r045-20220125
hexagon  randconfig-r041-20220125
riscvrandconfig-r042-20220126
hexagon  randconfig-r045-20220126
hexagon  randconfig-r041-20220126

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel