@ -1785,12 +1785,13 @@ static void devm_input_device_release(struct device *dev, void *res)
* its driver ( or binding fails ) . Once managed input device is allocated ,
* it is ready to be set up and registered in the same fashion as regular
* input device . There are no special devm_input_device_ [ un ] register ( )
* variants , regular ones work with both managed and unmanaged devices .
* variants , regular ones work with both managed and unmanaged devices ,
* should you need them . In most cases however , managed input device need
* not be explicitly unregistered or freed .
*
* NOTE : the owner device is set up as parent of input device and users
* should not override it .
*/
struct input_dev * devm_input_allocate_device ( struct device * dev )
{
struct input_dev * input ;
@ -2004,6 +2005,17 @@ static void devm_input_device_unregister(struct device *dev, void *res)
* Once device has been successfully registered it can be unregistered
* with input_unregister_device ( ) ; input_free_device ( ) should not be
* called in this case .
*
* Note that this function is also used to register managed input devices
* ( ones allocated with devm_input_allocate_device ( ) ) . Such managed input
* devices need not be explicitly unregistered or freed , their tear down
* is controlled by the devres infrastructure . It is also worth noting
* that tear down of managed input devices is internally a 2 - step process :
* registered managed input device is first unregistered , but stays in
* memory and can still handle input_event ( ) calls ( although events will
* not be delivered anywhere ) . The freeing of managed input device will
* happen later , when devres stack is unwound to the point where device
* allocation was made .
*/
int input_register_device ( struct input_dev * dev )
{