static int a716_ssp_remove(struct platform_device *pdev) { del_timer_sync(&timer_pen); free_irq(IRQ_GPIO(GPIO_NR_A716_STYLUS_IRQ_N), NULL); ssp_exit(&a716_ssp_dev); input_unregister_device(idev); input_free_device(idev); return 0; }
static int ad_remove(struct platform_device *pdev) { struct ad7877_platform_data *pdata = pdev->dev.platform_data; struct ad7877 *ad = platform_get_drvdata(pdev); int i; for (i = 0; i < ARRAY_SIZE(acdevs); i++) adc_classdev_unregister(&acdevs[i]); free_irq(pdata->dav_irq, ad); downChip(ad); ssp_exit(&ad->ssp); kfree(ad); return 0; }
static void pxa3xx_ssp_shutdown(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; struct ssp_device *ssp = cpu_dai->private_data; u32 sscr0; if (!cpu_dai->active) { sscr0 = __raw_readl(ssp->mmio_base + SSCR0); sscr0 &= ~SSCR0_SSE; __raw_writel(sscr0, ssp->mmio_base + SSCR0); ssp_exit(ssp_dev+cpu_dai->id); } }