From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: Andrew Duggan <aduggan@synaptics.com>,
Lyude Paul <thatslyude@gmail.com>,
Christopher Heiny <cheiny@synaptics.com>,
Nick Dyer <nick@shmanahar.org>,
Bjorn Andersson <bjorn.andersson@linaro.org>,
Dennis Wassenberg <dennis.wassenberg@secunet.com>,
linux-kernel@vger.kernel.org, linux-input@vger.kernel.org
Subject: Re: [PATCH v3 04/18] Input: synaptics-rmi4 - Add parameters for dribble packets and palm detect gesture
Date: Tue, 8 Nov 2016 16:51:40 -0800 [thread overview]
Message-ID: <20161109005140.GI8719@dtor-ws> (raw)
In-Reply-To: <1476373872-18027-5-git-send-email-benjamin.tissoires@redhat.com>
On Thu, Oct 13, 2016 at 05:50:58PM +0200, Benjamin Tissoires wrote:
> From: Andrew Duggan <aduggan@synaptics.com>
>
> The rmi_f11 driver currently disables dribble packets and the palm detect
> gesture for all devices. This patch creates a parameter in the 2d sensor
> platform data for controlling this functionality on a per device basis.
>
> For more information on dribble packets:
> Commit 05ba999fcabb ("HID: rmi: disable dribble packets on Synaptics
> touchpads")
>
> For more information on the palm detect gesture:
> Commit f097deef59a6 ("HID: rmi: disable palm detect gesture when present")
>
> Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Applied, thank you.
>
> ---
>
> new in v3
> ---
> drivers/input/rmi4/rmi_2d_sensor.h | 2 ++
> drivers/input/rmi4/rmi_f01.c | 6 +++---
> drivers/input/rmi4/rmi_f11.c | 32 ++++++++++++++++++++++++++++----
> include/linux/rmi.h | 21 +++++++++++++--------
> 4 files changed, 46 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/input/rmi4/rmi_2d_sensor.h b/drivers/input/rmi4/rmi_2d_sensor.h
> index 77fcdfe..c871bef 100644
> --- a/drivers/input/rmi4/rmi_2d_sensor.h
> +++ b/drivers/input/rmi4/rmi_2d_sensor.h
> @@ -67,6 +67,8 @@ struct rmi_2d_sensor {
> u8 report_rel;
> u8 x_mm;
> u8 y_mm;
> + enum rmi_reg_state dribble;
> + enum rmi_reg_state palm_detect;
> };
>
> int rmi_2d_sensor_of_probe(struct device *dev,
> diff --git a/drivers/input/rmi4/rmi_f01.c b/drivers/input/rmi4/rmi_f01.c
> index fac81fc..2cfa9f6 100644
> --- a/drivers/input/rmi4/rmi_f01.c
> +++ b/drivers/input/rmi4/rmi_f01.c
> @@ -327,12 +327,12 @@ static int rmi_f01_probe(struct rmi_function *fn)
> }
>
> switch (pdata->power_management.nosleep) {
> - case RMI_F01_NOSLEEP_DEFAULT:
> + case RMI_REG_STATE_DEFAULT:
> break;
> - case RMI_F01_NOSLEEP_OFF:
> + case RMI_REG_STATE_OFF:
> f01->device_control.ctrl0 &= ~RMI_F01_CTRL0_NOSLEEP_BIT;
> break;
> - case RMI_F01_NOSLEEP_ON:
> + case RMI_REG_STATE_ON:
> f01->device_control.ctrl0 |= RMI_F01_CTRL0_NOSLEEP_BIT;
> break;
> }
> diff --git a/drivers/input/rmi4/rmi_f11.c b/drivers/input/rmi4/rmi_f11.c
> index 3218742..cce82a1 100644
> --- a/drivers/input/rmi4/rmi_f11.c
> +++ b/drivers/input/rmi4/rmi_f11.c
> @@ -1142,6 +1142,8 @@ static int rmi_f11_initialize(struct rmi_function *fn)
> sensor->topbuttonpad = f11->sensor_pdata.topbuttonpad;
> sensor->kernel_tracking = f11->sensor_pdata.kernel_tracking;
> sensor->dmax = f11->sensor_pdata.dmax;
> + sensor->dribble = f11->sensor_pdata.dribble;
> + sensor->palm_detect = f11->sensor_pdata.palm_detect;
>
> if (f11->sens_query.has_physical_props) {
> sensor->x_mm = f11->sens_query.x_sensor_size_mm;
> @@ -1209,11 +1211,33 @@ static int rmi_f11_initialize(struct rmi_function *fn)
> ctrl->ctrl0_11[RMI_F11_DELTA_Y_THRESHOLD] =
> sensor->axis_align.delta_y_threshold;
>
> - if (f11->sens_query.has_dribble)
> - ctrl->ctrl0_11[0] = ctrl->ctrl0_11[0] & ~BIT(6);
> + if (f11->sens_query.has_dribble) {
> + switch (sensor->dribble) {
> + case RMI_REG_STATE_OFF:
> + ctrl->ctrl0_11[0] = ctrl->ctrl0_11[0] & ~BIT(6);
Changed to
ctrl->ctrl0_11[0] &= ~BIT(6);
> + break;
> + case RMI_REG_STATE_ON:
> + ctrl->ctrl0_11[0] = ctrl->ctrl0_11[0] | BIT(6);
> + break;
> + case RMI_REG_STATE_DEFAULT:
> + default:
> + break;
> + }
> + }
>
> - if (f11->sens_query.has_palm_det)
> - ctrl->ctrl0_11[11] = ctrl->ctrl0_11[11] & ~BIT(0);
> + if (f11->sens_query.has_palm_det) {
> + switch (sensor->palm_detect) {
> + case RMI_REG_STATE_OFF:
> + ctrl->ctrl0_11[11] = ctrl->ctrl0_11[11] & ~BIT(0);
> + break;
> + case RMI_REG_STATE_ON:
> + ctrl->ctrl0_11[11] = ctrl->ctrl0_11[11] & BIT(0);
> + break;
> + case RMI_REG_STATE_DEFAULT:
> + default:
> + break;
> + }
> + }
>
> rc = f11_write_control_regs(fn, &f11->sens_query,
> &f11->dev_controls, fn->fd.query_base_addr);
> diff --git a/include/linux/rmi.h b/include/linux/rmi.h
> index 5944e6c..ac904bb 100644
> --- a/include/linux/rmi.h
> +++ b/include/linux/rmi.h
> @@ -99,6 +99,8 @@ struct rmi_2d_sensor_platform_data {
> bool topbuttonpad;
> bool kernel_tracking;
> int dmax;
> + int dribble;
> + int palm_detect;
> };
>
> /**
> @@ -116,14 +118,17 @@ struct rmi_f30_data {
> bool disable;
> };
>
> -/**
> - * struct rmi_f01_power - override default power management settings.
> - *
> +
> +/*
> + * Set the state of a register
> + * DEFAULT - use the default value set by the firmware config
> + * OFF - explicitly disable the register
> + * ON - explicitly enable the register
> */
> -enum rmi_f01_nosleep {
> - RMI_F01_NOSLEEP_DEFAULT = 0,
> - RMI_F01_NOSLEEP_OFF = 1,
> - RMI_F01_NOSLEEP_ON = 2
> +enum rmi_reg_state {
> + RMI_REG_STATE_DEFAULT = 0,
> + RMI_REG_STATE_OFF = 1,
> + RMI_REG_STATE_ON = 2
> };
>
> /**
> @@ -143,7 +148,7 @@ enum rmi_f01_nosleep {
> * when the touch sensor is in doze mode, in units of 10ms.
> */
> struct rmi_f01_power_management {
> - enum rmi_f01_nosleep nosleep;
> + enum rmi_reg_state nosleep;
> u8 wakeup_threshold;
> u8 doze_holdoff;
> u8 doze_interval;
> --
> 2.7.4
>
--
Dmitry
next prev parent reply other threads:[~2016-11-09 0:51 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-13 15:50 [PATCH v3 00/18] Synaptics RMI4 and SMBus implementation Benjamin Tissoires
2016-10-13 15:50 ` [PATCH v3 01/18] Input: synaptics-rmi4 - Move IRQ handling to rmi_driver Benjamin Tissoires
2016-11-09 0:47 ` Dmitry Torokhov
2016-10-13 15:50 ` [PATCH v3 02/18] Input: synaptics-rmi4 - factor out functions from probe Benjamin Tissoires
2016-10-13 15:50 ` [PATCH v3 03/18] Input: synaptics-rmi4 - Handle incomplete input data Benjamin Tissoires
2016-11-09 0:46 ` Dmitry Torokhov
2016-10-13 15:50 ` [PATCH v3 04/18] Input: synaptics-rmi4 - Add parameters for dribble packets and palm detect gesture Benjamin Tissoires
2016-11-09 0:51 ` Dmitry Torokhov [this message]
2016-10-13 15:50 ` [PATCH v3 05/18] Input: synaptics-rmi4 - Add support for controlling dribble packets in F12 Benjamin Tissoires
2016-11-09 1:02 ` Dmitry Torokhov
2016-10-13 15:51 ` [PATCH v3 06/18] Input: synaptics-rmi4 - Set the ABS_MT_TOOL_TYPE bit to report tool type Benjamin Tissoires
2016-11-09 1:03 ` Dmitry Torokhov
2016-10-13 15:51 ` [PATCH v3 07/18] Input: synaptics-rmi4 - add SMBus support Benjamin Tissoires
2016-11-09 1:08 ` Dmitry Torokhov
2016-10-13 15:51 ` [PATCH v3 08/18] Input: serio - store the pt_buttons in the struct serio directly Benjamin Tissoires
2016-10-13 15:51 ` [PATCH v3 09/18] Input: synaptics-rmi4 - have only one struct platform data Benjamin Tissoires
2016-10-13 15:51 ` [PATCH v3 10/18] Input: synaptics-rmi4 - add support for F03 Benjamin Tissoires
2016-10-13 15:51 ` [PATCH v3 11/18] Input: synaptics-rmi4 - f03: grab data passed by transport device Benjamin Tissoires
2016-10-13 15:51 ` [PATCH v3 12/18] Input: synaptics-rmi4 - Add rmi_find_function() Benjamin Tissoires
2016-10-13 15:51 ` [PATCH v3 13/18] Input: synaptics-rmi4 - f30/f03: Forward mechanical buttons on buttonpads to PS/2 guest Benjamin Tissoires
2016-10-13 15:51 ` [PATCH v3 14/18] Input: synaptics - allocate a Synaptics Intertouch device Benjamin Tissoires
2016-10-13 15:51 ` [PATCH v3 15/18] Input: synaptics-rmi4 - add rmi_platform Benjamin Tissoires
2016-10-13 15:51 ` [PATCH v3 16/18] Input: synaptics-rmi4 - smbus: call psmouse_deactivate before binding/resume Benjamin Tissoires
2016-10-13 15:51 ` [PATCH v3 17/18] Input: synaptics-rmi4 - smbus: on resume, try 3 times if init fails Benjamin Tissoires
2016-10-13 15:51 ` [PATCH v3 18/18] Input: synaptics-rmi4 - fix documentation of rmi_2d_sensor_platform_data Benjamin Tissoires
2016-11-04 8:23 ` [PATCH v3 00/18] Synaptics RMI4 and SMBus implementation Benjamin Tissoires
2016-11-07 23:17 ` Nick Dyer
2016-11-08 15:09 ` Benjamin Tissoires
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=20161109005140.GI8719@dtor-ws \
--to=dmitry.torokhov@gmail.com \
--cc=aduggan@synaptics.com \
--cc=benjamin.tissoires@redhat.com \
--cc=bjorn.andersson@linaro.org \
--cc=cheiny@synaptics.com \
--cc=dennis.wassenberg@secunet.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nick@shmanahar.org \
--cc=thatslyude@gmail.com \
/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: link
Be 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.