brcm47xx: improve cpuport detection for filesafe
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 16 Feb 2013 16:24:15 +0000 (16:24 +0000)
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 16 Feb 2013 16:24:15 +0000 (16:24 +0000)
Do not try to load bcm57xx.ko any more this is not needed for kernel 2.6 and 3.X
Ask the switch driver where the CPU port is.

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35624 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm

index 1275b03..e85dd49 100644 (file)
@@ -14,7 +14,6 @@ set_preinit_iface() {
        # hardware specific overrides
        case "$(cat /proc/diag/model)" in
                "Linksys WAP54G V1") ifname=eth1;;
-               "Linksys E3000 V1"|"Linksys WRT610N V2") cpu_port="8u*";;
                "ASUS WL-HDD") ifname=eth1;;
                "ASUS WL-300g") ifname=eth1;;
                "ASUS (unknown, BCM4702)") ifname=eth1;;
@@ -23,20 +22,17 @@ set_preinit_iface() {
        ifconfig $ifname 0.0.0.0 up
 }
 
-check_module () {
-  module="$1"; shift; params="$*"
-
-  insmod "$module" "$params"
-  sleep 1
-  grep -q ^"$module " /proc/modules
-  return $?
-}
-
 init_iface() {
        insmod switch-core
-       check_module switch-robo || check_module switch-adm  || {
-         check_module bcm57xx activate_gpio=0x4 && cpu_port="8u*"
-       } || rmmod switch-core
+       insmod switch-robo
+       insmod switch-adm
+
+       [ -d /proc/switch/eth0 ] && [ "$ifname" = "eth0" ] && {
+               case "$(cat /proc/switch/eth0/cpuport)" in
+                       "5") cpu_port="5u*";;
+                       "8") cpu_port="8u*";;
+               esac
+       }
 }
 
 boot_hook_add preinit_main set_preinit_iface