void _nouveau_therm_dtor(struct nouveau_object *object) { struct nouveau_therm_priv *priv = (void *)object; kfree(priv->fan); nouveau_subdev_destroy(&priv->base.base); }
void _nouveau_gpio_dtor(struct nouveau_object *object) { struct nouveau_gpio *gpio = (void *)object; nouveau_event_destroy(&gpio->events); nouveau_subdev_destroy(&gpio->base); }
void nouveau_bar_destroy(struct nouveau_bar *bar) { if (bar->iomem) iounmap(bar->iomem); nouveau_subdev_destroy(&bar->base); }
void _nouveau_mc_dtor(struct nouveau_object *object) { struct nouveau_device *device = nv_device(object); struct nouveau_mc *pmc = (void *)object; free_irq(device->pdev->irq, pmc); nouveau_subdev_destroy(&pmc->base); }
void _nouveau_devinit_dtor(struct nouveau_object *object) { struct nouveau_devinit *devinit = (void *)object; /* lock crtc regs */ nv_lockvgac(devinit, true); nouveau_subdev_destroy(&devinit->base); }
void _nouveau_fb_dtor(struct nouveau_object *object) { struct nouveau_fb *pfb = (void *)object; int i; for (i = 0; i < pfb->tile.regions; i++) pfb->tile.fini(pfb, i, &pfb->tile.region[i]); nouveau_mm_fini(&pfb->tags); nouveau_mm_fini(&pfb->vram); nouveau_object_ref(NULL, (struct nouveau_object **)&pfb->ram); nouveau_subdev_destroy(&pfb->base); }
void nouveau_fb_destroy(struct nouveau_fb *pfb) { int i; for (i = 0; i < pfb->tile.regions; i++) pfb->tile.fini(pfb, i, &pfb->tile.region[i]); if (pfb->tags.block_size) nouveau_mm_fini(&pfb->tags); if (pfb->vram.block_size) nouveau_mm_fini(&pfb->vram); nouveau_subdev_destroy(&pfb->base); }
void _nouveau_mc_dtor(struct nouveau_object *object) { struct nouveau_device *device = nv_device(object); struct nouveau_mc *pmc = (void *)object; #if defined(__NetBSD__) if (nv_device_is_pci(device)) { pci_intr_disestablish(device->pdev->pd_pa.pa_pc, pmc->irq_cookie); #if defined(__arm__) } else { intr_disestablish(pmc->irq_cookie); #endif } #else free_irq(pmc->irq, pmc); #endif if (pmc->use_msi) pci_disable_msi(device->pdev); nouveau_subdev_destroy(&pmc->base); }
void _nouveau_volt_dtor(struct nouveau_object *object) { struct nouveau_volt *volt = (void *)object; nouveau_subdev_destroy(&volt->base); }
void _nouveau_subdev_dtor(struct nouveau_object *object) { nouveau_subdev_destroy(nv_subdev(object)); }