From: Stephen Warren <swarren@wwwdotorg.org>
To: FanWu <fwu@marvell.com>
Cc: "linus.walleij@linaro.org" <linus.walleij@linaro.org>,
"tony@atomide.com" <tony@atomide.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"swarren@nvidia.com" <swarren@nvidia.com>,
Chao Xie <cxie4@marvell.com>, Yilu Mao <ylmao@marvell.com>,
Ning Jiang <njiang1@marvell.com>,
Xiaofan Tian <tianxf@marvell.com>, Fangsuo Wu <fswu@marvell.com>
Subject: Re: [PATCH v2] pinctrl: add params in disable_setting for different usage
Date: Fri, 23 May 2014 10:15:03 -0600 [thread overview]
Message-ID: <537F7407.5080404@wwwdotorg.org> (raw)
In-Reply-To: <537EAA46.8010409@marvell.com>
On 05/22/2014 07:54 PM, FanWu wrote:
> On 05/23/2014 07:13 AM, Stephen Warren wrote:
>> On 05/21/2014 09:10 PM, fwu@marvell.com wrote:
>>> From: Fan Wu <fwu@marvell.com>
>>>
>>> What the patch did:
>>> 1.To call pinmux_disable_setting ahead of pinmux_enable_setting in
>>> each time of
>>> calling pinctrl_select_state
>>> 2.Remove the HW disable operation in in pinmux_disable_setting function.
>>>
>> ...
>>> diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
>>> index c0fe609..c97491a 100644
>>> --- a/drivers/pinctrl/core.c
>>> +++ b/drivers/pinctrl/core.c
>>> @@ -993,25 +993,13 @@ int pinctrl_select_state(struct pinctrl *p,
>>> struct pinctrl_state *state)
>>> * may not be identical to the set of groups with a mux setting
>>> * in the new state. While this might be unusual, it's entirely
>>> * possible for the "user"-supplied mapping table to be written
>>> - * that way. For each group that was configured in the old state
>>> - * but not in the new state, this code puts that group into a
>>> - * safe/disabled state.
>>> + * that way. This code is used for each group that was
>>> + * configured in the old state but not in the new state
>>
>>
>> Looking at the code, it's run for every group in the state, not "each
>> group that was configured in the old state but not in the new state"
> For you question 1:
> The disable_pinmux_setting is for the all of the setting in old state.
> This is what we really need to do, ahead of enable setting in new state.
> In the first patch I filed, which still includes the HW ops in
> disable_pinmux_setting, to disable each setting in old state and then to
> enable the setting in new state will introduce HW glitch.
> But in the current solution, the glitch will not be there, because there
> is no HW ops in disable_pinmux_setting.
> And please notice the patch is mainly used to avoid the duplicated
> enable operation for the same pin.
I think you missed the point of my comment. I think the new comment text
is incorrect. Instead, how about replacing the entire comment with:
/*
* For each pinmux setting in the old state, forget SW's record of mux
* owner for that pingroup. Any pingroups which are still owned by the
* new state will be re-acquired by the call to pinmux_enable_setting()
* in the loop below.
*/
>>> @@ -515,9 +514,6 @@ void pinmux_disable_setting(struct
>>> pinctrl_setting const *setting)
>>> pins[i], desc->name, gname);
>>> }
>>> }
>>> -
>>> - if (ops->disable)
>>> - ops->disable(pctldev, setting->data.mux.func,
>>> setting->data.mux.group);
>>> }
>>
>> Should that op be removed from the header file and all drivers too?
> For your question 2:
> the pinctrl-single driver is still using ops->disable, if I remove the
> "disable" in ops, there will be build error in the vendor's code base
> who is using pinctrl-single driver.
I thought Tony said it was fine to simply remove pinctrl-single's
ops->disable code completeley.
> Just as I said in the last mail,
> the next plan for this topic:
>
> 1. To remove the disable ops registration when defining the
> "include/linux/pinctrl/pinmux.h" in inctrl-single driver.
> Meanwhile, the related things, like "pinctrl-single,function-off"
> property and corresponding flag in "pcs_device", will be also removed.
>
> 2. To remove the disable ops in "pinmux_ops" in the file of
> include/linux/pinctrl/pinmux.h
>
> Are you OK for this ?
I guess splitting that into separate patches is fine.
next prev parent reply other threads:[~2014-05-23 16:15 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-22 3:10 [PATCH v2] pinctrl: add params in disable_setting for different usage fwu
2014-05-22 3:46 ` FanWu
2014-05-22 23:13 ` Stephen Warren
2014-05-23 1:54 ` FanWu
2014-05-23 16:15 ` Stephen Warren [this message]
2014-06-02 15:39 ` Tony Lindgren
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=537F7407.5080404@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--cc=cxie4@marvell.com \
--cc=fswu@marvell.com \
--cc=fwu@marvell.com \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=njiang1@marvell.com \
--cc=swarren@nvidia.com \
--cc=tianxf@marvell.com \
--cc=tony@atomide.com \
--cc=ylmao@marvell.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.