summaryrefslogtreecommitdiff
path: root/firmware/drivers
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2006-09-10 02:00:40 +0000
committerMichael Sevakis <jethead71@rockbox.org>2006-09-10 02:00:40 +0000
commit3d2e10bcbd13ec48decafe49f32afcc12c5e185a (patch)
tree60c490e727a28fd2359c3d185cf2a4f5fd8c328b /firmware/drivers
parent24ca76ffec3e0d782f75ac1cca2c0b2c8b71f5db (diff)
downloadrockbox-3d2e10bcbd13ec48decafe49f32afcc12c5e185a.zip
rockbox-3d2e10bcbd13ec48decafe49f32afcc12c5e185a.tar.gz
rockbox-3d2e10bcbd13ec48decafe49f32afcc12c5e185a.tar.bz2
rockbox-3d2e10bcbd13ec48decafe49f32afcc12c5e185a.tar.xz
Added remote backlight on hold option to players with remote hold switch. Disabled IRQs while reading pcf50606 ADC. This seems to have stopped buttons becoming unresponsive when using remote. Maybe fixes other button glitches as well?
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10911 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/adc.c2
-rw-r--r--firmware/drivers/button.c10
2 files changed, 8 insertions, 4 deletions
diff --git a/firmware/drivers/adc.c b/firmware/drivers/adc.c
index 1ebac06..d00f899 100644
--- a/firmware/drivers/adc.c
+++ b/firmware/drivers/adc.c
@@ -123,6 +123,7 @@ static int channelnum[] =
unsigned short adc_scan(int channel)
{
+ int level = set_irq_level(HIGHEST_IRQ_LEVEL);
unsigned char data;
pcf50606_write(0x2f, 0x80 | (channelnum[channel] << 1) | 1);
@@ -130,6 +131,7 @@ unsigned short adc_scan(int channel)
adcdata[channel] = data;
+ set_irq_level(level);
return data;
}
#else
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c
index f31ab33..5e6f6b4 100644
--- a/firmware/drivers/button.c
+++ b/firmware/drivers/button.c
@@ -845,6 +845,7 @@ static int button_read(void)
static int prev_data = 0xff;
static int last_valid = 0xff;
bool hold_button_old;
+ bool remote_hold_button_old;
/* normal buttons */
hold_button_old = hold_button;
@@ -916,12 +917,13 @@ static int button_read(void)
}
/* remote buttons */
+ remote_hold_button_old = remote_hold_button;
remote_hold_button = remote_button_hold_only();
- if (remote_hold_button && !remote_button_hold_only())
- {
- remote_backlight_on();
- }
+#ifndef BOOTLOADER
+ if (remote_hold_button != remote_hold_button_old)
+ remote_backlight_hold_changed(remote_hold_button);
+#endif
if (!remote_hold_button)
{