Systems and methods for suspending idle devices based on idle policies for the devices
First Claim
1. A method, comprising:
- receiving, by a processor, an indication that a device having a communication channel is connected to a host device;
determining, by the processor, a first timeout value associated with the communication channel, wherein the first timeout value corresponds to a first amount of time allotted for an operation to be pending in the communication channel, wherein the operation is pending while the operation is being performed using the communication channel until the operation is complete;
determining a second timeout value associated with the device, wherein the second timeout value corresponds to a second amount of time allotted for the device to be designated as idle before the device is suspended;
designating, by the processor, the device as idle when the operation is pending in the communication channel for longer than the first amount of time and when the operation is not complete;
determining, by the processor, whether the device is idle for longer than the second amount of time, wherein the second amount of time begins when the device is designated as idle; and
issuing, by the processor, a command to the device when the device has been idle for the second amount of time, wherein the command is configured to suspend the device.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for suspending an idle device includes receiving, by a processor, an indication that a device having a communication channel is connected to a host device. The method then includes determining a first timeout value associated with the communication channel and a second timeout value associated with the first device. The first timeout value corresponds to an amount of time allotted for an operation to complete in the communication channel, and the second timeout value corresponds to an amount of time allotted for the device to be designated as idle before the device is suspended. The device is determined to be idle when the operation is pending in the communication channel for an amount of time that is greater than the first timeout value. The device is suspended when the device has been idle for an amount of time that is greater than the second timeout value.
19 Citations
20 Claims
-
1. A method, comprising:
-
receiving, by a processor, an indication that a device having a communication channel is connected to a host device; determining, by the processor, a first timeout value associated with the communication channel, wherein the first timeout value corresponds to a first amount of time allotted for an operation to be pending in the communication channel, wherein the operation is pending while the operation is being performed using the communication channel until the operation is complete; determining a second timeout value associated with the device, wherein the second timeout value corresponds to a second amount of time allotted for the device to be designated as idle before the device is suspended; designating, by the processor, the device as idle when the operation is pending in the communication channel for longer than the first amount of time and when the operation is not complete; determining, by the processor, whether the device is idle for longer than the second amount of time, wherein the second amount of time begins when the device is designated as idle; and issuing, by the processor, a command to the device when the device has been idle for the second amount of time, wherein the command is configured to suspend the device. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
-
an external device having one or more communication channels; a host device coupled to the external device, wherein the host device comprises a processor configured to perform one or more operations using the external device via the one or more communication channels by; receiving an indication that the external device is connected to the host device; determining one or more first timeout values associated with the one or more communication channels, respectively, wherein each of the first timeout values corresponds to a first amount of time allotted for each respective operation to be pending in each respective communication channel, wherein each respective operation is pending while the respective operation is being performed using a respective communication channel until the respective operation is complete; determining a second timeout value associated with the external device, wherein the second timeout value corresponds to a second amount of time allotted for the external device to be designated as idle before the external device is suspended; determining whether any of the operations using the communication channels are pending; if at least one of the operations is pending, designating the external device as idle when the at least one of the operations is pending in its respective communication channel for longer than the first amount of time and when the operation is not complete; and suspending the external device when the external device has been idle for longer than the second amount of time, wherein the second amount of time begins when the external device is designated as idle. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. An electronic device comprising:
a processor configured to manage power being consumed by an external device coupled to the electronic device by; receiving an indication that the external device having a plurality of communication channels is connected to the electronic device; retrieving a plurality of first timeout values from a plurality of drivers associated with the plurality of communication channels, wherein each first timeout value of the plurality of first timeout values corresponds to a first amount of time allotted for a respective operation to be pending in a respective communication channel, wherein the respective operation is pending while the respective operation is being performed using the respective communication channel until the respective operation is complete; retrieving a plurality of second timeout values associated with the device from the plurality of drivers, wherein each second timeout value of the plurality of second timeout values corresponds to a second amount of time allotted for the external device to be designated as idle before the device is suspended; determining that the external device is idle when the respective operation is pending in the respective communication channel for longer than the respective first amount of time and when the operation is not complete; determining a maximum second timeout value in the plurality of second timeout values; and suspending the external device when the external device has been idle for a third amount of time that is greater than the maximum second timeout value, wherein the third amount of time begins when the external device is designated as idle. - View Dependent Claims (19, 20)
Specification