Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp663681ybg; Wed, 10 Jun 2020 10:19:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzcs6HFwgRqSvIw67i5aWcyVI6OQb5SfXyGvGq/zloA+39mAUWL/2cF49Gx8hnKe2fOinYR X-Received: by 2002:a17:906:27c5:: with SMTP id k5mr4355004ejc.251.1591809561033; Wed, 10 Jun 2020 10:19:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591809561; cv=none; d=google.com; s=arc-20160816; b=UoodWQl2s6nbcI/OperffbA09k4sC0dh0YLHH7PVTtCI4GnCh6hoLscE2KeOLWdA+q cViZqRvir7q+qmoeENYX+BT9KvNoPjIsV/rE+0YXnwdRaiYi2c6YWkNcl2vVG0nBJsi7 RZ8CkSOJ6/tTVXlrBbsiD3yck5hoEAR95yzaQQtPT5db9shUxsMbHestA5ELSAmPkqw8 46TbEaX1zO5lAPJucvjIK+So1qiD5JUbgabjR0ngRjDFBQa5Has8RKQHBwakQ/HijJOv Fly3V0wzA/jNu1mYgvW1Zt0NSKtNZ28kGllamIGbZUaaE9Wysh7xzELAJxQlbA29qx2x Ww2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:from:references:cc:to:subject :ironport-sdr:ironport-sdr; bh=DAGZHLXCxbGPXtvCNlNC34qoMB7TcGRSiaJUOf0bMcY=; b=yvaw/4RntN/p3S13U9eLZ+FGjGkVnHH82pcbDp9K+PS6md4fqPXT6D6TGXRIAFShbc Kh20dxegXJ5f6AIa53AJqHYLQTM+H3SR5P5nEKbV0f4dxYmfQzo3xBNDH2TXqYF8u8Ju fdJBs1KRis87yYt+HmDjKl4op2SEu8nJHi9cJbXrnmjdmrjGKBPciorRKLApR1ybd4cN 3KF3MOabW8i1pev+pV4w7R8abX1uBgrzKoZBtjs6kgRZmTIzKmZvZfcEbT9QVGflx410 LfWBFsY8hmDiZa30/ut+0G/bmoInJuAAWMYOqjhq9Xd7Ue6gSAmLi6dlvs1eoS6BXAvb lASw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c16si143432edv.438.2020.06.10.10.18.57; Wed, 10 Jun 2020 10:19:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728753AbgFJPzn (ORCPT + 99 others); Wed, 10 Jun 2020 11:55:43 -0400 Received: from mga03.intel.com ([134.134.136.65]:40297 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728431AbgFJPzn (ORCPT ); Wed, 10 Jun 2020 11:55:43 -0400 IronPort-SDR: 9TlXgGqaoEoIKgy71D0hDVuSNFO8dK4E6MBgE8rdD4yf6RvaFhfTdZt7kcbXdi4I4k69w3m02Y X2dEH8BnePDQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2020 08:55:42 -0700 IronPort-SDR: 9efg9fGoGODP1xTvJB+I/1ydlZnUayQEJ29ZCA7cJuOSoGkrIs1OcW/SLl7fnbmRfgQN+MXDi3 fpYNDBB6OclA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,496,1583222400"; d="scan'208";a="271282719" Received: from mattu-haswell.fi.intel.com (HELO [10.237.72.170]) ([10.237.72.170]) by orsmga003.jf.intel.com with ESMTP; 10 Jun 2020 08:55:40 -0700 Subject: Re: [PATCH 1/2] xhci: Suspend ports to U3 directly from U1 or U2 To: Kai-Heng Feng , Alan Stern Cc: Mathias Nyman , Greg Kroah-Hartman , "open list:USB XHCI DRIVER" , open list References: <20200610064231.9454-1-kai.heng.feng@canonical.com> <20200610143220.GC11727@rowland.harvard.edu> <591D2A1F-9645-4B0B-896C-99544F06DFAA@canonical.com> From: Mathias Nyman Openpgp: preference=signencrypt Autocrypt: addr=mathias.nyman@linux.intel.com; prefer-encrypt=mutual; keydata= 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 fiD/ Message-ID: <9d7842de-9813-becd-80a0-a422e59c1e94@linux.intel.com> Date: Wed, 10 Jun 2020 18:58:41 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <591D2A1F-9645-4B0B-896C-99544F06DFAA@canonical.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10.6.2020 18.43, Kai-Heng Feng wrote: > > >> On Jun 10, 2020, at 22:32, Alan Stern wrote: >> >> On Wed, Jun 10, 2020 at 02:42:30PM +0800, Kai-Heng Feng wrote: >>> xHCI spec "4.15.1 Port Suspend" states that port can be put to U3 as long >>> as Enabled bit is set and from U0, U1 or U2 state. >>> >>> Currently only USB_PORT_FEAT_LINK_STATE puts port to U3 directly, let's >>> do the same for USB_PORT_FEAT_SUSPEND and bus suspend case. >>> >>> This is particularly useful for USB2 devices, which may take a very long >>> time to switch USB2 LPM on and off. >> >> Have these two patches been tested with a variety of USB-2.0 and USB-2.1 >> devices? > > I tested some laptops around and they work fine. > Only internally connected USB devices like USB Bluetooth and USB Camera have USB2 LPM enabled, so this patch won't affect external connected devices. > Took a fresh look at the USB2 side and it's not as clear as the USB3 case, where we know the hub must support transition to U3 from any other state. [1] Supporting link state transition to U3 (USB2 L2) from any other U state for USB2 seems to be xHCI specific feature. xHC hardware will make sure it goes via the U0 state. I have no clue about other hosts (or hubs), USB2 LPM ECN just shows that link state transitions to L1 or L2 should always goes via L0. It's possible this has to be done in software by disabling USB2 LPM before suspending the device. So I guess the original suggestion to wait for link state to reach U0 before is a better solution. Sorry about my hasty suggestion. Kai-Heng, does it help if you fist manually set the link to U0 before disabling USB2 LPM (set PLS to 0 before clearing the HLE bit). Does it transition to U0 any faster, or get rid of the extra port event with PLC:U0? -Mathias [1] USB3.1 spec (10.16.2.10) Set Port feature: "If the value is 3, then host software wants to selectively suspend the device connected to this port. The hub shall transition the link to U3 from any of the other U states using allowed link state transitions. If the port is not already in the U0 state, then it shall transition the port to the U0 state and then initiate the transition to U3.