Add patch nokia-av_key.patch
authorPali Rohár <pali.rohar@gmail.com>
Wed, 18 Sep 2013 16:37:57 +0000 (18:37 +0200)
committerPali Rohár <pali.rohar@gmail.com>
Wed, 18 Sep 2013 16:37:57 +0000 (18:37 +0200)
With this patch pressed headset button will be reported immediately as KEY_PROG1.
But sometimes this key can be reported also when was not presses.

Application should take care about false positive pressing, so this is reason
why kernel will report it as KEY_PROG1 (and not KEY_PHONE).

To verify if key was pressed application can wait for real KEY_PHONE event which
would be delivered after few seconds as before.

Application can receive notify about this presses key via HAL "prog1" key.
So this will not break any existing applications.

Thanks Pavel Machek for it!

kernel-power-2.6.28/debian/patches/nokia-av_key.patch [new file with mode: 0644]
kernel-power-2.6.28/debian/patches/series

diff --git a/kernel-power-2.6.28/debian/patches/nokia-av_key.patch b/kernel-power-2.6.28/debian/patches/nokia-av_key.patch
new file mode 100644 (file)
index 0000000..c4c13d4
--- /dev/null
@@ -0,0 +1,21 @@
+--- kernel-power-2.6.28/drivers/misc/nokia-av.c        2013-08-08 01:06:58.603133117 +0200
++++ kernel-power-2.6.28/drivers/misc/nokia-av.c        2013-08-08 01:18:39.367656481 +0200
+@@ -152,6 +152,10 @@
+       int pressed, timeout;
+       pressed = !gpio_get_value(drvdata->eci0_gpio);
++
++      input_report_key(drvdata->input, KEY_PROG1, pressed);
++      input_sync(drvdata->input);
++
+       if (drvdata->hs_btn_pressed == pressed)
+               return IRQ_HANDLED;
+@@ -185,6 +189,7 @@
+               return ret;
+       }
++      input_set_capability(drvdata->input, EV_KEY, KEY_PROG1);
+       input_set_capability(drvdata->input, EV_KEY, HS_BTN_KEY);
+       drvdata->input->name = "headset button";
index 221a394..aee481c 100644 (file)
@@ -88,3 +88,4 @@ udf-use-hw-sector-size.diff
 tif_restore_sigmask-syscalls-arm.patch
 dm9601-ethernet.patch
 asix-ethernet.patch
+nokia-av_key.patch