Index: firmware/target/arm/ipod/button-1g-3g.c =================================================================== --- firmware/target/arm/ipod/button-1g-3g.c (revision 16994) +++ firmware/target/arm/ipod/button-1g-3g.c (working copy) @@ -61,7 +61,7 @@ {1, 0, 0, -1}, {0, -1, 1, 0} }; - + if ( prev_scroll == -1 ) { prev_scroll = new_scroll; } @@ -99,7 +99,7 @@ unsigned char source, state; static bool was_hold = false; int btn = BUTTON_NONE; - + #ifdef IPOD_3G /* The following delay was 250 in the ipodlinux source, * but 50 seems to work fine. 250 causes the wheel to stop @@ -109,10 +109,10 @@ /* get source of interupts */ source = GPIOA_INT_STAT; - + /* get current keypad status */ state = GPIOA_INPUT_VAL; - + /* toggle interrupt level */ GPIOA_INT_LEV = ~state; @@ -181,7 +181,7 @@ GPIOA_INT_CLR = GPIOA_INT_STAT; #ifdef IPOD_1G2G - if ((IPOD_HW_REVISION >> 16) == 1) + if ((IPOD_HW_REVISION >> 16) != 2) { /* enable scroll wheel */ GPIOB_ENABLE |= 0x01; GPIOB_OUTPUT_EN |= 0x01; @@ -205,7 +205,7 @@ static unsigned char last_wheel_value = 0; unsigned char wheel_value; - if ((IPOD_HW_REVISION >> 16) == 1) + if ((IPOD_HW_REVISION >> 16) != 2) { if (!hold_button && (wheel_timeout == 0)) {