From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hector Palacios Date: Fri, 21 Nov 2014 19:04:39 +0100 Subject: [U-Boot] [PATCH 2/3] mxs_ocotp: check for errors from the OTP controller after writing In-Reply-To: References: <1416588884-21701-1-git-send-email-hector.palacios@digi.com> <1416588884-21701-2-git-send-email-hector.palacios@digi.com> Message-ID: <546F7EB7.9070304@digi.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Fabio, On 11/21/2014 06:10 PM, Fabio Estevam wrote: > Hi Hector, > > On Fri, Nov 21, 2014 at 2:54 PM, Hector Palacios > wrote: >> The write operation may fail when trying to write to a locked area. In >> this case the ERROR bit is set in the CTRL register. Check for that >> condition and return an error. >> >> Signed-off-by: Hector Palacios >> --- >> drivers/misc/mxs_ocotp.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/drivers/misc/mxs_ocotp.c b/drivers/misc/mxs_ocotp.c >> index 09002814f2f0..1659ee6a5eec 100644 >> --- a/drivers/misc/mxs_ocotp.c >> +++ b/drivers/misc/mxs_ocotp.c >> @@ -221,6 +221,13 @@ static int mxs_ocotp_write_fuse(uint32_t addr, uint32_t mask) >> goto fail; >> } >> >> + /* Check for errors */ >> + if (readl(&ocotp_regs->hw_ocotp_ctrl) & OCOTP_CTRL_ERROR) { >> + puts("Failed writing fuses!\n"); >> + ret = -EPERM; >> + goto fail; >> + } >> + >> fail: > > What about doing this instead? > > /* Check for errors */ > ret = readl(&ocotp_regs->hw_ocotp_ctrl) & OCOTP_CTRL_ERROR); > if (ret) { > printfs("Failed writing the fuses: %d\n", ret); > goto fail; > } > Although the code looks nicer you are not returning a meaningful error code, just a mask value (and yes, I know the error code does not get anywhere, but still). -- Hector Palacios PS. Sorry about the resending of the message but the mailing list server kept rejecting it.