#!/bin/sh
#
# backlight init

############
# CHANGELOG
#===========
# 2012/02/09    crms00355983  Qianjun Zhang
#               VHE1 black screen when upgrade to version R250.01.001.1.
# 2011/07/13    PRID261789    Xiaodong YANG
#               support backlight 38 levels
#
# 2011/01/12	CRMS00285487	Thomas CREMEL
#		problem with blctl
#
# 2010/11/08    CRMS00XXXXXX    Michel Sulyan
#               creation for silent reboot request
################

upgrade_check(){
    STATUS=/usr/sbin/upgd_status
    UPGRADE_STATUS=0
    if [ -x $STATUS ]; then
        $STATUS >/dev/null 2>&1
        UPGRADE_STATUS=$?
    fi
}

MYIDENT=${0##*/}
# PRID261789
BACKLIGHT_LEVEL_MAX_I2C=31
BL_ID0="2584"
BL_ID1="2539"
BL_ID2="TPS61165"
# PRID261789 END

# check backlight command tool
# CRMS0028548 Change the command	
BACKLIGHT_CMD=/usr/bin/platform/platform_blctl
if [ ! -x $BACKLIGHT_CMD ]; then 
    echo "$MYIDENT: cannot find $BACKLIGHT_CMD";
    exit 1 
fi

# init level to max backlight level
BACKLIGHT_LEVEL=`CLISettings get CURRENT ADMCFG_BACKLIGHT_LEVEL_MAX`
# PRID261789
# get current backlight chip model(TI for 38 levels)
BACKLIGHT_CHIP=`CLISettings get CURRENT FAB_HW_BACKLIGHT 2>/dev/null`
# PRID261789 END

# check upgrade
upgrade_check
if [ $UPGRADE_STATUS -eq 1 ]; then
   echo "$MYIDENT: upgrade in progress, use max backlight level";
else
   SILENT_REBOOT=`CLISettings get LOCAL ADMCFG_SILENT_REBOOT`
   ## xiaodoay to do: if not TI, if bigger than 31, set to 31, seems not necessary
   if [ $SILENT_REBOOT == "true" ]; then
      BACKLIGHT_LEVEL=`CLISettings get LOCAL ADMCFG_SILENT_BACKLIGHT_LEVEL`;
      echo "$MYIDENT: silent reboot, use stored backlight level";
   else
      echo "$MYIDENT: normal reboot, use max backlight level";
   fi
fi

# PRID261789
case "$BACKLIGHT_CHIP" in
# crms00355983
  $BL_IDO | $BL_ID1 | '' ) BACKLIGHT_LEVEL=$BACKLIGHT_LEVEL_MAX_I2C
# crms00355983 END
                           ;;
  $BL_ID2 | *)             ;;
esac
# PRID261789 END

# set backlight level
echo "$MYIDENT: set backlight level to $BACKLIGHT_LEVEL";
# CRMS0028548 Change the command	
$BACKLIGHT_CMD power 1 >/dev/null 2>&1
$BACKLIGHT_CMD brightness $BACKLIGHT_LEVEL >/dev/null 2>&1
