From: Jo-Philipp Wich Date: Sat, 4 Feb 2012 21:07:44 +0000 (+0000) Subject: [packages_10.03.2] usb-modeswitch: merge r28104, r28465, r28555, r28559, r28872 X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;hb=30f7f9cbf3cd956184bd89f11dbbdfe4fe35a41e [packages_10.03.2] usb-modeswitch: merge r28104, r28465, r28555, r28559, r28872 SVN-Revision: 30160 --- diff --git a/utils/usb-modeswitch/Makefile b/utils/usb-modeswitch/Makefile index 411f0a5eab..c033c72914 100644 --- a/utils/usb-modeswitch/Makefile +++ b/utils/usb-modeswitch/Makefile @@ -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 diff --git a/utils/usb-modeswitch/files/modeswitch.hotplug b/utils/usb-modeswitch/files/modeswitch.hotplug index 1aecb1fb31..8042451373 100644 --- a/utils/usb-modeswitch/files/modeswitch.hotplug +++ b/utils/usb-modeswitch/files/modeswitch.hotplug @@ -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