summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_mem.c
diff options
context:
space:
mode:
authorDave Airlie2008-11-28 05:22:24 +0100
committerDave Airlie2008-12-29 08:47:22 +0100
commit7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a (patch)
tree1b5debcc86ff20bd5e11b42ea5c52da42214e376 /drivers/gpu/drm/i915/i915_mem.c
parentdrm: cleanup exit path for module unload (diff)
downloadkernel-qcow2-linux-7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a.tar.gz
kernel-qcow2-linux-7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a.tar.xz
kernel-qcow2-linux-7c1c2871a6a3a114853ec6836e9035ac1c0c7f7a.zip
drm: move to kref per-master structures.
This is step one towards having multiple masters sharing a drm device in order to get fast-user-switching to work. It splits out the information associated with the drm master into a separate kref counted structure, and allocates this when a master opens the device node. It also allows the current master to abdicate (say while VT switched), and a new master to take over the hardware. It moves the Intel and radeon drivers to using the sarea from within the new master structures. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_mem.c')
-rw-r--r--drivers/gpu/drm/i915/i915_mem.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_mem.c b/drivers/gpu/drm/i915/i915_mem.c
index 6126a60dc9cb..96e271986d2a 100644
--- a/drivers/gpu/drm/i915/i915_mem.c
+++ b/drivers/gpu/drm/i915/i915_mem.c
@@ -46,7 +46,8 @@
static void mark_block(struct drm_device * dev, struct mem_block *p, int in_use)
{
drm_i915_private_t *dev_priv = dev->dev_private;
- drm_i915_sarea_t *sarea_priv = dev_priv->sarea_priv;
+ struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
+ drm_i915_sarea_t *sarea_priv = master_priv->sarea_priv;
struct drm_tex_region *list;
unsigned shift, nr;
unsigned start;