summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx31/gigabeat-s/button-imx31.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/imx31/gigabeat-s/button-imx31.c')
-rw-r--r--firmware/target/arm/imx31/gigabeat-s/button-imx31.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/firmware/target/arm/imx31/gigabeat-s/button-imx31.c b/firmware/target/arm/imx31/gigabeat-s/button-imx31.c
index 9c35fb13da..d2a46f2c9f 100644
--- a/firmware/target/arm/imx31/gigabeat-s/button-imx31.c
+++ b/firmware/target/arm/imx31/gigabeat-s/button-imx31.c
@@ -55,8 +55,13 @@ static __attribute__((interrupt("IRQ"))) void KPP_HANDLER(void)
55 }; 55 };
56 56
57 int col; 57 int col;
58 /* Power button is handled separately on PMIC */ 58 /* Power button is handled separately on PMIC, remote read in headphone
59 * jack driver. */
60#ifdef HAVE_HEADPHONE_DETECTION
61 int button = int_btn & (BUTTON_POWER | BUTTON_REMOTE);
62#else
59 int button = int_btn & BUTTON_POWER; 63 int button = int_btn & BUTTON_POWER;
64#endif
60 65
61 int oldlevel = disable_irq_save(); 66 int oldlevel = disable_irq_save();
62 67
@@ -110,9 +115,9 @@ static __attribute__((interrupt("IRQ"))) void KPP_HANDLER(void)
110 else 115 else
111 KPP_KPSR |= KPP_KPSR_KDIE; 116 KPP_KPSR |= KPP_KPSR_KDIE;
112 117
113 restore_irq(oldlevel);
114
115 int_btn = button; 118 int_btn = button;
119
120 restore_irq(oldlevel);
116} 121}
117 122
118bool button_hold(void) 123bool button_hold(void)