* [RFC][PATCH] mfd: twl4030: Check for i2c error code in protect_pm_master function
@ 2009-12-11 16:29 balajitk
2010-01-05 18:43 ` Samuel Ortiz
0 siblings, 1 reply; 2+ messages in thread
From: balajitk @ 2009-12-11 16:29 UTC (permalink / raw)
To: linux-omap; +Cc: sameo, amit.kucheria, Balaji T K
From: Balaji T K <balajitk@ti.com>
Warn about error messages immediately after i2c write to R_PROTECT_KEY
in functions protect_pm_master/unprotect_pm_master
Signed-off-by: Balaji T K <balajitk@ti.com>
---
drivers/mfd/twl-core.c | 23 ++++++++++++++++++-----
1 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
index 42af794..74f93ed 100644
--- a/drivers/mfd/twl-core.c
+++ b/drivers/mfd/twl-core.c
@@ -804,6 +804,9 @@ static inline int __init protect_pm_master(void)
e = twl_i2c_write_u8(TWL_MODULE_PM_MASTER, KEY_LOCK,
R_PROTECT_KEY);
+ if (e < 0)
+ pr_err("twl_core: Could not write value : %x to TWL"
+ " register %x err %d\n", KEY_LOCK, R_PROTECT_KEY, e);
return e;
}
@@ -811,10 +814,17 @@ static inline int __init unprotect_pm_master(void)
{
int e = 0;
- e |= twl_i2c_write_u8(TWL_MODULE_PM_MASTER, KEY_UNLOCK1,
+ e = twl_i2c_write_u8(TWL_MODULE_PM_MASTER, KEY_UNLOCK1,
R_PROTECT_KEY);
- e |= twl_i2c_write_u8(TWL_MODULE_PM_MASTER, KEY_UNLOCK2,
+ if (e < 0)
+ pr_err("twl_core: Could not write value : %x to TWL"
+ " register %x err %d\n", KEY_UNLOCK1, R_PROTECT_KEY, e);
+
+ e = twl_i2c_write_u8(TWL_MODULE_PM_MASTER, KEY_UNLOCK2,
R_PROTECT_KEY);
+ if (e < 0)
+ pr_err("twl_core: Could not write value : %x to TWL"
+ " register %x err %d\n", KEY_UNLOCK1, R_PROTECT_KEY, e);
return e;
}
@@ -865,10 +875,13 @@ static void clocks_init(struct device *dev)
}
ctrl |= HIGH_PERF_SQ;
- e |= unprotect_pm_master();
+ e = unprotect_pm_master();
/* effect->MADC+USB ck en */
- e |= twl_i2c_write_u8(TWL_MODULE_PM_MASTER, ctrl, R_CFG_BOOT);
- e |= protect_pm_master();
+ e = twl_i2c_write_u8(TWL_MODULE_PM_MASTER, ctrl, R_CFG_BOOT);
+ if (e < 0)
+ pr_err("twl_core: Could not write value : %x to TWL"
+ " register %x err %d\n", ctrl, R_CFG_BOOT, e);
+ e = protect_pm_master();
if (e < 0)
pr_err("%s: clock init err [%d]\n", DRIVER_NAME, e);
--
1.5.4.7
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [RFC][PATCH] mfd: twl4030: Check for i2c error code in protect_pm_master function
2009-12-11 16:29 [RFC][PATCH] mfd: twl4030: Check for i2c error code in protect_pm_master function balajitk
@ 2010-01-05 18:43 ` Samuel Ortiz
0 siblings, 0 replies; 2+ messages in thread
From: Samuel Ortiz @ 2010-01-05 18:43 UTC (permalink / raw)
To: balajitk; +Cc: linux-omap, amit.kucheria
Hi Balaji,
On Fri, Dec 11, 2009 at 09:59:18PM +0530, balajitk@ti.com wrote:
> From: Balaji T K <balajitk@ti.com>
>
> Warn about error messages immediately after i2c write to R_PROTECT_KEY
> in functions protect_pm_master/unprotect_pm_master
>
> Signed-off-by: Balaji T K <balajitk@ti.com>
> ---
> drivers/mfd/twl-core.c | 23 ++++++++++++++++++-----
> 1 files changed, 18 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
> index 42af794..74f93ed 100644
> --- a/drivers/mfd/twl-core.c
> +++ b/drivers/mfd/twl-core.c
> @@ -804,6 +804,9 @@ static inline int __init protect_pm_master(void)
>
> e = twl_i2c_write_u8(TWL_MODULE_PM_MASTER, KEY_LOCK,
> R_PROTECT_KEY);
> + if (e < 0)
> + pr_err("twl_core: Could not write value : %x to TWL"
> + " register %x err %d\n", KEY_LOCK, R_PROTECT_KEY, e);
> return e;
> }
>
> @@ -811,10 +814,17 @@ static inline int __init unprotect_pm_master(void)
> {
> int e = 0;
>
> - e |= twl_i2c_write_u8(TWL_MODULE_PM_MASTER, KEY_UNLOCK1,
> + e = twl_i2c_write_u8(TWL_MODULE_PM_MASTER, KEY_UNLOCK1,
> R_PROTECT_KEY);
> - e |= twl_i2c_write_u8(TWL_MODULE_PM_MASTER, KEY_UNLOCK2,
> + if (e < 0)
> + pr_err("twl_core: Could not write value : %x to TWL"
> + " register %x err %d\n", KEY_UNLOCK1, R_PROTECT_KEY, e);
> +
Does it make sense to continue here ? If the key unlocking failed, shouldnt we
just return the error and leave ?
> + e = twl_i2c_write_u8(TWL_MODULE_PM_MASTER, KEY_UNLOCK2,
> R_PROTECT_KEY);
> + if (e < 0)
> + pr_err("twl_core: Could not write value : %x to TWL"
> + " register %x err %d\n", KEY_UNLOCK1, R_PROTECT_KEY, e);
> return e;
> }
>
> @@ -865,10 +875,13 @@ static void clocks_init(struct device *dev)
> }
>
> ctrl |= HIGH_PERF_SQ;
> - e |= unprotect_pm_master();
> + e = unprotect_pm_master();
Same here: If the unprotection failed, the rest probably will fail as well,
right ?
Cheers,
Samuel.
> /* effect->MADC+USB ck en */
> - e |= twl_i2c_write_u8(TWL_MODULE_PM_MASTER, ctrl, R_CFG_BOOT);
> - e |= protect_pm_master();
> + e = twl_i2c_write_u8(TWL_MODULE_PM_MASTER, ctrl, R_CFG_BOOT);
> + if (e < 0)
> + pr_err("twl_core: Could not write value : %x to TWL"
> + " register %x err %d\n", ctrl, R_CFG_BOOT, e);
> + e = protect_pm_master();
>
> if (e < 0)
> pr_err("%s: clock init err [%d]\n", DRIVER_NAME, e);
> --
> 1.5.4.7
>
--
Intel Open Source Technology Centre
http://oss.intel.com/
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-01-05 18:41 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-11 16:29 [RFC][PATCH] mfd: twl4030: Check for i2c error code in protect_pm_master function balajitk
2010-01-05 18:43 ` Samuel Ortiz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox