2012-02-13 08:06:56

by Konstantin Khlebnikov

[permalink] [raw]
Subject: [PATCH] HID: use generic driver for Logitech Unifying receivers if CONFIG_HID_LOGITECH_DJ=n

Before commit 534a7b8e1 "HID: Add full support for Logitech Unifying receivers"
Logitech Unifying receiver can work as generic device without special driver,
after that commit these devices does not works without special driver.

After this patch they will use generic driver if special driver is disabled.

Signed-off-by: Konstantin Khlebnikov <[email protected]>
---
drivers/hid/hid-core.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index af08ce7..3d7a174 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1462,8 +1462,10 @@ static const struct hid_device_id hid_have_special_driver[] = {
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_DFGT_WHEEL) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G27_WHEEL) },
+#if IS_ENABLED(CONFIG_HID_LOGITECH_DJ)
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_2) },
+#endif
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WII_WHEEL) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_SPACETRAVELLER) },


2012-02-13 08:41:22

by Nestor Lopez Casado

[permalink] [raw]
Subject: Re: [PATCH] HID: use generic driver for Logitech Unifying receivers if CONFIG_HID_LOGITECH_DJ=n

Hi Konstantin,

This was the original implementation
http://www.spinics.net/lists/linux-input/msg15225.html
Jiri suggested we removed the conditional compilation and we accepted.

Which are your reasons to add those conditionals back again?

Cheers,

Nestor

On Mon, Feb 13, 2012 at 9:06 AM, Konstantin Khlebnikov
<[email protected]> wrote:
> Before commit 534a7b8e1 "HID: Add full support for Logitech Unifying receivers"
> Logitech Unifying receiver can work as generic device without special driver,
> after that commit these devices does not works without special driver.
>
> After this patch they will use generic driver if special driver is disabled.
>
> Signed-off-by: Konstantin Khlebnikov <[email protected]>
> ---
> ?drivers/hid/hid-core.c | ? ?2 ++
> ?1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index af08ce7..3d7a174 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -1462,8 +1462,10 @@ static const struct hid_device_id hid_have_special_driver[] = {
> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_DFGT_WHEEL) },
> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL) },
> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G27_WHEEL) },
> +#if IS_ENABLED(CONFIG_HID_LOGITECH_DJ)
> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER) },
> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_2) },
> +#endif
> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WII_WHEEL) },
> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) },
> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_SPACETRAVELLER) },
>

2012-02-13 09:15:47

by Konstantin Khlebnikov

[permalink] [raw]
Subject: Re: [PATCH] HID: use generic driver for Logitech Unifying receivers if CONFIG_HID_LOGITECH_DJ=n

Nestor Lopez Casado wrote:
> Hi Konstantin,
>
> This was the original implementation
> http://www.spinics.net/lists/linux-input/msg15225.html
> Jiri suggested we removed the conditional compilation and we accepted.
>
> Which are your reasons to add those conditionals back again?

This device can work perfectly without special driver. It does not add
any special advantage if there only one mouse and/or one keyboard device.
So, I don't see any reason for this strictly requirement of special driver.

>
> Cheers,
>
> Nestor
>
> On Mon, Feb 13, 2012 at 9:06 AM, Konstantin Khlebnikov
> <[email protected]> wrote:
>> Before commit 534a7b8e1 "HID: Add full support for Logitech Unifying receivers"
>> Logitech Unifying receiver can work as generic device without special driver,
>> after that commit these devices does not works without special driver.
>>
>> After this patch they will use generic driver if special driver is disabled.
>>
>> Signed-off-by: Konstantin Khlebnikov<[email protected]>
>> ---
>> drivers/hid/hid-core.c | 2 ++
>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
>> index af08ce7..3d7a174 100644
>> --- a/drivers/hid/hid-core.c
>> +++ b/drivers/hid/hid-core.c
>> @@ -1462,8 +1462,10 @@ static const struct hid_device_id hid_have_special_driver[] = {
>> { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_DFGT_WHEEL) },
>> { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL) },
>> { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G27_WHEEL) },
>> +#if IS_ENABLED(CONFIG_HID_LOGITECH_DJ)
>> { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER) },
>> { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_2) },
>> +#endif
>> { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WII_WHEEL) },
>> { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) },
>> { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_SPACETRAVELLER) },
>>

2012-02-13 09:31:58

by Nestor Lopez Casado

[permalink] [raw]
Subject: Re: [PATCH] HID: use generic driver for Logitech Unifying receivers if CONFIG_HID_LOGITECH_DJ=n

On Mon, Feb 13, 2012 at 10:15 AM, Konstantin Khlebnikov
<[email protected]> wrote:
> Nestor Lopez Casado wrote:
>>
>> Hi Konstantin,
>>
>> This was the original implementation
>> http://www.spinics.net/lists/linux-input/msg15225.html
>> Jiri suggested we removed the conditional compilation and we accepted.
>>
>> Which are your reasons to add those conditionals back again?
>
>
> This device can work perfectly without special driver. It does not add
> any special advantage if there only one mouse and/or one keyboard device.
> So, I don't see any reason for this strictly requirement of special driver.

I'm OK with that. It's Jiri's call.

Nevertheless, if you change that, please change the description on
Kconfig to reflect the fact that the receiver would work even without
the driver.

Nestor.

>
>
>>
>> Cheers,
>>
>> Nestor
>>
>> On Mon, Feb 13, 2012 at 9:06 AM, Konstantin Khlebnikov
>> <[email protected]> ?wrote:
>>>
>>> Before commit 534a7b8e1 "HID: Add full support for Logitech Unifying
>>> receivers"
>>> Logitech Unifying receiver can work as generic device without special
>>> driver,
>>> after that commit these devices does not works without special driver.
>>>
>>> After this patch they will use generic driver if special driver is
>>> disabled.
>>>
>>> Signed-off-by: Konstantin Khlebnikov<[email protected]>
>>> ---
>>> ?drivers/hid/hid-core.c | ? ?2 ++
>>> ?1 files changed, 2 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
>>> index af08ce7..3d7a174 100644
>>> --- a/drivers/hid/hid-core.c
>>> +++ b/drivers/hid/hid-core.c
>>> @@ -1462,8 +1462,10 @@ static const struct hid_device_id
>>> hid_have_special_driver[] = {
>>> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
>>> USB_DEVICE_ID_LOGITECH_DFGT_WHEEL) },
>>> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
>>> USB_DEVICE_ID_LOGITECH_G25_WHEEL) },
>>> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
>>> USB_DEVICE_ID_LOGITECH_G27_WHEEL) },
>>> +#if IS_ENABLED(CONFIG_HID_LOGITECH_DJ)
>>> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
>>> USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER) },
>>> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
>>> USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_2) },
>>> +#endif
>>> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
>>> USB_DEVICE_ID_LOGITECH_WII_WHEEL) },
>>> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
>>> USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) },
>>> ? ? ? ?{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH,
>>> USB_DEVICE_ID_SPACETRAVELLER) },
>>>
>

2012-02-13 10:13:10

by Konstantin Khlebnikov

[permalink] [raw]
Subject: [PATCH v2] HID: use generic driver for Logitech Unifying receivers if CONFIG_HID_LOGITECH_DJ=n

Before commit 534a7b8e1 "HID: Add full support for Logitech Unifying receivers"
Logitech Unifying receiver can work as generic device without special driver,
after that commit these devices does not works without special driver.

After this patch they will use generic driver if special driver is disabled.

Signed-off-by: Konstantin Khlebnikov <[email protected]>
---
drivers/hid/Kconfig | 4 +++-
drivers/hid/hid-core.c | 2 ++
2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index a421abd..ca322ee 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
@@ -257,7 +257,9 @@ config HID_LOGITECH_DJ
---help---
Say Y if you want support for Logitech Unifying receivers and devices.
Unifying receivers are capable of pairing up to 6 Logitech compliant
- devices to the same receiver.
+ devices to the same receiver. Without this driver it will be handled by
+ generic USB_HID driver and all incomming events will be multiplexed
+ into a single mouse and a single keyboard device.

config LOGITECH_FF
bool "Logitech force feedback support"
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index af08ce7..3d7a174 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1462,8 +1462,10 @@ static const struct hid_device_id hid_have_special_driver[] = {
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_DFGT_WHEEL) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G27_WHEEL) },
+#if IS_ENABLED(CONFIG_HID_LOGITECH_DJ)
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_UNIFYING_RECEIVER_2) },
+#endif
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WII_WHEEL) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_RUMBLEPAD2) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_SPACETRAVELLER) },

2012-02-21 15:01:42

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH v2] HID: use generic driver for Logitech Unifying receivers if CONFIG_HID_LOGITECH_DJ=n

On Mon, 13 Feb 2012, Konstantin Khlebnikov wrote:

> Before commit 534a7b8e1 "HID: Add full support for Logitech Unifying receivers"
> Logitech Unifying receiver can work as generic device without special driver,
> after that commit these devices does not works without special driver.
>
> After this patch they will use generic driver if special driver is disabled.
>

Okay, I haven't originally fully realized that this device works
flawlessly in "single" case without the driver.

I like to avoid polluting the have_special_driver[] with ifdefs, but in
this particular case it seems to make sense. So I am queuing this.

Thanks.

--
Jiri Kosina
SUSE Labs