Re: [REGRESSION] "bind" a device to a driver doesn't not work anymore

From: Éric Piel
Date: Mon Oct 12 2009 - 07:47:46 EST


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.

Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/