All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anssi Hannula <anssi.hannula@gmail.com>
To: Dmitriy Geels <dmitriy.geels@gmail.com>
Cc: linux-input@vger.kernel.org
Subject: Re: hid-pidff bug: fails to find all required reports of saitek gamepad
Date: Wed, 11 Feb 2009 18:27:37 +0200	[thread overview]
Message-ID: <4992FC79.80106@gmail.com> (raw)
In-Reply-To: <78f5d6bf0902110112o434d43d3ycd473c7b803e8297@mail.gmail.com>

Dmitriy Geels wrote:
> 2009/2/10 Anssi Hannula <anssi.hannula@gmail.com>:
>>> But, looking into pidff_set_effect_report(), I think, it's possible to
>>> add two if's to check if these fields present. And need to make check
>>> for these fields optional somehow.
>>> These two usages are not fully utilized anyway, gain is always set to
>>> it's logical_maximum (actually it's used only in pidff_autocenter())
>>> and direction is always set to 1.
>> Direction enable is set to 1. However, the direction value itself is
>> required for the force direction.
>>
>> I really can't see how the direction could be transmitted, as the Axis
>> Enable fields (alternative way of specifying direction) are missing as well.
>> Unless you can figure it out with some creative testing, I guess we need a
>> usb dump of constant force with a windows driver.
> I did that already, you can also see described constant effect report
> using links, I posted earlier. There is no direction at all. Constant
> report has only effect block index and magnitude (3 bytes total: id,
> bi, mag). Device doesn't support direction at all.

(for clarification, I meant here an actual usb traffic dump when you 
play an effect in windows)

Constant force makes no sense without a direction. What kind of force 
effect does it actually produce?

>> For Effect Type, that can also be made optional in set_effect_report() (it
>> has already been sent in the upload request, so it is redundant).
>>
>>> There is also some problem with pidff_find_special_fields() ("effect
>>> lists not found"), i'll add more debug messages and tell about that
>>> later.
>> See above, it is because of the missing Effect Type field.
> I found that out already and made this ugly fix:
> http://paste.org.ru/index.pl?oer4rl
> - make pidff->set_effect_type optional
> - make pidff->effect_direction optional
> - change call to PIDFF_FIND_FIELDS(set_effect...) to non-strict (this
> is bad, I know)
> After that, driver almost initializes: http://paste.org.ru/index.pl?008sgm
> It fails in pidff_check_autocenter(). According to descriptor, effect
> 1 is constant force. The problem is that block load report receive
> fails.
> I have no idea yet, why it fails, need to do some debug.

Well, actually pidff_check_autocenter should check for support of Spring 
effect, and skip tests if it is not supported (your device doesn't 
support it, which suggests that the autocenter is managed in a different 
way; windows dump would help finding this out as well).

However, pidff_request_effect_upload should still not fail, as it is 
needed for uploading effects. Try changing the effect type, make it e.g.
error = pidff_request_effect_upload(pidff, 2);

You could also try adding some delays after usbhid_wait_io() calls in 
pidff_request_effect_upload(), with e.g. msleep(200) (you should also 
lower the iterations limit 60 when adding such delays).

If nothing else helps, I guess we need a dump from windows for this as well.

> Can you tell,
> is there some way to monitor reports in kernel?

You can set debug=2 for hid module, but it will produce very much output.

> And, I think, the main question: Anssi, how do you think, what would
> be better way to implement support for Saitek devices: make separate
> driver for them (which will be copy if pidff or will contain hardcoded
> report info) or make more relaxed specification specification support
> (like I did in this fix)?

I prefer the relaxed support.

FYI, I may be unavailable until next Tuesday.

-- 
Anssi Hannula


  reply	other threads:[~2009-02-11 16:27 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-30 19:45 hid-pidff bug: fails to find all required reports of saitek gamepad Dmitriy Geels
2009-02-02 15:50 ` Anssi Hannula
2009-02-02 18:29   ` Dmitriy Geels
2009-02-02 18:48     ` Dmitriy Geels
2009-02-07 12:28     ` Anssi Hannula
     [not found]       ` <78f5d6bf0902092146x2abaf45an79e4546e75a80356@mail.gmail.com>
2009-02-10  7:49         ` Dmitriy Geels
2009-02-10  7:49         ` Fwd: " Dmitriy Geels
2009-02-10 16:06         ` Anssi Hannula
2009-02-11  9:12           ` Dmitriy Geels
2009-02-11 16:27             ` Anssi Hannula [this message]
2009-02-12 18:06               ` Dmitriy Geels
2009-02-12 18:42                 ` Anssi Hannula
2009-02-13  8:33                   ` Dmitriy Geels
2009-02-13 19:43                     ` Anssi Hannula
     [not found]                       ` <78f5d6bf0902141125m1bf9ac00xb2b414e81d81b869@mail.gmail.com>
     [not found]                         ` <49972478.3060207@gmail.com>
2009-02-14 22:33                           ` Dmitriy Geels
2009-02-17 12:16                             ` Dmitriy Geels
2009-02-18 15:45                               ` Anssi Hannula
2009-02-19  6:56                                 ` Dmitriy Geels
     [not found]                                 ` <78f5d6bf0902182254v191cc485x62eb211baaddd36@mail.gmail.com>
     [not found]                                   ` <499D7C66.6090000@gmail.com>
2009-02-26 21:21                                     ` Dmitriy Geels
2009-02-27 16:24                                       ` Anssi Hannula
2009-03-02 18:41                                         ` Dmitriy Geels
2009-03-02 20:35                                           ` Anssi Hannula
2009-03-03  6:28                                             ` Dmitriy Geels
2009-03-03 18:35                                               ` Dmitriy Geels
2009-03-07 14:38                                                 ` Anssi Hannula
2009-03-08  5:18                                                   ` Dmitriy Geels
2009-03-08 10:16                                                     ` Anssi Hannula
2009-03-09 19:08                                                       ` Dmitriy Geels
2009-05-07 23:45                                                         ` Anssi Hannula
2009-05-07 23:57                                                           ` Anssi Hannula
     [not found]                                                             ` <78f5d6bf0906041227w3a58bde0u554a3d3336e17fa6@mail.gmail.com>
2009-06-06 12:14                                                               ` Anssi Hannula
2009-06-09  5:02                                                                 ` Dmitriy Geels
2009-06-09  6:09                                                                   ` Alek Du
2009-06-09  7:37                                                                     ` Dmitriy Geels
2009-06-11  9:38                                                                     ` Dmitriy Geels
2009-06-11 20:11                                                                       ` Dmitriy Geels
2009-07-09 17:41                                                                         ` Dmitriy Geels
2009-07-09 17:58                                                                           ` Anssi Hannula
2009-11-06  9:06                                                                             ` Dmitriy Geels
2009-11-09 12:00                                                                             ` Dmitriy Geels
2009-11-20 14:17                                                                               ` Dmitriy Geels

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4992FC79.80106@gmail.com \
    --to=anssi.hannula@gmail.com \
    --cc=dmitriy.geels@gmail.com \
    --cc=linux-input@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.