From: Rafi Rubin <rafi@seas.upenn.edu>
To: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Cc: Henrik Rydberg <rydberg@euromail.se>,
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: Sun, 17 Feb 2013 21:38:42 -0500 [thread overview]
Message-ID: <51219432.8020902@seas.upenn.edu> (raw)
In-Reply-To: <1360335090-24024-1-git-send-email-benjamin.tissoires@gmail.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Looks good, and I can confirm it works fine.
Signed-off-by: Rafi Rubin <rafi@seas.upenn.edu>
On 02/08/13 09:51, 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, };
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQIcBAEBAgAGBQJRIZQxAAoJEPILXytRLnK26REP+weeAIqA4kfDn+tWqFOXIbcL
u65bkvNQmlEqx/mUeO7i7+tOsgTJnKpMy3ec5zsfyZd5DKs2yc3DTvrNXZbnqumZ
NkUYe7+aob1ge4+edJKw9nWDHp2E1sCm7VDNXVcEUTQN1ntMp/BjMenhDjgWhXVw
/3meslXrD3TOvXx/FzDLzJdV1WdBPeOHTHZq/yxsI3Z5jWCFba/Xz1CHc62sd2Og
hRTe9CthK3Hq9EQJXOc8qSBgNkhQ6XtBZb7KTw7FXAyKH3htus6t3c57ZPqGUUER
i6rasUYs3QGQQDG3tEU4wnWEtkS0i+9SO9L8tkUJwTKmdn7rDd5oAwovwMghkEkb
L1+tKL8EamC1oD8CMfHa7zCOTlkfTT0eRJiyHIErWpxn+VQxx2fpR7/MS2fF9n60
ecNGCRGrQo1UvIpYHmmGfigptcp6kyDgl8H9KBjafbQI5OWrJanwPi3aIXYhZmo8
XLjqCRJfgeJKFZD3mTdgqKL0hpNldskNUUauFD5GJblAB3UQ/MZ5Nmm+hWi3Y7y2
e0zxkPzw1puBFNNA06KLUNJ1DyibBZTPua1h36bD+OtqcRXIi8cdMHVf7bZhWSUK
ePVxgYjbgybAh4gMTgRQP/ucEuc6eDHGQ6MRe16ezwk3+fvUiLPntAtTXro1e3ck
nN0+r/NQSn7PKOdCqgeF
=ltkV
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2013-02-18 2:44 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 [this message]
2013-02-18 9:17 ` Jiri Kosina
2013-02-20 20:33 ` Henrik Rydberg
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=51219432.8020902@seas.upenn.edu \
--to=rafi@seas.upenn.edu \
--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=rydberg@euromail.se \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox