meta-facebook: yosemite4: fix slot AC on failure

Since CPLD will stagger each slot AC on operation, getting AC status
without delay might result in AC on operation failure.

Change-Id: I2920fba84a5c3ff03037d2411614ccf488b2f266
Signed-off-by: Jerry C Chen <jerry.c.chen.wiwynn@gmail.com>
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle
index 22c5256..b6fca40 100644
--- a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-powercycle
@@ -64,7 +64,7 @@
         sleep 2
 
         # Check chassis status after doing 12V cycle
-        chassis_status=$(gpio_get "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_STATUS")
+        chassis_status=$(get_ac_on_status "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_STATUS")
         if [ "$chassis_status" == "$STATE_ON" ]
         then
             if [ -n "$is_nuvoton_board" ]
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron
index 8d47c77..620c0fc 100644
--- a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/chassis-poweron
@@ -32,7 +32,7 @@
     sleep 1
 
     # Check chassis status after doing 12V on
-    chassis_status=$(gpio_get "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_STATUS")
+    chassis_status=$(get_ac_on_status "$GPIOCHIP_IO_EXP_SLOT_PWR_CTRL" "$IO_EXP_SLOT_PWR_STATUS")
     if [ "$chassis_status" == "$STATE_ON" ]
     then
         if [ -n "$is_nuvoton_board" ]
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/power-cmd b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/power-cmd
index 4d7e759..c20fa34 100644
--- a/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/power-cmd
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/state/phosphor-state-manager/power-cmd
@@ -54,3 +54,20 @@
     xyz.openbmc_project.Logging.Create Create "ssa{ss}" "$MESSAGE" \
     xyz.openbmc_project.Logging.Entry.Level.Error 0
 }
+
+get_ac_on_status()
+{
+  RETRY=20
+  while [ $RETRY -gt 0 ]
+  do
+    if [ "$(gpio_get "$1" "$2")" == "$STATE_ON" ]
+    then
+      echo "$STATE_ON"
+      return 0
+    fi
+    RETRY=$((RETRY-1))
+    sleep 1
+  done
+  echo "$STATE_OFF"
+}
+