2009-10-11 00:04:44

by Éric Piel

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

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?

Thanks,
Eric


2009-10-11 03:01:12

by Greg KH

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

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?

thanks,

greg k-h

2009-10-12 04:36:42

by Dmitry Torokhov

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

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.

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.

--
Dmitry

2009-10-12 11:46:58

by Éric Piel

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

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

2009-10-12 14:49:00

by Greg KH

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

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

2009-10-12 15:46:41

by Dmitry Torokhov

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

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.

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...

--
Dmitry

2009-10-12 15:49:35

by Dmitry Torokhov

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

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.

Could you please try and let me know if unloading at suspend and
reloading after resume atkbd and/or psmouse drivers and leaving i8042
alone "fixes" the issue?

>
> 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

*ahem* putting it sonewgere on the web does not really make it
"recommended" ;)

>
> So at least, unbind should fail as well as bind.
>

That would be Greg's domain s it is driver core decision whether to
allow unbinding platform devices registered with
platform_driver_probe().

--
Dmitry

2009-10-12 16:49:13

by Éric Piel

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

Op 12-10-09 17:48, Dmitry Torokhov schreef:
> On Mon, Oct 12, 2009 at 01:46:17PM +0200, ?ric Piel wrote:
>>> 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.
>
> Could you please try and let me know if unloading at suspend and
> reloading after resume atkbd and/or psmouse drivers and leaving i8042
> alone "fixes" the issue?
>
I've just tried adding i8042.reset to the boot command line, and it
doesn't help (still no keyboard after resume). That's actually a bit
surprising because I saw on some forum that in general it helped for the
HP laptops. Is there a way to be sure the command was understood by the
driver? I see nothing confirming in dmesg.

My atkbd and psmouse drivers were built-in, so I'm currently recompiling
the kernel with them as module and will let you know tomorrow.

See you,
Eric

2009-10-12 17:58:47

by Greg KH

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

On Mon, Oct 12, 2009 at 08:48:46AM -0700, Dmitry Torokhov wrote:
> > So at least, unbind should fail as well as bind.
> >
>
> That would be Greg's domain s it is driver core decision whether to
> allow unbinding platform devices registered with
> platform_driver_probe().

No, I do not see why that should not be allowed.

thanks,

greg k-h

2009-10-12 17:58:53

by Greg KH

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

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

2009-10-12 18:34:02

by Dmitry Torokhov

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

On Mon, Oct 12, 2009 at 10:35:51AM -0700, Greg KH wrote:
> On Mon, Oct 12, 2009 at 08:48:46AM -0700, Dmitry Torokhov wrote:
> > > So at least, unbind should fail as well as bind.
> > >
> >
> > That would be Greg's domain s it is driver core decision whether to
> > allow unbinding platform devices registered with
> > platform_driver_probe().
>
> No, I do not see why that should not be allowed.
>

Because once you did unbind the device you are stuck (unless the driver
is compiled as a module, but then you could just unload the module
instead of unbinding). Disallowing unbind would allow discarding not
only __devinit but __devexit sections when driver is built in which
would make ebedded people happy[^Hier].

--
Dmitry

2009-10-12 19:12:22

by Greg KH

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

On Mon, Oct 12, 2009 at 11:33:13AM -0700, Dmitry Torokhov wrote:
> On Mon, Oct 12, 2009 at 10:35:51AM -0700, Greg KH wrote:
> > On Mon, Oct 12, 2009 at 08:48:46AM -0700, Dmitry Torokhov wrote:
> > > > So at least, unbind should fail as well as bind.
> > > >
> > >
> > > That would be Greg's domain s it is driver core decision whether to
> > > allow unbinding platform devices registered with
> > > platform_driver_probe().
> >
> > No, I do not see why that should not be allowed.
> >
>
> Because once you did unbind the device you are stuck (unless the driver
> is compiled as a module, but then you could just unload the module
> instead of unbinding). Disallowing unbind would allow discarding not
> only __devinit but __devexit sections when driver is built in which
> would make ebedded people happy[^Hier].

Yeah, good point.

Does anyone do bind/unbind with platform devices today?

If not, a patch changing this would be welcome.

thanks,

greg k-h

2009-10-12 19:21:37

by Dmitry Torokhov

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

On Mon, Oct 12, 2009 at 11:54:17AM -0700, Greg KH wrote:
> On Mon, Oct 12, 2009 at 11:33:13AM -0700, Dmitry Torokhov wrote:
> > On Mon, Oct 12, 2009 at 10:35:51AM -0700, Greg KH wrote:
> > > On Mon, Oct 12, 2009 at 08:48:46AM -0700, Dmitry Torokhov wrote:
> > > > > So at least, unbind should fail as well as bind.
> > > > >
> > > >
> > > > That would be Greg's domain s it is driver core decision whether to
> > > > allow unbinding platform devices registered with
> > > > platform_driver_probe().
> > >
> > > No, I do not see why that should not be allowed.
> > >
> >
> > Because once you did unbind the device you are stuck (unless the driver
> > is compiled as a module, but then you could just unload the module
> > instead of unbinding). Disallowing unbind would allow discarding not
> > only __devinit but __devexit sections when driver is built in which
> > would make ebedded people happy[^Hier].
>
> Yeah, good point.
>
> Does anyone do bind/unbind with platform devices today?
>

Greg, meet Eric ;)

Although I'd really want to fix the resume issue so it works out of the
box without needing to bind/unbind or reload i8042.

--
Dmitry

2009-10-12 20:25:52

by Greg KH

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

On Mon, Oct 12, 2009 at 12:20:46PM -0700, Dmitry Torokhov wrote:
> On Mon, Oct 12, 2009 at 11:54:17AM -0700, Greg KH wrote:
> > On Mon, Oct 12, 2009 at 11:33:13AM -0700, Dmitry Torokhov wrote:
> > > On Mon, Oct 12, 2009 at 10:35:51AM -0700, Greg KH wrote:
> > > > On Mon, Oct 12, 2009 at 08:48:46AM -0700, Dmitry Torokhov wrote:
> > > > > > So at least, unbind should fail as well as bind.
> > > > > >
> > > > >
> > > > > That would be Greg's domain s it is driver core decision whether to
> > > > > allow unbinding platform devices registered with
> > > > > platform_driver_probe().
> > > >
> > > > No, I do not see why that should not be allowed.
> > > >
> > >
> > > Because once you did unbind the device you are stuck (unless the driver
> > > is compiled as a module, but then you could just unload the module
> > > instead of unbinding). Disallowing unbind would allow discarding not
> > > only __devinit but __devexit sections when driver is built in which
> > > would make ebedded people happy[^Hier].
> >
> > Yeah, good point.
> >
> > Does anyone do bind/unbind with platform devices today?
> >
>
> Greg, meet Eric ;)

Heh, yes, I mean for a "useful" thing :)

Eric is trying to do this to resolve a bug in the driver, not a thing
that is "normally" done for platform devices.

> Although I'd really want to fix the resume issue so it works out of the
> box without needing to bind/unbind or reload i8042.

I agree.

thanks,

greg k-h

2009-10-13 03:18:28

by Dmitry Torokhov

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

On Mon, Oct 12, 2009 at 11:54:17AM -0700, Greg KH wrote:
> On Mon, Oct 12, 2009 at 11:33:13AM -0700, Dmitry Torokhov wrote:
> > On Mon, Oct 12, 2009 at 10:35:51AM -0700, Greg KH wrote:
> > > On Mon, Oct 12, 2009 at 08:48:46AM -0700, Dmitry Torokhov wrote:
> > > > > So at least, unbind should fail as well as bind.
> > > > >
> > > >
> > > > That would be Greg's domain s it is driver core decision whether to
> > > > allow unbinding platform devices registered with
> > > > platform_driver_probe().
> > >
> > > No, I do not see why that should not be allowed.
> > >
> >
> > Because once you did unbind the device you are stuck (unless the driver
> > is compiled as a module, but then you could just unload the module
> > instead of unbinding). Disallowing unbind would allow discarding not
> > only __devinit but __devexit sections when driver is built in which
> > would make ebedded people happy[^Hier].
>
> Yeah, good point.
>
> Does anyone do bind/unbind with platform devices today?
>
> If not, a patch changing this would be welcome.
>

How about this one?

--
Dmitry


Driver core: allow certain drivers prohibit bind/unbind via sysfs

From: Dmitry Torokhov <[email protected]>

Platform drivers registered via platform_driver_probe() can be bound
to devices only once, upon registration, because discard their probe()
routines to save memory. Unbinding the driver through sysfs 'unbind'
leaves the device stranded and confuses users so let's not create
bind and unbind attributes for such drivers.

Signed-off-by: Dmitry Torokhov <[email protected]>
---

drivers/base/bus.c | 17 +++++++++++------
drivers/base/platform.c | 6 +++++-
include/linux/device.h | 4 +++-
3 files changed, 19 insertions(+), 8 deletions(-)


diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 973bf2a..63c143e 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -689,15 +689,19 @@ int bus_add_driver(struct device_driver *drv)
printk(KERN_ERR "%s: driver_add_attrs(%s) failed\n",
__func__, drv->name);
}
- error = add_bind_files(drv);
- if (error) {
- /* Ditto */
- printk(KERN_ERR "%s: add_bind_files(%s) failed\n",
- __func__, drv->name);
+
+ if (!drv->suppress_bind_attrs) {
+ error = add_bind_files(drv);
+ if (error) {
+ /* Ditto */
+ printk(KERN_ERR "%s: add_bind_files(%s) failed\n",
+ __func__, drv->name);
+ }
}

kobject_uevent(&priv->kobj, KOBJ_ADD);
return 0;
+
out_unregister:
kfree(drv->p);
drv->p = NULL;
@@ -720,7 +724,8 @@ void bus_remove_driver(struct device_driver *drv)
if (!drv->bus)
return;

- remove_bind_files(drv);
+ if (!drv->suppress_bind_attrs)
+ remove_bind_files(drv);
driver_remove_attrs(drv->bus, drv);
driver_remove_file(drv, &driver_attr_uevent);
klist_remove(&drv->p->knode_bus);
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index ed156a1..4fa954b 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -521,11 +521,15 @@ int __init_or_module platform_driver_probe(struct platform_driver *drv,
{
int retval, code;

+ /* make sure driver won't have bind/unbind attributes */
+ drv->driver.suppress_bind_attrs = true;
+
/* temporary section violation during probe() */
drv->probe = probe;
retval = code = platform_driver_register(drv);

- /* Fixup that section violation, being paranoid about code scanning
+ /*
+ * Fixup that section violation, being paranoid about code scanning
* the list of drivers in order to probe new devices. Check to see
* if the probe was successful, and make sure any forced probes of
* new devices fail.
diff --git a/include/linux/device.h b/include/linux/device.h
index aca31bf..2ea3e49 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -124,7 +124,9 @@ struct device_driver {
struct bus_type *bus;

struct module *owner;
- const char *mod_name; /* used for built-in modules */
+ const char *mod_name; /* used for built-in modules */
+
+ bool suppress_bind_attrs; /* disables bind/unbind via sysfs */

int (*probe) (struct device *dev);
int (*remove) (struct device *dev);

2009-10-13 09:53:10

by Éric Piel

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

Op 12-10-09 17:48, Dmitry Torokhov schreef:
> On Mon, Oct 12, 2009 at 01:46:17PM +0200, ?ric Piel wrote:
>>> 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.
>
> Could you please try and let me know if unloading at suspend and
> reloading after resume atkbd and/or psmouse drivers and leaving i8042
> alone "fixes" the issue?
>
Unloading the modules before suspend and reloading them after works
around the issue, indeed.

Eric

2009-10-14 02:07:04

by Dmitry Torokhov

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

On Tue, Oct 13, 2009 at 11:52:19AM +0200, Éric Piel wrote:
> Op 12-10-09 17:48, Dmitry Torokhov schreef:
>> On Mon, Oct 12, 2009 at 01:46:17PM +0200, Éric Piel wrote:
>>>> 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.
>>
>> Could you please try and let me know if unloading at suspend and
>> reloading after resume atkbd and/or psmouse drivers and leaving i8042
>> alone "fixes" the issue?
>>
> Unloading the modules before suspend and reloading them after works
> around the issue, indeed.
>

Do both of them need to be reloaded? Or only one (my guess psmouse) is
enough. Hmm, this is HP laptop so it most likely has Synaptics touchpad.
I wonder what happens if you force it to bare PS/2 protocol (or maybe
Intellimouse)... Try adding "option psmouse proto=imps" and
"option psmouse proto=bare" and suspend/resume.

--
Dmitry

2009-10-15 17:25:19

by Éric Piel

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

2, 12) [33396]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33396]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [33396]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33398]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33398]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [33398]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33401]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33401]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33401]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33404]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33404]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [33404]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33407]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33407]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33407]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33410]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33410]
drivers/input/serio/i8042.c: 3c -> i8042 (parameter) [33410]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33413]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33413]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33413]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33416]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33416]
drivers/input/serio/i8042.c: 28 -> i8042 (parameter) [33416]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33418]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33418]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33418]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33421]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33421]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [33421]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33424]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33424]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33424]
sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.20
sr 0:0:1:0: Attached scsi CD-ROM sr0
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33427]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33427]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [33427]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33430]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33430]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33430]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33433]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33433]
drivers/input/serio/i8042.c: 3c -> i8042 (parameter) [33433]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33435]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33435]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33435]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33438]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33438]
drivers/input/serio/i8042.c: 28 -> i8042 (parameter) [33438]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33441]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33441]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33441]
ricoh-mmc: Ricoh MMC Controller disabling driver
ricoh-mmc: Copyright(c) Philip Langdale
ricoh-mmc: Ricoh MMC controller found at 0000:02:06.3 [1180:0843] (rev 11)
ricoh-mmc: Controller is now disabled.
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33444]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33444]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [33444]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33447]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33447]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33447]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33450]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33450]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [33450]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33453]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33453]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [33453]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33456]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [33457]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33457]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [33457]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33460]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33460]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [33460]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33463]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33463]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [33463]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33466]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33466]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [33466]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33468]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33468]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [33468]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33471]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33471]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [33471]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33474]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33474]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [33474]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33477]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33477]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [33477]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33480]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33480]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [33480]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33482]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [33484]
drivers/input/serio/i8042.c: 46 <- i8042 (interrupt, 2, 12) [33486]
drivers/input/serio/i8042.c: 12 <- i8042 (interrupt, 2, 12) [33488]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33488]
drivers/input/serio/i8042.c: f6 -> i8042 (parameter) [33488]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33491]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33491]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [33492]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33495]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33495]
drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [33495]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33497]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33497]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [33497]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33500]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33500]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [33500]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33503]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33503]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [33503]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33506]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33506]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [33506]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33509]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [33509]
drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, 2, 12) [33512]
drivers/input/serio/i8042.c: 64 <- i8042 (interrupt, 2, 12) [33513]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33513]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [33513]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33516]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33516]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [33516]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33519]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33519]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [33519]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33522]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33522]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [33522]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33525]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33525]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [33525]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33527]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33527]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [33527]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33530]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [33531]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [33532]
drivers/input/serio/i8042.c: 64 <- i8042 (interrupt, 2, 12) [33534]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33534]
drivers/input/serio/i8042.c: e1 -> i8042 (parameter) [33534]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 2, 12) [33537]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33537]
drivers/input/serio/i8042.c: f6 -> i8042 (parameter) [33537]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33543]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33543]
drivers/input/serio/i8042.c: ff -> i8042 (parameter) [33543]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33546]
iTCO_wdt: Intel TCO WatchDog Timer Driver v1.05
iTCO_wdt: Found a ICH8M-E TCO device (Version=2, TCOBASE=0x1060)
iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
lis3lv02d: hardware type NC2510 found.
lis3lv02d: 12 bits sensor found
input: ST LIS3LV02DL Accelerometer as /devices/platform/lis3lv02d/input/input8
Registered led device: hp::hddprotect
lis3lv02d driver loaded.
drivers/input/serio/i8042.c: aa <- i8042 (interrupt, 2, 12) [33877]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [33880]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33880]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33880]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33882]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33882]
drivers/input/serio/i8042.c: c8 -> i8042 (parameter) [33882]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33885]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33885]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33885]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33888]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33888]
drivers/input/serio/i8042.c: 64 -> i8042 (parameter) [33888]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33891]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33891]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33891]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33894]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33894]
drivers/input/serio/i8042.c: 50 -> i8042 (parameter) [33894]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33897]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33897]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [33897]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33899]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [33900]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33900]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33900]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33904]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33904]
drivers/input/serio/i8042.c: c8 -> i8042 (parameter) [33904]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33906]
ACPI: WMI: Mapper loaded
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33907]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33907]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33910]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33910]
drivers/input/serio/i8042.c: c8 -> i8042 (parameter) [33910]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33913]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33913]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33913]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33915]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33915]
drivers/input/serio/i8042.c: 50 -> i8042 (parameter) [33915]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33918]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33918]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [33918]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33921]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [33923]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33923]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33923]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33926]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33926]
drivers/input/serio/i8042.c: c8 -> i8042 (parameter) [33926]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33929]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33929]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33929]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33932]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33932]
drivers/input/serio/i8042.c: 64 -> i8042 (parameter) [33932]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33935]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33935]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [33935]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33938]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33938]
drivers/input/serio/i8042.c: 50 -> i8042 (parameter) [33938]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33940]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33940]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [33940]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33943]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [33944]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [33944]
drivers/input/serio/i8042.c: ff -> i8042 (parameter) [33944]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [33947]
cfg80211: Calling CRDA to update world regulatory domain
cfg80211: World regulatory domain updated:
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
(2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
(2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
(2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
(5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
(5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
Bluetooth: Core ver 2.15
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: Generic Bluetooth USB driver ver 0.6
usbcore: registered new interface driver btusb
drivers/input/serio/i8042.c: aa <- i8042 (interrupt, 2, 12) [34278]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [34280]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [34280]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [34280]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [34283]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [34283]
drivers/input/serio/i8042.c: 64 -> i8042 (parameter) [34283]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [34286]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [34286]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34286]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [34289]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [34289]
drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [34289]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [34292]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [34292]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [34292]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [34295]
input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input9
drivers/input/serio/i8042.c: 90 -> i8042 (command) [34295]
drivers/input/serio/i8042.c: f4 -> i8042 (parameter) [34295]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [34298]
drivers/input/serio/i8042.c: 91 -> i8042 (command) [34298]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [34298]
drivers/input/serio/i8042.c: MUX error, status is 75, data is fe [34299]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 3, 12, timeout) [34299]
drivers/input/serio/i8042.c: 92 -> i8042 (command) [34299]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [34299]
drivers/input/serio/i8042.c: MUX error, status is b5, data is fe [34299]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 4, 12, timeout) [34299]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34299]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [34300]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34302]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 5, 12) [34303]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34304]
drivers/input/serio/i8042.c: f6 -> i8042 (parameter) [34304]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34306]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34306]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [34306]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34309]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34309]
drivers/input/serio/i8042.c: 0a -> i8042 (parameter) [34309]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34312]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34312]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34312]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34315]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34315]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34315]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34318]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34318]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [34318]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34321]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34321]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [34321]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34325]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34325]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [34325]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34328]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34328]
drivers/input/serio/i8042.c: 3c -> i8042 (parameter) [34328]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34331]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34331]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [34331]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34334]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34334]
drivers/input/serio/i8042.c: 28 -> i8042 (parameter) [34334]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34336]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34336]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [34337]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34339]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34339]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [34339]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34342]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34342]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [34342]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34346]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34346]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [34346]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34348]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34349]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [34349]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34351]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34352]
drivers/input/serio/i8042.c: 3c -> i8042 (parameter) [34352]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34355]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34355]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [34355]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34358]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34358]
drivers/input/serio/i8042.c: 28 -> i8042 (parameter) [34358]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34361]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34361]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [34361]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34364]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34364]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [34364]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34367]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34367]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [34367]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34370]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34370]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [34370]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34373]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34373]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [34373]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34376]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 5, 12) [34378]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34378]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34378]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34381]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34381]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34381]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34384]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34384]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34384]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34387]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34387]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34387]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34390]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34390]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34390]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34393]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34393]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34393]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34396]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34396]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34396]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34399]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34399]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34399]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34402]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34402]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [34402]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34405]
drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, 5, 12) [34407]
drivers/input/serio/i8042.c: 47 <- i8042 (interrupt, 5, 12) [34410]
drivers/input/serio/i8042.c: 16 <- i8042 (interrupt, 5, 12) [34413]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34413]
drivers/input/serio/i8042.c: ff -> i8042 (parameter) [34413]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34416]
usbcore: registered new interface driver wacom
wacom: v1.51:USB Wacom Graphire and Wacom Intuos tablet driver
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
yenta_cardbus 0000:02:06.0: CardBus bridge found [103c:30c9]
Initializing USB Mass Storage driver...
scsi2 : SCSI emulation for USB Mass Storage devices
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usb-storage: device found at 6
usb-storage: waiting for device to settle before scanning
drivers/input/serio/i8042.c: aa <- i8042 (interrupt, 5, 12) [34780]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 5, 12) [34783]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34783]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [34783]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34786]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34786]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34786]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34789]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34789]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34789]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34792]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34792]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34792]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34795]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34795]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34795]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34798]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34798]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34798]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34801]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34801]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34801]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34804]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34804]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34804]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34807]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34807]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34807]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34810]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34810]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [34810]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34813]
drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, 5, 12) [34814]
drivers/input/serio/i8042.c: 47 <- i8042 (interrupt, 5, 12) [34818]
drivers/input/serio/i8042.c: 16 <- i8042 (interrupt, 5, 12) [34821]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34821]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [34821]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34824]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34824]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34824]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34827]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34827]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34827]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34830]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34830]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34830]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34833]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34833]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34833]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34836]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34836]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34836]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34839]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34839]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34839]
yenta_cardbus 0000:02:06.0: ISA IRQ mask 0x0cb8, PCI irq 18
yenta_cardbus 0000:02:06.0: Socket status: 30000006
pci_bus 0000:02: Raising subordinate bus# of parent bus (#02) from #03 to #06
yenta_cardbus 0000:02:06.0: pcmcia: parent PCI bridge I/O window: 0x3000 - 0x3fff
yenta_cardbus 0000:02:06.0: pcmcia: parent PCI bridge Memory window: 0xe0100000 - 0xe03fffff
yenta_cardbus 0000:02:06.0: pcmcia: parent PCI bridge Memory window: 0x80000000 - 0x83ffffff
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34842]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34842]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34842]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34845]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34845]
drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [34845]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34848]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34848]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [34848]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34851]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 5, 12) [34853]
drivers/input/serio/i8042.c: a0 <- i8042 (interrupt, 5, 12) [34856]
drivers/input/serio/i8042.c: b1 <- i8042 (interrupt, 5, 12) [34859]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34859]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [34859]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34862]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34862]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34862]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34865]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34865]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34865]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34868]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34868]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34868]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34871]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34871]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34871]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34874]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34874]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34874]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34877]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34877]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34877]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34880]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34880]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34880]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34883]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34883]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [34883]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34886]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34886]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [34886]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34889]
drivers/input/serio/i8042.c: a0 <- i8042 (interrupt, 5, 12) [34891]
drivers/input/serio/i8042.c: 47 <- i8042 (interrupt, 5, 12) [34893]
drivers/input/serio/i8042.c: 13 <- i8042 (interrupt, 5, 12) [34896]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34896]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [34896]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34899]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34899]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34899]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34902]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34902]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34902]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34905]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34905]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34905]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34908]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34908]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34908]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34911]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34911]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34911]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34914]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34914]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [34914]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34917]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34917]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34917]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34919]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34919]
drivers/input/serio/i8042.c: 01 -> i8042 (parameter) [34919]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34923]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34923]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [34923]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34926]
drivers/input/serio/i8042.c: 20 <- i8042 (interrupt, 5, 12) [34928]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 5, 12) [34931]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 5, 12) [34933]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34933]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [34933]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34936]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34936]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34936]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34939]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34940]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34940]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34943]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34943]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34943]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34946]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34946]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34946]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34949]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34949]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34949]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34952]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34952]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [34952]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34955]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34955]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34955]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34958]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34958]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34958]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34961]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34961]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [34961]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34964]
drivers/input/serio/i8042.c: 4a <- i8042 (interrupt, 5, 12) [34966]
drivers/input/serio/i8042.c: 80 <- i8042 (interrupt, 5, 12) [34969]
drivers/input/serio/i8042.c: a0 <- i8042 (interrupt, 5, 12) [34973]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34973]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [34973]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34976]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34976]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34976]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34979]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34979]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [34979]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34981]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34982]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34982]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34984]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34985]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [34985]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34987]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34987]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34987]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34990]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34990]
drivers/input/serio/i8042.c: 01 -> i8042 (parameter) [34990]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34993]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34993]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [34993]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34996]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34996]
drivers/input/serio/i8042.c: 01 -> i8042 (parameter) [34996]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [34999]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [34999]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [34999]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35005]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35005]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [35005]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35007]
Synaptics Touchpad, model: 1, fw: 6.3, id: 0x1a0b1, caps: 0xa04713/0x200000
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35007]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [35007]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35010]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35011]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [35011]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35013]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35013]
drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [35013]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35016]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35016]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [35016]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35019]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35019]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [35019]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35022]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35022]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [35022]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35025]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35025]
drivers/input/serio/i8042.c: 01 -> i8042 (parameter) [35025]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35028]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35028]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [35028]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35031]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35031]
drivers/input/serio/i8042.c: 01 -> i8042 (parameter) [35031]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35035]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35035]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [35035]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35038]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35038]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [35038]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35041]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35041]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [35041]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35044]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35044]
drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [35044]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35047]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35047]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [35047]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35050]
input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio4/input/input10
drivers/input/serio/i8042.c: 93 -> i8042 (command) [35050]
drivers/input/serio/i8042.c: f4 -> i8042 (parameter) [35050]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [35053]
sdhci-pci 0000:02:06.2: SDHCI controller found [1180:0822] (rev 21)
sdhci-pci 0000:02:06.2: PCI INT C -> GSI 20 (level, low) -> IRQ 20
Registered led device: mmc0::
mmc0: SDHCI controller on PCI [0000:02:06.2] using PIO
tpm_inf_pnp 00:02: Found C284 with ID IFX0102
tpm_inf_pnp 00:02: TPM found: config base 0x560, data base 0x570, chip version 0x000b, vendor id 0x15d1 (Infineon), product id 0x000b (SLB 9635 TT 1.2)
b43-phy0: Broadcom 4311 WLAN found (core revision 13)
b43-phy0 debug: Found PHY: Analog 4, Type 2, Revision 9
b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, Revision 2
alloc irq_desc for 19 on node -1
alloc kstat_irqs on node -1
ohci1394 0000:02:06.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[19] MMIO=[e0101000-e01017ff] Max Packet=[2048] IR/IT contexts=[4/4]
phy0: Selected rate control algorithm 'pid'
Registered led device: b43-phy0::tx
Registered led device: b43-phy0::rx
Registered led device: b43-phy0::radio
Broadcom 43xx driver loaded [ Features: PL, Firmware-ID: FW13 ]
HDA Intel 0000:00:1b.0: power state changed by ACPI to D0
HDA Intel 0000:00:1b.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
HDA Intel 0000:00:1b.0: setting latency timer to 64
input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input11
ieee1394: Host added: ID:BUS[0-00:1023] GUID[001b249929bd0f10]
input: HP WMI hotkeys as /devices/virtual/input/input12
Non-volatile memory driver v1.3
EXT3 FS on sda5, internal journal
scsi 2:0:0:0: Direct-Access Generic Flash HS-CF 5.39 PQ: 0 ANSI: 0
sd 2:0:0:0: Attached scsi generic sg2 type 0
scsi 2:0:0:1: Direct-Access Generic Flash HS-COMBO 5.39 PQ: 0 ANSI: 0
sd 2:0:0:1: Attached scsi generic sg3 type 0
sd 2:0:0:0: [sdb] Attached SCSI removable disk
sd 2:0:0:1: [sdc] Attached SCSI removable disk
usb-storage: device scan complete
kjournald starting. Commit interval 5 seconds
EXT3 FS on sda7, internal journal
EXT3-fs: mounted filesystem with writeback data mode.
fuse init (API version 7.13)
loop: module loaded
Adding 2401676k swap on /dev/sda6. Priority:-1 extents:1 across:2401676k
drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [45477]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [45478]
drivers/input/serio/i8042.c: 02 -> i8042 (kbd-data) [45478]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [45481]
microcode: CPU0 sig=0x6fd, pf=0x80, revision=0xa3
platform microcode: firmware: requesting intel-ucode/06-0f-0d
microcode: CPU1 sig=0x6fd, pf=0x80, revision=0xa3
platform microcode: firmware: requesting intel-ucode/06-0f-0d
Microcode Update Driver: v2.00 <[email protected]>, Peter Oruba
NET: Registered protocol family 10
lo: Disabled Privacy Extensions
cfg80211: Calling CRDA for country: NL
cfg80211: Regulatory domain changed to country: NL
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
(2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)
(5170000 KHz - 5250000 KHz @ 40000 KHz), (N/A, 2000 mBm)
(5250000 KHz - 5330000 KHz @ 40000 KHz), (N/A, 2000 mBm)
(5490000 KHz - 5710000 KHz @ 40000 KHz), (N/A, 2700 mBm)
e1000e 0000:00:19.0: irq 27 for MSI/MSI-X
e1000e 0000:00:19.0: irq 27 for MSI/MSI-X
ADDRCONF(NETDEV_UP): eth1: link is not ready
b43 ssb0:0: firmware: requesting b43/ucode13.fw
b43 ssb0:0: firmware: requesting b43/b0g0initvals13.fw
e1000e: eth1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: None
0000:00:19.0: eth1: 10/100 speed: disabling TSO
b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)
b43-phy0 debug: Chip initialized
b43-phy0 debug: 64-bit DMA initialized
b43-phy0 debug: QoS enabled
b43-phy0 debug: Wireless interface started
b43-phy0 debug: Adding Interface type 2
ADDRCONF(NETDEV_UP): wlan0: link is not ready
ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
NET: Registered protocol family 17
PPP generic driver version 2.4.2
NET: Registered protocol family 24
[drm] DAC-6: set mode 1152x864 2d
drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [55771]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [55772]
drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [55772]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [55775]
drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [56274]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [56274]
drivers/input/serio/i8042.c: 02 -> i8042 (kbd-data) [56274]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [56277]
eth1: no IPv6 routers present
CPUFREQ: Per core ondemand sysfs interface is deprecated - ignore_nice_load
[drm] DAC-6: set mode 2f
drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, 0, 1) [210907]
drivers/input/serio/i8042.c: 3f <- i8042 (interrupt, 0, 1) [210910]
drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, 0, 1) [211091]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [211093]
drivers/input/serio/i8042.c: 3f <- i8042 (interrupt, 0, 1) [211096]
b43-phy0 debug: Removing Interface type 2
b43-phy0 debug: Wireless interface stopped
b43-phy0 debug: DMA-64 rx_ring: Used slots 1/64, Failed frames 0/0 = 0.0%, Average tries 0.00
b43-phy0 debug: DMA-64 tx_ring_AC_BK: Used slots 0/256, Failed frames 0/0 = 0.0%, Average tries 0.00
b43-phy0 debug: DMA-64 tx_ring_AC_BE: Used slots 0/256, Failed frames 0/0 = 0.0%, Average tries 0.00
b43-phy0 debug: DMA-64 tx_ring_AC_VI: Used slots 0/256, Failed frames 0/0 = 0.0%, Average tries 0.00
b43-phy0 debug: DMA-64 tx_ring_AC_VO: Used slots 2/256, Failed frames 0/13 = 0.0%, Average tries 1.00
b43-phy0 debug: DMA-64 tx_ring_mcast: Used slots 0/256, Failed frames 0/0 = 0.0%, Average tries 0.00
IPv6 over IPv4 tunneling driver
sit0: Disabled Privacy Extensions
PM: Syncing filesystems ... done.
drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [215309]
Freezing user space processes ...
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [215309]
drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [215311]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [215312]
(elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
Suspending console(s) (use no_console_suspend to debug)
sd 0:0:0:0: [sda] Synchronizing SCSI cache
sd 0:0:0:0: [sda] Stopping disk
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216316]
drivers/input/serio/i8042.c: f5 -> i8042 (parameter) [216316]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216319]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216319]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [216319]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216322]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216322]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [216322]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216325]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216325]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [216325]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216328]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216328]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [216328]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216331]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216331]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [216331]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216334]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216334]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [216334]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216337]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216337]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [216337]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216340]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216340]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [216340]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216343]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216343]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [216343]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216346]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216347]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [216347]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216349]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216349]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [216349]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216352]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216352]
drivers/input/serio/i8042.c: ff -> i8042 (parameter) [216352]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216355]
drivers/input/serio/i8042.c: aa <- i8042 (interrupt, 5, 12) [216718]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 5, 12) [216721]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [216721]
drivers/input/serio/i8042.c: f4 -> i8042 (parameter) [216721]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [216724]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [216724]
drivers/input/serio/i8042.c: f5 -> i8042 (parameter) [216724]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [216727]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [216727]
drivers/input/serio/i8042.c: ff -> i8042 (parameter) [216727]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [216730]
drivers/input/serio/i8042.c: aa <- i8042 (interrupt, 2, 12) [217062]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [217064]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [217064]
drivers/input/serio/i8042.c: f4 -> i8042 (parameter) [217064]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [217067]
drivers/input/serio/i8042.c: ff -> i8042 (kbd-data) [217067]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [217068]
drivers/input/serio/i8042.c: aa <- i8042 (interrupt, 0, 1) [217071]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [217171]
drivers/input/serio/i8042.c: 30 -> i8042 (parameter) [217171]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [217171]
drivers/input/serio/i8042.c: f0 -> i8042 (parameter) [217171]
drivers/input/serio/i8042.c: f0 <- i8042 (return) [217171]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [217171]
drivers/input/serio/i8042.c: f6 -> i8042 (parameter) [217171]
drivers/input/serio/i8042.c: f6 <- i8042 (return) [217171]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [217171]
drivers/input/serio/i8042.c: a5 -> i8042 (parameter) [217171]
drivers/input/serio/i8042.c: a5 <- i8042 (return) [217171]
drivers/input/serio/i8042.c: aa -> i8042 (command) [217171]
drivers/input/serio/i8042.c: 55 <- i8042 (return) [217171]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [217171]
drivers/input/serio/i8042.c: 30 -> i8042 (parameter) [217171]
ACPI handle has no context!
ACPI handle has no context!
sdhci-pci 0000:02:06.2: PCI INT C disabled
ACPI handle has no context!
ACPI handle has no context!
b43-pci-bridge 0000:10:00.0: PCI INT A disabled
ata2: port disabled. ignoring.
ata_piix 0000:00:1f.1: PCI INT A disabled
ehci_hcd 0000:00:1d.7: PCI INT A disabled
uhci_hcd 0000:00:1d.2: PCI INT C disabled
uhci_hcd 0000:00:1d.1: PCI INT B disabled
uhci_hcd 0000:00:1d.0: PCI INT A disabled
HDA Intel 0000:00:1b.0: PCI INT A disabled
HDA Intel 0000:00:1b.0: power state changed by ACPI to D3
ehci_hcd 0000:00:1a.7: PCI INT C disabled
uhci_hcd 0000:00:1a.1: PCI INT B disabled
uhci_hcd 0000:00:1a.0: PCI INT A disabled
e1000e 0000:00:19.0: PCI INT A disabled
e1000e 0000:00:19.0: PME# enabled
e1000e 0000:00:19.0: wake-up capability enabled by ACPI
ricoh-mmc: Suspending.
ricoh-mmc: Controller is now re-enabled.
ACPI: Preparing to enter system sleep state S3
Disabling non-boot CPUs ...
kvm: disabling virtualization on CPU1
CPU 1 is now offline
SMP alternatives: switching to UP code
CPU0 attaching NULL sched-domain.
CPU1 attaching NULL sched-domain.
CPU0 attaching NULL sched-domain.
CPU1 is down
Extended CMOS year: 2000
Back to C!
CPU0: Thermal monitoring handled by SMI
Extended CMOS year: 2000
Enabling non-boot CPUs ...
SMP alternatives: switching to SMP code
Booting processor 1 APIC 0x1 ip 0x6000
Initializing CPU#1
Calibrating delay using timer specific routine.. 2394.03 BogoMIPS (lpj=1197015)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 2048K
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
mce: CPU supports 6 MCE banks
CPU1: Thermal monitoring enabled (TM2)
CPU1: Intel(R) Core(TM)2 Duo CPU U7600 @ 1.20GHz stepping 0d
kvm: enabling virtualization on CPU1
CPU0 attaching NULL sched-domain.
CPU0 attaching sched-domain:
domain 0: span 0-1 level MC
groups: 0 1
CPU1 attaching sched-domain:
domain 0: span 0-1 level MC
groups: 1 0
CPU1 is up
ACPI: Waking up from system sleep state S3
i915 0000:00:02.0: restoring config space at offset 0x8 (was 0x1, writing 0x2001)
i915 0000:00:02.0: restoring config space at offset 0x1 (was 0x900403, writing 0x900407)
pci 0000:00:02.1: restoring config space at offset 0x4 (was 0x4, writing 0xe0500004)
pci 0000:00:02.1: restoring config space at offset 0x1 (was 0x900000, writing 0x900007)
e1000e 0000:00:19.0: restoring config space at offset 0xf (was 0x100, writing 0x10b)
e1000e 0000:00:19.0: restoring config space at offset 0x6 (was 0x1, writing 0x2021)
e1000e 0000:00:19.0: restoring config space at offset 0x5 (was 0x0, writing 0xe0620000)
e1000e 0000:00:19.0: restoring config space at offset 0x1 (was 0x100000, writing 0x100007)
uhci_hcd 0000:00:1a.0: restoring config space at offset 0xf (was 0x100, writing 0x10a)
uhci_hcd 0000:00:1a.0: restoring config space at offset 0x8 (was 0x1, writing 0x2041)
uhci_hcd 0000:00:1a.0: restoring config space at offset 0x1 (was 0x2800000, writing 0x2800001)
uhci_hcd 0000:00:1a.1: restoring config space at offset 0xf (was 0x200, writing 0x20a)
uhci_hcd 0000:00:1a.1: restoring config space at offset 0x8 (was 0x1, writing 0x2061)
uhci_hcd 0000:00:1a.1: restoring config space at offset 0x1 (was 0x2800000, writing 0x2800001)
ehci_hcd 0000:00:1a.7: restoring config space at offset 0xf (was 0x300, writing 0x30b)
ehci_hcd 0000:00:1a.7: restoring config space at offset 0x4 (was 0x0, writing 0xe0621000)
ehci_hcd 0000:00:1a.7: restoring config space at offset 0x1 (was 0x2900000, writing 0x2900002)
HDA Intel 0000:00:1b.0: restoring config space at offset 0xf (was 0x100, writing 0x10a)
HDA Intel 0000:00:1b.0: restoring config space at offset 0x3 (was 0x0, writing 0x10)
HDA Intel 0000:00:1b.0: restoring config space at offset 0x1 (was 0x100000, writing 0x100002)
pcieport-driver 0000:00:1c.0: restoring config space at offset 0xf (was 0x100, writing 0x4010a)
pcieport-driver 0000:00:1c.0: restoring config space at offset 0x9 (was 0x10001, writing 0x1fff1)
pcieport-driver 0000:00:1c.0: restoring config space at offset 0x8 (was 0x0, writing 0xfff0)
pcieport-driver 0000:00:1c.0: restoring config space at offset 0x7 (was 0x0, writing 0x200000f0)
pcieport-driver 0000:00:1c.0: restoring config space at offset 0x6 (was 0x0, writing 0x80800)
pcieport-driver 0000:00:1c.0: restoring config space at offset 0x3 (was 0x810000, writing 0x810010)
pcieport-driver 0000:00:1c.0: restoring config space at offset 0x1 (was 0x100000, writing 0x100407)
pcieport-driver 0000:00:1c.1: restoring config space at offset 0xf (was 0x200, writing 0x4020a)
pcieport-driver 0000:00:1c.1: restoring config space at offset 0x9 (was 0x10001, writing 0x1fff1)
pcieport-driver 0000:00:1c.1: restoring config space at offset 0x8 (was 0x0, writing 0xe000e000)
pcieport-driver 0000:00:1c.1: restoring config space at offset 0x7 (was 0x0, writing 0xf0)
pcieport-driver 0000:00:1c.1: restoring config space at offset 0x3 (was 0x810000, writing 0x810010)
pcieport-driver 0000:00:1c.1: restoring config space at offset 0x1 (was 0x100000, writing 0x100407)
uhci_hcd 0000:00:1d.0: restoring config space at offset 0xf (was 0x100, writing 0x10a)
uhci_hcd 0000:00:1d.0: restoring config space at offset 0x8 (was 0x1, writing 0x2081)
uhci_hcd 0000:00:1d.0: restoring config space at offset 0x1 (was 0x2800000, writing 0x2800001)
uhci_hcd 0000:00:1d.1: restoring config space at offset 0xf (was 0x200, writing 0x20b)
uhci_hcd 0000:00:1d.1: restoring config space at offset 0x8 (was 0x1, writing 0x20a1)
uhci_hcd 0000:00:1d.1: restoring config space at offset 0x1 (was 0x2800000, writing 0x2800001)
uhci_hcd 0000:00:1d.2: restoring config space at offset 0xf (was 0x300, writing 0x30b)
uhci_hcd 0000:00:1d.2: restoring config space at offset 0x8 (was 0x1, writing 0x20c1)
uhci_hcd 0000:00:1d.2: restoring config space at offset 0x1 (was 0x2800000, writing 0x2800001)
ehci_hcd 0000:00:1d.7: restoring config space at offset 0xf (was 0x100, writing 0x10a)
ehci_hcd 0000:00:1d.7: restoring config space at offset 0x4 (was 0x0, writing 0xe0628000)
ehci_hcd 0000:00:1d.7: restoring config space at offset 0x1 (was 0x2900000, writing 0x2900002)
pci 0000:00:1e.0: restoring config space at offset 0x9 (was 0x10001, writing 0x83f18001)
pci 0000:00:1e.0: restoring config space at offset 0x8 (was 0x0, writing 0xe030e010)
pci 0000:00:1e.0: restoring config space at offset 0x7 (was 0x228000f0, writing 0x22803030)
pci 0000:00:1e.0: restoring config space at offset 0x1 (was 0x100007, writing 0x100107)
ata_piix 0000:00:1f.1: restoring config space at offset 0xf (was 0x100, writing 0x10a)
ata_piix 0000:00:1f.1: restoring config space at offset 0x8 (was 0xc01, writing 0x20e1)
ata_piix 0000:00:1f.1: restoring config space at offset 0x1 (was 0x2800005, writing 0x2880005)
b43-pci-bridge 0000:10:00.0: restoring config space at offset 0xf (was 0x100, writing 0x10a)
b43-pci-bridge 0000:10:00.0: restoring config space at offset 0x4 (was 0x4, writing 0xe0000004)
b43-pci-bridge 0000:10:00.0: restoring config space at offset 0x3 (was 0x0, writing 0x10)
b43-pci-bridge 0000:10:00.0: restoring config space at offset 0x1 (was 0x100000, writing 0x100006)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0xf (was 0x3000100, writing 0x580010b)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0xe (was 0x0, writing 0x34fc)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0xd (was 0x0, writing 0x3400)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0xc (was 0x0, writing 0x30fc)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0xb (was 0x0, writing 0x3000)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0xa (was 0x0, writing 0x87fff000)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0x9 (was 0x0, writing 0x84000000)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0x8 (was 0x0, writing 0x83fff000)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0x7 (was 0x0, writing 0x80000000)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0x6 (was 0x0, writing 0xb0060302)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0x4 (was 0x0, writing 0xe0100000)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0x3 (was 0x820000, writing 0x82a800)
yenta_cardbus 0000:02:06.0: restoring config space at offset 0x1 (was 0x2100000, writing 0x2100007)
ohci1394 0000:02:06.1: restoring config space at offset 0xf (was 0x4020200, writing 0x4020205)
ohci1394 0000:02:06.1: restoring config space at offset 0x4 (was 0x0, writing 0xe0101000)
ohci1394 0000:02:06.1: restoring config space at offset 0x3 (was 0x800000, writing 0x804010)
ohci1394 0000:02:06.1: restoring config space at offset 0x1 (was 0x2100000, writing 0x2100006)
sdhci-pci 0000:02:06.2: restoring config space at offset 0xf (was 0x300, writing 0x30a)
sdhci-pci 0000:02:06.2: restoring config space at offset 0x4 (was 0x0, writing 0xe0102000)
sdhci-pci 0000:02:06.2: restoring config space at offset 0x3 (was 0x800000, writing 0x804010)
sdhci-pci 0000:02:06.2: restoring config space at offset 0x1 (was 0x2100000, writing 0x2100006)
ricoh-mmc 0000:02:06.3: restoring config space at offset 0xf (was 0x300, writing 0x30a)
ricoh-mmc 0000:02:06.3: restoring config space at offset 0x4 (was 0x0, writing 0xe0103000)
ricoh-mmc 0000:02:06.3: restoring config space at offset 0x3 (was 0x800000, writing 0x804010)
ricoh-mmc 0000:02:06.3: restoring config space at offset 0x1 (was 0x2100000, writing 0x2100006)
ricoh-mmc: Resuming.
ricoh-mmc: Controller is now disabled.
PM: Device PNP0C0D:00 failed to resume: error 1
i915 0000:00:02.0: setting latency timer to 64
[drm] DAC-6: set mode 2f
[drm] LVDS-8: set mode 1280x800 2b
e1000e 0000:00:19.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
e1000e 0000:00:19.0: setting latency timer to 64
e1000e 0000:00:19.0: wake-up capability disabled by ACPI
e1000e 0000:00:19.0: PME# disabled
e1000e 0000:00:19.0: irq 27 for MSI/MSI-X
uhci_hcd 0000:00:1a.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
uhci_hcd 0000:00:1a.0: setting latency timer to 64
usb usb3: root hub lost power or was reset
uhci_hcd 0000:00:1a.1: PCI INT B -> GSI 17 (level, low) -> IRQ 17
uhci_hcd 0000:00:1a.1: setting latency timer to 64
usb usb4: root hub lost power or was reset
ehci_hcd 0000:00:1a.7: PCI INT C -> GSI 18 (level, low) -> IRQ 18
ehci_hcd 0000:00:1a.7: setting latency timer to 64
HDA Intel 0000:00:1b.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
HDA Intel 0000:00:1b.0: setting latency timer to 64
uhci_hcd 0000:00:1d.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
uhci_hcd 0000:00:1d.0: setting latency timer to 64
usb usb5: root hub lost power or was reset
uhci_hcd 0000:00:1d.1: PCI INT B -> GSI 22 (level, low) -> IRQ 22
uhci_hcd 0000:00:1d.1: setting latency timer to 64
usb usb6: root hub lost power or was reset
uhci_hcd 0000:00:1d.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
uhci_hcd 0000:00:1d.2: setting latency timer to 64
usb usb7: root hub lost power or was reset
ehci_hcd 0000:00:1d.7: PCI INT A -> GSI 20 (level, low) -> IRQ 20
ehci_hcd 0000:00:1d.7: setting latency timer to 64
pci 0000:00:1e.0: setting latency timer to 64
ata_piix 0000:00:1f.1: PCI INT A -> GSI 16 (level, low) -> IRQ 16
ata_piix 0000:00:1f.1: setting latency timer to 64
b43-pci-bridge 0000:10:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
ata2: port disabled. ignoring.
ACPI Exception: AE_AML_PACKAGE_LIMIT, Index (000000005) is beyond end of object (20090903/exoparg2-445)
ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C2C3] (Node ffff88007f054020), AE_AML_PACKAGE_LIMIT
ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C003.C0F6.C3F3._STM] (Node ffff88007f068100), AE_AML_PACKAGE_LIMIT
ata1: ACPI set timing mode failed (status=0x300b)
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[19] MMIO=[e0101000-e01017ff] Max Packet=[2048] IR/IT contexts=[4/4]
sdhci-pci 0000:02:06.2: PCI INT C -> GSI 20 (level, low) -> IRQ 20
drivers/input/serio/i8042.c: aa -> i8042 (command) [218941]
drivers/input/serio/i8042.c: 55 <- i8042 (return) [218941]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [218941]
drivers/input/serio/i8042.c: 30 -> i8042 (parameter) [218941]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [218941]
drivers/input/serio/i8042.c: f0 -> i8042 (parameter) [218941]
drivers/input/serio/i8042.c: f0 <- i8042 (return) [218941]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [218941]
drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [218941]
drivers/input/serio/i8042.c: 56 <- i8042 (return) [218941]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [218942]
drivers/input/serio/i8042.c: a4 -> i8042 (parameter) [218942]
drivers/input/serio/i8042.c: 11 <- i8042 (return) [218942]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [218942]
drivers/input/serio/i8042.c: a8 -> i8042 (command) [218942]
drivers/input/serio/i8042.c: 91 -> i8042 (command) [218942]
drivers/input/serio/i8042.c: a8 -> i8042 (command) [218942]
drivers/input/serio/i8042.c: 92 -> i8042 (command) [218942]
drivers/input/serio/i8042.c: a8 -> i8042 (command) [218942]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [218942]
drivers/input/serio/i8042.c: a8 -> i8042 (command) [218942]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [218942]
drivers/input/serio/i8042.c: 12 -> i8042 (parameter) [218942]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [218942]
drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [218942]
sd 0:0:0:0: [sda] Starting disk
ata1.01: ACPI cmd ef/03:0c:00:00:00:b0 (SET FEATURES) filtered out
ata1.01: ACPI cmd ef/03:40:00:00:00:b0 (SET FEATURES) filtered out
ata1.00: ACPI cmd ef/03:01:00:00:00:a0 (SET FEATURES) filtered out
ata1.00: ACPI cmd ef/03:45:00:00:00:a0 (SET FEATURES) filtered out
ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
ata1.00: ACPI cmd b1/c1:00:00:00:00:a0 (DEVICE CONFIGURATION OVERLAY) filtered out
ata1.00: ACPI cmd c6/00:10:00:00:00:a0 (SET MULTIPLE MODE) succeeded
ata1.00: configured for UDMA/100
ata1.01: configured for MWDMA2
ata1.00: configured for UDMA/100
ata1.01: configured for MWDMA2
ata1: EH complete
drivers/input/serio/i8042.c: f3 -> i8042 (kbd-data) [219696]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [219697]
drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [219697]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [219700]
drivers/input/serio/i8042.c: f3 -> i8042 (kbd-data) [219746]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [219746]
drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [219746]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [219749]
usb 3-1: reset full speed USB device using uhci_hcd and address 2
btusb 3-1:1.0: no reset_resume for driver btusb?
btusb 3-1:1.1: no reset_resume for driver btusb?
usb 5-2: reset full speed USB device using uhci_hcd and address 2
Restarting tasks ...
drivers/input/serio/i8042.c: f2 -> i8042 (kbd-data) [221143]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [221143]
drivers/input/serio/i8042.c: ab <- i8042 (interrupt, 0, 1) [221146]
drivers/input/serio/i8042.c: 83 <- i8042 (interrupt, 0, 1) [221150]
drivers/input/serio/i8042.c: f4 -> i8042 (kbd-data) [221161]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [221161]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221170]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [221170]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221172]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [221175]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221175]
drivers/input/serio/i8042.c: f6 -> i8042 (parameter) [221175]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221178]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221178]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221178]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221181]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221181]
drivers/input/serio/i8042.c: 0a -> i8042 (parameter) [221181]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221184]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221184]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221184]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221186]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221186]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221186]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221189]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221189]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221189]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221192]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221193]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [221193]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221196]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221196]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221196]
done.
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221199]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221199]
drivers/input/serio/i8042.c: 3c -> i8042 (parameter) [221199]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221202]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221202]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221202]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221204]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221204]
drivers/input/serio/i8042.c: 28 -> i8042 (parameter) [221204]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221207]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221207]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221207]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221210]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221210]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [221210]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221213]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221213]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221213]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221216]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221216]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [221216]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221218]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221218]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221218]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221222]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221222]
drivers/input/serio/i8042.c: 3c -> i8042 (parameter) [221222]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221226]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221226]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221226]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221228]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221228]
drivers/input/serio/i8042.c: 28 -> i8042 (parameter) [221228]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221231]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221231]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221231]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221234]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221234]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [221234]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221237]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221237]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221237]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221240]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221240]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [221240]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221243]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221243]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [221243]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221246]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [221247]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221247]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221247]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221250]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221250]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221250]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221253]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221253]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221253]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221256]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221256]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221256]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221259]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221259]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221259]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221262]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221262]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221262]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221265]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221265]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221265]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221267]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221267]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221267]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221270]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221270]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [221270]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221273]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [221276]
drivers/input/serio/i8042.c: 46 <- i8042 (interrupt, 2, 12) [221277]
drivers/input/serio/i8042.c: 12 <- i8042 (interrupt, 2, 12) [221279]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221279]
drivers/input/serio/i8042.c: f6 -> i8042 (parameter) [221279]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221282]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221284]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221284]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221286]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221286]
drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [221286]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221289]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221289]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [221289]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221292]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221292]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [221292]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221295]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221298]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [221298]
Bluetooth: L2CAP ver 2.14
Bluetooth: L2CAP socket layer initialized
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221301]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221301]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [221301]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221304]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [221305]
drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, 2, 12) [221307]
drivers/input/serio/i8042.c: 64 <- i8042 (interrupt, 2, 12) [221309]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221309]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221309]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221312]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221312]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221312]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221316]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221316]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [221316]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221319]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221319]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [221319]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221322]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221322]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [221322]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221326]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221326]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [221326]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221329]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [221330]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [221333]
drivers/input/serio/i8042.c: 64 <- i8042 (interrupt, 2, 12) [221334]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221334]
drivers/input/serio/i8042.c: e1 -> i8042 (parameter) [221334]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 2, 12) [221337]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221337]
drivers/input/serio/i8042.c: f6 -> i8042 (parameter) [221337]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221340]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221340]
drivers/input/serio/i8042.c: ff -> i8042 (parameter) [221340]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221343]
drivers/input/serio/i8042.c: aa <- i8042 (interrupt, 2, 12) [221351]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [221353]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221353]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221353]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221356]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221356]
drivers/input/serio/i8042.c: c8 -> i8042 (parameter) [221356]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221359]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221359]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221359]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221362]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221362]
drivers/input/serio/i8042.c: 64 -> i8042 (parameter) [221362]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221365]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221365]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221365]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221368]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221368]
drivers/input/serio/i8042.c: 50 -> i8042 (parameter) [221368]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221371]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221371]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [221371]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221373]
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [221376]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221376]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221376]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221379]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221379]
drivers/input/serio/i8042.c: c8 -> i8042 (parameter) [221379]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221382]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221382]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221382]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221385]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221385]
drivers/input/serio/i8042.c: c8 -> i8042 (parameter) [221385]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221388]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221388]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221388]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221391]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221391]
drivers/input/serio/i8042.c: 50 -> i8042 (parameter) [221391]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221393]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221393]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [221393]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221396]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [221397]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221397]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221397]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221400]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221400]
drivers/input/serio/i8042.c: c8 -> i8042 (parameter) [221400]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221403]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221403]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221403]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221406]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221406]
drivers/input/serio/i8042.c: 64 -> i8042 (parameter) [221406]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221409]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221409]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221409]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221412]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221412]
drivers/input/serio/i8042.c: 50 -> i8042 (parameter) [221412]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221414]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221414]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [221414]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221417]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [221418]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221419]
drivers/input/serio/i8042.c: ff -> i8042 (parameter) [221419]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221421]
drivers/input/serio/i8042.c: aa <- i8042 (interrupt, 2, 12) [221433]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [221435]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221435]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [221435]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221438]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221438]
drivers/input/serio/i8042.c: 64 -> i8042 (parameter) [221438]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221441]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221441]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221441]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221444]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221444]
drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [221444]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221446]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221446]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [221446]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221449]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [221449]
drivers/input/serio/i8042.c: f4 -> i8042 (parameter) [221449]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [221452]
drivers/input/serio/i8042.c: 91 -> i8042 (command) [221452]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [221452]
drivers/input/serio/i8042.c: MUX error, status is 75, data is fe [221453]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 3, 12, timeout) [221453]
drivers/input/serio/i8042.c: 91 -> i8042 (command) [221453]
drivers/input/serio/i8042.c: ed -> i8042 (parameter) [221453]
drivers/input/serio/i8042.c: MUX error, status is 75, data is fe [221454]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 3, 12, timeout) [221454]
drivers/input/serio/i8042.c: 91 -> i8042 (command) [221454]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [221454]
drivers/input/serio/i8042.c: MUX error, status is 75, data is fe [221455]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 3, 12, timeout) [221455]
drivers/input/serio/i8042.c: 92 -> i8042 (command) [221455]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [221455]
drivers/input/serio/i8042.c: MUX error, status is b5, data is fe [221456]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 4, 12, timeout) [221456]
drivers/input/serio/i8042.c: 92 -> i8042 (command) [221456]
drivers/input/serio/i8042.c: ed -> i8042 (parameter) [221456]
drivers/input/serio/i8042.c: MUX error, status is b5, data is fe [221457]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 4, 12, timeout) [221457]
drivers/input/serio/i8042.c: 92 -> i8042 (command) [221457]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [221457]
drivers/input/serio/i8042.c: MUX error, status is b5, data is fe [221458]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 4, 12, timeout) [221458]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221458]
drivers/input/serio/i8042.c: ff -> i8042 (parameter) [221458]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221461]
Bridge firewalling registered
Bluetooth: SCO (Voice Link) ver 0.6
Bluetooth: SCO socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
drivers/input/serio/i8042.c: aa <- i8042 (interrupt, 5, 12) [221827]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 5, 12) [221830]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221830]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221830]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221833]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221833]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221833]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221835]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221836]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221836]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221839]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221839]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221839]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221842]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221842]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221842]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221845]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221845]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221845]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221847]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221848]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221848]
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221851]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221851]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221851]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221854]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221854]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [221854]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221857]
drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, 5, 12) [221859]
drivers/input/serio/i8042.c: 47 <- i8042 (interrupt, 5, 12) [221862]
drivers/input/serio/i8042.c: 16 <- i8042 (interrupt, 5, 12) [221865]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221865]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [221865]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221868]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221868]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221868]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221871]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221871]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221871]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221874]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221874]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221874]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221879]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221879]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221879]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221882]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221882]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221882]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221885]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221885]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221885]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221888]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221888]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221888]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221891]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221891]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221891]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221894]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221894]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [221894]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221897]
drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, 5, 12) [221898]
drivers/input/serio/i8042.c: 47 <- i8042 (interrupt, 5, 12) [221901]
drivers/input/serio/i8042.c: 16 <- i8042 (interrupt, 5, 12) [221904]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221904]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [221904]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221907]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221907]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221907]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221910]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221910]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221910]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221913]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221913]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221913]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221916]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221916]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221916]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221919]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221919]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221919]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221922]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221922]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221922]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221925]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221925]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221925]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221930]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221930]
drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [221930]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221933]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221933]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [221933]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221936]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 5, 12) [221938]
drivers/input/serio/i8042.c: a0 <- i8042 (interrupt, 5, 12) [221940]
drivers/input/serio/i8042.c: b1 <- i8042 (interrupt, 5, 12) [221943]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221943]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [221943]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221946]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221946]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221946]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221949]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221949]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221949]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221952]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221952]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221952]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221955]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221955]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221955]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221958]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221958]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221958]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221961]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221961]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221961]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221964]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221964]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221964]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221967]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221967]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [221967]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221970]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221970]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [221970]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221973]
drivers/input/serio/i8042.c: a0 <- i8042 (interrupt, 5, 12) [221975]
drivers/input/serio/i8042.c: 47 <- i8042 (interrupt, 5, 12) [221980]
drivers/input/serio/i8042.c: 13 <- i8042 (interrupt, 5, 12) [221981]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221981]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [221981]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221984]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221984]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221984]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221987]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221987]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221987]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221990]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221990]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221990]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221993]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221993]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [221993]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221996]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [221997]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [221997]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [221999]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222000]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [222000]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222002]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222003]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222003]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222005]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222005]
drivers/input/serio/i8042.c: 01 -> i8042 (parameter) [222005]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222008]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222008]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [222008]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222012]
drivers/input/serio/i8042.c: 20 <- i8042 (interrupt, 5, 12) [222012]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 5, 12) [222015]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 5, 12) [222018]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222018]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [222018]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222021]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222021]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222021]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222024]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222024]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [222024]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222027]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222028]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222028]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222031]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222031]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [222031]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222034]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222034]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222034]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222037]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222037]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [222037]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222040]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222040]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222040]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222043]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222043]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [222043]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222046]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222046]
drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [222046]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222049]
drivers/input/serio/i8042.c: 4a <- i8042 (interrupt, 5, 12) [222050]
drivers/input/serio/i8042.c: 80 <- i8042 (interrupt, 5, 12) [222053]
drivers/input/serio/i8042.c: a0 <- i8042 (interrupt, 5, 12) [222056]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222056]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [222056]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222059]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222059]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222059]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222062]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222062]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [222062]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222065]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222065]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222065]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222068]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222068]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [222068]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222072]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222072]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222072]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222074]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222075]
drivers/input/serio/i8042.c: 01 -> i8042 (parameter) [222075]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222077]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222078]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222078]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222082]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222082]
drivers/input/serio/i8042.c: 01 -> i8042 (parameter) [222082]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222085]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222085]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [222085]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222088]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222088]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [222088]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222091]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222091]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [222091]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222094]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222094]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222094]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222097]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222097]
drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [222097]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222100]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222101]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222101]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222104]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222104]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [222104]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222107]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222107]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222107]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222110]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222110]
drivers/input/serio/i8042.c: 01 -> i8042 (parameter) [222110]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222113]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222113]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222113]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222116]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222116]
drivers/input/serio/i8042.c: 01 -> i8042 (parameter) [222116]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222119]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222119]
drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [222119]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222122]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222122]
drivers/input/serio/i8042.c: 14 -> i8042 (parameter) [222122]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222125]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222125]
drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [222125]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222128]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222128]
drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [222128]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222133]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222133]
drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [222133]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222136]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [222136]
drivers/input/serio/i8042.c: f4 -> i8042 (parameter) [222136]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 5, 12) [222139]
drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [222139]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [222139]
drivers/input/serio/i8042.c: 02 -> i8042 (kbd-data) [222140]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 0, 1) [222142]
lo: Disabled Privacy Extensions
e1000e 0000:00:19.0: irq 27 for MSI/MSI-X
e1000e 0000:00:19.0: irq 27 for MSI/MSI-X
ADDRCONF(NETDEV_UP): eth1: link is not ready
b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)
b43-phy0 debug: Chip initialized
b43-phy0 debug: 64-bit DMA initialized
b43-phy0 debug: QoS enabled
b43-phy0 debug: Wireless interface started
b43-phy0 debug: Adding Interface type 2
b43-phy0 ERROR: PHY transmission error
ADDRCONF(NETDEV_UP): wlan0: link is not ready
drivers/input/serio/i8042.c: 2b <- i8042 (interrupt, 0, 1) [225569]
drivers/input/serio/i8042.c: 23 <- i8042 (interrupt, 0, 1) [225643]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [225683]
drivers/input/serio/i8042.c: 2b <- i8042 (interrupt, 0, 1) [225685]
drivers/input/serio/i8042.c: 1b <- i8042 (interrupt, 0, 1) [225734]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [225806]
drivers/input/serio/i8042.c: 1b <- i8042 (interrupt, 0, 1) [225810]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [225813]
drivers/input/serio/i8042.c: 23 <- i8042 (interrupt, 0, 1) [225816]
drivers/input/serio/i8042.c: 2b <- i8042 (interrupt, 0, 1) [225819]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [225877]
drivers/input/serio/i8042.c: 2b <- i8042 (interrupt, 0, 1) [225880]
drivers/input/serio/i8042.c: 1b <- i8042 (interrupt, 0, 1) [225909]
drivers/input/serio/i8042.c: 23 <- i8042 (interrupt, 0, 1) [225911]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [226001]
drivers/input/serio/i8042.c: 1b <- i8042 (interrupt, 0, 1) [226004]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [226007]
drivers/input/serio/i8042.c: 23 <- i8042 (interrupt, 0, 1) [226010]
drivers/input/serio/i8042.c: 2b <- i8042 (interrupt, 0, 1) [226013]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [226073]
drivers/input/serio/i8042.c: 2b <- i8042 (interrupt, 0, 1) [226075]
drivers/input/serio/i8042.c: 1b <- i8042 (interrupt, 0, 1) [226114]
drivers/input/serio/i8042.c: 23 <- i8042 (interrupt, 0, 1) [226116]
e1000e: eth1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: None
0000:00:19.0: eth1: 10/100 speed: disabling TSO
ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [226206]
drivers/input/serio/i8042.c: 1b <- i8042 (interrupt, 0, 1) [226209]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [226212]
drivers/input/serio/i8042.c: 23 <- i8042 (interrupt, 0, 1) [226215]
drivers/input/serio/i8042.c: 2b <- i8042 (interrupt, 0, 1) [226218]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [226257]
drivers/input/serio/i8042.c: 2b <- i8042 (interrupt, 0, 1) [226260]
drivers/input/serio/i8042.c: 1b <- i8042 (interrupt, 0, 1) [226318]
drivers/input/serio/i8042.c: 23 <- i8042 (interrupt, 0, 1) [226321]
drivers/input/serio/i8042.c: 2b <- i8042 (interrupt, 0, 1) [226359]
CE: hpet increasing min_delta_ns to 15000 nsec
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [226411]
drivers/input/serio/i8042.c: 1b <- i8042 (interrupt, 0, 1) [226413]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [226431]
drivers/input/serio/i8042.c: 23 <- i8042 (interrupt, 0, 1) [226433]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [226471]
drivers/input/serio/i8042.c: 2b <- i8042 (interrupt, 0, 1) [226474]
drivers/input/serio/i8042.c: 1b <- i8042 (interrupt, 0, 1) [226524]
drivers/input/serio/i8042.c: 23 <- i8042 (interrupt, 0, 1) [226526]
drivers/input/serio/i8042.c: 2b <- i8042 (interrupt, 0, 1) [226585]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [226708]
drivers/input/serio/i8042.c: 23 <- i8042 (interrupt, 0, 1) [226711]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [226728]
drivers/input/serio/i8042.c: 2b <- i8042 (interrupt, 0, 1) [226731]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [226789]
drivers/input/serio/i8042.c: 1b <- i8042 (interrupt, 0, 1) [226792]
martian source 255.255.255.255 from 131.180.44.230, on dev eth1
ll header: ff:ff:ff:ff:ff:ff:00:24:e8:31:7c:15:08:00
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [227618]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [227620]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [227622]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227641]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [227643]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [227645]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [227701]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [227703]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [227705]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227712]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [227714]
drivers/input/serio/i8042.c: 02 <- i8042 (interrupt, 2, 12) [227716]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227724]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [227726]
drivers/input/serio/i8042.c: 02 <- i8042 (interrupt, 2, 12) [227728]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227735]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 2, 12) [227738]
drivers/input/serio/i8042.c: 02 <- i8042 (interrupt, 2, 12) [227739]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227748]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [227749]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [227751]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227759]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 2, 12) [227761]
drivers/input/serio/i8042.c: 02 <- i8042 (interrupt, 2, 12) [227763]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227771]
drivers/input/serio/i8042.c: fc <- i8042 (interrupt, 2, 12) [227773]
drivers/input/serio/i8042.c: 02 <- i8042 (interrupt, 2, 12) [227775]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227783]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [227785]
drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, 2, 12) [227788]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227794]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [227796]
drivers/input/serio/i8042.c: 05 <- i8042 (interrupt, 2, 12) [227798]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227807]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [227809]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [227811]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227819]
drivers/input/serio/i8042.c: fc <- i8042 (interrupt, 2, 12) [227821]
drivers/input/serio/i8042.c: 0b <- i8042 (interrupt, 2, 12) [227823]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227831]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [227833]
drivers/input/serio/i8042.c: 0b <- i8042 (interrupt, 2, 12) [227835]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227842]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 2, 12) [227844]
drivers/input/serio/i8042.c: 0b <- i8042 (interrupt, 2, 12) [227846]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227854]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [227856]
drivers/input/serio/i8042.c: 0a <- i8042 (interrupt, 2, 12) [227858]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [227866]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [227868]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [227870]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227878]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [227880]
drivers/input/serio/i8042.c: 09 <- i8042 (interrupt, 2, 12) [227882]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227889]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [227891]
drivers/input/serio/i8042.c: 09 <- i8042 (interrupt, 2, 12) [227893]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227901]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [227903]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [227905]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [227913]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [227915]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [227917]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227925]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [227927]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [227929]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [227960]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [227962]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [227964]
drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, 2, 12) [227984]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [227986]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [227989]
drivers/input/serio/i8042.c: 38 <- i8042 (interrupt, 2, 12) [228007]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [228009]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [228011]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228019]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228021]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 2, 12) [228023]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228031]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228033]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [228035]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228042]
drivers/input/serio/i8042.c: 02 <- i8042 (interrupt, 2, 12) [228044]
drivers/input/serio/i8042.c: fc <- i8042 (interrupt, 2, 12) [228046]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228054]
drivers/input/serio/i8042.c: 04 <- i8042 (interrupt, 2, 12) [228056]
drivers/input/serio/i8042.c: fc <- i8042 (interrupt, 2, 12) [228059]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228067]
drivers/input/serio/i8042.c: 07 <- i8042 (interrupt, 2, 12) [228069]
drivers/input/serio/i8042.c: fc <- i8042 (interrupt, 2, 12) [228071]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228079]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228081]
drivers/input/serio/i8042.c: fc <- i8042 (interrupt, 2, 12) [228083]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228090]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228092]
drivers/input/serio/i8042.c: fc <- i8042 (interrupt, 2, 12) [228094]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228102]
drivers/input/serio/i8042.c: 0b <- i8042 (interrupt, 2, 12) [228104]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [228106]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228114]
drivers/input/serio/i8042.c: 0b <- i8042 (interrupt, 2, 12) [228116]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [228118]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228126]
drivers/input/serio/i8042.c: 0e <- i8042 (interrupt, 2, 12) [228128]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [228130]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228137]
drivers/input/serio/i8042.c: 0f <- i8042 (interrupt, 2, 12) [228139]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [228141]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228149]
drivers/input/serio/i8042.c: 13 <- i8042 (interrupt, 2, 12) [228151]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [228153]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228161]
drivers/input/serio/i8042.c: 14 <- i8042 (interrupt, 2, 12) [228163]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 2, 12) [228165]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228173]
drivers/input/serio/i8042.c: 13 <- i8042 (interrupt, 2, 12) [228175]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [228177]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228184]
drivers/input/serio/i8042.c: 14 <- i8042 (interrupt, 2, 12) [228186]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [228188]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228196]
drivers/input/serio/i8042.c: 12 <- i8042 (interrupt, 2, 12) [228198]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [228200]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228208]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [228210]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228212]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228220]
drivers/input/serio/i8042.c: 0f <- i8042 (interrupt, 2, 12) [228222]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228224]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228232]
drivers/input/serio/i8042.c: 0e <- i8042 (interrupt, 2, 12) [228234]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [228236]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228243]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [228245]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228248]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228255]
drivers/input/serio/i8042.c: 0b <- i8042 (interrupt, 2, 12) [228257]
drivers/input/serio/i8042.c: 02 <- i8042 (interrupt, 2, 12) [228259]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228267]
drivers/input/serio/i8042.c: 0b <- i8042 (interrupt, 2, 12) [228269]
drivers/input/serio/i8042.c: 02 <- i8042 (interrupt, 2, 12) [228272]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228279]
drivers/input/serio/i8042.c: 0a <- i8042 (interrupt, 2, 12) [228282]
drivers/input/serio/i8042.c: 04 <- i8042 (interrupt, 2, 12) [228283]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228290]
drivers/input/serio/i8042.c: 0a <- i8042 (interrupt, 2, 12) [228292]
drivers/input/serio/i8042.c: 04 <- i8042 (interrupt, 2, 12) [228294]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228302]
drivers/input/serio/i8042.c: 0a <- i8042 (interrupt, 2, 12) [228304]
drivers/input/serio/i8042.c: 05 <- i8042 (interrupt, 2, 12) [228306]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228314]
drivers/input/serio/i8042.c: 09 <- i8042 (interrupt, 2, 12) [228317]
drivers/input/serio/i8042.c: 06 <- i8042 (interrupt, 2, 12) [228319]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228327]
drivers/input/serio/i8042.c: 0a <- i8042 (interrupt, 2, 12) [228329]
drivers/input/serio/i8042.c: 06 <- i8042 (interrupt, 2, 12) [228331]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228338]
drivers/input/serio/i8042.c: 09 <- i8042 (interrupt, 2, 12) [228340]
drivers/input/serio/i8042.c: 06 <- i8042 (interrupt, 2, 12) [228342]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228350]
drivers/input/serio/i8042.c: 0a <- i8042 (interrupt, 2, 12) [228352]
drivers/input/serio/i8042.c: 07 <- i8042 (interrupt, 2, 12) [228354]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228362]
drivers/input/serio/i8042.c: 09 <- i8042 (interrupt, 2, 12) [228364]
drivers/input/serio/i8042.c: 06 <- i8042 (interrupt, 2, 12) [228366]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228374]
drivers/input/serio/i8042.c: 09 <- i8042 (interrupt, 2, 12) [228376]
drivers/input/serio/i8042.c: 07 <- i8042 (interrupt, 2, 12) [228378]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228385]
drivers/input/serio/i8042.c: 09 <- i8042 (interrupt, 2, 12) [228387]
drivers/input/serio/i8042.c: 05 <- i8042 (interrupt, 2, 12) [228389]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228397]
drivers/input/serio/i8042.c: 0a <- i8042 (interrupt, 2, 12) [228399]
drivers/input/serio/i8042.c: 06 <- i8042 (interrupt, 2, 12) [228401]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228409]
drivers/input/serio/i8042.c: 0b <- i8042 (interrupt, 2, 12) [228411]
drivers/input/serio/i8042.c: 04 <- i8042 (interrupt, 2, 12) [228413]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228421]
drivers/input/serio/i8042.c: 0b <- i8042 (interrupt, 2, 12) [228423]
drivers/input/serio/i8042.c: 05 <- i8042 (interrupt, 2, 12) [228425]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228432]
drivers/input/serio/i8042.c: 0a <- i8042 (interrupt, 2, 12) [228434]
drivers/input/serio/i8042.c: 04 <- i8042 (interrupt, 2, 12) [228436]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228444]
drivers/input/serio/i8042.c: 0a <- i8042 (interrupt, 2, 12) [228446]
drivers/input/serio/i8042.c: 04 <- i8042 (interrupt, 2, 12) [228448]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228456]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [228458]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228460]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228468]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [228470]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228472]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228491]
drivers/input/serio/i8042.c: 04 <- i8042 (interrupt, 2, 12) [228493]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [228495]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228503]
drivers/input/serio/i8042.c: 04 <- i8042 (interrupt, 2, 12) [228505]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [228507]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228515]
drivers/input/serio/i8042.c: 04 <- i8042 (interrupt, 2, 12) [228517]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228519]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228527]
drivers/input/serio/i8042.c: 05 <- i8042 (interrupt, 2, 12) [228529]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228531]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228538]
drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, 2, 12) [228540]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, 2, 12) [228543]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228550]
drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, 2, 12) [228553]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [228554]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228563]
drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, 2, 12) [228564]
drivers/input/serio/i8042.c: fd <- i8042 (interrupt, 2, 12) [228566]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228574]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [228576]
drivers/input/serio/i8042.c: fc <- i8042 (interrupt, 2, 12) [228578]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228585]
drivers/input/serio/i8042.c: 02 <- i8042 (interrupt, 2, 12) [228587]
drivers/input/serio/i8042.c: fc <- i8042 (interrupt, 2, 12) [228589]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228598]
drivers/input/serio/i8042.c: 02 <- i8042 (interrupt, 2, 12) [228600]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [228602]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228610]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [228612]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, 2, 12) [228614]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228622]
drivers/input/serio/i8042.c: 02 <- i8042 (interrupt, 2, 12) [228624]
drivers/input/serio/i8042.c: f7 <- i8042 (interrupt, 2, 12) [228626]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228633]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228635]
drivers/input/serio/i8042.c: f8 <- i8042 (interrupt, 2, 12) [228637]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228645]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228647]
drivers/input/serio/i8042.c: f7 <- i8042 (interrupt, 2, 12) [228649]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228657]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228659]
drivers/input/serio/i8042.c: f7 <- i8042 (interrupt, 2, 12) [228661]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228669]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228671]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [228673]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228692]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228694]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [228696]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228728]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [228730]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228732]
drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, 2, 12) [228739]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228741]
drivers/input/serio/i8042.c: ff <- i8042 (interrupt, 2, 12) [228743]
drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, 2, 12) [228751]
drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, 2, 12) [228753]
drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, 2, 12) [228755]
martian source 255.255.255.255 from 131.180.45.38, on dev eth1
ll header: ff:ff:ff:ff:ff:ff:00:0f:fe:a3:75:f0:08:00
pan0: no IPv6 routers present
eth1: no IPv6 routers present
drivers/input/serio/i8042.c: 1c <- i8042 (interrupt, 0, 1) [320670]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [320751]
drivers/input/serio/i8042.c: 1c <- i8042 (interrupt, 0, 1) [320753]
drivers/input/serio/i8042.c: 1c <- i8042 (interrupt, 0, 1) [338408]
drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [338528]
drivers/input/serio/i8042.c: 1c <- i8042 (interrupt, 0, 1) [338531]


Attachments:
i8042-suspend-reset-still-lost-keyboard.dmesg (122.22 kB)

2009-10-15 18:15:44

by Dmitry Torokhov

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

On Thu, Oct 15, 2009 at 07:24:16PM +0200, ?ric Piel wrote:
> Op 14-10-09 04:05, Dmitry Torokhov schreef:
> > On Tue, Oct 13, 2009 at 11:52:19AM +0200, ?ric Piel wrote:
> >>> Could you please try and let me know if unloading at suspend and
> >>> reloading after resume atkbd and/or psmouse drivers and leaving i8042
> >>> alone "fixes" the issue?
> >>>
> >> Unloading the modules before suspend and reloading them after works
> >> around the issue, indeed.
> >>
> >
> > Do both of them need to be reloaded? Or only one (my guess psmouse) is
> > enough. Hmm, this is HP laptop so it most likely has Synaptics touchpad.
> > I wonder what happens if you force it to bare PS/2 protocol (or maybe
> > Intellimouse)... Try adding "option psmouse proto=imps" and
> > "option psmouse proto=bare" and suspend/resume.
> Sorry for taking some time to answer back. The keyboard fails to come
> back only on the first suspend-resume (the next suspends, the keyboard
> comes back fine). So I need to reboot the computer for every single test.
>
> So far, what I can tell is that once the keyboard is not working
> anymore, just unloading and reloading atkbd fixes the problem. Attached
> is a dmesg log from just before supsending to after resume. The keyboard
> doesn't work anymore but the touchpad do. The lines at the very end of
> the log correspond to keypresses: although the keyboard doesn't work,
> there are still 3 interrupt per keypress generated:
>
> drivers/input/serio/i8042.c: 1c <- i8042 (interrupt, 0, 1) [320670]
> drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [320751]
> drivers/input/serio/i8042.c: 1c <- i8042 (interrupt, 0, 1) [320753]
>
> That's all the date for now. I'll test your questions about psmouse
> later on, and report back.
>

It lokks like the keyboard controller switched from translated to
non-translated mode: '1c' is make code and 'f0 1c' is break (aka
release) code.

Could you tell me how the keyboard indentified (in dmesg) after fresh
boot and after you do the bind/unbind trick on the older kernel?

--
Dmitry

2009-10-15 18:33:34

by Dmitry Torokhov

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

On Thu, Oct 15, 2009 at 11:13:37AM -0700, Dmitry Torokhov wrote:
> On Thu, Oct 15, 2009 at 07:24:16PM +0200, ?ric Piel wrote:
> > Op 14-10-09 04:05, Dmitry Torokhov schreef:
> > > On Tue, Oct 13, 2009 at 11:52:19AM +0200, ?ric Piel wrote:
> > >>> Could you please try and let me know if unloading at suspend and
> > >>> reloading after resume atkbd and/or psmouse drivers and leaving i8042
> > >>> alone "fixes" the issue?
> > >>>
> > >> Unloading the modules before suspend and reloading them after works
> > >> around the issue, indeed.
> > >>
> > >
> > > Do both of them need to be reloaded? Or only one (my guess psmouse) is
> > > enough. Hmm, this is HP laptop so it most likely has Synaptics touchpad.
> > > I wonder what happens if you force it to bare PS/2 protocol (or maybe
> > > Intellimouse)... Try adding "option psmouse proto=imps" and
> > > "option psmouse proto=bare" and suspend/resume.
> > Sorry for taking some time to answer back. The keyboard fails to come
> > back only on the first suspend-resume (the next suspends, the keyboard
> > comes back fine). So I need to reboot the computer for every single test.
> >
> > So far, what I can tell is that once the keyboard is not working
> > anymore, just unloading and reloading atkbd fixes the problem. Attached
> > is a dmesg log from just before supsending to after resume. The keyboard
> > doesn't work anymore but the touchpad do. The lines at the very end of
> > the log correspond to keypresses: although the keyboard doesn't work,
> > there are still 3 interrupt per keypress generated:
> >
> > drivers/input/serio/i8042.c: 1c <- i8042 (interrupt, 0, 1) [320670]
> > drivers/input/serio/i8042.c: f0 <- i8042 (interrupt, 0, 1) [320751]
> > drivers/input/serio/i8042.c: 1c <- i8042 (interrupt, 0, 1) [320753]
> >
> > That's all the date for now. I'll test your questions about psmouse
> > later on, and report back.
> >
>
> It lokks like the keyboard controller switched from translated to
> non-translated mode: '1c' is make code and 'f0 1c' is break (aka
> release) code.
>
> Could you tell me how the keyboard indentified (in dmesg) after fresh
> boot and after you do the bind/unbind trick on the older kernel?
>

BTW, do you have i8042.reset parameyer on your command line? What
happens if you remove it?

--
Dmitry

2009-10-15 19:33:20

by Éric Piel

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

Op 15-10-09 20:13, Dmitry Torokhov schreef:
> It lokks like the keyboard controller switched from translated to
> non-translated mode: '1c' is make code and 'f0 1c' is break (aka
> release) code.
>
> Could you tell me how the keyboard indentified (in dmesg) after fresh
> boot and after you do the bind/unbind trick on the older kernel?
>
What do you mean by "how the keyboard indentified"? Are you asking for
the debug trace in dmesg? I have the beginning of a boot with the debug
trace to see after a fresh boot. I don't have dmesg history with
i8042.debug of the bind/unbind trick, so I'll reboot in an old kernel
and do it again (but I cannot do this before tuesday, when i have
physical access to the machine).

> sftp://piel@localhost:2226/home/piel/busy/i8042-begin-boot-keyboard.dmesg

> BTW, do you have i8042.reset parameyer on your command line? What
> happens if you remove it?
The two logs where done with i8042.reset. However, without this
parameter, the behaviour is identical: the keyboard needs the
unbind/bind trick after the first resume.

Eric


Attachments:
i8042-begin-boot-keyboard.dmesg (79.08 kB)

2009-10-15 19:52:31

by Dmitry Torokhov

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

On Thu, Oct 15, 2009 at 09:32:23PM +0200, ?ric Piel wrote:
> Op 15-10-09 20:13, Dmitry Torokhov schreef:
>> It lokks like the keyboard controller switched from translated to
>> non-translated mode: '1c' is make code and 'f0 1c' is break (aka
>> release) code.
>>
>> Could you tell me how the keyboard indentified (in dmesg) after fresh
>> boot and after you do the bind/unbind trick on the older kernel?
>>
> What do you mean by "how the keyboard indentified"? Are you asking for
> the debug trace in dmesg? I have the beginning of a boot with the debug
> trace to see after a fresh boot. I don't have dmesg history with
> i8042.debug of the bind/unbind trick, so I'll reboot in an old kernel
> and do it again (but I cannot do this before tuesday, when i have
> physical access to the machine).

No, not the debug.. Just the lines looking like this:

input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3


You should have at leat 2 - one uping initial boot and one after
rebinding i8042 upon resume.

--
Dmitry

2009-10-15 21:34:27

by Éric Piel

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

Op 15-10-09 21:51, Dmitry Torokhov schreef:
>
> No, not the debug.. Just the lines looking like this:
>
> input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3
Ah! This I have! Here is how it looks like at boot:
Sep 21 14:02:58 dutifh klogd: PNP: PS/2 Controller [PNP0303:C29C,PNP0f13:C29D] at 0x60,0x64 irq 1,12
Sep 21 14:02:58 dutifh klogd: i8042.c: Detected active multiplexing controller, rev 1.1.
Sep 21 14:02:58 dutifh klogd: serio: i8042 KBD port at 0x60,0x64 irq 1
Sep 21 14:02:58 dutifh klogd: serio: i8042 AUX0 port at 0x60,0x64 irq 12
Sep 21 14:02:58 dutifh klogd: serio: i8042 AUX1 port at 0x60,0x64 irq 12
Sep 21 14:02:58 dutifh klogd: serio: i8042 AUX2 port at 0x60,0x64 irq 12
Sep 21 14:02:58 dutifh klogd: serio: i8042 AUX3 port at 0x60,0x64 irq 12
Sep 21 14:02:58 dutifh klogd: mice: PS/2 mouse device common for all mice
Sep 21 14:02:58 dutifh klogd: rtc_cmos 00:06: RTC can wake from S4
Sep 21 14:02:58 dutifh klogd: rtc_cmos 00:06: rtc core: registered rtc_cmos as rtc0
Sep 21 14:02:58 dutifh klogd: rtc0: alarms up to one month, y3k, 114 bytes nvram, hpet irqs
Sep 21 14:02:58 dutifh klogd: cpuidle: using governor ladder
Sep 21 14:02:58 dutifh klogd: cpuidle: using governor menu
Sep 21 14:02:58 dutifh klogd: TCP cubic registered
Sep 21 14:02:58 dutifh klogd: input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
:
Sep 21 14:02:58 dutifh klogd: Synaptics Touchpad, model: 1, fw: 6.3, id: 0x1a0b1, caps: 0xa04713/0x200000
Sep 21 14:02:58 dutifh klogd: input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio4/input/input2


And then after an unbind/bind trick:
Sep 22 14:15:24 dutifh klogd: i8042.c: Detected active multiplexing controller, rev 1.1.
Sep 22 14:15:24 dutifh klogd: serio: i8042 KBD port at 0x60,0x64 irq 1
Sep 22 14:15:24 dutifh klogd: serio: i8042 AUX0 port at 0x60,0x64 irq 12
Sep 22 14:15:24 dutifh klogd: serio: i8042 AUX1 port at 0x60,0x64 irq 12
Sep 22 14:15:24 dutifh klogd: serio: i8042 AUX2 port at 0x60,0x64 irq 12
Sep 22 14:15:24 dutifh klogd: serio: i8042 AUX3 port at 0x60,0x64 irq 12
Sep 22 14:15:24 dutifh klogd: input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio5/input/input12
Sep 22 14:15:25 dutifh pulseaudio[3737]: sap.c: sendmsg() failed: Ongeldig argument
Sep 22 14:15:25 dutifh klogd: input: PS/2 Generic Mouse as /devices/platform/i8042/serio6/input/input13
Sep 22 14:15:26 dutifh klogd: Synaptics Touchpad, model: 1, fw: 6.3, id: 0x1a0b1, caps: 0xa04713/0x200000
Sep 22 14:15:26 dutifh klogd: input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio9/input/input14

(pasting only the parts which seem relevant)

See you,
Eric

2009-10-15 22:00:35

by Dmitry Torokhov

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

On Thu, Oct 15, 2009 at 11:33:47PM +0200, ?ric Piel wrote:
> Op 15-10-09 21:51, Dmitry Torokhov schreef:
>>
>> No, not the debug.. Just the lines looking like this:
>>
>> input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3
> Ah! This I have! Here is how it looks like at boot:
> Sep 21 14:02:58 dutifh klogd: PNP: PS/2 Controller [PNP0303:C29C,PNP0f13:C29D] at 0x60,0x64 irq 1,12
> Sep 21 14:02:58 dutifh klogd: i8042.c: Detected active multiplexing controller, rev 1.1.
> Sep 21 14:02:58 dutifh klogd: serio: i8042 KBD port at 0x60,0x64 irq 1
> Sep 21 14:02:58 dutifh klogd: serio: i8042 AUX0 port at 0x60,0x64 irq 12
> Sep 21 14:02:58 dutifh klogd: serio: i8042 AUX1 port at 0x60,0x64 irq 12
> Sep 21 14:02:58 dutifh klogd: serio: i8042 AUX2 port at 0x60,0x64 irq 12
> Sep 21 14:02:58 dutifh klogd: serio: i8042 AUX3 port at 0x60,0x64 irq 12
> Sep 21 14:02:58 dutifh klogd: mice: PS/2 mouse device common for all mice
> Sep 21 14:02:58 dutifh klogd: rtc_cmos 00:06: RTC can wake from S4
> Sep 21 14:02:58 dutifh klogd: rtc_cmos 00:06: rtc core: registered rtc_cmos as rtc0
> Sep 21 14:02:58 dutifh klogd: rtc0: alarms up to one month, y3k, 114 bytes nvram, hpet irqs
> Sep 21 14:02:58 dutifh klogd: cpuidle: using governor ladder
> Sep 21 14:02:58 dutifh klogd: cpuidle: using governor menu
> Sep 21 14:02:58 dutifh klogd: TCP cubic registered
> Sep 21 14:02:58 dutifh klogd: input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
> :
> Sep 21 14:02:58 dutifh klogd: Synaptics Touchpad, model: 1, fw: 6.3, id: 0x1a0b1, caps: 0xa04713/0x200000
> Sep 21 14:02:58 dutifh klogd: input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio4/input/input2
>
>
> And then after an unbind/bind trick:
> Sep 22 14:15:24 dutifh klogd: i8042.c: Detected active multiplexing controller, rev 1.1.
> Sep 22 14:15:24 dutifh klogd: serio: i8042 KBD port at 0x60,0x64 irq 1
> Sep 22 14:15:24 dutifh klogd: serio: i8042 AUX0 port at 0x60,0x64 irq 12
> Sep 22 14:15:24 dutifh klogd: serio: i8042 AUX1 port at 0x60,0x64 irq 12
> Sep 22 14:15:24 dutifh klogd: serio: i8042 AUX2 port at 0x60,0x64 irq 12
> Sep 22 14:15:24 dutifh klogd: serio: i8042 AUX3 port at 0x60,0x64 irq 12
> Sep 22 14:15:24 dutifh klogd: input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio5/input/input12
> Sep 22 14:15:25 dutifh pulseaudio[3737]: sap.c: sendmsg() failed: Ongeldig argument
> Sep 22 14:15:25 dutifh klogd: input: PS/2 Generic Mouse as /devices/platform/i8042/serio6/input/input13
> Sep 22 14:15:26 dutifh klogd: Synaptics Touchpad, model: 1, fw: 6.3, id: 0x1a0b1, caps: 0xa04713/0x200000
> Sep 22 14:15:26 dutifh klogd: input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio9/input/input14
>
> (pasting only the parts which seem relevant)
>

Hm, this is wierd... In the dmesg you sent me in the previous mail I see:

input: AT Raw Set 2 keyboard as /devices/platform/i8042/serio0/input/input4

So it looks like sometimes it is in raw and sometimes it is in
translated mode. The i8042.reset might be affecting it. Also, are you
using BIOS password at resume by any chance?

I guess we'll have to wait till you get back to the box and then I want
fresh debug dmesgs (after poweroff) of older (with bind/unbind) and latest
kernels, going through boot, 1st (make sure to type qwerty) and 2nd
resume (qwerty again). Make sure you don't have any other i8042 or atkbd
switches besides i8042.debug.

Thanks!

--
Dmitry

2009-10-15 22:45:31

by Éric Piel

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

Op 15-10-09 23:59, Dmitry Torokhov schreef:

> Hm, this is wierd... In the dmesg you sent me in the previous mail I see:
>
> input: AT Raw Set 2 keyboard as /devices/platform/i8042/serio0/input/input4
>
> So it looks like sometimes it is in raw and sometimes it is in
> translated mode. The i8042.reset might be affecting it.
Indeed, since there is i8042.reset, it's "Raw" instead of "Translated".

> Also, are you
> using BIOS password at resume by any chance?
No, I just press the power button to resume and nothing else.

>
> I guess we'll have to wait till you get back to the box and then I want
> fresh debug dmesgs (after poweroff) of older (with bind/unbind) and latest
> kernels, going through boot, 1st (make sure to type qwerty) and 2nd
> resume (qwerty again). Make sure you don't have any other i8042 or atkbd
> switches besides i8042.debug.
Ok, I'll.

Eric

2009-10-18 07:51:28

by Dmitry Torokhov

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

On Mon, Oct 12, 2009 at 08:17:41PM -0700, Dmitry Torokhov wrote:
> On Mon, Oct 12, 2009 at 11:54:17AM -0700, Greg KH wrote:
> > On Mon, Oct 12, 2009 at 11:33:13AM -0700, Dmitry Torokhov wrote:
> > > On Mon, Oct 12, 2009 at 10:35:51AM -0700, Greg KH wrote:
> > > > On Mon, Oct 12, 2009 at 08:48:46AM -0700, Dmitry Torokhov wrote:
> > > > > > So at least, unbind should fail as well as bind.
> > > > > >
> > > > >
> > > > > That would be Greg's domain s it is driver core decision whether to
> > > > > allow unbinding platform devices registered with
> > > > > platform_driver_probe().
> > > >
> > > > No, I do not see why that should not be allowed.
> > > >
> > >
> > > Because once you did unbind the device you are stuck (unless the driver
> > > is compiled as a module, but then you could just unload the module
> > > instead of unbinding). Disallowing unbind would allow discarding not
> > > only __devinit but __devexit sections when driver is built in which
> > > would make ebedded people happy[^Hier].
> >
> > Yeah, good point.
> >
> > Does anyone do bind/unbind with platform devices today?
> >
> > If not, a patch changing this would be welcome.
> >
>
> How about this one?
>

*ping* We need to resolve this, otherwise everyone who likes to rebind
i8042 in couse of STR/STD will be in trouble.

> --
> Dmitry
>
>
> Driver core: allow certain drivers prohibit bind/unbind via sysfs
>
> From: Dmitry Torokhov <[email protected]>
>
> Platform drivers registered via platform_driver_probe() can be bound
> to devices only once, upon registration, because discard their probe()
> routines to save memory. Unbinding the driver through sysfs 'unbind'
> leaves the device stranded and confuses users so let's not create
> bind and unbind attributes for such drivers.
>
> Signed-off-by: Dmitry Torokhov <[email protected]>
> ---
>
> drivers/base/bus.c | 17 +++++++++++------
> drivers/base/platform.c | 6 +++++-
> include/linux/device.h | 4 +++-
> 3 files changed, 19 insertions(+), 8 deletions(-)
>
>
> diff --git a/drivers/base/bus.c b/drivers/base/bus.c
> index 973bf2a..63c143e 100644
> --- a/drivers/base/bus.c
> +++ b/drivers/base/bus.c
> @@ -689,15 +689,19 @@ int bus_add_driver(struct device_driver *drv)
> printk(KERN_ERR "%s: driver_add_attrs(%s) failed\n",
> __func__, drv->name);
> }
> - error = add_bind_files(drv);
> - if (error) {
> - /* Ditto */
> - printk(KERN_ERR "%s: add_bind_files(%s) failed\n",
> - __func__, drv->name);
> +
> + if (!drv->suppress_bind_attrs) {
> + error = add_bind_files(drv);
> + if (error) {
> + /* Ditto */
> + printk(KERN_ERR "%s: add_bind_files(%s) failed\n",
> + __func__, drv->name);
> + }
> }
>
> kobject_uevent(&priv->kobj, KOBJ_ADD);
> return 0;
> +
> out_unregister:
> kfree(drv->p);
> drv->p = NULL;
> @@ -720,7 +724,8 @@ void bus_remove_driver(struct device_driver *drv)
> if (!drv->bus)
> return;
>
> - remove_bind_files(drv);
> + if (!drv->suppress_bind_attrs)
> + remove_bind_files(drv);
> driver_remove_attrs(drv->bus, drv);
> driver_remove_file(drv, &driver_attr_uevent);
> klist_remove(&drv->p->knode_bus);
> diff --git a/drivers/base/platform.c b/drivers/base/platform.c
> index ed156a1..4fa954b 100644
> --- a/drivers/base/platform.c
> +++ b/drivers/base/platform.c
> @@ -521,11 +521,15 @@ int __init_or_module platform_driver_probe(struct platform_driver *drv,
> {
> int retval, code;
>
> + /* make sure driver won't have bind/unbind attributes */
> + drv->driver.suppress_bind_attrs = true;
> +
> /* temporary section violation during probe() */
> drv->probe = probe;
> retval = code = platform_driver_register(drv);
>
> - /* Fixup that section violation, being paranoid about code scanning
> + /*
> + * Fixup that section violation, being paranoid about code scanning
> * the list of drivers in order to probe new devices. Check to see
> * if the probe was successful, and make sure any forced probes of
> * new devices fail.
> diff --git a/include/linux/device.h b/include/linux/device.h
> index aca31bf..2ea3e49 100644
> --- a/include/linux/device.h
> +++ b/include/linux/device.h
> @@ -124,7 +124,9 @@ struct device_driver {
> struct bus_type *bus;
>
> struct module *owner;
> - const char *mod_name; /* used for built-in modules */
> + const char *mod_name; /* used for built-in modules */
> +
> + bool suppress_bind_attrs; /* disables bind/unbind via sysfs */
>
> int (*probe) (struct device *dev);
> int (*remove) (struct device *dev);

--
Dmitry

2009-10-18 08:02:38

by Greg KH

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

On Sun, Oct 18, 2009 at 12:51:27AM -0700, Dmitry Torokhov wrote:
> On Mon, Oct 12, 2009 at 08:17:41PM -0700, Dmitry Torokhov wrote:
> > On Mon, Oct 12, 2009 at 11:54:17AM -0700, Greg KH wrote:
> > > On Mon, Oct 12, 2009 at 11:33:13AM -0700, Dmitry Torokhov wrote:
> > > > On Mon, Oct 12, 2009 at 10:35:51AM -0700, Greg KH wrote:
> > > > > On Mon, Oct 12, 2009 at 08:48:46AM -0700, Dmitry Torokhov wrote:
> > > > > > > So at least, unbind should fail as well as bind.
> > > > > > >
> > > > > >
> > > > > > That would be Greg's domain s it is driver core decision whether to
> > > > > > allow unbinding platform devices registered with
> > > > > > platform_driver_probe().
> > > > >
> > > > > No, I do not see why that should not be allowed.
> > > > >
> > > >
> > > > Because once you did unbind the device you are stuck (unless the driver
> > > > is compiled as a module, but then you could just unload the module
> > > > instead of unbinding). Disallowing unbind would allow discarding not
> > > > only __devinit but __devexit sections when driver is built in which
> > > > would make ebedded people happy[^Hier].
> > >
> > > Yeah, good point.
> > >
> > > Does anyone do bind/unbind with platform devices today?
> > >
> > > If not, a patch changing this would be welcome.
> > >
> >
> > How about this one?
> >
>
> *ping* We need to resolve this, otherwise everyone who likes to rebind
> i8042 in couse of STR/STD will be in trouble.

Sorry, am in Tokyo right now.

I like this patch, and will queue it up, but it's too late for .32, it
will have to wait for .33.

I'll hope to get my patch queue flushed out after I return in about 10
days.

thanks,

greg k-h

2009-10-21 19:34:21

by Éric Piel

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

Op 15-10-09 23:59, Dmitry Torokhov schreef:

>
> Hm, this is wierd... In the dmesg you sent me in the previous mail I see:
>
> input: AT Raw Set 2 keyboard as /devices/platform/i8042/serio0/input/input4
>
> So it looks like sometimes it is in raw and sometimes it is in
> translated mode. The i8042.reset might be affecting it. Also, are you
> using BIOS password at resume by any chance?
>
> I guess we'll have to wait till you get back to the box and then I want
> fresh debug dmesgs (after poweroff) of older (with bind/unbind) and latest
> kernels, going through boot, 1st (make sure to type qwerty) and 2nd
> resume (qwerty again). Make sure you don't have any other i8042 or atkbd
> switches besides i8042.debug.
Hello,
Back with some results :-)

Attached is a (bzip-compressed) log [1] of a 2.6.30 kernel started with
i8042.debug (nothing else important).

The log contains 4 suspend-resumes (look for "Back to C"):
* from the console, using "echo mem > /sys/power/state", keyboard fine
* from the console, using "pm-suspend" (aka "all the nasty stuff done by
the distro"), keyboard fine
* from X, using "echo mem > /sys/power/state", keyboard gone
* a unbind-bind cycle, keyboard back
* from X, using "echo mem > /sys/power/state", keyboard fine


What I realised during this experiment, is that the keyboard goes away
after the first suspend-resume _in X_. Each time, I typed on the
keyboard "qwerty" (and almost nothing else).

Do you see what goes wrong in resuming the keyboard?

I can provide a similar log for a 2.6.32-rc3 kernel, if you are
interested? BTW, once the keyboard is gone, a rmmod-modprobe cycle of
psmouse doesn't recover it, it has to be a rmmod-modprobe cycle of atkbd.

See you,
Eric

[1] Also available uncompressed at
http://pieleric.free.fr/unorder/i8042-2.6.30-unbind-bind.dmesg


Attachments:
i8042-2.6.30-unbind-bind.dmesg.bz2 (22.93 kB)

2009-10-21 20:20:20

by Dmitry Torokhov

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

On Wednesday 21 October 2009 12:34:15 pm ?ric Piel wrote:
> Op 15-10-09 23:59, Dmitry Torokhov schreef:
> > Hm, this is wierd... In the dmesg you sent me in the previous mail I see:
> >
> > input: AT Raw Set 2 keyboard as
> > /devices/platform/i8042/serio0/input/input4
> >
> > So it looks like sometimes it is in raw and sometimes it is in
> > translated mode. The i8042.reset might be affecting it. Also, are you
> > using BIOS password at resume by any chance?
> >
> > I guess we'll have to wait till you get back to the box and then I want
> > fresh debug dmesgs (after poweroff) of older (with bind/unbind) and
> > latest kernels, going through boot, 1st (make sure to type qwerty) and
> > 2nd resume (qwerty again). Make sure you don't have any other i8042 or
> > atkbd switches besides i8042.debug.
>
> Hello,
> Back with some results :-)
>
> Attached is a (bzip-compressed) log [1] of a 2.6.30 kernel started with
> i8042.debug (nothing else important).
>
> The log contains 4 suspend-resumes (look for "Back to C"):
> * from the console, using "echo mem > /sys/power/state", keyboard fine
> * from the console, using "pm-suspend" (aka "all the nasty stuff done by
> the distro"), keyboard fine
> * from X, using "echo mem > /sys/power/state", keyboard gone
> * a unbind-bind cycle, keyboard back
> * from X, using "echo mem > /sys/power/state", keyboard fine
>
>
> What I realised during this experiment, is that the keyboard goes away
> after the first suspend-resume _in X_. Each time, I typed on the
> keyboard "qwerty" (and almost nothing else).
>
> Do you see what goes wrong in resuming the keyboard?
>

Nothing, as far as I can tell... I see you typing "qwerty"... Does the
keyboard work in console (let's say if you boot in run level 3 to take X out
of the picture)? Could you please try compiling evbug module - it will show if
keyboard events are propagated through input core. Also, whta driver are you
using in X? Legacy keyboard or evdev?

--
Dmitry

2009-10-22 16:10:54

by Éric Piel

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

Op 21-10-09 22:20, Dmitry Torokhov schreef:
>
> Nothing, as far as I can tell... I see you typing "qwerty"... Does the
> keyboard work in console (let's say if you boot in run level 3 to take X out
> of the picture)? Could you please try compiling evbug module - it will show if
> keyboard events are propagated through input core. Also, whta driver are you
> using in X? Legacy keyboard or evdev?
In the console (in init 3), I haven't managed to reproduce it. In xorg,
the keyboard input uses evdev. Now I've just tried "evtest
/dev/input/event4", when the keyboard doesn't work... and I see the key
presses!

So I guess it rules out a bug in the kernel, and I have to talk with the
people from Xorg, right?

Thanks,
Eric

2009-10-22 16:22:07

by Dmitry Torokhov

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

On Thu, Oct 22, 2009 at 06:10:52PM +0200, ?ric Piel wrote:
> Op 21-10-09 22:20, Dmitry Torokhov schreef:
> >
> > Nothing, as far as I can tell... I see you typing "qwerty"... Does the
> > keyboard work in console (let's say if you boot in run level 3 to take X out
> > of the picture)? Could you please try compiling evbug module - it will show if
> > keyboard events are propagated through input core. Also, whta driver are you
> > using in X? Legacy keyboard or evdev?
> In the console (in init 3), I haven't managed to reproduce it. In xorg,
> the keyboard input uses evdev. Now I've just tried "evtest
> /dev/input/event4", when the keyboard doesn't work... and I see the key
> presses!
>
> So I guess it rules out a bug in the kernel, and I have to talk with the
> people from Xorg, right?
>

Yep... but it is still wierd since evdev driver works fine for me...
Could it be you are using either too old or too new version of X?

--
Dmitry

2009-10-22 17:48:37

by Éric Piel

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

Op 22-10-09 18:22, Dmitry Torokhov schreef:
> On Thu, Oct 22, 2009 at 06:10:52PM +0200, ?ric Piel wrote:
>> Op 21-10-09 22:20, Dmitry Torokhov schreef:
>>>
>>> Nothing, as far as I can tell... I see you typing "qwerty"... Does the
>>> keyboard work in console (let's say if you boot in run level 3 to take X out
>>> of the picture)? Could you please try compiling evbug module - it will show if
>>> keyboard events are propagated through input core. Also, whta driver are you
>>> using in X? Legacy keyboard or evdev?
>> In the console (in init 3), I haven't managed to reproduce it. In xorg,
>> the keyboard input uses evdev. Now I've just tried "evtest
>> /dev/input/event4", when the keyboard doesn't work... and I see the key
>> presses!
>>
>> So I guess it rules out a bug in the kernel, and I have to talk with the
>> people from Xorg, right?
>>
>
> Yep... but it is still wierd since evdev driver works fine for me...
> Could it be you are using either too old or too new version of X?
>
I don't think so: xorg 1.6.5, with xinput-evdev 2.2.5. They are both
latest or second latest stable versions.

In the log I see this:
(--) SynPS/2 Synaptics TouchPad: touchpad found
(II) PS/2 Generic Mouse: Device reopened after 1 attempts.
(EE) AT Translated Set 2 keyboard: device key_bitmask has changed
(EE) AT Translated Set 2 keyboard: Device has changed - disabling.

Quite a few people seem to have the same problem.

Eric

2009-10-22 18:19:20

by Dmitry Torokhov

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

On Thu, Oct 22, 2009 at 07:48:47PM +0200, ?ric Piel wrote:
> Op 22-10-09 18:22, Dmitry Torokhov schreef:
>> On Thu, Oct 22, 2009 at 06:10:52PM +0200, ?ric Piel wrote:
>>> Op 21-10-09 22:20, Dmitry Torokhov schreef:
>>>>
>>>> Nothing, as far as I can tell... I see you typing "qwerty"... Does the
>>>> keyboard work in console (let's say if you boot in run level 3 to take X out
>>>> of the picture)? Could you please try compiling evbug module - it will show if
>>>> keyboard events are propagated through input core. Also, whta driver are you
>>>> using in X? Legacy keyboard or evdev?
>>> In the console (in init 3), I haven't managed to reproduce it. In xorg,
>>> the keyboard input uses evdev. Now I've just tried "evtest
>>> /dev/input/event4", when the keyboard doesn't work... and I see the key
>>> presses!
>>>
>>> So I guess it rules out a bug in the kernel, and I have to talk with the
>>> people from Xorg, right?
>>>
>>
>> Yep... but it is still wierd since evdev driver works fine for me...
>> Could it be you are using either too old or too new version of X?
>>
> I don't think so: xorg 1.6.5, with xinput-evdev 2.2.5. They are both
> latest or second latest stable versions.
>
> In the log I see this:
> (--) SynPS/2 Synaptics TouchPad: touchpad found
> (II) PS/2 Generic Mouse: Device reopened after 1 attempts.
> (EE) AT Translated Set 2 keyboard: device key_bitmask has changed
> (EE) AT Translated Set 2 keyboard: Device has changed - disabling.
>
> Quite a few people seem to have the same problem.

The bitmask should not be changing on it's own... Any chance you could
save contents or /proc/bus/input/devices before suspend and after resume
(when X decides to ditch the keyboard) and diff them?

--
Dmitry

2009-10-22 18:32:54

by Dmitry Torokhov

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

On Thu, Oct 22, 2009 at 11:19:15AM -0700, Dmitry Torokhov wrote:
> On Thu, Oct 22, 2009 at 07:48:47PM +0200, ?ric Piel wrote:
> > Op 22-10-09 18:22, Dmitry Torokhov schreef:
> >> On Thu, Oct 22, 2009 at 06:10:52PM +0200, ?ric Piel wrote:
> >>> Op 21-10-09 22:20, Dmitry Torokhov schreef:
> >>>>
> >>>> Nothing, as far as I can tell... I see you typing "qwerty"... Does the
> >>>> keyboard work in console (let's say if you boot in run level 3 to take X out
> >>>> of the picture)? Could you please try compiling evbug module - it will show if
> >>>> keyboard events are propagated through input core. Also, whta driver are you
> >>>> using in X? Legacy keyboard or evdev?
> >>> In the console (in init 3), I haven't managed to reproduce it. In xorg,
> >>> the keyboard input uses evdev. Now I've just tried "evtest
> >>> /dev/input/event4", when the keyboard doesn't work... and I see the key
> >>> presses!
> >>>
> >>> So I guess it rules out a bug in the kernel, and I have to talk with the
> >>> people from Xorg, right?
> >>>
> >>
> >> Yep... but it is still wierd since evdev driver works fine for me...
> >> Could it be you are using either too old or too new version of X?
> >>
> > I don't think so: xorg 1.6.5, with xinput-evdev 2.2.5. They are both
> > latest or second latest stable versions.
> >

Same here...

> > In the log I see this:
> > (--) SynPS/2 Synaptics TouchPad: touchpad found
> > (II) PS/2 Generic Mouse: Device reopened after 1 attempts.
> > (EE) AT Translated Set 2 keyboard: device key_bitmask has changed
> > (EE) AT Translated Set 2 keyboard: Device has changed - disabling.
> >
> > Quite a few people seem to have the same problem.
>
> The bitmask should not be changing on it's own... Any chance you could
> save contents or /proc/bus/input/devices before suspend and after resume
> (when X decides to ditch the keyboard) and diff them?
>

Also, are you using 64 bit userspace?

--
Dmitry

2009-10-23 02:01:53

by Dmitry Torokhov

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

On Sun, Oct 18, 2009 at 01:02:38AM -0700, Greg KH wrote:
> On Sun, Oct 18, 2009 at 12:51:27AM -0700, Dmitry Torokhov wrote:
> > On Mon, Oct 12, 2009 at 08:17:41PM -0700, Dmitry Torokhov wrote:
> > > On Mon, Oct 12, 2009 at 11:54:17AM -0700, Greg KH wrote:
> > > > On Mon, Oct 12, 2009 at 11:33:13AM -0700, Dmitry Torokhov wrote:
> > > > > On Mon, Oct 12, 2009 at 10:35:51AM -0700, Greg KH wrote:
> > > > > > On Mon, Oct 12, 2009 at 08:48:46AM -0700, Dmitry Torokhov wrote:
> > > > > > > > So at least, unbind should fail as well as bind.
> > > > > > > >
> > > > > > >
> > > > > > > That would be Greg's domain s it is driver core decision whether to
> > > > > > > allow unbinding platform devices registered with
> > > > > > > platform_driver_probe().
> > > > > >
> > > > > > No, I do not see why that should not be allowed.
> > > > > >
> > > > >
> > > > > Because once you did unbind the device you are stuck (unless the driver
> > > > > is compiled as a module, but then you could just unload the module
> > > > > instead of unbinding). Disallowing unbind would allow discarding not
> > > > > only __devinit but __devexit sections when driver is built in which
> > > > > would make ebedded people happy[^Hier].
> > > >
> > > > Yeah, good point.
> > > >
> > > > Does anyone do bind/unbind with platform devices today?
> > > >
> > > > If not, a patch changing this would be welcome.
> > > >
> > >
> > > How about this one?
> > >
> >
> > *ping* We need to resolve this, otherwise everyone who likes to rebind
> > i8042 in couse of STR/STD will be in trouble.
>
> Sorry, am in Tokyo right now.
>
> I like this patch, and will queue it up, but it's too late for .32, it
> will have to wait for .33.
>

Greg,

I hope you will reconsider. The patch is extremely small but without it
I am afraid many people whose distributions blindly rebind i8042 on
suspend/resume will lose their keyboards and mice now that i8042 uses
platform_driver_probe()...

Thanks.

--
Dmitry

2009-10-23 08:08:47

by Éric Piel

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

I: Bus=0019 Vendor=0000 Product=0003 Version=0000
N: Name="Sleep Button"
P: Phys=PNP0C0E/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0
U: Uniq=
H: Handlers=kbd event0 evbug
B: EV=3
B: KEY=4000 0 0

I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input1
U: Uniq=
H: Handlers=event1 evbug
B: EV=21
B: SW=1

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
U: Uniq=
H: Handlers=kbd event2 evbug
B: EV=3
B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input3
U: Uniq=
H: Handlers=kbd event3 evbug
B: EV=3
B: KEY=3f000b00000000 0 0 0

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input4
U: Uniq=
H: Handlers=kbd event4 evbug rfkill
B: EV=120013
B: KEY=20 0 0 30400f02100000 17803878f800d401 feffffdfffefffff ffffffffffffffff
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=413c Product=2003 Version=0110
N: Name="Dell Dell USB Keyboard"
P: Phys=usb-0000:00:1d.7-6.2/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.7/usb2/2-6/2-6.2/2-6.2:1.0/input/input5
U: Uniq=
H: Handlers=kbd event5 evbug
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=046d Product=c018 Version=0111
N: Name="Logitech USB Optical Mouse"
P: Phys=usb-0000:00:1d.7-6.1.2/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.7/usb2/2-6/2-6.1/2-6.1.2/2-6.1.2:1.0/input/input6
U: Uniq=
H: Handlers=mouse0 event6 evbug
B: EV=17
B: KEY=70000 0 0 0 0
B: REL=103
B: MSC=10

I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="ST LIS3LV02DL Accelerometer"
P: Phys=lis3lv02d/input0
S: Sysfs=/devices/platform/lis3lv02d/input/input7
U: Uniq=
H: Handlers=event7 evbug js0
B: EV=9
B: ABS=7

I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="HP WMI hotkeys"
P: Phys=wmi/input0
S: Sysfs=/devices/virtual/input/input8
U: Uniq=
H: Handlers=kbd event8 evbug
B: EV=23
B: KEY=4000000000 0 700000000 100400 0 0
B: SW=22

I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/devices/platform/pcspkr/input/input9
U: Uniq=
H: Handlers=kbd event9 evbug
B: EV=40001
B: SND=6

I: Bus=0001 Vendor=11d4 Product=1981 Version=0001
N: Name="HDA Digital PCBeep"
P: Phys=card0/codec#0/beep0
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/input/input10
U: Uniq=
H: Handlers=kbd event10 evbug
B: EV=40001
B: SND=6

I: Bus=0011 Vendor=0002 Product=0001 Version=0000
N: Name="PS/2 Generic Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input11
U: Uniq=
H: Handlers=mouse1 event11 evbug
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0002 Product=0007 Version=01b1
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio4/input0
S: Sysfs=/devices/platform/i8042/serio4/input/input12
U: Uniq=
H: Handlers=mouse2 event12 evbug
B: EV=b
B: KEY=6420 70000 0 0 0 0
B: ABS=11000003


Attachments:
input-devices-before.txt (3.23 kB)

2009-10-23 08:58:28

by Dmitry Torokhov

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

On Fri, Oct 23, 2009 at 10:08:41AM +0200, ?ric Piel wrote:
> Op 22-10-09 20:19, Dmitry Torokhov schreef:
> > On Thu, Oct 22, 2009 at 07:48:47PM +0200, ?ric Piel wrote:
> >> I don't think so: xorg 1.6.5, with xinput-evdev 2.2.5. They are both
> >> latest or second latest stable versions.
> >>
> >> In the log I see this:
> >> (--) SynPS/2 Synaptics TouchPad: touchpad found
> >> (II) PS/2 Generic Mouse: Device reopened after 1 attempts.
> >> (EE) AT Translated Set 2 keyboard: device key_bitmask has changed
> >> (EE) AT Translated Set 2 keyboard: Device has changed - disabling.
> >>
> >> Quite a few people seem to have the same problem.
> >
> > The bitmask should not be changing on it's own... Any chance you could
> > save contents or /proc/bus/input/devices before suspend and after resume
> > (when X decides to ditch the keyboard) and diff them?
> >
> Hello,
> I've just tried this: before and after is exactly the same (attached is
> a copy of it).
>

What about before X starts? Can you please boot into console, kill
hal and udev to make sure they don't mess up with the keymap and, after
doing

echo -n rescan > /sys/bus/serio/devices/serio0/drvctl

which should completely reinitialize keyboard and compare
/proc/bus/input/devices again? If it is still the same then there must
be a silly bug in X's evdev... But regardless, X policy of comparing
keybit is stupid - they don't kill the device if I change keymap while
in X, why do they do that on resume? Or when I change the limits on
absolute axis... Oh well.

--
Dmitry

2009-10-23 09:21:15

by Éric Piel

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

Op 23-10-09 10:58, Dmitry Torokhov schreef:
> On Fri, Oct 23, 2009 at 10:08:41AM +0200, ?ric Piel wrote:
>> Op 22-10-09 20:19, Dmitry Torokhov schreef:
>>> On Thu, Oct 22, 2009 at 07:48:47PM +0200, ?ric Piel wrote:
>>>> I don't think so: xorg 1.6.5, with xinput-evdev 2.2.5. They are both
>>>> latest or second latest stable versions.
>>>>
>>>> In the log I see this:
>>>> (--) SynPS/2 Synaptics TouchPad: touchpad found
>>>> (II) PS/2 Generic Mouse: Device reopened after 1 attempts.
>>>> (EE) AT Translated Set 2 keyboard: device key_bitmask has changed
>>>> (EE) AT Translated Set 2 keyboard: Device has changed - disabling.
>>>>
>>>> Quite a few people seem to have the same problem.
>>> The bitmask should not be changing on it's own... Any chance you could
>>> save contents or /proc/bus/input/devices before suspend and after resume
>>> (when X decides to ditch the keyboard) and diff them?
>>>
>> Hello,
>> I've just tried this: before and after is exactly the same (attached is
>> a copy of it).
>>
>
> What about before X starts? Can you please boot into console, kill
> hal and udev to make sure they don't mess up with the keymap and, after
> doing
>
> echo -n rescan > /sys/bus/serio/devices/serio0/drvctl
>
> which should completely reinitialize keyboard and compare
> /proc/bus/input/devices again? If it is still the same then there must
> be a silly bug in X's evdev...
Ok, I'll reboot later and try. In the mean time, I've just tried this on
my non-working keyboard, and it resurrected it :-) Even more
interestingly, the key bitmap has changed.

Before:
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input4
U: Uniq=
H: Handlers=kbd event4 evbug rfkill
B: EV=120013
B: KEY=20 0 0 30400f02100000 17803878f800d401 feffffdfffefffff
ffffffffffffffff
B: MSC=10
B: LED=7

After:
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input15
U: Uniq=
H: Handlers=kbd event4 evbug
B: EV=120013
B: KEY=20000 20000000020 0 0 500f02100003 3803078f900d401
feffffdfffefffff ffffffffffffffff
B: MSC=10
B: LED=7

Was this expected?

> But regardless, X policy of comparing
> keybit is stupid - they don't kill the device if I change keymap while
> in X, why do they do that on resume? Or when I change the limits on
> absolute axis... Oh well.
With respect to this bug, I have opened a bug report for xorg:
https://bugs.freedesktop.org/show_bug.cgi?id=24687
Indeed, evdev tend to disable for plenty of different reason the
keyboard (cf src/evdev.c: EvdevCacheCompare()). The source code is not
very clear why they do this, but somehow I was under the impression that
it was to avoid using twice the same device (with slightly different
properties).

See you,
Eric

2009-10-23 16:31:23

by Dmitry Torokhov

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

On Fri, Oct 23, 2009 at 11:21:10AM +0200, ?ric Piel wrote:
> Op 23-10-09 10:58, Dmitry Torokhov schreef:
> > On Fri, Oct 23, 2009 at 10:08:41AM +0200, ?ric Piel wrote:
> >> Op 22-10-09 20:19, Dmitry Torokhov schreef:
> >>> On Thu, Oct 22, 2009 at 07:48:47PM +0200, ?ric Piel wrote:
> >>>> I don't think so: xorg 1.6.5, with xinput-evdev 2.2.5. They are both
> >>>> latest or second latest stable versions.
> >>>>
> >>>> In the log I see this:
> >>>> (--) SynPS/2 Synaptics TouchPad: touchpad found
> >>>> (II) PS/2 Generic Mouse: Device reopened after 1 attempts.
> >>>> (EE) AT Translated Set 2 keyboard: device key_bitmask has changed
> >>>> (EE) AT Translated Set 2 keyboard: Device has changed - disabling.
> >>>>
> >>>> Quite a few people seem to have the same problem.
> >>> The bitmask should not be changing on it's own... Any chance you could
> >>> save contents or /proc/bus/input/devices before suspend and after resume
> >>> (when X decides to ditch the keyboard) and diff them?
> >>>
> >> Hello,
> >> I've just tried this: before and after is exactly the same (attached is
> >> a copy of it).
> >>
> >
> > What about before X starts? Can you please boot into console, kill
> > hal and udev to make sure they don't mess up with the keymap and, after
> > doing
> >
> > echo -n rescan > /sys/bus/serio/devices/serio0/drvctl
> >
> > which should completely reinitialize keyboard and compare
> > /proc/bus/input/devices again? If it is still the same then there must
> > be a silly bug in X's evdev...
> Ok, I'll reboot later and try. In the mean time, I've just tried this on
> my non-working keyboard, and it resurrected it :-)

Yes, it would - "rescan" causes input device teardown and creationa new
one. This causes a hotplug event that is processed by X and it adds a
new device in place of the old one that it decided to disable (due to
keys change).

> Even more
> interestingly, the key bitmap has changed.
>

Right, your init scripts/UDEV/HAL whatever adjust keymap to match your
laptop.

> Before:
> I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
> N: Name="AT Translated Set 2 keyboard"
> P: Phys=isa0060/serio0/input0
> S: Sysfs=/devices/platform/i8042/serio0/input/input4
> U: Uniq=
> H: Hadlers=kbd event4 evbug rfkill
> B: EV=120013
> B: KEY=20 0 0 30400f02100000 17803878f800d401 feffffdfffefffff
> ffffffffffffffff
> B: MSC=10
> B: LED=7
>
> After:
> I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
> N: Name="AT Translated Set 2 keyboard"
> P: Phys=isa0060/serio0/input0
> S: Sysfs=/devices/platform/i8042/serio0/input/input15
> U: Uniq=
> H: Handlers=kbd event4 evbug


Yep, note that the previous instance had rfkill bound, that means the
device had KEY_WLAN or KEY_BLUETOOTH in it's keymap but this one does
not. None of these key codes are in in-kernel keymaps for atkbd; they
were added afterwards.

Now, all depends on when this adjustment happens... In your case it
looks like X server starts before the keymap is adjusted, so on first
resume the keymaps are different and it disables the device.

> B: EV=120013
> B: KEY=20000 20000000020 0 0 500f02100003 3803078f900d401
> feffffdfffefffff ffffffffffffffff
> B: MSC=10
> B: LED=7
>
> Was this expected?

So yes, kind of expected for laptops.

>
> > But regardless, X policy of comparing
> > keybit is stupid - they don't kill the device if I change keymap while
> > in X, why do they do that on resume? Or when I change the limits on
> > absolute axis... Oh well.
> With respect to this bug, I have opened a bug report for xorg:
> https://bugs.freedesktop.org/show_bug.cgi?id=24687
> Indeed, evdev tend to disable for plenty of different reason the
> keyboard (cf src/evdev.c: EvdevCacheCompare()). The source code is not
> very clear why they do this, but somehow I was under the impression that
> it was to avoid using twice the same device (with slightly different
> properties).

I can see them not wanting to use the same device if it changed form
keyboard to a mouse (think USB) but differnces in keymaps should be left
alone I think. As for duplicates, they could just check sysfs path to see
if they are dealing with the same device or not. Input code does not
re-use 'inputX', X will be monotonically increasing.

--
Dmitry

2009-10-25 11:46:54

by Éric Piel

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

Op 23-10-09 18:31, Dmitry Torokhov schreef:
>
> Right, your init scripts/UDEV/HAL whatever adjust keymap to match your
> laptop.
:
> Now, all depends on when this adjustment happens... In your case it
> looks like X server starts before the keymap is adjusted, so on first
> resume the keymaps are different and it disables the device.
Ok, now I catch it. It's actually my own written script, which is
executed at init a bit after X starts. It does a couple of
"setkeycodes". So now the scenario is very clear: X starts, init script
do setkeycodes, resume/suspend, X detect a difference in keymaps and
disable the device.

BTW, I haven't really found info about this: what does setkeycodes? It
does not work on a specific device, but still it changes keymap of some
specific devices. Does it change only the current devices which have
keys? Whenever a new input device appears, all the setkeycodes should be
re-executed?

Eric

2009-10-25 19:07:29

by Dmitry Torokhov

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

On Sun, Oct 25, 2009 at 12:47:03PM +0100, ?ric Piel wrote:
> Op 23-10-09 18:31, Dmitry Torokhov schreef:
>>
>> Right, your init scripts/UDEV/HAL whatever adjust keymap to match your
>> laptop.
> :
>> Now, all depends on when this adjustment happens... In your case it
>> looks like X server starts before the keymap is adjusted, so on first
>> resume the keymaps are different and it disables the device.
> Ok, now I catch it. It's actually my own written script, which is
> executed at init a bit after X starts. It does a couple of
> "setkeycodes". So now the scenario is very clear: X starts, init script
> do setkeycodes, resume/suspend, X detect a difference in keymaps and
> disable the device.

Yep.

OK, so X's evdev is still too paranoid but now we know the whole picture
and for my part I declare kernel is free from blame ;)

>
> BTW, I haven't really found info about this: what does setkeycodes? It
> does not work on a specific device, but still it changes keymap of some
> specific devices. Does it change only the current devices which have
> keys?

setkeycodes issues KDSETKEYCODE which goes through all devices bound to
the "kbd" input handler and sets keycode for the specified scan code for
all devices that support that scancode.

> Whenever a new input device appears, all the setkeycodes should be
> re-executed?
>

It is recommended to adjust individual devices and HAL has facilities to
do that (although now that they deprecating HAL I am not sure what the
replacement is). Anyway, for HAL look into:

/usr/share/hal/fdi/information/10freedesktop/*-keymap-*.fdi

The nice thing here is that keymaps are re-applied if device gets
disconnected and rediscovered for one reason or another.

--
Dmitry

2009-10-26 21:17:53

by Greg KH

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

On Thu, Oct 22, 2009 at 07:01:50PM -0700, Dmitry Torokhov wrote:
> On Sun, Oct 18, 2009 at 01:02:38AM -0700, Greg KH wrote:
> > On Sun, Oct 18, 2009 at 12:51:27AM -0700, Dmitry Torokhov wrote:
> > > On Mon, Oct 12, 2009 at 08:17:41PM -0700, Dmitry Torokhov wrote:
> > > > On Mon, Oct 12, 2009 at 11:54:17AM -0700, Greg KH wrote:
> > > > > On Mon, Oct 12, 2009 at 11:33:13AM -0700, Dmitry Torokhov wrote:
> > > > > > On Mon, Oct 12, 2009 at 10:35:51AM -0700, Greg KH wrote:
> > > > > > > On Mon, Oct 12, 2009 at 08:48:46AM -0700, Dmitry Torokhov wrote:
> > > > > > > > > So at least, unbind should fail as well as bind.
> > > > > > > > >
> > > > > > > >
> > > > > > > > That would be Greg's domain s it is driver core decision whether to
> > > > > > > > allow unbinding platform devices registered with
> > > > > > > > platform_driver_probe().
> > > > > > >
> > > > > > > No, I do not see why that should not be allowed.
> > > > > > >
> > > > > >
> > > > > > Because once you did unbind the device you are stuck (unless the driver
> > > > > > is compiled as a module, but then you could just unload the module
> > > > > > instead of unbinding). Disallowing unbind would allow discarding not
> > > > > > only __devinit but __devexit sections when driver is built in which
> > > > > > would make ebedded people happy[^Hier].
> > > > >
> > > > > Yeah, good point.
> > > > >
> > > > > Does anyone do bind/unbind with platform devices today?
> > > > >
> > > > > If not, a patch changing this would be welcome.
> > > > >
> > > >
> > > > How about this one?
> > > >
> > >
> > > *ping* We need to resolve this, otherwise everyone who likes to rebind
> > > i8042 in couse of STR/STD will be in trouble.
> >
> > Sorry, am in Tokyo right now.
> >
> > I like this patch, and will queue it up, but it's too late for .32, it
> > will have to wait for .33.
> >
>
> Greg,
>
> I hope you will reconsider. The patch is extremely small but without it
> I am afraid many people whose distributions blindly rebind i8042 on
> suspend/resume will lose their keyboards and mice now that i8042 uses
> platform_driver_probe()...

What distros do something like that automatically? And this patch will
not solve that problem, just forbid it from happening, right?

thanks,

greg k-h

2009-10-26 21:34:53

by Dmitry Torokhov

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

On Mon, Oct 26, 2009 at 01:59:53PM -0700, Greg KH wrote:
> On Thu, Oct 22, 2009 at 07:01:50PM -0700, Dmitry Torokhov wrote:
> > On Sun, Oct 18, 2009 at 01:02:38AM -0700, Greg KH wrote:
> > > On Sun, Oct 18, 2009 at 12:51:27AM -0700, Dmitry Torokhov wrote:
> > > > On Mon, Oct 12, 2009 at 08:17:41PM -0700, Dmitry Torokhov wrote:
> > > > > On Mon, Oct 12, 2009 at 11:54:17AM -0700, Greg KH wrote:
> > > > > > On Mon, Oct 12, 2009 at 11:33:13AM -0700, Dmitry Torokhov wrote:
> > > > > > > On Mon, Oct 12, 2009 at 10:35:51AM -0700, Greg KH wrote:
> > > > > > > > On Mon, Oct 12, 2009 at 08:48:46AM -0700, Dmitry Torokhov wrote:
> > > > > > > > > > So at least, unbind should fail as well as bind.
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > That would be Greg's domain s it is driver core decision whether to
> > > > > > > > > allow unbinding platform devices registered with
> > > > > > > > > platform_driver_probe().
> > > > > > > >
> > > > > > > > No, I do not see why that should not be allowed.
> > > > > > > >
> > > > > > >
> > > > > > > Because once you did unbind the device you are stuck (unless the driver
> > > > > > > is compiled as a module, but then you could just unload the module
> > > > > > > instead of unbinding). Disallowing unbind would allow discarding not
> > > > > > > only __devinit but __devexit sections when driver is built in which
> > > > > > > would make ebedded people happy[^Hier].
> > > > > >
> > > > > > Yeah, good point.
> > > > > >
> > > > > > Does anyone do bind/unbind with platform devices today?
> > > > > >
> > > > > > If not, a patch changing this would be welcome.
> > > > > >
> > > > >
> > > > > How about this one?
> > > > >
> > > >
> > > > *ping* We need to resolve this, otherwise everyone who likes to rebind
> > > > i8042 in couse of STR/STD will be in trouble.
> > >
> > > Sorry, am in Tokyo right now.
> > >
> > > I like this patch, and will queue it up, but it's too late for .32, it
> > > will have to wait for .33.
> > >
> >
> > Greg,
> >
> > I hope you will reconsider. The patch is extremely small but without it
> > I am afraid many people whose distributions blindly rebind i8042 on
> > suspend/resume will lose their keyboards and mice now that i8042 uses
> > platform_driver_probe()...
>
> What distros do something like that automatically?

It looks SUSE recommends to do so in one of the Wikis.. There certainly
lots of recommendations to do so in case of keyboard resume troubles all
over the forums (Ubunto, Gentoo, other random ones).

> And this patch will
> not solve that problem, just forbid it from happening, right?
>

It will prevent unbind from happening so that users who have suspend and
resume working properly but who have bind/unbind in their suspend/resume
scripts regardless will not run into trouble.

This still leaves users whose suspend/resume don't work by default but I
would rather fix their boxes properly instead of relying on that
workaround.

--
Dmitry

2009-10-27 00:02:05

by Greg KH

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

On Mon, Oct 26, 2009 at 02:34:50PM -0700, Dmitry Torokhov wrote:
> On Mon, Oct 26, 2009 at 01:59:53PM -0700, Greg KH wrote:
> > On Thu, Oct 22, 2009 at 07:01:50PM -0700, Dmitry Torokhov wrote:
> > > On Sun, Oct 18, 2009 at 01:02:38AM -0700, Greg KH wrote:
> > > > On Sun, Oct 18, 2009 at 12:51:27AM -0700, Dmitry Torokhov wrote:
> > > > > On Mon, Oct 12, 2009 at 08:17:41PM -0700, Dmitry Torokhov wrote:
> > > > > > On Mon, Oct 12, 2009 at 11:54:17AM -0700, Greg KH wrote:
> > > > > > > On Mon, Oct 12, 2009 at 11:33:13AM -0700, Dmitry Torokhov wrote:
> > > > > > > > On Mon, Oct 12, 2009 at 10:35:51AM -0700, Greg KH wrote:
> > > > > > > > > On Mon, Oct 12, 2009 at 08:48:46AM -0700, Dmitry Torokhov wrote:
> > > > > > > > > > > So at least, unbind should fail as well as bind.
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > That would be Greg's domain s it is driver core decision whether to
> > > > > > > > > > allow unbinding platform devices registered with
> > > > > > > > > > platform_driver_probe().
> > > > > > > > >
> > > > > > > > > No, I do not see why that should not be allowed.
> > > > > > > > >
> > > > > > > >
> > > > > > > > Because once you did unbind the device you are stuck (unless the driver
> > > > > > > > is compiled as a module, but then you could just unload the module
> > > > > > > > instead of unbinding). Disallowing unbind would allow discarding not
> > > > > > > > only __devinit but __devexit sections when driver is built in which
> > > > > > > > would make ebedded people happy[^Hier].
> > > > > > >
> > > > > > > Yeah, good point.
> > > > > > >
> > > > > > > Does anyone do bind/unbind with platform devices today?
> > > > > > >
> > > > > > > If not, a patch changing this would be welcome.
> > > > > > >
> > > > > >
> > > > > > How about this one?
> > > > > >
> > > > >
> > > > > *ping* We need to resolve this, otherwise everyone who likes to rebind
> > > > > i8042 in couse of STR/STD will be in trouble.
> > > >
> > > > Sorry, am in Tokyo right now.
> > > >
> > > > I like this patch, and will queue it up, but it's too late for .32, it
> > > > will have to wait for .33.
> > > >
> > >
> > > Greg,
> > >
> > > I hope you will reconsider. The patch is extremely small but without it
> > > I am afraid many people whose distributions blindly rebind i8042 on
> > > suspend/resume will lose their keyboards and mice now that i8042 uses
> > > platform_driver_probe()...
> >
> > What distros do something like that automatically?
>
> It looks SUSE recommends to do so in one of the Wikis.. There certainly
> lots of recommendations to do so in case of keyboard resume troubles all
> over the forums (Ubunto, Gentoo, other random ones).
>
> > And this patch will
> > not solve that problem, just forbid it from happening, right?
> >
>
> It will prevent unbind from happening so that users who have suspend and
> resume working properly but who have bind/unbind in their suspend/resume
> scripts regardless will not run into trouble.
>
> This still leaves users whose suspend/resume don't work by default but I
> would rather fix their boxes properly instead of relying on that
> workaround.

Ok, fair enough, I'll queue it up for .32.

thanks,

greg k-h

2009-10-27 16:16:44

by Dmitry Torokhov

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

On Mon, Oct 26, 2009 at 04:59:08PM -0700, Greg KH wrote:
> On Mon, Oct 26, 2009 at 02:34:50PM -0700, Dmitry Torokhov wrote:
> >
> > It will prevent unbind from happening so that users who have suspend and
> > resume working properly but who have bind/unbind in their suspend/resume
> > scripts regardless will not run into trouble.
> >
> > This still leaves users whose suspend/resume don't work by default but I
> > would rather fix their boxes properly instead of relying on that
> > workaround.
>
> Ok, fair enough, I'll queue it up for .32.
>

Thanks Greg, much appreciated.

--
Dmitry