[][MAC80211][app][update iwpriv wrapper]

[Description]
Add 6G channel switch and interface conversion in iwpriv wrapper.

[Release-log]
N/A

Change-Id: I6801b5160ec77ab380a5d61f1f218f9b5c590844
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6433751
diff --git a/feed/atenl/files/iwpriv.sh b/feed/atenl/files/iwpriv.sh
index 0832a5e..3648780 100755
--- a/feed/atenl/files/iwpriv.sh
+++ b/feed/atenl/files/iwpriv.sh
@@ -59,6 +59,38 @@
     fi
 }
 
+function convert_interface {
+    local start_idx_7986=$(get_config "STARTIDX")
+    if [ -z "${start_idx_7986}" ]; then
+        local tmp=$(lspci | grep "7906")
+        if [ ! -z "${tmp}" ]; then
+            start_idx_7986="2"
+        else
+            local tmp=$(lspci | grep "7915\|7916")
+            if [ ! -z "${tmp}" ]; then
+                start_idx_7986="1"
+            else
+                start_idx_7986="0"
+            fi
+        fi
+        record_config "STARTIDX" ${start_idx_7986}
+    fi
+
+    if [[ $1 == "raix"* ]]; then
+        interface="phy1"
+        phy_idx=1
+    elif [[ $1 == "rai"* ]]; then
+        interface="phy0"
+        phy_idx=0
+    elif [[ $1 == "rax"* ]]; then
+        phy_idx=$((start_idx_7986+1))
+        interface="phy${phy_idx}"
+    else
+        phy_idx=$start_idx_7986
+        interface="phy${phy_idx}"
+    fi
+}
+
 function simple_convert() {
     if [ "$1" = "ATETXCNT" ]; then
         echo "tx_count"
@@ -188,6 +220,9 @@
     local ch=$(echo $1 | sed s/:/' '/g | cut -d " " -f 1)
     local bw=$(get_config "ATETXBW" | cut -d ":" -f 1)
     local bw_str="HT20"
+    local base_chan=1
+    local control_freq=0
+    local base_freq=0
 
     if [[ $1 != *":"* ]] || [ "${band}" = "0" ]; then
         case ${bw} in
@@ -200,6 +235,7 @@
                 fi
                 ;;
         esac
+        local base_freq=2412
     elif [ "${band}" = "1" ]; then
         case ${bw} in
             "5")
@@ -297,11 +333,162 @@
                 local bw_str="HT20"
                 ;;
         esac
+        local base_freq=5180
+        local base_chan=36
     else
-        echo "6G Todo"
+        case ${bw} in
+            "5")
+                bw_str="160MHz"
+                if [ ${ch} -lt "33" ]; then
+                    ch="1"
+                elif [ ${ch} -lt "65" ]; then
+                    ch="33"
+                elif [ ${ch} -lt "97" ]; then
+                    ch="65"
+                elif [ ${ch} -lt "129" ]; then
+                    ch="97"
+                elif [ ${ch} -lt "161" ]; then
+                    ch="129"
+                elif [ ${ch} -lt "193" ]; then
+                    ch="161"
+                elif [ ${ch} -lt "225" ]; then
+                    ch="193"
+                fi
+                ;;
+            "2")
+                bw_str="80MHz"
+                if [ ${ch} -lt "17" ]; then
+                    ch="1"
+                elif [ ${ch} -lt "33" ]; then
+                    ch="17"
+                elif [ ${ch} -lt "49" ]; then
+                    ch="33"
+                elif [ ${ch} -lt "65" ]; then
+                    ch="49"
+                elif [ ${ch} -lt "81" ]; then
+                    ch="65"
+                elif [ ${ch} -lt "97" ]; then
+                    ch="81"
+                elif [ ${ch} -lt "113" ]; then
+                    ch="97"
+                elif [ ${ch} -lt "129" ]; then
+                    ch="113"
+                elif [ ${ch} -lt "145" ]; then
+                    ch="129"
+                elif [ ${ch} -lt "161" ]; then
+                    ch="145"
+                elif [ ${ch} -lt "177" ]; then
+                    ch="161"
+                elif [ ${ch} -lt "193" ]; then
+                    ch="177"
+                elif [ ${ch} -lt "209" ]; then
+                    ch="193"
+                elif [ ${ch} -lt "225" ]; then
+                    ch="209"
+                fi
+                ;;
+            "1")
+                if [ ${ch} -lt "9" ]; then
+                    ch=$([ "${ch}" -lt "5" ] && echo "1" || echo "5")
+                    bw_str=$([ "${ch}" -le "3" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "17" ]; then
+                    ch=$([ "${ch}" -lt "13" ] && echo "9" || echo "13")
+                    bw_str=$([ "${ch}" -le "11" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "25" ]; then
+                    ch=$([ "${ch}" -lt "21" ] && echo "17" || echo "21")
+                    bw_str=$([ "${ch}" -le "19" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "33" ]; then
+                    ch=$([ "${ch}" -lt "29" ] && echo "25" || echo "29")
+                    bw_str=$([ "${ch}" -le "27" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "33" ]; then
+                    ch=$([ "${ch}" -lt "29" ] && echo "25" || echo "29")
+                    bw_str=$([ "${ch}" -le "27" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "41" ]; then
+                    ch=$([ "${ch}" -lt "37" ] && echo "33" || echo "37")
+                    bw_str=$([ "${ch}" -le "35" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "49" ]; then
+                    ch=$([ "${ch}" -lt "45" ] && echo "41" || echo "45")
+                    bw_str=$([ "${ch}" -le "43" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "57" ]; then
+                    ch=$([ "${ch}" -lt "53" ] && echo "49" || echo "53")
+                    bw_str=$([ "${ch}" -le "51" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "65" ]; then
+                    ch=$([ "${ch}" -lt "61" ] && echo "57" || echo "61")
+                    bw_str=$([ "${ch}" -le "59" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "73" ]; then
+                    ch=$([ "${ch}" -lt "69" ] && echo "65" || echo "69")
+                    bw_str=$([ "${ch}" -le "67" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "81" ]; then
+                    ch=$([ "${ch}" -lt "77" ] && echo "73" || echo "77")
+                    bw_str=$([ "${ch}" -le "75" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "89" ]; then
+                    ch=$([ "${ch}" -lt "85" ] && echo "81" || echo "85")
+                    bw_str=$([ "${ch}" -le "83" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "97" ]; then
+                    ch=$([ "${ch}" -lt "93" ] && echo "89" || echo "93")
+                    bw_str=$([ "${ch}" -le "91" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "105" ]; then
+                    ch=$([ "${ch}" -lt "101" ] && echo "97" || echo "101")
+                    bw_str=$([ "${ch}" -le "99" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "113" ]; then
+                    ch=$([ "${ch}" -lt "109" ] && echo "105" || echo "109")
+                    bw_str=$([ "${ch}" -le "107" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "121" ]; then
+                    ch=$([ "${ch}" -lt "117" ] && echo "113" || echo "117")
+                    bw_str=$([ "${ch}" -le "115" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "129" ]; then
+                    ch=$([ "${ch}" -lt "125" ] && echo "121" || echo "125")
+                    bw_str=$([ "${ch}" -le "123" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "137" ]; then
+                    ch=$([ "${ch}" -lt "133" ] && echo "129" || echo "133")
+                    bw_str=$([ "${ch}" -le "131" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "145" ]; then
+                    ch=$([ "${ch}" -lt "141" ] && echo "137" || echo "141")
+                    bw_str=$([ "${ch}" -le "139" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "153" ]; then
+                    ch=$([ "${ch}" -lt "149" ] && echo "145" || echo "149")
+                    bw_str=$([ "${ch}" -le "147" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "161" ]; then
+                    ch=$([ "${ch}" -lt "157" ] && echo "153" || echo "157")
+                    bw_str=$([ "${ch}" -le "155" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "169" ]; then
+                    ch=$([ "${ch}" -lt "165" ] && echo "161" || echo "165")
+                    bw_str=$([ "${ch}" -le "163" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "177" ]; then
+                    ch=$([ "${ch}" -lt "173" ] && echo "169" || echo "173")
+                    bw_str=$([ "${ch}" -le "171" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "185" ]; then
+                    ch=$([ "${ch}" -lt "181" ] && echo "177" || echo "181")
+                    bw_str=$([ "${ch}" -le "179" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "193" ]; then
+                    ch=$([ "${ch}" -lt "189" ] && echo "185" || echo "189")
+                    bw_str=$([ "${ch}" -le "187" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "201" ]; then
+                    ch=$([ "${ch}" -lt "197" ] && echo "193" || echo "197")
+                    bw_str=$([ "${ch}" -le "195" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "209" ]; then
+                    ch=$([ "${ch}" -lt "205" ] && echo "201" || echo "205")
+                    bw_str=$([ "${ch}" -le "203" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "217" ]; then
+                    ch=$([ "${ch}" -lt "213" ] && echo "209" || echo "213")
+                    bw_str=$([ "${ch}" -le "211" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "225" ]; then
+                    ch=$([ "${ch}" -lt "221" ] && echo "217" || echo "221")
+                    bw_str=$([ "${ch}" -le "219" ] && echo "HT40+" || echo "HT40-")
+                elif [ ${ch} -lt "233" ]; then
+                    ch=$([ "${ch}" -lt "229" ] && echo "225" || echo "229")
+                    bw_str=$([ "${ch}" -le "227" ] && echo "HT40+" || echo "HT40-")
+                fi
+                ;;
+            "0")
+                local bw_str="HT20"
+                ;;
+        esac
+        local base_freq=5955
     fi
 
-    do_cmd "iw dev mon${phy_idx} set channel ${ch} ${bw_str}"
+    local control_freq=$(((ch - base_chan) * 5 + base_freq))
+    do_cmd "iw dev mon${phy_idx} set freq ${control_freq} ${bw_str}"
 }
 
 function convert_rxstat {
@@ -423,14 +610,7 @@
 # main start here
 
 if [[ ${interface} == "ra"* ]]; then
-    tmp=$(get_config "ATECTRLBANDIDX")
-    if [ ! -z "${tmp}" ]; then
-        interface="phy${tmp}"
-        phy_idx=${tmp}
-    else
-        interface="phy0"
-        phy_idx=0
-    fi
+    convert_interface $interface
 fi
 
 cmd=$(echo ${full_cmd} | sed s/=/' '/g | cut -d " " -f 1)