ssv6xxx-aml: new driver package

This commit is contained in:
Adam Green 2017-12-12 16:28:59 +00:00
parent b93eaea2ab
commit 59f4a0e37a
No known key found for this signature in database
GPG Key ID: 52B701B6EF2F2E58
2 changed files with 150 additions and 0 deletions

View File

@ -0,0 +1,64 @@
################################################################################
# This file is part of LibreELEC - https://libreelec.tv
# Copyright (C) 2017-present Team LibreELEC
#
# LibreELEC is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# LibreELEC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LibreELEC. If not, see <http://www.gnu.org/licenses/>.
################################################################################
PKG_NAME="ssv6xxx-aml"
PKG_VERSION="1041e7d"
PKG_SHA256="1d96db8eec06c8a2c43f2c8024cc573e2bbce08fb0504fd9b6671224335e7d5f"
PKG_ARCH="arm aarch64"
PKG_LICENSE="GPL"
PKG_SITE="http://libreelec.tv"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain linux"
PKG_NEED_UNPACK="$LINUX_DEPENDS"
PKG_SECTION="driver"
PKG_SHORTDESC="ssv6xxx Linux driver"
PKG_LONGDESC="ssv6xxx Linux driver"
PKG_IS_KERNEL_PKG="yes"
PKG_TOOLCHAIN="manual"
pre_configure_target() {
sed -i 's,hw_cap_p2p = on,hw_cap_p2p = off,g' firmware/ssv6051-wifi.cfg
}
pre_make_target() {
unset LDFLAGS
}
make_target() {
if [ "$TARGET_KERNEL_ARCH" = "arm64" ]; then
PLATFORM="aml-s905"
else
PLATFORM="aml-s805"
fi
cd $PKG_BUILD
./ver_info.pl include/ssv_version.h
cp Makefile.android Makefile
sed -i 's,PLATFORMS =,PLATFORMS = '"$PLATFORM"',g' Makefile
make module SSV_ARCH="$TARGET_KERNEL_ARCH" \
SSV_CROSS="$TARGET_PREFIX" \
SSV_KERNEL_PATH="$(kernel_path)"
}
makeinstall_target() {
mkdir -p $INSTALL/$(get_full_module_dir)/$PKG_NAME
find $PKG_BUILD/ -name \*.ko -not -path '*/\.*' -exec cp {} $INSTALL/$(get_full_module_dir)/$PKG_NAME \;
mkdir -p $INSTALL/$(get_full_firmware_dir)/$PKG_NAME
cp $PKG_BUILD/firmware/* $INSTALL/$(get_full_firmware_dir)/$PKG_NAME
}

View File

@ -0,0 +1,86 @@
diff --git a/Makefile.android b/Makefile.android
index 82211e1..0deeee5 100755
--- a/Makefile.android
+++ b/Makefile.android
@@ -2,10 +2,8 @@ PLATFORMS =
KBUILD_TOP := $(PWD)
-SSV_PATH=$(ANDROID_BUILD_TOP)/hardware/wifi/icomm/ssv6xxx/ssv6051/
-
-include $(SSV_PATH)/ssv6051.cfg
-include $(SSV_PATH)/platform-config.mak
+include ${KBUILD_TOP}/ssv6051.cfg
+include ${KBUILD_TOP}/platform-config.mak
PWD := $(shell pwd)
@@ -69,7 +67,7 @@ obj-$(CONFIG_SSV6200_CORE) += $(KMODULE_NAME).o
all:module strip
module:
- make -C $(SSV_KERNEL_PATH) ARCH=$(SSV_ARCH) CROSS_COMPILE=$(SSV_CROSS) \
+ $(MAKE) -C $(SSV_KERNEL_PATH) ARCH=$(SSV_ARCH) CROSS_COMPILE=$(SSV_CROSS) \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" M=$(PWD) modules
install:
@@ -92,6 +90,6 @@ ifneq ($(SSV_STRIP),)
endif
clean:
- make -C $(SSV_KERNEL_PATH) ARCH=$(SSV_ARCH) CROSS_COMPILE=$(SSV_CROSS) \
+ $(MAKE) -C $(SSV_KERNEL_PATH) ARCH=$(SSV_ARCH) CROSS_COMPILE=$(SSV_CROSS) \
M=$(PWD) clean
rm $(DEF_PARSER_H)
diff --git a/firmware/ssv6051-wifi.cfg b/firmware/ssv6051-wifi.cfg
index 6c3a823..9c623a0 100755
--- a/firmware/ssv6051-wifi.cfg
+++ b/firmware/ssv6051-wifi.cfg
@@ -11,7 +11,7 @@
# Priority.3 default firmware
##################################################
-firmware_path = /system/etc/wifi/ssv6051/
+firmware_path = /usr/lib/firmware/
############################################################
# MAC address
diff --git a/platform-config.mak b/platform-config.mak
index bf35b70..f02e2b5 100755
--- a/platform-config.mak
+++ b/platform-config.mak
@@ -5,7 +5,7 @@ CONFIG_SSV6200_CORE=m
###########################################################################
# Compiler options #
###########################################################################
-ccflags-y += -Werror
+# ccflags-y += -Werror
# Enable -g to help debug. Deassembly from .o to .S would help to track to
# the problomatic line from call stack dump.
diff --git a/ssv6051.cfg b/ssv6051.cfg
index 7cf12c2..a6960fa 100755
--- a/ssv6051.cfg
+++ b/ssv6051.cfg
@@ -16,6 +16,6 @@ ccflags-y += -DCONFIG_SSV_RSSI
#SSV_CROSS = $(ANDROID_BUILD_TOP)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
#SSV_KERNEL_PATH = $(ANDROID_BUILD_TOP)/out/target/product/p201/obj/KERNEL_OBJ/
-SSV_ARCH = arm64
+#SSV_ARCH = arm64
#KMODDESTDIR = $(MODDESTDIR)
diff --git a/ssvdevice/ssvdevice.c b/ssvdevice/ssvdevice.c
index ff4305e..375827f 100755
--- a/ssvdevice/ssvdevice.c
+++ b/ssvdevice/ssvdevice.c
@@ -35,7 +35,7 @@
MODULE_AUTHOR("iComm Semiconductor Co., Ltd");
MODULE_DESCRIPTION("Shared library for SSV wireless LAN cards.");
MODULE_LICENSE("Dual BSD/GPL");
-static char *stacfgpath = NULL;
+static char *stacfgpath = "/usr/lib/firmware/ssv6051-wifi.cfg";
EXPORT_SYMBOL(stacfgpath);
module_param(stacfgpath, charp, 0000);
MODULE_PARM_DESC(stacfgpath, "Get path of sta cfg");