[kvalo-ath:ath-qca] BUILD SUCCESS 41c16c0259ed11d34f0d40b9f203f81d8bcceb07

2023-08-24 Thread kernel test robot
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 
ath-qca
branch HEAD: 41c16c0259ed11d34f0d40b9f203f81d8bcceb07  Merge branch 'ath-next' 
into ath-qca

elapsed time: 1447m

configs tested: 171
configs skipped: 2

The following configs have been built successfully.
More configs may be tested in the coming days.

tested configs:
alpha allnoconfig   gcc  
alphaallyesconfig   gcc  
alpha   defconfig   gcc  
arc  allmodconfig   gcc  
arc   allnoconfig   gcc  
arc  allyesconfig   gcc  
arc defconfig   gcc  
arc   randconfig-001-20230824   gcc  
arc  randconfig-r004-20230824   gcc  
arc  randconfig-r024-20230824   gcc  
arm  allmodconfig   gcc  
arm   allnoconfig   gcc  
arm  allyesconfig   gcc  
arm defconfig   gcc  
arm   randconfig-001-20230824   gcc  
arm  randconfig-r003-20230824   clang
arm  randconfig-r035-20230824   clang
arm   sunxi_defconfig   gcc  
arm64allmodconfig   gcc  
arm64 allnoconfig   gcc  
arm64allyesconfig   gcc  
arm64   defconfig   gcc  
arm64randconfig-r034-20230824   gcc  
csky allmodconfig   gcc  
csky  allnoconfig   gcc  
csky allyesconfig   gcc  
cskydefconfig   gcc  
csky randconfig-r015-20230824   gcc  
hexagon   randconfig-001-20230824   clang
hexagon   randconfig-002-20230824   clang
hexagon  randconfig-r011-20230824   clang
i386 allmodconfig   gcc  
i386  allnoconfig   gcc  
i386 allyesconfig   gcc  
i386 buildonly-randconfig-001-20230824   gcc  
i386 buildonly-randconfig-002-20230824   gcc  
i386 buildonly-randconfig-003-20230824   gcc  
i386 buildonly-randconfig-004-20230824   gcc  
i386 buildonly-randconfig-005-20230824   gcc  
i386 buildonly-randconfig-006-20230824   gcc  
i386  debian-10.3   gcc  
i386defconfig   gcc  
i386  randconfig-001-20230824   gcc  
i386  randconfig-002-20230824   gcc  
i386  randconfig-003-20230824   gcc  
i386  randconfig-004-20230824   gcc  
i386  randconfig-005-20230824   gcc  
i386  randconfig-006-20230824   gcc  
i386  randconfig-011-20230824   clang
i386  randconfig-012-20230824   clang
i386  randconfig-013-20230824   clang
i386  randconfig-014-20230824   clang
i386  randconfig-015-20230824   clang
i386  randconfig-016-20230824   clang
loongarchallmodconfig   gcc  
loongarch allnoconfig   gcc  
loongarchallyesconfig   gcc  
loongarch   defconfig   gcc  
loongarch randconfig-001-20230824   gcc  
loongarchrandconfig-r002-20230824   gcc  
loongarchrandconfig-r026-20230824   gcc  
m68k allmodconfig   gcc  
m68k  allnoconfig   gcc  
m68k allyesconfig   gcc  
m68kdefconfig   gcc  
m68kmvme16x_defconfig   gcc  
m68k randconfig-r016-20230824   gcc  
m68k randconfig-r032-20230824   gcc  
microblaze   allmodconfig   gcc  
microblazeallnoconfig   gcc  
microblaze   allyesconfig   gcc  
microblaze  defconfig   gcc  
mips allmodconfig   gcc  
mips  allnoconfig   gcc  
mips allyesconfig   gcc  
mips cu1000-neo_defconfig   clang
mips  loongson3_defconfig   gcc  
nios2allmodconfig   gcc  
nios2 allnoconfig   gcc  
nios2allyesconfig   gcc  
nios2   defconfig   gcc  
nios2randconfig-r014-20230824   gcc  
nios2randconfig-r036-20230824   gcc  
openrisc allmodconfig   gcc  
openrisc  allnoconfig   gcc  
openrisc allyesconfig

Re: [PATCH 1/6] [v3] wifi: ath10k: cleanup CE ring initialization

2023-08-24 Thread Jeff Johnson

On 8/23/2023 10:51 PM, Dmitry Antipov wrote:

Commit 25d0dbcbd5c7 ("ath10k: split ce initialization and allocation")
changes 'ath10k_ce_init_src_ring()' and 'ath10k_ce_init_dest_ring()'
so these functions can't return -ENOMEM but always returns 0. This way
both of them may be converted to 'void', and 'ath10k_ce_init_pipe()'
may be simplified accordingly.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Dmitry Antipov 


Acked-by: Jeff Johnson 


---
v3: split to smaller units per Jeff's suggestion
v2: change 'ath10k_ce_alloc_rri()' to return -ENOMEM in case
of 'dma_alloc_coherent()' failure and fix error handling in
'ath10k_snoc_hif_power_up()'
---
  drivers/net/wireless/ath/ath10k/ce.c | 38 
  1 file changed, 10 insertions(+), 28 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/ce.c 
b/drivers/net/wireless/ath/ath10k/ce.c
index c27b8204718a..ace92c636733 100644
--- a/drivers/net/wireless/ath/ath10k/ce.c
+++ b/drivers/net/wireless/ath/ath10k/ce.c
@@ -1352,9 +1352,9 @@ void ath10k_ce_enable_interrupts(struct ath10k *ar)
  }
  EXPORT_SYMBOL(ath10k_ce_enable_interrupts);
  
-static int ath10k_ce_init_src_ring(struct ath10k *ar,

-  unsigned int ce_id,
-  const struct ce_attr *attr)
+static void ath10k_ce_init_src_ring(struct ath10k *ar,
+   unsigned int ce_id,
+   const struct ce_attr *attr)
  {
struct ath10k_ce *ce = ath10k_ce_priv(ar);
struct ath10k_ce_pipe *ce_state = >ce_states[ce_id];
@@ -1389,13 +1389,11 @@ static int ath10k_ce_init_src_ring(struct ath10k *ar,
ath10k_dbg(ar, ATH10K_DBG_BOOT,
   "boot init ce src ring id %d entries %d base_addr %pK\n",
   ce_id, nentries, src_ring->base_addr_owner_space);
-
-   return 0;
  }
  
-static int ath10k_ce_init_dest_ring(struct ath10k *ar,

-   unsigned int ce_id,
-   const struct ce_attr *attr)
+static void ath10k_ce_init_dest_ring(struct ath10k *ar,
+unsigned int ce_id,
+const struct ce_attr *attr)
  {
struct ath10k_ce *ce = ath10k_ce_priv(ar);
struct ath10k_ce_pipe *ce_state = >ce_states[ce_id];
@@ -1427,8 +1425,6 @@ static int ath10k_ce_init_dest_ring(struct ath10k *ar,
ath10k_dbg(ar, ATH10K_DBG_BOOT,
   "boot ce dest ring id %d entries %d base_addr %pK\n",
   ce_id, nentries, dest_ring->base_addr_owner_space);
-
-   return 0;
  }
  
  static int ath10k_ce_alloc_shadow_base(struct ath10k *ar,

@@ -1662,25 +1658,11 @@ ath10k_ce_alloc_dest_ring_64(struct ath10k *ar, 
unsigned int ce_id,
  int ath10k_ce_init_pipe(struct ath10k *ar, unsigned int ce_id,
const struct ce_attr *attr)
  {
-   int ret;
-
-   if (attr->src_nentries) {
-   ret = ath10k_ce_init_src_ring(ar, ce_id, attr);
-   if (ret) {
-   ath10k_err(ar, "Failed to initialize CE src ring for ID: %d 
(%d)\n",
-  ce_id, ret);
-   return ret;
-   }
-   }
+   if (attr->src_nentries)
+   ath10k_ce_init_src_ring(ar, ce_id, attr);
  
-	if (attr->dest_nentries) {

-   ret = ath10k_ce_init_dest_ring(ar, ce_id, attr);
-   if (ret) {
-   ath10k_err(ar, "Failed to initialize CE dest ring for ID: %d 
(%d)\n",
-  ce_id, ret);
-   return ret;
-   }
-   }
+   if (attr->dest_nentries)
+   ath10k_ce_init_dest_ring(ar, ce_id, attr);
  
  	return 0;

  }



___
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k


Re: [PATCH 3/6] [v3] wifi: ath10k: cleanup CE pipes initialization

2023-08-24 Thread Jeff Johnson

On 8/23/2023 10:51 PM, Dmitry Antipov wrote:

Convert 'ath10k_pci_init_pipes()' and 'ath10k_snoc_init_pipes()'
to 'void' and thus simplify 'ath10k_ahb_hif_power_up()',
'ath10k_pci_qca988x_chip_reset()' and 'ath10k_snoc_hif_power_up()'.

Signed-off-by: Dmitry Antipov 


Acked-by: Jeff Johnson 


---
v3: split from the larger v2 patch
---
  drivers/net/wireless/ath/ath10k/ahb.c  |  6 +-
  drivers/net/wireless/ath/ath10k/pci.c  | 17 +++--
  drivers/net/wireless/ath/ath10k/pci.h  |  2 +-
  drivers/net/wireless/ath/ath10k/snoc.c | 16 ++--
  4 files changed, 7 insertions(+), 34 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/ahb.c 
b/drivers/net/wireless/ath/ath10k/ahb.c
index 76efea2f1138..c3a2eeb5542d 100644
--- a/drivers/net/wireless/ath/ath10k/ahb.c
+++ b/drivers/net/wireless/ath/ath10k/ahb.c
@@ -655,11 +655,7 @@ static int ath10k_ahb_hif_power_up(struct ath10k *ar,
goto out;
}
  
-	ret = ath10k_pci_init_pipes(ar);

-   if (ret) {
-   ath10k_err(ar, "failed to initialize CE: %d\n", ret);
-   goto out;
-   }
+   ath10k_pci_init_pipes(ar);
  
  	ret = ath10k_pci_init_config(ar);

if (ret) {
diff --git a/drivers/net/wireless/ath/ath10k/pci.c 
b/drivers/net/wireless/ath/ath10k/pci.c
index 8e05326400bb..f6988075cd83 100644
--- a/drivers/net/wireless/ath/ath10k/pci.c
+++ b/drivers/net/wireless/ath/ath10k/pci.c
@@ -2524,15 +2524,13 @@ void ath10k_pci_free_pipes(struct ath10k *ar)
ath10k_ce_free_pipe(ar, i);
  }
  
-int ath10k_pci_init_pipes(struct ath10k *ar)

+void ath10k_pci_init_pipes(struct ath10k *ar)
  {
struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
int i;
  
  	for (i = 0; i < CE_COUNT; i++)

ath10k_ce_init_pipe(ar, i, _pci->attr[i]);
-
-   return 0;
  }
  
  static bool ath10k_pci_has_fw_crashed(struct ath10k *ar)

@@ -2697,12 +2695,7 @@ static int ath10k_pci_qca988x_chip_reset(struct ath10k 
*ar)
 * sufficient to verify if device is capable of booting
 * firmware blob.
 */
-   ret = ath10k_pci_init_pipes(ar);
-   if (ret) {
-   ath10k_warn(ar, "failed to init copy engine: %d\n",
-   ret);
-   continue;
-   }
+   ath10k_pci_init_pipes(ar);
  
  		ret = ath10k_pci_diag_read32(ar, QCA988X_HOST_INTEREST_ADDRESS,

 );
@@ -2840,11 +2833,7 @@ static int ath10k_pci_hif_power_up(struct ath10k *ar,
goto err_sleep;
}
  
-	ret = ath10k_pci_init_pipes(ar);

-   if (ret) {
-   ath10k_err(ar, "failed to initialize CE: %d\n", ret);
-   goto err_sleep;
-   }
+   ath10k_pci_init_pipes(ar);
  
  	ret = ath10k_pci_init_config(ar);

if (ret) {
diff --git a/drivers/net/wireless/ath/ath10k/pci.h 
b/drivers/net/wireless/ath/ath10k/pci.h
index 480cd97ab739..3b3ded87aef9 100644
--- a/drivers/net/wireless/ath/ath10k/pci.h
+++ b/drivers/net/wireless/ath/ath10k/pci.h
@@ -238,7 +238,7 @@ void ath10k_pci_free_pipes(struct ath10k *ar);
  void ath10k_pci_rx_replenish_retry(struct timer_list *t);
  void ath10k_pci_ce_deinit(struct ath10k *ar);
  void ath10k_pci_init_napi(struct ath10k *ar);
-int ath10k_pci_init_pipes(struct ath10k *ar);
+void ath10k_pci_init_pipes(struct ath10k *ar);
  int ath10k_pci_init_config(struct ath10k *ar);
  void ath10k_pci_rx_post(struct ath10k *ar);
  void ath10k_pci_flush(struct ath10k *ar);
diff --git a/drivers/net/wireless/ath/ath10k/snoc.c 
b/drivers/net/wireless/ath/ath10k/snoc.c
index 4f835ad60080..815df15f58fb 100644
--- a/drivers/net/wireless/ath/ath10k/snoc.c
+++ b/drivers/net/wireless/ath/ath10k/snoc.c
@@ -939,14 +939,12 @@ static int ath10k_snoc_hif_start(struct ath10k *ar)
return 0;
  }
  
-static int ath10k_snoc_init_pipes(struct ath10k *ar)

+static void ath10k_snoc_init_pipes(struct ath10k *ar)
  {
int i;
  
  	for (i = 0; i < CE_COUNT; i++)

ath10k_ce_init_pipe(ar, i, _ce_config_wlan[i]);
-
-   return 0;
  }
  
  static int ath10k_snoc_wlan_enable(struct ath10k *ar,

@@ -1078,17 +1076,7 @@ static int ath10k_snoc_hif_power_up(struct ath10k *ar,
  
  	ath10k_ce_alloc_rri(ar);
  
-	ret = ath10k_snoc_init_pipes(ar);

-   if (ret) {
-   ath10k_err(ar, "failed to initialize CE: %d\n", ret);
-   goto err_free_rri;
-   }
-
-   return 0;
-
-err_free_rri:
-   ath10k_ce_free_rri(ar);
-   ath10k_snoc_wlan_disable(ar);
+   ath10k_snoc_init_pipes(ar);
  
  err_hw_power_off:

ath10k_hw_power_off(ar);



___
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k


Re: [PATCH 2/6] [v3] wifi: ath10k: simplify ath10k_ce_init_pipe()

2023-08-24 Thread Jeff Johnson

On 8/23/2023 10:51 PM, Dmitry Antipov wrote:

Convert 'ath10k_ce_init_pipe()' to return 'void' and thus
simplify 'ath10k_pci_init_pipes()' and 'ath10k_snoc_init_pipes()'.

Signed-off-by: Dmitry Antipov 


Acked-by: Jeff Johnson 


---
v3: split from the larger v2 patch
---
  drivers/net/wireless/ath/ath10k/ce.c   |  6 ++
  drivers/net/wireless/ath/ath10k/ce.h   |  4 ++--
  drivers/net/wireless/ath/ath10k/pci.c  | 12 +++-
  drivers/net/wireless/ath/ath10k/snoc.c | 12 +++-
  4 files changed, 10 insertions(+), 24 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/ce.c 
b/drivers/net/wireless/ath/ath10k/ce.c
index ace92c636733..73aa3632b23c 100644
--- a/drivers/net/wireless/ath/ath10k/ce.c
+++ b/drivers/net/wireless/ath/ath10k/ce.c
@@ -1655,16 +1655,14 @@ ath10k_ce_alloc_dest_ring_64(struct ath10k *ar, 
unsigned int ce_id,
   * initialization. It may be that only one side or the other is
   * initialized by software/firmware.
   */
-int ath10k_ce_init_pipe(struct ath10k *ar, unsigned int ce_id,
-   const struct ce_attr *attr)
+void ath10k_ce_init_pipe(struct ath10k *ar, unsigned int ce_id,
+const struct ce_attr *attr)
  {
if (attr->src_nentries)
ath10k_ce_init_src_ring(ar, ce_id, attr);
  
  	if (attr->dest_nentries)

ath10k_ce_init_dest_ring(ar, ce_id, attr);
-
-   return 0;
  }
  EXPORT_SYMBOL(ath10k_ce_init_pipe);
  
diff --git a/drivers/net/wireless/ath/ath10k/ce.h b/drivers/net/wireless/ath/ath10k/ce.h

index 666ce384a1d8..a0b408176f7f 100644
--- a/drivers/net/wireless/ath/ath10k/ce.h
+++ b/drivers/net/wireless/ath/ath10k/ce.h
@@ -220,8 +220,8 @@ int ath10k_ce_completed_send_next_nolock(struct 
ath10k_ce_pipe *ce_state,
  
  /*==CE Engine Initialization===*/
  
-int ath10k_ce_init_pipe(struct ath10k *ar, unsigned int ce_id,

-   const struct ce_attr *attr);
+void ath10k_ce_init_pipe(struct ath10k *ar, unsigned int ce_id,
+const struct ce_attr *attr);
  void ath10k_ce_deinit_pipe(struct ath10k *ar, unsigned int ce_id);
  int ath10k_ce_alloc_pipe(struct ath10k *ar, int ce_id,
 const struct ce_attr *attr);
diff --git a/drivers/net/wireless/ath/ath10k/pci.c 
b/drivers/net/wireless/ath/ath10k/pci.c
index a7f44f6335fb..8e05326400bb 100644
--- a/drivers/net/wireless/ath/ath10k/pci.c
+++ b/drivers/net/wireless/ath/ath10k/pci.c
@@ -2527,16 +2527,10 @@ void ath10k_pci_free_pipes(struct ath10k *ar)
  int ath10k_pci_init_pipes(struct ath10k *ar)
  {
struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
-   int i, ret;
+   int i;
  
-	for (i = 0; i < CE_COUNT; i++) {

-   ret = ath10k_ce_init_pipe(ar, i, _pci->attr[i]);
-   if (ret) {
-   ath10k_err(ar, "failed to initialize copy engine pipe %d: 
%d\n",
-  i, ret);
-   return ret;
-   }
-   }
+   for (i = 0; i < CE_COUNT; i++)
+   ath10k_ce_init_pipe(ar, i, _pci->attr[i]);
  
  	return 0;

  }
diff --git a/drivers/net/wireless/ath/ath10k/snoc.c 
b/drivers/net/wireless/ath/ath10k/snoc.c
index 26214c00cd0d..4f835ad60080 100644
--- a/drivers/net/wireless/ath/ath10k/snoc.c
+++ b/drivers/net/wireless/ath/ath10k/snoc.c
@@ -941,16 +941,10 @@ static int ath10k_snoc_hif_start(struct ath10k *ar)
  
  static int ath10k_snoc_init_pipes(struct ath10k *ar)

  {
-   int i, ret;
+   int i;
  
-	for (i = 0; i < CE_COUNT; i++) {

-   ret = ath10k_ce_init_pipe(ar, i, _ce_config_wlan[i]);
-   if (ret) {
-   ath10k_err(ar, "failed to initialize copy engine pipe %d: 
%d\n",
-  i, ret);
-   return ret;
-   }
-   }
+   for (i = 0; i < CE_COUNT; i++)
+   ath10k_ce_init_pipe(ar, i, _ce_config_wlan[i]);
  
  	return 0;

  }



___
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k


Re: [PATCH 4/6] [v3] wifi: ath10k: do not ignore possible dma_alloc_coherent() error

2023-08-24 Thread Jeff Johnson

On 8/23/2023 10:51 PM, Dmitry Antipov wrote:

Change 'ath10k_ce_alloc_rri()' to return -ENOMEM in case
of 'dma_alloc_coherent()' failure and fix error handling in
'ath10k_snoc_hif_power_up()'.

Signed-off-by: Dmitry Antipov 


Acked-by: Jeff Johnson 


---
v3: split from the larger v2 patch
---
  drivers/net/wireless/ath/ath10k/ce.c   | 6 --
  drivers/net/wireless/ath/ath10k/ce.h   | 2 +-
  drivers/net/wireless/ath/ath10k/snoc.c | 9 -
  3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/ce.c 
b/drivers/net/wireless/ath/ath10k/ce.c
index 73aa3632b23c..d7275dcc1f99 100644
--- a/drivers/net/wireless/ath/ath10k/ce.c
+++ b/drivers/net/wireless/ath/ath10k/ce.c
@@ -1906,7 +1906,7 @@ int ath10k_ce_alloc_pipe(struct ath10k *ar, int ce_id,
  }
  EXPORT_SYMBOL(ath10k_ce_alloc_pipe);
  
-void ath10k_ce_alloc_rri(struct ath10k *ar)

+int ath10k_ce_alloc_rri(struct ath10k *ar)
  {
int i;
u32 value;
@@ -1919,7 +1919,7 @@ void ath10k_ce_alloc_rri(struct ath10k *ar)
   >paddr_rri, GFP_KERNEL);
  
  	if (!ce->vaddr_rri)

-   return;
+   return -ENOMEM;
  
  	ath10k_ce_write32(ar, ar->hw_ce_regs->ce_rri_low,

  lower_32_bits(ce->paddr_rri));
@@ -1934,6 +1934,8 @@ void ath10k_ce_alloc_rri(struct ath10k *ar)
value |= ar->hw_ce_regs->upd->mask;
ath10k_ce_write32(ar, ce_base_addr + ctrl1_regs, value);
}
+
+   return 0;
  }
  EXPORT_SYMBOL(ath10k_ce_alloc_rri);
  
diff --git a/drivers/net/wireless/ath/ath10k/ce.h b/drivers/net/wireless/ath/ath10k/ce.h

index a0b408176f7f..c90c00316356 100644
--- a/drivers/net/wireless/ath/ath10k/ce.h
+++ b/drivers/net/wireless/ath/ath10k/ce.h
@@ -262,7 +262,7 @@ void ath10k_ce_enable_interrupts(struct ath10k *ar);
  void ath10k_ce_dump_registers(struct ath10k *ar,
  struct ath10k_fw_crash_data *crash_data);
  
-void ath10k_ce_alloc_rri(struct ath10k *ar);

+int ath10k_ce_alloc_rri(struct ath10k *ar);
  void ath10k_ce_free_rri(struct ath10k *ar);
  
  /* ce_attr.flags values */

diff --git a/drivers/net/wireless/ath/ath10k/snoc.c 
b/drivers/net/wireless/ath/ath10k/snoc.c
index 815df15f58fb..b3acb6ad6f45 100644
--- a/drivers/net/wireless/ath/ath10k/snoc.c
+++ b/drivers/net/wireless/ath/ath10k/snoc.c
@@ -1074,10 +1074,17 @@ static int ath10k_snoc_hif_power_up(struct ath10k *ar,
goto err_hw_power_off;
}
  
-	ath10k_ce_alloc_rri(ar);

+   ret = ath10k_ce_alloc_rri(ar);
+   if (ret)
+   goto err_snoc_wlan_disable;
  
  	ath10k_snoc_init_pipes(ar);
  
+	return 0;

+
+err_snoc_wlan_disable:
+   ath10k_snoc_wlan_disable(ar);
+
  err_hw_power_off:
ath10k_hw_power_off(ar);
  



___
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k


Re: wcn3990 firmware

2023-08-24 Thread Dmitry Baryshkov
On Wed, 2 Aug 2023 at 19:45, Kalle Valo  wrote:
>
> Dmitry Baryshkov  writes:
>
> > On 02/08/2023 13:28, Kalle Valo wrote:
> >
> >> Dmitry Baryshkov  writes:
> >>
> >>> On 24/07/2023 22:38, Dmitry Baryshkov wrote:
>  Hello Kalle, colle
>  Yet-another firmware question (I remember the standard answer of not
>  using firmware not coming from your side). I see that for
>  wcn3990/hw1.0 we have wlanmdsp.mbn with the version
>  WLAN.HL.2.0-01387-QCAHLSWMTPLZ-1
>  We have got the newer wlanmdsp.mbn released under
>  redistribution-permissive license (LICENSE.qcom from
>  linux-firmware). The file has the version
>  WLAN.HL.3.3.7.c2-00723-QCAHLSWMTPLZ-1. It was released for the
>  ath10k embedded into Qualcomm QRB2210 / QRB4210 SoCs.
> >>>
> >>> Update: with the current wlanmdsp.mbn I'm getting the following error
> >>> from the DSP:
> >>>
> >>> [   22.468121] qcom_q6v5_pas 608.remoteproc: fatal error received:
> >>> EX:kernel:0x0:SigVerify:0x173:PC=0xc10dd460
> >>>
> >>> The board is not fused, but the signature format was changed (and so
> >>> were some of the fields).
> >>>
> >>> It seems we will have to provide the updated file somehow to
> >>> linux-firmware. What would be the preferred way for us to do so?
> >> I cannot take firmware files from a 3rd party.
> >
> > Ack
> >
> >> Also I don't follow the
> >> WCN3990 firmware development so I can't really comment how that firmware
> >> release works with different WCN3990 hardware, board files and/or
> >> calibration data.
> >
> > It seems to work pretty normal. I have pointed out the only issue we
> > have stumbled so far in
> > https://bugzilla.kernel.org/show_bug.cgi?id=217748 (the warning during
> > scan).
> >
> >> But if you think that release should be submitted to
> >> linux-firmware that's up to you.
> >
> > This obviously means that we should not push it to
> > /ath10k/WCN3990, correct?
>
> That's the only directory ath10k uses, right? So how would any other
> directory work?

As we are nearly ready to send a pull request to linux-firmware, I
wanted to check if the following commit ([1]) is fine with you. An
alternative approach would be to push wlanmdsp.mbn as
ath10k/WCN3990/wlanmdsp-something.mbn and add two symlinks, from
qcom/qcm2290 and qcom/qrb4210.

As a reminder, the wlanmdsp.mbn is not loaded directly via remoteproc
/ firmware loader, but instead it is loaded by the modem DSP using
tqftp protocol (and tqftpserv will load it from the directory with
modem.mbn).

[1] 
https://github.com/lumag/linux-firmware/commit/f29e3265b02430630222fb3aba8b76ebcba632be

-- 
With best wishes
Dmitry

___
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k


ath10k-firmware: WCN3990: Add board file for the Qualcomm Robotics RB1 platform

2023-08-24 Thread Dmitry Baryshkov
Hello Kalle,

We'd like to ask for inclusion of the board file for the Qualcomm
Robotics RB1 platform. It is
an IOT platform manufactured by Thundercomm, using the Snapdragon QRB2210 SoC.

Following the questions from the ath10k wiki page:

* description for what hardware this is
- It is an QRB2210-based platform (QRB2210)
- It uses wcn3990 chip as a WiFi and BT radio
- For the reference:

ath10k_snoc c80.wifi: qmi chip_id 0x120 chip_family 0x4007
board_id 0xff soc_id 0x4067
ath10k_snoc c80.wifi: qmi fw_version 0x337302d3 fw_build_timestamp
2023-01-06 01:50 fw_build_id
QC_IMAGE_VERSION_STRING=WLAN.HL.3.3.7.c2-00723-QCAHLSWMTPLZ-1
ath10k_snoc c80.wifi: wcn3990 hw1.0 target 0x0008 chip_id
0x sub :
ath10k_snoc c80.wifi: kconfig debug 0 debugfs 0 tracing 0 dfs 0 testmode 0
ath10k_snoc c80.wifi: firmware ver  api 5 features
wowlan,mgmt-tx-by-reference,non-bmi crc32 b3d4b790
ath10k_snoc c80.wifi: htt-ver 3.114 wmi-op 4 htt-op 3 cal file
max-sta 32 raw 0 hwcrypto 1

* origin of the board file
  - It comes from the firmware package provided by Thundercomm for
redistribution.

* ids to be used with the board file

bus=snoc,qmi-board-id=ff,qmi-chip-id=120,variant=Thundercomm_RB1

Note, the device comes with the board_id not changed from 0xff.
Following the example of existing boards we are adding the
calibration variant.

* md5sum of each new board file to add

$ md5sum *
5003239259d8cb68097a941dde86dcc7
bus=snoc,qmi-board-id=ff,qmi-chip-id=120,variant=Thundercomm_RB1.bin

$ sha256sum *
0eeffb43040b216b0f3210b8db69e4558844dd9df52caf9c25f56a79401f442c
bus=snoc,qmi-board-id=ff,qmi-chip-id=120,variant=Thundercomm_RB1.bin

-- 
With best wishes
Dmitry


bus=snoc,qmi-board-id=ff,qmi-chip-id=120,variant=Thundercomm_RB1.bin
Description: Binary data
___
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k


ath10k-firmware: WCN3990: Add board file for the Qualcomm Robotics RB2 platform

2023-08-24 Thread Dmitry Baryshkov
Hello Kalle,

We'd like to ask for inclusion of the board file for the Qualcomm
Robotics RB2 platform. It is
an IOT platform manufactured by Thundercomm, using the Snapdragon QRB4210 SoC.

Following the questions from the ath10k wiki page:

* description for what hardware this is
- It is an QRB4210-based platform (QRB4210)
- It uses wcn3990 chip as a WiFi and BT radio
- For the reference:

ath10k_snoc c80.wifi: qmi chip_id 0x150 chip_family 0x4002
board_id 0xff soc_id 0x4067
ath10k_snoc c80.wifi: qmi fw_version 0x337302d3 fw_build_timestamp
2023-01-06 01:50 fw_build_id
QC_IMAGE_VERSION_STRING=WLAN.HL.3.3.7.c2-00723-QCAHLSWMTPLZ-1
ath10k_snoc c80.wifi: wcn3990 hw1.0 target 0x0008 chip_id
0x sub :
ath10k_snoc c80.wifi: kconfig debug 0 debugfs 0 tracing 0 dfs 0 testmode 0
ath10k_snoc c80.wifi: firmware ver  api 5 features
wowlan,mgmt-tx-by-reference,non-bmi crc32 b3d4b790
ath10k_snoc c80.wifi: htt-ver 3.114 wmi-op 4 htt-op 3 cal file
max-sta 32 raw 0 hwcrypto 1

* origin of the board file
  - It comes from the firmware package provided by Thundercomm for
redistribution.

* ids to be used with the board file

bus=snoc,qmi-board-id=ff,qmi-chip-id=150,variant=Thundercomm_RB2

Note, the device comes with the board_id not changed from 0xff.
Following the example of existing boards we are adding the
calibration variant.

* md5sum of each new board file to add

$ md5sum *
5003239259d8cb68097a941dde86dcc7
bus=snoc,qmi-board-id=ff,qmi-chip-id=150,variant=Thundercomm_RB2.bin

$ sha256sum *
0eeffb43040b216b0f3210b8db69e4558844dd9df52caf9c25f56a79401f442c
bus=snoc,qmi-board-id=ff,qmi-chip-id=150,variant=Thundercomm_RB2.bin


-- 
With best wishes
Dmitry


bus=snoc,qmi-board-id=ff,qmi-chip-id=150,variant=Thundercomm_RB2.bin
Description: Binary data
___
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k