| @@ -1785,12 +1785,13 @@ static void devm_input_device_release(struct device *dev, void *res) · 1784 unmodified lines |
| 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; |
| @@ -2004,6 +2005,17 @@ static void devm_input_device_unregister(struct device *dev, void *res) · 207 unmodified lines |
| 2004 | 2005 | * Once device has been successfully registered it can be unregistered |
| 2005 | 2006 | * with input_unregister_device(); input_free_device() should not be |
| 2006 | 2007 | * called in this case. |
| 2008 | + * |
| 2009 | + * Note that this function is also used to register managed input devices |
| 2010 | + * (ones allocated with devm_input_allocate_device()). Such managed input |
| 2011 | + * devices need not be explicitly unregistered or freed, their tear down |
| 2012 | + * is controlled by the devres infrastructure. It is also worth noting |
| 2013 | + * that tear down of managed input devices is internally a 2-step process: |
| 2014 | + * registered managed input device is first unregistered, but stays in |
| 2015 | + * memory and can still handle input_event() calls (although events will |
| 2016 | + * not be delivered anywhere). The freeing of managed input device will |
| 2017 | + * happen later, when devres stack is unwound to the point where device |
| 2018 | + * allocation was made. |
| 2007 | 2019 | */ |
| 2008 | 2020 | int input_register_device(struct input_dev *dev) |
| 2009 | 2021 | { |