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

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

Merge "cnss2: Fix minor issues related to runtime PM debugfs interface"

parents 4fa3b029 c2e5e5e9
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -194,7 +194,7 @@ static ssize_t cnss_dev_boot_debug_write(struct file *fp,
		ret = -EINVAL;
	}

	if (ret)
	if (ret < 0)
		return ret;

	return count;
@@ -482,7 +482,7 @@ static ssize_t cnss_runtime_pm_debug_write(struct file *fp,
		ret = -EINVAL;
	}

	if (ret)
	if (ret < 0)
		return ret;

	return count;
@@ -493,6 +493,8 @@ static int cnss_runtime_pm_debug_show(struct seq_file *s, void *data)
	seq_puts(s, "\nUsage: echo <action> > <debugfs_path>/cnss/runtime_pm\n");
	seq_puts(s, "<action> can be one of below:\n");
	seq_puts(s, "usage_count: get runtime PM usage count\n");
	seq_puts(s, "reques_resume: do async runtime PM resume\n");
	seq_puts(s, "resume: do sync runtime PM resume\n");
	seq_puts(s, "get: do runtime PM get\n");
	seq_puts(s, "get_noresume: do runtime PM get noresume\n");
	seq_puts(s, "put_noidle: do runtime PM put noidle\n");
+18 −0
Original line number Diff line number Diff line
@@ -2084,17 +2084,35 @@ void cnss_pci_pm_runtime_get_noresume(struct cnss_pci_data *pci_priv)

int cnss_pci_pm_runtime_put_autosuspend(struct cnss_pci_data *pci_priv)
{
	struct device *dev;

	if (!pci_priv)
		return -ENODEV;

	dev = &pci_priv->pci_dev->dev;

	if (atomic_read(&dev->power.usage_count) == 0) {
		cnss_pr_dbg("Ignore excessive runtime PM put operation\n");
		return -EINVAL;
	}

	return pm_runtime_put_autosuspend(&pci_priv->pci_dev->dev);
}

void cnss_pci_pm_runtime_put_noidle(struct cnss_pci_data *pci_priv)
{
	struct device *dev;

	if (!pci_priv)
		return;

	dev = &pci_priv->pci_dev->dev;

	if (atomic_read(&dev->power.usage_count) == 0) {
		cnss_pr_dbg("Ignore excessive runtime PM put operation\n");
		return;
	}

	pm_runtime_put_noidle(&pci_priv->pci_dev->dev);
}