All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: "Éric Piel" <eric.piel@tremplin-utc.net>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Dmitry Torokhov <dtor@insightbb.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-input@vger.kernel.org
Subject: Re: [REGRESSION] "bind" a device to a driver doesn't not work anymore
Date: Mon, 12 Oct 2009 07:44:58 -0700	[thread overview]
Message-ID: <20091012144458.GA1326@suse.de> (raw)
In-Reply-To: <4AD31709.4000103@tremplin-utc.net>

On Mon, Oct 12, 2009 at 01:46:17PM +0200, Éric Piel wrote:
> Op 12-10-09 06:35, Dmitry Torokhov schreef:
> > On Saturday 10 October 2009 08:00:29 pm Greg KH wrote:
> >> On Sun, Oct 11, 2009 at 02:04:02AM +0200, ?ric Piel wrote:
> >>> Hello,
> >>>
> >>> After a suspend, I used to do this (to get the PS2 keyboard working
> >>> again), and it used to work fine:
> >>> echo -n "i8042" > /sys/bus/platform/drivers/i8042/unbind ; sleep 1 ; echo
> >>> -n "i8042" > /sys/bus/platform/drivers/i8042/bind
> >>>
> >>> Unfortunately since 2.6.32-rc1, the unbind works fine, but the bind
> >>> returns a "no such device" error now (and the binding is not done). After
> >>> that, additional unbinds also report the error. I think 2.6.31 worked
> >>> fine. Any idea what's going wrong?
> >> Odd.  Any chance you can run 'git bisect' to figure out which patch
> >> might have caused it?
> > 
> > I8042 has been converted to use platform_driver_probe() - we are creating 
> > platform device and platform driver together, there is no chance that some 
> > other device might be driven by i8042 driver.
> I haven't finished bisecting, but indeed, the problem seemed to converge
> toward this patch.
> 
> 
> > Eric, do you still need to fiddle with i8042 to get your keyboard working with 
> > 2.6.32-rc3? We need to make sure that resube works without users needing to 
> > mess with bind/unbind.
> Yes, the keyboard doesn't work after the first resume from ram (the
> later resumes do work). I haven't tried any special option to the i8042
> driver. This is on a HP 2510, in 64 bits.
> 
> Indeed, it would be great to fix this root problem! Is there any bug
> report opened to work on this?
> 
> However, currently the first problem is that unbind works, while bind
> doesn't. Which means anyone doing an unbind will have keyboard and mouse
> lost until the next reboot. That's rather bad because it has been
> recommended for a long time to have this kind of script at resume:
> http://intertrusion.com/files/hp-s2ram.patch
> http://en.opensuse.org/Pm-utils
> 
> So at least, unbind should fail as well as bind.

Ah, I bet I know why bind fails...  Yeah, the i8042_platform_device is
never freed up in the i8042_remove() function in
drivers/input/serio/i8042.c, so when you try to register it again, it
fails.

Dmitry, care to fix this up?  Should be pretty simple.

thanks,

greg k-h

WARNING: multiple messages have this Message-ID (diff)
From: Greg KH <gregkh@suse.de>
To: "Éric Piel" <eric.piel@tremplin-utc.net>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Dmitry Torokhov <dtor@insightbb.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-input@vger.kernel.org
Subject: Re: [REGRESSION] "bind" a device to a driver doesn't not work anymore
Date: Mon, 12 Oct 2009 07:44:58 -0700	[thread overview]
Message-ID: <20091012144458.GA1326@suse.de> (raw)
In-Reply-To: <4AD31709.4000103@tremplin-utc.net>

On Mon, Oct 12, 2009 at 01:46:17PM +0200, Éric Piel wrote:
> Op 12-10-09 06:35, Dmitry Torokhov schreef:
> > On Saturday 10 October 2009 08:00:29 pm Greg KH wrote:
> >> On Sun, Oct 11, 2009 at 02:04:02AM +0200, ?ric Piel wrote:
> >>> Hello,
> >>>
> >>> After a suspend, I used to do this (to get the PS2 keyboard working
> >>> again), and it used to work fine:
> >>> echo -n "i8042" > /sys/bus/platform/drivers/i8042/unbind ; sleep 1 ; echo
> >>> -n "i8042" > /sys/bus/platform/drivers/i8042/bind
> >>>
> >>> Unfortunately since 2.6.32-rc1, the unbind works fine, but the bind
> >>> returns a "no such device" error now (and the binding is not done). After
> >>> that, additional unbinds also report the error. I think 2.6.31 worked
> >>> fine. Any idea what's going wrong?
> >> Odd.  Any chance you can run 'git bisect' to figure out which patch
> >> might have caused it?
> > 
> > I8042 has been converted to use platform_driver_probe() - we are creating 
> > platform device and platform driver together, there is no chance that some 
> > other device might be driven by i8042 driver.
> I haven't finished bisecting, but indeed, the problem seemed to converge
> toward this patch.
> 
> 
> > Eric, do you still need to fiddle with i8042 to get your keyboard working with 
> > 2.6.32-rc3? We need to make sure that resube works without users needing to 
> > mess with bind/unbind.
> Yes, the keyboard doesn't work after the first resume from ram (the
> later resumes do work). I haven't tried any special option to the i8042
> driver. This is on a HP 2510, in 64 bits.
> 
> Indeed, it would be great to fix this root problem! Is there any bug
> report opened to work on this?
> 
> However, currently the first problem is that unbind works, while bind
> doesn't. Which means anyone doing an unbind will have keyboard and mouse
> lost until the next reboot. That's rather bad because it has been
> recommended for a long time to have this kind of script at resume:
> http://intertrusion.com/files/hp-s2ram.patch
> http://en.opensuse.org/Pm-utils
> 
> So at least, unbind should fail as well as bind.

Ah, I bet I know why bind fails...  Yeah, the i8042_platform_device is
never freed up in the i8042_remove() function in
drivers/input/serio/i8042.c, so when you try to register it again, it
fails.

Dmitry, care to fix this up?  Should be pretty simple.

thanks,

greg k-h
--
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:[~2009-10-12 14:49 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-11  0:04 [REGRESSION] "bind" a device to a driver doesn't not work anymore Éric Piel
2009-10-11  3:00 ` Greg KH
2009-10-12  4:35   ` Dmitry Torokhov
2009-10-12 11:46     ` Éric Piel
2009-10-12 14:44       ` Greg KH [this message]
2009-10-12 14:44         ` Greg KH
2009-10-12 15:45         ` Dmitry Torokhov
2009-10-12 15:45           ` Dmitry Torokhov
2009-10-12 17:37           ` Greg KH
2009-10-12 17:37             ` Greg KH
2009-10-12 15:48       ` Dmitry Torokhov
2009-10-12 16:48         ` Éric Piel
2009-10-12 16:48           ` Éric Piel
2009-10-12 17:35         ` Greg KH
2009-10-12 18:33           ` Dmitry Torokhov
2009-10-12 18:54             ` Greg KH
2009-10-12 19:20               ` Dmitry Torokhov
2009-10-12 19:58                 ` Greg KH
2009-10-13  3:17               ` Dmitry Torokhov
2009-10-18  7:51                 ` Dmitry Torokhov
2009-10-18  8:02                   ` Greg KH
2009-10-23  2:01                     ` Dmitry Torokhov
2009-10-26 20:59                       ` Greg KH
2009-10-26 21:34                         ` Dmitry Torokhov
2009-10-26 23:59                           ` Greg KH
2009-10-27 16:16                             ` Dmitry Torokhov
2009-10-13  9:52         ` Éric Piel
2009-10-14  2:05 Dmitry Torokhov
2009-10-14  2:05 ` Dmitry Torokhov
2009-10-15 17:24 ` Éric Piel
2009-10-15 18:13   ` Dmitry Torokhov
2009-10-15 18:13     ` Dmitry Torokhov
2009-10-15 18:27     ` Dmitry Torokhov
2009-10-15 18:27       ` Dmitry Torokhov
2009-10-15 19:32     ` Éric Piel
2009-10-15 19:51       ` Dmitry Torokhov
2009-10-15 19:51         ` Dmitry Torokhov
2009-10-15 21:33         ` Éric Piel
2009-10-15 21:59           ` Dmitry Torokhov
2009-10-15 21:59             ` Dmitry Torokhov
2009-10-15 22:44             ` Éric Piel
2009-10-21 19:34             ` Éric Piel
2009-10-21 20:20               ` Dmitry Torokhov
2009-10-21 20:20                 ` Dmitry Torokhov
2009-10-22 16:10                 ` Éric Piel
2009-10-22 16:22                   ` Dmitry Torokhov
2009-10-22 16:22                     ` Dmitry Torokhov
2009-10-22 17:48                     ` Éric Piel
2009-10-22 17:48                       ` Éric Piel
2009-10-22 18:19                       ` Dmitry Torokhov
2009-10-22 18:19                         ` Dmitry Torokhov
2009-10-22 18:32                         ` Dmitry Torokhov
2009-10-22 18:32                           ` Dmitry Torokhov
2009-10-23  8:08                         ` Éric Piel
2009-10-23  8:58                           ` Dmitry Torokhov
2009-10-23  8:58                             ` Dmitry Torokhov
2009-10-23  9:21                             ` Éric Piel
2009-10-23  9:21                               ` Éric Piel
2009-10-23 16:31                               ` Dmitry Torokhov
2009-10-23 16:31                                 ` Dmitry Torokhov
2009-10-25 11:47                                 ` Éric Piel
2009-10-25 19:07                                   ` Dmitry Torokhov
2009-10-25 19:07                                     ` Dmitry Torokhov

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=20091012144458.GA1326@suse.de \
    --to=gregkh@suse.de \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dtor@insightbb.com \
    --cc=eric.piel@tremplin-utc.net \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@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.