From: Artem Shimko <a.shimko.dev@gmail.com>
To: p.zabel@pengutronix.de
Cc: a.shimko.dev@gmail.com, andi.shyti@kernel.org,
andriy.shevchenko@linux.intel.com, jsd@semihalf.com,
linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org,
mika.westerberg@linux.intel.com
Subject: [PATCH v2 1/3] i2c: designware-platdrv: simplify reset control with devm variant
Date: Tue, 11 Nov 2025 14:45:57 +0300 [thread overview]
Message-ID: <20251111114559.3188740-1-a.shimko.dev@gmail.com> (raw)
In-Reply-To: <e3c2096459bdd0c1d48c00a837cc7f8c18044631.camel@pengutronix.de>
The current implementation uses separate calls to acquire and deassert
reset control, requiring manual error handling for the deassertion
operation. This can be simplified using the dedicated devm function that
combines both operations.
Replace devm_reset_control_get_optional_exclusive() with
devm_reset_control_get_optional_exclusive_deasserted(), which handles both
reset acquisition and deassertion in a single call. This eliminates
the need for explicit deassertion and its associated error checking while
maintaining the same functional behavior through automatic resource
management.
Suggested-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Artem Shimko <a.shimko.dev@gmail.com>
---
Hi Philip,
That works, thank you.
I also added two more separate commits to improve the driver.
--
Regards,
Artem
ChangeLog:
v2: Simplify reset control using devm_reset_control_get_optional_exclusive_deasserted()
* Replace separate reset acquisition and deassertion with combined function
* Remove explicit reset_control_deassert() call and error handling
* Maintain same functionality with cleaner code
* Add devm_add_action_or_reset() to fully automate reset management
* Remove all manual reset_control_assert() calls from probe and remove
* Streamline error handling by removing goto exit_probe and using direct cleanup
drivers/i2c/busses/i2c-designware-platdrv.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 34d881572351..c77029e520dc 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -236,11 +236,9 @@ static int dw_i2c_plat_probe(struct platform_device *pdev)
if (ret)
return ret;
- dev->rst = devm_reset_control_get_optional_exclusive(device, NULL);
+ dev->rst = devm_reset_control_get_optional_exclusive_deasserted(device, NULL);
if (IS_ERR(dev->rst))
- return dev_err_probe(device, PTR_ERR(dev->rst), "failed to acquire reset\n");
-
- reset_control_deassert(dev->rst);
+ return PTR_ERR(dev->rst);
ret = i2c_dw_fw_parse_and_configure(dev);
if (ret)
--
2.43.0
next prev parent reply other threads:[~2025-11-11 11:46 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-11 7:53 [PATCH RESEND] i2c: designware-platdrv: handle reset control deassert error Artem Shimko
2025-11-11 9:15 ` Philipp Zabel
2025-11-11 11:45 ` Artem Shimko [this message]
2025-11-11 11:45 ` [PATCH v2 2/3] i2c: designware-platdrv: complete reset control devm conversion Artem Shimko
2025-11-11 12:43 ` Philipp Zabel
2025-11-11 14:09 ` [PATCH v3] i2c: designware-platdrv: simplify reset control and error handling Artem Shimko
2025-11-11 14:33 ` Philipp Zabel
2025-11-11 14:33 ` [PATCH v2 2/3] i2c: designware-platdrv: complete reset control devm conversion Philipp Zabel
2025-11-11 14:55 ` [PATCH v4] i2c: designware-platdrv: simplify reset control and error handling Artem Shimko
2026-01-20 13:55 ` Andi Shyti
2025-11-11 11:45 ` [PATCH v2 3/3] i2c: designware-platdrv: streamline " Artem Shimko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251111114559.3188740-1-a.shimko.dev@gmail.com \
--to=a.shimko.dev@gmail.com \
--cc=andi.shyti@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=jsd@semihalf.com \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=p.zabel@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox