--- ./source/private_module/SRC/mpa_adapter_app.c	2019-04-01 03:12:52.549192966 +0000
+++ ./source/private_module/SRC/mpa_adapter_app.c.hotpatch	2019-04-02 02:43:40.113192966 +0000
@@ -312,6 +312,8 @@
     MPA_CMD_INFO_S MpaCmd;
     OSP_U8 BmcDataIn[2] = {0, 0};
     DAL_MPA_ADDR_S *MpaAddr = NULL;
+    DAL_SYS_POWER_CONTROL_E FramePowerState = DAL_SYS_POWER_CONTROL_BUTT;
+    DAL_FAN_STAT_E FanState = FAN_STAT_BUTT;
 
     if ((NULL == EnclAddr) || (NULL == Temperature))
     {
@@ -326,7 +328,22 @@
     MpaCmd.BufLen = (OSP_U16)Length;
     MpaCmd.SdrType = SENSOR_TEMP;
     MpaCmd.WtRd = MPA_READ;
-
+    if ((DAL_FRU_LOGIC_TYPE(DriverId) == DAL_FRU_LOGIC_TYPE_EXPBOARD) 
+        && ((MpaAddr->DevFrame == DRV_FRAMEMODEL_12GSAS_EXP_2U25_12GLINK)
+        ||  (MpaAddr->DevFrame == DRV_FRAMEMODEL_12GSAS_EXP_4U24_12GLINK)
+        ||  (MpaAddr->DevFrame == DRV_FRAMEMODEL_12GSAS_EXP_2U25)
+        ||  (MpaAddr->DevFrame == DRV_FRAMEMODEL_12GSAS_EXP_4U24)))
+    {     
+        (void)MPAIntf_GetFanState(EnclAddr, ((OSP_U64)0x6000 << FRU_ID_OFFSET), &FanState);
+        if(FanState == FAN_SLEEP)
+        {
+            (void)MPAIntf_GetFramePowerState(EnclAddr, 0x800000, (OSP_U8 *)&FramePowerState);
+            if(FramePowerState == DAL_SYS_UP)
+			{
+                (void)MPAIntf_SetFanOnOff(EnclAddr, 0x6000, 1);
+            }
+        }
+    }
     if ((DRV_FRAMEMODEL_1710BMC_END > MpaAddr->DevFrame)
         && (DRV_FRAMEMODEL_12GSAS_EXP_END < MpaAddr->DevFrame))
     {
@@ -339,23 +356,6 @@
     return MPA_Intf((DAL_MPA_ADDR_S *)EnclAddr, &MpaCmd, (OSP_VOID *)NULL, (OSP_VOID *)Temperature);
     
 }
-
-/******************************************************************************
- *     : MPAIntf_SetTemperature
- *   : ¶
- *   : EnclAddr  ϲ·ĵַϢmcutype,scsiַframetype
- *             DriverId   ID ͡FRUIDDEVICE IDϢ   
- *             Value ¶ֵ     
- *   : 
- *   ֵ  : OSP_S32
- * ˵  : 
- * 
- * ޸ʷ      :
- *  1.       : 20131016
- *           : 淫
- *    ޸   : ɺ
- *
- ******************************************************************************/
 OSP_S32 MPAIntf_SetTemperature(OSP_VOID *EnclAddr, OSP_U64 DriverId, OSP_S16 Value)
 {
     MPA_CMD_INFO_S MpaCmd;
