Re: [PATCH v3 2/5] pinctrl: st: Enhance the controller to manage unavailable registers

From: Maxime Coquelin
Date: Tue Mar 11 2014 - 06:57:08 EST




On 03/11/2014 09:18 AM, Maxime Coquelin wrote:


On 03/10/2014 10:17 AM, Lee Jones wrote:
From: Giuseppe Cavallaro <peppe.cavallaro@xxxxxx>

This patch adds a new logic inside the st pinctrl to manage
an unsupported scenario: some sysconfig are not available!

This is the case of STiH407 where, although documented, the
following registers from SYSCFG_FLASH have been removed from the SoC.

SYSTEM_CONFIG3040
Output Enable pad control for all PIO Alternate Functions
and
SYSTEM_ CONFIG3050
Pull Up pad control for all PIO Alternate Functions

Without managing this condition an imprecise external abort
will be detect.

To do this the patch also reviews the st_parse_syscfgs
and other routines to manipulate the registers only if
actually available.
In any case, for example the st_parse_syscfgs detected
an error condition but no action was made in the
st_pctl_probe_dt.

Signed-off-by: Maxime Coquelin <maxime.coquelin@xxxxxx>
Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@xxxxxx>

These two SOBs need reordering.
Right,
this will be changed here and everywhere else in the series.


---
drivers/pinctrl/pinctrl-st.c | 106
+++++++++++++++++++++++++------------------
1 file changed, 61 insertions(+), 45 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c
index 9fb66aa..1721611 100644
--- a/drivers/pinctrl/pinctrl-st.c
+++ b/drivers/pinctrl/pinctrl-st.c

<snip>


-static int st_parse_syscfgs(struct st_pinctrl *info,
- int bank, struct device_node *np)
+
+static struct regmap_field *st_pc_get_value(struct device *dev,
+ struct regmap *regmap, int bank,
+ int data, int lsb, int msb)
+{
+ struct reg_field reg = REG_FIELD((data + bank) * 4, lsb, msb);
+
+ if (data < 0)
+ return NULL;

What happens is data < 0 and it's used in REG_FIELD?
Nothing bad, but I agree this is not crystal clear.


Would it make more sense to make this check before calling REG_FIELD?
Yes, it will be done in the v4.

Finally, I have to keep it as it was if I want this patch to compile.


<snip>

Thanks,
Maxime

_______________________________________________
Kernel mailing list
Kernel@xxxxxxxxxxx
http://www.stlinux.com/mailman/listinfo/kernel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/