All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: "Éric Piel" <eric.piel@tremplin-utc.net>,
	"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 10:37:42 -0700	[thread overview]
Message-ID: <20091012173742.GD10557@suse.de> (raw)
In-Reply-To: <20091012154553.GA7996@core.coreip.homeip.net>

On Mon, Oct 12, 2009 at 08:45:54AM -0700, Dmitry Torokhov wrote:
> On Mon, Oct 12, 2009 at 07:44:58AM -0700, Greg KH wrote:
> > 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.
> > 
> 
> Huh? Platform device and driver are created in i8042_init() and removed
> in i8042_exit(); i8042_remove() is a remove() method of the platform
> driver so it never should be freeing the platform device.

Ah, but you do not have the ability to allow a bind to ever happen
again.  I guess that's fine if you don't want that to happen.  And for
platform devices, it's kind of difficult now that I think about it some
more.

> The issue is that with platform drivers using i8042_driver_probe() the
> probe frunction is discarded afterwards so the driver can't be bound to
> anything after initialization has been completed; however unbinding
> through 'unbind' attribute still works (once). You may recall a thread
> with me and David arguing about it a couple of weeks ago...

Yeah, I remember that...

At least we now know the problem.  Just rmmod and insmod the module to
unbind/bind and everyone will be happy :)

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

WARNING: multiple messages have this Message-ID (diff)
From: Greg KH <gregkh@suse.de>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: "Éric Piel" <eric.piel@tremplin-utc.net>,
	"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 10:37:42 -0700	[thread overview]
Message-ID: <20091012173742.GD10557@suse.de> (raw)
In-Reply-To: <20091012154553.GA7996@core.coreip.homeip.net>

On Mon, Oct 12, 2009 at 08:45:54AM -0700, Dmitry Torokhov wrote:
> On Mon, Oct 12, 2009 at 07:44:58AM -0700, Greg KH wrote:
> > 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.
> > 
> 
> Huh? Platform device and driver are created in i8042_init() and removed
> in i8042_exit(); i8042_remove() is a remove() method of the platform
> driver so it never should be freeing the platform device.

Ah, but you do not have the ability to allow a bind to ever happen
again.  I guess that's fine if you don't want that to happen.  And for
platform devices, it's kind of difficult now that I think about it some
more.

> The issue is that with platform drivers using i8042_driver_probe() the
> probe frunction is discarded afterwards so the driver can't be bound to
> anything after initialization has been completed; however unbinding
> through 'unbind' attribute still works (once). You may recall a thread
> with me and David arguing about it a couple of weeks ago...

Yeah, I remember that...

At least we now know the problem.  Just rmmod and insmod the module to
unbind/bind and everyone will be happy :)

thanks,

greg k-h

  reply	other threads:[~2009-10-12 17:58 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
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 [this message]
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
  -- strict thread matches above, loose matches on Subject: below --
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=20091012173742.GD10557@suse.de \
    --to=gregkh@suse.de \
    --cc=dmitry.torokhov@gmail.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.