summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-core/Makefile.kernel2
-rw-r--r--linux-core/drmP.h4
-rw-r--r--linux-core/drm_drv.c8
-rw-r--r--linux-core/drm_pm.c152
-rw-r--r--linux-core/drm_stub.c4
-rw-r--r--linux-core/i915_drv.c1
-rw-r--r--shared-core/i915_pm.c26
7 files changed, 1 insertions, 196 deletions
diff --git a/linux-core/Makefile.kernel b/linux-core/Makefile.kernel
index bced069b..36cd2e3d 100644
--- a/linux-core/Makefile.kernel
+++ b/linux-core/Makefile.kernel
@@ -10,7 +10,7 @@
drm-objs := drm_auth.o drm_bufs.o drm_context.o drm_dma.o drm_drawable.o \
drm_drv.o drm_fops.o drm_ioctl.o drm_irq.o \
drm_lock.o drm_memory.o drm_proc.o drm_stub.o drm_vm.o \
- drm_sysfs.o drm_pci.o drm_pm.o drm_agpsupport.o drm_scatter.o \
+ drm_sysfs.o drm_pci.o drm_agpsupport.o drm_scatter.o \
drm_memory_debug.o ati_pcigart.o
tdfx-objs := tdfx_drv.o
r128-objs := r128_drv.o r128_cce.o r128_state.o r128_irq.o
diff --git a/linux-core/drmP.h b/linux-core/drmP.h
index f38c57d4..ff2af8cf 100644
--- a/linux-core/drmP.h
+++ b/linux-core/drmP.h
@@ -80,7 +80,6 @@
#endif
#include <linux/poll.h>
#include <asm/pgalloc.h>
-#include <linux/sysdev.h>
#include "drm.h"
#define __OS_HAS_AGP (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && defined(MODULE)))
@@ -542,7 +541,6 @@ struct drm_driver {
int new);
int (*kernel_context_switch_unlock) (struct drm_device * dev);
int (*vblank_wait) (struct drm_device * dev, unsigned int *sequence);
- int (*power) (struct drm_device * dev, unsigned int state);
/**
* Called by \c drm_device_is_agp. Typically used to determine if a
@@ -722,8 +720,6 @@ typedef struct drm_device {
struct drm_driver *driver;
drm_local_map_t *agp_buffer_map;
drm_head_t primary; /**< primary screen head */
-
- struct sys_device sysdev; /**< Power Management device structure */
} drm_device_t;
static __inline__ int drm_core_check_feature(struct drm_device *dev,
diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c
index f981631b..6ed5ce1e 100644
--- a/linux-core/drm_drv.c
+++ b/linux-core/drm_drv.c
@@ -268,9 +268,6 @@ int drm_takedown(drm_device_t * dev)
if (drm_core_check_feature(dev, DRIVER_HAVE_DMA))
drm_dma_takedown(dev);
- if (drm_fb_loaded)
- drm_pm_takedown(dev);
-
if (dev->lock.hw_lock) {
dev->sigdata.lock = dev->lock.hw_lock = NULL; /* SHM removed */
dev->lock.filp = NULL;
@@ -339,9 +336,6 @@ int drm_init(struct drm_driver *driver,
if (!drm_fb_loaded)
pci_register_driver(&driver->pci_driver);
else {
- if ((rc = drm_pm_init()))
- return rc;
-
for (i = 0; pciidlist[i].vendor != 0; i++) {
pid = &pciidlist[i];
@@ -355,7 +349,6 @@ int drm_init(struct drm_driver *driver,
pci_dev_get(pdev);
if ((rc = drm_get_dev(pdev, &pciidlist[i], driver))) {
pci_dev_put(pdev);
- drm_pm_exit();
return rc;
}
}
@@ -542,7 +535,6 @@ static void __exit drm_core_exit(void)
unregister_chrdev(DRM_MAJOR, "drm");
drm_free(drm_heads, sizeof(*drm_heads) * cards_limit, DRM_MEM_STUB);
- drm_pm_exit();
}
module_init(drm_core_init);
diff --git a/linux-core/drm_pm.c b/linux-core/drm_pm.c
deleted file mode 100644
index 1e93e1da..00000000
--- a/linux-core/drm_pm.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * \file drm_pm.h
- * Power management support
- *
- * \author José Fonseca <jrfonseca@tungstengraphics.com>
- */
-
-/*
- * Copyright 2004 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-#define __NO_VERSION__
-#include "drmP.h"
-
-#include <linux/device.h>
-#include <linux/sysdev.h>
-
-
-static int drm_suspend(struct sys_device *sysdev, u32 state)
-{
- struct drm_device *dev =
- container_of(sysdev, struct drm_device, sysdev);
-
- DRM_DEBUG("state=%d\n", state);
-
- if (dev->driver->power)
- return dev->driver->power(dev, state);
- else
- return 0;
-}
-
-static int drm_resume(struct sys_device *sysdev)
-{
- struct drm_device *dev =
- container_of(sysdev, struct drm_device, sysdev);
-
- DRM_DEBUG("\n");
-
- if (dev->driver->power)
- return dev->driver->power(dev, 0);
- else
- return 0;
-}
-
-static int shutdown(struct sys_device *sysdev)
-{
- return 0;
-}
-
-static atomic_t sysdev_loaded = ATOMIC_INIT(-1);
-static struct sysdev_class drm_sysdev_class = {
- set_kset_name("drm"),
- .resume = drm_resume,
- .suspend = drm_suspend,
- .shutdown = shutdown,
-};
-
-
-/**
- * Initialize the Power Management data.
- *
- * \param dev DRM device.
- * \return zero on success or a negative value on failure.
- */
-int drm_pm_setup(drm_device_t *dev)
-{
- int rc;
-
- if (atomic_read(&sysdev_loaded) == -1)
- return 0;
-
- DRM_DEBUG("\n");
-
- dev->sysdev.id = dev->primary.minor;
- dev->sysdev.cls = &drm_sysdev_class;
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,4)
- rc = sys_device_register(&dev->sysdev);
-#else
- rc = sysdev_register(&dev->sysdev);
-#endif
- return rc;
-}
-
-/**
- * Cleanup the Power Management resources.
- *
- * \param dev DRM device.
- */
-void drm_pm_takedown(drm_device_t *dev)
-{
- if (atomic_read(&sysdev_loaded) == -1)
- return;
-
- DRM_DEBUG("\n");
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,4)
- sys_device_unregister(&dev->sysdev);
-#else
- sysdev_unregister(&dev->sysdev);
-#endif
-}
-
-int drm_pm_init(void)
-{
- int rc;
- DRM_DEBUG("\n");
-
- /* triggers on -1 to 0 transition */
- if (!atomic_inc_and_test(&sysdev_loaded))
- return 0;
-
- if ((rc = sysdev_class_register(&drm_sysdev_class))) {
- /* reset it back to -1 */
- atomic_dec(&sysdev_loaded);
- } else {
- /* inc it up to 1 so that unload will trigger on 1->0 */
- atomic_inc(&sysdev_loaded);
- DRM_DEBUG("registered\n");
- }
- return rc;
-}
-
-void __exit drm_pm_exit(void)
-{
- DRM_DEBUG("\n");
- /* triggers on the 1 to 0 transistion */
- if (atomic_dec_and_test(&sysdev_loaded)) {
- sysdev_class_unregister(&drm_sysdev_class);
- DRM_DEBUG("unregisted\n");
- }
-}
diff --git a/linux-core/drm_stub.c b/linux-core/drm_stub.c
index d7baeb84..7d0e075a 100644
--- a/linux-core/drm_stub.c
+++ b/linux-core/drm_stub.c
@@ -94,10 +94,6 @@ static int fill_in_dev(drm_device_t * dev, struct pci_dev *pdev,
dev->driver = driver;
- if (drm_fb_loaded)
- if ((retcode = drm_pm_setup( dev )))
- goto error_out_unreg;
-
if (dev->driver->preinit)
if ((retcode = dev->driver->preinit(dev, ent->driver_data)))
goto error_out_unreg;
diff --git a/linux-core/i915_drv.c b/linux-core/i915_drv.c
index 28154c8c..de6780ec 100644
--- a/linux-core/i915_drv.c
+++ b/linux-core/i915_drv.c
@@ -90,7 +90,6 @@ static struct drm_driver driver = {
.postinit = postinit,
.version = version,
.ioctls = i915_ioctls,
- .power = i915_power,
.fops = {
.owner = THIS_MODULE,
.open = drm_open,
diff --git a/shared-core/i915_pm.c b/shared-core/i915_pm.c
index d2914aa4..e4bda0ce 100644
--- a/shared-core/i915_pm.c
+++ b/shared-core/i915_pm.c
@@ -165,29 +165,3 @@ int i915_resume( struct pci_dev *pdev )
return 0;
}
-
-int i915_power( drm_device_t *dev, unsigned int state )
-{
- drm_i915_private_t *dev_priv =
- (drm_i915_private_t *)dev->dev_private;
-
- DRM_DEBUG("%s state=%d\n", __FUNCTION__, state);
-
- if (!dev_priv) return 0;
-
- /* Save state for power up later */
- if (state != 0) {
- I915_WRITE( SRX_INDEX, SR01 );
- dev_priv->sr01 = I915_READ( SRX_DATA );
- dev_priv->dvoc = I915_READ( DVOC );
- dev_priv->dvob = I915_READ( DVOB );
- dev_priv->lvds = I915_READ( LVDS );
- dev_priv->adpa = I915_READ( ADPA );
- dev_priv->ppcr = I915_READ( PPCR );
- }
-
- /* D0: set DPMS mode on */
- i915_set_dpms(dev, state);
-
- return 0;
-}