• Lin Ming's avatar
    ACPI: Add interface to register/unregister device to/from power resources · 0090def6
    Lin Ming authored
    Devices may share same list of power resources in _PR0, for example
    
    Device(Dev0)
    {
    	Name (_PR0, Package (0x01)
    	{
    		P0PR,
    		P1PR
    	})
    }
    
    Device(Dev1)
    {
    	Name (_PR0, Package (0x01)
    	{
    		P0PR,
    		P1PR
    	}
    }
    
    Assume Dev0 and Dev1 were runtime suspended.
    Then Dev0 is resumed first and it goes into D0 state.
    But Dev1 is left in D0_Uninitialised state.
    
    This is wrong. In this case, Dev1 must be resumed too.
    
    In order to hand this case, each power resource maintains a list of
    devices which relies on it.
    
    When power resource is ON, it will check if the devices on its list
    can be resumed. The device can only be resumed when all the power
    resouces of its _PR0 are ON.
    Signed-off-by: default avatarLin Ming <ming.m.lin@intel.com>
    Signed-off-by: default avatarLen Brown <len.brown@intel.com>
    0090def6
power.c 19.8 KB