Alan Stern wrote:
>>> 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...
>
> You mean, sometimes you want it to wait for data and sometimes you don't?
> I still don't understand. Is the real problem caused by the driver or is
> it caused by the device?
I'm not sure. Because I do not have any further documentation about the
device, I must solve it without it.
>>> 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.
>
> That isn't right. It should be called only when the device transfers some
> data, not continuously. Are you saying that the device constantly sends
> data, even when you aren't touching the pad? You should try using usbmon
> to examine the data you receive.
It constantly sent data, because the touchpad consist of temperature sensors
and the driver has to constantly save the current value to get precise
readings. I think that is the reason why the device did not stop sending
the data.
>> 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.
>
> It sounds like you need to tell the touchpad not to send any data when it
> isn't being touched.
Lack of documentation is here the problem. Does anybody know, where I can get
the doc for Geyser (is this the name of the firm?) Touchpads? :-(
>> After I suspend and resume the computer this works. How can I archive this
>> within the interrupt-handler-code?
>
> How can you prevent the completion handler from being called? There are
> two ways: (1) Stop resubmitting the URB, or (2) Tell the device not to
> send any data.
I tried to stop resubmitting (by NOT calling "usb_submit_urb" again) and I
hoped the the interrupt handler will continue when the touchpad is pressed
again, but it does not work.
>> Another possibility (for me) would be to make the interval (in the untouched
>> times)
>> longer. Is this possible?
>
> The interval doesn't matter very much. The touchpad should not be sending
> any data at all when nothing is happening.
A longer interval would solve it in some way:
I could get constantly new temperature update (each second or more) and if
the touchpad is touch, I can reduce the interval to the normal settings.
> Does the touchpad use the HID protocol? If it does, did you remember to
> send a Set-Idle request to prevent the device from sending any data when
> no events have occurred?
I will check!
For explanation:
I want this to reduce the power consumption by letting the processor enter
the power-saving states more often (and longer).
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 Tra"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