diff options
author | Corey Minyard <cminyard@mvista.com> | 2015-08-27 15:49:18 -0500 |
---|---|---|
committer | Corey Minyard <cminyard@mvista.com> | 2015-09-03 15:02:31 -0500 |
commit | bf2d087749d91e1fa2826edde1e2fd650d3053ca (patch) | |
tree | df012861e64de2281a1ca171fa5604b2d25b7345 /drivers/char | |
parent | acbd9ae70a94bdc626508f444879e19ebe1c421f (diff) | |
download | linux-bf2d087749d91e1fa2826edde1e2fd650d3053ca.tar.gz linux-bf2d087749d91e1fa2826edde1e2fd650d3053ca.tar.bz2 linux-bf2d087749d91e1fa2826edde1e2fd650d3053ca.zip |
ipmi:ssif: Add a module parm to specify that SMBus alerts don't work
They are broken on some platforms, this gives people a chance to work
around it until the firmware is fixed.
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/ipmi/ipmi_ssif.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c index b043d8d45823..877205d22046 100644 --- a/drivers/char/ipmi/ipmi_ssif.c +++ b/drivers/char/ipmi/ipmi_ssif.c @@ -1136,6 +1136,10 @@ module_param_array(slave_addrs, int, &num_slave_addrs, 0); MODULE_PARM_DESC(slave_addrs, "The default IPMB slave address for the controller."); +static bool alerts_broken; +module_param(alerts_broken, bool, 0); +MODULE_PARM_DESC(alerts_broken, "Don't enable alerts for the controller."); + /* * Bit 0 enables message debugging, bit 1 enables state debugging, and * bit 2 enables timing debugging. This is an array indexed by @@ -1582,6 +1586,10 @@ static int ssif_probe(struct i2c_client *client, const struct i2c_device_id *id) ssif_info->global_enables |= IPMI_BMC_EVT_MSG_BUFF; } + /* Some systems don't behave well if you enable alerts. */ + if (alerts_broken) + goto found; + msg[0] = IPMI_NETFN_APP_REQUEST << 2; msg[1] = IPMI_SET_BMC_GLOBAL_ENABLES_CMD; msg[2] = ssif_info->global_enables | IPMI_BMC_RCV_MSG_INTR; |