From aae7b4984c6a136bc6eb3716673dcbd0a5101f51 Mon Sep 17 00:00:00 2001 From: Amit Pundir Date: Tue, 7 Jun 2016 19:35:23 +0530 Subject: [PATCH] init: usb: delete rndis func to unregister n/w interface Rndis n/w interface "usb0" registration/deregistration is broken. If a user try to switch to other functions or disable usb tethering or unplug the usb cable then it doesn't kill "usb0" interface. Fix is to delete Rndis function to unregister tethering interface when switching from tethering to other functions or disable/unplug the tethering cable. If we don't do that then the rndis netdev interface will never be freed or unregistered. This also means the rndis function has to be created everytime user enable tethering function from Settings instead of creating it at "on boot" in init.$hardware.usb.rc like we do currently. A relevant fix, Change-Id: Icb49020d624fb21ef2607d473948cbbf3b9cc469, for reference has already been submitted for device/linaro/hikey Change-Id: If1f922e02277cccdc8c0b263be63989ee102cc80 Reported-by: Winter Wang Signed-off-by: Amit Pundir --- rootdir/init.usb.configfs.rc | 51 +++++------------------------------- 1 file changed, 6 insertions(+), 45 deletions(-) diff --git a/rootdir/init.usb.configfs.rc b/rootdir/init.usb.configfs.rc index e19b05824..dc875b4f0 100644 --- a/rootdir/init.usb.configfs.rc +++ b/rootdir/init.usb.configfs.rc @@ -5,6 +5,10 @@ on property:sys.usb.config=none && property:sys.usb.configfs=1 write /config/usb_gadget/g1/bDeviceClass 0 write /config/usb_gadget/g1/bDeviceSubClass 0 write /config/usb_gadget/g1/bDeviceProtocol 0 + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rmdir /config/usb_gadget/g1/functions/rndis.gs4 setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=adb && property:sys.usb.configfs=1 @@ -12,18 +16,12 @@ on property:sys.usb.config=adb && property:sys.usb.configfs=1 on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} @@ -33,9 +31,6 @@ on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} @@ -43,9 +38,6 @@ on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:s on property:sys.usb.config=ptp && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/ptp.gs1 /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} @@ -55,9 +47,6 @@ on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1 on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/ptp.gs1 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} @@ -65,9 +54,6 @@ on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && property:s on property:sys.usb.config=accessory && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "accessory" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/accessory.gs2 /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} @@ -77,9 +63,6 @@ on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1 on property:sys.usb.ffs.ready=1 && property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "accessory_adb" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/accessory.gs2 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} @@ -87,9 +70,6 @@ on property:sys.usb.ffs.ready=1 && property:sys.usb.config=accessory,adb && prop on property:sys.usb.config=audio_source && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "audiosource" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/audio_source.gs2 /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} @@ -99,9 +79,6 @@ on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1 on property:sys.usb.ffs.ready=1 && property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "audiosource_adb" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/audio_source.gs2 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} @@ -109,9 +86,6 @@ on property:sys.usb.ffs.ready=1 && property:sys.usb.config=audio_source,adb && p on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "accessory_audiosource" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/accessory.gs2 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/audio_source.gs3 /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} @@ -122,9 +96,6 @@ on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.config on property:sys.usb.ffs.ready=1 && property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "accessory_audiosource_adb" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/accessory.gs2 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/audio_source.gs3 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 @@ -133,9 +104,6 @@ on property:sys.usb.ffs.ready=1 && property:sys.usb.config=accessory,audio_sourc on property:sys.usb.config=midi && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/midi.gs5 /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} @@ -145,19 +113,14 @@ on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1 on property:sys.usb.ffs.ready=1 && property:sys.usb.config=midi,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi_adb" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/midi.gs5 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis && property:sys.usb.configfs=1 + mkdir /config/usb_gadget/g1/functions/rndis.gs4 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} @@ -166,10 +129,8 @@ on property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1 + mkdir /config/usb_gadget/g1/functions/rndis.gs4 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb" - rm /config/usb_gadget/g1/configs/b.1/f1 - rm /config/usb_gadget/g1/configs/b.1/f2 - rm /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller}