CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(bluetooth-firmware-sprd C)
FOREACH(flag ${package_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE DESTINATION ${HAL_LICENSE_DIR}/${PROJECT_NAME})
+
ADD_SUBDIRECTORY(scripts)
ADD_SUBDIRECTORY(src)
Group: TO_BE_FILLED
License: Apache-2.0
Source0: bluetooth-firmware-sprd-%{version}.tar.gz
-Source1: bluetooth-hciattach@.service
-Source2: bluetooth-hci-device.service
BuildRequires: cmake
BuildRequires: pkgconfig(dlog)
export CXXFLAGS+=" -fpie -fvisibility=hidden"
export LDFLAGS+=" -Wl,--rpath=/usr/lib -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs -pie"
-cmake ./ -DCMAKE_INSTALL_PREFIX=%{_prefix} -DPLUGIN_INSTALL_PREFIX=%{_prefix}
+cmake ./ -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DPLUGIN_INSTALL_PREFIX=%{_prefix} \
+ -DHAL_LIB_DIR=%{_hal_libdir} \
+ -DHAL_LICENSE_DIR=%{_hal_licensedir} \
+ -DHAL_SYSCONF_DIR=%{_hal_sysconfdir}
make %{?jobs:-j%jobs}
%install
rm -rf %{buildroot}
%make_install
-install -D -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/bluetooth-hciattach@.service
-install -D -m 0644 %SOURCE2 %{buildroot}%{_unitdir}/bluetooth-hci-device.service
-
%post TM1
-rm -rf %{_prefix}/etc/bluetooth/bt-dev-start.sh
-ln -s %{_prefix}/etc/bluetooth/bt-dev-start-TM1.sh %{_prefix}/etc/bluetooth/bt-dev-start.sh
+rm -rf %{_hal_sysconfdir}/bluetooth/bt-dev-start.sh
+ln -s %{_hal_sysconfdir}/bluetooth/bt-dev-start-TM1.sh %{_hal_sysconfdir}/bluetooth/bt-dev-start.sh
%files TM1
%manifest %{name}.manifest
-%license LICENSE
-%defattr(-,root,root,-)
-%attr(755,-,-) %{_prefix}/etc/bluetooth/bt-dev-end.sh
-%attr(755,-,-) %{_prefix}/etc/bluetooth/bt-dev-start-TM1.sh
-%{_unitdir}/bluetooth-hciattach@.service
-%{_unitdir}/bluetooth-hci-device.service
-/hal/lib/*.so*
+%{_hal_licensedir}/%{name}/LICENSE
+%{_hal_sysconfdir}/bluetooth/bt-dev-end.sh
+%{_hal_sysconfdir}/bluetooth/bt-dev-start-TM1.sh
+%{_hal_libdir}/*.so*
+++ /dev/null
-[Unit]
-Description=hciattach service for SPRD BT/FM requested
-StopWhenUnneeded=yes
-
-[Service]
-Type=oneshot
-SmackProcessLabel=System
-ExecStart=/usr/etc/bluetooth/bt-dev-start.sh
-ExecStop=/usr/etc/bluetooth/bt-dev-end.sh
-RemainAfterExit=yes
-StandardOutput=journal+console
-StandardError=inherit
+++ /dev/null
-[Unit]
-Description=hciattach service requested by %I
-Requires=bluetooth-hci-device.service
-After=bluetooth-hci-device.service
-
-[Service]
-Type=oneshot
-SmackProcessLabel=System
-ExecStartPre=-/bin/mkdir -p /run/bluetooth/
-ExecStart=/bin/touch /run/bluetooth/%I
-ExecStop=/bin/rm /run/bluetooth/%I
-RemainAfterExit=yes
-StandardOutput=journal+console
-StandardError=inherit
# install firmware
-INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/bt-dev-end.sh DESTINATION ${PLUGIN_INSTALL_PREFIX}/etc/bluetooth)
-INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/bt-dev-start-TM1.sh DESTINATION ${PLUGIN_INSTALL_PREFIX}/etc/bluetooth)
+INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/bt-dev-end.sh DESTINATION ${HAL_SYSCONF_DIR}/bluetooth)
+INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/bt-dev-start-TM1.sh DESTINATION ${HAL_SYSCONF_DIR}/bluetooth)
# Do NOT use killall due to smack
hciattach_pid=`${PGREP} hciattach`
kill $hciattach_pid
+
+HCI_CONFIG=/usr/bin/hciconfig
+TIMEOUT=20
+for ((i=1; i<=$TIMEOUT; i++))
+do
+ /bin/sleep 0.1
+ if [ $i -eq $TIMEOUT ]
+ then
+ echo "time expired happen $i"
+ exit 2
+ fi
+ if (${HCI_CONFIG} | grep DOWN); then
+ echo "Bluetooth device is down"
+ break
+ fi
+ if (${HCI_CONFIG} | grep hci); then
+ echo "Bluetooth device still exist"
+ else
+ echo "hci is removed"
+ break
+ fi
+ echo "Continue...$i"
+done
+
+exit 0
if (${HCI_CONFIG} | grep hci); then
echo "Bluetooth device is UP"
${HCI_CONFIG} hci0 up
- exit 1
+ exit 0
fi
/usr/sbin/rfkill unblock bluetooth
/bin/cp /var/log/messages /var/lib/bluetooth/
fi
-#/usr/sbin/hciconfig hci0 down
+echo "Check for Bluetooth device status"
+if (${HCI_CONFIG} | grep hci); then
+ echo "Bluetooth device is UP"
+ ${HCI_CONFIG} hci0 up
+else
+ echo "Did not attach HCI"
+ exit 1
+fi
+TIMEOUT=20
+for ((i=1; i<=$TIMEOUT; i++))
+do
+ /bin/sleep 0.1
+ if [ $i -eq $TIMEOUT ]
+ then
+ echo "time expired happen $i"
+ exit 2
+ fi
+ if (${HCI_CONFIG} | grep UP); then
+ echo "Bluetooth device is made"
+ break
+ fi
+ echo "Continue...$i"
+done
+
+exit 0
ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${hal-backend-bluetooth_pkgs_LDFLAGS})
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /hal/lib COMPONENT RuntimeLibraries)
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${HAL_LIB_DIR} COMPONENT RuntimeLibraries)
static int bluetooth_tm1_start(void)
{
int ret;
- ret = system("/usr/etc/bluetooth/bt-stack-up.sh");
+ ret = system("/hal/etc/bluetooth/bt-dev-start.sh");
if (ret == 0x100) {
LOGE("script internal failed");
return HAL_BACKEND_ERROR_INTERNAL;
static int bluetooth_tm1_stop(void)
{
int ret;
- ret = system("/usr/etc/bluetooth/bt-stack-down.sh");
+ ret = system("/hal/etc/bluetooth/bt-dev-end.sh");
if (ret == 0x100) {
LOGE("script internal failed");
return HAL_BACKEND_ERROR_INTERNAL;