On Tue, Apr 21, 2015 at 04:35:20PM +0200, Michael Hennerich wrote: > On 04/21/2015 04:21 PM, Guido Martínez wrote: > >The pull mask is created by looping each row (column) and building an > >8-bit integer with the configuration. It is written byte-by-byte, when > >we reach the end of the rows (columns) or we're at the 3rd line (which > >finishes the first byte, since each pin is 2bits on the mask). > > > >However, this only works if we have at most 8 pins (2 bytes), which is > >not the case for the ADP5589. So, write the byte at each boundary (every > >4 rows/columns). > > > >Fixes: 9d2e173644bb ('Input: ADP5589 - new driver for I2C Keypad Decoder and I/O Expander') > >Signed-off-by: Guido Martínez <guido@xxxxxxxxxxxxxxxxxxxx> > Acked-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx> Applied, thank you. > >--- > > drivers/input/keyboard/adp5589-keys.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > >diff --git a/drivers/input/keyboard/adp5589-keys.c b/drivers/input/keyboard/adp5589-keys.c > >index 19edd2d..8709a7f 100644 > >--- a/drivers/input/keyboard/adp5589-keys.c > >+++ b/drivers/input/keyboard/adp5589-keys.c > >@@ -729,7 +729,7 @@ static int adp5589_setup(struct adp5589_kpad *kpad) > > pull_mask |= val << (2 * (i & 0x3)); > >- if (i == 3 || i == kpad->var->max_row_num) { > >+ if (i % 4 == 3 || i == kpad->var->max_row_num) { > > ret |= adp5589_write(client, reg(ADP5585_RPULL_CONFIG_A) > > + (i >> 2), pull_mask); > > pull_mask = 0; > >@@ -749,7 +749,7 @@ static int adp5589_setup(struct adp5589_kpad *kpad) > > pull_mask |= val << (2 * (i & 0x3)); > >- if (i == 3 || i == kpad->var->max_col_num) { > >+ if (i % 4 == 3 || i == kpad->var->max_col_num) { > > ret |= adp5589_write(client, > > reg(ADP5585_RPULL_CONFIG_C) + > > (i >> 2), pull_mask); > > > -- > Greetings, > Michael > > -- > Analog Devices GmbH Wilhelm-Wagenfeld-Str. 6 80807 Muenchen > Sitz der Gesellschaft: Muenchen; Registergericht: Muenchen HRB 40368; > Geschaeftsfuehrer:Dr.Carsten Suckrow, Thomas Wessel, William A. Martin, > Margaret Seif > -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html