QCA2066 is a PCI based DBS device. It is very similar to WCN6855
overall: they share the same PCI device ID, the same major and
minor version numbers, the same register address, and same HAL
descriptors etc. The most significant difference is that QCA2066
supports 3-antenna configuration while WCN6855 doesn't. To
differentiate them, subversion numbers are used. Currently four
numbers are used by QCA2066: 0x1019A0E1, 0x1019B0E1, 0x1019C0E1
and 0x1019D0E1.
In order to read subversion register, pci.ops needs to be ready
at that time, this change is done in the first patch.
The second patch enables support for QCA2066.
v2:
- Rebased on ToT.
Depends on:
Carl Huang: public review
wifi: ath11k: supports 2 station interfaces
Baochen Qiang (2):
wifi: ath11k: move pci.ops registration ahead
wifi: ath11k: add support for QCA2066
drivers/net/wireless/ath/ath11k/core.c | 86 ++++++++++++++++++++++++++
drivers/net/wireless/ath/ath11k/core.h | 1 +
drivers/net/wireless/ath/ath11k/mhi.c | 1 +
drivers/net/wireless/ath/ath11k/pci.c | 43 +++++++++----
drivers/net/wireless/ath/ath11k/pcic.c | 11 ++++
5 files changed, 131 insertions(+), 11 deletions(-)
base-commit: 2cd4e3f91f264926a6b11df948417b74d52ca9b9
prerequisite-patch-id: 640366721125b1adea0eeabd5cdfca5e91476e7c
--
2.25.1
In ath11k_pci_probe() there is a switch statement that, based
upon the PCI device ID, assigns pci_ops. After the switch,
ath11k_pcic_register_pci_ops() is called to register the pci_ops.
Unfortunately, this registration is too late if any of the cases
in the switch need to perform operations that require the pci_ops
to already be registered. In particular, an upcoming patch for
QCA2066 needs to call ath11k_pcic_read32().
To address this issue, call ath11k_pcic_register_pci_ops() from
each case instead of doing so after the switch. That way the ops
will be registered if any subsequent operations within the case
processing require the ops to be present.
Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3
Signed-off-by: Baochen Qiang <[email protected]>
---
v2:
- Rebased on ToT.
drivers/net/wireless/ath/ath11k/pci.c | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/drivers/net/wireless/ath/ath11k/pci.c b/drivers/net/wireless/ath/ath11k/pci.c
index 09e65c5e55c4..1159c00f9411 100644
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -731,7 +731,6 @@ static int ath11k_pci_probe(struct pci_dev *pdev,
struct ath11k_base *ab;
struct ath11k_pci *ab_pci;
u32 soc_hw_version_major, soc_hw_version_minor, addr;
- const struct ath11k_pci_ops *pci_ops;
int ret;
ab = ath11k_core_alloc(&pdev->dev, sizeof(*ab_pci), ATH11K_BUS_PCI);
@@ -777,6 +776,12 @@ static int ath11k_pci_probe(struct pci_dev *pdev,
switch (pci_dev->device) {
case QCA6390_DEVICE_ID:
+ ret = ath11k_pcic_register_pci_ops(ab, &ath11k_pci_ops_qca6390);
+ if (ret) {
+ ath11k_err(ab, "failed to register PCI ops: %d\n", ret);
+ goto err_pci_free_region;
+ }
+
ath11k_pci_read_hw_version(ab, &soc_hw_version_major,
&soc_hw_version_minor);
switch (soc_hw_version_major) {
@@ -790,13 +795,21 @@ static int ath11k_pci_probe(struct pci_dev *pdev,
goto err_pci_free_region;
}
- pci_ops = &ath11k_pci_ops_qca6390;
break;
case QCN9074_DEVICE_ID:
- pci_ops = &ath11k_pci_ops_qcn9074;
+ ret = ath11k_pcic_register_pci_ops(ab, &ath11k_pci_ops_qcn9074);
+ if (ret) {
+ ath11k_err(ab, "failed to register PCI ops: %d\n", ret);
+ goto err_pci_free_region;
+ }
ab->hw_rev = ATH11K_HW_QCN9074_HW10;
break;
case WCN6855_DEVICE_ID:
+ ret = ath11k_pcic_register_pci_ops(ab, &ath11k_pci_ops_qca6390);
+ if (ret) {
+ ath11k_err(ab, "failed to register PCI ops: %d\n", ret);
+ goto err_pci_free_region;
+ }
ab->id.bdf_search = ATH11K_BDF_SEARCH_BUS_AND_BOARD;
ath11k_pci_read_hw_version(ab, &soc_hw_version_major,
&soc_hw_version_minor);
@@ -823,7 +836,6 @@ static int ath11k_pci_probe(struct pci_dev *pdev,
goto err_pci_free_region;
}
- pci_ops = &ath11k_pci_ops_qca6390;
break;
default:
dev_err(&pdev->dev, "Unknown PCI device found: 0x%x\n",
@@ -832,12 +844,6 @@ static int ath11k_pci_probe(struct pci_dev *pdev,
goto err_pci_free_region;
}
- ret = ath11k_pcic_register_pci_ops(ab, pci_ops);
- if (ret) {
- ath11k_err(ab, "failed to register PCI ops: %d\n", ret);
- goto err_pci_free_region;
- }
-
ret = ath11k_pcic_init_msi_config(ab);
if (ret) {
ath11k_err(ab, "failed to init msi config: %d\n", ret);
--
2.25.1
QCA2066 is a PCI based DBS device. It is very similar to WCN6855
overall: they share the same PCI device ID, the same major and
minor version numbers, the same register address, and same HAL
descriptors etc. The most significant difference is that QCA2066
supports 3-antenna configuration while WCN6855 does not. To differentiate
them, subversion numbers are used. Currently four numbers are used
by QCA2066: 0x1019A0E1, 0x1019B0E1, 0x1019C0E1 and 0x1019D0E1.
Tested-on: QCA2066 hw2.1 PCI WLAN.HSP.1.1-03737-QCAHSPSWPL_V2_SILICONZ_CE-1
Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3
Signed-off-by: Baochen Qiang <[email protected]>
---
v2:
- Rebased on ToT.
drivers/net/wireless/ath/ath11k/core.c | 86 ++++++++++++++++++++++++++
drivers/net/wireless/ath/ath11k/core.h | 1 +
drivers/net/wireless/ath/ath11k/mhi.c | 1 +
drivers/net/wireless/ath/ath11k/pci.c | 17 ++++-
drivers/net/wireless/ath/ath11k/pcic.c | 11 ++++
5 files changed, 115 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
index 3c1ba8fd28f4..922e67f8e04f 100644
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -711,6 +711,92 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
.support_fw_mac_sequence = false,
.support_dual_stations = false,
},
+ {
+ .name = "qca2066 hw2.1",
+ .hw_rev = ATH11K_HW_QCA2066_HW21,
+ .fw = {
+ .dir = "QCA2066/hw2.1",
+ .board_size = 256 * 1024,
+ .cal_offset = 128 * 1024,
+ },
+ .max_radios = 3,
+ .bdf_addr = 0x4B0C0000,
+ .hw_ops = &wcn6855_ops,
+ .ring_mask = &ath11k_hw_ring_mask_qca6390,
+ .internal_sleep_clock = true,
+ .regs = &wcn6855_regs,
+ .qmi_service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_QCA6390,
+ .host_ce_config = ath11k_host_ce_config_qca6390,
+ .ce_count = 9,
+ .target_ce_config = ath11k_target_ce_config_wlan_qca6390,
+ .target_ce_count = 9,
+ .svc_to_ce_map = ath11k_target_service_to_ce_map_wlan_qca6390,
+ .svc_to_ce_map_len = 14,
+ .ce_ie_addr = &ath11k_ce_ie_addr_ipq8074,
+ .single_pdev_only = true,
+ .rxdma1_enable = false,
+ .num_rxmda_per_pdev = 2,
+ .rx_mac_buf_ring = true,
+ .vdev_start_delay = true,
+ .htt_peer_map_v2 = false,
+
+ .spectral = {
+ .fft_sz = 0,
+ .fft_pad_sz = 0,
+ .summary_pad_sz = 0,
+ .fft_hdr_len = 0,
+ .max_fft_bins = 0,
+ .fragment_160mhz = false,
+ },
+
+ .interface_modes = BIT(NL80211_IFTYPE_STATION) |
+ BIT(NL80211_IFTYPE_AP),
+ .supports_monitor = false,
+ .full_monitor_mode = false,
+ .supports_shadow_regs = true,
+ .idle_ps = true,
+ .supports_sta_ps = true,
+ .coldboot_cal_mm = false,
+ .coldboot_cal_ftm = false,
+ .cbcal_restart_fw = false,
+ .fw_mem_mode = 0,
+ .num_vdevs = 2 + 1,
+ .num_peers = 512,
+ .supports_suspend = true,
+ .hal_desc_sz = sizeof(struct hal_rx_desc_wcn6855),
+ .supports_regdb = true,
+ .fix_l1ss = false,
+ .credit_flow = true,
+ .max_tx_ring = DP_TCL_NUM_RING_MAX_QCA6390,
+ .hal_params = &ath11k_hw_hal_params_qca6390,
+ .supports_dynamic_smps_6ghz = false,
+ .alloc_cacheable_memory = false,
+ .supports_rssi_stats = true,
+ .fw_wmi_diag_event = true,
+ .current_cc_support = true,
+ .dbr_debug_support = false,
+ .global_reset = true,
+ .bios_sar_capa = &ath11k_hw_sar_capa_wcn6855,
+ .m3_fw_support = true,
+ .fixed_bdf_addr = false,
+ .fixed_mem_region = false,
+ .static_window_map = false,
+ .hybrid_bus_type = false,
+ .fixed_fw_mem = false,
+ .support_off_channel_tx = true,
+ .supports_multi_bssid = true,
+
+ .sram_dump = {
+ .start = 0x01400000,
+ .end = 0x0177ffff,
+ },
+
+ .tcl_ring_retry = true,
+ .tx_ring_size = DP_TCL_DATA_RING_SIZE,
+ .smp2p_wow_exit = false,
+ .support_fw_mac_sequence = true,
+ .support_dual_stations = true,
+ },
};
static inline struct ath11k_pdev *ath11k_core_get_single_pdev(struct ath11k_base *ab)
diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index 7e3b6779f4e9..38c66cc73092 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -147,6 +147,7 @@ enum ath11k_hw_rev {
ATH11K_HW_WCN6855_HW21,
ATH11K_HW_WCN6750_HW10,
ATH11K_HW_IPQ5018_HW10,
+ ATH11K_HW_QCA2066_HW21,
};
enum ath11k_firmware_mode {
diff --git a/drivers/net/wireless/ath/ath11k/mhi.c b/drivers/net/wireless/ath/ath11k/mhi.c
index 6835c14b82cc..1f0eb5cba8d4 100644
--- a/drivers/net/wireless/ath/ath11k/mhi.c
+++ b/drivers/net/wireless/ath/ath11k/mhi.c
@@ -443,6 +443,7 @@ int ath11k_mhi_register(struct ath11k_pci *ab_pci)
case ATH11K_HW_QCA6390_HW20:
case ATH11K_HW_WCN6855_HW20:
case ATH11K_HW_WCN6855_HW21:
+ case ATH11K_HW_QCA2066_HW21:
ath11k_mhi_config = &ath11k_mhi_config_qca6390;
break;
default:
diff --git a/drivers/net/wireless/ath/ath11k/pci.c b/drivers/net/wireless/ath/ath11k/pci.c
index 1159c00f9411..13b53f2979df 100644
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -28,6 +28,8 @@
#define QCN9074_DEVICE_ID 0x1104
#define WCN6855_DEVICE_ID 0x1103
+#define TCSR_SOC_HW_SUB_VER 0x1910010
+
static const struct pci_device_id ath11k_pci_id_table[] = {
{ PCI_VDEVICE(QCOM, QCA6390_DEVICE_ID) },
{ PCI_VDEVICE(QCOM, WCN6855_DEVICE_ID) },
@@ -732,6 +734,7 @@ static int ath11k_pci_probe(struct pci_dev *pdev,
struct ath11k_pci *ab_pci;
u32 soc_hw_version_major, soc_hw_version_minor, addr;
int ret;
+ u32 sub_version;
ab = ath11k_core_alloc(&pdev->dev, sizeof(*ab_pci), ATH11K_BUS_PCI);
@@ -822,7 +825,19 @@ static int ath11k_pci_probe(struct pci_dev *pdev,
break;
case 0x10:
case 0x11:
- ab->hw_rev = ATH11K_HW_WCN6855_HW21;
+ sub_version = ath11k_pcic_read32(ab, TCSR_SOC_HW_SUB_VER);
+ ath11k_dbg(ab, ATH11K_DBG_PCI, "sub_version 0x%x\n",
+ sub_version);
+ switch (sub_version) {
+ case 0x1019A0E1:
+ case 0x1019B0E1:
+ case 0x1019C0E1:
+ case 0x1019D0E1:
+ ab->hw_rev = ATH11K_HW_QCA2066_HW21;
+ break;
+ default:
+ ab->hw_rev = ATH11K_HW_WCN6855_HW21;
+ }
break;
default:
goto unsupported_wcn6855_soc;
diff --git a/drivers/net/wireless/ath/ath11k/pcic.c b/drivers/net/wireless/ath/ath11k/pcic.c
index 15e2ceb22a44..add4db4c50bc 100644
--- a/drivers/net/wireless/ath/ath11k/pcic.c
+++ b/drivers/net/wireless/ath/ath11k/pcic.c
@@ -115,6 +115,17 @@ static const struct ath11k_msi_config ath11k_msi_config[] = {
},
.hw_rev = ATH11K_HW_WCN6750_HW10,
},
+ {
+ .total_vectors = 32,
+ .total_users = 4,
+ .users = (struct ath11k_msi_user[]) {
+ { .name = "MHI", .num_vectors = 3, .base_vector = 0 },
+ { .name = "CE", .num_vectors = 10, .base_vector = 3 },
+ { .name = "WAKE", .num_vectors = 1, .base_vector = 13 },
+ { .name = "DP", .num_vectors = 18, .base_vector = 14 },
+ },
+ .hw_rev = ATH11K_HW_QCA2066_HW21,
+ },
};
int ath11k_pcic_init_msi_config(struct ath11k_base *ab)
--
2.25.1
Baochen Qiang <[email protected]> writes:
> QCA2066 is a PCI based DBS device. It is very similar to WCN6855
> overall: they share the same PCI device ID, the same major and
> minor version numbers, the same register address, and same HAL
> descriptors etc. The most significant difference is that QCA2066
> supports 3-antenna configuration while WCN6855 doesn't. To
> differentiate them, subversion numbers are used. Currently four
> numbers are used by QCA2066: 0x1019A0E1, 0x1019B0E1, 0x1019C0E1
> and 0x1019D0E1.
>
> In order to read subversion register, pci.ops needs to be ready
> at that time, this change is done in the first patch.
>
> The second patch enables support for QCA2066.
>
> v2:
> - Rebased on ToT.
And the firmware is now available here:
https://github.com/kvalo/ath11k-firmware/tree/master/QCA2066/hw2.1
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
On 1/8/2024 6:13 PM, Baochen Qiang wrote:
> QCA2066 is a PCI based DBS device. It is very similar to WCN6855
> overall: they share the same PCI device ID, the same major and
> minor version numbers, the same register address, and same HAL
> descriptors etc. The most significant difference is that QCA2066
> supports 3-antenna configuration while WCN6855 does not. To differentiate
> them, subversion numbers are used. Currently four numbers are used
> by QCA2066: 0x1019A0E1, 0x1019B0E1, 0x1019C0E1 and 0x1019D0E1.
>
> Tested-on: QCA2066 hw2.1 PCI WLAN.HSP.1.1-03737-QCAHSPSWPL_V2_SILICONZ_CE-1
> Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3
>
> Signed-off-by: Baochen Qiang <[email protected]>
> ---
> v2:
> - Rebased on ToT.
hmmm, fails to apply using b4 shazam
Checking attestation on all messages, may take a moment...
---
✓ [PATCH v2 1/2] wifi: ath11k: move pci.ops registration ahead
✓ [PATCH v2 2/2] wifi: ath11k: add support for QCA2066
---
✓ Signed: DKIM/quicinc.com
---
Total patches: 2
---
Base: using specified base-commit 2cd4e3f91f264926a6b11df948417b74d52ca9b9
Applying: wifi: ath11k: move pci.ops registration ahead
Applying: wifi: ath11k: add support for QCA2066
Patch failed at 0002 wifi: ath11k: add support for QCA2066
error: patch failed: drivers/net/wireless/ath/ath11k/core.c:711
error: drivers/net/wireless/ath/ath11k/core.c: patch does not apply
And sure enough the code at drivers/net/wireless/ath/ath11k/core.c:711
doesn't match the code in the 2nd patch so something is amiss here.
note your patch has reference to .support_dual_stations that is not
present in ath11k -- perhaps there are other prerequisites?
<https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/>
/jeff
On 1/10/2024 1:41 AM, Jeff Johnson wrote:
> On 1/8/2024 6:13 PM, Baochen Qiang wrote:
>> QCA2066 is a PCI based DBS device. It is very similar to WCN6855
>> overall: they share the same PCI device ID, the same major and
>> minor version numbers, the same register address, and same HAL
>> descriptors etc. The most significant difference is that QCA2066
>> supports 3-antenna configuration while WCN6855 does not. To differentiate
>> them, subversion numbers are used. Currently four numbers are used
>> by QCA2066: 0x1019A0E1, 0x1019B0E1, 0x1019C0E1 and 0x1019D0E1.
>>
>> Tested-on: QCA2066 hw2.1 PCI WLAN.HSP.1.1-03737-QCAHSPSWPL_V2_SILICONZ_CE-1
>> Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3
>>
>> Signed-off-by: Baochen Qiang <[email protected]>
>> ---
>> v2:
>> - Rebased on ToT.
>
> hmmm, fails to apply using b4 shazam
>
> Checking attestation on all messages, may take a moment...
> ---
> ✓ [PATCH v2 1/2] wifi: ath11k: move pci.ops registration ahead
> ✓ [PATCH v2 2/2] wifi: ath11k: add support for QCA2066
> ---
> ✓ Signed: DKIM/quicinc.com
> ---
> Total patches: 2
> ---
> Base: using specified base-commit 2cd4e3f91f264926a6b11df948417b74d52ca9b9
> Applying: wifi: ath11k: move pci.ops registration ahead
> Applying: wifi: ath11k: add support for QCA2066
> Patch failed at 0002 wifi: ath11k: add support for QCA2066
> error: patch failed: drivers/net/wireless/ath/ath11k/core.c:711
> error: drivers/net/wireless/ath/ath11k/core.c: patch does not apply
>
> And sure enough the code at drivers/net/wireless/ath/ath11k/core.c:711
> doesn't match the code in the 2nd patch so something is amiss here.
>
> note your patch has reference to .support_dual_stations that is not
> present in ath11k -- perhaps there are other prerequisites?
> <https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/>
Yes, as said in the cover letter, this patch set depends on the above patch.
>
> /jeff
On 1/9/2024 6:16 PM, Baochen Qiang wrote:
> On 1/10/2024 1:41 AM, Jeff Johnson wrote:
>> On 1/8/2024 6:13 PM, Baochen Qiang wrote:
>>> QCA2066 is a PCI based DBS device. It is very similar to WCN6855
>>> overall: they share the same PCI device ID, the same major and
>>> minor version numbers, the same register address, and same HAL
>>> descriptors etc. The most significant difference is that QCA2066
>>> supports 3-antenna configuration while WCN6855 does not. To differentiate
>>> them, subversion numbers are used. Currently four numbers are used
>>> by QCA2066: 0x1019A0E1, 0x1019B0E1, 0x1019C0E1 and 0x1019D0E1.
>>>
>>> Tested-on: QCA2066 hw2.1 PCI WLAN.HSP.1.1-03737-QCAHSPSWPL_V2_SILICONZ_CE-1
>>> Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3
>>>
>>> Signed-off-by: Baochen Qiang <[email protected]>
>>> ---
>>> v2:
>>> - Rebased on ToT.
>>
>> hmmm, fails to apply using b4 shazam
>>
>> Checking attestation on all messages, may take a moment...
>> ---
>> ✓ [PATCH v2 1/2] wifi: ath11k: move pci.ops registration ahead
>> ✓ [PATCH v2 2/2] wifi: ath11k: add support for QCA2066
>> ---
>> ✓ Signed: DKIM/quicinc.com
>> ---
>> Total patches: 2
>> ---
>> Base: using specified base-commit 2cd4e3f91f264926a6b11df948417b74d52ca9b9
>> Applying: wifi: ath11k: move pci.ops registration ahead
>> Applying: wifi: ath11k: add support for QCA2066
>> Patch failed at 0002 wifi: ath11k: add support for QCA2066
>> error: patch failed: drivers/net/wireless/ath/ath11k/core.c:711
>> error: drivers/net/wireless/ath/ath11k/core.c: patch does not apply
>>
>> And sure enough the code at drivers/net/wireless/ath/ath11k/core.c:711
>> doesn't match the code in the 2nd patch so something is amiss here.
>>
>> note your patch has reference to .support_dual_stations that is not
>> present in ath11k -- perhaps there are other prerequisites?
>> <https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/>
> Yes, as said in the cover letter, this patch set depends on the above patch.
Unfortunately automated tasks don't parse cover letters. But it looks
like b4 doesn't handle or warn about:
prerequisite-patch-id: 640366721125b1adea0eeabd5cdfca5e91476e7c
And not quite sure how it would handle that.
Kalle, that prerequisite series is set to Deferred and predates my
transition to the ath11k maintainer role. What action is needed from the
developers?
<https://patchwork.kernel.org/project/linux-wireless/list/?series=765506&state=*>
/jeff
Jeff Johnson <[email protected]> writes:
> On 1/9/2024 6:16 PM, Baochen Qiang wrote:
>
>> On 1/10/2024 1:41 AM, Jeff Johnson wrote:
>>> On 1/8/2024 6:13 PM, Baochen Qiang wrote:
>>>> QCA2066 is a PCI based DBS device. It is very similar to WCN6855
>>>> overall: they share the same PCI device ID, the same major and
>>>> minor version numbers, the same register address, and same HAL
>>>> descriptors etc. The most significant difference is that QCA2066
>>>> supports 3-antenna configuration while WCN6855 does not. To differentiate
>>>> them, subversion numbers are used. Currently four numbers are used
>>>> by QCA2066: 0x1019A0E1, 0x1019B0E1, 0x1019C0E1 and 0x1019D0E1.
>>>>
>>>> Tested-on: QCA2066 hw2.1 PCI WLAN.HSP.1.1-03737-QCAHSPSWPL_V2_SILICONZ_CE-1
>>>> Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3
>>>>
>>>> Signed-off-by: Baochen Qiang <[email protected]>
>>>> ---
>>>> v2:
>>>> - Rebased on ToT.
>>>
>>> hmmm, fails to apply using b4 shazam
>>>
>>> Checking attestation on all messages, may take a moment...
>>> ---
>>> ✓ [PATCH v2 1/2] wifi: ath11k: move pci.ops registration ahead
>>> ✓ [PATCH v2 2/2] wifi: ath11k: add support for QCA2066
>>> ---
>>> ✓ Signed: DKIM/quicinc.com
>>> ---
>>> Total patches: 2
>>> ---
>>> Base: using specified base-commit 2cd4e3f91f264926a6b11df948417b74d52ca9b9
>>> Applying: wifi: ath11k: move pci.ops registration ahead
>>> Applying: wifi: ath11k: add support for QCA2066
>>> Patch failed at 0002 wifi: ath11k: add support for QCA2066
>>> error: patch failed: drivers/net/wireless/ath/ath11k/core.c:711
>>> error: drivers/net/wireless/ath/ath11k/core.c: patch does not apply
>>>
>>> And sure enough the code at drivers/net/wireless/ath/ath11k/core.c:711
>>> doesn't match the code in the 2nd patch so something is amiss here.
>>>
>>> note your patch has reference to .support_dual_stations that is not
>>> present in ath11k -- perhaps there are other prerequisites?
>>> <https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/>
>> Yes, as said in the cover letter, this patch set depends on the above patch.
>
> Unfortunately automated tasks don't parse cover letters. But it looks
> like b4 doesn't handle or warn about:
> prerequisite-patch-id: 640366721125b1adea0eeabd5cdfca5e91476e7c
>
> And not quite sure how it would handle that.
>
> Kalle, that prerequisite series is set to Deferred and predates my
> transition to the ath11k maintainer role. What action is needed from the
> developers?
> <https://patchwork.kernel.org/project/linux-wireless/list/?series=765506&state=*>
My plan was to run some tests on that patch before applying it, that's
why it's deferred for now. I'll try to do that soon.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
On Wed, Jan 10, 2024 at 08:20:46AM -0800, Jeff Johnson wrote:
> Unfortunately automated tasks don't parse cover letters. But it looks
> like b4 doesn't handle or warn about:
> prerequisite-patch-id: 640366721125b1adea0eeabd5cdfca5e91476e7c
>
> And not quite sure how it would handle that.
B4 should be able to handle dependencies like that in the future. For example,
we can already locate this patch using:
https://lore.kernel.org/all/?q=patchid%3A640366721125b1adea0eeabd5cdfca5e91476e7c
Support for dependencies is slated to land in the next few months.
-K
Konstantin Ryabitsev <[email protected]> writes:
> On Wed, Jan 10, 2024 at 08:20:46AM -0800, Jeff Johnson wrote:
>> Unfortunately automated tasks don't parse cover letters. But it looks
>> like b4 doesn't handle or warn about:
>> prerequisite-patch-id: 640366721125b1adea0eeabd5cdfca5e91476e7c
>>
>> And not quite sure how it would handle that.
>
> B4 should be able to handle dependencies like that in the future. For example,
> we can already locate this patch using:
>
> https://lore.kernel.org/all/?q=patchid%3A640366721125b1adea0eeabd5cdfca5e91476e7c
Oh, that is a very useful feature. Thank you.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Baochen Qiang <[email protected]> wrote:
> In ath11k_pci_probe() there is a switch statement that, based
> upon the PCI device ID, assigns pci_ops. After the switch,
> ath11k_pcic_register_pci_ops() is called to register the pci_ops.
>
> Unfortunately, this registration is too late if any of the cases
> in the switch need to perform operations that require the pci_ops
> to already be registered. In particular, an upcoming patch for
> QCA2066 needs to call ath11k_pcic_read32().
>
> To address this issue, call ath11k_pcic_register_pci_ops() from
> each case instead of doing so after the switch. That way the ops
> will be registered if any subsequent operations within the case
> processing require the ops to be present.
>
> Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3
>
> Signed-off-by: Baochen Qiang <[email protected]>
> Signed-off-by: Kalle Valo <[email protected]>
2 patches applied to ath-next branch of ath.git, thanks.
515bcdf587f9 wifi: ath11k: move pci.ops registration ahead
5dc9d1a55e95 wifi: ath11k: add support for QCA2066
--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches