Patent ID: 6128745
Filing Date: 2000-10-03
Classification: G06F

Abstract:
A method for managing power in an electronic system that includes a processor, operating system software controlling said processor and capable of controlling a plurality of input/output devices, each of said input/output devices having a full power-on state and at least one power reduction state and each being controlled by an associated device driver, said method comprising the steps of:loading power management application (PMA) software, communication software, and template software into said electronic system;wherein said template software includes a data structure for a name, a time-out value for a full power-on state and an application programming interface (API) for power up or power lower for said device;wherein said communication software is loaded into the device drivers of devices that are to be subject to power management and functions to facilitate communication between said device and said PMA software;wherein said template software is functional to translate said API of said device to an API of said communication software;initializing code in said communication software in each of said device drivers to be subject to power management to create a thread for its device driver with a specific ID in order to support asynchronous communication with said PMA software;initializing said PMA software with at least said full power-on time-out value for each of said device drivers subject to power management;associating in said PMA software a different timer with each of a plurality of said device drivers subject to power management, said timers being external to said device drivers, and initializing each of said timers in accordance with the time out value for its associated device driver;monitoring each of said timers and if a given one of said timers associated with a given one of said device drivers has a value indicative that its time-out value has been reached, then awakening said thread for the given device driver;said given device driver having said awakened thread acting to call said PMA software for instructions;said PMA software instructing said given device driver upon receipt of said call to lower at least one power level; andresetting a particular one of said timers when the device driver associated with said timer indicates a usage event for its associated device, and powering to a higher power said associated device if it is not at a full power-on state.