diff options
-rw-r--r-- | linux-core/drm_pm.c | 13 | ||||
-rw-r--r-- | shared-core/i915_pm.c | 38 |
2 files changed, 39 insertions, 12 deletions
diff --git a/linux-core/drm_pm.c b/linux-core/drm_pm.c index 1e93e1da..844266ac 100644 --- a/linux-core/drm_pm.c +++ b/linux-core/drm_pm.c @@ -36,15 +36,24 @@ #include <linux/sysdev.h> +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) static int drm_suspend(struct sys_device *sysdev, u32 state) +#else +static int drm_suspend(struct sys_device *sysdev, pm_message_t state) +#endif { struct drm_device *dev = container_of(sysdev, struct drm_device, sysdev); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) + int event = state.event; +#else + int event = state; +#endif - DRM_DEBUG("state=%d\n", state); + DRM_DEBUG("event=%d\n", event); if (dev->driver->power) - return dev->driver->power(dev, state); + return dev->driver->power(dev, event); else return 0; } diff --git a/shared-core/i915_pm.c b/shared-core/i915_pm.c index b1a152e0..93ad555d 100644 --- a/shared-core/i915_pm.c +++ b/shared-core/i915_pm.c @@ -113,18 +113,27 @@ static int i915_set_dpms(drm_device_t *dev, int mode) return 0; } -int i915_suspend( struct pci_dev *pdev, unsigned state ) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) +int i915_suspend(struct pci_dev *pdev, pm_message_t state) +#else +int i915_suspend(struct pci_dev *pdev, u32 state) +#endif { drm_device_t *dev = (drm_device_t *)pci_get_drvdata(pdev); drm_i915_private_t *dev_priv = (drm_i915_private_t *)dev->dev_private; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) + int event = state.event; +#else + int event = state; +#endif - DRM_DEBUG("%s state=%d\n", __FUNCTION__, state); + DRM_DEBUG("%s event=%d\n", __FUNCTION__, event); - if (!dev_priv) return; + if (!dev_priv) return 0; /* Save state for power up later */ - if (state != 0) { + if (event != 0) { I915_WRITE( SRX_INDEX, SR01 ); dev_priv->sr01 = I915_READ( SRX_DATA ); dev_priv->dvoc = I915_READ( DVOC ); @@ -134,7 +143,7 @@ int i915_suspend( struct pci_dev *pdev, unsigned state ) dev_priv->ppcr = I915_READ( PPCR ); } - switch(state) { + switch(event) { case 0: /* D0: set DPMS mode on */ i915_set_dpms(dev, 0); @@ -166,17 +175,26 @@ int i915_resume( struct pci_dev *pdev ) return 0; } -int i915_power( drm_device_t *dev, unsigned int state ) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) +int i915_power( drm_device_t *dev, pm_message_t state) +#else +int i915_power( drm_device_t *dev, u32 state) +#endif { drm_i915_private_t *dev_priv = (drm_i915_private_t *)dev->dev_private; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) + int event = state.event; +#else + int event = state; +#endif - DRM_DEBUG("%s state=%d\n", __FUNCTION__, state); + DRM_DEBUG("%s event=%d\n", __FUNCTION__, event); - if (!dev_priv) return; + if (!dev_priv) return 0; /* Save state for power up later */ - if (state != 0) { + if (event != 0) { I915_WRITE( SRX_INDEX, SR01 ); dev_priv->sr01 = I915_READ( SRX_DATA ); dev_priv->dvoc = I915_READ( DVOC ); @@ -187,7 +205,7 @@ int i915_power( drm_device_t *dev, unsigned int state ) } /* D0: set DPMS mode on */ - i915_set_dpms(dev, state); + i915_set_dpms(dev, event); return 0; } |