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 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.