Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967404AbdCYHVw (ORCPT ); Sat, 25 Mar 2017 03:21:52 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:36715 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965222AbdCYHVm (ORCPT ); Sat, 25 Mar 2017 03:21:42 -0400 Subject: Re: [PATCH] usb-musb: keep VBUS on when device is disconnected To: Bin Liu , Moreno Bartalucci , "linux-omap@vger.kernel.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Alessio Igor Bogani References: <20170315140801.97230-1-moreno.bartalucci@tecnorama.it> <20170324185836.GC19814@uda0271908> From: Lars Melin Message-ID: <2d10809f-d482-ffa9-30b7-8785e94ab102@gmail.com> Date: Sat, 25 Mar 2017 14:21:33 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170324185836.GC19814@uda0271908> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1424 Lines: 35 On 2017-03-25 01:58, Bin Liu wrote: > On Wed, Mar 15, 2017 at 09:08:01AM -0500, Moreno Bartalucci wrote: >> With usb-musb port in host mode, when the device >> is disconnected, either logically (because of a mode switch) or >> physically (by pulling the cable), the USB port should keep >> suppling VBUS, with no interruption, to prevent power loss on >> USB powered devices. > > The usb device has been disconnected, why it still cares about VBUS > power? Morphing devices (3G dongles, wifi dongles, some printers) boots up in install mode, usually only as a virtual cd-rom containing Windows drivers and software. They get switched into functional mode by usb_modeswitch sending them a ctrl msg which makes the device disappear from the USB bus for a very short time after which it re-appears with a different interface composition and mostly also a different USB Id. Cutting the VBUS supply while these devices are in progress of switching will inhibit switching, the device will reboot when VBUS is again asserted and will come up in initial mode as if no switch ctrl msg had ever been sent to it. The problem has been seen both on host only as well as dual-role port configs. Dual-role may be a bit more complicated to solve because of the role switching VBUS detection circuit but I can not see any reason why a host only configured port should cut the VBUS supply, it could be always on right? /Lars