ipmi:ssif: Add a module parm to specify that SMBus alerts don't work
authorCorey Minyard <cminyard@mvista.com>
Thu, 27 Aug 2015 20:49:18 +0000 (15:49 -0500)
committerCorey Minyard <cminyard@mvista.com>
Thu, 3 Sep 2015 20:02:31 +0000 (15:02 -0500)
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>
drivers/char/ipmi/ipmi_ssif.c

index b043d8d4582350d9bd2febdd16a38f1a76b809da..877205d2204686b0f39c3c798ce5ecf9fa19d358 100644 (file)
@@ -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;