2009-09-02 21:25:50

by Rick L. Vinyard, Jr.

[permalink] [raw]
Subject: Problem starting the input interrupt pipe on the G13

Hello,

I'm still working on the G13 driver, but I've run into a problem with the
interrupt in pipe. In essence, I can't figure out how to get it started.

The driver can be found at:
http://g13.svn.sourceforge.net/viewvc/g13/driver/trunk/

I think the root of the problem lies in the fact that the G13 usage page
is 0x00 (undefined). The output and feature reports seem to be working
fine to set the backlight color, the LCD image and the leds on the 'M'
keys.

However, nothing seems to be happening with the input report (there is
only one input report type on endpoint address 0x81 that contains the
joystick and key values).

The problem is getting the input pipe started. I grepped through the other
drivers in the hid directory and I couldn't find any that had to
explicitly start the input interrupt.

Any suggestions?

Thanks,

Rick


2009-09-03 00:53:26

by Greg KH

[permalink] [raw]
Subject: Re: Problem starting the input interrupt pipe on the G13

On Wed, Sep 02, 2009 at 03:25:50PM -0600, Rick L. Vinyard, Jr. wrote:
> Hello,
>
> I'm still working on the G13 driver, but I've run into a problem with the
> interrupt in pipe. In essence, I can't figure out how to get it started.
>
> The driver can be found at:
> http://g13.svn.sourceforge.net/viewvc/g13/driver/trunk/
>
> I think the root of the problem lies in the fact that the G13 usage page
> is 0x00 (undefined). The output and feature reports seem to be working
> fine to set the backlight color, the LCD image and the leds on the 'M'
> keys.
>
> However, nothing seems to be happening with the input report (there is
> only one input report type on endpoint address 0x81 that contains the
> joystick and key values).
>
> The problem is getting the input pipe started. I grepped through the other
> drivers in the hid directory and I couldn't find any that had to
> explicitly start the input interrupt.

Have you just submitted an interrupt urb?

That should be all that is needed, when the device has data, it will
return with it if your urb is pending.

thanks,

greg k-h

2009-09-03 14:12:20

by Rick L. Vinyard, Jr.

[permalink] [raw]
Subject: Re: Problem starting the input interrupt pipe on the G13

Greg KH wrote:
> On Wed, Sep 02, 2009 at 03:25:50PM -0600, Rick L. Vinyard, Jr. wrote:
>> Hello,
>>
>> I'm still working on the G13 driver, but I've run into a problem with
>> the
>> interrupt in pipe. In essence, I can't figure out how to get it started.
>>
>> The driver can be found at:
>> http://g13.svn.sourceforge.net/viewvc/g13/driver/trunk/
>>
>> I think the root of the problem lies in the fact that the G13 usage page
>> is 0x00 (undefined). The output and feature reports seem to be working
>> fine to set the backlight color, the LCD image and the leds on the 'M'
>> keys.
>>
>> However, nothing seems to be happening with the input report (there is
>> only one input report type on endpoint address 0x81 that contains the
>> joystick and key values).
>>
>> The problem is getting the input pipe started. I grepped through the
>> other
>> drivers in the hid directory and I couldn't find any that had to
>> explicitly start the input interrupt.
>
> Have you just submitted an interrupt urb?
>
> That should be all that is needed, when the device has data, it will
> return with it if your urb is pending.
>

I'll give it a shot.

I hadn't tried it yet since I wasn't sure if that was the intended way to
start it up within the HID framework since none of the other drivers
submitted the urb.

Also, submitting the urb requires the usbhid_device structure. Since the
usbhid_device structure is defined in usbhid.h, and usbhid.h isn't
installed with the kernel headers I wasn't sure if there was a better way
to do it (raw events, input mapping or something along those lines).

---

Rick

2009-09-03 14:35:55

by Rick L. Vinyard, Jr.

[permalink] [raw]
Subject: Re: Problem starting the input interrupt pipe on the G13

Rick L. Vinyard, Jr. wrote:
> Greg KH wrote:
>> On Wed, Sep 02, 2009 at 03:25:50PM -0600, Rick L. Vinyard, Jr. wrote:
>>> Hello,
>>>
>>> I'm still working on the G13 driver, but I've run into a problem with
>>> the
>>> interrupt in pipe. In essence, I can't figure out how to get it
>>> started.
>>>
>>> The driver can be found at:
>>> http://g13.svn.sourceforge.net/viewvc/g13/driver/trunk/
>>>
>>> I think the root of the problem lies in the fact that the G13 usage
>>> page
>>> is 0x00 (undefined). The output and feature reports seem to be working
>>> fine to set the backlight color, the LCD image and the leds on the 'M'
>>> keys.
>>>
>>> However, nothing seems to be happening with the input report (there is
>>> only one input report type on endpoint address 0x81 that contains the
>>> joystick and key values).
>>>
>>> The problem is getting the input pipe started. I grepped through the
>>> other
>>> drivers in the hid directory and I couldn't find any that had to
>>> explicitly start the input interrupt.
>>
>> Have you just submitted an interrupt urb?
>>
>> That should be all that is needed, when the device has data, it will
>> return with it if your urb is pending.
>>
>
> I'll give it a shot.
>
> I hadn't tried it yet since I wasn't sure if that was the intended way to
> start it up within the HID framework since none of the other drivers
> submitted the urb.
>
> Also, submitting the urb requires the usbhid_device structure. Since the
> usbhid_device structure is defined in usbhid.h, and usbhid.h isn't
> installed with the kernel headers I wasn't sure if there was a better way
> to do it (raw events, input mapping or something along those lines).
>

Got it working. Submitting the URB didn't work because it wasn't open.
But, calling hdev->ll_driver->open(hdev) in probe opened it up and the
inputs are flowing now.

---

Rick