On Sun, 4 Aug 2013, David Herrmann wrote:
> GEN10 and earlier devices seem to not support DRM_KAI if we run in basic
> IR mode. Use DRM_KAIE instead. This might increases overhead slightly as
> the extension port is read and streamed but we stream accelerometer data
> constantly, too, so this is negligible.
>
> Note that our parsers are hardcoded on IR-formats, so we cannot actually
> use 96-bit IR DRMs for basic IR data. We would have to adjust the parsers.
> But as only GEN20 and newer support this, we simply avoid mixed DRMs.
>
> This fixes a bug where GEN10 devices didn't provide IR data if
> accelerometer and IR are enabled simultaneously. As a workaround, you can
> enable DRM_KAIE without this patch via (disables device power-management):
> echo "37" >/sys/kernel/debug/hid/<dev>/drm
>
> Signed-off-by: David Herrmann <[email protected]>
> Reported-by: Nicolas Adenis-Lamarre <[email protected]>
Applied, thanks.
> ---
> drivers/hid/hid-wiimote-core.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/hid/hid-wiimote-core.c b/drivers/hid/hid-wiimote-core.c
> index 0c06054..6602098 100644
> --- a/drivers/hid/hid-wiimote-core.c
> +++ b/drivers/hid/hid-wiimote-core.c
> @@ -212,10 +212,12 @@ static __u8 select_drm(struct wiimote_data *wdata)
>
> if (ir == WIIPROTO_FLAG_IR_BASIC) {
> if (wdata->state.flags & WIIPROTO_FLAG_ACCEL) {
> - if (ext)
> - return WIIPROTO_REQ_DRM_KAIE;
> - else
> - return WIIPROTO_REQ_DRM_KAI;
> + /* GEN10 and ealier devices bind IR formats to DRMs.
> + * Hence, we cannot use DRM_KAI here as it might be
> + * bound to IR_EXT. Use DRM_KAIE unconditionally so we
> + * work with all devices and our parsers can use the
> + * fixed formats, too. */
> + return WIIPROTO_REQ_DRM_KAIE;
> } else {
> return WIIPROTO_REQ_DRM_KIE;
> }
> --
> 1.8.3.4
>
--
Jiri Kosina
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html