Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 119395
b: refs/heads/master
c: 5244021
h: refs/heads/master
i:
  119393: ed19629
  119391: f9a319e
v: v3
  • Loading branch information
Keith Packard authored and Dave Airlie committed Nov 24, 2008
1 parent 68a003d commit bf952dc
Show file tree
Hide file tree
Showing 16 changed files with 46 additions and 22 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6133047aa64d2fd5b3b79dff74f696ded45615b2
refs/heads/master: 52440211dcdc52c0b757f8b34d122e11b12cdd50
2 changes: 2 additions & 0 deletions trunk/drivers/gpu/drm/drm_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,8 @@ static void drm_cleanup(struct drm_device * dev)
return;
}

drm_vblank_cleanup(dev);

drm_lastclose(dev);

if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) &&
Expand Down
4 changes: 1 addition & 3 deletions trunk/drivers/gpu/drm/drm_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ static void vblank_disable_fn(unsigned long arg)
}
}

static void drm_vblank_cleanup(struct drm_device *dev)
void drm_vblank_cleanup(struct drm_device *dev)
{
/* Bail if the driver didn't call drm_vblank_init() */
if (dev->num_crtcs == 0)
Expand Down Expand Up @@ -278,8 +278,6 @@ int drm_irq_uninstall(struct drm_device * dev)

free_irq(dev->pdev->irq, dev);

drm_vblank_cleanup(dev);

return 0;
}
EXPORT_SYMBOL(drm_irq_uninstall);
Expand Down
7 changes: 7 additions & 0 deletions trunk/drivers/gpu/drm/i915/i915_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -856,6 +856,13 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)

spin_lock_init(&dev_priv->user_irq_lock);

ret = drm_vblank_init(dev, I915_NUM_PIPE);

if (ret) {
(void) i915_driver_unload(dev);
return ret;
}

return ret;
}

Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/gpu/drm/i915/i915_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ enum pipe {
PIPE_B,
};

#define I915_NUM_PIPE 2

/* Interface history:
*
* 1.1: Original.
Expand Down
5 changes: 0 additions & 5 deletions trunk/drivers/gpu/drm/i915/i915_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -498,11 +498,6 @@ void i915_driver_irq_preinstall(struct drm_device * dev)
int i915_driver_irq_postinstall(struct drm_device *dev)
{
drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
int ret, num_pipes = 2;

ret = drm_vblank_init(dev, num_pipes);
if (ret)
return ret;

dev_priv->vblank_pipe = DRM_I915_VBLANK_PIPE_A | DRM_I915_VBLANK_PIPE_B;

Expand Down
8 changes: 8 additions & 0 deletions trunk/drivers/gpu/drm/mga/mga_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,7 @@ int mga_freelist_put(struct drm_device * dev, struct drm_buf * buf)
int mga_driver_load(struct drm_device * dev, unsigned long flags)
{
drm_mga_private_t *dev_priv;
int ret;

dev_priv = drm_alloc(sizeof(drm_mga_private_t), DRM_MEM_DRIVER);
if (!dev_priv)
Expand All @@ -415,6 +416,13 @@ int mga_driver_load(struct drm_device * dev, unsigned long flags)
dev->types[7] = _DRM_STAT_PRIMARY;
dev->types[8] = _DRM_STAT_SECONDARY;

ret = drm_vblank_init(dev, 1);

if (ret) {
(void) mga_driver_unload(dev);
return ret;
}

return 0;
}

Expand Down
5 changes: 0 additions & 5 deletions trunk/drivers/gpu/drm/mga/mga_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,6 @@ void mga_driver_irq_preinstall(struct drm_device * dev)
int mga_driver_irq_postinstall(struct drm_device *dev)
{
drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private;
int ret;

ret = drm_vblank_init(dev, 1);
if (ret)
return ret;

DRM_INIT_WAITQUEUE(&dev_priv->fence_queue);

Expand Down
6 changes: 6 additions & 0 deletions trunk/drivers/gpu/drm/r128/r128_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ static struct drm_driver driver = {
DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_PCI_DMA | DRIVER_SG |
DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED,
.dev_priv_size = sizeof(drm_r128_buf_priv_t),
.load = r128_driver_load,
.preclose = r128_driver_preclose,
.lastclose = r128_driver_lastclose,
.get_vblank_counter = r128_get_vblank_counter,
Expand Down Expand Up @@ -84,6 +85,11 @@ static struct drm_driver driver = {
.patchlevel = DRIVER_PATCHLEVEL,
};

int r128_driver_load(struct drm_device * dev, unsigned long flags)
{
return drm_vblank_init(dev, 1);
}

static int __init r128_init(void)
{
driver.num_ioctls = r128_max_ioctl;
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/gpu/drm/r128/r128_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ extern void r128_driver_irq_preinstall(struct drm_device * dev);
extern int r128_driver_irq_postinstall(struct drm_device *dev);
extern void r128_driver_irq_uninstall(struct drm_device * dev);
extern void r128_driver_lastclose(struct drm_device * dev);
extern int r128_driver_load(struct drm_device * dev, unsigned long flags);
extern void r128_driver_preclose(struct drm_device * dev,
struct drm_file *file_priv);

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/gpu/drm/r128/r128_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ void r128_driver_irq_preinstall(struct drm_device * dev)

int r128_driver_irq_postinstall(struct drm_device *dev)
{
return drm_vblank_init(dev, 1);
return 0;
}

void r128_driver_irq_uninstall(struct drm_device * dev)
Expand Down
6 changes: 6 additions & 0 deletions trunk/drivers/gpu/drm/radeon/radeon_cp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1757,6 +1757,12 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
if (ret != 0)
return ret;

ret = drm_vblank_init(dev, 2);
if (ret) {
radeon_driver_unload(dev);
return ret;
}

DRM_DEBUG("%s card detected\n",
((dev_priv->flags & RADEON_IS_AGP) ? "AGP" : (((dev_priv->flags & RADEON_IS_PCIE) ? "PCIE" : "PCI"))));
return ret;
Expand Down
5 changes: 0 additions & 5 deletions trunk/drivers/gpu/drm/radeon/radeon_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -337,15 +337,10 @@ int radeon_driver_irq_postinstall(struct drm_device *dev)
{
drm_radeon_private_t *dev_priv =
(drm_radeon_private_t *) dev->dev_private;
int ret;

atomic_set(&dev_priv->swi_emitted, 0);
DRM_INIT_WAITQUEUE(&dev_priv->swi_queue);

ret = drm_vblank_init(dev, 2);
if (ret)
return ret;

dev->max_vblank_count = 0x001fffff;

radeon_irq_set_state(dev, RADEON_SW_INT_ENABLE, 1);
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/gpu/drm/via/via_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,6 @@ int via_driver_irq_postinstall(struct drm_device *dev)
if (!dev_priv)
return -EINVAL;

drm_vblank_init(dev, 1);
status = VIA_READ(VIA_REG_INTERRUPT);
VIA_WRITE(VIA_REG_INTERRUPT, status | VIA_IRQ_GLOBAL
| dev_priv->irq_enable_mask);
Expand Down
11 changes: 10 additions & 1 deletion trunk/drivers/gpu/drm/via/via_map.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,17 @@ int via_driver_load(struct drm_device *dev, unsigned long chipset)
ret = drm_sman_init(&dev_priv->sman, 2, 12, 8);
if (ret) {
drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER);
return ret;
}
return ret;

ret = drm_vblank_init(dev, 1);
if (ret) {
drm_sman_takedown(&dev_priv->sman);
drm_free(dev_priv, sizeof(drm_via_private_t), DRM_MEM_DRIVER);
return ret;
}

return 0;
}

int via_driver_unload(struct drm_device *dev)
Expand Down
1 change: 1 addition & 0 deletions trunk/include/drm/drmP.h
Original file line number Diff line number Diff line change
Expand Up @@ -1151,6 +1151,7 @@ extern u32 drm_vblank_count(struct drm_device *dev, int crtc);
extern void drm_handle_vblank(struct drm_device *dev, int crtc);
extern int drm_vblank_get(struct drm_device *dev, int crtc);
extern void drm_vblank_put(struct drm_device *dev, int crtc);
extern void drm_vblank_cleanup(struct drm_device *dev);
/* Modesetting support */
extern int drm_modeset_ctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
Expand Down

0 comments on commit bf952dc

Please sign in to comment.