Generate aliases for hid device modules to support autoloading.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
---
include/linux/hid.h | 1 +
include/linux/mod_devicetable.h | 9 +++++++++
scripts/mod/file2alias.c | 18 ++++++++++++++++++
3 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 6fc10d1..8466292 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -69,6 +69,7 @@
#include <linux/types.h>
#include <linux/slab.h>
#include <linux/list.h>
+#include <linux/mod_devicetable.h> /* hid_device_id */
#include <linux/timer.h>
#include <linux/workqueue.h>
#include <linux/input.h>
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index d73ecea..72d34c1 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -131,6 +131,15 @@ struct usb_device_id {
#define USB_DEVICE_ID_MATCH_INT_SUBCLASS 0x0100
#define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200
+#define HID_ANY_ID (~0)
+
+struct hid_device_id {
+ __u16 bus;
+ __u32 vendor;
+ __u32 product;
+ kernel_ulong_t driver_data;
+};
+
/* s390 CCW devices */
struct ccw_device_id {
__u16 match_flags; /* which fields to match against */
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index e04c421..a19e385 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -199,6 +199,20 @@ static void do_usb_table(void *symval, unsigned long size,
do_usb_entry_multi(symval + i, mod);
}
+/* Looks like: hid:bNvNpN */
+static int do_hid_entry(const char *filename,
+ struct hid_device_id *id, char *alias)
+{
+ id->vendor = TO_NATIVE(id->vendor);
+ id->product = TO_NATIVE(id->product);
+
+ sprintf(alias, "hid:b%04X", id->bus);
+ ADD(alias, "v", id->vendor != HID_ANY_ID, id->vendor);
+ ADD(alias, "p", id->product != HID_ANY_ID, id->product);
+
+ return 1;
+}
+
/* Looks like: ieee1394:venNmoNspNverN */
static int ...Make a bus from hid core. This is the first step for converting all the
quirks and separate almost-drivers into real drivers attached to this bus.
It's implemented to change behaviour in very tiny manner, so that no driver
needs to be changed this time.
Also add generic drivers for both usb and bt into usbhid or hidp
respectively which will bind all non-blacklisted device. Those blacklisted
will be either grabbed by special drivers or by nobody if they are broken at
the very rude base.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/hid/hid-core.c | 476 ++++++++++++++++++++++++++++++++++-------
drivers/hid/hid-input.c | 2 +-
drivers/hid/usbhid/hid-core.c | 44 +++-
drivers/hid/usbhid/usbhid.h | 2 +-
include/linux/hid.h | 100 ++++++++-
net/bluetooth/hidp/core.c | 64 +++++-
6 files changed, 584 insertions(+), 104 deletions(-)
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index f43d6d3..a444c65 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -534,9 +534,10 @@ static void hid_free_report(struct hid_report *report)
* Free a device structure, all reports, and all fields.
*/
-void hid_free_device(struct hid_device *device)
+static void hid_device_release(struct device *dev)
{
- unsigned i,j;
+ struct hid_device *device = container_of(dev, struct hid_device, dev);
+ unsigned i, j;
for (i = 0; i < HID_REPORT_TYPES; i++) {
struct hid_report_enum *report_enum = device->report_enum + i;
@@ -552,7 +553,6 @@ void hid_free_device(struct hid_device *device)
kfree(device->collection);
kfree(device);
}
-EXPORT_SYMBOL_GPL(hid_free_device);
/*
* Fetch a report description item from the data stream. We support long
@@ -622,18 +622,24 @@ static u8 *fetch_item(__u8 *start, __u8 *end, struct hid_item *item)
return NULL;
}
-/*
+/**
+ * hid_parse_report - parse device report
+ *
+ * @device: hid device
+ * @start: report start
+ * @size: report size
+ *
* ...Next step for complete hid bus, this patch includes:
- call parser either from probe or from hid-core if there is no probe.
- add ll_driver structure and centralize some stuff there (open, close...)
- split and merge usb_hid_configure and hid_probe into several functions
to allow hooks/fixes between them
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/hid/hid-core.c | 24 ++-
drivers/hid/hid-input.c | 16 ++-
drivers/hid/hidraw.c | 6 +-
drivers/hid/usbhid/hid-core.c | 330 ++++++++++++++++++++++++-----------------
include/linux/hid.h | 94 +++++++++++-
net/bluetooth/hidp/core.c | 191 ++++++++++++++----------
net/bluetooth/hidp/hidp.h | 2 +
7 files changed, 424 insertions(+), 239 deletions(-)
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index a444c65..02f315f 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -648,6 +648,9 @@ int hid_parse_report(struct hid_device *device, __u8 *start,
hid_parser_reserved
};
+ if (device->driver->report_fixup)
+ device->driver->report_fixup(device, start, size);
+
device->rdesc = kmalloc(size, GFP_KERNEL);
if (device->rdesc == NULL)
return -ENOMEM;
@@ -1154,15 +1157,20 @@ static int hid_device_probe(struct device *dev)
int ret = 0;
if (!hdev->driver) {
- if (hdrv->probe) {
- ret = -ENODEV;
+ id = hid_match_id(hdev, hdrv->id_table);
+ if (id == NULL)
+ return -ENODEV;
- id = hid_match_id(hdev, hdrv->id_table);
- if (id)
- ret = hdrv->probe(hdev, id);
+ hdev->driver = hdrv;
+ if (hdrv->probe) {
+ ret = hdrv->probe(hdev, id);
+ } else { /* default probe */
+ ret = hid_parse(hdev);
+ if (!ret)
+ ret = hid_hw_start(hdev);
}
- if (!ret)
- hdev->driver = hdrv;
+ if (ret)
+ hdev->driver = NULL;
}
return ret;
}
@@ -1175,6 +1183,8 @@ static int hid_device_remove(struct device *dev)
if (hdrv) {
if (hdrv->remove)
hdrv->remove(hdev);
+ else /* default ...Move ids from hid-quirks.c into separate file, since it will be needed in more than one place. Signed-off-by: Jiri Slaby <jslaby@suse.cz> --- drivers/hid/hid-ids.h | 412 +++++++++++++++++++++++++++++++++++++++ drivers/hid/usbhid/hid-quirks.c | 391 +------------------------------------ 2 files changed, 413 insertions(+), 390 deletions(-) create mode 100644 drivers/hid/hid-ids.h diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h new file mode 100644 index 0000000..0f8c45c --- /dev/null +++ b/drivers/hid/hid-ids.h @@ -0,0 +1,412 @@ +/* + * USB HID quirks support for Linux + * + * Copyright (c) 1999 Andreas Gal + * Copyright (c) 2000-2005 Vojtech Pavlik <vojtech@suse.cz> + * Copyright (c) 2005 Michael Haboustak <mike-@cinci.rr.com> for Concept2, Inc + * Copyright (c) 2006-2007 Jiri Kosina + * Copyright (c) 2007 Paul Walmsley + */ + +/* + * 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. + */ + +#ifndef HID_IDS_H_FILE +#define HID_IDS_H_FILE + +#define USB_VENDOR_ID_A4TECH 0x09da +#define USB_DEVICE_ID_A4TECH_WCP32PU 0x0006 +#define USB_DEVICE_ID_A4TECH_X5_005D 0x000a + +#define USB_VENDOR_ID_AASHIMA 0x06d6 +#define USB_DEVICE_ID_AASHIMA_GAMEPAD 0x0025 +#define USB_DEVICE_ID_AASHIMA_PREDATOR 0x0026 + +#define USB_VENDOR_ID_ACECAD 0x0460 +#define USB_DEVICE_ID_ACECAD_FLAIR 0x0004 +#define USB_DEVICE_ID_ACECAD_302 0x0008 + +#define USB_VENDOR_ID_ADS_TECH 0x06e1 +#define USB_DEVICE_ID_ADS_TECH_RADIO_SI470X 0xa155 + +#define USB_VENDOR_ID_AFATECH 0x15a4 +#define USB_DEVICE_ID_AFATECH_AF9016 0x9016 + +#define USB_VENDOR_ID_AIPTEK 0x08ca +#define USB_DEVICE_ID_AIPTEK_01 0x0001 +#define USB_DEVICE_ID_AIPTEK_10 0x0010 +#define USB_DEVICE_ID_AIPTEK_20 0x0020 +#define USB_DEVICE_ID_AIPTEK_21 0x0021 +#define ...
This mapping are currently used on 2 placces and will be needed by more
quirk drivers, so move them to hid.h to allow them to use it.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/hid/hid-input-quirks.c | 71 ++++++++++++++++++++-------------------
drivers/hid/hid-input.c | 16 +++++----
include/linux/hid.h | 56 +++++++++++++++++++++++++++++++-
3 files changed, 100 insertions(+), 43 deletions(-)
diff --git a/drivers/hid/hid-input-quirks.c b/drivers/hid/hid-input-quirks.c
index 4c2052c..51ae184 100644
--- a/drivers/hid/hid-input-quirks.c
+++ b/drivers/hid/hid-input-quirks.c
@@ -16,16 +16,14 @@
#include <linux/input.h>
#include <linux/hid.h>
-#define map_abs(c) do { usage->code = c; usage->type = EV_ABS; *bit = input->absbit; *max = ABS_MAX; } while (0)
-#define map_rel(c) do { usage->code = c; usage->type = EV_REL; *bit = input->relbit; *max = REL_MAX; } while (0)
-#define map_key(c) do { usage->code = c; usage->type = EV_KEY; *bit = input->keybit; *max = KEY_MAX; } while (0)
-#define map_led(c) do { usage->code = c; usage->type = EV_LED; *bit = input->ledbit; *max = LED_MAX; } while (0)
+#define map_rel(c) hid_map_usage(hidinput, usage, bit, max, EV_REL, (c))
+#define map_key(c) hid_map_usage(hidinput, usage, bit, max, EV_KEY, (c))
-#define map_abs_clear(c) do { map_abs(c); clear_bit(c, *bit); } while (0)
-#define map_key_clear(c) do { map_key(c); clear_bit(c, *bit); } while (0)
+#define map_key_clear(c) hid_map_usage_clear(hidinput, usage, bit, \
+ max, EV_KEY, (c))
-static int quirk_belkin_wkbd(struct hid_usage *usage, struct input_dev *input,
- unsigned long **bit, int *max)
+static int quirk_belkin_wkbd(struct hid_usage *usage,
+ struct hid_input *hidinput, unsigned long **bit, int *max)
{
if ((usage->hid & HID_USAGE_PAGE) != HID_UP_CONSUMER)
return 0;
@@ -40,8 +38,8 @@ static int quirk_belkin_wkbd(struct hid_usage *usage, struct input_dev *input,
return 1;
}
-static ...Move them from core code to a separate driver.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/hid/Kconfig | 13 +++++++
drivers/hid/Makefile | 2 +
drivers/hid/hid-core.c | 5 +++
drivers/hid/hid-logitech.c | 74 +++++++++++++++++++++++++++++++++++++++
drivers/hid/usbhid/hid-quirks.c | 23 ------------
include/linux/hid.h | 1 -
6 files changed, 94 insertions(+), 24 deletions(-)
create mode 100644 drivers/hid/hid-logitech.c
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index cacf89e..066e8c0 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
@@ -67,4 +67,17 @@ config HIDRAW
source "drivers/hid/usbhid/Kconfig"
+menu "Special HID drivers"
+ depends on HID
+
+config HID_LOGITECH
+ tristate "Logitech"
+ default m
+ depends on USB_HID
+ ---help---
+ Support for some Logitech devices which breaks less or more
+ HID specification.
+
+endmenu
+
endif # HID_SUPPORT
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
index 275dc52..cae036b 100644
--- a/drivers/hid/Makefile
+++ b/drivers/hid/Makefile
@@ -8,6 +8,8 @@ obj-$(CONFIG_HID) += hid.o
hid-$(CONFIG_HID_DEBUG) += hid-debug.o
hid-$(CONFIG_HIDRAW) += hidraw.o
+obj-$(CONFIG_HID_LOGITECH) += hid-logitech.o
+
obj-$(CONFIG_USB_HID) += usbhid/
obj-$(CONFIG_USB_MOUSE) += usbhid/
obj-$(CONFIG_USB_KBD) += usbhid/
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 02f315f..9aafc27 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -33,6 +33,8 @@
#include <linux/hid-debug.h>
#include <linux/hidraw.h>
+#include "hid-ids.h"
+
/*
* Version Information
*/
@@ -1124,6 +1126,9 @@ static const struct hid_device_id *hid_match_id(struct hid_device *hdev,
}
static const struct hid_device_id hid_usb_blacklist[] = {
+ { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_MX3000_RECEIVER) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_S510_RECEIVER) ...Move ignore quirks from usbhid-quirks into hid-core code. Also don't output
warning when ENODEV is error code in usbhid and try ordinal input in hidp
when that error is returned.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/hid/hid-core.c | 211 +++++++++++++++++++++++++++++++++++++++
drivers/hid/usbhid/hid-core.c | 3 +-
drivers/hid/usbhid/hid-quirks.c | 196 ------------------------------------
net/bluetooth/hidp/core.c | 2 +-
4 files changed, 214 insertions(+), 198 deletions(-)
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 9aafc27..3406c1e 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1228,6 +1228,212 @@ static struct bus_type hid_bus_type = {
.uevent = hid_uevent,
};
+static const struct hid_device_id hid_usb_ignore[] = {
+ { HID_USB_DEVICE(USB_VENDOR_ID_ADS_TECH, USB_DEVICE_ID_ADS_TECH_RADIO_SI470X) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_01) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_10) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_20) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_21) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_22) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_23) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_24) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_AIRCABLE, USB_DEVICE_ID_AIRCABLE1) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_ALCOR, USB_DEVICE_ID_ALCOR_USBRS232) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_ASUS, USB_DEVICE_ID_ASUS_LCM)},
+ { HID_USB_DEVICE(USB_VENDOR_ID_BERKSHIRE, USB_DEVICE_ID_BERKSHIRE_PCWD) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_CIDC, 0x0103) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_CYGNAL, USB_DEVICE_ID_CYGNAL_RADIO_SI470X) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_CMEDIA, USB_DEVICE_ID_CM109) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_HIDCOM) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, ...Move them from core code to separate driver. Signed-off-by: Jiri Slaby <jslaby@suse.cz> --- drivers/hid/Kconfig | 14 ++ drivers/hid/Makefile | 1 + drivers/hid/hid-apple.c | 471 +++++++++++++++++++++++++++++++++++++++ drivers/hid/hid-core.c | 33 +++- drivers/hid/hid-input-quirks.c | 8 - drivers/hid/hid-input.c | 219 +------------------ drivers/hid/usbhid/Kconfig | 11 - drivers/hid/usbhid/hid-quirks.c | 43 ---- include/linux/hid.h | 12 - net/bluetooth/hidp/core.c | 22 -- 10 files changed, 519 insertions(+), 315 deletions(-) create mode 100644 drivers/hid/hid-apple.c diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index 066e8c0..9a9fd7d 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig @@ -78,6 +78,20 @@ config HID_LOGITECH Support for some Logitech devices which breaks less or more HID specification. +config HID_APPLE + tristate "Apple" + default m + depends on (USB_HID || BT_HIDP) + ---help--- + Support for some Apple devices which less or more break + HID specification. + + Say Y here if you want support for the special keys (Fn, Numlock) on + Apple iBooks, PowerBooks, MacBooks, MacBook Pros and aluminum USB + keyboards. + + If unsure, say N. + endmenu endif # HID_SUPPORT diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile index cae036b..8a5cbbe 100644 --- a/drivers/hid/Makefile +++ b/drivers/hid/Makefile @@ -9,6 +9,7 @@ hid-$(CONFIG_HID_DEBUG) += hid-debug.o hid-$(CONFIG_HIDRAW) += hidraw.o obj-$(CONFIG_HID_LOGITECH) += hid-logitech.o +obj-$(CONFIG_HID_APPLE) += hid-apple.o obj-$(CONFIG_USB_HID) += usbhid/ obj-$(CONFIG_USB_MOUSE) += usbhid/ diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c new file mode 100644 index 0000000..ce1c21f --- /dev/null +++ b/drivers/hid/hid-apple.c @@ -0,0 +1,471 @@ +/* + * USB HID quirks support for Linux + * + * Copyright (c) 1999 Andreas Gal + * ...
Add compat option to hid code to allow loading of all modules on
systems which don't allow autoloading because of old userspace.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
---
drivers/hid/Kconfig | 11 +++++++++++
drivers/hid/Makefile | 22 ++++++++++++++++++++++
drivers/hid/hid-apple.c | 2 ++
drivers/hid/hid-core.c | 12 ++++++++++++
drivers/hid/hid-dummy.c | 11 +++++++++++
drivers/hid/hid-logitech.c | 2 ++
include/linux/hid.h | 13 +++++++++++--
7 files changed, 71 insertions(+), 2 deletions(-)
create mode 100644 drivers/hid/hid-dummy.c
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index 9a9fd7d..ba9ca39 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
@@ -70,6 +70,17 @@ source "drivers/hid/usbhid/Kconfig"
menu "Special HID drivers"
depends on HID
+config HID_COMPAT
+ bool "Load all HID drivers on hid core load"
+ ---help---
+ Compatible option for older userspace. If you have system without udev
+ support of module loading through aliases and also old
+ module-init-tools which can't handle hid bus, choose Y here. Otherwise
+ say N. If you say N and your userspace is old enough, the only
+ functionality you loose is modules autoloading.
+
+ If unsure, say N.
+
config HID_LOGITECH
tristate "Logitech"
default m
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
index 8a5cbbe..c5bca8f 100644
--- a/drivers/hid/Makefile
+++ b/drivers/hid/Makefile
@@ -15,3 +15,25 @@ obj-$(CONFIG_USB_HID) += usbhid/
obj-$(CONFIG_USB_MOUSE) += usbhid/
obj-$(CONFIG_USB_KBD) += usbhid/
+targets := hid-dummy.h
+
+ifdef CONFIG_HID_COMPAT
+
+obj-m += hid-dummy.o
+
+$(srctree)/$(src)/hid-dummy.c: $(obj)/hid-dummy.h
+
+$(obj)/hid-dummy.h: $(filter-out $(srctree)/drivers/hid/hid-dummy.c,$(wildcard $(srctree)/drivers/hid/*.c))
+ @echo -e 'static void __always_inline hid_dummy_load(void)\n{' > $@
+ @FUNS=`grep -h 'HID_COMPAT_LOAD_DRIVER(' ...I would prefer to see this done explicit in favour of some magic makefile fragment as the above. It is much simpler to understand if done explicit. And it is not like we are talking 10 or 50 files here. Sam --
Sorry, I don't understand you at all. Could you re-formulate what do you want to see rather than this? Maybe an example would be good. --
The code above generates the file hid-dummy.h based on the HID_COMPAT_LOAD_DRIVER(*) text in a few .c files. So what I try to say is that we should replace the above with a hid-dummy.h file that is handedited. We could stick a few comments in the .h file explaining the usage too. Or maybe I'm just confused and misunderstood what the code does? Sam --
Ah, yes, I got it now. I mulled over that, we're talking about 15 or so drivers and it's pretty ugly. I'll drop hid-dummy.h file generation, since it will be no I think it's not worth it. It's just for 2, 3 kernel releases and then we will say it goodbye. Thanks. --
this is pretty ugly. Please add a line to feature-removal-schedule.txt to mark that this will be removed within the next 6 month. At that point every distribution should have updated udev and module-init-tools. Regards Marcel --
why do we have to have this within #ifdefs. The HID_BLUETOOTH_DEVICE should work even without Bluetooth compiled. It depends only on having the BUS_BLUETOOTH present. In theory we could have a different Bluetooth stack providing BUS_BLUETOOTH devices (like through uinput). no shortcut please. Use hid_bluetooth_blacklist. And why do we need two separate blacklists anyway. We use HID_USB_DEVICE and HID_BLUETOOTH_DEVICE. Both carry the bus information with them. I really like to see this go away :) Acked-by: Marcel Holtmann <marcel@holtmann.org> Regards Marcel --
has the Bluetooth HIDP changes been tested. You move a lot of code around and this might have side effects. Regards Marcel --
Not really. I was only to test non-hid path (i.e. input) of hidp changes. This is why I want it in -mm/-next for some time. If you have some (real) bluetooth HID devices, I would be glad if you could test it. Thanks. --
Hi, I will of course test the patches (including testing with bluetooth HID hardware) before merging them. Thanks, -- Jiri Kosina SUSE Labs --
please rename it to hidp_table[]. Also can we do HID_BLUETOOTH_DEVICE() here. Since the bus constant is And this one to hidp_driver instead of hid_generic_bt. Also the name "hid-generic-bt" is not okay. Call it "hidp" since that is the driver name. An alternative would be "hid-bluetooth". I don't like the "generic" part and we never used the shortcut "bt" in any sysfs visible file. Do we really need the "hid-" prefix here. Since it is on the HID bus anyway, we can leave the magic details to the driver model and simply call it "bluetooth". Other than that: Acked-by: Marcel Holtmann <marcel@holtmann.org> Regards Marcel --
Hi!
Thanks for comments, I fixed all those except this one. The generic- word is
tested in the core to recognize generic drivers which bind non-blacklisted
devices and are handled separately. Anyway I've renamed them to
generic-bluetooth and generic-usb instead of hid-generic-{bt,usb}.
I think the generic word in the driver name is OK, so that one ordinary user
can see, my device is handled by the generic driver without special
processing. Would you rather see some flag or something?
--
actually generic-usb and generic-bluetooth sound perfectly fine to me. Regards Marcel --
