Commit c1cacb01 authored by Kalle Valo's avatar Kalle Valo
Browse files
ath.git patches for v6.11

We have moved to a new group-managed repo, and this is the first pull
request from that repo, and from me. Fingers crossed...

We have some new features in ath12k along with some cleanups in ath11k
and ath12k. Also notable are some device-tree changes to allow certain
ath11k and ath12k devices to work with a new power sequencing
subsystem.

Major changes:

ath12k

* DebugFS support for datapath statistics
* WCN7850: support for WoW (Wake on WLAN)
* WCN7850: device-tree bindings

ath11k

* QCA6390: device-tree bindings
parents 8c626172 5344fc76
Loading
Loading
Loading
Loading
+46 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ description: |
properties:
  compatible:
    enum:
      - pci17cb,1101  # QCA6390
      - pci17cb,1103  # WCN6855

  reg:
@@ -28,10 +29,55 @@ properties:
      string to uniquely identify variant of the calibration data for designs
      with colliding bus and device ids

  vddrfacmn-supply:
    description: VDD_RFA_CMN supply regulator handle

  vddaon-supply:
    description: VDD_AON supply regulator handle

  vddwlcx-supply:
    description: VDD_WL_CX supply regulator handle

  vddwlmx-supply:
    description: VDD_WL_MX supply regulator handle

  vddrfa0p8-supply:
    description: VDD_RFA_0P8 supply regulator handle

  vddrfa1p2-supply:
    description: VDD_RFA_1P2 supply regulator handle

  vddrfa1p7-supply:
    description: VDD_RFA_1P7 supply regulator handle

  vddpcie0p9-supply:
    description: VDD_PCIE_0P9 supply regulator handle

  vddpcie1p8-supply:
    description: VDD_PCIE_1P8 supply regulator handle

required:
  - compatible
  - reg

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: pci17cb,1101
    then:
      required:
        - vddrfacmn-supply
        - vddaon-supply
        - vddwlcx-supply
        - vddwlmx-supply
        - vddrfa0p8-supply
        - vddrfa1p2-supply
        - vddrfa1p7-supply
        - vddpcie0p9-supply
        - vddpcie1p8-supply

additionalProperties: false

examples:
+99 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2024 Linaro Limited
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/wireless/qcom,ath12k.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Technologies ath12k wireless devices (PCIe)

maintainers:
  - Jeff Johnson <quic_jjohnson@quicinc.com>
  - Kalle Valo <kvalo@kernel.org>

description:
  Qualcomm Technologies IEEE 802.11be PCIe devices.

properties:
  compatible:
    enum:
      - pci17cb,1107  # WCN7850

  reg:
    maxItems: 1

  vddaon-supply:
    description: VDD_AON supply regulator handle

  vddwlcx-supply:
    description: VDD_WLCX supply regulator handle

  vddwlmx-supply:
    description: VDD_WLMX supply regulator handle

  vddrfacmn-supply:
    description: VDD_RFA_CMN supply regulator handle

  vddrfa0p8-supply:
    description: VDD_RFA_0P8 supply regulator handle

  vddrfa1p2-supply:
    description: VDD_RFA_1P2 supply regulator handle

  vddrfa1p8-supply:
    description: VDD_RFA_1P8 supply regulator handle

  vddpcie0p9-supply:
    description: VDD_PCIE_0P9 supply regulator handle

  vddpcie1p8-supply:
    description: VDD_PCIE_1P8 supply regulator handle

required:
  - compatible
  - reg
  - vddaon-supply
  - vddwlcx-supply
  - vddwlmx-supply
  - vddrfacmn-supply
  - vddrfa0p8-supply
  - vddrfa1p2-supply
  - vddrfa1p8-supply
  - vddpcie0p9-supply
  - vddpcie1p8-supply

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/qcom,rpmh.h>
    #include <dt-bindings/gpio/gpio.h>
    pcie {
        #address-cells = <3>;
        #size-cells = <2>;

        pcie@0 {
            device_type = "pci";
            reg = <0x0 0x0 0x0 0x0 0x0>;
            #address-cells = <3>;
            #size-cells = <2>;
            ranges;

            bus-range = <0x01 0xff>;

            wifi@0 {
                compatible = "pci17cb,1107";
                reg = <0x10000 0x0 0x0 0x0 0x0>;

                vddaon-supply = <&vreg_pmu_aon_0p59>;
                vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
                vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
                vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
                vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
                vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
                vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
                vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
                vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
            };
        };
    };
+1 −2
Original line number Diff line number Diff line
@@ -1877,8 +1877,7 @@ static void ath11k_dp_rx_h_csum_offload(struct ath11k *ar, struct sk_buff *msdu)
			  CHECKSUM_NONE : CHECKSUM_UNNECESSARY;
}

static int ath11k_dp_rx_crypto_mic_len(struct ath11k *ar,
				       enum hal_encrypt_type enctype)
int ath11k_dp_rx_crypto_mic_len(struct ath11k *ar, enum hal_encrypt_type enctype)
{
	switch (enctype) {
	case HAL_ENCRYPT_TYPE_OPEN:
+3 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: BSD-3-Clause-Clear */
/*
 * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
 * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
 */
#ifndef ATH11K_DP_RX_H
#define ATH11K_DP_RX_H
@@ -95,4 +96,6 @@ int ath11k_peer_rx_frag_setup(struct ath11k *ar, const u8 *peer_mac, int vdev_id
int ath11k_dp_rx_pktlog_start(struct ath11k_base *ab);
int ath11k_dp_rx_pktlog_stop(struct ath11k_base *ab, bool stop_timer);

int ath11k_dp_rx_crypto_mic_len(struct ath11k *ar, enum hal_encrypt_type enctype);

#endif /* ATH11K_DP_RX_H */
+12 −4
Original line number Diff line number Diff line
@@ -353,8 +353,12 @@ ath11k_dp_tx_htt_tx_complete_buf(struct ath11k_base *ab,
	if (ts->acked) {
		if (!(info->flags & IEEE80211_TX_CTL_NO_ACK)) {
			info->flags |= IEEE80211_TX_STAT_ACK;
			info->status.ack_signal = ATH11K_DEFAULT_NOISE_FLOOR +
						  ts->ack_rssi;
			info->status.ack_signal = ts->ack_rssi;

			if (!test_bit(WMI_TLV_SERVICE_HW_DB2DBM_CONVERSION_SUPPORT,
				      ab->wmi_ab.svc_map))
				info->status.ack_signal += ATH11K_DEFAULT_NOISE_FLOOR;

			info->status.flags |=
				IEEE80211_TX_STATUS_ACK_SIGNAL_VALID;
		} else {
@@ -584,8 +588,12 @@ static void ath11k_dp_tx_complete_msdu(struct ath11k *ar,
	if (ts->status == HAL_WBM_TQM_REL_REASON_FRAME_ACKED &&
	    !(info->flags & IEEE80211_TX_CTL_NO_ACK)) {
		info->flags |= IEEE80211_TX_STAT_ACK;
		info->status.ack_signal = ATH11K_DEFAULT_NOISE_FLOOR +
					  ts->ack_rssi;
		info->status.ack_signal = ts->ack_rssi;

		if (!test_bit(WMI_TLV_SERVICE_HW_DB2DBM_CONVERSION_SUPPORT,
			      ab->wmi_ab.svc_map))
			info->status.ack_signal += ATH11K_DEFAULT_NOISE_FLOOR;

		info->status.flags |= IEEE80211_TX_STATUS_ACK_SIGNAL_VALID;
	}

Loading