From patchwork Mon May 4 17:36:34 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Bresticker X-Patchwork-Id: 6328971 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 42A9C9F1C2 for ; Mon, 4 May 2015 17:40:20 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 59F2C200F2 for ; Mon, 4 May 2015 17:40:19 +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 69BAC200E6 for ; Mon, 4 May 2015 17:40:18 +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 1YpKJG-0003JC-6U; Mon, 04 May 2015 17:37:38 +0000 Received: from mail-ig0-f201.google.com ([209.85.213.201]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1YpKIo-0002je-KU for linux-arm-kernel@lists.infradead.org; Mon, 04 May 2015 17:37:11 +0000 Received: by igdh15 with SMTP id h15so7460579igd.0 for ; Mon, 04 May 2015 10:36:49 -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=3DfDtikyD9rs1wRZvNObeIwDGDQ/mUiLqTeMsrcsoS0=; b=b0OiSKjh2NJ1mKAsIhaS+r3GQzcHTt6ie6IHhBqZoC8Utgz9ZKtlre9DAZVyU6k1Zk GyQNGSIB87COOhWVgrntl66uZaWZH72bJFdbWaT+19HDpnT1/GH1fhuQHoHdE/JOtJAV EUDzcXXjK0z7RQX94wDqWKh+HJgET87i5HKo6M5D1DVKWiD3EURBXb4qqEJPt5zRrP9t yZJUTEo2VMgQQTX2WxUfnDfp1vY6NvJJBa+1F+i08h+iI6oQlkKDPRCSlUsxWbHoULtZ NT0ntZbvV9NGlFRiCyjG2KaSIyqAbjUp+SzN6DvNl0i7oUIij7oZHDkjfpds07wBnSGR mGGQ== X-Gm-Message-State: ALoCoQmUImC8u2HhDNNBKU7/81mPx3qIrTT9Dm2s/wXfNMmWzVOdq+fpLtCMk393TyFIMC9ahTbE X-Received: by 10.42.129.20 with SMTP id o20mr47881175ics.19.1430761009113; Mon, 04 May 2015 10:36:49 -0700 (PDT) Received: from corpmail-nozzle1-2.hot.corp.google.com ([100.108.1.103]) by gmr-mx.google.com with ESMTPS id o5si726862yhd.5.2015.05.04.10.36.48 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 04 May 2015 10:36:49 -0700 (PDT) Received: from abrestic.mtv.corp.google.com ([172.22.65.70]) by corpmail-nozzle1-2.hot.corp.google.com with ESMTP id hO1nkAvL.1; Mon, 04 May 2015 10:36:49 -0700 Received: by abrestic.mtv.corp.google.com (Postfix, from userid 137652) id E9F35A4910; Mon, 4 May 2015 10:36:47 -0700 (PDT) From: Andrew Bresticker To: Stephen Warren , Thierry Reding , Alexandre Courbot Subject: [PATCH v8 1/9] xhci: Set shared HCD's hcd_priv in xhci_gen_setup Date: Mon, 4 May 2015 10:36:34 -0700 Message-Id: <1430761002-9327-2-git-send-email-abrestic@chromium.org> X-Mailer: git-send-email 2.2.0.rc0.207.ga3a616c In-Reply-To: <1430761002-9327-1-git-send-email-abrestic@chromium.org> References: <1430761002-9327-1-git-send-email-abrestic@chromium.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20150504_103710_751516_114BB0F6 X-CRM114-Status: GOOD ( 13.43 ) 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, Jon Hunter , 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/v7. 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; }