Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965929AbcJYM61 (ORCPT ); Tue, 25 Oct 2016 08:58:27 -0400 Received: from mga04.intel.com ([192.55.52.120]:29749 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932241AbcJYM60 (ORCPT ); Tue, 25 Oct 2016 08:58:26 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,545,1473145200"; d="scan'208";a="893732841" Subject: Re: [PATCH v2] usb: xhci: Don't drive port 2.0 reset while resuming To: Sriram Dash , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org References: <1477392341-5942-1-git-send-email-sriram.dash@nxp.com> Cc: mathias.nyman@intel.com, gregkh@linuxfoundation.org, suresh.gupta@nxp.com, felipe.balbi@linux.intel.com, stern@rowland.harvard.edu, Rajat Srivastava , Rajesh Bhagat From: Mathias Nyman Message-ID: <580F5704.7030605@linux.intel.com> Date: Tue, 25 Oct 2016 15:58:44 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <1477392341-5942-1-git-send-email-sriram.dash@nxp.com> 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: 1078 Lines: 27 On 25.10.2016 13:45, Sriram Dash wrote: > For the USB3.0 controller, USB 2.0 reset not driven while > port is in Resume state. So, do not program the USB 2.0 reset > (PORTSC[PR]=1) while in Resume state. > > Signed-off-by: Rajat Srivastava > Signed-off-by: Sriram Dash > Signed-off-by: Rajesh Bhagat > --- What is the actual issue that you are fixing here? Is there some device that is in resume (PLS==XDEV_RESUME) while driving reset? I just sent a pach for increasing the resume time signaling to 40ms when clearing the PORT_FEAT_SUSPEND. Does that work for you? If not, then we should look closer at why clearing the suspend does not work properly. One issue could be that ClearPortFeature PORT_FEAT_SUSPEND does not really read or wait for for changes in port status. It blindly sets the states based on time passed. Or if it's after system suspend there might be something in bus_resume that is not working. I don't think usb core tries to drive reset while port is still resuming -Mathias