diff options
author | Linaro CI <ci_notify@linaro.org> | 2019-11-26 01:40:46 +0000 |
---|---|---|
committer | Linaro CI <ci_notify@linaro.org> | 2019-11-26 01:40:46 +0000 |
commit | 0ddfa1533a9fc6a3097e3b50382632339829ae01 (patch) | |
tree | e409ab818c24e0d0ebe7bb62b38c867a2dc55e54 | |
parent | 6f90137e2c0c2cd1f7d543802a96315d6ecf64ac (diff) | |
parent | 8c74983c0183e264676921e9769d1c8357a92cbb (diff) |
Merge remote-tracking branch 'ath10k/tracking-qcomlt-ath10k' into integration-linux-qcomlt
-rw-r--r-- | Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt | 5 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath10k/qmi.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath10k/snoc.c | 11 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath10k/snoc.h | 1 |
5 files changed, 24 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt index ae661e65354e..b900988c0779 100644 --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt @@ -81,6 +81,11 @@ Optional properties: Definition: Name of external front end module used. Some valid FEM names for example: "microsemi-lx5586", "sky85703-11" and "sky85803" etc. +- qcom,snoc-host-cap-skip-quirk: + Usage: Optional + Value type: <empty> + Definition: Quirk specifying that the firmware is not capable of + handling the host capability QMI request Example (to supply PCI based wifi block details): diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts index 160f62a9dcbb..cad413173fcc 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts @@ -898,6 +898,8 @@ vdd-1.8-xo-supply = <&vreg_l7a_1p8>; vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; + + qcom,snoc-host-cap-skip-quirk; }; /* PINCTRL - additions to nodes defined in sdm845.dtsi */ diff --git a/drivers/net/wireless/ath/ath10k/qmi.c b/drivers/net/wireless/ath/ath10k/qmi.c index 3b63b6257c43..fec7bb619ee9 100644 --- a/drivers/net/wireless/ath/ath10k/qmi.c +++ b/drivers/net/wireless/ath/ath10k/qmi.c @@ -582,9 +582,13 @@ static int ath10k_qmi_host_cap_send_sync(struct ath10k_qmi *qmi) struct wlfw_host_cap_resp_msg_v01 resp = {}; struct wlfw_host_cap_req_msg_v01 req = {}; struct ath10k *ar = qmi->ar; + struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); struct qmi_txn txn; int ret; + if (test_bit(ATH10K_SNOC_FLAG_SKIP_HOST_CAP_QUIRK, &ar_snoc->flags)) + return 0; + req.daemon_support_valid = 1; req.daemon_support = 0; @@ -739,6 +743,7 @@ static void ath10k_qmi_event_server_arrive(struct ath10k_qmi *qmi) if (ret) return; + msleep(20); ret = ath10k_qmi_setup_msa_permissions(qmi); if (ret) return; diff --git a/drivers/net/wireless/ath/ath10k/snoc.c b/drivers/net/wireless/ath/ath10k/snoc.c index b491361e6ed4..a63b8dbcfab5 100644 --- a/drivers/net/wireless/ath/ath10k/snoc.c +++ b/drivers/net/wireless/ath/ath10k/snoc.c @@ -1261,6 +1261,15 @@ out: return ret; } +static void ath10k_snoc_quirks_init(struct ath10k *ar) +{ + struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); + struct device *dev = &ar_snoc->dev->dev; + + if (of_property_read_bool(dev->of_node, "qcom,snoc-host-cap-skip-quirk")) + set_bit(ATH10K_SNOC_FLAG_SKIP_HOST_CAP_QUIRK, &ar_snoc->flags); +} + int ath10k_snoc_fw_indication(struct ath10k *ar, u64 type) { struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); @@ -1678,6 +1687,8 @@ static int ath10k_snoc_probe(struct platform_device *pdev) ar->ce_priv = &ar_snoc->ce; msa_size = drv_data->msa_size; + ath10k_snoc_quirks_init(ar); + ret = ath10k_snoc_resource_init(ar); if (ret) { ath10k_warn(ar, "failed to initialize resource: %d\n", ret); diff --git a/drivers/net/wireless/ath/ath10k/snoc.h b/drivers/net/wireless/ath/ath10k/snoc.h index d62f53501fbb..ba36163ec3e6 100644 --- a/drivers/net/wireless/ath/ath10k/snoc.h +++ b/drivers/net/wireless/ath/ath10k/snoc.h @@ -63,6 +63,7 @@ enum ath10k_snoc_flags { ATH10K_SNOC_FLAG_REGISTERED, ATH10K_SNOC_FLAG_UNREGISTERING, ATH10K_SNOC_FLAG_RECOVERY, + ATH10K_SNOC_FLAG_SKIP_HOST_CAP_QUIRK, }; struct ath10k_snoc { |