linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Johannes Ebke <johannes.ebke@physik.uni-muenchen.de>
Cc: Jiri Kosina <jkosina@suse.cz>,
	"linux-input@vger.kernel.org" <linux-input@vger.kernel.org>
Subject: Re: Linux Force Feedback for Saitek Cyborg Evo Force
Date: Tue, 29 Dec 2009 14:40:21 -0800	[thread overview]
Message-ID: <1AD572D6-2C2F-4664-9B52-36A8D1BE8B29@gmail.com> (raw)
In-Reply-To: <4B39FA1D.6070107@physik.uni-muenchen.de>

  Dec 29, 2009, at 4:46 AM, Johannes Ebke <johannes.ebke@physik.uni-muenchen.de 
 > wrote:

> Dmitry Torokhov wrote:
>> On Sun, Dec 20, 2009 at 11:44:19PM -0800, Dmitry Torokhov wrote:
>>> On Sun, Dec 20, 2009 at 12:36:23AM +0100, Johannes Ebke wrote:
>>>> Hi,
>>>>
>>>> It seems that the force feedback works well, I have ported the  
>>>> force
>>>> feedback for my favorite game to linux now, and it works well.
>>>>
>>>> What does not work is updating effects - there just nothing  
>>>> happens, and
>>>> the old event is played. I have circumvented this by
>>>> deleting/re-uploading the effect, but this should probably been  
>>>> made to
>>>> work. Does it work well with other hardware?
>>>>
>>>> Thirdly, I have re-discovered one kernel oops that occurs if the
>>>> joystick is unplugged if some process still has the event device  
>>>> open.
>>>> Steps to reproduce:
>>>> * plug joystick in
>>>> * fftest /dev/input/eventXX
>>>> * unplug joystick
>>>>
>>>> (kern.log extract attached)
>>>>
>>>> Sometimes this just gives an oops, sometimes it escalates into a  
>>>> kernel
>>>> panic.
>>>>
>>> Hmm, it looks like iforce unbinding is completely busted:
>>>
>>> static void iforce_usb_disconnect(struct usb_interface *intf)
>>> {
>>>        struct iforce *iforce = usb_get_intfdata(intf);
>>>        int open = 0; /* FIXME! iforce->dev.handle->open; */
>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>
>>>        usb_set_intfdata(intf, NULL);
>>>        if (iforce) {
>>>                iforce->usbdev = NULL;
>>>                input_unregister_device(iforce->dev);
>>>
>>>                if (!open) {
>>>                        iforce_delete_device(iforce);
>>>                        kfree(iforce);
>>>                }
>>>        }
>>> }
>>>
>>>
>>> Any chance you could fix that FIXME ;) ?
>>>
>>
>> Actually, does the below fixes it for you?
>>
>
> This fixes the kernel oops - thanks! However it also disables FF,  
> unless
> I remove "usb_kill_urb(iforce->out);" from iforce_close.
> From some debug statements I found that iforce_close is called twice  
> if
> you just plug in the joystick, so the effect is immediate.

I still believe that usb_kill_urb is needed however we need to wait  
for packet disabling FF to complete.

>
> However, when I unplug the joystick while having it open, I get some
> input input22: usb_submit_urb failed -19
> messages in dmesg (after iforce_disconnect but before iforce_close)
> This is probably what should happen, however.
>

This is indeed expected with surprise removals.

-- 
Dmitry

  reply	other threads:[~2009-12-29 22:40 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4B26B824.8010403@physik.uni-muenchen.de>
2009-12-15 13:07 ` Linux Force Feedback for Saitek Cyborg Evo Force Jiri Kosina
2009-12-17 23:18   ` Johannes Ebke
2009-12-18  8:59     ` Johannes Ebke
2009-12-18 10:52     ` Jiri Kosina
2009-12-18 17:50       ` Dmitry Torokhov
2009-12-19 23:36         ` Johannes Ebke
2009-12-21  0:22           ` Melchior FRANZ
2009-12-21  7:44           ` Dmitry Torokhov
2009-12-21  7:59             ` Dmitry Torokhov
2009-12-21  8:22             ` Dmitry Torokhov
2009-12-29 12:46               ` Johannes Ebke
2009-12-29 22:40                 ` Dmitry Torokhov [this message]
2009-12-30  3:23                   ` Dmitry Torokhov
2009-12-30  9:01                     ` Johannes Ebke
2009-12-30 10:47                       ` Dmitry Torokhov
2009-12-30 11:32                         ` Johannes Ebke
2011-06-08 18:51                           ` Richie Ward
2009-12-21 11:45             ` [PATCH] " Johannes Ebke
2009-12-21  0:24 Melchior FRANZ

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=1AD572D6-2C2F-4664-9B52-36A8D1BE8B29@gmail.com \
    --to=dmitry.torokhov@gmail.com \
    --cc=jkosina@suse.cz \
    --cc=johannes.ebke@physik.uni-muenchen.de \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).