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