telelco-v0.2: Make config.pad_box override switches
[fw/altos] / src / drivers / ao_pad.c
index e9b54b047c944713dd3cfcad70d9fe9bdf7b8a13..f3975dbc1b21b42d9e0265b51e79d0388fb71b08 100644 (file)
@@ -334,6 +334,7 @@ ao_pad_read_box(void)
        uint8_t         byte = ao_74hc165_read();
        uint8_t         h, l;
 
+       PRINTD("box %02x\n", byte);
        h = byte >> 4;
        l = byte & 0xf;
        return h * 10 + l;
@@ -357,10 +358,6 @@ static int ao_pad_read_box(void) {
 }
 #else
 
-#if HAS_FIXED_PAD_BOX
-#define ao_pad_read_box()      ao_config.pad_box
-#endif
-
 #ifdef PAD_BOX
 #define ao_pad_read_box()      PAD_BOX
 #endif
@@ -384,7 +381,11 @@ ao_pad(void)
                        continue;
                ao_pad_packet_time = ao_time();
 
-               ao_pad_box = ao_pad_read_box();
+               ao_pad_box = ao_config.pad_box;
+#ifndef HAS_FIXED_PAD_BOX
+               if (ao_pad_box == 0 || ao_pad_box == 0xff)
+                       ao_pad_box = ao_pad_read_box();
+#endif
 
                PRINTD ("tick %d box %d (me %d) cmd %d channels %02x\n",
                        command.tick, command.box, ao_pad_box, command.cmd, command.channels);