diff options
Diffstat (limited to 'drivers/pci/pci-driver.c')
| -rw-r--r-- | drivers/pci/pci-driver.c | 16 | 
1 files changed, 14 insertions, 2 deletions
| diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index 4446fcb5effd..d7ffd66814bb 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -1146,9 +1146,21 @@ static int pci_pm_runtime_suspend(struct device *dev)  	pci_dev->state_saved = false;  	pci_dev->no_d3cold = false;  	error = pm->runtime_suspend(dev); -	suspend_report_result(pm->runtime_suspend, error); -	if (error) +	if (error) { +		/* +		 * -EBUSY and -EAGAIN is used to request the runtime PM core +		 * to schedule a new suspend, so log the event only with debug +		 * log level. +		 */ +		if (error == -EBUSY || error == -EAGAIN) +			dev_dbg(dev, "can't suspend now (%pf returned %d)\n", +				pm->runtime_suspend, error); +		else +			dev_err(dev, "can't suspend (%pf returned %d)\n", +				pm->runtime_suspend, error); +  		return error; +	}  	if (!pci_dev->d3cold_allowed)  		pci_dev->no_d3cold = true; |