All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Сергей Беляшов" <Sergey.Belyashov@gmail.com>
To: Jiri Kosina <jkosina@suse.cz>
Cc: linux-input <linux-input@vger.kernel.org>
Subject: Re: [PATCH] Autocentering support for Logitech MOMO Racing Wheel (force feedback)
Date: Tue, 19 Aug 2008 21:46:27 +0400	[thread overview]
Message-ID: <48AB06F3.10808@gmail.com> (raw)
In-Reply-To: <alpine.LNX.1.10.0808191458050.18058@jikos.suse.cz>

Jiri Kosina пишет:
> On Mon, 18 Aug 2008, Sergey Belyashov wrote:
> 
>> =========================================================================
>> Logitech MOMO Recing Wheel Force Feedback autocenter setting support
>> (also may be work on G25 etc. but I cann't check):
> 
> Hi Sergey,
> 
> sorry for late reply, I have been on vacation.
> 
> Could you please send the patch with proper Signed-off-by: line, as 
> documented in Documentation/SubmittingPatches, so that I can merge it 
> properly?
> 
> Thanks!
> 

  Current kernel has no support for autocentering for Logitech wheels.
By default autocentering enabled in wheel and constant effect does not
work properly. Using USB sniffer I found command which change
autocentering settings: 0xFE, 0x0D, 0x0R, 0x0L, 0x80, 0x00, 0x00,
where R - clockwise force, L - counter-clockwise (0x0-0xF, 0xC =
100%). I write patch for my current kernel (2.6.25), but I think git
version also supported, because I do not found any changes in it.


========================================================================================
--- drivers/hid/usbhid/hid-lgff.c	2008-04-17 06:49:44.000000000 +0400
+++ drivers/hid/usbhid/hid-lgff.c	2008-08-19 20:57:00.000000000 +0400
@@ -48,6 +48,12 @@ static const signed short ff_joystick[] 
 	-1
 };
 
+static const signed short ff_wheel[] = {
+	FF_CONSTANT,
+	FF_AUTOCENTER,
+	-1
+};
+
 static const struct dev_type devices[] = {
 	{ 0x046d, 0xc211, ff_rumble },
 	{ 0x046d, 0xc219, ff_rumble },
@@ -55,7 +61,7 @@ static const struct dev_type devices[] =
 	{ 0x046d, 0xc286, ff_joystick },
 	{ 0x046d, 0xc294, ff_joystick },
 	{ 0x046d, 0xc295, ff_joystick },
-	{ 0x046d, 0xca03, ff_joystick },
+	{ 0x046d, 0xca03, ff_wheel },
 };
 
 static int hid_lgff_play(struct input_dev *dev, void *data, struct ff_effect *effect)
@@ -100,6 +106,23 @@ static int hid_lgff_play(struct input_de
 	return 0;
 }
 
+static void hid_lgff_set_autocenter(struct input_dev *dev, u16 magnitude)
+{
+	struct hid_device *hid = input_get_drvdata(dev);
+	struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list;
+	struct hid_report *report = list_entry(report_list->next, struct hid_report, list);
+	__s32 *value = report->field[0]->value;
+	magnitude = (magnitude >> 12) & 0xf;
+	*value++ = 0xfe;
+	*value++ = 0x0d;
+	*value++ = magnitude;   /* clockwise strength */
+	*value++ = magnitude;   /* counter-clockwise strength */
+	*value++ = 0x80;
+	*value++ = 0x00;
+	*value = 0x00;
+	usbhid_submit_report(hid, report, USB_DIR_OUT);
+}
+
 int hid_lgff_init(struct hid_device* hid)
 {
 	struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list);
@@ -145,6 +168,9 @@ int hid_lgff_init(struct hid_device* hid
 	if (error)
 		return error;
 
+	if ( test_bit(FF_AUTOCENTER, dev->ffbit) )
+		dev->ff->set_autocenter = hid_lgff_set_autocenter;
+
 	printk(KERN_INFO "Force feedback for Logitech force feedback devices by Johann Deneux <johann.deneux@it.uu.se>\n");
 
 	return 0;

========================================================================================
Signed-off-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2008-08-19 18:58 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-18  9:17 [PATCH] Autocentering support for Logitech MOMO Racing Wheel (force feedback) Сергей Беляшов
2008-08-18 15:24 ` Dmitry Torokhov
     [not found]   ` <bb829a0b0808180916l1d2ca72fj689edcf5b8c156e5@mail.gmail.com>
     [not found]     ` <20080818131807.ZZRA012@mailhub.coreip.homeip.net>
2008-08-18 18:30       ` Сергей Беляшов
2008-08-19  0:34         ` D. Ragno
2008-08-19  7:51           ` Сергей Беляшов
2008-08-19 12:59         ` Jiri Kosina
2008-08-19 17:46           ` Сергей Беляшов [this message]
2008-09-02 15:11             ` Jiri Kosina

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=48AB06F3.10808@gmail.com \
    --to=sergey.belyashov@gmail.com \
    --cc=jkosina@suse.cz \
    --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.