Vojtech Pavlik wrote:

>On Mon, Apr 10, 2006 at 05:03:21PM -0700, Greg KH wrote:
>
>  
>
>>On Mon, Apr 10, 2006 at 03:08:50PM -0600, Michael Downey wrote:
>>    
>>
>>>I am currently looking at using a MegTek USB insertion reader and I have
>>>run into a problem with the current hiddev.  The card reader returns a
>>>338 byte Input report on the interrupt in channel everytime a card is
>>>inserted.  The data contains basically all the information needed from
>>>the card.  The problem is that this one report is seen as 338 usage
>>>references.  So hiddev tries to build all the events for this report but
>>>wraps it's buffer as it only allocates space for 64.  I increased
>>>HIDDEV_BUFFER_SIZE to 512 and everything worked correctly.
>>>
>>>My question is whether there would be any issue with increasing the
>>>HIDDEV_BUFFER_SIZE to 512?  I realize that this causes us to use 24 *
>>>512 bytes instead of 24 * 64 bytes.  Is there any specific reason for
>>>only allocating 64 or was it just a nice power of 2 number?  The main
>>>reason why we overflow this buffer is that we report a seperate event
>>>for every report count on each usage.  So in the case of this card
>>>reader there are three usages with a report count of 110.  So each of
>>>these usages cause 110 seperate events to be generated.  If we could
>>>somehow pack all the similar data into a single buffer then this device
>>>would only generate 11 events per insert instead of 338.  This would
>>>mean making changes to the file access structures which would likely
>>>break things for other people.
>>>
>>>If no one has issues I will submit a patch to just up the
>>>HIDDEV_BUFFER_SIZE to 512 from 64.
>>>      
>>>
>>I don't see a problem with this, perhaps Vojtech remembers why the
>>buffer size was set to 64.
>>    
>>
> 
>The reason is that it was originally intended for devices which don't
>issue huge numbers of reports in one go, and 64 was supposed to be
>'large enough' for userspace to be able to empty the buffers as the data
>are coming from the device.
>
>Moving to 512 is not a big problem, except for memory usage.
>
>However, I'd suggest using libusb/libhid instead here, since the hiddev
>interface is really inadequate for uses like this.
>
>  
>
The problem with libhid is that it is a GPL licenced library not LGPL so
I can't use it. Otherwise that was my initial plan. Also the benifit of
using hiddev is that I don't have to install another library onto the
system. I could try using libusb but it looked like I would have to
basically replicate a lot of what libhid does.

So is the memory usage a concern?



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to