aacraid: AIF support for SES device add/remove
authorMahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
Thu, 26 Mar 2015 14:41:22 +0000 (10:41 -0400)
committerJames Bottomley <JBottomley@Odin.com>
Thu, 9 Apr 2015 23:44:24 +0000 (16:44 -0700)
Signed-off-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Murthy Bhat <Murthy.Bhat@pmcs.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
drivers/scsi/aacraid/aacraid.h
drivers/scsi/aacraid/commsup.c

index eaaf8705a5f4d173c47bf45d81202300dd99f3e2..284db3937a8255f8a0ba882e120a112bf8d36bb9 100644 (file)
@@ -1951,6 +1951,8 @@ extern struct aac_common aac_config;
 #define                        AifEnEnclosureManagement 13     /* EM_DRIVE_* */
 #define                                EM_DRIVE_INSERTION      31
 #define                                EM_DRIVE_REMOVAL        32
+#define                        EM_SES_DRIVE_INSERTION  33
+#define                        EM_SES_DRIVE_REMOVAL    26
 #define                        AifEnBatteryEvent       14      /* Change in Battery State */
 #define                        AifEnAddContainer       15      /* A new array was created */
 #define                        AifEnDeleteContainer    16      /* A container was deleted */
index cab190af63455319ffaf009b486a69664b2a47d9..090ba681ff36f38c7d46044375577d4904be64fb 100644 (file)
@@ -1044,6 +1044,8 @@ static void aac_handle_aif(struct aac_dev * dev, struct fib * fibptr)
                        switch (le32_to_cpu(((__le32 *)aifcmd->data)[3])) {
                        case EM_DRIVE_INSERTION:
                        case EM_DRIVE_REMOVAL:
+                       case EM_SES_DRIVE_INSERTION:
+                       case EM_SES_DRIVE_REMOVAL:
                                container = le32_to_cpu(
                                        ((__le32 *)aifcmd->data)[2]);
                                if ((container >> 28)) {
@@ -1069,8 +1071,10 @@ static void aac_handle_aif(struct aac_dev * dev, struct fib * fibptr)
                                }
                                channel = aac_phys_to_logical(channel);
                                device_config_needed =
-                                 (((__le32 *)aifcmd->data)[3]
-                                   == cpu_to_le32(EM_DRIVE_INSERTION)) ?
+                                 ((((__le32 *)aifcmd->data)[3]
+                                   == cpu_to_le32(EM_DRIVE_INSERTION)) ||
+                                   (((__le32 *)aifcmd->data)[3]
+                                   == cpu_to_le32(EM_SES_DRIVE_INSERTION))) ?
                                  ADD : DELETE;
                                break;
                        }