From 130ead3ce66787c6fc6c7dd0e42ce683e5b77e4b Mon Sep 17 00:00:00 2001 From: Yue Ma Date: Mon, 14 Sep 2020 18:08:37 -0700 Subject: [PATCH] cnss2: Group dev_boot debugfs handling by contexts To handle dev_boot debugfs, group the API calls based on contexts to avoid exiting because of irrelevant invalid context. Change-Id: I3d031ca53fc2739ae4947a40c4b3b0e7f7a74bb3 Signed-off-by: Yue Ma --- drivers/net/wireless/cnss2/debug.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/drivers/net/wireless/cnss2/debug.c b/drivers/net/wireless/cnss2/debug.c index 9ba655988f01..330b4b10e3ce 100644 --- a/drivers/net/wireless/cnss2/debug.c +++ b/drivers/net/wireless/cnss2/debug.c @@ -171,10 +171,6 @@ static ssize_t cnss_dev_boot_debug_write(struct file *fp, if (!plat_priv) return -ENODEV; - pci_priv = plat_priv->bus_priv; - if (!pci_priv) - return -ENODEV; - len = min(count, sizeof(buf) - 1); if (copy_from_user(buf, user_buf, len)) return -EFAULT; @@ -189,13 +185,6 @@ static ssize_t cnss_dev_boot_debug_write(struct file *fp, cnss_power_off_device(plat_priv); } else if (sysfs_streq(cmd, "enumerate")) { ret = cnss_pci_init(plat_priv); - } else if (sysfs_streq(cmd, "download")) { - set_bit(CNSS_DRIVER_DEBUG, &plat_priv->driver_state); - ret = cnss_pci_start_mhi(pci_priv); - } else if (sysfs_streq(cmd, "linkup")) { - ret = cnss_resume_pci_link(pci_priv); - } else if (sysfs_streq(cmd, "linkdown")) { - ret = cnss_suspend_pci_link(pci_priv); } else if (sysfs_streq(cmd, "powerup")) { set_bit(CNSS_DRIVER_DEBUG, &plat_priv->driver_state); ret = cnss_driver_event_post(plat_priv, @@ -206,6 +195,19 @@ static ssize_t cnss_dev_boot_debug_write(struct file *fp, CNSS_DRIVER_EVENT_POWER_DOWN, 0, NULL); clear_bit(CNSS_DRIVER_DEBUG, &plat_priv->driver_state); + } + + pci_priv = plat_priv->bus_priv; + if (!pci_priv) + return -ENODEV; + + if (sysfs_streq(cmd, "download")) { + set_bit(CNSS_DRIVER_DEBUG, &plat_priv->driver_state); + ret = cnss_pci_start_mhi(pci_priv); + } else if (sysfs_streq(cmd, "linkup")) { + ret = cnss_resume_pci_link(pci_priv); + } else if (sysfs_streq(cmd, "linkdown")) { + ret = cnss_suspend_pci_link(pci_priv); } else if (sysfs_streq(cmd, "assert")) { cnss_pr_info("FW Assert triggered for debug\n"); ret = cnss_force_fw_assert(&pci_priv->pci_dev->dev);