From patchwork Wed Aug 4 11:44:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 491655 Delivered-To: patch@linaro.org Received: by 2002:a05:6638:396:0:0:0:0 with SMTP id y22csp1544372jap; Wed, 4 Aug 2021 04:44:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyDZpDI9xwVkuMyZU4Xm+RxkwBhcIAkFIDnMa73i2LGvPRIKIyJ7E3J6d4RPkDkiBoriEUY X-Received: by 2002:a05:6638:2516:: with SMTP id v22mr23427967jat.144.1628077477957; Wed, 04 Aug 2021 04:44:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628077477; cv=none; d=google.com; s=arc-20160816; b=hoqonBLOXtW2OxGn43+wb1VDWUNvtCNZpvCJIXVqsREvUzdWe2JbqxcDrjMxJIxFxJ 5P+vYQMp7GQ5r9GbldWWvV1kxPYUmwAOSBC5ozl2Gj/FVj/Jw4571KaKVVf6f9PYxpwB IXWmSbJn3n8jd+rKLyzqVXI/o7K4u9FxP2mJ+FYYzlbPdXps4iqz118qRUJOjnRUVAX1 P9UBpZjYg/qIAmtj+CSU3p1tesIs9vhXhAFB51OK/wSLQK8LRi+tyrO4jN7GPzCNpJkB msht/zOrNZql7DvcWeog4nTJXKunQfpu4bdvQWHEOlsyWH5UCv7QRHp50hI/JHtsG8QC jD5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:cms-type:message-id:date:subject:cc :to:from:dkim-signature:dkim-filter; bh=06q/IuPyxi5M60SRMqpAEAHW+0zNfEVbC7soamUbDB4=; b=DWQgOCGZQa8SyeX/QTauTnU+1mNuuFoHzsdxxDf82tDZ8JX2R+YveBZ7QI8Sa4HrD7 8tCorZP7y8SumMVaVg1B1cc6sQW95qksu/Hhrgoxb95+DtSgM/WP6Um3MgLUYSfhys8u SU9mxKVG3ZBIGjV+QPUyE90UDhWjUfcfCKi4+3bxrl8Vs7CsgGpNXSGfsoFuNGPkwP/1 zxikGZ8MuURjEohMhzUnMV7PF1YrmpN3UWmjy4V8A3HPL5XWIiQPclWN6+hdZjyYH/Vs /L2Gj8SB7OIIUyw/CRrtXfa7Ex82g0bw3B8GnE09ygPcdgKfDJYhBCRWUZGVT0olVt8X Fpjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=loi700Xt; spf=pass (google.com: domain of linux-samsung-soc-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-samsung-soc-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j14si2430675jat.60.2021.08.04.04.44.37; Wed, 04 Aug 2021 04:44:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-samsung-soc-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=loi700Xt; spf=pass (google.com: domain of linux-samsung-soc-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-samsung-soc-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237819AbhHDLot (ORCPT + 4 others); Wed, 4 Aug 2021 07:44:49 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:49705 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237757AbhHDLor (ORCPT ); Wed, 4 Aug 2021 07:44:47 -0400 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20210804114434euoutp02e4a4a6524b14200d8f10cb4a74beac9c~YF9ZEzSDC2436424364euoutp02d for ; Wed, 4 Aug 2021 11:44:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20210804114434euoutp02e4a4a6524b14200d8f10cb4a74beac9c~YF9ZEzSDC2436424364euoutp02d DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1628077474; bh=06q/IuPyxi5M60SRMqpAEAHW+0zNfEVbC7soamUbDB4=; h=From:To:Cc:Subject:Date:References:From; b=loi700XtBrczLF7C8inb6iNVmrk5z9iHIzJfcC1bs+yoGhZYDn4GPzSjB3Nh8yit/ TPKC6kZoH8GxNBulSC2Vv5x5LaQPgT89uV5Mp8Zu0Sf9yw9zVPIfLpVuItrmUtgK9Y QOHYTBbtTqsIYj4pmvs0NEXNlJsEdqf7nb6THD34= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20210804114433eucas1p25439a34c18ffa70be4e38cba9dcbef6e~YF9YqB3nD0057700577eucas1p2g; Wed, 4 Aug 2021 11:44:33 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id C1.14.56448.1AD7A016; Wed, 4 Aug 2021 12:44:33 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20210804114433eucas1p134417b605abeb57728d358fc2f42162b~YF9YKVdnj2735127351eucas1p1y; Wed, 4 Aug 2021 11:44:33 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20210804114433eusmtrp25e4cfdbc5de7a8ac2168cc0ab304421c~YF9YJfqMA1038410384eusmtrp2I; Wed, 4 Aug 2021 11:44:33 +0000 (GMT) X-AuditID: cbfec7f5-d53ff7000002dc80-80-610a7da1fbe7 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 63.9D.31287.1AD7A016; Wed, 4 Aug 2021 12:44:33 +0100 (BST) Received: from AMDC2765.digital.local (unknown [106.120.51.73]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20210804114432eusmtip2afd594f7cd3a91a23eff9cbd68a0224f~YF9Xqp_Ma0903309033eusmtip2S; Wed, 4 Aug 2021 11:44:32 +0000 (GMT) From: Marek Szyprowski To: linux-usb@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Marek Szyprowski , Minas Harutyunyan , Artur Petrosyan , Felipe Balbi , Bartlomiej Zolnierkiewicz , Krzysztof Kozlowski Subject: [PATCH 1/2] usb: dwc2: rename DWC2_POWER_DOWN_PARAM_NONE state Date: Wed, 4 Aug 2021 13:44:20 +0200 Message-Id: <20210804114421.10282-1-m.szyprowski@samsung.com> X-Mailer: git-send-email 2.17.1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrOIsWRmVeSWpSXmKPExsWy7djP87oLa7kSDWZ+07fovWNisXHGelaL Y21P2C0af+1ltzh/fgO7xeVdc9gsZpzfx2SxaFkrs8XaI3fZHTg9Nq3qZPPo27KK0WPL/s+M Hp83yQWwRHHZpKTmZJalFunbJXBl/OjeyFawyKti8dxLzA2MF2y7GDk5JARMJGYcv8DSxcjF ISSwglHi5YFeVpCEkMAXRomPWyIgEp8ZJe7M2sQE03H78BRGiMRyRoljh1ug2oE69l5oB6ti EzCU6HrbxQZiiwgkSBzZ/J4ZpIhZoJdJYvr6jcwgCWEBd4mOxQ/B9rEIqEqs+XYIrIFXwFZi /fmZzBDr5CVWbzgA1iwh0MohcbutgxEi4SLR9bKfHcIWlnh1fAuULSPxf+d8JoiGZkaJh+fW skM4PYwSl5tmQHVbS9w59wtoHQfQTZoS63fpQ4QdJc7uAnmBA8jmk7jxVhAkzAxkTto2nRki zCvR0SYEUa0mMev4Ori1By9cgrrZQ2LxsoXQcIyVWH/vFOMERrlZCLsWMDKuYhRPLS3OTU8t Ns5LLdcrTswtLs1L10vOz93ECEwLp/8d/7qDccWrj3qHGJk4GA8xSnAwK4nwht7gSBTiTUms rEotyo8vKs1JLT7EKM3BoiTOu2vrmnghgfTEktTs1NSC1CKYLBMHp1QD01ybv4lGR66avsg5 Gmz1+yd/yaHjWdb/NyT89cvZYe2ztXzbDe5v7nzNi9fbd+62WaARp+bqpTS9WmPLss50z8eb i7deEo9JXLN8qtm0hcEGi340Tb2l83ir0vWrl6f3aN60ir9xrfRbsFIwo5ft3RN/f6747flL VWvC3yX1c/8nbtifHP76MuuSs4lCBRmLinQ+cAafOtAcPPPfxe8u33bc28M8v7znRrjmuboA ifyjX/7OqG1cz9HDZcY1yUp0p47NA8viaPnzvZcuse5urzftPFh7caXagqevZCbt5vvdvFZK PbwzU9YrzdK+WOeJFWe7nPX/PzzS7oHHTupUH1m78PxcJ/n5jyaxpEWy/FViKc5INNRiLipO BACY8cutegMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrLLMWRmVeSWpSXmKPExsVy+t/xe7oLa7kSDWav5LXovWNisXHGelaL Y21P2C0af+1ltzh/fgO7xeVdc9gsZpzfx2SxaFkrs8XaI3fZHTg9Nq3qZPPo27KK0WPL/s+M Hp83yQWwROnZFOWXlqQqZOQXl9gqRRtaGOkZWlroGZlY6hkam8daGZkq6dvZpKTmZJalFunb Jehl/OjeyFawyKti8dxLzA2MF2y7GDk5JARMJG4fnsLYxcjFISSwlFFi0YnP7BAJGYmT0xpY IWxhiT/Xutggij4xSizZu4gFJMEmYCjR9RYkwckhIpAkcf3JaRaQImaBiUwSk2b+B0sIC7hL dCx+CDaJRUBVYs23Q2BxXgFbifXnZzJDbJCXWL3hAPMERp4FjAyrGEVSS4tz03OLDfWKE3OL S/PS9ZLzczcxAsNx27Gfm3cwznv1Ue8QIxMH4yFGCQ5mJRHe0BsciUK8KYmVValF+fFFpTmp xYcYTYH2TWSWEk3OB0ZEXkm8oZmBqaGJmaWBqaWZsZI479a5a+KFBNITS1KzU1MLUotg+pg4 OKUamHjb4u9m9nStOe8rdIVt4g3f8/ZiZzif3npi89z3eboT+9qKmYo8u569uKtk8EbuaoXN M8XvFW8N7qkIMTFN1/Rsvjv/nOwDVuZXsW0ZHnzsUslz2NbVad6M+bOc+6XuwmdXOB+78Hxz yDokm9bAZaN5IlVZMJB7Y8GLXJZ/6+1WcDqfLtTyP/IxYH/v9/4f58KW7bz6UkXlhFHH21Lb rnJG46evn87gstngNjezxyPe+IHP0c9SjyJ3bYuNniH9o7YwaWM/d8KGEtNFMQeO39x8/qp5 tmX9rh3ruU9tOTXfmUH+hGqh5NmrXfNtZk6WYk4xPD7d8dOuj1Xpn/evk9ZY6XticopnotEb H8Xv8UosxRmJhlrMRcWJAPwEIjvQAgAA X-CMS-MailID: 20210804114433eucas1p134417b605abeb57728d358fc2f42162b X-Msg-Generator: CA X-RootMTR: 20210804114433eucas1p134417b605abeb57728d358fc2f42162b X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20210804114433eucas1p134417b605abeb57728d358fc2f42162b References: Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org DWC2_POWER_DOWN_PARAM_NONE really means that the driver still uses clock gating to save power when hardware is not used. Rename the state name to DWC2_POWER_DOWN_PARAM_CLOCK_GATING to match the driver behavior. Suggested-by: Minas Harutyunyan Signed-off-by: Marek Szyprowski --- This is a follow-up of this discussion: https://lore.kernel.org/linux-usb/26099de1-826f-42bf-0de7-759a47faf4a0@samsung.com/ This should be applied on top of v5.14-rc3. --- drivers/usb/dwc2/core.h | 4 ++-- drivers/usb/dwc2/core_intr.c | 8 ++++---- drivers/usb/dwc2/hcd.c | 10 +++++----- drivers/usb/dwc2/params.c | 22 +++++++++++----------- drivers/usb/dwc2/platform.c | 2 +- 5 files changed, 23 insertions(+), 23 deletions(-) -- 2.17.1 diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h index cb9059a8444b..38b6733d26ec 100644 --- a/drivers/usb/dwc2/core.h +++ b/drivers/usb/dwc2/core.h @@ -382,7 +382,7 @@ enum dwc2_ep0_state { * If power_down is enabled, the controller will enter * power_down in both peripheral and host mode when * needed. - * 0 - No (default) + * 0 - Clock gating (default) * 1 - Partial power down * 2 - Hibernation * @no_clock_gating: Specifies whether to avoid clock gating feature. @@ -482,7 +482,7 @@ struct dwc2_core_params { bool external_id_pin_ctl; int power_down; -#define DWC2_POWER_DOWN_PARAM_NONE 0 +#define DWC2_POWER_DOWN_PARAM_CLOCK_GATING 0 #define DWC2_POWER_DOWN_PARAM_PARTIAL 1 #define DWC2_POWER_DOWN_PARAM_HIBERNATION 2 bool no_clock_gating; diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c index a5c52b237e72..660abff1d42b 100644 --- a/drivers/usb/dwc2/core_intr.c +++ b/drivers/usb/dwc2/core_intr.c @@ -327,7 +327,7 @@ static void dwc2_handle_session_req_intr(struct dwc2_hsotg *hsotg) /* Exit gadget mode clock gating. */ if (hsotg->params.power_down == - DWC2_POWER_DOWN_PARAM_NONE && hsotg->bus_suspended) + DWC2_POWER_DOWN_PARAM_CLOCK_GATING && hsotg->bus_suspended) dwc2_gadget_exit_clock_gating(hsotg, 0); } @@ -438,7 +438,7 @@ static void dwc2_handle_wakeup_detected_intr(struct dwc2_hsotg *hsotg) /* Exit gadget mode clock gating. */ if (hsotg->params.power_down == - DWC2_POWER_DOWN_PARAM_NONE && hsotg->bus_suspended) + DWC2_POWER_DOWN_PARAM_CLOCK_GATING && hsotg->bus_suspended) dwc2_gadget_exit_clock_gating(hsotg, 0); } else { /* Change to L0 state */ @@ -455,7 +455,7 @@ static void dwc2_handle_wakeup_detected_intr(struct dwc2_hsotg *hsotg) } if (hsotg->params.power_down == - DWC2_POWER_DOWN_PARAM_NONE && hsotg->bus_suspended) + DWC2_POWER_DOWN_PARAM_CLOCK_GATING && hsotg->bus_suspended) dwc2_host_exit_clock_gating(hsotg, 1); /* @@ -551,7 +551,7 @@ static void dwc2_handle_usb_suspend_intr(struct dwc2_hsotg *hsotg) dev_err(hsotg->dev, "enter hibernation failed\n"); break; - case DWC2_POWER_DOWN_PARAM_NONE: + case DWC2_POWER_DOWN_PARAM_CLOCK_GATING: /* * If neither hibernation nor partial power down are supported, * clock gating is used to save power. diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c index 2a7828971d05..067f2770c2ef 100644 --- a/drivers/usb/dwc2/hcd.c +++ b/drivers/usb/dwc2/hcd.c @@ -3333,7 +3333,7 @@ int dwc2_port_suspend(struct dwc2_hsotg *hsotg, u16 windex) dev_err(hsotg->dev, "enter hibernation failed.\n"); spin_lock_irqsave(&hsotg->lock, flags); break; - case DWC2_POWER_DOWN_PARAM_NONE: + case DWC2_POWER_DOWN_PARAM_CLOCK_GATING: /* * If not hibernation nor partial power down are supported, * clock gating is used to save power. @@ -3701,7 +3701,7 @@ static int dwc2_hcd_hub_control(struct dwc2_hsotg *hsotg, u16 typereq, } if (hsotg->params.power_down == - DWC2_POWER_DOWN_PARAM_NONE && hsotg->bus_suspended) + DWC2_POWER_DOWN_PARAM_CLOCK_GATING && hsotg->bus_suspended) dwc2_host_exit_clock_gating(hsotg, 0); pcgctl = dwc2_readl(hsotg, PCGCTL); @@ -4398,7 +4398,7 @@ static int _dwc2_hcd_suspend(struct usb_hcd *hcd) /* After entering suspend, hardware is not accessible */ clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); break; - case DWC2_POWER_DOWN_PARAM_NONE: + case DWC2_POWER_DOWN_PARAM_CLOCK_GATING: /* * If not hibernation nor partial power down are supported, * clock gating is used to save power. @@ -4482,7 +4482,7 @@ static int _dwc2_hcd_resume(struct usb_hcd *hcd) */ set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); break; - case DWC2_POWER_DOWN_PARAM_NONE: + case DWC2_POWER_DOWN_PARAM_CLOCK_GATING: /* * If not hibernation nor partial power down are supported, * port resume is done using the clock gating programming flow. @@ -4680,7 +4680,7 @@ static int _dwc2_hcd_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, "exit partial_power_down failed\n"); } - if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_NONE && + if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_CLOCK_GATING && hsotg->bus_suspended) { if (dwc2_is_device_mode(hsotg)) dwc2_gadget_exit_clock_gating(hsotg, 0); diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c index 59e119345994..dac26410b575 100644 --- a/drivers/usb/dwc2/params.c +++ b/drivers/usb/dwc2/params.c @@ -68,14 +68,14 @@ static void dwc2_set_his_params(struct dwc2_hsotg *hsotg) p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 << GAHBCFG_HBSTLEN_SHIFT; p->change_speed_quirk = true; - p->power_down = DWC2_POWER_DOWN_PARAM_NONE; + p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING; } static void dwc2_set_s3c6400_params(struct dwc2_hsotg *hsotg) { struct dwc2_core_params *p = &hsotg->params; - p->power_down = DWC2_POWER_DOWN_PARAM_NONE; + p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING; p->no_clock_gating = true; p->phy_utmi_width = 8; } @@ -90,7 +90,7 @@ static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg) p->host_perio_tx_fifo_size = 256; p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 << GAHBCFG_HBSTLEN_SHIFT; - p->power_down = DWC2_POWER_DOWN_PARAM_NONE; + p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING; } static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg) @@ -120,7 +120,7 @@ static void dwc2_set_amlogic_params(struct dwc2_hsotg *hsotg) p->phy_type = DWC2_PHY_TYPE_PARAM_UTMI; p->ahbcfg = GAHBCFG_HBSTLEN_INCR8 << GAHBCFG_HBSTLEN_SHIFT; - p->power_down = DWC2_POWER_DOWN_PARAM_NONE; + p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING; } static void dwc2_set_amlogic_g12a_params(struct dwc2_hsotg *hsotg) @@ -179,7 +179,7 @@ static void dwc2_set_stm32mp15_fsotg_params(struct dwc2_hsotg *hsotg) p->activate_stm_fs_transceiver = true; p->activate_stm_id_vb_detection = true; p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 << GAHBCFG_HBSTLEN_SHIFT; - p->power_down = DWC2_POWER_DOWN_PARAM_NONE; + p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING; p->host_support_fs_ls_low_power = true; p->host_ls_low_power_phy_clk = true; } @@ -194,7 +194,7 @@ static void dwc2_set_stm32mp15_hsotg_params(struct dwc2_hsotg *hsotg) p->host_nperio_tx_fifo_size = 256; p->host_perio_tx_fifo_size = 256; p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 << GAHBCFG_HBSTLEN_SHIFT; - p->power_down = DWC2_POWER_DOWN_PARAM_NONE; + p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING; p->lpm = false; p->lpm_clock_gating = false; p->besl = false; @@ -339,7 +339,7 @@ static void dwc2_set_param_power_down(struct dwc2_hsotg *hsotg) else if (hsotg->hw_params.power_optimized) val = DWC2_POWER_DOWN_PARAM_PARTIAL; else - val = DWC2_POWER_DOWN_PARAM_NONE; + val = DWC2_POWER_DOWN_PARAM_CLOCK_GATING; hsotg->params.power_down = val; } @@ -585,27 +585,27 @@ static void dwc2_check_param_power_down(struct dwc2_hsotg *hsotg) int param = hsotg->params.power_down; switch (param) { - case DWC2_POWER_DOWN_PARAM_NONE: + case DWC2_POWER_DOWN_PARAM_CLOCK_GATING: break; case DWC2_POWER_DOWN_PARAM_PARTIAL: if (hsotg->hw_params.power_optimized) break; dev_dbg(hsotg->dev, "Partial power down isn't supported by HW\n"); - param = DWC2_POWER_DOWN_PARAM_NONE; + param = DWC2_POWER_DOWN_PARAM_CLOCK_GATING; break; case DWC2_POWER_DOWN_PARAM_HIBERNATION: if (hsotg->hw_params.hibernation) break; dev_dbg(hsotg->dev, "Hibernation isn't supported by HW\n"); - param = DWC2_POWER_DOWN_PARAM_NONE; + param = DWC2_POWER_DOWN_PARAM_CLOCK_GATING; break; default: dev_err(hsotg->dev, "%s: Invalid parameter power_down=%d\n", __func__, param); - param = DWC2_POWER_DOWN_PARAM_NONE; + param = DWC2_POWER_DOWN_PARAM_CLOCK_GATING; break; } diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c index c8f18f3ba9e3..7bd8fb6c1378 100644 --- a/drivers/usb/dwc2/platform.c +++ b/drivers/usb/dwc2/platform.c @@ -342,7 +342,7 @@ static int dwc2_driver_remove(struct platform_device *dev) } /* Exit clock gating when driver is removed. */ - if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_NONE && + if (hsotg->params.power_down == DWC2_POWER_DOWN_PARAM_CLOCK_GATING && hsotg->bus_suspended) { if (dwc2_is_device_mode(hsotg)) dwc2_gadget_exit_clock_gating(hsotg, 0); From patchwork Wed Aug 4 11:44:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 491656 Delivered-To: patch@linaro.org Received: by 2002:a05:6638:396:0:0:0:0 with SMTP id y22csp1544386jap; Wed, 4 Aug 2021 04:44:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwEP2br2wOYQPbH7TgNbEw4d8kUNs56z12HK36/1jIhk9e5sasLGh+zMzZnd7ueCo1BYayE X-Received: by 2002:a92:7312:: with SMTP id o18mr22580ilc.56.1628077478678; Wed, 04 Aug 2021 04:44:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628077478; cv=none; d=google.com; s=arc-20160816; b=nABk2dacwEg5a2iVK+lH9Bho0wxAW9NsYUfptOlIo+2yB0hEajXWgE6VB+VPc5uuIJ LYKY0mPBYfiONLnyabg/xv8b5kYHjrt+ktvV4AngeWLQrVw7InsnEmFD8pjYVVSWZh56 tzoxCZCxK1G+9+IB6A5xUKQMubIs2aKlfPZvgJAaT09ND/Tc1h87LlvqFPkysaGfGMiI 8FjHTCBa/vbobXqDbFa+2tojp+sWirvbE5iZCV8TiFA6FkZqifvHyNP43X12J7NAKp+W Yw4HlygsFZ/QHR69elBFniUGLVg3LlYieOnOi7L8pEoWN8ObfMWg9ZU4Pgy7uvLPEhQB yXgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:cms-type:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:dkim-filter; bh=XeiT3T0AIqu21kYHEOSCAdLqm7FdtiPyjAwJQ8y1KjQ=; b=MjH5y61FifugWC2UucgHeQRWiMykuMFMxifXoGahCA9pDpB1NSsmx/jmTNrnCDLMa9 /yq8stlJ/mYMY5+av65Yd5CJx90Fff+nT2vOQm2+j8YBkCWbnsMy9PhyhrgnSwwuwwTo 1NieoB7Bw5khfc0C36J24dJtSbsr3LziXucYnHOA9e6O4Dw6xaVoIq4hqWQJUawj3GA0 cdJqy5DynSf3BWl48LjIkMlMEkf9r6VgVqqkFIKIJ/Pi/Fce8Se/x5Cut8HHt9rC9rhJ mmws+b6EpUCp29+A3ztqwAmMlHMI525upnsF8ICVqzsgUWfUhvyZTUbATd7sBCrQRz11 F6xA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=Gi7jH+nc; spf=pass (google.com: domain of linux-samsung-soc-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-samsung-soc-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j14si2430675jat.60.2021.08.04.04.44.38; Wed, 04 Aug 2021 04:44:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-samsung-soc-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=Gi7jH+nc; spf=pass (google.com: domain of linux-samsung-soc-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-samsung-soc-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237832AbhHDLot (ORCPT + 4 others); Wed, 4 Aug 2021 07:44:49 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:49725 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237816AbhHDLos (ORCPT ); Wed, 4 Aug 2021 07:44:48 -0400 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20210804114434euoutp02873b8ed2d08e8da5323b19cb3ae84c97~YF9ZiAtbb2396223962euoutp02A for ; Wed, 4 Aug 2021 11:44:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20210804114434euoutp02873b8ed2d08e8da5323b19cb3ae84c97~YF9ZiAtbb2396223962euoutp02A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1628077474; bh=XeiT3T0AIqu21kYHEOSCAdLqm7FdtiPyjAwJQ8y1KjQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Gi7jH+ncdUZ4Y2MFAii6TNI8vgAbAjcGQc2dT3hxLvWLwxo+F5RFH0Un6YIMmrQRl ef3N4phHKzi1o/5UQ4UWkv59h1YWM6/0oN3DRFe6SsiRJzRh1ynkgDdhY7dZDcDf6A Ltm4HZbvnCCR5BJmH5kIBJbk0XsSzeZ3Mw6WRmM0= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20210804114434eucas1p1a52106ffd4a0fb7c3eb4e764e59fbf88~YF9Y2jDtT2736727367eucas1p1i; Wed, 4 Aug 2021 11:44:34 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id A9.EA.42068.1AD7A016; Wed, 4 Aug 2021 12:44:34 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20210804114433eucas1p255ac5db7e56a8d5e50b8937c07559587~YF9YkbfYC3240532405eucas1p2Y; Wed, 4 Aug 2021 11:44:33 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20210804114433eusmtrp2a554001d7cc0de2146f76b6127c6bbb4~YF9YjtLxs1036210362eusmtrp2W; Wed, 4 Aug 2021 11:44:33 +0000 (GMT) X-AuditID: cbfec7f4-c89ff7000002a454-08-610a7da1001a Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id F4.0F.20981.1AD7A016; Wed, 4 Aug 2021 12:44:33 +0100 (BST) Received: from AMDC2765.digital.local (unknown [106.120.51.73]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20210804114433eusmtip2d50901d6b87509388507727e18b8372f~YF9YDG2ZS1145011450eusmtip2Z; Wed, 4 Aug 2021 11:44:33 +0000 (GMT) From: Marek Szyprowski To: linux-usb@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Marek Szyprowski , Minas Harutyunyan , Artur Petrosyan , Felipe Balbi , Bartlomiej Zolnierkiewicz , Krzysztof Kozlowski Subject: [PATCH 2/2] usb: dwc2: add true DWC2_POWER_DOWN_PARAM_NONE state Date: Wed, 4 Aug 2021 13:44:21 +0200 Message-Id: <20210804114421.10282-2-m.szyprowski@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210804114421.10282-1-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrCIsWRmVeSWpSXmKPExsWy7djP87qLarkSDd43MVr03jGx2DhjPavF sbYn7BaNv/ayW5w/v4Hd4vKuOWwWM87vY7JYtKyV2WLtkbvsDpwem1Z1snn0bVnF6LFl/2dG j8+b5AJYorhsUlJzMstSi/TtErgyFl6cylbQIV/R/3otUwPjNskuRk4OCQETiZbzD9lBbCGB FYwSp7eIdjFyAdlfGCXurF/HCuF8ZpT4sKmbFabj/5sTLBCJ5YwSh8+uYYZr+XG1iw2kik3A UKLrLYQtIpAgcWTze7AiZoFeJonp6zcygySEBTwl3pz9wwJiswioSrTdPw0W5xWwlei+cYYN Yp28xOoNB8DinAJ2Em+bPoLdJCEwl0OiY+VUqJtcJOa8Oc4MYQtLvDq+hR3ClpH4v3M+E0RD M6PEw3Nr2SGcHkaJy00zGCGqrCXunPsFtI4D6D5NifW79CHCjhKvnhxnAglLCPBJ3HgrCBJm BjInbZvODBHmlehoE4KoVpOYdXwd3NqDFy5BneMh8f9DHxskhCYCA7XlLfsERvlZCMsWMDKu YhRPLS3OTU8tNspLLdcrTswtLs1L10vOz93ECEwYp/8d/7KDcfmrj3qHGJk4GA8xSnAwK4nw ht7gSBTiTUmsrEotyo8vKs1JLT7EKM3BoiTOm7RlTbyQQHpiSWp2ampBahFMlomDU6qBaTG7 l4lUssmq7Oqb1XoV3tFfV2xc1Lk83mnP2VvBP0tNn0gue/8qa95NzrX7wg2fiOwqSPote8F3 ztuuOok7cWuPzpsqylQ0Peai4Lwvpy97JtjN6GoyUrl7z3Wni/y6m3ZnzPceyd1peOvHq/qF lR1SW043qdWcSbbQk5zbNuH7RAap1ackV8x2WaK2ZXvI/5p1qhu3ZW16FvMkMLTI3H+pqvv8 pp7u/s4IZt7e3r9h5f9Zo1kPxm7rO3HP7q7j54zrrdJ7XZYmMyq/m7Qy/Jb+hgfb6n4qv/9Q vE2d7/qOBsHw7aEnmx1zVO8HmiruYOZ7YFu0/8AnU7eOu4LpWa7ZbTvsjp4+URe2ZtuKaiWW 4oxEQy3mouJEAJtJoUmHAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKLMWRmVeSWpSXmKPExsVy+t/xe7oLa7kSDZbNVrPovWNisXHGelaL Y21P2C0af+1ltzh/fgO7xeVdc9gsZpzfx2SxaFkrs8XaI3fZHTg9Nq3qZPPo27KK0WPL/s+M Hp83yQWwROnZFOWXlqQqZOQXl9gqRRtaGOkZWlroGZlY6hkam8daGZkq6dvZpKTmZJalFunb JehlLLw4la2gQ76i//VapgbGbZJdjJwcEgImEv/fnGDpYuTiEBJYyijxZ94fRoiEjMTJaQ2s ELawxJ9rXWwQRZ8YJU7euMgMkmATMJToeguS4OQQEUiSuP7kNNgkZoGJTBKTZv4HSwgLeEq8 OfuHBcRmEVCVaLt/GqyZV8BWovvGGTaIDfISqzccAItzCthJvG36CLZZCKjmyMeXjBMY+RYw MqxiFEktLc5Nzy020itOzC0uzUvXS87P3cQIDN9tx35u2cG48tVHvUOMTByMhxglOJiVRHhD b3AkCvGmJFZWpRblxxeV5qQWH2I0BbpjIrOUaHI+MILySuINzQxMDU3MLA1MLc2MlcR5TY6s iRcSSE8sSc1OTS1ILYLpY+LglGpgsmo3E63zqWSb/EV/pYm8UcWkswnldamBd6bwqpyVrr7a 4rghgfd+S3gmc1VOwqe3UQJMLhs8mU+zPy1dcO/alW87DjR8LtCafrnpifaFSJltLozzlA+d LWH/tbN1dTO/d2ftxtW/ci5vmRXwND9Kl0V2Bu/VsJuCGpPW/Lvypr/Gfsv0YM2CN+sq9wUk 3PlnvJFzd8ZTHZs4hZLD6/icX7/fVmRnu6tnR7DS04stl+MO84m29p8+eHfR0hmffLkbj0et fMIj9bgmroAhP8D6xLfVDQrORnbrlgm0S+82El6oySDWeG6x+X1Rx1RWN/3AI8J+gdGrhLKq 9Vv3R9zmsYtRv8Gx9ui15EOGAveVWIozEg21mIuKEwG0+idn6AIAAA== X-CMS-MailID: 20210804114433eucas1p255ac5db7e56a8d5e50b8937c07559587 X-Msg-Generator: CA X-RootMTR: 20210804114433eucas1p255ac5db7e56a8d5e50b8937c07559587 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20210804114433eucas1p255ac5db7e56a8d5e50b8937c07559587 References: <20210804114421.10282-1-m.szyprowski@samsung.com> Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org Refactor no_clock_gating flag into separate DWC2_POWER_DOWN_PARAM_NONE power down state. Suggested-by: Minas Harutyunyan Signed-off-by: Marek Szyprowski --- This is a follow-up of this discussion: https://lore.kernel.org/linux-usb/26099de1-826f-42bf-0de7-759a47faf4a0@samsung.com/ This should be applied on top of v5.14-rc3. --- drivers/usb/dwc2/core.h | 6 ++---- drivers/usb/dwc2/core_intr.c | 6 ++++-- drivers/usb/dwc2/hcd.c | 8 ++++---- drivers/usb/dwc2/params.c | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) -- 2.17.1 diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h index 38b6733d26ec..d590eda952a2 100644 --- a/drivers/usb/dwc2/core.h +++ b/drivers/usb/dwc2/core.h @@ -382,12 +382,10 @@ enum dwc2_ep0_state { * If power_down is enabled, the controller will enter * power_down in both peripheral and host mode when * needed. + * (-1) - None * 0 - Clock gating (default) * 1 - Partial power down * 2 - Hibernation - * @no_clock_gating: Specifies whether to avoid clock gating feature. - * 0 - No (use clock gating) - * 1 - Yes (avoid it) * @lpm: Enable LPM support. * 0 - No * 1 - Yes @@ -482,10 +480,10 @@ struct dwc2_core_params { bool external_id_pin_ctl; int power_down; +#define DWC2_POWER_DOWN_PARAM_NONE (-1) #define DWC2_POWER_DOWN_PARAM_CLOCK_GATING 0 #define DWC2_POWER_DOWN_PARAM_PARTIAL 1 #define DWC2_POWER_DOWN_PARAM_HIBERNATION 2 - bool no_clock_gating; bool lpm; bool lpm_clock_gating; diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c index 660abff1d42b..cdd39199780e 100644 --- a/drivers/usb/dwc2/core_intr.c +++ b/drivers/usb/dwc2/core_intr.c @@ -556,8 +556,10 @@ static void dwc2_handle_usb_suspend_intr(struct dwc2_hsotg *hsotg) * If neither hibernation nor partial power down are supported, * clock gating is used to save power. */ - if (!hsotg->params.no_clock_gating) - dwc2_gadget_enter_clock_gating(hsotg); + dwc2_gadget_enter_clock_gating(hsotg); + break; + case DWC2_POWER_DOWN_PARAM_NONE: + break; } /* diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c index 067f2770c2ef..d06bb927a073 100644 --- a/drivers/usb/dwc2/hcd.c +++ b/drivers/usb/dwc2/hcd.c @@ -3338,8 +3338,9 @@ int dwc2_port_suspend(struct dwc2_hsotg *hsotg, u16 windex) * If not hibernation nor partial power down are supported, * clock gating is used to save power. */ - if (!hsotg->params.no_clock_gating) - dwc2_host_enter_clock_gating(hsotg); + dwc2_host_enter_clock_gating(hsotg); + break; + case DWC2_POWER_DOWN_PARAM_NONE: break; } @@ -4403,8 +4404,7 @@ static int _dwc2_hcd_suspend(struct usb_hcd *hcd) * If not hibernation nor partial power down are supported, * clock gating is used to save power. */ - if (!hsotg->params.no_clock_gating) - dwc2_host_enter_clock_gating(hsotg); + dwc2_host_enter_clock_gating(hsotg); /* After entering suspend, hardware is not accessible */ clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c index dac26410b575..2ad9f407ca40 100644 --- a/drivers/usb/dwc2/params.c +++ b/drivers/usb/dwc2/params.c @@ -75,8 +75,7 @@ static void dwc2_set_s3c6400_params(struct dwc2_hsotg *hsotg) { struct dwc2_core_params *p = &hsotg->params; - p->power_down = DWC2_POWER_DOWN_PARAM_CLOCK_GATING; - p->no_clock_gating = true; + p->power_down = DWC2_POWER_DOWN_PARAM_NONE; p->phy_utmi_width = 8; } @@ -585,6 +584,7 @@ static void dwc2_check_param_power_down(struct dwc2_hsotg *hsotg) int param = hsotg->params.power_down; switch (param) { + case DWC2_POWER_DOWN_PARAM_NONE: case DWC2_POWER_DOWN_PARAM_CLOCK_GATING: break; case DWC2_POWER_DOWN_PARAM_PARTIAL: