Back to home page

OSCL-LXR

 
 

    


0001 /**************************************************************************
0002  * Copyright (c) 2009-2011, Intel Corporation.
0003  * All Rights Reserved.
0004 
0005  * Permission is hereby granted, free of charge, to any person obtaining a
0006  * copy of this software and associated documentation files (the "Software"),
0007  * to deal in the Software without restriction, including without limitation
0008  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
0009  * and/or sell copies of the Software, and to permit persons to whom the
0010  * Software is furnished to do so, subject to the following conditions:
0011  *
0012  * The above copyright notice and this permission notice (including the next
0013  * paragraph) shall be included in all copies or substantial portions of the
0014  * Software.
0015  *
0016  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0017  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0018  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
0019  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
0020  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
0021  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
0022  * SOFTWARE.
0023  *
0024  * Authors:
0025  *    Benjamin Defnet <benjamin.r.defnet@intel.com>
0026  *    Rajesh Poornachandran <rajesh.poornachandran@intel.com>
0027  * Massively reworked
0028  *    Alan Cox <alan@linux.intel.com>
0029  */
0030 #ifndef _PSB_POWERMGMT_H_
0031 #define _PSB_POWERMGMT_H_
0032 
0033 #include <linux/pci.h>
0034 
0035 struct device;
0036 struct drm_device;
0037 
0038 void gma_power_init(struct drm_device *dev);
0039 void gma_power_uninit(struct drm_device *dev);
0040 
0041 /*
0042  * The kernel bus power management  will call these functions
0043  */
0044 int gma_power_suspend(struct device *dev);
0045 int gma_power_resume(struct device *dev);
0046 int gma_power_thaw(struct device *dev);
0047 int gma_power_freeze(struct device *dev);
0048 int gma_power_restore(struct device *_dev);
0049 
0050 /*
0051  * These are the functions the driver should use to wrap all hw access
0052  * (i.e. register reads and writes)
0053  */
0054 bool gma_power_begin(struct drm_device *dev, bool force);
0055 void gma_power_end(struct drm_device *dev);
0056 
0057 /*
0058  * Use this function to do an instantaneous check for if the hw is on.
0059  * Only use this in cases where you know the mutex is already held such
0060  * as in irq install/uninstall and you need to
0061  * prevent a deadlock situation.  Otherwise use gma_power_begin().
0062  */
0063 bool gma_power_is_on(struct drm_device *dev);
0064 
0065 /*
0066  * GFX-Runtime PM callbacks
0067  */
0068 int psb_runtime_suspend(struct device *dev);
0069 int psb_runtime_resume(struct device *dev);
0070 int psb_runtime_idle(struct device *dev);
0071 
0072 #endif /*_PSB_POWERMGMT_H_*/