Re: joydev.c and saitek cyborg evo force

From: Jiri Kosina
Date: Fri Aug 10 2007 - 11:10:05 EST


On Sat, 21 Jul 2007, Renato Golin wrote:

> sorry for the delay, below the report descriptor and attached is the
> full report when I've connected the joystick.

Hi Renato,

I guess I can now see the problem. The important parts of the dump are

[11165.496717] INPUT(6)[INPUT]
[11165.496722] Field(0)
[11165.496726] Physical(GenericDesktop.Pointer)
[11165.496733] Usage(1)
[11165.496738] GenericDesktop.X
[11165.496744] Logical Minimum(0)
[11165.496749] Logical Maximum(4096)
[11165.496754] Physical Minimum(0)
[11165.496758] Physical Maximum(4096)
[11165.496763] Report Size(16)
[11165.496767] Report Count(1)
[11165.496772] Report Offset(0)
[11165.496776] Flags( Variable Absolute )
[11165.496785] Field(1)
[11165.496788] Physical(GenericDesktop.Pointer)
[11165.496795] Usage(1)
[11165.496799] GenericDesktop.Y
[11165.496806] Logical Minimum(0)
[11165.496810] Logical Maximum(4096)
[11165.496815] Physical Minimum(0)
[11165.496819] Physical Maximum(4096)
[11165.496824] Report Size(16)
[11165.496828] Report Count(1)
[11165.496832] Report Offset(16)
[11165.496837] Flags( Variable Absolute )

... but later on we have

[11165.499897] OUTPUT(129)[OUTPUT]
[11165.499901] Field(0)
[11165.499904] Logical(00ff.0100)
[11165.499912] Usage(1)
[11165.499916] GenericDesktop.X
[11165.499923] Logical Minimum(-127)
[11165.499927] Logical Maximum(127)
[11165.499932] Physical Minimum(-10000)
[11165.499936] Physical Maximum(10000)
[11165.499941] Report Size(8)
[11165.499945] Report Count(1)
[11165.499949] Report Offset(0)
[11165.499954] Flags( Variable Absolute )
[11165.499962] Field(1)
[11165.499965] Logical(00ff.0100)
[11165.499972] Usage(1)
[11165.499976] GenericDesktop.Y
[11165.499983] Logical Minimum(-127)
[11165.499987] Logical Maximum(127)
[11165.499992] Physical Minimum(-10000)
[11165.499996] Physical Maximum(10000)
[11165.500001] Report Size(8)
[11165.500005] Report Count(1)
[11165.500010] Report Offset(8)
[11165.500014] Flags( Variable Absolute )
[11165.500022] FEATURE(11)[FEATURE]

As we call input_set_abs_params() both for input and output fields, I can
easily see how the range gets corrupted.

Renato, does force feedback work properly in Linux with this device? If
so, that would mean that the device has logical maximum and minimum for X
and Y axes different in input and output, and we would need to handle this
properly (we currently don't).

Thanks,

--
Jiri Kosina
SUSE Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/