Re: Runtime power management during system resume

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

 



 
Hi Alan,
 
I have few more questions:
 
1) If the platform device driver is using platform_bus_type as its bus type, in that case is the parent of device is its bus?
 
2) Because I saw the code in platform_device_register, when any platform device is register, its parent is set to
platform bus?
right?
 
int platform_device_add(struct platform_device *pdev)
{
----------------------------------------
if (!pdev->dev.parent)
                pdev->dev.parent = &platform_bus;
------------------------------------------------------
}
 
So when the platform device wants to use parent other than platform bus, is it possible to set the parent
of platform device to any other device rather than platform_bus?
 
 
3) The 3rd question is regarding, in this function
 
int __pm_runtime_resume(struct device *dev, bool from_wq)
        __releases(&dev->power.lock) __acquires(&dev->power.lock)
{
 
-----------------------
        if (dev->bus && dev->bus->pm && dev->bus->pm->runtime_resume) {
                spin_unlock_irq(&dev->power.lock);
                retval = dev->bus->pm->runtime_resume(dev);
                spin_lock_irq(&dev->power.lock);
                dev->power.runtime_error = retval;
        }
 
--------------------
 out:
        if (parent) {
                spin_unlock_irq(&dev->power.lock);
                pm_runtime_put(parent);
                spin_lock_irq(&dev->power.lock);
        }
}
 
When the device is resumed and its status is set to RPM_ACTIVE, Now the control comes to
pm_runtime_put(parent) (suppose device is resumed correctly)
 
Now it decrements the power usage count and call idle for parent.
 
Why after resuming the device, It will try to schedule idle for its parent?
 
Since the device is resumed so its parent should be active.
 
Regards
Raj
 
 
 
 

 
 
 

 
 
> ----------------------------------------
> > Date: Tue, 24 Aug 2010 10:30:25 -0400
> > From: stern@xxxxxxxxxxxxxxxxxxx
> > To: rajkumar278@xxxxxxxxxxx
> > CC: linux-kernel@xxxxxxxxxxxxxxx
> > Subject: Re: Runtime power management during system resume
> >
> > On Tue, 24 Aug 2010, Raj Kumar wrote:
> >
> >> Hi Alan,
> >>
> >> I have implemented the run time power management in my drivers. I have one
> >> issue regarding System resume.
> >>
> >> When the system sleep is triggered as it is mentioned that Power management
> >> core will increment the power_usage counter during prepare and decrements when complete
> >> is called.
> >>
> >> Now I have few questions:
> >>
> >> 1) When the system resume is done, it does not increase the power_usage counter.
> >> right?
> >
> > That's right.
> >
> >> So Does then the driver need to update the power_usage counter with run time power management
> >> core and again set it to active means RPM_ACTIVE?
> >
> > Read section 6 of Documentation/power/runtime_pm.h. It explains this.
> >
> >> 2) Suppose device is active, means its power_usage counter is already one, Now during system
> >> sleep, does the driver first suspend it with run time power management core and then continue
> >> System suspend?
> >
> > No.
> >
> >> 3) Because I have seen the code of power management core and I did not see the that during
> >> system suspend, run time power management status is updated means RPM_SUSPENDED.
> >> right?
> >
> > I don't understand your question.
> >
> > Alan Stern
> >

_______________________________________________
linux-pm mailing list
linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/linux-pm

[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux