From nobody Mon Feb 9 14:02:26 2026 Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.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 B9D542BE036 for ; Wed, 8 Oct 2025 04:25:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759897538; cv=none; b=XZ7okkrJ+oH5dK9ZVCvJul8ZMpA/rH8RPs2Fl0jQJ5uNT6TQaDmoiGKVTLUYCjOPvXm8x6S1AHBx6cfvUxHuHH254eHj5mXADz/fEs1JVKrhr+Khm/IKCahAaahrw9BATShTctqurNMxFJcTUQG9Tn6NrKuLivH627KOFEDFhSI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759897538; c=relaxed/simple; bh=D76b8g5MMMam1XG5CeoG+dRqRhsn10Qo6IX3BhaGdcI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ArpBfquaChXaEFJE2NHhATqQ72KBupPlfD940BoXmblimLJwJbyD6FAJFJRjFZ6Cf4WD4qgyWURzNJPueyQdke7iizkCpvnaLO+uKjHe6H17qfeM5vOrpzsBsFlXtIIVgNHvZv/DJ8VF5bHDNUd5gcQDCydrnIljKoXVfuWuAlA= 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=qMHa/TXN; arc=none smtp.client-ip=209.85.218.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="qMHa/TXN" Received: by mail-ej1-f50.google.com with SMTP id a640c23a62f3a-afcb7322da8so1458332866b.0 for ; Tue, 07 Oct 2025 21:25:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1759897534; x=1760502334; 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=VZ9SuUW1UzNO7L8W8R87ast4mEdS/6k2/bbpjsln1KA=; b=qMHa/TXN8ASIciEhpmYTr7YPe+zB/Hi5L70iBuruZMTa2P5FF/EA6JxGS8wRNGk1Fz zhtp21naDkOWSgf4bO3TKsV9KD9zy4mQWbkEwRebo8226TzxgFRecu2DrFW35BOkr3Ml h/SGbe1aUSLtNsrG0wSc4bvtaFSl5tzy7CC8Bw7sv/1B79JBn3j3EyaBb0xbVsHOBS9R JHh9cbVDSUDdDDc2lSi76zWlAtdrnSKwu1L8Zv+isJ8HGm40+5EfFevMM98rEQPbQyNQ FVvBKuSpziHjlNl6iWMcviEO3zChVrOTd2+TFVP8F8IHUxI+irLRQVfJUumflkD30Hjg elaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759897534; x=1760502334; 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=VZ9SuUW1UzNO7L8W8R87ast4mEdS/6k2/bbpjsln1KA=; b=Tm5Bf0+skMPGZqdIG5ctChwiRP2ZOsBI9JGJ5ivEE5Klfy/rQFbL9E/Z+q3Jcd4o3D mkEB+LNmgCt9Q2IkaIoqOFbM40v/M5I6JkVYnrzf6ABKCaWivedbt62CPeYa8SfsbFct GwYGU8OcqskM6YoznzHXHAWY1jaU4vppYI/p8jGhYZuLI+gn4awUYYwrfK9H//61Kp7D /UuhHlARTpjDSdeNu+6fdIkEwH0hvDt8UlrtBR0Yh+x2kHmXHECH9Le7a3/yXvOjJ117 nZl+LlhNjgXoxQEOV8nDfk/dpylh1fnD8PL/CxG1xizl4C8cQEARr88WN0aUl3oHyN40 1ilg== X-Forwarded-Encrypted: i=1; AJvYcCVEqZWcUS/TGyTKwVSEK9WKbRglm3crXhcXI732nYUC68RlOi8vxnhrxncZUl8/vfEC48t65gU8EWngJsM=@vger.kernel.org X-Gm-Message-State: AOJu0YyI8cVg1nzXFhv0pidB4kD4IxkNu56VnJx76/lemTjwT05KiREz aUSX0B5096gwx2LdXQ8kg9LGCVpq2a6sL8ESAiiyLR8tuIraggxchHYorGb6DkEJ/yRDXsFvzVQ nbxXr X-Gm-Gg: ASbGncvb12vzTxUHC3u6sG4tSWTYe4sHa0LGzLUmn8Z02bxF+bP7f9a7pj0tAGOanAp mgnFjjCDTNMlMU7aXwpkBMDw5EcbYqoXm4NFX6l7+NXBS8qJzAdYx1PvtGTSaenacAng7K6dfTX r/MoC0Tcf6kgohdsraB2/G5FhcDFR2oT1W+NxsZvLpZsPdJe3fNCWEfIPElcJuNegQbubpCKLC9 oOsQJCTYEzq7TnCEr2h9XBRC2F8CKCTLlwALlQZAATEM51jo4rqrCch9f5QiYL88u3FgJOoioNC /nQAjkaVovxZSt0R88Q1VizM1yKPkCy3RN/lb5unLgGoiEkk53ckosEdbubEArfM3hlZLQHOhnd zojhPvOeiRSkIDvS87YQMQqgxtXbhVQN3crE2T6CWH4exLsrtuqwmDT/kqX/k1JwfZX5cGUXr7u 0= X-Google-Smtp-Source: AGHT+IEZSlz/EKrFkQ8tGzGGZjHV3u81jhu2PpcsjCGbnFA9tn7eJ3yvjQACOpvp1GYcqUvP3wSQMQ== X-Received: by 2002:a17:907:2d8a:b0:b09:2331:f14d with SMTP id a640c23a62f3a-b50acb0e556mr182268866b.64.1759897534049; Tue, 07 Oct 2025 21:25:34 -0700 (PDT) Received: from claudiu-X670E-Pro-RS.. ([82.78.167.59]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b4865e77427sm1583124466b.36.2025.10.07.21.25.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Oct 2025 21:25:33 -0700 (PDT) From: Claudiu X-Google-Original-From: Claudiu To: wsa+renesas@sang-engineering.com, ulf.hansson@linaro.org, p.zabel@pengutronix.de Cc: claudiu.beznea@tuxon.dev, linux-mmc@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Claudiu Beznea Subject: [PATCH 1/3] mmc: renesas_sdhi: Deassert the reset signal on probe Date: Wed, 8 Oct 2025 07:25:23 +0300 Message-ID: <20251008042526.3312597-2-claudiu.beznea.uj@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251008042526.3312597-1-claudiu.beznea.uj@bp.renesas.com> References: <20251008042526.3312597-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 Deassert the reset signal of the SDHI controller during probe to avoid relying on the previous bootloaders. Without deasserting the reset signal, the SDHI controller will not function. Signed-off-by: Claudiu Beznea Reviewed-by: Wolfram Sang Tested-by: Wolfram Sang --- drivers/mmc/host/renesas_sdhi_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesa= s_sdhi_core.c index f56fa2cd208d..c4aaf534868c 100644 --- a/drivers/mmc/host/renesas_sdhi_core.c +++ b/drivers/mmc/host/renesas_sdhi_core.c @@ -1103,7 +1103,7 @@ int renesas_sdhi_probe(struct platform_device *pdev, if (IS_ERR(priv->clk_cd)) return dev_err_probe(&pdev->dev, PTR_ERR(priv->clk_cd), "cannot get cd c= lock"); =20 - priv->rstc =3D devm_reset_control_get_optional_exclusive(&pdev->dev, NULL= ); + priv->rstc =3D devm_reset_control_get_optional_exclusive_deasserted(&pdev= ->dev, NULL); if (IS_ERR(priv->rstc)) return PTR_ERR(priv->rstc); =20 --=20 2.43.0 From nobody Mon Feb 9 14:02:26 2026 Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) (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 077C22BEC32 for ; Wed, 8 Oct 2025 04:25:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759897538; cv=none; b=SLoLnc3pj843ZL9uoohPMSrwba6nn10ySaNckoXNEupl0QoweJSngoCUskZrbDtpjx1NSuZqwYCxd4n9dsVmI68Md1cqXDy0Nct5/BflmkHTWGO/jFAxuvNpDd42238nP/w0schGniUwQ+vf5/2VzQKGEGBWMjhAp2CHMBDq55s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759897538; c=relaxed/simple; bh=3Ao8jjoBvZBqtIVC8MLuT4qJo/yZzdO/7FeFgmIHd4g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ABbpnQDgmPX0gh+V8YzIo/fDt5FlVAjcq1CWImVEcCG2klKF7oa27CsLp52VS8+cruTjp/DSrLJPh/RoMyH8CSnxkiV7wEUph8TJzA0Yy7WAJMHRKTB8RhvZf9FanuuZk+r1Q+5/GsUPc7YbAG9IX2JauSYt5lU8v7gNhj5Q2uo= 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=X981XozF; arc=none smtp.client-ip=209.85.218.43 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="X981XozF" Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-b4539dddd99so1066372566b.1 for ; Tue, 07 Oct 2025 21:25:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1759897535; x=1760502335; 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=krVPS+tcjWILrBEvMprlBs9nTWS64bL3aDSTEllEXZo=; b=X981XozFPtxiTvt1xFuIxbC3iJWYGlMjGGditmLOem2yclKeRZEd8bJ512jqpUwGOv p+MFnvovM7VBRueD/Yj+wyJ64CjceUQVnTnwLRnx0bWCm/F13vfawFgBreXVnihDNWte UinQLB42teI/y5fiu+h1V0SuM9qwFl5a9vtUUKWGw9d9kbYwgZnciCw5UYQq8PfxVSKZ njGYOJLOgjGEm0yABDWWPjOqBBbae29Yj+xkwjFm4OZKVTLCGmVw615znEWbvYv+BFQ5 XbVFj8sT2aa2lJe2pBhwBUv9jRQYbynAQtJ6/LdGGE+tftMUZUOvkmZl6HzqebXc47gM oXYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759897535; x=1760502335; 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=krVPS+tcjWILrBEvMprlBs9nTWS64bL3aDSTEllEXZo=; b=YOmWYfd2ZA1eEggfeuBo6a8nrNI8tIcsyMTflGLcL0NYRhJIz4B6tVFU1qQpTVun9a ZRAxx5Cts3b5Ej3m+/CP/BOu2mqmQVSRLsJlFl91VkFvShM+DLqtDGGJB1wsHnZ/sGOA sRwZmOO72OI5l+lLC3gO6ivcuABA57OVxtGaNcqleZDiVk76UeP3SJknpA0YXhYnCnZB bXtgqLrK1+ffzxQXLbchVoBAkIrbSAbn0O2j2lLx6ZRDzu6TmKJPJOjBuzUiYphKAbHP AIer5I/YptWUtmyVZxj4TbpLzHvSVJE0wzDiGCMgsKBnFvNjJBxutvYGn2NZ82H9DUUv cKDA== X-Forwarded-Encrypted: i=1; AJvYcCVN5hER1N8tuYaqx4yTvR+J7PH4CqalzkxqEctSUT3BqPeaeU0MfgTh4wZkBIfn7yGUpQ52dke/TyZZGos=@vger.kernel.org X-Gm-Message-State: AOJu0YyumibtEAKCU747nYK1AZqII8U1gVEjdIfq4CZofXv4VYs1kglU /YDqZQISlp4zRg4qIwcAmtg4bLaTvr0lrd0fPzhiPuBnI0mupSZzo24FZz4r1Qrgqa8= X-Gm-Gg: ASbGncu4RpBSUbgcwof/g1KlEeh19CwOVmwDKB20/q6SQyPcRXjS2v4ibcAX2H0LQ5H Mo5GsxdqrhKKfon5WA7IOM31J9oY8Ij/9IZyn198SVDQEoaDTCugd6bnDmKjH7qmENmtpKYzTop ZdSwq9+Zv/6MYTJUfQgp6aA3cAHGaA++mbHBA390VU8oeiz6gLWxdkS3/3kWlseEyRI9vJL37A6 3SOJiXSm3tkQFN5PZP+nVtDBZfe7fyMYCIuhzEotceTJ1zZ3pXzxp4iKafRESU6nr0e1QqmlYma L1SahWOpubZa1PEJo7aVjx7woeVBa2SmygYznG0YVUs4ji7N9eKUcmEz0XYMhoMqGVr2GHPq4+t RytmRSUoDqbrTna9oHUTdLT8+PxwQLH019FoOM68HnR2ivztRq24DtbuGlzrFfezVUtiK9g/Jxj k= X-Google-Smtp-Source: AGHT+IEWNGUd2OZUlsC69nHjiF4VLGxKkwz/yIUFi5UKCe5EfHzFMpRTzUw4PGXAnxeWFWWemf2FfQ== X-Received: by 2002:a17:907:948f:b0:b40:e7ee:b5ec with SMTP id a640c23a62f3a-b50ac6c92d4mr212093266b.59.1759897535287; Tue, 07 Oct 2025 21:25:35 -0700 (PDT) Received: from claudiu-X670E-Pro-RS.. ([82.78.167.59]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b4865e77427sm1583124466b.36.2025.10.07.21.25.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Oct 2025 21:25:34 -0700 (PDT) From: Claudiu X-Google-Original-From: Claudiu To: wsa+renesas@sang-engineering.com, ulf.hansson@linaro.org, p.zabel@pengutronix.de Cc: claudiu.beznea@tuxon.dev, linux-mmc@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Claudiu Beznea Subject: [PATCH 2/3] mmc: renesas_sdhi: Switch to SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() and pm_ptr() Date: Wed, 8 Oct 2025 07:25:24 +0300 Message-ID: <20251008042526.3312597-3-claudiu.beznea.uj@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251008042526.3312597-1-claudiu.beznea.uj@bp.renesas.com> References: <20251008042526.3312597-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 SET_SYSTEM_SLEEP_PM_OPS() and SET_RUNTIME_PM_OPS() are deprecated now and require __maybe_unused protection against unused function warnings. The usage of pm_ptr() and SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() allows the compiler to see the functions, thus suppressing the warning. Thus drop the __maybe_unused markings. Signed-off-by: Claudiu Beznea Tested-by: Wolfram Sang --- drivers/mmc/host/renesas_sdhi_internal_dmac.c | 11 +++++------ drivers/mmc/host/tmio_mmc.h | 2 -- drivers/mmc/host/tmio_mmc_core.c | 2 -- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/mmc/host/renesas_sdhi_internal_dmac.c b/drivers/mmc/ho= st/renesas_sdhi_internal_dmac.c index 9e3ed0bcddd6..7ceb7b977a0b 100644 --- a/drivers/mmc/host/renesas_sdhi_internal_dmac.c +++ b/drivers/mmc/host/renesas_sdhi_internal_dmac.c @@ -599,18 +599,17 @@ static int renesas_sdhi_internal_dmac_probe(struct pl= atform_device *pdev) } =20 static const struct dev_pm_ops renesas_sdhi_internal_dmac_dev_pm_ops =3D { - SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, - pm_runtime_force_resume) - SET_RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, - tmio_mmc_host_runtime_resume, - NULL) + SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume) + RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, + tmio_mmc_host_runtime_resume, + NULL) }; =20 static struct platform_driver renesas_internal_dmac_sdhi_driver =3D { .driver =3D { .name =3D "renesas_sdhi_internal_dmac", .probe_type =3D PROBE_PREFER_ASYNCHRONOUS, - .pm =3D &renesas_sdhi_internal_dmac_dev_pm_ops, + .pm =3D pm_ptr(&renesas_sdhi_internal_dmac_dev_pm_ops), .of_match_table =3D renesas_sdhi_internal_dmac_of_match, }, .probe =3D renesas_sdhi_internal_dmac_probe, diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index c8cdb1c0722e..b9de03325c58 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -209,10 +209,8 @@ void tmio_mmc_enable_mmc_irqs(struct tmio_mmc_host *ho= st, u32 i); void tmio_mmc_disable_mmc_irqs(struct tmio_mmc_host *host, u32 i); irqreturn_t tmio_mmc_irq(int irq, void *devid); =20 -#ifdef CONFIG_PM int tmio_mmc_host_runtime_suspend(struct device *dev); int tmio_mmc_host_runtime_resume(struct device *dev); -#endif =20 static inline u16 sd_ctrl_read16(struct tmio_mmc_host *host, int addr) { diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_c= ore.c index 775e0d9353d5..8be642f737c7 100644 --- a/drivers/mmc/host/tmio_mmc_core.c +++ b/drivers/mmc/host/tmio_mmc_core.c @@ -1286,7 +1286,6 @@ void tmio_mmc_host_remove(struct tmio_mmc_host *host) } EXPORT_SYMBOL_GPL(tmio_mmc_host_remove); =20 -#ifdef CONFIG_PM static int tmio_mmc_clk_enable(struct tmio_mmc_host *host) { if (!host->clk_enable) @@ -1331,7 +1330,6 @@ int tmio_mmc_host_runtime_resume(struct device *dev) return 0; } EXPORT_SYMBOL_GPL(tmio_mmc_host_runtime_resume); -#endif =20 MODULE_DESCRIPTION("TMIO MMC core driver"); MODULE_LICENSE("GPL v2"); --=20 2.43.0 From nobody Mon Feb 9 14:02:26 2026 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (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 43F5F2BEFE7 for ; Wed, 8 Oct 2025 04:25:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759897540; cv=none; b=f7LsU7jp6NwEYFW/r2vMWGjnVrijJD2UtPm6eYv9WCvIW6Kzr0LKL9gSR1RHsXGsB0wM37Y/dWbo8AYfV5UyBmtEUVFS+fz0TidmzAvpyHSqY0fu6KsbfPcuePLO1iPZlAjWpMItC8azKHURwrJQ//pLgALyV7Te6FCAMjQ1UAg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759897540; c=relaxed/simple; bh=/cwkr9llp/mR6slfiaeDTI1dTaMIIZN5Dk0EHahwG00=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=R71/y5t4rJK3U0AFcK2BjoLwXlX9Cmw1pDfTwLr/PAwBS02o9SGy2xP8dijlhjaVQT2edKdxaWDJ6zg8JNe+jdE7plpWzguVE0tu72rpdjdTd3ACD3QxgCuDVNH+oWD8gsBoKZjimotr43Fh95tXF7mXvTL1xBxrhVCxUTmcTuM= 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=R0gPE6xM; arc=none smtp.client-ip=209.85.218.49 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="R0gPE6xM" Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-b4f323cf89bso342870366b.2 for ; Tue, 07 Oct 2025 21:25:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tuxon.dev; s=google; t=1759897536; x=1760502336; 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=iosQWc3K2vVa/XAvobbGpvWGWDlaRdHniq3qdqd8DhM=; b=R0gPE6xM8Pg5WRAWPEV3gWgeEpFQpa0w+WHJmWhCxBpGyKCAQPjMQHL/kOqZyrlacK bzIFP95kO0wdB+5Fh5GQ9rVsu+oEDdFJDITcBYl3fObG9Xs5cxBnXJpqooc9jCcEZb/m 547CO7TdlJZyUyTwU6yc/SMRW/5mPWNTzgaon/3HljFlFZOWYetiXS0Y6Fj/8lp5tc7g 7hZSrLZsEmSrLHfVo1+DSjvxYIqmLwf/01fMd4q8mt3Ui3MlUvnfYhCqZUoOEnw+QVCm GRSAxzt/iVnRBXcaFFhL2BreynV6BCejZ6iZ4BDJGuTA2aU1Qaj9/nDr7ZAGlp6bW9TG XqqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759897536; x=1760502336; 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=iosQWc3K2vVa/XAvobbGpvWGWDlaRdHniq3qdqd8DhM=; b=qjNOxenaOLI883XtbnboCfw3BEgA32R6fR0LO+AlTOTIjlDocvetiuHwl9/2t1szBU w0P4bAlY0hlq1ZInJrssvauowtnzf/yip0jjWi+OffTWHkofvgGbYn/LbtMg0EtSApj5 YkALAldw6RsTIs1+NxIvigrEPnMXi3JmfUFAbclC8EqKvRMlSGbF0kl5Z7E08AXOMQVj EIhTg4/10DnTG9OqIZMIGQG133uVAhJFn0XDR9bXLcqW5i4G8M1+sUakjSdepM4ovWZO bckJwF8m9xaQy6qXYC/ZvhAJ9OZFYmHYFpRa3n8GRDF8oF43qELRtjsB2WnwzIl9hvnL reSQ== X-Forwarded-Encrypted: i=1; AJvYcCXRFPob10HNr1VxQo1YoGMHDv/E7fsuxl7iF3MMZejHhnMCXedV0g2pL+lRsDewF/R6mAF84HT/Sn2Yxds=@vger.kernel.org X-Gm-Message-State: AOJu0Yze3mL/irtAQIr8nZIU/t1w8Oz25EAfB5Yfg+I8pijn7f9gcj5l t0x93VHu5LOxr8Pwm7OXKrDzyZFZD32aT2TIdIzLjFHfSDPlEFtBp9Bu/gex00yNvVY= X-Gm-Gg: ASbGnct+ZJN20VgNY64zlOxhMrUxuDWutfAYOCdmv5y/lsmZhCQQZ53hJy1e7/1TlU9 ifKqLaIsgJgzRoqmxfJYoSH/b2P8iww+xQgG28RAZitgD79S1FzKyFahfs6nptWACIElWuBjN3K EYSDv3EzukWjZZ58VEIFnZYDz8QLdE2goCvTGdcXLUqoq05LGhb7ReMfcYY+MbDJ1uSaJKJcF7X JkKkj+dhV6pPxmGnZBZ82jMjpWpxmeRTVSBS0dXwGtyu1pcSf/iYotoywVhgV3SYNx1j+c/vlCV lJ9iDrxCIo6d6L/mWQVyXqeFI/bIRsF+oQGrTAALPnRiM7RXcGwUFZWC/HtXjGOYSiQJujc3ke/ Pj9JpuBSo92opPYpa9umlDxntodYIJCTC7btZ/AJx+E7DkhYxWfD34dg6BSjwX13HOugPr5qNnE Y= X-Google-Smtp-Source: AGHT+IGeUnd2/6aVeIDKjhrDUfDyL/wkoJPBTkCJVt+SNcjIJPmnFTJLzgMbr2ZsLUVCNbNaLjPvlQ== X-Received: by 2002:a17:907:3e92:b0:b4d:2ac5:81b4 with SMTP id a640c23a62f3a-b50aa48fc85mr225136266b.19.1759897536567; Tue, 07 Oct 2025 21:25:36 -0700 (PDT) Received: from claudiu-X670E-Pro-RS.. ([82.78.167.59]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b4865e77427sm1583124466b.36.2025.10.07.21.25.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Oct 2025 21:25:35 -0700 (PDT) From: Claudiu X-Google-Original-From: Claudiu To: wsa+renesas@sang-engineering.com, ulf.hansson@linaro.org, p.zabel@pengutronix.de Cc: claudiu.beznea@tuxon.dev, linux-mmc@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Claudiu Beznea Subject: [PATCH 3/3] mmc: renesas_sdhi: Add suspend/resume hooks Date: Wed, 8 Oct 2025 07:25:25 +0300 Message-ID: <20251008042526.3312597-4-claudiu.beznea.uj@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251008042526.3312597-1-claudiu.beznea.uj@bp.renesas.com> References: <20251008042526.3312597-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 Add suspend/resume hooks which assert/deassert the reset signals, along with forcing runtime suspend/resume. This allows using the driver in scenarios where the resume is done with the help of bootloader and the bootloader disables the SDHI clocks, resets, IRQs before passing execution to Linux. Signed-off-by: Claudiu Beznea Reviewed-by: Wolfram Sang Tested-by: Wolfram Sang --- drivers/mmc/host/renesas_sdhi.h | 3 ++ drivers/mmc/host/renesas_sdhi_core.c | 37 +++++++++++++++++++ drivers/mmc/host/renesas_sdhi_internal_dmac.c | 3 +- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/renesas_sdhi.h b/drivers/mmc/host/renesas_sdh= i.h index 084964cecf9d..afc36a407c2c 100644 --- a/drivers/mmc/host/renesas_sdhi.h +++ b/drivers/mmc/host/renesas_sdhi.h @@ -9,6 +9,7 @@ #ifndef RENESAS_SDHI_H #define RENESAS_SDHI_H =20 +#include #include #include #include @@ -107,4 +108,6 @@ int renesas_sdhi_probe(struct platform_device *pdev, const struct renesas_sdhi_of_data *of_data, const struct renesas_sdhi_quirks *quirks); void renesas_sdhi_remove(struct platform_device *pdev); +int renesas_sdhi_suspend(struct device *dev); +int renesas_sdhi_resume(struct device *dev); #endif diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesa= s_sdhi_core.c index c4aaf534868c..2a310a145785 100644 --- a/drivers/mmc/host/renesas_sdhi_core.c +++ b/drivers/mmc/host/renesas_sdhi_core.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -1317,5 +1318,41 @@ void renesas_sdhi_remove(struct platform_device *pde= v) } EXPORT_SYMBOL_GPL(renesas_sdhi_remove); =20 +int renesas_sdhi_suspend(struct device *dev) +{ + struct tmio_mmc_host *host =3D dev_get_drvdata(dev); + struct renesas_sdhi *priv =3D host_to_priv(host); + int ret; + + ret =3D pm_runtime_force_suspend(dev); + if (ret) + return ret; + + ret =3D reset_control_assert(priv->rstc); + if (ret) + pm_runtime_force_resume(dev); + + return ret; +} +EXPORT_SYMBOL_GPL(renesas_sdhi_suspend); + +int renesas_sdhi_resume(struct device *dev) +{ + struct tmio_mmc_host *host =3D dev_get_drvdata(dev); + struct renesas_sdhi *priv =3D host_to_priv(host); + int ret; + + ret =3D reset_control_deassert(priv->rstc); + if (ret) + return ret; + + ret =3D pm_runtime_force_resume(dev); + if (ret) + reset_control_assert(priv->rstc); + + return ret; +} +EXPORT_SYMBOL_GPL(renesas_sdhi_resume); + MODULE_DESCRIPTION("Renesas SDHI core driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/mmc/host/renesas_sdhi_internal_dmac.c b/drivers/mmc/ho= st/renesas_sdhi_internal_dmac.c index 7ceb7b977a0b..9347017d47c4 100644 --- a/drivers/mmc/host/renesas_sdhi_internal_dmac.c +++ b/drivers/mmc/host/renesas_sdhi_internal_dmac.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include =20 @@ -599,7 +598,7 @@ static int renesas_sdhi_internal_dmac_probe(struct plat= form_device *pdev) } =20 static const struct dev_pm_ops renesas_sdhi_internal_dmac_dev_pm_ops =3D { - SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume) + SYSTEM_SLEEP_PM_OPS(renesas_sdhi_suspend, renesas_sdhi_resume) RUNTIME_PM_OPS(tmio_mmc_host_runtime_suspend, tmio_mmc_host_runtime_resume, NULL) --=20 2.43.0