示例#1
0
void
nv50_graph_takedown(struct drm_device *dev)
{
	NV_DEBUG(dev, "\n");
	nv_wr32(dev, 0x40013c, 0x00000000);
	nouveau_irq_unregister(dev, 12);
}
示例#2
0
void
nv50_irq_user_fini(struct drm_device *dev)
{
	struct drm_nouveau_private *dev_priv = dev->dev_private;
	struct nouveau_user_irq_engine *user_irq = &dev_priv->engine.user_irq;
	struct nouveau_user_irq_handler *handler = &user_irq->handler[0];

	handler->service_routine = NULL;

	nv_wr32(dev, 0x1140, 0x0);
	nouveau_irq_unregister(dev, 28);
	nv_mask(dev, 0x1100, 0x04000000, 0x04000000);
}
static void
nvc0_fb_destroy(struct drm_device *dev)
{
	struct drm_nouveau_private *dev_priv = dev->dev_private;
	struct nouveau_fb_engine *pfb = &dev_priv->engine.fb;
	struct nvc0_fb_priv *priv = pfb->priv;

	nouveau_irq_unregister(dev, 25);

	if (priv->r100c10_page) {
		pci_unmap_page(dev->pdev, priv->r100c10, PAGE_SIZE,
			       PCI_DMA_BIDIRECTIONAL);
		__free_page(priv->r100c10_page);
	}

	kfree(priv);
	pfb->priv = NULL;
}