Re: [PATCH - 2.6.19 -0/1] Backport of psmouse suspend/shutdown cleanups

2007-02-28 Thread Thomas Renninger
On Mon, 2007-02-26 at 09:34 -0500, Dmitry Torokhov wrote:
 Hi Thomas,
 
 On 2/26/07, Thomas Renninger [EMAIL PROTECTED] wrote:
  On Thu, 2007-02-22 at 10:02 -0500, Dmitry Torokhov wrote:
  
   Hope this makes sense (I must admit it makes little sense to me ;) ).
 
  Same for me at the beginning.
  I tracked two of the HP problems (wrong temperature, wrong _PPC value)
  down to wrong EC reads - BIOS issue.
 
  Someone (this is the guy who actually solved this) reported that
  unloading psmouse helps. When I saw this report confirmed by other
  people a .shutdown workaround was easy and got also confirmed working...
 
  And now it even makes a bit sense...
  There is a little microprocessor (Embedded Controller) pre-processing
  sensor or other data which gets accessed via ACPI. This one also access
  mouse/keyboard hardware (described a bit in ACPI specs).
 
 Yes, I am aware that KBC is usually emulated by EC chip nowadays, what
 does not really makes sense to me is how crazy the firmware is.
 
 ...
  FYI:
  You might stumble again over the EC in future...
  I saw reports where mouse jittering or similar bugs where fixed in
  drivers/acpi/ec.c
  If trying ec_intr=0 boot param, not loading any ACPI modules or the big
  hammer: acpi=off helps to solve mouse or keyboard problems it's probably
  Embedded Controller related (which might need a fix in ec.c, AML or EC
  BIOS code (in this case we seem to have the latter problem :) )...).
 
 
 Yep, seen that, except for AML workarounds. Do you have any examples?
 Although there seem to be lees complaints about mice jittering
 nowadays... Or maybe they simply got tired of complaining ;)

I remember one mouse jittering issue got fixed by BIOS update, but I
don't know whether they fixed the EC firmware, modified EC reads/writes
in AML or whatever...

Reducing thermal polling or ACPI (EC) activity in general could also
help, therefore I expect workarounds in AML could be an option.

I also remember some cleanups in drivers/acpi/ec.c (some time ago) that
fixed up some machines...


Thomas

-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH - 2.6.19 -0/1] Backport of psmouse suspend/shutdown cleanups

2007-02-26 Thread Thomas Renninger
On Thu, 2007-02-22 at 10:02 -0500, Dmitry Torokhov wrote:
 On 2/22/07, Thomas Renninger [EMAIL PROTECTED] wrote:
 
  When adding the .shutdown workaround I went down and realized it must be
  this:
 psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
  or this:
 psmouse_set_state(psmouse, PSMOUSE_IGNORE);
 
  as I added the stuff in serio.c, I didn't realize that your psmouse
  patch is enough...
 
  So it's the first command that is needed on shutdown(PSMOUSE_CMD_MODE)?
  Dmitry: Could you explain me in a short sentence what this is doing, so
  that I can explain HP the problem again more detailed (without reading
  specs...).
 
 
 Actually there are 2 pieces that are needed for HP laptops:
 
 1. They really get upset if mouse (integrated synaptics touchpad) is
 disabled when they about to reboot. The original code was simply doing
 psmouse_reset() which issues reset command to clear state of the
 device so it will be closer to the boot state. Hovewer (in
 accordance to the spec) after reset mice stay disabled, so we have to
 issue:
 
   ps2_command(psmouse-ps2dev, NULL, PSMOUSE_CMD_ENABLE);
 
 to keep HP laptops happy. Why it would make any difference is a mystery to me.
 
 2. Synaptics touchpads do not get fully reset by 0xff, we need to
 explicitely enable gestures - again, HP only (there may be other boxes
 with this problem of course). So we call psmouse-cleanup(psmouse) to
 activate protocol-specific cleanup.
 
 Hope this makes sense (I must admit it makes little sense to me ;) ).

Same for me at the beginning.
I tracked two of the HP problems (wrong temperature, wrong _PPC value)
down to wrong EC reads - BIOS issue.

Someone (this is the guy who actually solved this) reported that
unloading psmouse helps. When I saw this report confirmed by other
people a .shutdown workaround was easy and got also confirmed working...

And now it even makes a bit sense...
There is a little microprocessor (Embedded Controller) pre-processing
sensor or other data which gets accessed via ACPI. This one also access
mouse/keyboard hardware (described a bit in ACPI specs).
This post makes things a bit more clear:
http://forum.thinkpads.com/viewtopic.php?t=20958
--
On a T43p (and probably several others) this is a Renesas H8S/2161BV, a
16-bit single-chip micro-controller located below the
ExpressCard/CardBus slots. It has its own OS in 128 KB flash memory and
since this OS is available in the EC updates, it is possible to analyze
and modify it. Or we will at least be able to better understand how it
can be configured since there doesn't seem to be much documentation
available about the EC. 
--

FYI:
You might stumble again over the EC in future...
I saw reports where mouse jittering or similar bugs where fixed in
drivers/acpi/ec.c
If trying ec_intr=0 boot param, not loading any ACPI modules or the big
hammer: acpi=off helps to solve mouse or keyboard problems it's probably
Embedded Controller related (which might need a fix in ec.c, AML or EC
BIOS code (in this case we seem to have the latter problem :) )...).

I expect the EC accesses keyboard/mouse registers at late shutdown and
gets confused if it's in wrong state. The EC seem to hold it's confused
state in some kind of volatile memory as long as it can drain some power
from battery (unplugging AC and battery for several minutes when machine
is shut down was reported to fix the issue...) and does not get fully
reinitialized on next boot.

   Thomas

-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH - 2.6.19 -0/1] Backport of psmouse suspend/shutdown cleanups

2007-02-26 Thread Dmitry Torokhov

Hi Thomas,

On 2/26/07, Thomas Renninger [EMAIL PROTECTED] wrote:

On Thu, 2007-02-22 at 10:02 -0500, Dmitry Torokhov wrote:

 Hope this makes sense (I must admit it makes little sense to me ;) ).

Same for me at the beginning.
I tracked two of the HP problems (wrong temperature, wrong _PPC value)
down to wrong EC reads - BIOS issue.

Someone (this is the guy who actually solved this) reported that
unloading psmouse helps. When I saw this report confirmed by other
people a .shutdown workaround was easy and got also confirmed working...

And now it even makes a bit sense...
There is a little microprocessor (Embedded Controller) pre-processing
sensor or other data which gets accessed via ACPI. This one also access
mouse/keyboard hardware (described a bit in ACPI specs).


Yes, I am aware that KBC is usually emulated by EC chip nowadays, what
does not really makes sense to me is how crazy the firmware is.

...

FYI:
You might stumble again over the EC in future...
I saw reports where mouse jittering or similar bugs where fixed in
drivers/acpi/ec.c
If trying ec_intr=0 boot param, not loading any ACPI modules or the big
hammer: acpi=off helps to solve mouse or keyboard problems it's probably
Embedded Controller related (which might need a fix in ec.c, AML or EC
BIOS code (in this case we seem to have the latter problem :) )...).



Yep, seen that, except for AML workarounds. Do you have any examples?
Although there seem to be lees complaints about mice jittering
nowadays... Or maybe they simply got tired of complaining ;)

--
Dmitry
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH - 2.6.19 -0/1] Backport of psmouse suspend/shutdown cleanups

2007-02-22 Thread Thomas Renninger
On Wed, 2007-02-21 at 12:26 -0500, Dmitry Torokhov wrote:
 On 2/21/07, Thomas Renninger [EMAIL PROTECTED] wrote:
  Hi,
 
  I like to ask for inclusion into stable series for these.
 
  The original patch from Dmitry can be found here:
  http://bugzilla.kernel.org/show_bug.cgi?id=7689
  comment #64, #65.
 
  The reason is:
   - These patches fix a lot weird stuff on all recent
HP nc/nx series laptop models.
 
   - The problem with the psmouse thing is, if you booted
a broken kernel, rebooting a fixed one will still result
in a broken system (things break (or get fixed) on shutdown
and survive the reboot).
Therefore the patch(es) should get into as much kernels
as possible to avoid further confusions on bug reports...
 
  This test report shows the behavior nicely:
  http://bugzilla.kernel.org/show_bug.cgi?id=7689#c45:
  1-Boot   in good state with original kernel
  2-Reboot going in bad state with original kernel
  3-Reboot with 2.6.20 patched kernel-still in bad state
  4-Reboot with 2.6.20 patched kernel-going in good
  state: battery reporting ok,
  cpufreq working and go to full speed.
  5-reboot with original Fedora kernel-still in *good* state
  6-reboot going in bad state
 
  The symptoms of breakages are (because of wrong EC reads/writes)
  very different, depending on the laptop model:
 
   - Cannot reach highest freq on (all?) HP Intel Dual core machines
 This is the only 100% reproducable bug I saw...
 
   - Shutdowns because of critical temperature (e.g. showing 1200 C)
 HP NX 9420 shutting down on huge, bogus thermal temperature values
 https://bugzilla.novell.com/show_bug.cgi?id=234475
 
   - There are probably a lot other bug reports out there that
 will lead to this problem...
 
 
  These are patches against the plain 2.6.19 kernel (not stable .X,
  I hope nothing changed at these specific files..., if there
  changed something I can resubmit).
 
  As we are using these in SLE10 SP1, I did the backports back to
  2.6.16 and will send more if I get your ok for that.
 
  Dmitry (or others), can you please review. I had to fiddle a bit on
  each kernel version. I did a compile test on x86_64 (CONFIG_PM on)
  and powerpc (CONFIG_PM off). And I verified 2.6.20 (original) and
  2.6.16 working with s2disk and s2ram. Still I could have done a
  little typo/mistake somewhere...
 
 
 Hi Thomas,
 
 The patches look good, however I believe that only psmouse patch is
 enough to fix the issues you referring to in your mail (I don't have a
 box that exibits these symptoms so I can't verify). The second patch,
 while useful, should not be included in stable series unless the first
 patch alone does not work.

When adding the .shutdown workaround I went down and realized it must be
this:
psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
or this:
psmouse_set_state(psmouse, PSMOUSE_IGNORE);

as I added the stuff in serio.c, I didn't realize that your psmouse
patch is enough...

So it's the first command that is needed on shutdown(PSMOUSE_CMD_MODE)?
Dmitry: Could you explain me in a short sentence what this is doing, so
that I can explain HP the problem again more detailed (without reading
specs...).

I run into the problem that Ingo Molnar's patch (Don't call _PPC on
startup) hid the problem, later calls to _PPC seemed to return zero
again (I wonder if recent ThinkPads also suffer from this or whether
this is unrelated)...

Some dozen reboots later I can confirm that:
  a) _PPC reports 0 on startup (1 otherwise) with this patch
  b) AC state works now (found that by luck, 100% reproducable,
 when booted with AC (un)plugged, the AC state is stuck to
 (off)on and will never change again - gets also fixed with
 this patch)
  c) mouse (and a + b) still work after s2ram (could only
 test this without X) and s2disk.

Problems (a + b) were reproducable in the mentioned way:
  - reboot a broken kernel and the next booted kernel will be broken
  - reboot a fixed kernel and the next booted kernel will work

I tested this on a 2.6.16 kernel.

I expect that they don't fully reinitialize their EC after reboot
(unplugging AC and battery for some minutes, is also a reported
workaround for that problem), just a guess...

Maybe this even fixes the endless loop some HPs run into -
I didn't test this, don't know how to slip into it.

I will send patch to stable separated now ...

Thanks,

   Thomas

-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH - 2.6.19 -0/1] Backport of psmouse suspend/shutdown cleanups

2007-02-22 Thread Dmitry Torokhov

On 2/22/07, Thomas Renninger [EMAIL PROTECTED] wrote:


When adding the .shutdown workaround I went down and realized it must be
this:
   psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
or this:
   psmouse_set_state(psmouse, PSMOUSE_IGNORE);

as I added the stuff in serio.c, I didn't realize that your psmouse
patch is enough...

So it's the first command that is needed on shutdown(PSMOUSE_CMD_MODE)?
Dmitry: Could you explain me in a short sentence what this is doing, so
that I can explain HP the problem again more detailed (without reading
specs...).



Actually there are 2 pieces that are needed for HP laptops:

1. They really get upset if mouse (integrated synaptics touchpad) is
disabled when they about to reboot. The original code was simply doing
psmouse_reset() which issues reset command to clear state of the
device so it will be closer to the boot state. Hovewer (in
accordance to the spec) after reset mice stay disabled, so we have to
issue:

 ps2_command(psmouse-ps2dev, NULL, PSMOUSE_CMD_ENABLE);

to keep HP laptops happy. Why it would make any difference is a mystery to me.

2. Synaptics touchpads do not get fully reset by 0xff, we need to
explicitely enable gestures - again, HP only (there may be other boxes
with this problem of course). So we call psmouse-cleanup(psmouse) to
activate protocol-specific cleanup.

Hope this makes sense (I must admit it makes little sense to me ;) ).

--
Dmitry
-
To unsubscribe from this list: send the line unsubscribe linux-acpi in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html