Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c3ccd954 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "cnss2: Enable self-recovery only when host driver detects linkdown"

parents 6915aa12 8e58a0d7
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -1100,6 +1100,11 @@ static int cnss_do_recovery(struct cnss_plat_data *plat_priv,
self_recovery:
	cnss_pr_dbg("Going for self recovery\n");
	cnss_bus_dev_shutdown(plat_priv);

	if (test_bit(LINK_DOWN_SELF_RECOVERY, &plat_priv->ctrl_params.quirks))
		clear_bit(LINK_DOWN_SELF_RECOVERY,
			  &plat_priv->ctrl_params.quirks);

	cnss_bus_dev_powerup(plat_priv);

	return 0;
@@ -2506,10 +2511,6 @@ static void cnss_init_control_params(struct cnss_plat_data *plat_priv)
				  "cnss-daemon-support"))
		plat_priv->ctrl_params.quirks |= BIT(ENABLE_DAEMON_SUPPORT);

	if (of_property_read_bool(plat_priv->plat_dev->dev.of_node,
				  "cnss-enable-self-recovery"))
		plat_priv->ctrl_params.quirks |= BIT(LINK_DOWN_SELF_RECOVERY);

	plat_priv->ctrl_params.mhi_timeout = CNSS_MHI_TIMEOUT_DEFAULT;
	plat_priv->ctrl_params.mhi_m2_timeout = CNSS_MHI_M2_TIMEOUT_DEFAULT;
	plat_priv->ctrl_params.qmi_timeout = CNSS_QMI_TIMEOUT_DEFAULT;
+12 −0
Original line number Diff line number Diff line
@@ -891,6 +891,7 @@ int cnss_pci_link_down(struct device *dev)
{
	struct pci_dev *pci_dev = to_pci_dev(dev);
	struct cnss_pci_data *pci_priv = cnss_get_pci_priv(pci_dev);
	struct cnss_plat_data *plat_priv = NULL;
	int ret;

	if (!pci_priv) {
@@ -898,6 +899,17 @@ int cnss_pci_link_down(struct device *dev)
		return -EINVAL;
	}

	plat_priv = pci_priv->plat_priv;
	if (!plat_priv) {
		cnss_pr_err("plat_priv is NULL\n");
		return -ENODEV;
	}

	if (pci_priv->drv_connected_last &&
	    of_property_read_bool(plat_priv->plat_dev->dev.of_node,
				  "cnss-enable-self-recovery"))
		plat_priv->ctrl_params.quirks |= BIT(LINK_DOWN_SELF_RECOVERY);

	cnss_pr_err("PCI link down is detected by drivers\n");

	ret = msm_pcie_pm_control(MSM_PCIE_HANDLE_LINKDOWN,