From patchwork Thu Jan 25 00:16:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Blumenstingl X-Patchwork-Id: 10183423 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 DAA8D601D5 for ; Thu, 25 Jan 2018 00:17:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D0DD026BE9 for ; Thu, 25 Jan 2018 00:17:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C576028161; Thu, 25 Jan 2018 00:17:40 +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=-4.2 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5A02026BE9 for ; Thu, 25 Jan 2018 00:17:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=BqjR50aj0mnhVWp8VY9fSp1GddeTHG14nw863CJY2/Y=; b=NvupBH1VmggUtjjXMaTCHbK41R g8PDqxjKnwcyK7HxxlywOCWSkRj+IFnpiR5OA6T5gGQ3RQOyEHbTrx/xV+mnfNtHhDZ2xLYAsMzpu qZcedqLXwAAbpxGyFCizVhnvsC16sRvKYP30+fvUYMdx5BXMVug7hDe/uFYE8EsvzwwOfvp8JUlUq Kq2L7v9RaAmkEbXCiGJyQtUEc546/GRPcf+JzuKm+acMNzp2BdAlTNXlu3k7ZOul82E2axrsQkBp7 jKjcQ+n4hF7fHy+NV65cHO/iKcHtPyHw093ddle7ffbtGC3+ZiJToC1Jvyw/mi9ONpYugVzKuqlUK 4Ypftkdw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.89 #1 (Red Hat Linux)) id 1eeVEY-0001Tb-BH; Thu, 25 Jan 2018 00:17:38 +0000 Received: from mail-wr0-x241.google.com ([2a00:1450:400c:c0c::241]) by bombadil.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1eeVDz-0000my-40; Thu, 25 Jan 2018 00:17:08 +0000 Received: by mail-wr0-x241.google.com with SMTP id w50so353534wrc.2; Wed, 24 Jan 2018 16:16:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=xghhlQk/8/okyEjYxTkoTZ8D1/iMJq5yZ0MqXeZlvhM=; b=m3xQkhlNzmrT+iBTiBnQQIKbXpga2K3XX3v6PjeWkDEGm0WSlNKSyWVZg8QBOg1+KN 4btbFYA6KvQuSVsKWuv4Cye3Da8uVkRRA0GmUp/LVmdKg6E6QeuB32546V3mQxfscbH/ zcaIDmQhPCHIsBlSxY6ULanx9vfYRiSQtICSUbCLghpjAAEcFwXWvTT6UplPuk0RY8hR j71qKjuB5YB0cKYzPLOogOuFSCKo1lMRv9EXt//zvvCUmvivUTEQfN7IeO+BOLovQwx+ wpiow4HAhQ2jgmNCIvhGSIOeuOpGG+w2d9Yfdqk/iLsjjbvrTSTK4MEk4tzfcs7RtUbQ G0Vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=xghhlQk/8/okyEjYxTkoTZ8D1/iMJq5yZ0MqXeZlvhM=; b=VeDeLmoNnoNpzwP/evt/fU3hQDkxMnsKckqZJ5dE9YUAmxDoKUS/rQtpzUokTPhhul qrYHVe6s0qa2FR/KVI4RC/OXnqbGMbplnkq5P+U/7ktvDME8v4yE58LV5ahnBAv4fmhs n1D/HypFsy7mO9WaBReL78Iw+EWomWabRAgvSziu9BXEDKahu5f2fTPFsg+qa0KrlvaX XXqG4uM9NMzi/vfJSX0Bd3uzvYoZjt9tDZVanN6AReXShEDjLcfOjBpxWPNQPRAIOe1n hYvnSLuDyUG6sMtbtb0cYPjSLmga5Xcv5eT6zJEWn3DZUDQqi1hI5qwMBJE8Da6O3Bdq a8ng== X-Gm-Message-State: AKwxytfraQkkT2runItXbs3uj1Q9qZcH50ovWuOExYuGsvNcn2vRZ+rY Z+fP9jGdRtjBDfhqirggZBA= X-Google-Smtp-Source: AH8x224yLLYkZ0Z7mxlt501RGCL4zLx6KI+ETsMvBgfqX+jlPX9CcYaHXtNA8A4m6ZkwZgYLrkik1A== X-Received: by 10.223.131.166 with SMTP id 35mr6609155wre.221.1516839411096; Wed, 24 Jan 2018 16:16:51 -0800 (PST) Received: from blackbox.darklights.net (p5DD9B1B3.dip0.t-ipconnect.de. [93.217.177.179]) by smtp.googlemail.com with ESMTPSA id e15sm1699159wmd.26.2018.01.24.16.16.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Jan 2018 16:16:50 -0800 (PST) From: Martin Blumenstingl To: linux-usb@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, chunfeng.yun@mediatek.com, matthias.bgg@gmail.com, linux@prisktech.co.nz, Peter.Chen@nxp.com Subject: [RFC/RFT usb-next v1 2/6] usb: host: xhci-mtk: remove custom USB PHY handling Date: Thu, 25 Jan 2018 01:16:35 +0100 Message-Id: <20180125001639.14681-3-martin.blumenstingl@googlemail.com> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180125001639.14681-1-martin.blumenstingl@googlemail.com> References: <20180125001639.14681-1-martin.blumenstingl@googlemail.com> X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Martin Blumenstingl , gregkh@linuxfoundation.org, stern@rowland.harvard.edu, mathias.nyman@intel.com MIME-Version: 1.0 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The new PHY wrapper is now wired up in the core HCD code. This means that PHYs are now controlled (initialized, enabled, disabled, exited) without requiring any host-driver specific code. Remove the custom USB PHY handling from the xhci-mtk driver as the core HCD code now handles this. Signed-off-by: Martin Blumenstingl --- drivers/usb/host/xhci-mtk.c | 98 +-------------------------------------------- 1 file changed, 2 insertions(+), 96 deletions(-) diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c index b0ab4d5e2751..7334da9e9779 100644 --- a/drivers/usb/host/xhci-mtk.c +++ b/drivers/usb/host/xhci-mtk.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -352,62 +351,6 @@ static const struct xhci_driver_overrides xhci_mtk_overrides __initconst = { static struct hc_driver __read_mostly xhci_mtk_hc_driver; -static int xhci_mtk_phy_init(struct xhci_hcd_mtk *mtk) -{ - int i; - int ret; - - for (i = 0; i < mtk->num_phys; i++) { - ret = phy_init(mtk->phys[i]); - if (ret) - goto exit_phy; - } - return 0; - -exit_phy: - for (; i > 0; i--) - phy_exit(mtk->phys[i - 1]); - - return ret; -} - -static int xhci_mtk_phy_exit(struct xhci_hcd_mtk *mtk) -{ - int i; - - for (i = 0; i < mtk->num_phys; i++) - phy_exit(mtk->phys[i]); - - return 0; -} - -static int xhci_mtk_phy_power_on(struct xhci_hcd_mtk *mtk) -{ - int i; - int ret; - - for (i = 0; i < mtk->num_phys; i++) { - ret = phy_power_on(mtk->phys[i]); - if (ret) - goto power_off_phy; - } - return 0; - -power_off_phy: - for (; i > 0; i--) - phy_power_off(mtk->phys[i - 1]); - - return ret; -} - -static void xhci_mtk_phy_power_off(struct xhci_hcd_mtk *mtk) -{ - unsigned int i; - - for (i = 0; i < mtk->num_phys; i++) - phy_power_off(mtk->phys[i]); -} - static int xhci_mtk_ldos_enable(struct xhci_hcd_mtk *mtk) { int ret; @@ -488,8 +431,6 @@ static int xhci_mtk_probe(struct platform_device *pdev) struct xhci_hcd *xhci; struct resource *res; struct usb_hcd *hcd; - struct phy *phy; - int phy_num; int ret = -ENODEV; int irq; @@ -529,16 +470,6 @@ static int xhci_mtk_probe(struct platform_device *pdev) return ret; } - mtk->num_phys = of_count_phandle_with_args(node, - "phys", "#phy-cells"); - if (mtk->num_phys > 0) { - mtk->phys = devm_kcalloc(dev, mtk->num_phys, - sizeof(*mtk->phys), GFP_KERNEL); - if (!mtk->phys) - return -ENOMEM; - } else { - mtk->num_phys = 0; - } pm_runtime_enable(dev); pm_runtime_get_sync(dev); device_enable_async_suspend(dev); @@ -596,23 +527,6 @@ static int xhci_mtk_probe(struct platform_device *pdev) mtk->has_ippc = false; } - for (phy_num = 0; phy_num < mtk->num_phys; phy_num++) { - phy = devm_of_phy_get_by_index(dev, node, phy_num); - if (IS_ERR(phy)) { - ret = PTR_ERR(phy); - goto put_usb2_hcd; - } - mtk->phys[phy_num] = phy; - } - - ret = xhci_mtk_phy_init(mtk); - if (ret) - goto put_usb2_hcd; - - ret = xhci_mtk_phy_power_on(mtk); - if (ret) - goto exit_phys; - device_init_wakeup(dev, true); xhci = hcd_to_xhci(hcd); @@ -630,7 +544,7 @@ static int xhci_mtk_probe(struct platform_device *pdev) dev_name(dev), hcd); if (!xhci->shared_hcd) { ret = -ENOMEM; - goto power_off_phys; + goto disable_device_wakeup; } ret = usb_add_hcd(hcd, irq, IRQF_SHARED); @@ -653,13 +567,9 @@ static int xhci_mtk_probe(struct platform_device *pdev) xhci_mtk_sch_exit(mtk); usb_put_hcd(xhci->shared_hcd); -power_off_phys: - xhci_mtk_phy_power_off(mtk); +disable_device_wakeup: device_init_wakeup(dev, false); -exit_phys: - xhci_mtk_phy_exit(mtk); - put_usb2_hcd: usb_put_hcd(hcd); @@ -682,8 +592,6 @@ static int xhci_mtk_remove(struct platform_device *dev) struct xhci_hcd *xhci = hcd_to_xhci(hcd); usb_remove_hcd(xhci->shared_hcd); - xhci_mtk_phy_power_off(mtk); - xhci_mtk_phy_exit(mtk); device_init_wakeup(&dev->dev, false); usb_remove_hcd(hcd); @@ -718,7 +626,6 @@ static int __maybe_unused xhci_mtk_suspend(struct device *dev) del_timer_sync(&xhci->shared_hcd->rh_timer); xhci_mtk_host_disable(mtk); - xhci_mtk_phy_power_off(mtk); xhci_mtk_clks_disable(mtk); usb_wakeup_set(mtk, true); return 0; @@ -732,7 +639,6 @@ static int __maybe_unused xhci_mtk_resume(struct device *dev) usb_wakeup_set(mtk, false); xhci_mtk_clks_enable(mtk); - xhci_mtk_phy_power_on(mtk); xhci_mtk_host_enable(mtk); xhci_dbg(xhci, "%s: restart port polling\n", __func__);