input: add generic touchboost driver based on CAF's cpu-boost driver code.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
input: touchboost: make the wq freezable and remove keypad/touchpad filters.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
input: touchboost: add back keypad filtering. I removed it earlier because I didn't know what it was for, so it seems it is, in this device's case, volume up/down and power button.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
input: touchboost: remove keypad filter, it seems that some idiot decided to bundle Bluetooth disconnect event through the keypad filter so users were having kernel_panics in that scenario. Also no need to call cpufreq_driver_target because interactive's speedtask thread will push do it for us in the next timer_rate. Since timer_rate is 30ms by default we adjust the minimum frequency for 40ms up to input_boost_freq, then the governor will catch up.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
input: touchboost: I misinterpretaded the panic log when a BT device was disconnected and what was actually causing the crash was destroying the WQ. Also fix a small bug where if the user underclocked below input_boost_freq after a touch input max/min freqs would be changed to wrong frequencies.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
input: touchboost: make sure we don't queue another input_boost work if input_boost removal work is running.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>