[packages_10.03.2] usb-modeswitch: merge r28104, r28465, r28555, r28559, r28872
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 4 Feb 2012 21:07:44 +0000 (21:07 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 4 Feb 2012 21:07:44 +0000 (21:07 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/branches/packages_10.03.2@30160 3c298f89-4303-0410-b956-a3cf2f4a3e73

utils/usb-modeswitch/Makefile
utils/usb-modeswitch/files/modeswitch.hotplug

index 411f0a5..c033c72 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2008-2010 OpenWrt.org
+# Copyright (C) 2008-2011 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=usb-modeswitch
-PKG_VERSION:=1.1.8
-PKG_RELEASE:=1
+PKG_VERSION:=1.2.0
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.draisberghof.de/usb_modeswitch
-PKG_MD5SUM:=1aaaa45e0465843e4973d7778bfbafbb
+PKG_MD5SUM:=1932ab96d6e3c5e0a6bdfac863338627
 
 include $(INCLUDE_DIR)/package.mk
 
index 1aecb1f..8042451 100644 (file)
@@ -120,7 +120,20 @@ if [ "$ACTION" = add ]; then
                # If a candidate is remaining, start usb-modeswitch
                [ -n "$configs" ] && {
                        log "$DEVICENAME: Selecting ${configs%% *} for mode switching"
-                       $modeswitch -c "${configs%% *}"
+                       # ugly workaround, but working for all hw we got for testing
+                       switching_done=0
+                       switching_tries=0
+                       local usb_dir="/sys/$DEVPATH"       
+                       [ -f "$usb_dir/idVendor" ] || usb_dir="${usb_dir%/*}"
+                       while [ $switching_done -lt 1 -a $switching_tries -le 6 ]; do
+                               $modeswitch -I -D -n -s 30 -c "${configs%% *}"
+                               if [ $(sanitize "$usb_dir/idProduct") = $uPid ]; then
+                                       log "switching seemingly failed"
+                               else
+                                       switching_done=1
+                               fi
+                               switching_tries=$(( $switching_tries + 1 ))
+                       done
                }
        }
 fi