powerpc/pseries: Parse and handle EPOW interrupts
authorAnton Blanchard <anton@samba.org>
Wed, 21 Mar 2012 15:49:59 +0000 (15:49 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 28 Mar 2012 00:31:59 +0000 (11:31 +1100)
commit55fc0c561742c710857dc5a7a591b461a561cf1f
treea2ef018edbb6055e3d1e086ea64a5bab63cb9796
parent6431f20879e338306b997cd75a36824cf9d6e687
powerpc/pseries: Parse and handle EPOW interrupts

We have code to take environmental and power warning (EPOW)
interrupts but it simply prints a terse error message:

EPOW <0x6240040000000b8 0x0 0x0>

which tells us nothing about what happened. Even worse, if we
don't correctly respond to the interrupt we may get terminated
by firmware.

Add code to printk some useful information when we get EPOW events.
We want to make it clear that we have an error, that it was
reported by firmware and that the RTAS error log will have more
detailed information. eg:

Ambient temperature too high reported by firmware.
Check RTAS error log for details

Depending on the error encountered, we now issue an immediate or
an orderly power down.

Move initialization of the EPOW interrupt earlier in boot since we
want to respond to them as early as possible.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/platforms/pseries/ras.c