From patchwork Mon Apr 27 22:37:14 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Bresticker X-Patchwork-Id: 6283891 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 066399F326 for ; Mon, 27 Apr 2015 22:41:46 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 26858202F8 for ; Mon, 27 Apr 2015 22:41:45 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 36F9A202F0 for ; Mon, 27 Apr 2015 22:41:44 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1YmrgF-0005tG-26; Mon, 27 Apr 2015 22:39:11 +0000 Received: from mail-yh0-f74.google.com ([209.85.213.74]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1YmrfE-0005MG-HZ for linux-arm-kernel@lists.infradead.org; Mon, 27 Apr 2015 22:38:10 +0000 Received: by yhzz6 with SMTP id z6so3878045yhz.0 for ; Mon, 27 Apr 2015 15:37:46 -0700 (PDT) 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=sg4yDgjKvsRKGtxG0JKQ2SLDfLgqk3o8cg4vsHeXVO0=; b=c0+k2V3sfUj3O6VSjer8MMZYhnM+6/jGmUiOgoaDrAiIyv0rjyTCCjmPi8BuRfiyTN rimA4MjeR77L3cF+8gzX4nSoTIDIkwN7FQmUExsUMpiCY8vc0tXxamRpIMd4NSQtGeks pHiIxTAnSEgQnsyCCJcfrsBOX6PXmSGUq85shnJyd55eLzRvF+61mQRWg7pmtPjYUVVB IH5J1UswFwxTh/sNprlkhItOkXRwEP3MGErpBhIErIqihSVOyd1VPjHgInwMmhLUxZ1N jaxu76k5kLFDpkPKw6zhEbLVhDa9R+AkvgTk1NCC/y4AC5C7t63gJ4sgIp17o38E3cZO hbVg== X-Gm-Message-State: ALoCoQlK3C2O2JDdwNP9/1RtOxSBbKSV77pqiCZM3cKunXaCgfmlz/o+v1hxYQ8p7ho+KduQlphD X-Received: by 10.236.231.138 with SMTP id l10mr24321508yhq.32.1430174266760; Mon, 27 Apr 2015 15:37:46 -0700 (PDT) Received: from corpmail-nozzle1-1.hot.corp.google.com ([100.108.1.104]) by gmr-mx.google.com with ESMTPS id r25si1171657yho.3.2015.04.27.15.37.45 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Apr 2015 15:37:46 -0700 (PDT) Received: from abrestic.mtv.corp.google.com ([172.22.65.70]) by corpmail-nozzle1-1.hot.corp.google.com with ESMTP id Gf7YMPB9.1; Mon, 27 Apr 2015 15:37:46 -0700 Received: by abrestic.mtv.corp.google.com (Postfix, from userid 137652) id A3050A49BE; Mon, 27 Apr 2015 15:37:45 -0700 (PDT) From: Andrew Bresticker To: Stephen Warren , Thierry Reding , Alexandre Courbot Subject: [PATCH V7 1/9] xhci: Set shared HCD's hcd_priv in xhci_gen_setup Date: Mon, 27 Apr 2015 15:37:14 -0700 Message-Id: <1430174242-29465-2-git-send-email-abrestic@chromium.org> X-Mailer: git-send-email 2.2.0.rc0.207.ga3a616c In-Reply-To: <1430174242-29465-1-git-send-email-abrestic@chromium.org> References: <1430174242-29465-1-git-send-email-abrestic@chromium.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20150427_153808_736210_8439B82B X-CRM114-Status: GOOD ( 13.25 ) X-Spam-Score: -0.7 (/) Cc: devicetree@vger.kernel.org, Mathias Nyman , Andrew Bresticker , Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP xhci_gen_setup() sets the hcd_priv field for the primary HCD, but not for the shared HCD, requiring xHCI host-controller drivers to set it between usb_create_shared_hcd() and usb_add_hcd(). There's no reason xhci_gen_setup() can't set the shared HCD's hcd_priv as well, so move that bit out of the host-controller drivers and into xhci_gen_setup(). Signed-off-by: Andrew Bresticker Reviewed-by: Felipe Balbi Cc: Mathias Nyman Cc: Greg Kroah-Hartman --- No changes from v5/v6. New for v5. Peviously posted here: https://lkml.org/lkml/2014/10/30/726 --- drivers/usb/host/xhci-pci.c | 5 ----- drivers/usb/host/xhci-plat.c | 5 ----- drivers/usb/host/xhci.c | 6 +++--- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c index 2af32e2..f9ce741 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c @@ -247,11 +247,6 @@ static int xhci_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) goto dealloc_usb2_hcd; } - /* Set the xHCI pointer before xhci_pci_setup() (aka hcd_driver.reset) - * is called by usb_add_hcd(). - */ - *((struct xhci_hcd **) xhci->shared_hcd->hcd_priv) = xhci; - retval = usb_add_hcd(xhci->shared_hcd, dev->irq, IRQF_SHARED); if (retval) diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index 783e819..852b1e9 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -147,11 +147,6 @@ static int xhci_plat_probe(struct platform_device *pdev) if ((node && of_property_read_bool(node, "usb3-lpm-capable")) || (pdata && pdata->usb3_lpm_capable)) xhci->quirks |= XHCI_LPM_SUPPORT; - /* - * Set the xHCI pointer before xhci_plat_setup() (aka hcd_driver.reset) - * is called by usb_add_hcd(). - */ - *((struct xhci_hcd **) xhci->shared_hcd->hcd_priv) = xhci; if (HCC_MAX_PSA(xhci->hcc_params) >= 4) xhci->shared_hcd->can_do_streams = 1; diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index ec8ac16..2901a67 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -4849,9 +4849,9 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks) */ hcd->has_tt = 1; } else { - /* xHCI private pointer was set in xhci_pci_probe for the second - * registered roothub. - */ + xhci = hcd_to_xhci(hcd->primary_hcd); + *((struct xhci_hcd **) hcd->hcd_priv) = xhci; + return 0; }