static int retu_headset_remove(struct platform_device *pdev) { struct retu_headset *hs = platform_get_drvdata(pdev); device_remove_file(&pdev->dev, &dev_attr_hookdet); device_remove_file(&pdev->dev, &dev_attr_enable); device_remove_file(&pdev->dev, &dev_attr_enable_det); retu_headset_disable(hs); retu_headset_det_disable(hs); retu_free_irq(RETU_INT_HOOK); input_unregister_device(hs->idev); input_free_device(hs->idev); return 0; }
/** * Cleanup function which is called when driver is unloaded */ static void __exit retubutton_exit(void) { retu_free_irq(RETU_INT_PWR); del_timer_sync(&pwrbtn_timer); input_unregister_device(pwrbtn_dev); }