mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:24:45 +01:00
docs: driver-api pinctrl cleanup
Replace FIXME comments in the pinctrl documentation example with proper cleanup code: - Add devm_pinctrl_put() calls in error paths (pinctrl_lookup_state, pinctrl_select_state) after successful devm_pinctrl_get() - Set foo->p to NULL when devm_pinctrl_get() fails - Add ret variable for cleaner error handling - provides proper example of pinctrl resource management on failure Signed-off-by: Alex Tran <alex.t.tran@gmail.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Link: https://lore.kernel.org/r/20250827074525.685863-1-alex.t.tran@gmail.com
This commit is contained in:
parent
ee9a669193
commit
2dddb2792b
1 changed files with 6 additions and 4 deletions
|
|
@ -1202,22 +1202,24 @@ default state like this:
|
|||
{
|
||||
/* Allocate a state holder named "foo" etc */
|
||||
struct foo_state *foo = ...;
|
||||
int ret;
|
||||
|
||||
foo->p = devm_pinctrl_get(&device);
|
||||
if (IS_ERR(foo->p)) {
|
||||
/* FIXME: clean up "foo" here */
|
||||
return PTR_ERR(foo->p);
|
||||
ret = PTR_ERR(foo->p);
|
||||
foo->p = NULL;
|
||||
return ret;
|
||||
}
|
||||
|
||||
foo->s = pinctrl_lookup_state(foo->p, PINCTRL_STATE_DEFAULT);
|
||||
if (IS_ERR(foo->s)) {
|
||||
/* FIXME: clean up "foo" here */
|
||||
devm_pinctrl_put(foo->p);
|
||||
return PTR_ERR(foo->s);
|
||||
}
|
||||
|
||||
ret = pinctrl_select_state(foo->p, foo->s);
|
||||
if (ret < 0) {
|
||||
/* FIXME: clean up "foo" here */
|
||||
devm_pinctrl_put(foo->p);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue