History

Input: matrix-keymap - uninline and prepare for device tree support

Change matrix-keymap helper to be out-of-line, like sparse keymap, allow the helper perform basic keymap validation and return errors, and prepare for device tree support.

Dmitry Torokhov committed 14 years ago

Commit 19328111 parent d0a345722 files · +265 −209Browse files

Showing the changes to include/linux/input (1 of 22 files). Show all

Unified · Split

include/linux/input/matrix_keypad.h+6−32
@@ -75,39 +75,13 @@ struct matrix_keypad_platform_data { · 74 unmodified lines
7575 bool no_autorepeat;
7676 };
7777
78−/**
79− * matrix_keypad_build_keymap - convert platform keymap into matrix keymap
80− * @keymap_data: keymap supplied by the platform code
81− * @row_shift: number of bits to shift row value by to advance to the next
82− * line in the keymap
83− * @keymap: expanded version of keymap that is suitable for use by
84− * matrix keyboad driver
85− * @keybit: pointer to bitmap of keys supported by input device
86− *
87− * This function converts platform keymap (encoded with KEY() macro) into
88− * an array of keycodes that is suitable for using in a standard matrix
89− * keyboard driver that uses row and col as indices.
90− */
91−static inline void
92−matrix_keypad_build_keymap(const struct matrix_keymap_data *keymap_data,
93− unsigned int row_shift,
94− unsigned short *keymap, unsigned long *keybit)
95−{
96− int i;
97−
98− for (i = 0; i < keymap_data->keymap_size; i++) {
99− unsigned int key = keymap_data->keymap[i];
100− unsigned int row = KEY_ROW(key);
101− unsigned int col = KEY_COL(key);
102− unsigned short code = KEY_VAL(key);
103−
104− keymap[MATRIX_SCAN_CODE(row, col, row_shift)] = code;
105− __set_bit(code, keybit);
106− }
107− __clear_bit(KEY_RESERVED, keybit);
108−}
78+int matrix_keypad_build_keymap(const struct matrix_keymap_data *keymap_data,
79+ const char *keymap_name,
80+ unsigned int rows, unsigned int cols,
81+ unsigned short *keymap,
82+ struct input_dev *input_dev);
10983
110−#ifdef CONFIG_INPUT_OF_MATRIX_KEYMAP
84+#ifdef CONFIG_OF
11185 struct matrix_keymap_data *
11286 matrix_keyboard_of_fill_keymap(struct device_node *np, const char *propname);
11387