From b5797934fc998442c1aa96a0951c38aa26d1e88a Mon Sep 17 00:00:00 2001 From: Zhao Wei Liew Date: Tue, 1 Nov 2016 14:26:53 +0800 Subject: [PATCH] land: Add FM support Change-Id: I5242695322946da1a526650cbb39de46cbacf677 --- product/qcom-fm.mk | 3 ++ proprietary-files.txt | 3 ++ rootdir/Android.mk | 7 +++ rootdir/etc/init.qcom.fm.sh | 90 +++++++++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 product/qcom-fm.mk create mode 100644 rootdir/etc/init.qcom.fm.sh diff --git a/product/qcom-fm.mk b/product/qcom-fm.mk new file mode 100644 index 0000000..d7954cc --- /dev/null +++ b/product/qcom-fm.mk @@ -0,0 +1,3 @@ +# Init +PRODUCT_PACKAGES += \ + init.qcom.fm.sh diff --git a/proprietary-files.txt b/proprietary-files.txt index 2ce9169..212f810 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -497,6 +497,9 @@ vendor/lib64/libsecureui.so vendor/lib64/libsecureui_svcsock.so vendor/lib64/libssd.so +# FM +bin/fm_qsoc_patches + # Gatekeeper vendor/lib/hw/gatekeeper.msm8937.so vendor/lib64/hw/gatekeeper.msm8937.so diff --git a/rootdir/Android.mk b/rootdir/Android.mk index a79252f..341c7f6 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -75,6 +75,13 @@ LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := etc/init.qcom.bt.sh include $(BUILD_PREBUILT) +include $(CLEAR_VARS) +LOCAL_MODULE := init.qcom.fm.sh +LOCAL_MODULE_TAGS := optional eng +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := etc/init.qcom.fm.sh +include $(BUILD_PREBUILT) + include $(CLEAR_VARS) LOCAL_MODULE := init.qcom.post_boot.sh LOCAL_MODULE_TAGS := optional eng diff --git a/rootdir/etc/init.qcom.fm.sh b/rootdir/etc/init.qcom.fm.sh new file mode 100644 index 0000000..a3b1631 --- /dev/null +++ b/rootdir/etc/init.qcom.fm.sh @@ -0,0 +1,90 @@ +#!/system/bin/sh +# Copyright (c) 2009-2011, 2015, The Linux Foundation. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted 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 The Linux Foundation nor +# the names of its contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# 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, FITNESS FOR A PARTICULAR PURPOSE AND +# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 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. +# + +setprop hw.fm.init 0 + +mode=`getprop hw.fm.mode` +version=199217 + +LOG_TAG="qcom-fm" +LOG_NAME="${0}:" + +loge () +{ + /system/bin/log -t $LOG_TAG -p e "$LOG_NAME $@" +} + +logi () +{ + /system/bin/log -t $LOG_TAG -p i "$LOG_NAME $@" +} + +failed () +{ + loge "$1: exit code $2" + exit $2 +} + +logi "In FM shell Script" +logi "mode: $mode" +logi "Version : $version" + +#$fm_qsoc_patches +# +case $mode in + "normal") + logi "inserting the radio transport module" + echo 1 > /sys/module/radio_iris_transport/parameters/fmsmd_set + /system/bin/fm_qsoc_patches $version 0 + ;; + "wa_enable") + /system/bin/fm_qsoc_patches $version 1 + ;; + "wa_disable") + /system/bin/fm_qsoc_patches $version 2 + ;; + *) + logi "Shell: Default case" + /system/bin/fm_qsoc_patches $version 0 + ;; +esac + +exit_code_fm_qsoc_patches=$? + +case $exit_code_fm_qsoc_patches in + 0) + logi "FM QSoC calibration and firmware download succeeded" + ;; + *) + failed "FM QSoC firmware download and/or calibration failed" $exit_code_fm_qsoc_patches + ;; +esac + +setprop hw.fm.init 1 + +exit 0