static int p61_remove(struct spi_device *spi) { struct p61_dev *p61_dev = p61_get_data(spi); P61_DBG_MSG("Entry : %s\n", __FUNCTION__); #ifdef P61_HARD_RESET if (p61_regulator != NULL) { regulator_disable(p61_regulator); regulator_put(p61_regulator); } else { P61_ERR_MSG("ERROR %s p61_regulator not enabled \n", __FUNCTION__); } #endif gpio_free(p61_dev->rst_gpio); #ifdef P61_IRQ_ENABLE free_irq(p61_dev->spi->irq, p61_dev); gpio_free(p61_dev->irq_gpio); #endif mutex_destroy(&p61_dev->read_mutex); misc_deregister(&p61_dev->p61_device); if(p61_dev != NULL) kfree(p61_dev); P61_DBG_MSG("Exit : %s\n", __FUNCTION__); return 0; }
static int __devexit p61_remove(struct spi_device *spi) { struct p61_dev *p61_dev = p61_get_data(spi); NFC_DBG_MSG("Entry : %s\n", __FUNCTION__); NFC_DBG_MSG(KERN_INFO " %s :: name : %s ", __FUNCTION__, p61_dev ->p61_device.name ); free_irq(p61_dev->spi->irq, p61_dev); mutex_destroy(&p61_dev->read_mutex); misc_deregister(&p61_dev->p61_device); gpio_free(P61_IRQ); gpio_free(P61_RST); if(p61_dev != NULL) kfree(p61_dev); NFC_DBG_MSG("Exit : %s\n", __FUNCTION__); return 0; }