static void hampshire_disconnect(struct serio *serio) { struct hampshire *phampshire = serio_get_drvdata(serio); input_get_device(phampshire->dev); input_unregister_device(phampshire->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(phampshire->dev); kfree(phampshire); }
static void devm_input_polldev_release(struct device *dev, void *res) { struct input_polled_devres *devres = res; struct input_polled_dev *polldev = devres->polldev; dev_dbg(dev, "%s: dropping reference/freeing %s\n", __func__, dev_name(&polldev->input->dev)); input_put_device(polldev->input); kfree(polldev); }
static void touchit213_disconnect(struct serio *serio) { struct touchit213 *touchit213 = serio_get_drvdata(serio); input_get_device(touchit213->dev); input_unregister_device(touchit213->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(touchit213->dev); kfree(touchit213); }
/* * fujitsu_disconnect() is the opposite of fujitsu_connect() */ static void fujitsu_disconnect(struct serio *serio) { struct fujitsu *fujitsu = serio_get_drvdata(serio); input_get_device(fujitsu->dev); input_unregister_device(fujitsu->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(fujitsu->dev); kfree(fujitsu); }
static void inexio_disconnect(struct serio *serio) { struct inexio* pinexio = serio_get_drvdata(serio); input_get_device(pinexio->dev); input_unregister_device(pinexio->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(pinexio->dev); kfree(pinexio); }
static void elo_disconnect(struct serio *serio) { struct elo *elo = serio_get_drvdata(serio); input_get_device(elo->dev); input_unregister_device(elo->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(elo->dev); kfree(elo); }
static void dynapro_disconnect(struct serio *serio) { struct dynapro *pdynapro = serio_get_drvdata(serio); input_get_device(pdynapro->dev); input_unregister_device(pdynapro->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(pdynapro->dev); kfree(pdynapro); }
static void tw_disconnect(struct serio *serio) { struct tw *tw = serio_get_drvdata(serio); input_get_device(tw->dev); input_unregister_device(tw->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(tw->dev); kfree(tw); }
static void gunze_disconnect(struct serio *serio) { struct gunze *gunze = serio_get_drvdata(serio); input_get_device(gunze->dev); input_unregister_device(gunze->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(gunze->dev); kfree(gunze); }
static void mtouch_disconnect(struct serio *serio) { struct mtouch* mtouch = serio_get_drvdata(serio); input_get_device(mtouch->dev); input_unregister_device(mtouch->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(mtouch->dev); kfree(mtouch); }
/* * lkkbd_disconnect() unregisters and closes behind us. */ static void lkkbd_disconnect(struct serio *serio) { struct lkkbd *lk = serio_get_drvdata(serio); input_get_device(lk->dev); input_unregister_device(lk->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(lk->dev); kfree(lk); }
static void pm_disconnect(struct serio *serio) { struct pm *pm = serio_get_drvdata(serio); input_get_device(pm->dev); input_unregister_device(pm->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(pm->dev); kfree(pm); }
/** * input_free_polled_device - free memory allocated for polled device * @dev: device to free * * The function frees memory allocated for polling device and drops * reference to the associated input device. */ void input_free_polled_device(struct input_polled_dev *dev) { if (dev) { if (dev->devres_managed) WARN_ON(devres_destroy(dev->input->dev.parent, devm_input_polldev_release, devm_input_polldev_match, dev)); input_put_device(dev->input); kfree(dev); } }
static void h3600ts_disconnect(struct serio *serio) { struct h3600_dev *ts = serio_get_drvdata(serio); free_irq(IRQ_GPIO_BITSY_ACTION_BUTTON, &ts->dev); free_irq(IRQ_GPIO_BITSY_NPOWER_BUTTON, &ts->dev); input_get_device(ts->dev); input_unregister_device(ts->dev); serio_close(serio); serio_set_drvdata(serio, NULL); input_put_device(ts->dev); kfree(ts); }