From: "Henrik Rydberg" <rydberg@euromail.se>
To: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Cc: Rafi Rubin <rafi@seas.upenn.edu>, Jiri Kosina <jkosina@suse.cz>,
Stephane Chatty <chatty@enac.fr>,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] HID: ntrig: use input_configured() callback to set the name
Date: Wed, 20 Feb 2013 21:33:35 +0100 [thread overview]
Message-ID: <20130220203335.GA1430@polaris.bitmath.org> (raw)
In-Reply-To: <1360335090-24024-1-git-send-email-benjamin.tissoires@gmail.com>
On Fri, Feb 08, 2013 at 03:51:30PM +0100, Benjamin Tissoires wrote:
> The use of input_configured() allows the ntrig driver to actually
> change the name of the input and its bitmask before it is added to the
> input subsystem. Thus, the logs are coherents and udev catch the real
> bitmask when the device is added.
>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
> ---
> drivers/hid/hid-ntrig.c | 68 ++++++++++++++++++++++++-------------------------
> 1 file changed, 34 insertions(+), 34 deletions(-)
>
> diff --git a/drivers/hid/hid-ntrig.c b/drivers/hid/hid-ntrig.c
> index 2ffc0e3..7757e82 100644
> --- a/drivers/hid/hid-ntrig.c
> +++ b/drivers/hid/hid-ntrig.c
> @@ -858,12 +858,43 @@ not_claimed_input:
> return 1;
> }
>
> +static void ntrig_input_configured(struct hid_device *hid,
> + struct hid_input *hidinput)
> +
> +{
> + struct input_dev *input = hidinput->input;
> +
> + if (hidinput->report->maxfield < 1)
> + return;
> +
> + switch (hidinput->report->field[0]->application) {
> + case HID_DG_PEN:
> + input->name = "N-Trig Pen";
> + break;
> + case HID_DG_TOUCHSCREEN:
> + /* These keys are redundant for fingers, clear them
> + * to prevent incorrect identification */
> + __clear_bit(BTN_TOOL_PEN, input->keybit);
> + __clear_bit(BTN_TOOL_FINGER, input->keybit);
> + __clear_bit(BTN_0, input->keybit);
> + __set_bit(BTN_TOOL_DOUBLETAP, input->keybit);
> + /*
> + * The physical touchscreen (single touch)
> + * input has a value for physical, whereas
> + * the multitouch only has logical input
> + * fields.
> + */
> + input->name = (hidinput->report->field[0]->physical) ?
> + "N-Trig Touchscreen" :
> + "N-Trig MultiTouch";
> + break;
> + }
> +}
> +
> static int ntrig_probe(struct hid_device *hdev, const struct hid_device_id *id)
> {
> int ret;
> struct ntrig_data *nd;
> - struct hid_input *hidinput;
> - struct input_dev *input;
> struct hid_report *report;
>
> if (id->driver_data)
> @@ -901,38 +932,6 @@ static int ntrig_probe(struct hid_device *hdev, const struct hid_device_id *id)
> goto err_free;
> }
>
> -
> - list_for_each_entry(hidinput, &hdev->inputs, list) {
> - if (hidinput->report->maxfield < 1)
> - continue;
> -
> - input = hidinput->input;
> - switch (hidinput->report->field[0]->application) {
> - case HID_DG_PEN:
> - input->name = "N-Trig Pen";
> - break;
> - case HID_DG_TOUCHSCREEN:
> - /* These keys are redundant for fingers, clear them
> - * to prevent incorrect identification */
> - __clear_bit(BTN_TOOL_PEN, input->keybit);
> - __clear_bit(BTN_TOOL_FINGER, input->keybit);
> - __clear_bit(BTN_0, input->keybit);
> - __set_bit(BTN_TOOL_DOUBLETAP, input->keybit);
> - /*
> - * The physical touchscreen (single touch)
> - * input has a value for physical, whereas
> - * the multitouch only has logical input
> - * fields.
> - */
> - input->name =
> - (hidinput->report->field[0]
> - ->physical) ?
> - "N-Trig Touchscreen" :
> - "N-Trig MultiTouch";
> - break;
> - }
> - }
> -
> /* This is needed for devices with more recent firmware versions */
> report = hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[0x0a];
> if (report) {
> @@ -1023,6 +1022,7 @@ static struct hid_driver ntrig_driver = {
> .remove = ntrig_remove,
> .input_mapping = ntrig_input_mapping,
> .input_mapped = ntrig_input_mapped,
> + .input_configured = ntrig_input_configured,
> .usage_table = ntrig_grabbed_usages,
> .event = ntrig_event,
> };
> --
> 1.8.1
>
Acked-by: Henrik Rydberg <rydberg@euromail.se>
Thanks,
Henrik
prev parent reply other threads:[~2013-02-20 20:32 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-08 14:51 [PATCH] HID: ntrig: use input_configured() callback to set the name Benjamin Tissoires
2013-02-18 2:38 ` Rafi Rubin
2013-02-18 9:17 ` Jiri Kosina
2013-02-20 20:33 ` Henrik Rydberg [this message]
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=20130220203335.GA1430@polaris.bitmath.org \
--to=rydberg@euromail.se \
--cc=benjamin.tissoires@gmail.com \
--cc=chatty@enac.fr \
--cc=jkosina@suse.cz \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rafi@seas.upenn.edu \
/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.