Xbox controller and dvd remote linux driver issues

Peter Gibson <[email protected]> Fri, 22 Jul 2005 00:13:39 +1000
Newsgroups gmane.linux.ports.xbox.devel
Message-ID <[email protected]>
Hi, 

I recently came across a problem with the kernel drivers for the xbox
controller (xpad-core.c) and the xbox dvd remote (xir.c) in the way
that they handle cheap 3rd party devices with vendor/product IDs of
0xffff/0xffff.

The problem is that the xpad driver accepts 0xffff/0xffff as a valid
combination whilst the cheap DVD remote dongle that I've got also uses
this as it's ID.

I was able to get my cheap remote working by adding the line

{ 0xffff, 0xffff, "Tru Blu (dodgy bros) DVD Movie Playback Kit IR" },

to "xir.c" (line 84) and commenting out the line

{ 0xffff, 0xffff, 0, "Chinese-made Xbox Controller" }, /* WTF are
device IDs for? */

from "xpad-core.c" (line 95).

Which works for me because I have genuine MS controllers (not cheap
Chinese ones). Is there a better way of handling this problem?


Here's the output of 'lsusb -v' for the IR Remote dongle I've got

Bus 001 Device 015: ID ffff:ffff
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0xffff
  idProduct          0xffff
  bcdDevice            0.01
  iManufacturer           0
  iProduct                0
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x00
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass        88
      bInterfaceSubClass     66
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              16
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass        89
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              0


The packaging says the brand is 'tru blu Accessories'  - distributed
in AU and NZ by Home Entertainment Suppliers.

For reference, here's the difference between the tru blu dongle and a
genuine MS dongle:

2c2
< Bus 001 Device 015: ID ffff:ffff
---
> Bus 001 Device 014: ID 045e:0284 Microsoft Corp. Xbox DVD Playback Kit
11,13c11,13
<   idVendor           0xffff
<   idProduct          0xffff
<   bcdDevice            0.01
---
>   idVendor           0x045e Microsoft Corp.
>   idProduct          0x0284 Xbox DVD Playback Kit
>   bcdDevice            0.0a


Regards,
Peter Gibson (aka dhonnie)


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click