From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756510AbYG0G2w (ORCPT ); Sun, 27 Jul 2008 02:28:52 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754226AbYG0G2l (ORCPT ); Sun, 27 Jul 2008 02:28:41 -0400 Received: from ti-out-0910.google.com ([209.85.142.184]:35709 "EHLO ti-out-0910.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750753AbYG0G2k (ORCPT ); Sun, 27 Jul 2008 02:28:40 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :sender; b=pEokw+glf1DxlJAMujFB0IA1vDxMK+bK6e46rlLoJe9G9x7i6CvrO9BMGhzC32Cl9w LcoWt9RPkAZhkfevgAKLFembyaqQ7UnaMfe/7EgOPvJNKOu9Iy1244eQBbE9NGc0QXaA O0Z104hrJpGxD/Jqth/F0/Y9xDfa4zlyRyB70= From: Bryan Wu To: dwmw2@infradead.org, akpm@linux-foundation.org Cc: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, Mike Frysinger , Bryan Wu Subject: [PATCH 2/7] [MTD] Blackfin NFC Driver: fix bug - hw ecc calc by making sure we extract 11 bits from each register instead of 10 Date: Sun, 27 Jul 2008 14:27:54 +0800 Message-Id: <1217140079-20014-3-git-send-email-cooloney@kernel.org> X-Mailer: git-send-email 1.5.6 In-Reply-To: <1217140079-20014-1-git-send-email-cooloney@kernel.org> References: <1217140079-20014-1-git-send-email-cooloney@kernel.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mike Frysinger Signed-off-by: Mike Frysinger Signed-off-by: Bryan Wu --- drivers/mtd/nand/bf5xx_nand.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/nand/bf5xx_nand.c b/drivers/mtd/nand/bf5xx_nand.c index 3254348..fc58afe 100644 --- a/drivers/mtd/nand/bf5xx_nand.c +++ b/drivers/mtd/nand/bf5xx_nand.c @@ -298,7 +298,7 @@ static int bf5xx_nand_calculate_ecc(struct mtd_info *mtd, ecc0 = bfin_read_NFC_ECC0(); ecc1 = bfin_read_NFC_ECC1(); - code[0] = (ecc0 & 0x3FF) | ((ecc1 & 0x3FF) << 11); + code[0] = (ecc0 & 0x7ff) | ((ecc1 & 0x7ff) << 11); dev_dbg(info->device, "returning ecc 0x%08x\n", code[0]); @@ -310,7 +310,7 @@ static int bf5xx_nand_calculate_ecc(struct mtd_info *mtd, if (page_size == 512) { ecc0 = bfin_read_NFC_ECC2(); ecc1 = bfin_read_NFC_ECC3(); - code[1] = (ecc0 & 0x3FF) | ((ecc1 & 0x3FF) << 11); + code[1] = (ecc0 & 0x7ff) | ((ecc1 & 0x7ff) << 11); /* second 3 bytes in ecc_code for second 256 * bytes of 512 page size -- 1.5.6