static void key_rc5t620_remove(struct device_t * dev) { struct input_t * input = (struct input_t *)dev->priv; struct key_rc5t620_pdata_t * pdat = (struct key_rc5t620_pdata_t *)input->priv; if(input && unregister_input(input)) { free_irq(pdat->irq); i2c_device_free(pdat->dev); free_device_name(input->name); free(input->priv); free(input); } }
static void rotary_encoder_remove(struct device_t * dev) { struct input_t * input = (struct input_t *)dev->priv; struct rotary_encoder_pdata_t * pdat = (struct rotary_encoder_pdata_t *)input->priv; if(input && unregister_input(input)) { free_irq(pdat->irqa); free_irq(pdat->irqb); if(gpio_is_valid(pdat->c) && irq_is_valid(pdat->irqc)) free_irq(pdat->irqc); free_device_name(input->name); free(input->priv); free(input); } }
static bool_t realview_unregister_keyboard(struct resource_t * res) { struct input_t * input; char name[64]; snprintf(name, sizeof(name), "%s.%d", res->name, res->id); input = search_input(name); if(!input) return FALSE; if(!unregister_input(input)) return FALSE; free(input->name); free(input); return TRUE; }
static __exit void gpio_keypad_exit(void) { if(!unregister_input(&gpio_keypad)) LOG_E("failed to unregister input '%s'", gpio_keypad.name); }
static __exit void realview_mouse_exit(void) { if(!unregister_input(&realview_mouse)) LOG_E("failed to unregister input '%s'", realview_mouse.name); }
static __exit void realview_keyboard_exit(void) { if(!unregister_input(&realview_keyboard)) LOG_E("failed to unregister input '%s'", realview_keyboard.name); }
static __exit void gpio_button_exit(void) { if(!unregister_input(&gpio_button)) LOG_E("failed to unregister input '%s'", gpio_button.name); }