From patchwork Tue Oct 18 01:56:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Boyd X-Patchwork-Id: 9381043 X-Patchwork-Delegate: agross@codeaurora.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 905C66086B for ; Tue, 18 Oct 2016 01:58:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 787B428CCF for ; Tue, 18 Oct 2016 01:58:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6C54228CD7; Tue, 18 Oct 2016 01:58:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1032528CCF for ; Tue, 18 Oct 2016 01:58:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936503AbcJRB5L (ORCPT ); Mon, 17 Oct 2016 21:57:11 -0400 Received: from mail-pa0-f45.google.com ([209.85.220.45]:33492 "EHLO mail-pa0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935869AbcJRB4r (ORCPT ); Mon, 17 Oct 2016 21:56:47 -0400 Received: by mail-pa0-f45.google.com with SMTP id vu5so66504949pab.0 for ; Mon, 17 Oct 2016 18:56:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=TT89TRkCUUNi5+eX08VfuJcfTYKf/4LQ/20QdvWg87E=; b=OqbzzJXoUIO7FHEuK9U+pPy3jL1qlqgU4Ldu/fSfB/yTtciR711keQYSxx3bzQoQh9 lMZj0+nhcOh300VpA88Yl4dl9SCNJ3RnZ5jBO11gx2goX/lViWcpxb8aaj3FrKav/r06 i7K3FcHQGRXmHfuaUzwD42xXjIBz7wegF4uAs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=TT89TRkCUUNi5+eX08VfuJcfTYKf/4LQ/20QdvWg87E=; b=XKPXFBQiBdsc1/j9AYfXQzD06juy2GZtmtW56CGl/5Flr37mEOLaOEYZDVBXjJNfFS sR+01HCqc7U/Oj1FuUBRn6+tLtWgq0udzCLXpzqwYnKXa3H4QpaxUif9jF9z2Ila3iQ9 QqVZbd9/BcbvTlMQov8TlD5ruZRPKAWkHUdwK0ZjX8ZrXcV4BoLtG1HRQJ8LkMV31A6/ ii1ZCn+sQF/5/ikGbk1c8/8sIv+REqdWbOKlnITz2EGnv4ixTVN3VuVJtTjlHfv6DQXY 2LTcTo8Hfga6NE+AXuRa9aBBQQxtfI42WzFQ18nuBVAXATkl8Wa3/1RxMfHegHPdcbW0 mmMw== X-Gm-Message-State: AA6/9Rm7T1Q5MQd9s0jjnuPF5ALEsmW554fN3EoHZYedDdQmEXzIlCR4vwxiHnuatLCIfeDE X-Received: by 10.66.88.40 with SMTP id bd8mr606566pab.6.1476755806726; Mon, 17 Oct 2016 18:56:46 -0700 (PDT) Received: from localhost.localdomain (i-global254.qualcomm.com. [199.106.103.254]) by smtp.gmail.com with ESMTPSA id j6sm51020430paa.44.2016.10.17.18.56.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 17 Oct 2016 18:56:46 -0700 (PDT) From: Stephen Boyd To: linux-usb@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Andy Gross , Bjorn Andersson , Neil Armstrong , Arnd Bergmann , Felipe Balbi , Peter Chen , Greg Kroah-Hartman Subject: [PATCH v5 07/23] usb: chipidea: Notify events when switching host mode Date: Mon, 17 Oct 2016 18:56:20 -0700 Message-Id: <20161018015636.11701-8-stephen.boyd@linaro.org> X-Mailer: git-send-email 2.10.0.297.gf6727b0 In-Reply-To: <20161018015636.11701-1-stephen.boyd@linaro.org> References: <20161018015636.11701-1-stephen.boyd@linaro.org> Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The chipidea/udc.c file sends a CI_HDRC_CONTROLLER_RESET_EVENT to the wrapper drivers when it calls hw_device_reset(), but that function is not called from chipidea/host.c. And the udc.c file sends the CI_HDRC_CONTROLLER_STOPPED_EVENT but the host.c file doesn't do anything. The intent of the reset event is to allow the wrapper driver to do any wrapper specific things after the reset bit has been set in the usb command register. Therefore, add this event hook in the host role after we toggle that bit. Similarly, the intent of the stopped event is to allow the wrapper driver to do any wrapper specific things after the device is stopped. So when we stop the host role, send the stopped event. Acked-by: Peter Chen Cc: Greg Kroah-Hartman Signed-off-by: Stephen Boyd --- drivers/usb/chipidea/host.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c index 96ae69502c86..f036a9e39ced 100644 --- a/drivers/usb/chipidea/host.c +++ b/drivers/usb/chipidea/host.c @@ -90,6 +90,9 @@ static int ehci_ci_reset(struct usb_hcd *hcd) ehci->need_io_watchdog = 0; + if (ci->platdata->notify_event) + ci->platdata->notify_event(ci, CI_HDRC_CONTROLLER_RESET_EVENT); + ci_platform_configure(ci); return ret; @@ -187,6 +190,9 @@ static void host_stop(struct ci_hdrc *ci) struct usb_hcd *hcd = ci->hcd; if (hcd) { + if (ci->platdata->notify_event) + ci->platdata->notify_event(ci, + CI_HDRC_CONTROLLER_STOPPED_EVENT); usb_remove_hcd(hcd); usb_put_hcd(hcd); if (ci->platdata->reg_vbus && !ci_otg_is_fsm_mode(ci) &&