Re: [PATCH 3/4] OMAP: PM: use omap_device API for suspend/resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"Nayak, Rajendra" <rnayak@xxxxxx> writes:

[...]

>> diff --git a/arch/arm/mach-omap2/pm_bus.c 
>> b/arch/arm/mach-omap2/pm_bus.c
>> index 69acaa5..3787da8 100644
>> --- a/arch/arm/mach-omap2/pm_bus.c
>> +++ b/arch/arm/mach-omap2/pm_bus.c
>> @@ -70,3 +70,64 @@ int platform_pm_runtime_idle(struct device *dev)
>>  };
>>  #endif /* CONFIG_PM_RUNTIME */
>>  
>> +#ifdef CONFIG_SUSPEND
>> +int platform_pm_suspend_noirq(struct device *dev)
>> +{
>> +	struct device_driver *drv = dev->driver;
>> +	struct platform_device *pdev = to_platform_device(dev);
>> +	struct omap_device *odev = to_omap_device(pdev);
>> +	int ret = 0;
>> +
>> +	if (!drv)
>> +		return 0;
>> +
>> +	if (drv->pm) {
>> +		if (drv->pm->suspend_noirq)
>> +			ret = drv->pm->suspend_noirq(dev);
>> +	}
>> +
>> +	if (omap_device_is_valid(odev)) {
>> +		if (odev->flags & OMAP_DEVICE_NO_BUS_SUSPEND) {
>> +			dev_dbg(dev, "no automatic bus-level 
>> system resume.\n");
>> +			return 0;
>> +		}
>> +
>> +		dev_dbg(dev, "%s\n", __func__);
>> +		omap_device_idle(pdev);
>
> Is it expected that a device is always in enabled state at this point?
> If the device is already in idle a call to omap_device_idle unconditionally
> throws up warnings from the omap_device api.

Hmm, good point.  The device may already be idled (via runtime PM, or
maybe because it was never enabled.)

There are two options:

1. fixup the warnings in the omap_device_idle() to allow multiple
   calls to _idle()

2. Add an omap_device_is_idle() check before calling _idle()

I much prefer (1).  

Paul?

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux