From nobody Mon Feb 9 10:16:14 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 83144343D8D for ; Thu, 6 Nov 2025 14:36:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762439794; cv=none; b=ZDaH4ilql4qaUuScHu94W1CkORNM81Zp+DTydEom8FpexyK3JBF3uo6S2rChLwTCKW+BQGui7GwR4Y89YgoyoaeniyN++PDxJMJhR4//Uj4Rwz1tVSI1g04OkQE7nj5snaUlYXng396P6PQFetFAADDJIGCG+I97mX+ISi7WfvE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762439794; c=relaxed/simple; bh=GHnwtPsZXjN+kRDiAE0fB8kcSglMVgvTqZiFQJxM6fs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ctJCUG/Cc9hQqghIb3NsDCWuOeAD7BPROmwMlQMqw6nW28JhjO009avSfmmYkoo9HorxGZ0HSjoN5xT3dPTDbTIDdijRq0imPsWsCralLmezqO/qJ61hjBVt5As3ouVDXCJWkpQ/xXr7acD+Ndescasi7uUO+6h0zZwsoti1pm4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=tuxon.dev; spf=pass smtp.mailfrom=tuxon.dev; dkim=pass (2048-bit key) header.d=tuxon.dev header.i=@tuxon.dev header.b=nwrEISv/; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=tuxon.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=tuxon.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=tuxon.dev header.i=@tuxon.dev header.b="nwrEISv/" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-47758595eecso5632285e9.0 for ; Thu, 06 Nov 2025 06:36:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1762439791; x=1763044591; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KLJObSZguYooG//hSzVwf4p86h8hNnf76dlK6vZI5T8=; b=nwrEISv/qstiqS+MzcCkNyZhwaMcLN13d60xJ++6uifS47yJesiKJ37D2UcQPAzL5u lb6IMIswLfHMsWxyWb416B1pnyCOw7hk3yYkW5FGy5DTFeQIgouCdhDLYYisUH/fgJP/ e4b3+FHrMlQKoTVUrA7EakUHj/28mb7X51wwAI/CTzGcxX2UvbzEOrToC4SmXw9punPH b5rgBtfRwKFNklMihpvkSCiDrK7imrr59RI27iAlgEf7wE3+MJpsgm9VVG3SD3Pj62Ll nY9ArsG1Xwi8WZfZlOstoCiTDbtHnfzLkcGX+tMXfC+Fw7UA3/CU6r5YVMnQRYcV+Xjg TH/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762439791; x=1763044591; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KLJObSZguYooG//hSzVwf4p86h8hNnf76dlK6vZI5T8=; b=L1AkUQKyoDZeUnjo4QUZ9TXU/30cIGBwGwNL/eqvyI/mZ9MuRAXWbtXw9clhvz+1a5 1V7O+KUDWOquqBKPHRGaURqtjY6DB3NUiMcl1N1dbcg0qvv16oljlCv+H918/Osd+Ce6 h7Q1FkYRwhDNsxJDgYe8+ZqA6BP/0/9hcWG8X+syIb1SITo1X1bb/ttIjFPeP+9ABdjq 8FKYhzTNuaU90D+UcrsrOHTcJH6mT5SV2KmH7n3kJXlwqR3eqwV1aqF0t5fIqmrSTvWs uBGv0NlMNiyEQkerNgrdjKJOsrr6Otjb1PV1SedExfuzajQ3TJw/MvKwZP52UaImK85T gvTg== X-Forwarded-Encrypted: i=1; AJvYcCUeSypUeOYCgZrti/DCMuyPasQMypoyv7unVdRix1s0pKcu2A5FyMAyOSwDbheZFQwGNSVVaju/aDaBd/U=@vger.kernel.org X-Gm-Message-State: AOJu0YwqZyqgGlJxmOGefgHBmej1XUIiHO4OJNThh7odWalOcer9l2Lx iMysqFzM4CMbDZdD5g41kKnZu6ipVrc5E6N87pxkSszpjc2+0ZhxtCjhdulwYe1Ic8M= X-Gm-Gg: ASbGncunpbi9oQC2ePQXg6guNZDyHAutQS93HV5gqUBJN9v+qoSgjJ0nX5GOmMJnuYA B59VEGl/QZgXznnA4f3tF3En4K0SPNqW4makdo0B8WhTRGehAQr3WMPOIUysZ0yBFVqR6bdmy1D rvlFa4RDrt18FRWFvubRRK3lcwpf3nEL97QYv5x2QdyrqiHhaK0yla6G9ksw9rs/adaNL2rpQaw 3mZsEvOYIkEVPpIVqZ1u2T9ArV6rZ2Np18PdKONH1lXkIhhim+vOALwMTM6bPvzPkrQB6zNbV0x /z4ASyuRm3XehfINiq3OWdlq1TGK/NmsfbKqrabWNz+j7DG57D72+DkECz8gg2Gzo/LyS/dACJy xhRFwuqGI2Qhp/5s1bYC/c4aJj7j9AzzDaDeGt0NT8/C9CRENpxiCpBblfRlNfvHtOTMqpLLRwC 14xh9SKs7v6Of19X+zPKhmtLSY+Qj7Q/OCRxUcmum1 X-Google-Smtp-Source: AGHT+IFv33x2P872TieHOJvR5x8J1BT/j4Lv/kS9+Tc1cAVcKxr+2HllDBXtSXFFGFzhCzx5Kr1b6w== X-Received: by 2002:a05:600c:348f:b0:476:a25f:6a4d with SMTP id 5b1f17b1804b1-4775cd9c069mr60508955e9.1.1762439790728; Thu, 06 Nov 2025 06:36:30 -0800 (PST) Received: from claudiu-X670E-Pro-RS.. ([82.78.167.134]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4775ce2cde0sm112185495e9.15.2025.11.06.06.36.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 06:36:29 -0800 (PST) From: Claudiu X-Google-Original-From: Claudiu To: stern@rowland.harvard.edu, gregkh@linuxfoundation.org, p.zabel@pengutronix.de, yoshihiro.shimoda.uh@renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, kuninori.morimoto.gx@renesas.com, geert+renesas@glider.be Cc: claudiu.beznea@tuxon.dev, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Claudiu Beznea Subject: [PATCH 1/4] usb: host: Do not check priv->clks[clk] Date: Thu, 6 Nov 2025 16:36:22 +0200 Message-ID: <20251106143625.3050119-2-claudiu.beznea.uj@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251106143625.3050119-1-claudiu.beznea.uj@bp.renesas.com> References: <20251106143625.3050119-1-claudiu.beznea.uj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Claudiu Beznea There is no need to check the entries in priv->clks[] array before passing it to clk_disable_unprepare() as the clk_disable_unprepare() already check if it receives a NULL or error pointer as argument. Remove this check. This makes the code simpler. Signed-off-by: Claudiu Beznea Acked-by: Alan Stern Reviewed-by: Geert Uytterhoeven --- drivers/usb/host/ehci-platform.c | 3 +-- drivers/usb/host/ohci-platform.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platf= orm.c index bcd1c9073515..57d5a7ddac5f 100644 --- a/drivers/usb/host/ehci-platform.c +++ b/drivers/usb/host/ehci-platform.c @@ -112,8 +112,7 @@ static void ehci_platform_power_off(struct platform_dev= ice *dev) int clk; =20 for (clk =3D EHCI_MAX_CLKS - 1; clk >=3D 0; clk--) - if (priv->clks[clk]) - clk_disable_unprepare(priv->clks[clk]); + clk_disable_unprepare(priv->clks[clk]); } =20 static struct hc_driver __read_mostly ehci_platform_hc_driver; diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platf= orm.c index f47ae12cde6a..af26f1449bc2 100644 --- a/drivers/usb/host/ohci-platform.c +++ b/drivers/usb/host/ohci-platform.c @@ -69,8 +69,7 @@ static void ohci_platform_power_off(struct platform_devic= e *dev) int clk; =20 for (clk =3D OHCI_MAX_CLKS - 1; clk >=3D 0; clk--) - if (priv->clks[clk]) - clk_disable_unprepare(priv->clks[clk]); + clk_disable_unprepare(priv->clks[clk]); } =20 static struct hc_driver __read_mostly ohci_platform_hc_driver; --=20 2.43.0 From nobody Mon Feb 9 10:16:14 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A9D70344033 for ; Thu, 6 Nov 2025 14:36:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762439795; cv=none; b=abJGvLW66rImVBZPU6mto79Wl+lKbjGkrW7379RwreKkpZGoRXxeBjZjyBMSLGpxwheWea29VbfhXUm53M2werj1xVxlUn8f9WihQLh3eeNrn0F95xxndr7TOffZ8xyC7+nUGhSwO7L8CZW6ycrfKJiuEYxCnrR6LGq7iqRWTdo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762439795; c=relaxed/simple; bh=0Rs0cg6v3aK456W1TwBmzVlhKZcHd5ys8jD5bJHQdqc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HomKgbHXV3SJ/99AEOKqjnrGUHqaOciauCL9v8f//6wDVVzb+gnsK7O5hmVrA+0t4fKRjR5qy/43izH6CogL2gjSJ5sUl6UKBhLBapBp8I2o2YvVnQ/14hCKC8KlFgnvle54JTLz2QW9wqnyJjx4pMsUFM9+ZPqShMLtcpPkIH4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=tuxon.dev; spf=pass smtp.mailfrom=tuxon.dev; dkim=pass (2048-bit key) header.d=tuxon.dev header.i=@tuxon.dev header.b=BqiUnyFA; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=tuxon.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=tuxon.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=tuxon.dev header.i=@tuxon.dev header.b="BqiUnyFA" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-477563e28a3so8464515e9.1 for ; Thu, 06 Nov 2025 06:36:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1762439792; x=1763044592; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XE9x4fc+RYkdMj5Dyqr3FFUVL1ho5xKWs3x4k2mRU9k=; b=BqiUnyFAmaUiATROfZfca6cWy/dUFe9ei80fdZI8rky+Oz36M/6j4P/FbELMkkUl93 JdvEfsA9i/XJidLRpIboisXCQvFAnR6ycYaKcI+U/ljIqPp0wB5SnKzyD6p6sQu0aMRD 1OyZpwPCoh5bQzVERNDXBowFzfPcQAEv55OQVI4exAQd5I2L9rYF5WzzHDCIJS9j0BLm O/SG8lmBJnpv6c1V6CNN+oYuvMEeoD2BOiI2qCiCuogAunrwzYNs4p5+GzE++XGvmWYC QtmsMT175LnayNFNJH4q+CTwKyz/8jnPg35nPD6C5sqbqBtnv6Blz8sythMD4jqNnHCv nMyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762439792; x=1763044592; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XE9x4fc+RYkdMj5Dyqr3FFUVL1ho5xKWs3x4k2mRU9k=; b=rkubJ0PgbEtVLW8vr8L6Dt6SETf6fL+2kCkDYccAeMsJZ48Szh61OfZhLP9K0VoV9z weRm4+Iv5AHfq+z0FmgJEfeCQ9GmX1044/mxIIThLhs9U+tFolQ5TyGRHr6MfyqDw3iy fvsw/sQkcGXRDlTgOH3LJKZ3lhRjFr9gS/Pq5kNCKVkJpGGom+p4wiMA4URWe2WhZZW0 pQTXXhmKEY4mt8jTJmFtUWnntTx+0Xeq0/hzEHFITb/xmu/5FdyrI4Vsze5/uR0LBybk sC+830jekQFrBauimjkoJnSn5/6L0RgLwIm132ekvu2kEjAvIIZ1d3W/Fdx66lvi9Whb F3wg== X-Forwarded-Encrypted: i=1; AJvYcCVA9/wZdcuQ0RUQHoF7FC2XIqrcvB+Sb8pwAe1MruXrAlKLIBQMHUAJoSZyyNawAKl8OSZDrokinLF/JpU=@vger.kernel.org X-Gm-Message-State: AOJu0YwHyFNjDZBsta+/mMUeRgHrk7Sym9Z0hNP2QBSs+ZJeM74rftuw Wvyj7XWTUvkXzibo8HHJ6+cOK/VeaG8TptYNd/TdgzV0mlTOUGqofVhndQVBxxIBrlA= X-Gm-Gg: ASbGncupF9Fu8LlAH0oG+xDVdz090Ui4DjxGhYwRB33EccRckKwoPB9Vtoy4MNBYXC8 3muDwM4WbvfexxQxKljJEFNhkBa1eIssWr5JwRagX3rCHWnBPP3P/FSOiiIHA4kUqs6wJO7toGa yxE51KSCqImKSuwl9NxAfIeap3IBF1VdRyZfKiqFbfOERxo2trlH4ykOh6HRNGxpZTXnarXbyIP tcXTtgbqKBLK7L7XwbjdHJ1rLAPNoOmZ9IL1woXUL4Q6rB972buyUf7Rtu67RvrAJOiepIqoT4z hQFjfjEkDtVkzG/4AIQdqZ24CtBz/uJEJ6U+5ws0Ko6VvQiQh6AxPASQjC9agAZaKZWvUxreRsl Ub7fB+uW6Xap8s3fOZbu18ROg+GADu+bvcCIu3S/3AViL9evL+LwEp7y0khiEFtTmOf8jL8OZxZ vksdf8BkjqXH7IXykAFKEY2o6eLmAgfQ== X-Google-Smtp-Source: AGHT+IEYmXAoxIWRbuO5Z5xzzS2DR8XcUCus9/JcNYZ03UIg/MNn6rvkUWlxrMimVAu8IkCZl+3psg== X-Received: by 2002:a05:600c:35c3:b0:477:19af:31c2 with SMTP id 5b1f17b1804b1-47762030d69mr32505245e9.9.1762439792001; Thu, 06 Nov 2025 06:36:32 -0800 (PST) Received: from claudiu-X670E-Pro-RS.. ([82.78.167.134]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4775ce2cde0sm112185495e9.15.2025.11.06.06.36.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 06:36:31 -0800 (PST) From: Claudiu X-Google-Original-From: Claudiu To: stern@rowland.harvard.edu, gregkh@linuxfoundation.org, p.zabel@pengutronix.de, yoshihiro.shimoda.uh@renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, kuninori.morimoto.gx@renesas.com, geert+renesas@glider.be Cc: claudiu.beznea@tuxon.dev, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Claudiu Beznea Subject: [PATCH 2/4] usb: host: ehci-platform: Call reset assert/deassert on suspend/resume Date: Thu, 6 Nov 2025 16:36:23 +0200 Message-ID: <20251106143625.3050119-3-claudiu.beznea.uj@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251106143625.3050119-1-claudiu.beznea.uj@bp.renesas.com> References: <20251106143625.3050119-1-claudiu.beznea.uj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Claudiu Beznea The Renesas RZ/G3S SoC supports a power-saving mode in which power to most of the SoC components is turned off, including the USB blocks. On the resume path, the reset signal must be de-asserted before applying any settings to the USB registers. To handle this properly, call reset_control_assert() and reset_control_deassert() during suspend and resume, respectively. Signed-off-by: Claudiu Beznea Acked-by: Alan Stern --- drivers/usb/host/ehci-platform.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platf= orm.c index 57d5a7ddac5f..f61f095cedab 100644 --- a/drivers/usb/host/ehci-platform.c +++ b/drivers/usb/host/ehci-platform.c @@ -454,6 +454,17 @@ static int __maybe_unused ehci_platform_suspend(struct= device *dev) if (pdata->power_suspend) pdata->power_suspend(pdev); =20 + ret =3D reset_control_assert(priv->rsts); + if (ret) { + if (pdata->power_on) + pdata->power_on(pdev); + + ehci_resume(hcd, false); + + if (priv->quirk_poll) + quirk_poll_init(priv); + } + return ret; } =20 @@ -464,11 +475,18 @@ static int __maybe_unused ehci_platform_resume(struct= device *dev) struct platform_device *pdev =3D to_platform_device(dev); struct ehci_platform_priv *priv =3D hcd_to_ehci_priv(hcd); struct device *companion_dev; + int err; + + err =3D reset_control_deassert(priv->rsts); + if (err) + return err; =20 if (pdata->power_on) { - int err =3D pdata->power_on(pdev); - if (err < 0) + err =3D pdata->power_on(pdev); + if (err < 0) { + reset_control_assert(priv->rsts); return err; + } } =20 companion_dev =3D usb_of_get_companion_dev(hcd->self.controller); --=20 2.43.0 From nobody Mon Feb 9 10:16:14 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 455F33446C4 for ; Thu, 6 Nov 2025 14:36:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762439797; cv=none; b=GL1mQZ0ZO54qimjUT/Cdf33Xh66qeUQJfz1Ii5uycw19SpKUZRKaeIjAXllWI4Wj+AmRyIGn9sVM6m0/Cgyx5itBEhJgOUESGAkef6WvFaPAIXL4grkWplAd5sANXQmHuyQ6ZiLBkXA9grTbEMD5e0OmBU4rYyOdCDE6nFUtY9M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762439797; c=relaxed/simple; bh=y3nzsFdj3yflb35dkl3eldAeca6dXxagNF3fVi2B9xY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CnxLycW788o9FlyUv4J4EU6PUyyy3U+nWLHWjL3dPaeyk8S85K/66+pFZBEv5ymVz/JLKLJ6yjodu+y1hPVd7um6cx6qUbqHTcCIucgVIqu2vXECezJoQ79spwUhl1d+VTtZg6a6pShDWCtkUu9UAc+rrzQQYCwpTHRaFQIoTvY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=tuxon.dev; spf=pass smtp.mailfrom=tuxon.dev; dkim=pass (2048-bit key) header.d=tuxon.dev header.i=@tuxon.dev header.b=bIuM5Fl2; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=tuxon.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=tuxon.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=tuxon.dev header.i=@tuxon.dev header.b="bIuM5Fl2" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-471191ac79dso11775005e9.3 for ; Thu, 06 Nov 2025 06:36:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1762439793; x=1763044593; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HTsg2r6E/o8MY26Scy94jA8/h1trR6TBISeMWFJR7b8=; b=bIuM5Fl2eXGu4P5pBwuuv7f7omCfc7BQHmLtRfOAZSPeE8MTKd1Hrx4ikk1SHgyE+k 3tAegWrzCHi4ZMZliIzIlFhzxJckt11SYpJqEWGqNFh7DQoWSuiMGo4dE+jZy05kMXYD aekkI1wk7AeKLsAuNHD258zvXEfD7sxhCKhOCg+Qmiv1whzwycjNzdPvikkCeoQjnX2S dNiET1NpVfPWKcZcW8N7YayjVTtsG+xj0f9jCsDIg34qJ32lQou2ZvjwLaheZdp7OAfn NxxYkE6We4F6m8opycEqZHTQ5DmV4t0MjLsmwnO7gQDAEdXvzsIQHbNE1O+Wp4qvZOqi T/TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762439793; x=1763044593; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HTsg2r6E/o8MY26Scy94jA8/h1trR6TBISeMWFJR7b8=; b=hm7ZCEU7djju0+ofF7jYkxMngIuDMbnmtABLbghADLdSArBD0bf4uBQ86EVp4cTddq 00T4YYjUHXNfvT3JfgyU7LsG4nkWQ3uoux2zkE1VJWtBk/Qhm22FQbFgrj4gRoGn8f8Q BWidwFKZNNLGJyLSmHonkvXlBbNl4GCVlrESuAA/84HLJ02P2J2V0Fr6mcy2bQ2w8qNQ yeygDSD7VbWHfazVufhlybnWkaXHBLHSxU0WEmddEZ1qfZEAE5GAjZDXLau8OZm99bb2 rM6xzPmSaSdoRWgsoZrXyAATuOwVM1dBVVkY/KOukT4Ih9gL43S4lv+L0n5FR0OfMsui aDTA== X-Forwarded-Encrypted: i=1; AJvYcCU8b+/CVbUDbf7+Qu9eZ4pxjd2ho8/MJ2Z+A0zUPYo15uaLdsHLqZborDYFAGOYQWbvvjBEqskB1jcBBkw=@vger.kernel.org X-Gm-Message-State: AOJu0YzFU1p4dPW4IjqZKzklcEretejFn/OEArf4Q7Y8x5wgVN7aG+Cq RGX3SbmKttG+IIeiEKEvJRqg7bJr0QHip+VvJa5R4QCEbg3QmW2Orxo8IGZIorS9+Sw= X-Gm-Gg: ASbGnctSUH352dTUVRFVsYNrtOJ4ApBsr2ysV0w0hhrwelMqN8/YpDv30knbhwjCSH8 r5F70cusF24Gkn5CFlDwbpqQsGhm6yXJpINe4vFnndWT2LnPvL02uSL/t2kSdDdHfBVc7e9rPrh Wf5f7JB+enUR8Ei57jiGFhQab6GQ2d9Z36Z9bH4Ib57g51sYkjhqNkwR2skaas/nFNb7OodJxHu UEZzfOK95Rr6czA1xBkukuFryxKbh1c6sUBeJx3tfcoC22aydY0L+/Vu8ACmoxpOfdYICuudkQj l9vJ0+VHRvG5j+bzyLKQ+fNT95EBCaJAj2OZxYzci5NwKov9Q9qHe5oN1ZiBJKDtk3C1BU15X1R vIMNIhUyhrcnScJSMzyu/enKwbdAtv9vge66bpWOF9V8yiJO96ciXpt9TBXjGDNcuvAEcpAdez/ 4dD8mHdqL8lVkua9dTc3aVOAvAn8+K1A== X-Google-Smtp-Source: AGHT+IFMwFI0y4UOkA1UeCISOOftitPMtlGydWwWFlXxerZKxOUxOgHPLcxYVbwkO2J4pyUDe0NAiQ== X-Received: by 2002:a05:600c:358d:b0:477:b93:a7b8 with SMTP id 5b1f17b1804b1-4775cdbd478mr67500335e9.8.1762439793289; Thu, 06 Nov 2025 06:36:33 -0800 (PST) Received: from claudiu-X670E-Pro-RS.. ([82.78.167.134]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4775ce2cde0sm112185495e9.15.2025.11.06.06.36.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 06:36:32 -0800 (PST) From: Claudiu X-Google-Original-From: Claudiu To: stern@rowland.harvard.edu, gregkh@linuxfoundation.org, p.zabel@pengutronix.de, yoshihiro.shimoda.uh@renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, kuninori.morimoto.gx@renesas.com, geert+renesas@glider.be Cc: claudiu.beznea@tuxon.dev, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Claudiu Beznea Subject: [PATCH 3/4] usb: host: ohci-platform: Call reset assert/deassert on suspend/resume Date: Thu, 6 Nov 2025 16:36:24 +0200 Message-ID: <20251106143625.3050119-4-claudiu.beznea.uj@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251106143625.3050119-1-claudiu.beznea.uj@bp.renesas.com> References: <20251106143625.3050119-1-claudiu.beznea.uj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Claudiu Beznea The Renesas RZ/G3S SoC supports a power-saving mode in which power to most of the SoC components is turned off, including the USB blocks. On the resume path, the reset signal must be de-asserted before applying any settings to the USB registers. To handle this properly, call reset_control_assert() and reset_control_deassert() during suspend and resume, respectively. Signed-off-by: Claudiu Beznea --- drivers/usb/host/ohci-platform.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platf= orm.c index af26f1449bc2..2e4bb5cc2165 100644 --- a/drivers/usb/host/ohci-platform.c +++ b/drivers/usb/host/ohci-platform.c @@ -270,6 +270,7 @@ static int ohci_platform_suspend(struct device *dev) struct usb_hcd *hcd =3D dev_get_drvdata(dev); struct usb_ohci_pdata *pdata =3D dev->platform_data; struct platform_device *pdev =3D to_platform_device(dev); + struct ohci_platform_priv *priv =3D hcd_to_ohci_priv(hcd); bool do_wakeup =3D device_may_wakeup(dev); int ret; =20 @@ -280,6 +281,14 @@ static int ohci_platform_suspend(struct device *dev) if (pdata->power_suspend) pdata->power_suspend(pdev); =20 + ret =3D reset_control_assert(priv->resets); + if (ret) { + if (pdata->power_on) + pdata->power_on(pdev); + + ohci_resume(hcd, false); + } + return ret; } =20 @@ -288,11 +297,19 @@ static int ohci_platform_resume_common(struct device = *dev, bool hibernated) struct usb_hcd *hcd =3D dev_get_drvdata(dev); struct usb_ohci_pdata *pdata =3D dev_get_platdata(dev); struct platform_device *pdev =3D to_platform_device(dev); + struct ohci_platform_priv *priv =3D hcd_to_ohci_priv(hcd); + int err; + + err =3D reset_control_deassert(priv->resets); + if (err) + return err; =20 if (pdata->power_on) { - int err =3D pdata->power_on(pdev); - if (err < 0) + err =3D pdata->power_on(pdev); + if (err < 0) { + reset_control_assert(priv->resets); return err; + } } =20 ohci_resume(hcd, hibernated); --=20 2.43.0 From nobody Mon Feb 9 10:16:14 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9C81B32E695 for ; Thu, 6 Nov 2025 14:36:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762439799; cv=none; b=ma6BmbuisZOrr79vLUROQdhGwaIyv7nSVXUw/EmeYz1NOoGKh4g3HLis0kXmidPY5WPhn5/HbQ2DaSSHaud0LXqieTn6JGBKK9MZ9zRsIsvOyGeU97e5n9GNuJB8F5yCauP1Y0Sd7iMrS6+1bykZkMLv+qvZM7BTdyDhkO11GoE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762439799; c=relaxed/simple; bh=HLxsmV76ehddQN8d76HFTrl6xNiKy5eHzSIhXA5dsmI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RJbX4nBsLMiM5OiiaVxlDOi40+QPTrDipIniYF+vb/oL+xvFAKEkkDB+EokT6xiECZDSN+3s737BTgBAONMNlX3ReHbAQjBG22K/TzqojMNA5hG61OCrst0vu/vr0Fuj4CZdkAEKvYIJ3pyUIiQJ3h48FErDDjbNrone2BsYLlQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=tuxon.dev; spf=pass smtp.mailfrom=tuxon.dev; dkim=pass (2048-bit key) header.d=tuxon.dev header.i=@tuxon.dev header.b=XsKb/r75; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=tuxon.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=tuxon.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=tuxon.dev header.i=@tuxon.dev header.b="XsKb/r75" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-47728f914a4so6298045e9.1 for ; Thu, 06 Nov 2025 06:36:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1762439795; x=1763044595; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uwweW3VPRm8jVDmzvseiBOYWzO9CKnZgrSha6jb9mzw=; b=XsKb/r75CoRvVdoB20dF/p6RE2mSqr4Aqnc0D7YmEr6knednGjN4g5K1I5SJmmwo6p 0gy2A0OtzmMq2TclaTXKlvQYREJH0HDRjGaj2r1zjmAZIJQVURVhjqlq6Pn7ctt1y1PE UZ8aTwE92QYrfyY7FnL0CVET/4biqltc23d++hwmNOPmABa40teJEUzOz+X6/4Kj4zYF tMte4sW79PaLwyC8A1G6i7e3PolnkqgaCLup5XNEouQ0NzS+NStqsv3ZSAcQxPL1jiyi b3uY2FtTZKr/Ntj5oj4eiu64c/CySamVp3Czgoyqb1NdQQ8Bqg3EnRhRfMg5C+d/fCAn VRNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762439795; x=1763044595; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uwweW3VPRm8jVDmzvseiBOYWzO9CKnZgrSha6jb9mzw=; b=rvluXETMVMqITZGZFSc1xroBmdUZdhcQzeM7JKc3FY6SdOZ+tAYdFYzOfAgOfLcdhv f13D/ohDResQAVzVELX8hPKKwvpuMdxRi07jMbYsG8bIcKMaHVL3yLhwLVoFJGAI1iI+ HHcl5XI2artwGaEIguuSETqIAZIg68ZFvPd8yF6aVpBajC3MyI4wlj6JzxMCslLWDf5+ 6qJ4mCd4QeFTx5mi1HyWfkxm09QCWOEEknpBy8KqODeWGGzGfSAukpxHbXkuSLc5WFZz /2IcltH71ctjE/35mFm+IjG47Jlbc5P6UkguH2Mdu29aP2NsH6hgTjVixbtid/kXwVVw I7YA== X-Forwarded-Encrypted: i=1; AJvYcCWGc3sVwoBVYO2OJJi/n0ItFoJ0t+iyDbfmdfp+vmLy7FkQGhL3bwKoTCqqTIhnxfkfEfKSTqZzuzCrtEQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yz95YGFjWjAbE4uRF17wvy5UOzcsD6jgbU0JAnAWdkDLwWcuBq7 zExcqDF9KyRVePmY5kZBP8PDV7oYmCR3VpNcQjvUPSntX0A6sPm82HyUJE3Poe52ojE= X-Gm-Gg: ASbGncsms8x0/8S3xBqOqPJymDNqGwb9mpNucyVTKu9L6uTzt98lnF5rIzqGXqVdHYL IIRF0No2P6s1RQQAFpAmAI1oTWhdgWn6ESdpqWhcypr+/Pspo7FucK7nNxFJCope9iXCUkQr1t+ 3zklmQvP2V7quKqXXNCEe9RpTbwXzPGzFl4VuU5LQ+1cuhmBpKaQFHWI+fMHh4c0N2+TeYNX/u4 /IP6YWeNvCCFpekJIO4yre/z/OoAPqJp5vqHweau7emPIdRE6rNcCe5hU7aEcv6aSSHLpm2GH5N fNxz//AjCyN+q3g500ubUNHRS1ybvvKmTw0Wby4yDnGmOjt3N7wm7ZokMA7gNAvjphTN/kgxdFu Vjib0YPkfPLap2/D6PwyWDLeAYprdsMeCjMyJU8GjrsYCqEmc1nzEO0llLN4n7aNc0PsHE+o/8s B8r8eCnFU/rbYpF9BgAYZmDs6L5JQOBjRaku8olwSB X-Google-Smtp-Source: AGHT+IGGbNMu5TPPDVt6ESZjoI+4K6fRzX8Tg/wskLMEN2NLbcif0mgNZCyLd/u4ReVocqUwcHhm0g== X-Received: by 2002:a05:600c:4703:b0:477:639d:c85b with SMTP id 5b1f17b1804b1-477639dc896mr28168675e9.2.1762439794670; Thu, 06 Nov 2025 06:36:34 -0800 (PST) Received: from claudiu-X670E-Pro-RS.. ([82.78.167.134]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4775ce2cde0sm112185495e9.15.2025.11.06.06.36.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Nov 2025 06:36:34 -0800 (PST) From: Claudiu X-Google-Original-From: Claudiu To: stern@rowland.harvard.edu, gregkh@linuxfoundation.org, p.zabel@pengutronix.de, yoshihiro.shimoda.uh@renesas.com, prabhakar.mahadev-lad.rj@bp.renesas.com, kuninori.morimoto.gx@renesas.com, geert+renesas@glider.be Cc: claudiu.beznea@tuxon.dev, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Claudiu Beznea Subject: [PATCH 4/4] usb: renesas_usbhs: Assert/de-assert reset signals on suspend/resume Date: Thu, 6 Nov 2025 16:36:25 +0200 Message-ID: <20251106143625.3050119-5-claudiu.beznea.uj@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251106143625.3050119-1-claudiu.beznea.uj@bp.renesas.com> References: <20251106143625.3050119-1-claudiu.beznea.uj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Claudiu Beznea The Renesas RZ/G3S SoC supports a power-saving mode in which power to most SoC components is turned off, including the USB subsystem. To properly restore from such a state, the reset signal needs to be asserted/de-asserted during suspend/resume. Add reset assert/de-assert on suspend/resume. The resume code has been moved into a separate function to allow reusing it in case reset_control_assert() from suspend fails. Signed-off-by: Claudiu Beznea --- drivers/usb/renesas_usbhs/common.c | 35 ++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs= /common.c index dc2fec9168b7..cf4a0367d6d6 100644 --- a/drivers/usb/renesas_usbhs/common.c +++ b/drivers/usb/renesas_usbhs/common.c @@ -827,10 +827,26 @@ static void usbhs_remove(struct platform_device *pdev) pm_runtime_disable(&pdev->dev); } =20 +static void usbhsc_restore(struct device *dev) +{ + struct usbhs_priv *priv =3D dev_get_drvdata(dev); + struct platform_device *pdev =3D usbhs_priv_to_pdev(priv); + + if (!usbhs_get_dparam(priv, runtime_pwctrl)) { + usbhsc_power_ctrl(priv, 1); + usbhs_mod_autonomy_mode(priv); + } + + usbhs_platform_call(priv, phy_reset, pdev); + + usbhsc_schedule_notify_hotplug(pdev); +} + static int usbhsc_suspend(struct device *dev) { struct usbhs_priv *priv =3D dev_get_drvdata(dev); struct usbhs_mod *mod =3D usbhs_mod_get_current(priv); + int ret; =20 if (mod) { usbhs_mod_call(priv, stop, priv); @@ -840,22 +856,23 @@ static int usbhsc_suspend(struct device *dev) if (mod || !usbhs_get_dparam(priv, runtime_pwctrl)) usbhsc_power_ctrl(priv, 0); =20 - return 0; + ret =3D reset_control_assert(priv->rsts); + if (ret) + usbhsc_restore(dev); + + return ret; } =20 static int usbhsc_resume(struct device *dev) { struct usbhs_priv *priv =3D dev_get_drvdata(dev); - struct platform_device *pdev =3D usbhs_priv_to_pdev(priv); - - if (!usbhs_get_dparam(priv, runtime_pwctrl)) { - usbhsc_power_ctrl(priv, 1); - usbhs_mod_autonomy_mode(priv); - } + int ret; =20 - usbhs_platform_call(priv, phy_reset, pdev); + ret =3D reset_control_deassert(priv->rsts); + if (ret) + return ret; =20 - usbhsc_schedule_notify_hotplug(pdev); + usbhsc_restore(dev); =20 return 0; } --=20 2.43.0