And remove superfluous brackets.
Signed-off-by: Richard Genoud <[email protected]>
---
If it's not too late, it can be squashed with commit:
3102a76cfbf9ac4ae0cf54c7452f7ba4292a4760
"pinctrl: disable and free setting in select_state in case of error"
drivers/pinctrl/core.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index 9b505acc..b98a275 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -912,9 +912,8 @@ static int pinctrl_select_state_locked(struct pinctrl *p,
break;
}
- if (ret < 0) {
+ if (ret < 0)
goto unapply_new_state;
- }
}
p->state = state;
@@ -922,7 +921,7 @@ static int pinctrl_select_state_locked(struct pinctrl *p,
return 0;
unapply_new_state:
- pr_info("Error applying setting, reverse things back\n");
+ dev_err(p->dev, "Error applying setting, reverse things back\n");
/*
* If the loop stopped on the 1st entry, nothing has been enabled,
--
1.7.2.5
As Stephen Warren suggested, checking first if the setting->node entry
is the first in the list or not is superfluous, as it is checked again
in the list_for_each_entry bellow.
So, remove it, the code will be simpler and lighter !
Signed-off-by: Richard Genoud <[email protected]>
---
If can also be squashed whit commit:
3102a76cfbf9ac4ae0cf54c7452f7ba4292a4760
"pinctrl: disable and free setting in select_state in case of error"
(But there will be a conflict on "if (old_state)" vs "FIXME comment")
drivers/pinctrl/core.c | 10 +---------
1 files changed, 1 insertions(+), 9 deletions(-)
diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index b98a275..7c34937 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -923,20 +923,12 @@ static int pinctrl_select_state_locked(struct pinctrl *p,
unapply_new_state:
dev_err(p->dev, "Error applying setting, reverse things back\n");
- /*
- * If the loop stopped on the 1st entry, nothing has been enabled,
- * so jump directly to the 2nd phase
- */
- if (list_entry(&setting->node, typeof(*setting), node) ==
- list_first_entry(&state->settings, typeof(*setting), node))
- goto reapply_old_state;
-
list_for_each_entry(setting2, &state->settings, node) {
if (&setting2->node == &setting->node)
break;
pinctrl_free_setting(true, setting2);
}
-reapply_old_state:
+
if (old_state) {
list_for_each_entry(setting, &old_state->settings, node) {
bool found = false;
--
1.7.2.5
In unapply_new_state, the old state is re-applied, but p->state is not
set back as it should.
Signed-off-by: Richard Genoud <[email protected]>
---
This one can be squshed with commit:
50cf7c8ab324de348990bb028ad9ed10872d527a
pinctrl: re-enable old state in case of error in pinctrl_select_state
If needed.
drivers/pinctrl/core.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index 7c34937..714cf74 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -947,6 +947,8 @@ unapply_new_state:
pinmux_enable_setting(setting);
}
}
+
+ p->state = old_state;
return ret;
}
--
1.7.2.5
On 03/28/2013 05:55 AM, Richard Genoud wrote:
> And remove superfluous brackets.
(Seems like those unrelated changes might have benefited from being two
separate patches, but not a big deal, especially if this actually gets
squashed)
Reviewed-by: Stephen Warren <[email protected]>
On 03/28/2013 05:55 AM, Richard Genoud wrote:
> As Stephen Warren suggested, checking first if the setting->node entry
> is the first in the list or not is superfluous, as it is checked again
> in the list_for_each_entry bellow.
> So, remove it, the code will be simpler and lighter !
Reviewed-by: Stephen Warren <[email protected]>
On 03/28/2013 05:55 AM, Richard Genoud wrote:
> In unapply_new_state, the old state is re-applied, but p->state is not
> set back as it should.
Reviewed-by: Stephen Warren <[email protected]>
On Thu, Mar 28, 2013 at 12:55 PM, Richard Genoud
<[email protected]> wrote:
> And remove superfluous brackets.
>
> Signed-off-by: Richard Genoud <[email protected]>
> ---
> If it's not too late, it can be squashed with commit:
> 3102a76cfbf9ac4ae0cf54c7452f7ba4292a4760
> "pinctrl: disable and free setting in select_state in case of error"
Bah, applied as-is with Stephen's Review-tag.
Yours,
Linus Walleij
On Thu, Mar 28, 2013 at 12:55 PM, Richard Genoud
<[email protected]> wrote:
> As Stephen Warren suggested, checking first if the setting->node entry
> is the first in the list or not is superfluous, as it is checked again
> in the list_for_each_entry bellow.
> So, remove it, the code will be simpler and lighter !
>
> Signed-off-by: Richard Genoud <[email protected]>
> ---
> If can also be squashed whit commit:
> 3102a76cfbf9ac4ae0cf54c7452f7ba4292a4760
> "pinctrl: disable and free setting in select_state in case of error"
> (But there will be a conflict on "if (old_state)" vs "FIXME comment")
Applied with Stephen's Reviewed tag.
Thanks,
Linus Walleij
On Thu, Mar 28, 2013 at 12:55 PM, Richard Genoud
<[email protected]> wrote:
> In unapply_new_state, the old state is re-applied, but p->state is not
> set back as it should.
>
> Signed-off-by: Richard Genoud <[email protected]>
> ---
> This one can be squshed with commit:
> 50cf7c8ab324de348990bb028ad9ed10872d527a
> pinctrl: re-enable old state in case of error in pinctrl_select_state
> If needed.
Applied with Stepgen's Review-tag.
Thanks,
Linus Walleij