Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423327AbbEOUxG (ORCPT ); Fri, 15 May 2015 16:53:06 -0400 Received: from mail-ie0-f175.google.com ([209.85.223.175]:36765 "EHLO mail-ie0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1422766AbbEOUxD (ORCPT ); Fri, 15 May 2015 16:53:03 -0400 Date: Fri, 15 May 2015 13:52:59 -0700 From: Dmitry Torokhov To: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/3] max7359_keypad: remove code duplication Message-ID: <20150515205259.GF696@dtor-ws> References: <20150514023628.GB28560@fifteen> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150514023628.GB28560@fifteen> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3077 Lines: 89 On Thu, May 14, 2015 at 05:36:28AM +0300, Evgeniy Dushistov wrote: > max7359_keypad: remove code duplication, > max7359_build_keycode do the same thing as matrix_keypad_build_keymap, but > matrix_keypad_build_keymap can also handle DT bindings, so remove > max7359_build_keycode and use matrix_keypad_build_keymap instead. Tested on > beagleboard-xm. > > Signed-off-by: Evgeniy A. Dushistov Applied, thank you. > --- > drivers/input/keyboard/Kconfig | 1 + > drivers/input/keyboard/max7359_keypad.c | 30 +++++++++--------------------- > 2 files changed, 10 insertions(+), 21 deletions(-) > > diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig > index 106fbac..4d75062 100644 > --- a/drivers/input/keyboard/Kconfig > +++ b/drivers/input/keyboard/Kconfig > @@ -367,6 +367,7 @@ config KEYBOARD_MAPLE > > config KEYBOARD_MAX7359 > tristate "Maxim MAX7359 Key Switch Controller" > + select INPUT_MATRIXKMAP > depends on I2C > help > If you say yes here you get support for the Maxim MAX7359 Key > diff --git a/drivers/input/keyboard/max7359_keypad.c b/drivers/input/keyboard/max7359_keypad.c > index 4e35904..5091133 100644 > --- a/drivers/input/keyboard/max7359_keypad.c > +++ b/drivers/input/keyboard/max7359_keypad.c > @@ -84,26 +84,6 @@ static int max7359_read_reg(struct i2c_client *client, int reg) > return ret; > } > > -static void max7359_build_keycode(struct max7359_keypad *keypad, > - const struct matrix_keymap_data *keymap_data) > -{ > - struct input_dev *input_dev = keypad->input_dev; > - 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 int scancode = MATRIX_SCAN_CODE(row, col, > - MAX7359_ROW_SHIFT); > - unsigned short keycode = KEY_VAL(key); > - > - keypad->keycodes[scancode] = keycode; > - __set_bit(keycode, input_dev->keybit); > - } > - __clear_bit(KEY_RESERVED, input_dev->keybit); > -} > - > /* runs in an IRQ thread -- can (and will!) sleep */ > static irqreturn_t max7359_interrupt(int irq, void *dev_id) > { > @@ -232,7 +212,15 @@ static int max7359_probe(struct i2c_client *client, > input_set_capability(input_dev, EV_MSC, MSC_SCAN); > input_set_drvdata(input_dev, keypad); > > - max7359_build_keycode(keypad, keymap_data); > + error = matrix_keypad_build_keymap(keymap_data, NULL, > + MAX7359_MAX_KEY_ROWS, > + MAX7359_MAX_KEY_COLS, > + keypad->keycodes, > + input_dev); > + if (error) { > + dev_err(&client->dev, "failed to build keymap\n"); > + return error; > + } > > error = devm_request_threaded_irq(&client->dev, client->irq, NULL, > max7359_interrupt, > -- > 2.3.6 > > -- > /Evgeniy -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/