+14
-2
drivers/input/input.c
+14
-2
drivers/input/input.c
···
1785
1785
* its driver (or binding fails). Once managed input device is allocated,
1786
1786
* it is ready to be set up and registered in the same fashion as regular
1787
1787
* input device. There are no special devm_input_device_[un]register()
1788
-
* variants, regular ones work with both managed and unmanaged devices.
1788
+
* variants, regular ones work with both managed and unmanaged devices,
1789
+
* should you need them. In most cases however, managed input device need
1790
+
* not be explicitly unregistered or freed.
1789
1791
*
1790
1792
* NOTE: the owner device is set up as parent of input device and users
1791
1793
* should not override it.
1792
1794
*/
1793
-
1794
1795
struct input_dev *devm_input_allocate_device(struct device *dev)
1795
1796
{
1796
1797
struct input_dev *input;
···
2005
2004
* Once device has been successfully registered it can be unregistered
2006
2005
* with input_unregister_device(); input_free_device() should not be
2007
2006
* called in this case.
2007
+
*
2008
+
* Note that this function is also used to register managed input devices
2009
+
* (ones allocated with devm_input_allocate_device()). Such managed input
2010
+
* devices need not be explicitly unregistered or freed, their tear down
2011
+
* is controlled by the devres infrastructure. It is also worth noting
2012
+
* that tear down of managed input devices is internally a 2-step process:
2013
+
* registered managed input device is first unregistered, but stays in
2014
+
* memory and can still handle input_event() calls (although events will
2015
+
* not be delivered anywhere). The freeing of managed input device will
2016
+
* happen later, when devres stack is unwound to the point where device
2017
+
* allocation was made.
2008
2018
*/
2009
2019
int input_register_device(struct input_dev *dev)
2010
2020
{