aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/char/ipmi/ipmi_poweroff.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/char/ipmi/ipmi_poweroff.c b/drivers/char/ipmi/ipmi_poweroff.c
index fccb1e9fd3b7..7996337852f2 100644
--- a/drivers/char/ipmi/ipmi_poweroff.c
+++ b/drivers/char/ipmi/ipmi_poweroff.c
@@ -437,6 +437,24 @@ static int ipmi_dell_chassis_detect(ipmi_user_t user)
437} 437}
438 438
439/* 439/*
440 * ipmi_hp_chassis_detect()
441 * HP PA-RISC servers rp3410/rp3440, the C8000 workstation and the rx2600 and
442 * zx6000 machines support IPMI vers 1 and don't set the chassis capability bit
443 * but they can handle a chassis poweroff or powercycle command.
444 */
445
446#define HP_IANA_MFR_ID 0x0b
447#define HP_BMC_PROD_ID 0x8201
448static int ipmi_hp_chassis_detect(ipmi_user_t user)
449{
450 if (mfg_id == HP_IANA_MFR_ID
451 && prod_id == HP_BMC_PROD_ID
452 && ipmi_version == 1)
453 return 1;
454 return 0;
455}
456
457/*
440 * Standard chassis support 458 * Standard chassis support
441 */ 459 */
442 460
@@ -513,6 +531,9 @@ static struct poweroff_function poweroff_functions[] = {
513 { .platform_type = "chassis", 531 { .platform_type = "chassis",
514 .detect = ipmi_dell_chassis_detect, 532 .detect = ipmi_dell_chassis_detect,
515 .poweroff_func = ipmi_poweroff_chassis }, 533 .poweroff_func = ipmi_poweroff_chassis },
534 { .platform_type = "chassis",
535 .detect = ipmi_hp_chassis_detect,
536 .poweroff_func = ipmi_poweroff_chassis },
516 /* Chassis should generally be last, other things should override 537 /* Chassis should generally be last, other things should override
517 it. */ 538 it. */
518 { .platform_type = "chassis", 539 { .platform_type = "chassis",