From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
To: Andrew Duggan <aduggan@synaptics.com>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
Jiri Kosina <jkosina@suse.cz>
Subject: Re: [PATCH 3/3] HID: rmi: Add support for the touchpad in the Razer Blade 14 laptop
Date: Fri, 19 Dec 2014 20:56:19 -0500 [thread overview]
Message-ID: <20141220015619.GE32189@mail.corp.redhat.com> (raw)
In-Reply-To: <1419029143-20484-3-git-send-email-aduggan@synaptics.com>
On Dec 19 2014 or thereabouts, Andrew Duggan wrote:
> Have hid-rmi handle all of the Razer Blade HID devices that are part of the
> composite USB device. This will allow hid-rmi to operate the touchpad in rmi
> mode while passing events from the other devices to hid-input.
>
> Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
> ---
> drivers/hid/hid-core.c | 1 +
> drivers/hid/hid-ids.h | 3 +++
> drivers/hid/hid-rmi.c | 15 +++++++++++++++
> 3 files changed, 19 insertions(+)
>
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index 81665b4..ef718f9 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -1982,6 +1982,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
> { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PRESENTER_8K_BT) },
> { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_WIIMOTE) },
> { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_WIIMOTE2) },
> + { HID_USB_DEVICE(USB_VENDOR_ID_RAZER, USB_DEVICE_ID_RAZER_BLADE_14) },
> { }
> };
>
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index 7460f34..7d0912d 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -767,6 +767,9 @@
> #define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001 0x3001
> #define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008 0x3008
>
> +#define USB_VENDOR_ID_RAZER 0x1532
> +#define USB_DEVICE_ID_RAZER_BLADE_14 0x011D
> +
> #define USB_VENDOR_ID_REALTEK 0x0bda
> #define USB_DEVICE_ID_REALTEK_READER 0x0152
>
> diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
> index cdfe165..849b35a 100644
> --- a/drivers/hid/hid-rmi.c
> +++ b/drivers/hid/hid-rmi.c
> @@ -1038,6 +1038,20 @@ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id)
>
> data->readReport = data->writeReport + data->output_report_size;
>
> + /*
> + * Unfortunately there is no way to query the touchpad in the
> + * Razer system to determine that it has pass through buttons
> + * so the only solution is to set phys buttons flag based on the
> + * vid and pid. In the future we should be able to query devices
> + * to find out. However, we need to know if the touchpad has
> + * physical buttons before the input_mapping gets called which
> + * is before we query the device. So we may have to resort to creating
> + * a list of devices based on product id.
> + */
> + if (hdev->vendor == USB_VENDOR_ID_RAZER &&
> + hdev->product == USB_DEVICE_ID_RAZER_BLADE_14)
> + data->device_flags |= RMI_DEVICE_HAS_PHYS_BUTTONS;
This whole test can be replace by a field in rmi_id (.driver_data) as
mentioned in 2/3.
> +
> init_waitqueue_head(&data->wait);
>
> mutex_init(&data->page_mutex);
> @@ -1074,6 +1088,7 @@ static void rmi_remove(struct hid_device *hdev)
>
> static const struct hid_device_id rmi_id[] = {
> { HID_DEVICE(HID_BUS_ANY, HID_GROUP_RMI, HID_ANY_ID, HID_ANY_ID) },
> + { HID_USB_DEVICE(USB_VENDOR_ID_RAZER, USB_DEVICE_ID_RAZER_BLADE_14) },
Nitpicking, I'd prefer having the most generic one at the end. In case
you need to specify other flags to some specific devices, they will have
to be inserted before the catchall rule, so let's start now :).
> { }
> };
> MODULE_DEVICE_TABLE(hid, rmi_id);
> --
> 2.1.0
>
Cheers,
Benjamin
next prev parent reply other threads:[~2014-12-20 1:56 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-19 22:45 [PATCH 1/3] HID: rmi: Support non rmi devices by passing events to hid-input Andrew Duggan
2014-12-19 22:45 ` [PATCH 2/3] HID: rmi: Support touchpads with external buttons Andrew Duggan
2014-12-20 1:53 ` Benjamin Tissoires
2014-12-19 22:45 ` [PATCH 3/3] HID: rmi: Add support for the touchpad in the Razer Blade 14 laptop Andrew Duggan
2014-12-20 1:56 ` Benjamin Tissoires [this message]
2014-12-20 1:42 ` [PATCH 1/3] HID: rmi: Support non rmi devices by passing events to hid-input Benjamin Tissoires
2014-12-22 13:24 ` 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=20141220015619.GE32189@mail.corp.redhat.com \
--to=benjamin.tissoires@redhat.com \
--cc=aduggan@synaptics.com \
--cc=jkosina@suse.cz \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@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).