Re: [PATCH] HID: usbhid: Add a quirk for Xin-Mo Dual Arcade

2015-10-26 Thread Olivier Scherler
Hi,

> On 24 oct. 2015, at 22:11, Jiri Kosina  wrote:
> 
> On Sat, 24 Oct 2015, Michele Baldessari wrote:
> 
>> The Xin-Mo Dual Arcade controller (16c0:05e1) needs this quirk in order
>> to have the two distinct joysticks working.
>> 
>> Before the change:
>> $ jstest /dev/input/js0
>> Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
>> ...
>> $ jstest /dev/input/js1
>> jstest: No such file or directory
>> 
>> After the change:
>> $ jstest /dev/input/js0
>> Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
>> ...
>> $ jstest /dev/input/js1
>> Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
>> ...
>> 
>> Signed-off-by: Michele Baldessari 
> 
> Adding Oliver to CC.
> 
> Oliver, how come that you didn't need this while working on the inigial 
> Xin-Mo Dual Arcade support?

Because I didn’t mind whether the controller announced itself as two joysticks 
with two axes each, or one joystick with four axes. In the software I use it 
for (a MAME for the Raspberry Pi), I can map a single device’s buttons and axes 
to several players.

I’m a bit surprised with this, though:

> $ jstest /dev/input/js0
> Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)

because in my case I had four axes, at least using evtest (I don’t remember if 
I tried jstest as well).

What bothered me at the time, though, is that even though the custom driver was 
made as a kernel module, an entry had to be added in the 
hid_have_special_driver table in hid-core.c for the kernel to use it, which 
means, if I understand properly, that the kernel still needs recompiling. Is 
that normal?

Best regards,
Olivier

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] HID: usbhid: Add a quirk for Xin-Mo Dual Arcade

2015-10-26 Thread Michele Baldessari
Hi Olivier,

On Mon, Oct 26, 2015 at 12:00:50PM +0100, Olivier Scherler wrote:
> > On 24 oct. 2015, at 22:11, Jiri Kosina  wrote:
> > On Sat, 24 Oct 2015, Michele Baldessari wrote:
> > 
> >> The Xin-Mo Dual Arcade controller (16c0:05e1) needs this quirk in order
> >> to have the two distinct joysticks working.
> >> 
> >> Before the change:
> >> $ jstest /dev/input/js0
> >> Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
> >> ...
> >> $ jstest /dev/input/js1
> >> jstest: No such file or directory
> >> 
> >> After the change:
> >> $ jstest /dev/input/js0
> >> Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
> >> ...
> >> $ jstest /dev/input/js1
> >> Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
> >> ...
> >> 
> >> Signed-off-by: Michele Baldessari 
> > 
> > Adding Oliver to CC.
> > 
> > Oliver, how come that you didn't need this while working on the inigial 
> > Xin-Mo Dual Arcade support?
> 
> Because I didn’t mind whether the controller announced itself as two
> joysticks with two axes each, or one joystick with four axes. In the
> software I use it for (a MAME for the Raspberry Pi), I can map a
> single device’s buttons and axes to several players.
> 
> I’m a bit surprised with this, though:
> 
> > $ jstest /dev/input/js0
> > Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
> 
> because in my case I had four axes, at least using evtest (I don’t
> remember if I tried jstest as well).

Ah that is the crux of the matter. It never showed up with four
axes in my tests (raspbian, kernel 4.1.7), hence I submitted the patch
given that the two joysticks were indistinguishable without it on my
setup.

Which kernel version did you run your tests on? (Maybe some other change
skewed things around?)


> What bothered me at the time, though, is that even though the custom
> driver was made as a kernel module, an entry had to be added in the
> hid_have_special_driver table in hid-core.c for the kernel to use it,
> which means, if I understand properly, that the kernel still needs
> recompiling. Is that normal?

I had that line in my kernel prior to my patch:
https://github.com/raspberrypi/linux/blob/rpi-4.1.y/drivers/hid/hid-core.c#L2008

Kind regards,
Michele
-- 
Michele Baldessari
C2A5 9DA3 9961 4FFB E01B  D0BC DDD4 DCCB 7515 5C6D
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] HID: usbhid: Add a quirk for Xin-Mo Dual Arcade

2015-10-25 Thread Lars Melin

On 2015-10-24 22:44, Michele Baldessari wrote:

The Xin-Mo Dual Arcade controller (16c0:05e1) needs this quirk in order
to have the two distinct joysticks working.

Before the change:
$ jstest /dev/input/js0
Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
...
$ jstest /dev/input/js1
jstest: No such file or directory

After the change:
$ jstest /dev/input/js0
Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
...
$ jstest /dev/input/js1
Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
...

Signed-off-by: Michele Baldessari 
---
  drivers/hid/usbhid/hid-quirks.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index 1dff8f0015ba..f69049314a2c 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -150,6 +150,7 @@ static const struct hid_blacklist {
{ USB_VENDOR_ID_MULTIPLE_1781, USB_DEVICE_ID_RAPHNET_4NES4SNES_OLD, 
HID_QUIRK_MULTI_INPUT },
{ USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_2NES2SNES, 
HID_QUIRK_MULTI_INPUT },
{ USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_4NES4SNES, 
HID_QUIRK_MULTI_INPUT },
+   { USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE, 
HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },

{ 0, 0 }
  };



Sorry but I don't believe that XIN_MO is the owner of the 16c0 VID so 
should not be given that ownership in linux.


/Lars

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] HID: usbhid: Add a quirk for Xin-Mo Dual Arcade

2015-10-24 Thread Michele Baldessari
The Xin-Mo Dual Arcade controller (16c0:05e1) needs this quirk in order
to have the two distinct joysticks working.

Before the change:
$ jstest /dev/input/js0
Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
...
$ jstest /dev/input/js1
jstest: No such file or directory

After the change:
$ jstest /dev/input/js0
Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
...
$ jstest /dev/input/js1
Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
...

Signed-off-by: Michele Baldessari 
---
 drivers/hid/usbhid/hid-quirks.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index 1dff8f0015ba..f69049314a2c 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -150,6 +150,7 @@ static const struct hid_blacklist {
{ USB_VENDOR_ID_MULTIPLE_1781, USB_DEVICE_ID_RAPHNET_4NES4SNES_OLD, 
HID_QUIRK_MULTI_INPUT },
{ USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_2NES2SNES, 
HID_QUIRK_MULTI_INPUT },
{ USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_4NES4SNES, 
HID_QUIRK_MULTI_INPUT },
+   { USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE, 
HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
 
{ 0, 0 }
 };
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] HID: usbhid: Add a quirk for Xin-Mo Dual Arcade

2015-10-24 Thread Jiri Kosina
On Sat, 24 Oct 2015, Michele Baldessari wrote:

> The Xin-Mo Dual Arcade controller (16c0:05e1) needs this quirk in order
> to have the two distinct joysticks working.
> 
> Before the change:
> $ jstest /dev/input/js0
> Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
> ...
> $ jstest /dev/input/js1
> jstest: No such file or directory
> 
> After the change:
> $ jstest /dev/input/js0
> Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
> ...
> $ jstest /dev/input/js1
> Joystick (Xin-Mo Xin-Mo Dual Arcade) has 2 axes (X, Y)
> ...
> 
> Signed-off-by: Michele Baldessari 

Adding Oliver to CC.

Oliver, how come that you didn't need this while working on the inigial 
Xin-Mo Dual Arcade support?

Thanks.

> ---
>  drivers/hid/usbhid/hid-quirks.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
> index 1dff8f0015ba..f69049314a2c 100644
> --- a/drivers/hid/usbhid/hid-quirks.c
> +++ b/drivers/hid/usbhid/hid-quirks.c
> @@ -150,6 +150,7 @@ static const struct hid_blacklist {
>   { USB_VENDOR_ID_MULTIPLE_1781, USB_DEVICE_ID_RAPHNET_4NES4SNES_OLD, 
> HID_QUIRK_MULTI_INPUT },
>   { USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_2NES2SNES, 
> HID_QUIRK_MULTI_INPUT },
>   { USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_4NES4SNES, 
> HID_QUIRK_MULTI_INPUT },
> + { USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE, 
> HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
>  
>   { 0, 0 }
>  };
> -- 
> 2.5.0
> 

-- 
Jiri Kosina
SUSE Labs

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html