static int mmci_remove(struct amba_device *dev) { struct mmc_host *mmc = amba_get_drvdata(dev); amba_set_drvdata(dev, NULL); if (mmc) { struct mmci_host *host = mmc_priv(mmc); del_timer_sync(&host->timer); mmc_remove_host(mmc); writel(0, host->base + MMCIMASK0); writel(0, host->base + MMCIMASK1); writel(0, host->base + MMCICOMMAND); writel(0, host->base + MMCIDATACTRL); free_irq(dev->irq[0], host); free_irq(dev->irq[1], host); iounmap(host->base); clk_disable(host->clk); clk_put(host->clk); mmc_free_host(mmc); amba_release_regions(dev); } return 0; }
static int amba_kmi_resume(struct amba_device *dev) { struct amba_kmi_port *kmi = amba_get_drvdata(dev); /* kick the serio layer to rescan this port */ serio_reconnect(kmi->io); return 0; }
static int amba_kmi_resume(struct amba_device *dev) { struct amba_kmi_port *kmi = amba_get_drvdata(dev); serio_reconnect(kmi->io); return 0; }
static int pl010_suspend(struct amba_device *dev, pm_message_t state) { struct uart_amba_port *uap = amba_get_drvdata(dev); if (uap) uart_suspend_port(&amba_reg, &uap->port); return 0; }
static int pl010_resume(struct amba_device *dev) { struct uart_amba_port *uap = amba_get_drvdata(dev); if (uap) uart_resume_port(&amba_reg, &uap->port); return 0; }
static int nmk_gpio_remove(struct amba_device *dev) { struct nmk_gpio_chip *nmk_chip; nmk_chip = amba_get_drvdata(dev); gpiochip_remove(&nmk_chip->chip); kfree(nmk_chip); amba_release_regions(dev); return 0; }
static int etm_remove(struct amba_device *adev) { struct etm_drvdata *drvdata = amba_get_drvdata(adev); coresight_unregister(drvdata->csdev); if (--etm_count == 0) unregister_hotcpu_notifier(&etm_cpu_notifier); return 0; }
static int pl010_remove(struct amba_device *dev) { struct uart_amba_port *uap = amba_get_drvdata(dev); if (uap) uart_remove_one_port(&amba_reg, &uap->port); amba_set_drvdata(dev, NULL); return 0; }
static int amba_kmi_remove(struct amba_device *dev) { struct amba_kmi_port *kmi = amba_get_drvdata(dev); serio_unregister_port(kmi->io); clk_put(kmi->clk); iounmap(kmi->base); kfree(kmi); amba_release_regions(dev); return 0; }
static int tmc_remove(struct amba_device *adev) { struct tmc_drvdata *drvdata = amba_get_drvdata(adev); misc_deregister(&drvdata->miscdev); coresight_unregister(drvdata->csdev); if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) dma_free_coherent(drvdata->dev, drvdata->size, &drvdata->paddr, GFP_KERNEL); return 0; }
static int pl030_remove(struct amba_device *dev) { struct pl030_rtc *rtc = amba_get_drvdata(dev); writel(0, rtc->base + RTC_CR); free_irq(dev->irq[0], rtc); iounmap(rtc->base); amba_release_regions(dev); return 0; }
static int pl111_amba_remove(struct amba_device *amba_dev) { struct drm_device *drm = amba_get_drvdata(amba_dev); struct pl111_drm_dev_private *priv = drm->dev_private; drm_dev_unregister(drm); if (priv->fbdev) drm_fbdev_cma_fini(priv->fbdev); drm_mode_config_cleanup(drm); drm_dev_unref(drm); return 0; }
static int mmci_resume(struct amba_device *dev) { struct mmc_host *mmc = amba_get_drvdata(dev); int ret = 0; if (mmc) { struct mmci_host *host = mmc_priv(mmc); writel(MCI_IRQENABLE, host->base + MMCIMASK0); ret = mmc_resume_host(mmc); } return ret; }
static int mmci_suspend(struct amba_device *dev, pm_message_t state) { struct mmc_host *mmc = amba_get_drvdata(dev); int ret = 0; if (mmc) { struct mmci_host *host = mmc_priv(mmc); ret = mmc_suspend_host(mmc, state); if (ret == 0) writel(0, host->base + MMCIMASK0); } return ret; }
static int etb_remove(struct amba_device *dev) { struct tracectx *t = amba_get_drvdata(dev); amba_set_drvdata(dev, NULL); iounmap(t->etb_regs); t->etb_regs = NULL; clk_disable(t->emu_clk); clk_put(t->emu_clk); amba_release_regions(dev); return 0; }
static int etm_remove(struct amba_device *dev) { struct tracectx *t = amba_get_drvdata(dev); amba_set_drvdata(dev, NULL); iounmap(t->etm_regs); t->etm_regs = NULL; amba_release_regions(dev); sysfs_remove_file(&dev->dev.kobj, &trace_running_attr.attr); sysfs_remove_file(&dev->dev.kobj, &trace_info_attr.attr); sysfs_remove_file(&dev->dev.kobj, &trace_mode_attr.attr); return 0; }
static int pl010_remove(struct amba_device *dev) { struct uart_amba_port *port = amba_get_drvdata(dev); int i; amba_set_drvdata(dev, NULL); uart_remove_one_port(&amba_reg, &port->port); for (i = 0; i < ARRAY_SIZE(amba_ports); i++) if (amba_ports[i] == port) amba_ports[i] = NULL; iounmap(port->port.membase); kfree(port); return 0; }
static int pl011_remove(struct amba_device *dev) { struct uart_amba_port *uap = amba_get_drvdata(dev); int i; amba_set_drvdata(dev, NULL); uart_remove_one_port(&amba_reg, &uap->port); for (i = 0; i < ARRAY_SIZE(amba_ports); i++) if (amba_ports[i] == uap) amba_ports[i] = NULL; iounmap(uap->port.membase); clk_put(uap->clk); kfree(uap); return 0; }
static int __devexit mmci_remove(struct amba_device *dev) { struct mmc_host *mmc = amba_get_drvdata(dev); amba_set_drvdata(dev, NULL); if (mmc) { struct mmci_host *host = mmc_priv(mmc); del_timer_sync(&host->timer); mmc_remove_host(mmc); writel(0, host->base + MMCIMASK0); writel(0, host->base + MMCIMASK1); writel(0, host->base + MMCICOMMAND); writel(0, host->base + MMCIDATACTRL); free_irq(dev->irq[0], host); free_irq(dev->irq[1], host); if (host->gpio_wp != -ENOSYS) gpio_free(host->gpio_wp); if (host->gpio_cd != -ENOSYS) gpio_free(host->gpio_cd); iounmap(host->base); clk_disable(host->clk); clk_put(host->clk); if (regulator_is_enabled(host->vcc)) regulator_disable(host->vcc); regulator_put(host->vcc); mmc_free_host(mmc); amba_release_regions(dev); } return 0; }