Re: USB interrupt URB programming question

Sven Anders <[email protected]>
Newsgroups gmane.linux.usb.devel
Organization ANDURAS AG
Message-ID <[email protected]>
Hello Alan!

On Wed, 14 Feb 2007, Sven Anders wrote:
>> After I called
>>         usb_fill_int_urb(dev->urb, udev,
>>                          usb_rcvintpipe(udev, int_in_endpointAddr),
>>                          dev->data, dev->datalen, atp_complete, dev, 1);
>>
>> the driver waits until the USB device (here the touchpad) starts sending
>> data (after I touched it). It does this continuously until I unload the
>> driver.
>
> Isn't that exactly what it's supposed to do?  What good is a driver if it
> doesn't wait for the device to send data?

Right, it waits, but I does not if I want it to wait...

>> If I change the driver to not (re)call the function
>>
>>          usb_submit_urb(dev->urb, GFP_ATOMIC);
>>
>> in the "atp_complete" function, it stops. But it does not wait (as the
>> first time) to restart the transfer. Is it possible to let the USB device
>> restart the transfer after I touched the pad again?
>
> Yes.  :-)
>
> Your question isn't clear.  It looks like you're asking how to restart the
> transfer.  The answer is obvious: Change the driver back so that it _does_
> call usb_submit_urb() inside atp_complete().

Yes will call the 'usb_submit_urb' in each invocation of the 'atp_complete'
function. And if I do this the 'atp_complete' function will be called
continuously.

My problem is: If I decide (upon the data I received from the touchpad), that
there isn't a finger any longer on the pad, I want to stop the calling of the
'atp_complete' function until I'm sure the touchpad is touched again. Then I
want the data again till it's released again.

After I suspend and resume the computer this works. How can I archive this
within the interrupt-handler-code?

Another possibility (for me) would be to make the interval (in the untouched
times)
longer. Is this possible?

Regards
 Sven

-- 
 Sven Anders <[email protected]>                 () Ascii Ribbon Campaign
                                                 /\ Support plain text e-mail
 ANDURAS service solutions AG
 Innstraße 71 - 94036 Passau - Germany
 Web: www.anduras.de - Tel: +49 (0)851-4 90 50-0 - Fax: +49 (0)851-4 90 50-55

Rechtsform: Aktiengesellschaft - Sitz: Passau - Amtsgericht Passau HRB 6032
Mitglieder des Vorstands: Sven Anders, Marcus Junker
Vorsitzender des Aufsichtsrats: Dipl. Kfm. Thomas Träger

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.