megaraid_sas: Update OCR capability on controller properties change
authorsumit.saxena@avagotech.com <sumit.saxena@avagotech.com>
Thu, 15 Oct 2015 08:10:14 +0000 (13:40 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 29 Oct 2015 07:23:42 +0000 (03:23 -0400)
Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com>
Signed-off-by: Kashyap Desai <kashyap.desai@avagotech.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/megaraid/megaraid_sas.h
drivers/scsi/megaraid/megaraid_sas_base.c

index 0413679a48aaf3c3b1f72abc5232b1f0579117e6..bf7e99fdcd4eab66616712f301f2660d0e43773f 100644 (file)
@@ -420,6 +420,7 @@ enum MR_LD_QUERY_TYPE {
 #define MR_EVT_FOREIGN_CFG_IMPORTED                     0x00db
 #define MR_EVT_LD_OFFLINE                               0x00fc
 #define MR_EVT_CTRL_HOST_BUS_SCAN_REQUESTED             0x0152
+#define MR_EVT_CTRL_PROP_CHANGED                       0x012f
 
 enum MR_PD_STATE {
        MR_PD_STATE_UNCONFIGURED_GOOD   = 0x00,
index d452b1951cf17ac50f257d0f4912386f62cb618f..7e12a8535c39a940446f7ab551d65af8015826b0 100644 (file)
@@ -4194,6 +4194,10 @@ megasas_get_ctrl_info(struct megasas_instance *instance)
                                "controller type\t: %s(%dMB)\n",
                                instance->is_imr ? "iMR" : "MR",
                                le16_to_cpu(ctrl_info->memory_size));
+               instance->disableOnlineCtrlReset =
+                       ctrl_info->properties.OnOffProperties.disableOnlineCtrlReset;
+               dev_info(&instance->pdev->dev, "Online Controller Reset(OCR)\t: %s\n",
+                       instance->disableOnlineCtrlReset ? "Disabled" : "Enabled");
        }
 
        pci_free_consistent(instance->pdev, sizeof(struct megasas_ctrl_info),
@@ -4799,8 +4803,6 @@ static int megasas_init_fw(struct megasas_instance *instance)
 
        tmp_sectors = min_t(u32, max_sectors_1, max_sectors_2);
 
-       instance->disableOnlineCtrlReset =
-       ctrl_info->properties.OnOffProperties.disableOnlineCtrlReset;
        instance->mpio = ctrl_info->adapterOperations2.mpio;
        instance->UnevenSpanSupport =
                ctrl_info->adapterOperations2.supportUnevenSpans;
@@ -4860,8 +4862,6 @@ static int megasas_init_fw(struct megasas_instance *instance)
                le16_to_cpu(ctrl_info->pci.sub_device_id));
        dev_info(&instance->pdev->dev, "unevenspan support      : %s\n",
                instance->UnevenSpanSupport ? "yes" : "no");
-       dev_info(&instance->pdev->dev, "disable ocr             : %s\n",
-               instance->disableOnlineCtrlReset ? "yes" : "no");
        dev_info(&instance->pdev->dev, "firmware crash dump     : %s\n",
                instance->crash_dump_drv_support ? "yes" : "no");
        dev_info(&instance->pdev->dev, "secure jbod             : %s\n",
@@ -6745,6 +6745,9 @@ megasas_aen_polling(struct work_struct *work)
                case MR_EVT_LD_STATE_CHANGE:
                        doscan = 1;
                        break;
+               case MR_EVT_CTRL_PROP_CHANGED:
+                       megasas_get_ctrl_info(instance);
+                       break;
                default:
                        doscan = 0;
                        break;