Commit 8347c806 authored by Kalle Valo's avatar Kalle Valo
Browse files
ath.git patches for v5.16. Major changes:

ath9k

* add option to reset the wifi chip via debugfs

* convert Device Tree bindings to the json-schema

* support Device Tree ieee80211-freq-limit property to limit channels
parents 5943a864 65b4b8aa
Loading
Loading
Loading
Loading
+0 −48
Original line number Diff line number Diff line
* Qualcomm Atheros ath9k wireless devices

This node provides properties for configuring the ath9k wireless device. The
node is expected to be specified as a child node of the PCI controller to
which the wireless chip is connected.

Required properties:
- compatible: For PCI and PCIe devices this should be an identifier following
		the format as defined in "PCI Bus Binding to Open Firmware"
		Revision 2.1. One of the possible formats is "pciVVVV,DDDD"
		where VVVV is the PCI vendor ID and DDDD is PCI device ID.
		Typically QCA's PCI vendor ID 168c is used while the PCI device
		ID depends on the chipset - see the following (possibly
		incomplete) list:
			- 0023 for AR5416
			- 0024 for AR5418
			- 0027 for AR9160
			- 0029 for AR9220 and AR9223
			- 002a for AR9280 and AR9283
			- 002b for AR9285
			- 002c for AR2427
			- 002d for AR9227
			- 002e for AR9287
			- 0030 for AR9380, AR9381 and AR9382
			- 0032 for AR9485
			- 0033 for AR9580 and AR9590
			- 0034 for AR9462
			- 0036 for AR9565
			- 0037 for AR9485
- reg: Address and length of the register set for the device.

Optional properties:
- qca,no-eeprom: Indicates that there is no physical EEPROM connected to the
			ath9k wireless chip (in this case the calibration /
			EEPROM data will be loaded from userspace using the
			kernel firmware loader).

The MAC address will be determined using the optional properties defined in
net/ethernet.txt.

In this example, the node is defined as child node of the PCI controller:
&pci0 {
	wifi@168c,002d {
		compatible = "pci168c,002d";
		reg = <0x7000 0 0 0 0x1000>;
		qca,no-eeprom;
	};
};
+90 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/wireless/qca,ath9k.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Atheros ath9k wireless devices Generic Binding

maintainers:
  - Kalle Valo <kvalo@codeaurora.org>

description: |
  This node provides properties for configuring the ath9k wireless device.
  The node is expected to be specified as a child node of the PCI controller
  to which the wireless chip is connected.

allOf:
  - $ref: ieee80211.yaml#

properties:
  compatible:
    enum:
      - pci168c,0023  # AR5416
      - pci168c,0024  # AR5418
      - pci168c,0027  # AR9160
      - pci168c,0029  # AR9220 and AR9223
      - pci168c,002a  # AR9280 and AR9283
      - pci168c,002b  # AR9285
      - pci168c,002c  # AR2427 - 802.11n bonded out
      - pci168c,002d  # AR9227
      - pci168c,002e  # AR9287
      - pci168c,0030  # AR9380, AR9381 and AR9382
      - pci168c,0032  # AR9485
      - pci168c,0033  # AR9580 and AR9590
      - pci168c,0034  # AR9462
      - pci168c,0036  # AR9565
      - pci168c,0037  # AR1111 and AR9485

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  ieee80211-freq-limit: true

  qca,no-eeprom:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Indicates that there is no physical EEPROM connected

  nvmem-cells:
    items:
      - description: Reference to an nvmem node for the MAC address
      - description: Reference to an nvmem node for calibration data

  nvmem-cell-names:
    items:
      - const: mac-address
      - const: calibration

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    pcie0 {
      #address-cells = <3>;
      #size-cells = <2>;
      wifi@0,0 {
        compatible = "pci168c,002d";
        reg = <0 0 0 0 0>;
        interrupts = <3>;
        qca,no-eeprom;
      };
    };
  - |
    pci0 {
      #address-cells = <3>;
      #size-cells = <2>;
      wifi@0,11 {
        compatible = "pci168c,0029";
        reg = <0x8800 0 0 0 0>;
        nvmem-cells = <&macaddr_art_c>, <&cal_art_1000>;
        nvmem-cell-names = "mac-address", "calibration";
      };
    };
+1 −0
Original line number Diff line number Diff line
@@ -15464,6 +15464,7 @@ M: ath9k-devel@qca.qualcomm.com
L:	linux-wireless@vger.kernel.org
S:	Supported
W:	https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
F:	Documentation/devicetree/bindings/net/wireless/qca,ath9k.yaml
F:	drivers/net/wireless/ath/ath9k/
QUALCOMM CAMERA SUBSYSTEM DRIVER
+3 −3
Original line number Diff line number Diff line
@@ -1052,7 +1052,7 @@ static int ath10k_monitor_vdev_start(struct ath10k *ar, int vdev_id)
	arg.channel.min_power = 0;
	arg.channel.max_power = channel->max_power * 2;
	arg.channel.max_reg_power = channel->max_reg_power * 2;
	arg.channel.max_antenna_gain = channel->max_antenna_gain * 2;
	arg.channel.max_antenna_gain = channel->max_antenna_gain;

	reinit_completion(&ar->vdev_setup_done);
	reinit_completion(&ar->vdev_delete_done);
@@ -1498,7 +1498,7 @@ static int ath10k_vdev_start_restart(struct ath10k_vif *arvif,
	arg.channel.min_power = 0;
	arg.channel.max_power = chandef->chan->max_power * 2;
	arg.channel.max_reg_power = chandef->chan->max_reg_power * 2;
	arg.channel.max_antenna_gain = chandef->chan->max_antenna_gain * 2;
	arg.channel.max_antenna_gain = chandef->chan->max_antenna_gain;

	if (arvif->vdev_type == WMI_VDEV_TYPE_AP) {
		arg.ssid = arvif->u.ap.ssid;
@@ -3426,7 +3426,7 @@ static int ath10k_update_channel_list(struct ath10k *ar)
			ch->min_power = 0;
			ch->max_power = channel->max_power * 2;
			ch->max_reg_power = channel->max_reg_power * 2;
			ch->max_antenna_gain = channel->max_antenna_gain * 2;
			ch->max_antenna_gain = channel->max_antenna_gain;
			ch->reg_class_id = 0; /* FIXME */

			/* FIXME: why use only legacy modes, why not any
+2 −1
Original line number Diff line number Diff line
@@ -864,7 +864,8 @@ static void ath10k_qmi_event_server_exit(struct ath10k_qmi *qmi)

	ath10k_qmi_remove_msa_permission(qmi);
	ath10k_core_free_board_files(ar);
	if (!test_bit(ATH10K_SNOC_FLAG_UNREGISTERING, &ar_snoc->flags))
	if (!test_bit(ATH10K_SNOC_FLAG_UNREGISTERING, &ar_snoc->flags) &&
	    !test_bit(ATH10K_SNOC_FLAG_MODEM_STOPPED, &ar_snoc->flags))
		ath10k_snoc_fw_crashed_dump(ar);

	ath10k_snoc_fw_indication(ar, ATH10K_QMI_EVENT_FW_DOWN_IND);
Loading