Message ID | 20210722193459.7474-1-ojab@ojab.ru (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [V2] ath10k: don't fail if IRAM write fails | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
See also: https://lists.infradead.org/pipermail/ath10k/2021-May/012626.html On Thu, 22 Jul 2021 at 22:36, ojab <ojab@ojab.ru> wrote: > > After reboot with kernel & firmware updates I found `failed to copy > target iram contents:` in dmesg and missing wlan interfaces for both > of my QCA9984 compex cards. Rolling back kernel/firmware didn't fixed > it, so while I have no idea what's actually happening, I don't see why > we should fail in this case, looks like some optional firmware ability > that could be skipped. > > Also with additional logging there is > ``` > [ 6.839858] ath10k_pci 0000:04:00.0: No hardware memory > [ 6.841205] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 > [ 6.873578] ath10k_pci 0000:07:00.0: No hardware memory > [ 6.875052] ath10k_pci 0000:07:00.0: failed to copy target iram contents: -12 > ``` > so exact branch could be seen. > > Signed-off-by: Slava Kardakov <ojab@ojab.ru> > --- > Of course I forgot to sing off, since I don't use it by default because I > hate my real name and kernel requires it > > drivers/net/wireless/ath/ath10k/core.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c > index 2f9be182fbfb..d9fd5294e142 100644 > --- a/drivers/net/wireless/ath/ath10k/core.c > +++ b/drivers/net/wireless/ath/ath10k/core.c > @@ -2691,8 +2691,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > u32 len, remaining_len; > > hw_mem = ath10k_coredump_get_mem_layout(ar); > - if (!hw_mem) > + if (!hw_mem) { > + ath10k_warn(ar, "No hardware memory"); > return -ENOMEM; > + } > > for (i = 0; i < hw_mem->region_table.size; i++) { > tmp = &hw_mem->region_table.regions[i]; > @@ -2702,8 +2704,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > } > } > > - if (!mem_region) > + if (!mem_region) { > + ath10k_warn(ar, "No memory region"); > return -ENOMEM; > + } > > for (i = 0; i < ar->wmi.num_mem_chunks; i++) { > if (ar->wmi.mem_chunks[i].req_id == > @@ -2917,7 +2921,6 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, > if (status) { > ath10k_warn(ar, "failed to copy target iram contents: %d", > status); > - goto err_hif_stop; > } > } > > -- > 2.32.0
On Thu, Jul 22, 2021 at 12:42 PM ojab // <ojab@ojab.ru> wrote: > > See also: https://lists.infradead.org/pipermail/ath10k/2021-May/012626.html > > On Thu, 22 Jul 2021 at 22:36, ojab <ojab@ojab.ru> wrote: > > > > After reboot with kernel & firmware updates I found `failed to copy > > target iram contents:` in dmesg and missing wlan interfaces for both > > of my QCA9984 compex cards. Rolling back kernel/firmware didn't fixed > > it, so while I have no idea what's actually happening, I don't see why > > we should fail in this case, looks like some optional firmware ability > > that could be skipped. > > > > Also with additional logging there is > > ``` > > [ 6.839858] ath10k_pci 0000:04:00.0: No hardware memory > > [ 6.841205] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 > > [ 6.873578] ath10k_pci 0000:07:00.0: No hardware memory > > [ 6.875052] ath10k_pci 0000:07:00.0: failed to copy target iram contents: -12 > > ``` > > so exact branch could be seen. > > > > Signed-off-by: Slava Kardakov <ojab@ojab.ru> > > --- > > Of course I forgot to sing off, since I don't use it by default because I > > hate my real name and kernel requires it Thanks for working on this! And sorry for the slow response. I've been unexpectedly very busy lately, but I plan to test out this patch next week. > > > > drivers/net/wireless/ath/ath10k/core.c | 9 ++++++--- > > 1 file changed, 6 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c > > index 2f9be182fbfb..d9fd5294e142 100644 > > --- a/drivers/net/wireless/ath/ath10k/core.c > > +++ b/drivers/net/wireless/ath/ath10k/core.c > > @@ -2691,8 +2691,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > > u32 len, remaining_len; > > > > hw_mem = ath10k_coredump_get_mem_layout(ar); > > - if (!hw_mem) > > + if (!hw_mem) { > > + ath10k_warn(ar, "No hardware memory"); > > return -ENOMEM; > > + } > > > > for (i = 0; i < hw_mem->region_table.size; i++) { > > tmp = &hw_mem->region_table.regions[i]; > > @@ -2702,8 +2704,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > > } > > } > > > > - if (!mem_region) > > + if (!mem_region) { > > + ath10k_warn(ar, "No memory region"); > > return -ENOMEM; > > + } > > > > for (i = 0; i < ar->wmi.num_mem_chunks; i++) { > > if (ar->wmi.mem_chunks[i].req_id == > > @@ -2917,7 +2921,6 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, > > if (status) { > > ath10k_warn(ar, "failed to copy target iram contents: %d", > > status); > > - goto err_hif_stop; > > } > > } > > > > -- > > 2.32.0
Sorry again for the slow response time. I got around to testing this today on my hardware. I tested with a vanilla 5.13.8 kernel, and then the same kernel with this patch applied. Long story short, the patch does indeed seem to at least work around the issue I was seeing in [1]. With this patch applied, I still get the same "failed to copy target iram contents" error, but the interface comes up and seems to be functional regardless. So, for what it's worth (granted I am no wireless expert!), you can take: Tested-by: Axel Rasmussen <axelrasmussen@google.com> (This issue has nothing to do with my full time job, but I'm meant to use my @google.com address for any open source contributions, which I believe applies to commit messages too.) [1]: https://lists.infradead.org/pipermail/ath10k/2021-May/012626.html Here are the two dmesg outputs, for comparison: # uname -a Linux router 5.13.8 #1 SMP Wed Aug 11 20:18:51 PDT 2021 x86_64 AMD GX-412TC SOC AuthenticAMD GNU/Linux # dmesg | grep ath [ 12.491747] ath10k_pci 0000:04:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0 [ 12.613341] ath10k_pci 0000:04:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe [ 12.613367] ath10k_pci 0000:04:00.0: kconfig debug 1 debugfs 1 tracing 1 dfs 1 testmode 0 [ 12.615071] ath10k_pci 0000:04:00.0: firmware ver 10.4-3.9.0.2-00131 api 5 features no-p2p,mfp,peer-flow-ctrl,btcoex-param,allows-mesh-bcast,no-ps,peer-fixed-rate,iram-recovery crc32 23bd9e43 [ 13.846538] ath10k_pci 0000:04:00.0: board_file api 2 bmi_id 0:31 crc32 85498734 [ 16.428502] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 [ 16.518692] ath10k_pci 0000:04:00.0: could not init core (-12) [ 16.518950] ath10k_pci 0000:04:00.0: could not probe fw (-12) # uname -a Linux router 5.13.8+ #2 SMP Wed Aug 11 20:28:56 PDT 2021 x86_64 AMD GX-412TC SOC AuthenticAMD GNU/Linux # dmesg | grep ath [ 12.201239] ath10k_pci 0000:04:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0 [ 12.323354] ath10k_pci 0000:04:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe [ 12.323407] ath10k_pci 0000:04:00.0: kconfig debug 1 debugfs 1 tracing 1 dfs 1 testmode 0 [ 12.325162] ath10k_pci 0000:04:00.0: firmware ver 10.4-3.9.0.2-00131 api 5 features no-p2p,mfp,peer-flow-ctrl,btcoex-param,allows-mesh-bcast,no-ps,peer-fixed-rate,iram-reco very crc32 23bd9e43 [ 13.556748] ath10k_pci 0000:04:00.0: board_file api 2 bmi_id 0:31 crc32 85498734 [ 16.155848] ath10k_pci 0000:04:00.0: No hardware memory [ 16.155873] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 [ 16.267376] ath10k_pci 0000:04:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal otp max-sta 512 raw 0 hwcrypto 1 [ 16.382257] ath: EEPROM regdomain sanitized [ 16.382289] ath: EEPROM regdomain: 0x64 [ 16.382306] ath: EEPROM indicates we should expect a direct regpair map [ 16.382312] ath: Country alpha2 being used: 00 [ 16.382316] ath: Regpair used: 0x64 [ 16.393599] ath10k_pci 0000:04:00.0 wlp4s0: renamed from wlan0 [ 41.264025] ath10k_pci 0000:04:00.0: No hardware memory [ 41.264045] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 [ 41.480677] ath10k_pci 0000:04:00.0: Unknown eventid: 36933 On Sun, Aug 1, 2021 at 7:23 PM Axel Rasmussen <axel.rasmussen1@gmail.com> wrote: > > On Thu, Jul 22, 2021 at 12:42 PM ojab // <ojab@ojab.ru> wrote: > > > > See also: https://lists.infradead.org/pipermail/ath10k/2021-May/012626.html > > > > On Thu, 22 Jul 2021 at 22:36, ojab <ojab@ojab.ru> wrote: > > > > > > After reboot with kernel & firmware updates I found `failed to copy > > > target iram contents:` in dmesg and missing wlan interfaces for both > > > of my QCA9984 compex cards. Rolling back kernel/firmware didn't fixed > > > it, so while I have no idea what's actually happening, I don't see why > > > we should fail in this case, looks like some optional firmware ability > > > that could be skipped. > > > > > > Also with additional logging there is > > > ``` > > > [ 6.839858] ath10k_pci 0000:04:00.0: No hardware memory > > > [ 6.841205] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 > > > [ 6.873578] ath10k_pci 0000:07:00.0: No hardware memory > > > [ 6.875052] ath10k_pci 0000:07:00.0: failed to copy target iram contents: -12 > > > ``` > > > so exact branch could be seen. > > > > > > Signed-off-by: Slava Kardakov <ojab@ojab.ru> > > > --- > > > Of course I forgot to sing off, since I don't use it by default because I > > > hate my real name and kernel requires it > > Thanks for working on this! And sorry for the slow response. I've been > unexpectedly very busy lately, but I plan to test out this patch next > week. > > > > > > > drivers/net/wireless/ath/ath10k/core.c | 9 ++++++--- > > > 1 file changed, 6 insertions(+), 3 deletions(-) > > > > > > diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c > > > index 2f9be182fbfb..d9fd5294e142 100644 > > > --- a/drivers/net/wireless/ath/ath10k/core.c > > > +++ b/drivers/net/wireless/ath/ath10k/core.c > > > @@ -2691,8 +2691,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > > > u32 len, remaining_len; > > > > > > hw_mem = ath10k_coredump_get_mem_layout(ar); > > > - if (!hw_mem) > > > + if (!hw_mem) { > > > + ath10k_warn(ar, "No hardware memory"); > > > return -ENOMEM; > > > + } > > > > > > for (i = 0; i < hw_mem->region_table.size; i++) { > > > tmp = &hw_mem->region_table.regions[i]; > > > @@ -2702,8 +2704,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > > > } > > > } > > > > > > - if (!mem_region) > > > + if (!mem_region) { > > > + ath10k_warn(ar, "No memory region"); > > > return -ENOMEM; > > > + } > > > > > > for (i = 0; i < ar->wmi.num_mem_chunks; i++) { > > > if (ar->wmi.mem_chunks[i].req_id == > > > @@ -2917,7 +2921,6 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, > > > if (status) { > > > ath10k_warn(ar, "failed to copy target iram contents: %d", > > > status); > > > - goto err_hif_stop; > > > } > > > } > > > > > > -- > > > 2.32.0
Hello, I have the same problem with my QCA9984 cards and also tested the patch successfully. See > https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1939937 best regards Am 12.08.21 um 22:21 schrieb Axel Rasmussen: > Sorry again for the slow response time. > > I got around to testing this today on my hardware. I tested with a > vanilla 5.13.8 kernel, and then the same kernel with this patch > applied. Long story short, the patch does indeed seem to at least work > around the issue I was seeing in [1]. With this patch applied, I still > get the same "failed to copy target iram contents" error, but the > interface comes up and seems to be functional regardless. > > So, for what it's worth (granted I am no wireless expert!), you can take: > > Tested-by: Axel Rasmussen <axelrasmussen@google.com> > > (This issue has nothing to do with my full time job, but I'm meant to > use my @google.com address for any open source contributions, which I > believe applies to commit messages too.) > > [1]: https://lists.infradead.org/pipermail/ath10k/2021-May/012626.html > > > > Here are the two dmesg outputs, for comparison: > > # uname -a > Linux router 5.13.8 #1 SMP Wed Aug 11 20:18:51 PDT 2021 x86_64 AMD > GX-412TC SOC AuthenticAMD GNU/Linux > # dmesg | grep ath > [ 12.491747] ath10k_pci 0000:04:00.0: pci irq msi oper_irq_mode 2 > irq_mode 0 reset_mode 0 > [ 12.613341] ath10k_pci 0000:04:00.0: qca9984/qca9994 hw1.0 target > 0x01000000 chip_id 0x00000000 sub 168c:cafe > [ 12.613367] ath10k_pci 0000:04:00.0: kconfig debug 1 debugfs 1 > tracing 1 dfs 1 testmode 0 > [ 12.615071] ath10k_pci 0000:04:00.0: firmware ver > 10.4-3.9.0.2-00131 api 5 features > no-p2p,mfp,peer-flow-ctrl,btcoex-param,allows-mesh-bcast,no-ps,peer-fixed-rate,iram-recovery > crc32 23bd9e43 > [ 13.846538] ath10k_pci 0000:04:00.0: board_file api 2 bmi_id 0:31 > crc32 85498734 > [ 16.428502] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 > [ 16.518692] ath10k_pci 0000:04:00.0: could not init core (-12) > [ 16.518950] ath10k_pci 0000:04:00.0: could not probe fw (-12) > > > > # uname -a > Linux router 5.13.8+ #2 SMP Wed Aug 11 20:28:56 PDT 2021 x86_64 AMD > GX-412TC SOC AuthenticAMD GNU/Linux > # dmesg | grep ath > [ 12.201239] ath10k_pci 0000:04:00.0: pci irq msi oper_irq_mode 2 > irq_mode 0 reset_mode 0 > [ 12.323354] ath10k_pci 0000:04:00.0: qca9984/qca9994 hw1.0 target > 0x01000000 chip_id 0x00000000 sub 168c:cafe > [ 12.323407] ath10k_pci 0000:04:00.0: kconfig debug 1 debugfs 1 > tracing 1 dfs 1 testmode 0 > [ 12.325162] ath10k_pci 0000:04:00.0: firmware ver > 10.4-3.9.0.2-00131 api 5 features > no-p2p,mfp,peer-flow-ctrl,btcoex-param,allows-mesh-bcast,no-ps,peer-fixed-rate,iram-reco > very crc32 23bd9e43 > [ 13.556748] ath10k_pci 0000:04:00.0: board_file api 2 bmi_id 0:31 > crc32 85498734 > [ 16.155848] ath10k_pci 0000:04:00.0: No hardware memory > [ 16.155873] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 > [ 16.267376] ath10k_pci 0000:04:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 > cal otp max-sta 512 raw 0 hwcrypto 1 > [ 16.382257] ath: EEPROM regdomain sanitized > [ 16.382289] ath: EEPROM regdomain: 0x64 > [ 16.382306] ath: EEPROM indicates we should expect a direct regpair map > [ 16.382312] ath: Country alpha2 being used: 00 > [ 16.382316] ath: Regpair used: 0x64 > [ 16.393599] ath10k_pci 0000:04:00.0 wlp4s0: renamed from wlan0 > [ 41.264025] ath10k_pci 0000:04:00.0: No hardware memory > [ 41.264045] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 > [ 41.480677] ath10k_pci 0000:04:00.0: Unknown eventid: 36933 > > On Sun, Aug 1, 2021 at 7:23 PM Axel Rasmussen <axel.rasmussen1@gmail.com> wrote: >> On Thu, Jul 22, 2021 at 12:42 PM ojab // <ojab@ojab.ru> wrote: >>> See also: https://lists.infradead.org/pipermail/ath10k/2021-May/012626.html >>> >>> On Thu, 22 Jul 2021 at 22:36, ojab <ojab@ojab.ru> wrote: >>>> After reboot with kernel & firmware updates I found `failed to copy >>>> target iram contents:` in dmesg and missing wlan interfaces for both >>>> of my QCA9984 compex cards. Rolling back kernel/firmware didn't fixed >>>> it, so while I have no idea what's actually happening, I don't see why >>>> we should fail in this case, looks like some optional firmware ability >>>> that could be skipped. >>>> >>>> Also with additional logging there is >>>> ``` >>>> [ 6.839858] ath10k_pci 0000:04:00.0: No hardware memory >>>> [ 6.841205] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 >>>> [ 6.873578] ath10k_pci 0000:07:00.0: No hardware memory >>>> [ 6.875052] ath10k_pci 0000:07:00.0: failed to copy target iram contents: -12 >>>> ``` >>>> so exact branch could be seen. >>>> >>>> Signed-off-by: Slava Kardakov <ojab@ojab.ru> >>>> --- >>>> Of course I forgot to sing off, since I don't use it by default because I >>>> hate my real name and kernel requires it >> Thanks for working on this! And sorry for the slow response. I've been >> unexpectedly very busy lately, but I plan to test out this patch next >> week. >> >>>> drivers/net/wireless/ath/ath10k/core.c | 9 ++++++--- >>>> 1 file changed, 6 insertions(+), 3 deletions(-) >>>> >>>> diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c >>>> index 2f9be182fbfb..d9fd5294e142 100644 >>>> --- a/drivers/net/wireless/ath/ath10k/core.c >>>> +++ b/drivers/net/wireless/ath/ath10k/core.c >>>> @@ -2691,8 +2691,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) >>>> u32 len, remaining_len; >>>> >>>> hw_mem = ath10k_coredump_get_mem_layout(ar); >>>> - if (!hw_mem) >>>> + if (!hw_mem) { >>>> + ath10k_warn(ar, "No hardware memory"); >>>> return -ENOMEM; >>>> + } >>>> >>>> for (i = 0; i < hw_mem->region_table.size; i++) { >>>> tmp = &hw_mem->region_table.regions[i]; >>>> @@ -2702,8 +2704,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) >>>> } >>>> } >>>> >>>> - if (!mem_region) >>>> + if (!mem_region) { >>>> + ath10k_warn(ar, "No memory region"); >>>> return -ENOMEM; >>>> + } >>>> >>>> for (i = 0; i < ar->wmi.num_mem_chunks; i++) { >>>> if (ar->wmi.mem_chunks[i].req_id == >>>> @@ -2917,7 +2921,6 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, >>>> if (status) { >>>> ath10k_warn(ar, "failed to copy target iram contents: %d", >>>> status); >>>> - goto err_hif_stop; >>>> } >>>> } >>>> >>>> -- >>>> 2.32.0 > _______________________________________________ > ath10k mailing list > ath10k@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/ath10k > >
Can I haz it merged? //wbr ojab On Thu, 22 Jul 2021 at 22:36, ojab <ojab@ojab.ru> wrote: > > After reboot with kernel & firmware updates I found `failed to copy > target iram contents:` in dmesg and missing wlan interfaces for both > of my QCA9984 compex cards. Rolling back kernel/firmware didn't fixed > it, so while I have no idea what's actually happening, I don't see why > we should fail in this case, looks like some optional firmware ability > that could be skipped. > > Also with additional logging there is > ``` > [ 6.839858] ath10k_pci 0000:04:00.0: No hardware memory > [ 6.841205] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 > [ 6.873578] ath10k_pci 0000:07:00.0: No hardware memory > [ 6.875052] ath10k_pci 0000:07:00.0: failed to copy target iram contents: -12 > ``` > so exact branch could be seen. > > Signed-off-by: Slava Kardakov <ojab@ojab.ru> > --- > Of course I forgot to sing off, since I don't use it by default because I > hate my real name and kernel requires it > > drivers/net/wireless/ath/ath10k/core.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c > index 2f9be182fbfb..d9fd5294e142 100644 > --- a/drivers/net/wireless/ath/ath10k/core.c > +++ b/drivers/net/wireless/ath/ath10k/core.c > @@ -2691,8 +2691,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > u32 len, remaining_len; > > hw_mem = ath10k_coredump_get_mem_layout(ar); > - if (!hw_mem) > + if (!hw_mem) { > + ath10k_warn(ar, "No hardware memory"); > return -ENOMEM; > + } > > for (i = 0; i < hw_mem->region_table.size; i++) { > tmp = &hw_mem->region_table.regions[i]; > @@ -2702,8 +2704,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > } > } > > - if (!mem_region) > + if (!mem_region) { > + ath10k_warn(ar, "No memory region"); > return -ENOMEM; > + } > > for (i = 0; i < ar->wmi.num_mem_chunks; i++) { > if (ar->wmi.mem_chunks[i].req_id == > @@ -2917,7 +2921,6 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, > if (status) { > ath10k_warn(ar, "failed to copy target iram contents: %d", > status); > - goto err_hif_stop; > } > } > > -- > 2.32.0
Gentle ping. //wbr ojab On Wed, 25 Aug 2021 at 19:15, ojab // <ojab@ojab.ru> wrote: > > Can I haz it merged? > > //wbr ojab > > On Thu, 22 Jul 2021 at 22:36, ojab <ojab@ojab.ru> wrote: > > > > After reboot with kernel & firmware updates I found `failed to copy > > target iram contents:` in dmesg and missing wlan interfaces for both > > of my QCA9984 compex cards. Rolling back kernel/firmware didn't fixed > > it, so while I have no idea what's actually happening, I don't see why > > we should fail in this case, looks like some optional firmware ability > > that could be skipped. > > > > Also with additional logging there is > > ``` > > [ 6.839858] ath10k_pci 0000:04:00.0: No hardware memory > > [ 6.841205] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 > > [ 6.873578] ath10k_pci 0000:07:00.0: No hardware memory > > [ 6.875052] ath10k_pci 0000:07:00.0: failed to copy target iram contents: -12 > > ``` > > so exact branch could be seen. > > > > Signed-off-by: Slava Kardakov <ojab@ojab.ru> > > --- > > Of course I forgot to sing off, since I don't use it by default because I > > hate my real name and kernel requires it > > > > drivers/net/wireless/ath/ath10k/core.c | 9 ++++++--- > > 1 file changed, 6 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c > > index 2f9be182fbfb..d9fd5294e142 100644 > > --- a/drivers/net/wireless/ath/ath10k/core.c > > +++ b/drivers/net/wireless/ath/ath10k/core.c > > @@ -2691,8 +2691,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > > u32 len, remaining_len; > > > > hw_mem = ath10k_coredump_get_mem_layout(ar); > > - if (!hw_mem) > > + if (!hw_mem) { > > + ath10k_warn(ar, "No hardware memory"); > > return -ENOMEM; > > + } > > > > for (i = 0; i < hw_mem->region_table.size; i++) { > > tmp = &hw_mem->region_table.regions[i]; > > @@ -2702,8 +2704,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > > } > > } > > > > - if (!mem_region) > > + if (!mem_region) { > > + ath10k_warn(ar, "No memory region"); > > return -ENOMEM; > > + } > > > > for (i = 0; i < ar->wmi.num_mem_chunks; i++) { > > if (ar->wmi.mem_chunks[i].req_id == > > @@ -2917,7 +2921,6 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, > > if (status) { > > ath10k_warn(ar, "failed to copy target iram contents: %d", > > status); > > - goto err_hif_stop; > > } > > } > > > > -- > > 2.32.0
._. //wbr ojab On Thu, 9 Sept 2021 at 02:42, ojab // <ojab@ojab.ru> wrote: > > Gentle ping. > > //wbr ojab > > On Wed, 25 Aug 2021 at 19:15, ojab // <ojab@ojab.ru> wrote: > > > > Can I haz it merged? > > > > //wbr ojab > > > > On Thu, 22 Jul 2021 at 22:36, ojab <ojab@ojab.ru> wrote: > > > > > > After reboot with kernel & firmware updates I found `failed to copy > > > target iram contents:` in dmesg and missing wlan interfaces for both > > > of my QCA9984 compex cards. Rolling back kernel/firmware didn't fixed > > > it, so while I have no idea what's actually happening, I don't see why > > > we should fail in this case, looks like some optional firmware ability > > > that could be skipped. > > > > > > Also with additional logging there is > > > ``` > > > [ 6.839858] ath10k_pci 0000:04:00.0: No hardware memory > > > [ 6.841205] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 > > > [ 6.873578] ath10k_pci 0000:07:00.0: No hardware memory > > > [ 6.875052] ath10k_pci 0000:07:00.0: failed to copy target iram contents: -12 > > > ``` > > > so exact branch could be seen. > > > > > > Signed-off-by: Slava Kardakov <ojab@ojab.ru> > > > --- > > > Of course I forgot to sing off, since I don't use it by default because I > > > hate my real name and kernel requires it > > > > > > drivers/net/wireless/ath/ath10k/core.c | 9 ++++++--- > > > 1 file changed, 6 insertions(+), 3 deletions(-) > > > > > > diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c > > > index 2f9be182fbfb..d9fd5294e142 100644 > > > --- a/drivers/net/wireless/ath/ath10k/core.c > > > +++ b/drivers/net/wireless/ath/ath10k/core.c > > > @@ -2691,8 +2691,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > > > u32 len, remaining_len; > > > > > > hw_mem = ath10k_coredump_get_mem_layout(ar); > > > - if (!hw_mem) > > > + if (!hw_mem) { > > > + ath10k_warn(ar, "No hardware memory"); > > > return -ENOMEM; > > > + } > > > > > > for (i = 0; i < hw_mem->region_table.size; i++) { > > > tmp = &hw_mem->region_table.regions[i]; > > > @@ -2702,8 +2704,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > > > } > > > } > > > > > > - if (!mem_region) > > > + if (!mem_region) { > > > + ath10k_warn(ar, "No memory region"); > > > return -ENOMEM; > > > + } > > > > > > for (i = 0; i < ar->wmi.num_mem_chunks; i++) { > > > if (ar->wmi.mem_chunks[i].req_id == > > > @@ -2917,7 +2921,6 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, > > > if (status) { > > > ath10k_warn(ar, "failed to copy target iram contents: %d", > > > status); > > > - goto err_hif_stop; > > > } > > > } > > > > > > -- > > > 2.32.0
Have you seen the new patch? https://www.mail-archive.com/ath10k@lists.infradead.org/msg13784.html https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=master-pending&id=973de582639a1e45276e4e3e2f3c2d82a04ad0a6 could probably have been communicated better best regards Am 17.09.21 um 21:30 schrieb ojab //: > ._. > > //wbr ojab > > On Thu, 9 Sept 2021 at 02:42, ojab // <ojab@ojab.ru> wrote: >> Gentle ping. >> >> //wbr ojab >> >> On Wed, 25 Aug 2021 at 19:15, ojab // <ojab@ojab.ru> wrote: >>> Can I haz it merged? >>> >>> //wbr ojab >>> >>> On Thu, 22 Jul 2021 at 22:36, ojab <ojab@ojab.ru> wrote: >>>> After reboot with kernel & firmware updates I found `failed to copy >>>> target iram contents:` in dmesg and missing wlan interfaces for both >>>> of my QCA9984 compex cards. Rolling back kernel/firmware didn't fixed >>>> it, so while I have no idea what's actually happening, I don't see why >>>> we should fail in this case, looks like some optional firmware ability >>>> that could be skipped. >>>> >>>> Also with additional logging there is >>>> ``` >>>> [ 6.839858] ath10k_pci 0000:04:00.0: No hardware memory >>>> [ 6.841205] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 >>>> [ 6.873578] ath10k_pci 0000:07:00.0: No hardware memory >>>> [ 6.875052] ath10k_pci 0000:07:00.0: failed to copy target iram contents: -12 >>>> ``` >>>> so exact branch could be seen. >>>> >>>> Signed-off-by: Slava Kardakov <ojab@ojab.ru> >>>> --- >>>> Of course I forgot to sing off, since I don't use it by default because I >>>> hate my real name and kernel requires it >>>> >>>> drivers/net/wireless/ath/ath10k/core.c | 9 ++++++--- >>>> 1 file changed, 6 insertions(+), 3 deletions(-) >>>> >>>> diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c >>>> index 2f9be182fbfb..d9fd5294e142 100644 >>>> --- a/drivers/net/wireless/ath/ath10k/core.c >>>> +++ b/drivers/net/wireless/ath/ath10k/core.c >>>> @@ -2691,8 +2691,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) >>>> u32 len, remaining_len; >>>> >>>> hw_mem = ath10k_coredump_get_mem_layout(ar); >>>> - if (!hw_mem) >>>> + if (!hw_mem) { >>>> + ath10k_warn(ar, "No hardware memory"); >>>> return -ENOMEM; >>>> + } >>>> >>>> for (i = 0; i < hw_mem->region_table.size; i++) { >>>> tmp = &hw_mem->region_table.regions[i]; >>>> @@ -2702,8 +2704,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) >>>> } >>>> } >>>> >>>> - if (!mem_region) >>>> + if (!mem_region) { >>>> + ath10k_warn(ar, "No memory region"); >>>> return -ENOMEM; >>>> + } >>>> >>>> for (i = 0; i < ar->wmi.num_mem_chunks; i++) { >>>> if (ar->wmi.mem_chunks[i].req_id == >>>> @@ -2917,7 +2921,6 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, >>>> if (status) { >>>> ath10k_warn(ar, "failed to copy target iram contents: %d", >>>> status); >>>> - goto err_hif_stop; >>>> } >>>> } >>>> >>>> -- >>>> 2.32.0 > _______________________________________________ > ath10k mailing list > ath10k@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/ath10k > >
oh, awesome. Thanks! //wbr ojab On Sat, 18 Sept 2021 at 13:12, sparks71@gmx.de <sparks71@gmx.de> wrote: > > Have you seen the new patch? > > https://www.mail-archive.com/ath10k@lists.infradead.org/msg13784.html > > https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=master-pending&id=973de582639a1e45276e4e3e2f3c2d82a04ad0a6 > > > could probably have been communicated better > > > best regards > > > > Am 17.09.21 um 21:30 schrieb ojab //: > > ._. > > > > //wbr ojab > > > > On Thu, 9 Sept 2021 at 02:42, ojab // <ojab@ojab.ru> wrote: > >> Gentle ping. > >> > >> //wbr ojab > >> > >> On Wed, 25 Aug 2021 at 19:15, ojab // <ojab@ojab.ru> wrote: > >>> Can I haz it merged? > >>> > >>> //wbr ojab > >>> > >>> On Thu, 22 Jul 2021 at 22:36, ojab <ojab@ojab.ru> wrote: > >>>> After reboot with kernel & firmware updates I found `failed to copy > >>>> target iram contents:` in dmesg and missing wlan interfaces for both > >>>> of my QCA9984 compex cards. Rolling back kernel/firmware didn't fixed > >>>> it, so while I have no idea what's actually happening, I don't see why > >>>> we should fail in this case, looks like some optional firmware ability > >>>> that could be skipped. > >>>> > >>>> Also with additional logging there is > >>>> ``` > >>>> [ 6.839858] ath10k_pci 0000:04:00.0: No hardware memory > >>>> [ 6.841205] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 > >>>> [ 6.873578] ath10k_pci 0000:07:00.0: No hardware memory > >>>> [ 6.875052] ath10k_pci 0000:07:00.0: failed to copy target iram contents: -12 > >>>> ``` > >>>> so exact branch could be seen. > >>>> > >>>> Signed-off-by: Slava Kardakov <ojab@ojab.ru> > >>>> --- > >>>> Of course I forgot to sing off, since I don't use it by default because I > >>>> hate my real name and kernel requires it > >>>> > >>>> drivers/net/wireless/ath/ath10k/core.c | 9 ++++++--- > >>>> 1 file changed, 6 insertions(+), 3 deletions(-) > >>>> > >>>> diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c > >>>> index 2f9be182fbfb..d9fd5294e142 100644 > >>>> --- a/drivers/net/wireless/ath/ath10k/core.c > >>>> +++ b/drivers/net/wireless/ath/ath10k/core.c > >>>> @@ -2691,8 +2691,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > >>>> u32 len, remaining_len; > >>>> > >>>> hw_mem = ath10k_coredump_get_mem_layout(ar); > >>>> - if (!hw_mem) > >>>> + if (!hw_mem) { > >>>> + ath10k_warn(ar, "No hardware memory"); > >>>> return -ENOMEM; > >>>> + } > >>>> > >>>> for (i = 0; i < hw_mem->region_table.size; i++) { > >>>> tmp = &hw_mem->region_table.regions[i]; > >>>> @@ -2702,8 +2704,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) > >>>> } > >>>> } > >>>> > >>>> - if (!mem_region) > >>>> + if (!mem_region) { > >>>> + ath10k_warn(ar, "No memory region"); > >>>> return -ENOMEM; > >>>> + } > >>>> > >>>> for (i = 0; i < ar->wmi.num_mem_chunks; i++) { > >>>> if (ar->wmi.mem_chunks[i].req_id == > >>>> @@ -2917,7 +2921,6 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, > >>>> if (status) { > >>>> ath10k_warn(ar, "failed to copy target iram contents: %d", > >>>> status); > >>>> - goto err_hif_stop; > >>>> } > >>>> } > >>>> > >>>> -- > >>>> 2.32.0 > > _______________________________________________ > > ath10k mailing list > > ath10k@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/ath10k > > > > >
"sparks71@gmx.de" <sparks71@gmx.de> writes: > Have you seen the new patch? > > https://www.mail-archive.com/ath10k@lists.infradead.org/msg13784.html > > https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=master-pending&id=973de582639a1e45276e4e3e2f3c2d82a04ad0a6 > > > could probably have been communicated better Yeah, apparently there are two different fixes now. I'll review both of them and try to choose which one to take.
Am 21.09.21 um 09:29 schrieb Kalle Valo: > "sparks71@gmx.de" <sparks71@gmx.de> writes: > >> Have you seen the new patch? >> >> https://www.mail-archive.com/ath10k@lists.infradead.org/msg13784.html >> >> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=master-pending&id=973de582639a1e45276e4e3e2f3c2d82a04ad0a6 >> >> >> could probably have been communicated better > Yeah, apparently there are two different fixes now. I'll review both of > them and try to choose which one to take. > I have tested both fixes (x86_64 2x QCA9984) For me both of them work. [PATCH V2] ath10k: don't fail if IRAM write fails: [18245.610112] ath10k_pci 0000:03:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0 [18245.674800] ath10k_pci 0000:04:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0 [18245.731606] ath10k_pci 0000:03:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe [18245.731620] ath10k_pci 0000:03:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0 [18245.733172] ath10k_pci 0000:03:00.0: firmware ver 10.4-3.9.0.2-00152 api 5 features no-p2p,mfp,peer-flow-ctrl,btcoex-param,allows-mesh-bcast,no-ps,peer-fixed-rate,iram-recovery crc32 723f9771 [18245.790380] ath10k_pci 0000:04:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe [18245.790383] ath10k_pci 0000:04:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0 [18245.790703] ath10k_pci 0000:04:00.0: firmware ver 10.4-3.9.0.2-00152 api 5 features no-p2p,mfp,peer-flow-ctrl,btcoex-param,allows-mesh-bcast,no-ps,peer-fixed-rate,iram-recovery crc32 723f9771 [18246.963760] ath10k_pci 0000:03:00.0: board_file api 2 bmi_id 0:1 crc32 85498734 [18247.019699] ath10k_pci 0000:04:00.0: board_file api 2 bmi_id 0:2 crc32 85498734 [18249.514054] ath10k_pci 0000:03:00.0: No hardware memory [18249.514057] ath10k_pci 0000:03:00.0: failed to copy target iram contents: -12 [18249.570423] ath10k_pci 0000:04:00.0: No hardware memory [18249.570426] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 [18249.620637] ath10k_pci 0000:03:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal otp max-sta 512 raw 0 hwcrypto 1 [18249.678035] ath10k_pci 0000:04:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal otp max-sta 512 raw 0 hwcrypto 1 ath10k: Fix device boot error: [ 3.318932] ath10k_pci 0000:03:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0 [ 3.377071] ath10k_pci 0000:04:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0 [ 3.434051] ath10k_pci 0000:03:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe [ 3.434054] ath10k_pci 0000:03:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0 [ 3.434412] ath10k_pci 0000:03:00.0: firmware ver 10.4-3.9.0.2-00152 api 5 features no-p2p,mfp,peer-flow-ctrl,btcoex-param,allows-mesh-bcast,no-ps,peer-fixed-rate,iram-recovery crc32 723f9771 [ 3.487225] ath10k_pci 0000:04:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe [ 3.487229] ath10k_pci 0000:04:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0 [ 3.487568] ath10k_pci 0000:04:00.0: firmware ver 10.4-3.9.0.2-00152 api 5 features no-p2p,mfp,peer-flow-ctrl,btcoex-param,allows-mesh-bcast,no-ps,peer-fixed-rate,iram-recovery crc32 723f9771 [ 4.665772] ath10k_pci 0000:03:00.0: board_file api 2 bmi_id 0:1 crc32 85498734 [ 4.716549] ath10k_pci 0000:04:00.0: board_file api 2 bmi_id 0:2 crc32 85498734 [ 7.423192] ath10k_pci 0000:04:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal otp max-sta 512 raw 0 hwcrypto 1 [ 7.443109] ath10k_pci 0000:03:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal otp max-sta 512 raw 0 hwcrypto 1 the second fixes the error message completely and "IRAM recovery" seems to work best regards
ojab <ojab@ojab.ru> wrote: > After reboot with kernel & firmware updates I found `failed to copy > target iram contents:` in dmesg and missing wlan interfaces for both > of my QCA9984 compex cards. Rolling back kernel/firmware didn't fixed > it, so while I have no idea what's actually happening, I don't see why > we should fail in this case, looks like some optional firmware ability > that could be skipped. > > Also with additional logging there is > ``` > [ 6.839858] ath10k_pci 0000:04:00.0: No hardware memory > [ 6.841205] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 > [ 6.873578] ath10k_pci 0000:07:00.0: No hardware memory > [ 6.875052] ath10k_pci 0000:07:00.0: failed to copy target iram contents: -12 > ``` > so exact branch could be seen. > > Signed-off-by: Slava Kardakov <ojab@ojab.ru> > Tested-by: Axel Rasmussen <axelrasmussen@google.com> I'm planning to take this patch instead: https://patchwork.kernel.org/project/linux-wireless/patch/20211020075054.23061-1-kvalo@codeaurora.org/ Patch set to Superseded.
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c index 2f9be182fbfb..d9fd5294e142 100644 --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c @@ -2691,8 +2691,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) u32 len, remaining_len; hw_mem = ath10k_coredump_get_mem_layout(ar); - if (!hw_mem) + if (!hw_mem) { + ath10k_warn(ar, "No hardware memory"); return -ENOMEM; + } for (i = 0; i < hw_mem->region_table.size; i++) { tmp = &hw_mem->region_table.regions[i]; @@ -2702,8 +2704,10 @@ static int ath10k_core_copy_target_iram(struct ath10k *ar) } } - if (!mem_region) + if (!mem_region) { + ath10k_warn(ar, "No memory region"); return -ENOMEM; + } for (i = 0; i < ar->wmi.num_mem_chunks; i++) { if (ar->wmi.mem_chunks[i].req_id == @@ -2917,7 +2921,6 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, if (status) { ath10k_warn(ar, "failed to copy target iram contents: %d", status); - goto err_hif_stop; } }
After reboot with kernel & firmware updates I found `failed to copy target iram contents:` in dmesg and missing wlan interfaces for both of my QCA9984 compex cards. Rolling back kernel/firmware didn't fixed it, so while I have no idea what's actually happening, I don't see why we should fail in this case, looks like some optional firmware ability that could be skipped. Also with additional logging there is ``` [ 6.839858] ath10k_pci 0000:04:00.0: No hardware memory [ 6.841205] ath10k_pci 0000:04:00.0: failed to copy target iram contents: -12 [ 6.873578] ath10k_pci 0000:07:00.0: No hardware memory [ 6.875052] ath10k_pci 0000:07:00.0: failed to copy target iram contents: -12 ``` so exact branch could be seen. Signed-off-by: Slava Kardakov <ojab@ojab.ru> --- Of course I forgot to sing off, since I don't use it by default because I hate my real name and kernel requires it drivers/net/wireless/ath/ath10k/core.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) -- 2.32.0