From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: JD Cole <jd@jdc.me>
Cc: "linux-input@vger.kernel.org" <linux-input@vger.kernel.org>,
"jkosina@suse.cz" <jkosina@suse.cz>,
"bleung@chromium.org" <bleung@chromium.org>,
"Junge, Terry" <Terry.Junge@plantronics.com>,
"Dsouza, Sunil" <Sunil.Dsouza@plantronics.com>,
"Wesselman, Tom" <Tom.Wesselman@plantronics.com>
Subject: Re: [PATCH 1/2] Introduces Plantronics driver to fix errant mouse events.
Date: Fri, 31 Oct 2014 17:42:28 -0700 [thread overview]
Message-ID: <20141101004228.GB11631@dtor-ws> (raw)
In-Reply-To: <2DDA39F7-7F05-474E-BA9C-106B53006953@jdc.me>
On Fri, Oct 31, 2014 at 05:34:42PM -0700, JD Cole wrote:
> Dmitry,
>
> On Oct 31, 2014, at 4:53 PM, dmitry.torokhov@gmail.com wrote:
>
> > Hi JD,
> >
> > On Fri, Oct 31, 2014 at 07:20:13PM +0000, Cole, JD wrote:
> >> This version of the driver prevents Telephony pages which are not
> >> mapped as Consumer Control applications AND are not on the Consumer Page
> >> from being registered by the hid-input driver.
> >>
> >> Signed-off-by: JD Cole <jd.cole@plantronics.com>
> >> ---
> >> drivers/hid/Kconfig | 7 ++++
> >> drivers/hid/Makefile | 1 +
> > It looks like your MUA or MTA converted all TABs into spaces. Could you
> > please try resending?
>
> I’ll update the second patch once the formatting is known good.
>
>
> This version of the driver prevents Telephony pages which are not
> mapped as Consumer Control applications AND are not on the Consumer Page
> from being registered by the hid-input driver.
>
> Signed-off-by: JD Cole <jd.cole@plantronics.com>
This looks good to me.
Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---
> drivers/hid/Kconfig | 7 ++++
> drivers/hid/Makefile | 1 +
> drivers/hid/hid-core.c | 1 +
> drivers/hid/hid-ids.h | 2 ++
> drivers/hid/hid-plantronics.c | 78 +++++++++++++++++++++++++++++++++++++++++
> include/linux/hid.h | 3 ++
> 6 files changed, 92 insertions(+)
> create mode 100644 drivers/hid/hid-plantronics.c
>
> diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
> index f42df4d..bf1c74e 100644
> --- a/drivers/hid/Kconfig
> +++ b/drivers/hid/Kconfig
> @@ -613,6 +613,13 @@ config HID_PICOLCD_CIR
> ---help---
> Provide access to PicoLCD's CIR interface via remote control (LIRC).
>
> +config HID_PLANTRONICS
> + tristate "Plantronics USB HID Driver"
> + default !EXPERT
> + depends on HID
> + ---help---
> + Provides HID support for Plantronics telephony devices.
> +
> config HID_PRIMAX
> tristate "Primax non-fully HID-compliant devices"
> depends on HID
> diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
> index e2850d8..5e7ac59 100644
> --- a/drivers/hid/Makefile
> +++ b/drivers/hid/Makefile
> @@ -94,6 +94,7 @@ ifdef CONFIG_DEBUG_FS
> hid-picolcd-y += hid-picolcd_debugfs.o
> endif
>
> +obj-$(CONFIG_HID_PLANTRONICS) += hid-plantronics.o
> obj-$(CONFIG_HID_PRIMAX) += hid-primax.o
> obj-$(CONFIG_HID_ROCCAT) += hid-roccat.o hid-roccat-common.o \
> hid-roccat-arvo.o hid-roccat-isku.o hid-roccat-kone.o \
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index 73bd9e2..d50313c 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -1886,6 +1886,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
> { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) },
> { HID_USB_DEVICE(USB_VENDOR_ID_PENMOUNT, USB_DEVICE_ID_PENMOUNT_6000) },
> { HID_USB_DEVICE(USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE) },
> + { HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, HID_ANY_ID) },
> { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_KEYBOARD) },
> #if IS_ENABLED(CONFIG_HID_ROCCAT)
> { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_ARVO) },
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index e23ab8b..f9f476d 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -715,6 +715,8 @@
> #define USB_DEVICE_ID_ORTEK_PKB1700 0x1700
> #define USB_DEVICE_ID_ORTEK_WKB2000 0x2000
>
> +#define USB_VENDOR_ID_PLANTRONICS 0x047f
> +
> #define USB_VENDOR_ID_PANASONIC 0x04da
> #define USB_DEVICE_ID_PANABOARD_UBT780 0x1044
> #define USB_DEVICE_ID_PANABOARD_UBT880 0x104d
> diff --git a/drivers/hid/hid-plantronics.c b/drivers/hid/hid-plantronics.c
> new file mode 100644
> index 0000000..215cdbd
> --- /dev/null
> +++ b/drivers/hid/hid-plantronics.c
> @@ -0,0 +1,78 @@
> +/*
> + * Plantronics USB HID Driver
> + *
> + * Copyright (c) 2014 JD Cole <jd.cole@plantronics.com>
> + * Copyright (c) 2014 Terry Junge <terry.junge@plantronics.com>
> + */
> +
> +/*
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License as published by the Free
> + * Software Foundation; either version 2 of the License, or (at your option)
> + * any later version.
> + */
> +
> +#include "hid-ids.h"
> +
> +#include <linux/hid.h>
> +#include <linux/module.h>
> +
> +static int plantronics_input_mapping(struct hid_device *hdev,
> + struct hid_input *hi,
> + struct hid_field *field,
> + struct hid_usage *usage,
> + unsigned long **bit, int *max)
> +{
> + if (field->application == HID_CP_CONSUMERCONTROL
> + && (usage->hid & HID_USAGE_PAGE) == HID_UP_CONSUMER) {
> + hid_dbg(hdev, "usage: %08x (appl: %08x) - defaulted\n",
> + usage->hid, field->application);
> + return 0;
> + }
> +
> + hid_dbg(hdev, "usage: %08x (appl: %08x) - ignored\n",
> + usage->hid, field->application);
> +
> + return -1;
> +}
> +
> +static int plantronics_probe(struct hid_device *hdev,
> + const struct hid_device_id *id)
> +{
> + int ret;
> +
> + ret = hid_parse(hdev);
> + if (ret) {
> + hid_err(hdev, "parse failed\n");
> + goto err;
> + }
> +
> + ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
> + if (ret) {
> + hid_err(hdev, "hw start failed\n");
> + goto err;
> + }
> +
> + return 0;
> + err:
> + return ret;
> +}
> +
> +static const struct hid_device_id plantronics_devices[] = {
> + { HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, HID_ANY_ID) },
> + { }
> +};
> +MODULE_DEVICE_TABLE(hid, plantronics_devices);
> +
> +static struct hid_driver plantronics_driver = {
> + .name = "plantronics",
> + .id_table = plantronics_devices,
> + .input_mapping = plantronics_input_mapping,
> + .probe = plantronics_probe,
> +};
> +module_hid_driver(plantronics_driver);
> +
> +MODULE_AUTHOR("JD Cole <jd.cole@plantronics.com>");
> +MODULE_AUTHOR("Terry Junge <terry.junge@plantronics.com>");
> +MODULE_DESCRIPTION("Plantronics USB HID Driver");
> +MODULE_LICENSE("GPL");
> diff --git a/include/linux/hid.h b/include/linux/hid.h
> index 78ea9bf..a63f2aa 100644
> --- a/include/linux/hid.h
> +++ b/include/linux/hid.h
> @@ -234,6 +234,9 @@ struct hid_item {
> #define HID_DG_BARRELSWITCH 0x000d0044
> #define HID_DG_ERASER 0x000d0045
> #define HID_DG_TABLETPICK 0x000d0046
> +
> +#define HID_CP_CONSUMERCONTROL 0x000c0001
> +
> #define HID_DG_CONFIDENCE 0x000d0047
> #define HID_DG_WIDTH 0x000d0048
> #define HID_DG_HEIGHT 0x000d0049
> --
> 1.7.9.5
>
--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2014-11-01 0:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-31 19:20 [PATCH 1/2] Introduces Plantronics driver to fix errant mouse events Cole, JD
2014-10-31 23:53 ` dmitry.torokhov
2014-11-01 0:34 ` JD Cole
2014-11-01 0:42 ` Dmitry Torokhov [this message]
2014-11-01 2:12 ` Benjamin Tissoires
2014-11-03 13:22 ` Jiri Kosina
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=20141101004228.GB11631@dtor-ws \
--to=dmitry.torokhov@gmail.com \
--cc=Sunil.Dsouza@plantronics.com \
--cc=Terry.Junge@plantronics.com \
--cc=Tom.Wesselman@plantronics.com \
--cc=bleung@chromium.org \
--cc=jd@jdc.me \
--cc=jkosina@suse.cz \
--cc=linux-input@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).