diff options
-rw-r--r-- | drivers/char/ipmi/ipmi_poweroff.c | 21 |
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 | ||
448 | static 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", |