From f26a27253a5ec031fc8d48720804a30f26ca28d8 Mon Sep 17 00:00:00 2001
From: Andreas Gnau <andreas.gnau@iopsys.eu>
Date: Wed, 8 Sep 2021 16:17:13 +0200
Subject: [PATCH] bcmkernel: bcm_git: Enable specifying WLAN drivers on cmdline

Enable specifying WLAN-drivers to import on command line.
---
 bcmkernel/scripts/bcm_git.sh | 30 +++++++++++++++++++++++-------
 1 file changed, 23 insertions(+), 7 deletions(-)

diff --git a/bcmkernel/scripts/bcm_git.sh b/bcmkernel/scripts/bcm_git.sh
index 125b22f..c797c02 100755
--- a/bcmkernel/scripts/bcm_git.sh
+++ b/bcmkernel/scripts/bcm_git.sh
@@ -1,7 +1,7 @@
 #! /bin/bash
 
 set -eu -o pipefail
-bcm_modules=" \
+BCM_MODULES=" \
 data_full_release \
 data_gfast_src \
 voice_addon \
@@ -283,6 +283,7 @@ add_release ()
 {
     local version=$1
     local repo=$2
+    local bcm_modules="$3"
     local do_merge=0;  # only merge if the data_full_release was installed else skip.
 
     # to add a release the full src needs to exist
@@ -333,7 +334,9 @@ add_release ()
 
 add_all()
 {
-    local bcm_base_versions=$@
+    local bcm_base_versions="$1"
+    local repo_name="$2"
+    local bcm_modules="$3"
 
     for base_version in $bcm_base_versions
     do
@@ -341,7 +344,7 @@ add_all()
         for pre_version in $bcm_pre_versions
         do
             echo "Adding release ${base_version}${pre_version}"
-            add_release ${base_version}${pre_version} $repo_name
+            add_release ${base_version}${pre_version} $repo_name "$bcm_modules"
         done
         # real release
         echo "Adding release ${base_version}"
@@ -369,6 +372,15 @@ DESCRIPTION
 		string of broadcom versions to add. ex
 		-R "5.04L.01 5.04L.02"
 
+	-m --module
+		extra "modules" to import. The default modules are
+		$BCM_MODULES.
+		Additional modules such as WiFi drivers can be supplied, for example
+		--module wlan-bin-all-17.10.157.2802 --module wlan-all-src-17.10.157.2802
+		to import both binaries and source for a specific WiFi driver version.
+		By convention, specify modules sorted by WiFi driver version number and
+		binaries before sources.
+
 	-t,--tars
 		directory where the Broadcom SDK tar files is located.
 
@@ -387,6 +399,7 @@ for arg in "$@"; do
     case "$arg" in
     "--help")          set -- "$@" "-h" ;;
     "--revision")      set -- "$@" "-R" ;;
+    "--module")        set -- "$@" "-m" ;;
     "--repo")          set -- "$@" "-r" ;;
     "--tars")          set -- "$@" "-t" ;;
     "--prerelease")    set -- "$@" "-p" ;;
@@ -395,9 +408,9 @@ for arg in "$@"; do
 done
 
 prerelease=0 # include prerelease ?? that is run add_all or add_release
-
+bcm_extra_modules=
 # parse short opts
-while getopts "hr:R:t:p" opt; do
+while getopts "hr:R:m:t:p" opt; do
     case ${opt} in
     h )
         usage
@@ -406,6 +419,9 @@ while getopts "hr:R:t:p" opt; do
     R )
         bcm_version=$OPTARG
         ;;
+    m )
+        bcm_extra_modules="${bcm_extra_modules} ${OPTARG}"
+        ;;
     t )
         # path to tar files needs to be absolute from / since the script is doing
         # cd into the git repo and the tar files needs to be accessed after that cd is done.
@@ -462,9 +478,9 @@ fi
 # do the import of tar files.
 if  [ "$prerelease" == "1" ]
 then
-    add_all $bcm_version
+    add_all "$bcm_version" "$repo_name" "$BCM_MODULES $bcm_extra_modules"
 else
-    add_release $bcm_version $repo_name
+    add_release "$bcm_version" "$repo_name" "$BCM_MODULES $bcm_extra_modules"
 fi
 
 ###############################################################################
-- 
GitLab