Bläddra i källkod

fixup! Update v4.19 patches

Maximilian Luz 5 år sedan
förälder
incheckning
7e2a6777ce
2 ändrade filer med 0 tillägg och 282 borttagningar
  1. 0 24
      patches/4.19/0009-ioremap_uc.patch
  2. 0 258
      patches/4.19/0010-wifi.patch

+ 0 - 24
patches/4.19/0009-ioremap_uc.patch

@@ -1,24 +0,0 @@
-From 6d8ed96cfeb08b584fd429eb603e0d5d00e476a6 Mon Sep 17 00:00:00 2001
-From: Tuowen Zhao <ztuowen@gmail.com>
-Date: Wed, 16 Oct 2019 15:06:28 -0600
-Subject: [PATCH 09/10] ioremap_uc
-
----
- Documentation/driver-model/devres.txt | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Documentation/driver-model/devres.txt b/Documentation/driver-model/devres.txt
-index 43681ca0837f..7b1ee4190208 100644
---- a/Documentation/driver-model/devres.txt
-+++ b/Documentation/driver-model/devres.txt
-@@ -294,6 +294,7 @@ IOMAP
-   devm_ioport_unmap()
-   devm_ioremap()
-   devm_ioremap_nocache()
-+  devm_ioremap_uc()
-   devm_ioremap_wc()
-   devm_ioremap_resource() : checks resource, requests memory region, ioremaps
-   devm_iounmap()
--- 
-2.26.2
-

+ 0 - 258
patches/4.19/0010-wifi.patch

@@ -1,258 +0,0 @@
-From 9bb4c5b00ce73302b1321f7b51bfbe7bcf7386fb Mon Sep 17 00:00:00 2001
-From: sebanc <22224731+sebanc@users.noreply.github.com>
-Date: Mon, 4 Nov 2019 09:30:57 +0100
-Subject: [PATCH 10/10] wifi
-
----
- .../net/wireless/marvell/mwifiex/cfg80211.c   | 26 ++++++
- drivers/net/wireless/marvell/mwifiex/pcie.c   | 86 +++++++++++--------
- .../net/wireless/marvell/mwifiex/sta_cmd.c    | 31 ++-----
- 3 files changed, 83 insertions(+), 60 deletions(-)
-
-diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
-index 7b74ef71bef1..d8e65b733cb3 100644
---- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
-+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
-@@ -25,6 +25,11 @@
- static char *reg_alpha2;
- module_param(reg_alpha2, charp, 0);
- 
-+static bool allow_ps_mode;
-+module_param(allow_ps_mode, bool, 0444);
-+MODULE_PARM_DESC(allow_ps_mode,
-+		 "allow WiFi power management to be enabled. (default: disallowed)");
-+
- static const struct ieee80211_iface_limit mwifiex_ap_sta_limits[] = {
- 	{
- 		.max = 3, .types = BIT(NL80211_IFTYPE_STATION) |
-@@ -439,6 +444,27 @@ mwifiex_cfg80211_set_power_mgmt(struct wiphy *wiphy,
- 
- 	ps_mode = enabled;
- 
-+	/* Allow ps_mode to be enabled only when allow_ps_mode is set
-+	 * (but always allow ps_mode to be disabled in case it gets enabled
-+	 * for unknown reason and you want to disable it) */
-+	if (ps_mode && !allow_ps_mode) {
-+		dev_info(priv->adapter->dev,
-+			    "Request to enable ps_mode received but it's disallowed "
-+			    "by module parameter. Rejecting the request.\n");
-+
-+		/* Return negative value to inform userspace tools that setting
-+		 * power_save to be enabled is not permitted. */
-+		return -1;
-+	}
-+
-+	if (ps_mode)
-+		dev_warn(priv->adapter->dev,
-+			    "WARN: Request to enable ps_mode received. Enabling it. "
-+			    "Disable it if you encounter connection instability.\n");
-+	else
-+		dev_info(priv->adapter->dev,
-+			    "Request to disable ps_mode received. Disabling it.\n");
-+
- 	return mwifiex_drv_set_power(priv, &ps_mode);
- }
- 
-diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
-index 991b9cc18000..2464f536192c 100644
---- a/drivers/net/wireless/marvell/mwifiex/pcie.c
-+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
-@@ -146,40 +146,45 @@ static bool mwifiex_pcie_ok_to_access_hw(struct mwifiex_adapter *adapter)
-  *
-  * If already not suspended, this function allocates and sends a host
-  * sleep activate request to the firmware and turns off the traffic.
-+ *
-+ * XXX: ignoring all the above comment and just removes the card to
-+ * fix S0ix and "AP scanning (sometimes) not working after suspend".
-+ * Required code is extracted from mwifiex_pcie_remove().
-  */
- static int mwifiex_pcie_suspend(struct device *dev)
- {
--	struct mwifiex_adapter *adapter;
--	struct pcie_service_card *card;
- 	struct pci_dev *pdev = to_pci_dev(dev);
--
--	card = pci_get_drvdata(pdev);
-+	struct pcie_service_card *card = pci_get_drvdata(pdev);
-+	struct mwifiex_adapter *adapter;
-+	struct mwifiex_private *priv;
-+	const struct mwifiex_pcie_card_reg *reg;
-+	u32 fw_status;
-+	int ret;
- 
- 	/* Might still be loading firmware */
- 	wait_for_completion(&card->fw_done);
- 
- 	adapter = card->adapter;
--	if (!adapter) {
--		dev_err(dev, "adapter is not valid\n");
-+	if (!adapter || !adapter->priv_num)
- 		return 0;
--	}
- 
--	mwifiex_enable_wake(adapter);
-+	reg = card->pcie.reg;
-+	if (reg)
-+		ret = mwifiex_read_reg(adapter, reg->fw_status, &fw_status);
-+	else
-+		fw_status = -1;
- 
--	/* Enable the Host Sleep */
--	if (!mwifiex_enable_hs(adapter)) {
--		mwifiex_dbg(adapter, ERROR,
--			    "cmd: failed to suspend\n");
--		clear_bit(MWIFIEX_IS_HS_ENABLING, &adapter->work_flags);
--		mwifiex_disable_wake(adapter);
--		return -EFAULT;
--	}
-+	if (fw_status == FIRMWARE_READY_PCIE && !adapter->mfg_mode) {
-+		mwifiex_deauthenticate_all(adapter);
- 
--	flush_workqueue(adapter->workqueue);
-+		priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_ANY);
- 
--	/* Indicate device suspended */
--	set_bit(MWIFIEX_IS_SUSPENDED, &adapter->work_flags);
--	clear_bit(MWIFIEX_IS_HS_ENABLING, &adapter->work_flags);
-+		mwifiex_disable_auto_ds(priv);
-+
-+		mwifiex_init_shutdown_fw(priv, MWIFIEX_FUNC_SHUTDOWN);
-+	}
-+
-+	mwifiex_remove_card(adapter);
- 
- 	return 0;
- }
-@@ -191,33 +196,35 @@ static int mwifiex_pcie_suspend(struct device *dev)
-  *
-  * If already not resumed, this function turns on the traffic and
-  * sends a host sleep cancel request to the firmware.
-+ *
-+ * XXX: ignoring all the above comment and probes the card that was
-+ * removed on suspend. Required code is extracted from mwifiex_pcie_probe().
-  */
- static int mwifiex_pcie_resume(struct device *dev)
- {
--	struct mwifiex_adapter *adapter;
--	struct pcie_service_card *card;
- 	struct pci_dev *pdev = to_pci_dev(dev);
-+	struct pcie_service_card *card = pci_get_drvdata(pdev);
-+	int ret;
- 
--	card = pci_get_drvdata(pdev);
-+	pr_debug("info: vendor=0x%4.04X device=0x%4.04X rev=%d\n",
-+		 pdev->vendor, pdev->device, pdev->revision);
- 
--	if (!card->adapter) {
--		dev_err(dev, "adapter structure is not valid\n");
--		return 0;
--	}
-+	init_completion(&card->fw_done);
- 
--	adapter = card->adapter;
-+	card->dev = pdev;
- 
--	if (!test_bit(MWIFIEX_IS_SUSPENDED, &adapter->work_flags)) {
--		mwifiex_dbg(adapter, WARN,
--			    "Device already resumed\n");
--		return 0;
-+	/* device tree node parsing and platform specific configuration */
-+	if (pdev->dev.of_node) {
-+		ret = mwifiex_pcie_probe_of(&pdev->dev);
-+		if (ret)
-+			return ret;
- 	}
- 
--	clear_bit(MWIFIEX_IS_SUSPENDED, &adapter->work_flags);
--
--	mwifiex_cancel_hs(mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_STA),
--			  MWIFIEX_ASYNC_CMD);
--	mwifiex_disable_wake(adapter);
-+	if (mwifiex_add_card(card, &card->fw_done, &pcie_ops,
-+			MWIFIEX_PCIE, &pdev->dev)) {
-+		pr_err("%s failed\n", __func__);
-+		return -1;
-+	}
- 
- 	return 0;
- }
-@@ -233,8 +240,13 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev,
- 					const struct pci_device_id *ent)
- {
- 	struct pcie_service_card *card;
-+	struct pci_dev *parent_pdev = pci_upstream_bridge(pdev);
- 	int ret;
- 
-+	/* disable bridge_d3 to fix driver crashing after suspend on gen4+
-+	 * Surface devices */
-+	parent_pdev->bridge_d3 = false;
-+
- 	pr_debug("info: vendor=0x%4.04X device=0x%4.04X rev=%d\n",
- 		 pdev->vendor, pdev->device, pdev->revision);
- 
-diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
-index 4ed10cf82f9a..410bef3d6a6e 100644
---- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
-+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
-@@ -2254,7 +2254,6 @@ int mwifiex_sta_prepare_cmd(struct mwifiex_private *priv, uint16_t cmd_no,
-  *      - Function init (for first interface only)
-  *      - Read MAC address (for first interface only)
-  *      - Reconfigure Tx buffer size (for first interface only)
-- *      - Enable auto deep sleep (for first interface only)
-  *      - Get Tx rate
-  *      - Get Tx power
-  *      - Set IBSS coalescing status
-@@ -2267,7 +2266,6 @@ int mwifiex_sta_init_cmd(struct mwifiex_private *priv, u8 first_sta, bool init)
- 	struct mwifiex_adapter *adapter = priv->adapter;
- 	int ret;
- 	struct mwifiex_ds_11n_amsdu_aggr_ctrl amsdu_aggr_ctrl;
--	struct mwifiex_ds_auto_ds auto_ds;
- 	enum state_11d_t state_11d;
- 	struct mwifiex_ds_11n_tx_cfg tx_cfg;
- 	u8 sdio_sp_rx_aggr_enable;
-@@ -2339,16 +2337,10 @@ int mwifiex_sta_init_cmd(struct mwifiex_private *priv, u8 first_sta, bool init)
- 		if (ret)
- 			return -1;
- 
--		if (priv->bss_type != MWIFIEX_BSS_TYPE_UAP) {
--			/* Enable IEEE PS by default */
--			priv->adapter->ps_mode = MWIFIEX_802_11_POWER_MODE_PSP;
--			ret = mwifiex_send_cmd(priv,
--					       HostCmd_CMD_802_11_PS_MODE_ENH,
--					       EN_AUTO_PS, BITMAP_STA_PS, NULL,
--					       true);
--			if (ret)
--				return -1;
--		}
-+		/* Not enabling ps_mode (IEEE power_save) by default. Enabling
-+		 * this causes connection instability, especially on 5GHz APs
-+		 * and eventually causes "firmware wakeup failed". Therefore,
-+		 * the relevant code was removed from here. */
- 
- 		if (drcs) {
- 			adapter->drcs_enabled = true;
-@@ -2395,17 +2387,10 @@ int mwifiex_sta_init_cmd(struct mwifiex_private *priv, u8 first_sta, bool init)
- 	if (ret)
- 		return -1;
- 
--	if (!disable_auto_ds && first_sta &&
--	    priv->bss_type != MWIFIEX_BSS_TYPE_UAP) {
--		/* Enable auto deep sleep */
--		auto_ds.auto_ds = DEEP_SLEEP_ON;
--		auto_ds.idle_time = DEEP_SLEEP_IDLE_TIME;
--		ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_PS_MODE_ENH,
--				       EN_AUTO_PS, BITMAP_AUTO_DS,
--				       &auto_ds, true);
--		if (ret)
--			return -1;
--	}
-+	/* Not enabling auto deep sleep (auto_ds) by default. Enabling
-+	 * this reportedly causes "suspend/resume fails when not connected
-+	 * to an Access Point." Therefore, the relevant code was removed
-+	 * from here. */
- 
- 	if (priv->bss_type != MWIFIEX_BSS_TYPE_UAP) {
- 		/* Send cmd to FW to enable/disable 11D function */
--- 
-2.26.2
-