From: Dmitry Torokhov <dmitry.torokhov@gmail.com> To: Olof Johansson <olof@lixom.net> Cc: Rob Herring <rob.herring@calxeda.com>, linux-arm-kernel@lists.infradead.org, devicetree-discuss@lists.ozlabs.org, Rakesh Iyer <riyer@nvidia.com>, linux-tegra@vger.kernel.org, linux-input@vger.kernel.org, Thomas Abraham <thomas.abraham@linaro.org>, sjg@chromium.org, swarren@nvidia.com, grant.likely@secretlab.ca Subject: Re: [PATCH v2] Input: keyboard - add device tree bindings for simple key matrixes Date: Thu, 29 Dec 2011 14:05:15 -0800 [thread overview] Message-ID: <20111229220515.GA17621@core.coreip.homeip.net> (raw) In-Reply-To: <1325184146-3527-1-git-send-email-olof@lixom.net> Hi Olof, On Thu, Dec 29, 2011 at 10:42:26AM -0800, Olof Johansson wrote: > This adds a simple device tree binding for simple key matrix data. > > Changes since v1: > * Removed samsung-style binding support > * Added linux,fn-keymap and linux,fn-key optional properties > This looks very reasonable to me, a few comments though. > Signed-off-by: Olof Johansson <olof@lixom.net> > --- > .../devicetree/bindings/input/matrix-keymap.txt | 25 ++++++ > drivers/input/keyboard/Makefile | 1 + > drivers/input/keyboard/keymap.c | 78 ++++++++++++++++++++ > include/linux/input/matrix_keypad.h | 34 +++++---- > 4 files changed, 123 insertions(+), 15 deletions(-) > create mode 100644 Documentation/devicetree/bindings/input/matrix-keymap.txt > create mode 100644 drivers/input/keyboard/keymap.c > > diff --git a/Documentation/devicetree/bindings/input/matrix-keymap.txt b/Documentation/devicetree/bindings/input/matrix-keymap.txt > new file mode 100644 > index 0000000..480ca46 > --- /dev/null > +++ b/Documentation/devicetree/bindings/input/matrix-keymap.txt > @@ -0,0 +1,25 @@ > +For matrix keyboards there are two kinds of layout bindings using > +linux key codes. > + > +Required properties: > +- compatible: "matrix-keyboard-controller" > +- linux,keymap: an array of 3-cell entries containing the equivalent > + of the three separate properties above: row, column and linux > + key-code. > + > +Optional properties: > +- linux,fn-keymap: A separate array of 3-cell entries similar to > + linux,keymap but only to be used when the function key modifier is > + active. This is used for keyboards that have a software-based modifier > + key for 'Fn' but that need to describe the custom layout that should > + be used when said modifier key is active. > + > +- linux,fn-key: a 2-cell entry containing the < row column > of the > + function modifier key used to switch to the above linux,fn-keymap > + layout. > + > +Example: > + linux,keymap = < 0 3 2 > + 0 4 5 >; > + linux,fn-key = < 2 1 >; > + linux,fn-keymap = < 0 3 1 >; > diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile > index df7061f..83e6eed 100644 > --- a/drivers/input/keyboard/Makefile > +++ b/drivers/input/keyboard/Makefile > @@ -4,6 +4,7 @@ > > # Each configuration option enables a list of files. > > +obj-$(CONFIG_INPUT_KEYBOARD) += keymap.o I do not think we should restrict it keyboard devices only; there could be users in input/misc as well, so I'd rather have it as drivers/input/matrix-keymap.c I'd start with just matrix_keyboard_of_build_keymap() there and moved matrix_keypad_build_keymap() as a follow-up patch as drivers using it should 'select' it. > obj-$(CONFIG_KEYBOARD_ADP5520) += adp5520-keys.o > obj-$(CONFIG_KEYBOARD_ADP5588) += adp5588-keys.o > obj-$(CONFIG_KEYBOARD_ADP5589) += adp5589-keys.o > diff --git a/drivers/input/keyboard/keymap.c b/drivers/input/keyboard/keymap.c > new file mode 100644 > index 0000000..80d1074 > --- /dev/null > +++ b/drivers/input/keyboard/keymap.c > @@ -0,0 +1,78 @@ > +#include <linux/kernel.h> > +#include <linux/types.h> > +#include <linux/input.h> > +#include <linux/of.h> > +#include <linux/input/matrix_keypad.h> > +#include <linux/export.h> > +#include <linux/gfp.h> > +#include <linux/slab.h> > + > +void matrix_keypad_build_keymap(const struct matrix_keymap_data *keymap_data, > + unsigned int row_shift, > + unsigned short *keymap, unsigned long *keybit) > +{ > + int i; > + > + for (i = 0; i < keymap_data->keymap_size; i++) { > + unsigned int key = keymap_data->keymap[i]; > + unsigned int row = KEY_ROW(key); > + unsigned int col = KEY_COL(key); > + unsigned short code = KEY_VAL(key); > + > + keymap[MATRIX_SCAN_CODE(row, col, row_shift)] = code; > + __set_bit(code, keybit); > + } > + __clear_bit(KEY_RESERVED, keybit); > +} > +EXPORT_SYMBOL_GPL(matrix_keypad_build_keymap); > + > +#ifdef CONFIG_OF > +struct matrix_keymap_data * Instead of allocating keymap data why don't we populate keymap and keybits directly, like matrix_keypad_build_keymap() does? > +matrix_keyboard_of_fill_keymap(struct device_node *np) > +{ > + struct matrix_keymap_data *kd; > + struct device_node *knp; > + int proplen = 0, i; > + u32 *keymap, row, col, key_code; Let's fail safely if np is NULL. > + const __be32 *prop = of_get_property(np, "linux,keymap", &proplen); > + > + if (!of_device_is_compatible(np, "matrix-keyboard-controller")) > + return NULL; > + > + kd = kmalloc(sizeof(*kd), GFP_KERNEL); > + if (!kd) > + return NULL; > + kd->keymap_size = proplen / 3; Validate that proplen % 3 == 0? > + > + keymap = kzalloc(kd->keymap_size * sizeof(u32), GFP_KERNEL); > + if (!keymap) { > + kfree(kd); > + return NULL; > + } > + > + kd->keymap = keymap; > + > + for (i = 0; i < kd->keymap_size; i++){ > + /* property format is < row column keycode > */ > + row = be32_to_cpup(prop++); > + col = be32_to_cpup(prop++); > + key_code = be32_to_cpup(prop++); > + *keymap++ = KEY(row, col, key_code); > + } > + > + /* FIXME: Need to add handling of the linux,fn-keymap property here */ > + > + return kd; > +} > +EXPORT_SYMBOL_GPL(matrix_keyboard_of_fill_keymap); > + > +void matrix_keyboard_of_free_keymap(const struct matrix_keymap_data *kd) > +{ > + if (!kd) > + return; > + if (kd->keymap) > + kfree(kd->keymap); If we decide to keep allocating kd then checking kd->keymap before freeing is not necessary. > + kfree(kd); > +} > +EXPORT_SYMBOL_GPL(matrix_keyboard_of_free_keymap); > +#endif > diff --git a/include/linux/input/matrix_keypad.h b/include/linux/input/matrix_keypad.h > index fe7c4b9..ac999c6 100644 > --- a/include/linux/input/matrix_keypad.h > +++ b/include/linux/input/matrix_keypad.h > @@ -3,6 +3,7 @@ > > #include <linux/types.h> > #include <linux/input.h> > +#include <linux/of.h> > > #define MATRIX_MAX_ROWS 32 > #define MATRIX_MAX_COLS 32 > @@ -87,23 +88,26 @@ struct matrix_keypad_platform_data { > * an array of keycodes that is suitable for using in a standard matrix > * keyboard driver that uses row and col as indices. > */ > +void matrix_keypad_build_keymap(const struct matrix_keymap_data *keymap_data, > + unsigned int row_shift, > + unsigned short *keymap, unsigned long *keybit); > + > +#ifdef CONFIG_OF > +struct matrix_keymap_data * > +matrix_keyboard_of_fill_keymap(struct device_node *np); > + > +void matrix_keyboard_of_free_keymap(const struct matrix_keymap_data *kd); > +#else > +static inline struct matrix_keymap_data * > +matrix_keyboard_of_fill_keymap(struct device_node *np) > +{ > + return NULL; > +} > + > static inline void > -matrix_keypad_build_keymap(const struct matrix_keymap_data *keymap_data, > - unsigned int row_shift, > - unsigned short *keymap, unsigned long *keybit) > +matrix_keyboard_of_free_keymap(const struct matrix_keymap_data *kd) > { > - int i; > - > - for (i = 0; i < keymap_data->keymap_size; i++) { > - unsigned int key = keymap_data->keymap[i]; > - unsigned int row = KEY_ROW(key); > - unsigned int col = KEY_COL(key); > - unsigned short code = KEY_VAL(key); > - > - keymap[MATRIX_SCAN_CODE(row, col, row_shift)] = code; > - __set_bit(code, keybit); > - } > - __clear_bit(KEY_RESERVED, keybit); > } > +#endif > > #endif /* _MATRIX_KEYPAD_H */ > -- > 1.7.8.GIT > -- Dmitry
WARNING: multiple messages have this Message-ID (diff)
From: dmitry.torokhov@gmail.com (Dmitry Torokhov) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v2] Input: keyboard - add device tree bindings for simple key matrixes Date: Thu, 29 Dec 2011 14:05:15 -0800 [thread overview] Message-ID: <20111229220515.GA17621@core.coreip.homeip.net> (raw) In-Reply-To: <1325184146-3527-1-git-send-email-olof@lixom.net> Hi Olof, On Thu, Dec 29, 2011 at 10:42:26AM -0800, Olof Johansson wrote: > This adds a simple device tree binding for simple key matrix data. > > Changes since v1: > * Removed samsung-style binding support > * Added linux,fn-keymap and linux,fn-key optional properties > This looks very reasonable to me, a few comments though. > Signed-off-by: Olof Johansson <olof@lixom.net> > --- > .../devicetree/bindings/input/matrix-keymap.txt | 25 ++++++ > drivers/input/keyboard/Makefile | 1 + > drivers/input/keyboard/keymap.c | 78 ++++++++++++++++++++ > include/linux/input/matrix_keypad.h | 34 +++++---- > 4 files changed, 123 insertions(+), 15 deletions(-) > create mode 100644 Documentation/devicetree/bindings/input/matrix-keymap.txt > create mode 100644 drivers/input/keyboard/keymap.c > > diff --git a/Documentation/devicetree/bindings/input/matrix-keymap.txt b/Documentation/devicetree/bindings/input/matrix-keymap.txt > new file mode 100644 > index 0000000..480ca46 > --- /dev/null > +++ b/Documentation/devicetree/bindings/input/matrix-keymap.txt > @@ -0,0 +1,25 @@ > +For matrix keyboards there are two kinds of layout bindings using > +linux key codes. > + > +Required properties: > +- compatible: "matrix-keyboard-controller" > +- linux,keymap: an array of 3-cell entries containing the equivalent > + of the three separate properties above: row, column and linux > + key-code. > + > +Optional properties: > +- linux,fn-keymap: A separate array of 3-cell entries similar to > + linux,keymap but only to be used when the function key modifier is > + active. This is used for keyboards that have a software-based modifier > + key for 'Fn' but that need to describe the custom layout that should > + be used when said modifier key is active. > + > +- linux,fn-key: a 2-cell entry containing the < row column > of the > + function modifier key used to switch to the above linux,fn-keymap > + layout. > + > +Example: > + linux,keymap = < 0 3 2 > + 0 4 5 >; > + linux,fn-key = < 2 1 >; > + linux,fn-keymap = < 0 3 1 >; > diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile > index df7061f..83e6eed 100644 > --- a/drivers/input/keyboard/Makefile > +++ b/drivers/input/keyboard/Makefile > @@ -4,6 +4,7 @@ > > # Each configuration option enables a list of files. > > +obj-$(CONFIG_INPUT_KEYBOARD) += keymap.o I do not think we should restrict it keyboard devices only; there could be users in input/misc as well, so I'd rather have it as drivers/input/matrix-keymap.c I'd start with just matrix_keyboard_of_build_keymap() there and moved matrix_keypad_build_keymap() as a follow-up patch as drivers using it should 'select' it. > obj-$(CONFIG_KEYBOARD_ADP5520) += adp5520-keys.o > obj-$(CONFIG_KEYBOARD_ADP5588) += adp5588-keys.o > obj-$(CONFIG_KEYBOARD_ADP5589) += adp5589-keys.o > diff --git a/drivers/input/keyboard/keymap.c b/drivers/input/keyboard/keymap.c > new file mode 100644 > index 0000000..80d1074 > --- /dev/null > +++ b/drivers/input/keyboard/keymap.c > @@ -0,0 +1,78 @@ > +#include <linux/kernel.h> > +#include <linux/types.h> > +#include <linux/input.h> > +#include <linux/of.h> > +#include <linux/input/matrix_keypad.h> > +#include <linux/export.h> > +#include <linux/gfp.h> > +#include <linux/slab.h> > + > +void matrix_keypad_build_keymap(const struct matrix_keymap_data *keymap_data, > + unsigned int row_shift, > + unsigned short *keymap, unsigned long *keybit) > +{ > + int i; > + > + for (i = 0; i < keymap_data->keymap_size; i++) { > + unsigned int key = keymap_data->keymap[i]; > + unsigned int row = KEY_ROW(key); > + unsigned int col = KEY_COL(key); > + unsigned short code = KEY_VAL(key); > + > + keymap[MATRIX_SCAN_CODE(row, col, row_shift)] = code; > + __set_bit(code, keybit); > + } > + __clear_bit(KEY_RESERVED, keybit); > +} > +EXPORT_SYMBOL_GPL(matrix_keypad_build_keymap); > + > +#ifdef CONFIG_OF > +struct matrix_keymap_data * Instead of allocating keymap data why don't we populate keymap and keybits directly, like matrix_keypad_build_keymap() does? > +matrix_keyboard_of_fill_keymap(struct device_node *np) > +{ > + struct matrix_keymap_data *kd; > + struct device_node *knp; > + int proplen = 0, i; > + u32 *keymap, row, col, key_code; Let's fail safely if np is NULL. > + const __be32 *prop = of_get_property(np, "linux,keymap", &proplen); > + > + if (!of_device_is_compatible(np, "matrix-keyboard-controller")) > + return NULL; > + > + kd = kmalloc(sizeof(*kd), GFP_KERNEL); > + if (!kd) > + return NULL; > + kd->keymap_size = proplen / 3; Validate that proplen % 3 == 0? > + > + keymap = kzalloc(kd->keymap_size * sizeof(u32), GFP_KERNEL); > + if (!keymap) { > + kfree(kd); > + return NULL; > + } > + > + kd->keymap = keymap; > + > + for (i = 0; i < kd->keymap_size; i++){ > + /* property format is < row column keycode > */ > + row = be32_to_cpup(prop++); > + col = be32_to_cpup(prop++); > + key_code = be32_to_cpup(prop++); > + *keymap++ = KEY(row, col, key_code); > + } > + > + /* FIXME: Need to add handling of the linux,fn-keymap property here */ > + > + return kd; > +} > +EXPORT_SYMBOL_GPL(matrix_keyboard_of_fill_keymap); > + > +void matrix_keyboard_of_free_keymap(const struct matrix_keymap_data *kd) > +{ > + if (!kd) > + return; > + if (kd->keymap) > + kfree(kd->keymap); If we decide to keep allocating kd then checking kd->keymap before freeing is not necessary. > + kfree(kd); > +} > +EXPORT_SYMBOL_GPL(matrix_keyboard_of_free_keymap); > +#endif > diff --git a/include/linux/input/matrix_keypad.h b/include/linux/input/matrix_keypad.h > index fe7c4b9..ac999c6 100644 > --- a/include/linux/input/matrix_keypad.h > +++ b/include/linux/input/matrix_keypad.h > @@ -3,6 +3,7 @@ > > #include <linux/types.h> > #include <linux/input.h> > +#include <linux/of.h> > > #define MATRIX_MAX_ROWS 32 > #define MATRIX_MAX_COLS 32 > @@ -87,23 +88,26 @@ struct matrix_keypad_platform_data { > * an array of keycodes that is suitable for using in a standard matrix > * keyboard driver that uses row and col as indices. > */ > +void matrix_keypad_build_keymap(const struct matrix_keymap_data *keymap_data, > + unsigned int row_shift, > + unsigned short *keymap, unsigned long *keybit); > + > +#ifdef CONFIG_OF > +struct matrix_keymap_data * > +matrix_keyboard_of_fill_keymap(struct device_node *np); > + > +void matrix_keyboard_of_free_keymap(const struct matrix_keymap_data *kd); > +#else > +static inline struct matrix_keymap_data * > +matrix_keyboard_of_fill_keymap(struct device_node *np) > +{ > + return NULL; > +} > + > static inline void > -matrix_keypad_build_keymap(const struct matrix_keymap_data *keymap_data, > - unsigned int row_shift, > - unsigned short *keymap, unsigned long *keybit) > +matrix_keyboard_of_free_keymap(const struct matrix_keymap_data *kd) > { > - int i; > - > - for (i = 0; i < keymap_data->keymap_size; i++) { > - unsigned int key = keymap_data->keymap[i]; > - unsigned int row = KEY_ROW(key); > - unsigned int col = KEY_COL(key); > - unsigned short code = KEY_VAL(key); > - > - keymap[MATRIX_SCAN_CODE(row, col, row_shift)] = code; > - __set_bit(code, keybit); > - } > - __clear_bit(KEY_RESERVED, keybit); > } > +#endif > > #endif /* _MATRIX_KEYPAD_H */ > -- > 1.7.8.GIT > -- Dmitry
next prev parent reply other threads:[~2011-12-29 22:05 UTC|newest] Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-12-28 22:52 [PATCH] Input: keyboard - add device tree bindings for simple key matrixes Olof Johansson 2011-12-28 22:52 ` Olof Johansson [not found] ` <1325112771-31941-1-git-send-email-olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org> 2011-12-28 23:30 ` Rob Herring 2011-12-28 23:30 ` Rob Herring [not found] ` <4EFBA698.6080601-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2011-12-28 23:37 ` Olof Johansson 2011-12-28 23:37 ` Olof Johansson 2011-12-29 6:16 ` Stephen Warren 2011-12-29 6:16 ` Stephen Warren [not found] ` <74CDBE0F657A3D45AFBB94109FB122FF17755DC8D2-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org> 2011-12-29 6:34 ` Olof Johansson 2011-12-29 6:34 ` Olof Johansson [not found] ` <CAOesGMiNuW3mexN_8PtunZkaVX4Uph-OgZFr5zLhaB1nih_EEw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2011-12-29 7:01 ` Stephen Warren 2011-12-29 7:01 ` Stephen Warren 2011-12-29 7:06 ` Olof Johansson 2011-12-29 7:06 ` Olof Johansson 2012-01-02 4:11 ` Thomas Abraham 2012-01-02 4:11 ` Thomas Abraham [not found] ` <CAOesGMjZoP+FsGWo9cWKvgs8KD9tT6KBHbK5qKX8NTGOY3HUjQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2011-12-29 19:28 ` Rob Herring 2011-12-29 19:28 ` Rob Herring 2012-01-02 7:21 ` Grant Likely 2012-01-02 7:21 ` Grant Likely [not found] ` <20120102072121.GB13015-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org> 2012-01-03 17:44 ` Olof Johansson 2012-01-03 17:44 ` Olof Johansson 2011-12-29 18:42 ` [PATCH v2] " Olof Johansson 2011-12-29 18:42 ` Olof Johansson 2011-12-29 21:14 ` Rob Herring 2011-12-29 21:14 ` Rob Herring [not found] ` <4EFCD846.40901-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2011-12-29 21:33 ` Olof Johansson 2011-12-29 21:33 ` Olof Johansson 2011-12-29 22:05 ` Dmitry Torokhov [this message] 2011-12-29 22:05 ` Dmitry Torokhov [not found] ` <20111229220515.GA17621-WlK9ik9hQGAhIp7JRqBPierSzoNAToWh@public.gmane.org> 2011-12-29 22:26 ` Olof Johansson 2011-12-29 22:26 ` Olof Johansson [not found] ` <1325184146-3527-1-git-send-email-olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org> 2012-01-02 6:09 ` [PATCH v3] " Olof Johansson 2012-01-02 6:09 ` Olof Johansson [not found] ` <1325484557-27695-1-git-send-email-olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org> 2012-01-02 18:39 ` Simon Glass 2012-01-02 18:39 ` [U-Boot] " Simon Glass 2012-01-02 18:39 ` Simon Glass 2012-01-03 15:43 ` Olof Johansson 2012-01-03 15:43 ` [U-Boot] " Olof Johansson 2012-01-03 15:43 ` Olof Johansson [not found] ` <20120103154317.GA27061-O5ziIzlqnXUVNXGz7ipsyg@public.gmane.org> 2012-01-03 16:22 ` Simon Glass 2012-01-03 16:22 ` [U-Boot] " Simon Glass 2012-01-03 16:22 ` Simon Glass [not found] ` <CAPnjgZ3xN8+Ve28bcg1OQ4mv5rWvA-9ijP57UsuMQ5D1d=7Xxw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2012-01-03 16:29 ` Russell King - ARM Linux 2012-01-03 16:29 ` [U-Boot] " Russell King - ARM Linux 2012-01-03 16:29 ` Russell King - ARM Linux 2012-01-03 16:44 ` Dmitry Torokhov 2012-01-03 16:44 ` [U-Boot] " Dmitry Torokhov 2012-01-03 16:44 ` Dmitry Torokhov [not found] ` <20120103164431.GA31647-WlK9ik9hQGAhIp7JRqBPierSzoNAToWh@public.gmane.org> 2012-01-03 16:48 ` Olof Johansson 2012-01-03 16:48 ` [U-Boot] " Olof Johansson 2012-01-03 16:48 ` Olof Johansson 2012-01-03 17:06 ` Russell King - ARM Linux 2012-01-03 17:06 ` [U-Boot] " Russell King - ARM Linux 2012-01-03 17:06 ` Russell King - ARM Linux [not found] ` <20120103170615.GZ2914-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org> 2012-01-03 17:57 ` Dmitry Torokhov 2012-01-03 17:57 ` [U-Boot] " Dmitry Torokhov 2012-01-03 17:57 ` Dmitry Torokhov 2012-01-03 22:28 ` [PATCH] Input: tegra-kbc - add device tree support Olof Johansson 2012-01-03 22:28 ` Olof Johansson [not found] ` <1325629702-10307-1-git-send-email-olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org> 2012-01-03 22:42 ` Stephen Warren 2012-01-03 22:42 ` Stephen Warren [not found] ` <74CDBE0F657A3D45AFBB94109FB122FF17761F1203-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org> 2012-01-03 22:58 ` Olof Johansson 2012-01-03 22:58 ` Olof Johansson [not found] ` <CAOesGMhYscMgsNbZ+W0vdcRFmMiV3yQYLRxgGLfMVHKuhEAe-w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2012-01-03 23:21 ` Dmitry Torokhov 2012-01-03 23:21 ` Dmitry Torokhov 2012-01-03 17:46 ` [PATCH v3] Input: keyboard - add device tree bindings for simple key matrixes Stephen Warren 2012-01-03 17:46 ` Stephen Warren 2012-01-03 21:37 ` [PATCH v4] " Olof Johansson 2012-01-03 21:37 ` Olof Johansson [not found] ` <1325626648-9425-1-git-send-email-olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org> 2012-01-03 22:37 ` Stephen Warren 2012-01-03 22:37 ` Stephen Warren 2012-01-08 1:05 ` Simon Glass 2012-01-08 1:05 ` Simon Glass [not found] ` <CAPnjgZ3G7yFOrngJP=KtJNcgAWtZg3xn22tRMMi+pUnZ2rJpBQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2012-01-09 18:38 ` Olof Johansson [not found] ` <CAOesGMitmYb2jb1VvjNfU8jcsCrDJ5zQkm+Hh171ddMi4POUYA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2012-01-09 18:46 ` Simon Glass 2012-03-14 4:42 ` Dmitry Torokhov 2012-03-14 4:42 ` Dmitry Torokhov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20111229220515.GA17621@core.coreip.homeip.net \ --to=dmitry.torokhov@gmail.com \ --cc=devicetree-discuss@lists.ozlabs.org \ --cc=grant.likely@secretlab.ca \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-input@vger.kernel.org \ --cc=linux-tegra@vger.kernel.org \ --cc=olof@lixom.net \ --cc=riyer@nvidia.com \ --cc=rob.herring@calxeda.com \ --cc=sjg@chromium.org \ --cc=swarren@nvidia.com \ --cc=thomas.abraham@linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.