void nv50_graph_takedown(struct drm_device *dev) { NV_DEBUG(dev, "\n"); nv_wr32(dev, 0x40013c, 0x00000000); nouveau_irq_unregister(dev, 12); }
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; }