Input: document that unregistering managed devices is not necessary

Apparently some users of managed input devices are confused whether
input_unregister_device() is needed when working with them. Clarify
this in the kernel doc for devm_input_allocate_device(): in most cases
there is no need to call neither input_unregister_device() nor
input_free_device() when working with managed devices.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Changed files
+14 -2
drivers
input
+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 {