1. A data processing system comprising: a processing unit; at least one bus coupled to the processing unit; at least one subsystem coupled to the at least one bus; a power controller coupled to the processing unit and to the at least one subsystem, the power controller being configured to reduce power consumed by the at least one subsystem in response to a first state of an instruction queue in memory for the at least one subsystem, the instruction queue being accessible to a software driver for the at least one subsystem which communicates the status of the first state to the processing unit which in response reduces power, through the power controller, to the at least one subsystem, and wherein the first state represents an instruction queue having only instructions for future events or actions.