From: dedekind1@gmail.com (Artem Bityutskiy)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] Samsung SoCs: OneNAND support
Date: Thu, 17 Sep 2009 11:31:01 +0300 [thread overview]
Message-ID: <4AB1F3C5.7000309@gmail.com> (raw)
In-Reply-To: <20090917081659.GA28591@july>
On 09/17/2009 11:16 AM, Kyungmin Park wrote:
> +static int s3c_onenand_wait(struct mtd_info *mtd, int state)
> +{
> + unsigned int flags = INT_ACT;
> + unsigned int stat, ecc;
> + unsigned long timeout;
> +
> + switch (state) {
> + case FL_READING:
> + flags |= BLK_RW_CMP | LOAD_CMP;
> + break;
> + case FL_WRITING:
> + flags |= BLK_RW_CMP | PGM_CMP;
> + break;
> + case FL_ERASING:
> + flags |= BLK_RW_CMP | ERS_CMP;
> + break;
> + case FL_LOCKING:
> + flags |= BLK_RW_CMP;
> + break;
> + default:
> + break;
> + }
> +
> + /* The 20 msec is enough */
> + timeout = jiffies + msecs_to_jiffies(20);
> + while (time_before(jiffies, timeout)) {
> + stat = s3c_read_reg(INT_ERR_STAT_OFFSET);
> + if (stat& flags)
> + break;
> +
> + if (state != FL_READING)
> + cond_resched();
> + }
> + /* To get correct interrupt status in timeout case */
> + stat = s3c_read_reg(INT_ERR_STAT_OFFSET);
> + s3c_write_reg(stat, INT_ERR_ACK_OFFSET);
> +
> + /*
> + *
> + * In the Spec. it checks the controller status first
> + * However if you get the correct information in case of
> + * power off recovery (POR) test, it should read ECC status first
> + */
> + if (stat& LOAD_CMP) {
> + ecc = s3c_read_reg(ECC_ERR_STAT_OFFSET);
> + if (ecc& ONENAND_ECC_4BIT_UNCORRECTABLE) {
> + printk(KERN_INFO "onenand_wait: ECC error = 0x%04x\n", ecc);
Copy-paste error? Also see below.
> + mtd->ecc_stats.failed++;
> + return -EBADMSG;
> + }
> + }
> +
> + if (stat& (LOCKED_BLK | ERS_FAIL | PGM_FAIL | LD_FAIL_ECC_ERR)) {
> + printk(KERN_INFO "s3c_onenand_wait: controller error = 0x%04x\n", stat);
> + if (stat& LOCKED_BLK)
> + printk(KERN_INFO "s3c_onenand_wait: it's locked error = 0x%04x\n", stat);
Very quick comment. Could you please avoid this style of putting function
name to the printk? We have lots of this in onenand_base.c, and they are
often wrong, because function names change.
Could we please use dev_printk(), dev_dbg() and the like instead? You'll have
to do some more work and make MTD a bit more linux-device-model-friendly, but
someone has to do this :-)
But in the worst case, use at least %s + __func__.
And you could also clean things up similarly for onenenand.
--
Best Regards,
Artem Bityutskiy (????? ????????)
next prev parent reply other threads:[~2009-09-17 8:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-17 8:16 [PATCH] Samsung SoCs: OneNAND support Kyungmin Park
2009-09-17 8:31 ` Artem Bityutskiy [this message]
2009-09-17 9:45 ` Kyungmin Park
2009-09-17 10:02 ` Kyungmin Park
2009-09-17 10:06 ` Artem Bityutskiy
2009-09-17 20:00 ` Russell King - ARM Linux
2009-09-18 12:11 ` Makhija, Neha (IE10)
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=4AB1F3C5.7000309@gmail.com \
--to=dedekind1@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).