Skip to content

Commit

Permalink
Input: ad714x - fix threshold and completion interrupt masks
Browse files Browse the repository at this point in the history
Fix two issues in the threshold and completion interrupt mask and unmask
functions. According to the AD714x datasheets the highest stage completion
interrupt should be enabled. Fix mask computation.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Tested-by: Jean-Francois Dagenais <jeff.dagenais@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
  • Loading branch information
Michael Hennerich authored and Dmitry Torokhov committed May 17, 2011
1 parent dc5f4f5 commit e223cc7
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/input/misc/ad714x.c
Original file line number Diff line number Diff line change
Expand Up @@ -158,10 +158,10 @@ static void ad714x_use_com_int(struct ad714x_chip *ad714x,
unsigned short data;
unsigned short mask;

mask = ((1 << (end_stage + 1)) - 1) - (1 << start_stage);
mask = ((1 << (end_stage + 1)) - 1) - ((1 << start_stage) - 1);

ad714x->read(ad714x->dev, STG_COM_INT_EN_REG, &data);
data |= 1 << start_stage;
data |= 1 << end_stage;
ad714x->write(ad714x->dev, STG_COM_INT_EN_REG, data);

ad714x->read(ad714x->dev, STG_HIGH_INT_EN_REG, &data);
Expand All @@ -175,10 +175,10 @@ static void ad714x_use_thr_int(struct ad714x_chip *ad714x,
unsigned short data;
unsigned short mask;

mask = ((1 << (end_stage + 1)) - 1) - (1 << start_stage);
mask = ((1 << (end_stage + 1)) - 1) - ((1 << start_stage) - 1);

ad714x->read(ad714x->dev, STG_COM_INT_EN_REG, &data);
data &= ~(1 << start_stage);
data &= ~(1 << end_stage);
ad714x->write(ad714x->dev, STG_COM_INT_EN_REG, data);

ad714x->read(ad714x->dev, STG_HIGH_INT_EN_REG, &data);
Expand Down

0 comments on commit e223cc7

Please sign in to comment.