Update for increased SW input codes.
The new android-mainline kernel has increase the maximum number of
SW input codes to 33, so update the code to handle more than 32
values.
Test: Builds.
Change-Id: I344de37569c1d2c4ff94b8025a7339147ac9afe7
diff --git a/modules/input/evdev/SwitchInputMapper.cpp b/modules/input/evdev/SwitchInputMapper.cpp
index bb79d01..1b2e749 100644
--- a/modules/input/evdev/SwitchInputMapper.cpp
+++ b/modules/input/evdev/SwitchInputMapper.cpp
@@ -47,13 +47,26 @@
{SW_FRONT_PROXIMITY, INPUT_USAGE_SWITCH_UNKNOWN},
{SW_ROTATE_LOCK, INPUT_USAGE_SWITCH_UNKNOWN},
{SW_LINEIN_INSERT, INPUT_USAGE_SWITCH_UNKNOWN},
- {0x0e /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {SW_MUTE_DEVICE, INPUT_USAGE_SWITCH_UNKNOWN},
+ {SW_PEN_INSERTED, INPUT_USAGE_SWITCH_UNKNOWN},
+ {SW_HPHL_OVERCURRENT, INPUT_USAGE_SWITCH_UNKNOWN},
+ {SW_HPHR_OVERCURRENT, INPUT_USAGE_SWITCH_UNKNOWN},
+ {SW_UNSUPPORT_INSERT, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x13 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x14 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x15 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x16 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x17 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x18 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
+ {0x19 /* unused */, INPUT_USAGE_SWITCH_UNKNOWN},
{SW_MAX, INPUT_USAGE_SWITCH_UNKNOWN},
};
SwitchInputMapper::SwitchInputMapper()
: InputMapper() {
- static_assert(SW_CNT <= 32, "More than 32 switches defined in linux/input.h");
+ // If this gets larger than 64, then the mSwitchValues and mUpdatedSwitchMask
+ // variables need to be changed to support more than 64 bits.
+ static_assert(SW_CNT <= 64, "More than 64 switches defined in linux/input.h");
}
bool SwitchInputMapper::configureInputReport(InputDeviceNode* devNode,
diff --git a/modules/input/evdev/SwitchInputMapper.h b/modules/input/evdev/SwitchInputMapper.h
index e25c3a5..dbd5a03 100644
--- a/modules/input/evdev/SwitchInputMapper.h
+++ b/modules/input/evdev/SwitchInputMapper.h
@@ -39,8 +39,8 @@
void processSwitch(int32_t switchCode, int32_t switchValue);
void sync(nsecs_t when);
- BitSet32 mSwitchValues;
- BitSet32 mUpdatedSwitchMask;
+ BitSet64 mSwitchValues;
+ BitSet64 mUpdatedSwitchMask;
};
} // namespace android