Re: [PATCH v3 13/20] Input: bcm5974 - Drop pressure and widthemulation

From: Dmitry Torokhov
Date: Thu Sep 13 2012 - 02:57:22 EST


On Sat, Sep 01, 2012 at 09:47:08PM +0200, Henrik Rydberg wrote:
> The ABS_PRESSURE and ABS_WIDTH have special scales, and were initially
> added solely for thumb and palm recognition in the synaptics driver.
> This never really get used, however, and userspace quickly moved to
> MT solutions instead. This patch drops the unused events.

How can you know that? There could still be people using ST emulation
with this device. I think we should keep it.

Thanks.

>
> Signed-off-by: Henrik Rydberg <rydberg@xxxxxxxxxxx>
> ---
> drivers/input/mouse/bcm5974.c | 26 +++++---------------------
> 1 file changed, 5 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c
> index 2de974c..e033d3a 100644
> --- a/drivers/input/mouse/bcm5974.c
> +++ b/drivers/input/mouse/bcm5974.c
> @@ -417,10 +417,6 @@ static void setup_events_to_report(struct input_dev *input_dev,
> {
> __set_bit(EV_ABS, input_dev->evbit);
>
> - input_set_abs_params(input_dev, ABS_PRESSURE,
> - 0, cfg->p.dim, cfg->p.fuzz, 0);
> - input_set_abs_params(input_dev, ABS_TOOL_WIDTH,
> - 0, cfg->w.dim, cfg->w.fuzz, 0);
> input_set_abs_params(input_dev, ABS_X,
> 0, cfg->x.dim, cfg->x.fuzz, 0);
> input_set_abs_params(input_dev, ABS_Y,
> @@ -504,9 +500,9 @@ static int report_tp_state(struct bcm5974 *dev, int size)
> const struct bcm5974_config *c = &dev->cfg;
> const struct tp_finger *f;
> struct input_dev *input = dev->input;
> - int raw_p, raw_w, raw_x, raw_y, raw_n, i;
> + int raw_p, raw_x, raw_y, raw_n, i;
> int ptest, origin, ibt = 0, nmin = 0, nmax = 0;
> - int abs_p = 0, abs_w = 0, abs_x = 0, abs_y = 0;
> + int abs_x = 0, abs_y = 0;
>
> if (size < c->tp_offset || (size - c->tp_offset) % SIZEOF_FINGER != 0)
> return -EIO;
> @@ -523,22 +519,19 @@ static int report_tp_state(struct bcm5974 *dev, int size)
> report_finger_data(input, c, &f[i]);
>
> raw_p = raw2int(f->touch_major);
> - raw_w = raw2int(f->tool_major);
> raw_x = raw2int(f->abs_x);
> raw_y = raw2int(f->abs_y);
>
> dprintk(9,
> "bcm5974: "
> - "raw: p: %+05d w: %+05d x: %+05d y: %+05d n: %d\n",
> - raw_p, raw_w, raw_x, raw_y, raw_n);
> + "raw: p: %+05d x: %+05d y: %+05d n: %d\n",
> + raw_p, raw_x, raw_y, raw_n);
>
> ptest = int2bound(&c->p, raw_p);
> origin = raw2int(f->origin);
>
> /* while tracking finger still valid, count all fingers */
> if (ptest > PRESSURE_LOW && origin) {
> - abs_p = ptest;
> - abs_w = int2bound(&c->w, raw_w);
> abs_x = int2bound(&c->x, raw_x - c->x.devmin);
> abs_y = int2bound(&c->y, c->y.devmax - raw_y);
> while (raw_n--) {
> @@ -568,18 +561,9 @@ static int report_tp_state(struct bcm5974 *dev, int size)
> input_report_key(input, BTN_TOOL_TRIPLETAP, dev->fingers == 3);
> input_report_key(input, BTN_TOOL_QUADTAP, dev->fingers > 3);
>
> - input_report_abs(input, ABS_PRESSURE, abs_p);
> - input_report_abs(input, ABS_TOOL_WIDTH, abs_w);
> -
> - if (abs_p) {
> + if (dev->fingers > 0) {
> input_report_abs(input, ABS_X, abs_x);
> input_report_abs(input, ABS_Y, abs_y);
> -
> - dprintk(8,
> - "bcm5974: abs: p: %+05d w: %+05d x: %+05d y: %+05d "
> - "nmin: %d nmax: %d n: %d ibt: %d\n", abs_p, abs_w,
> - abs_x, abs_y, nmin, nmax, dev->fingers, ibt);
> -
> }
>
> /* type 2 reports button events via ibt only */
> --
> 1.7.12
>

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/