#! /bin/sh
#
#Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
#
#Redistribution and use in source and binary forms, with or without
#modification, are permitted (subject to the limitations in the
#disclaimer below) provided that the following conditions are met:
#
#    * Redistributions of source code must retain the above copyright
#      notice, this list of conditions and the following disclaimer.
#
#    * Redistributions in binary form must reproduce the above
#      copyright notice, this list of conditions and the following
#      disclaimer in the documentation and/or other materials provided
#      with the distribution.
#
#    * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
#      contributors may be used to endorse or promote products derived
#      from this software without specific prior written permission.
#
#NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
#GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
#HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
#WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
#IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
#ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
#DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
#GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
#INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
#IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
#IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Changes from Qualcomm Innovation Center are provided under the following license:
#
# Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
# SPDX-License-Identifier: BSD-3-Clause-Clear
#

set -e

case "$1" in
  start)
        soc_id=`cat /sys/devices/soc0/soc_id`

	case "$soc_id" in
	"290" | "296" | "297" | "298" | "322")
		echo -n "Enabling autosleep for mdm9607: "

		echo mem > /sys/power/autosleep
		# Enable Low Power modes
		echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
		;;
	esac

        case "$soc_id" in
        "299" | "572")
                echo -n "Enabling autosleep for mdm9607: "

                echo mem > /sys/power/autosleep
                # Enable Low Power modes
                echo N > /sys/module/lpm_levels_legacy/parameters/sleep_disabled
                ;;
        esac

	case "$soc_id" in
	"279" | "284" | "285" | "286" | "283")
		echo -n "Enabling autosleep for MDM9650: "

		echo mem > /sys/power/autosleep
		# Enable Low Power modes
		echo N > /sys/module/lpm_levels/parameters/sleep_disabled
		;;
	esac

        case "$soc_id" in
        "234" | "235" | "236"| "237" | "238")
                echo -n "Enabling autosleep for 9x40: "

                echo mem > /sys/power/autosleep
		echo N > /sys/module/lpm_levels/parameters/sleep_disabled
                ;;
        esac


         case "$soc_id" in
         "333" | "314")
                echo -n "Enabling autosleep for SDX20: "

                echo mem > /sys/power/autosleep
		echo N > /sys/module/lpm_levels/parameters/sleep_disabled
                ;;
         esac

         case "$soc_id" in
         "334" )
                echo -n "Enabling autosleep for SDX24: "

                echo mem > /sys/power/autosleep
		echo N > /sys/module/lpm_levels/parameters/sleep_disabled
	        ;;
	 esac

	 case "$soc_id" in
	"357" | "368")
                echo -n "Enabling autosleep for SDX55: "

                echo N > /sys/module/lpm_levels/parameters/sleep_disabled
                echo mem > /sys/power/autosleep

                ;;
         esac

	 case "$soc_id" in
         "458" | "483" | "509")
                echo -n "Enabling autosleep for SDXLEMUR: "

		echo mem > /sys/power/autosleep
                echo N > /sys/module/lpm_levels/parameters/sleep_disabled
                ;;
         esac

         ;;
  stop)
        ;;
  restart)
        $0 stop
        $0 start
        ;;
  *)
        echo "Usage pm { start | stop | restart}" >&2
        exit 1
        ;;
esac


exit 0

