From patchwork Wed Dec 8 15:07:15 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guillaume LECERF X-Patchwork-Id: 74735 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from canuck.infradead.org (canuck.infradead.org [134.117.69.58]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 7345AB70A9 for ; Thu, 9 Dec 2010 02:22:10 +1100 (EST) Received: from localhost ([127.0.0.1] helo=canuck.infradead.org) by canuck.infradead.org with esmtp (Exim 4.72 #1 (Red Hat Linux)) id 1PQLiW-00010W-2A; Wed, 08 Dec 2010 15:14:04 +0000 Received: from smtp1-g21.free.fr ([212.27.42.1]) by canuck.infradead.org with esmtp (Exim 4.72 #1 (Red Hat Linux)) id 1PQLiQ-0000zV-BV for linux-mtd@lists.infradead.org; Wed, 08 Dec 2010 15:13:59 +0000 Received: from dev.siriade.com (unknown [82.235.60.83]) by smtp1-g21.free.fr (Postfix) with ESMTP id 6AF5C9400B5; Wed, 8 Dec 2010 16:13:52 +0100 (CET) Received: from localhost ([127.0.0.1] helo=dev.siriade.com) by dev.siriade.com with esmtp (Exim 4.72) (envelope-from ) id 1PQLbv-00058V-Ao; Wed, 08 Dec 2010 16:07:15 +0100 Subject: [PATCH 2/2] mtd: cfi_cmdset_0002: add support for Samsung K8D3x16UxC NOR chips To: linux-mtd@lists.infradead.org From: Guillaume LECERF Date: Wed, 08 Dec 2010 16:07:15 +0100 Message-ID: <20101208150715.19706.65528.stgit@dev.siriade.com> In-Reply-To: <20101208150710.19706.92098.stgit@dev.siriade.com> References: <20101208150710.19706.92098.stgit@dev.siriade.com> User-Agent: StGit/0.15 MIME-Version: 1.0 X-CRM114-Version: 20090807-BlameThorstenAndJenny ( TRE 0.7.6 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20101208_101358_932594_9AD638BF X-CRM114-Status: GOOD ( 17.91 ) X-Spam-Score: 1.2 (+) X-Spam-Report: SpamAssassin version 3.3.1 on canuck.infradead.org summary: Content analysis details: (1.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, low trust [212.27.42.1 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is freemail (glecerf[at]gmail.com) 0.0 DKIM_ADSP_CUSTOM_MED No valid author signature, adsp_override is CUSTOM_MED 1.2 NML_ADSP_CUSTOM_MED ADSP custom_med hit, and not from a mailing list 0.0 T_TO_NO_BRKTS_FREEMAIL T_TO_NO_BRKTS_FREEMAIL Cc: Matthias Buecher / Germany , David Woodhouse X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-mtd-bounces@lists.infradead.org Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org These chips report CFI v3.3 [1], so patch them on the fly to the more correct v1.3. Discussed and tested by the OpenWRT people [2]. [1] http://www.samsung.com/global/system/business/semiconductor/product/2007/6/11/NORFlash/32Mbit/K8D3216UBC/ds_K8D3x16UxC_rev17.pdf [2] https://dev.openwrt.org/ticket/866 Signed-off-by: Guillaume LECERF --- drivers/mtd/chips/cfi_cmdset_0002.c | 15 ++++++++++++++- 1 files changed, 14 insertions(+), 1 deletions(-) diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c index 28e05ad..bf015e7 100644 --- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -395,7 +395,7 @@ static void cfi_fixup_major_minor(struct cfi_private *cfi, if (cfi->mfr == CFI_MFR_SAMSUNG) { if (extp->MajorVersion == '0') { /* - * Samsung K8P2815UQB and K8D6x16UxM report major=0 / minor=0 + * Samsung K8P2815UQB and K8D6x16UxM chips report major=0 / minor=0 */ printk(" Fixed Samsung's Amd/Fujitsu Extended Query version from %c.%c to 1.0", extp->MajorVersion, extp->MinorVersion); @@ -403,6 +403,19 @@ static void cfi_fixup_major_minor(struct cfi_private *cfi, extp->MajorVersion = '1'; extp->MinorVersion = '0'; } + if (extp->MajorVersion == '3' && extp->MinorVersion == '3') { + /* + * Samsung K8D3x16UxC chips report major=3 / minor=3 + */ + printk(KERN_NOTICE " Newer Samsung flash detected, " + "should be compatibile with Amd/Fujitsu.\n"); + + printk(" Fixed Samsung's Amd/Fujitsu Extended Query version from %c.%c to 1.3", + extp->MajorVersion, extp->MinorVersion); + + extp->MajorVersion = '1'; // set to 1.3 + extp->MinorVersion = '3'; + } } /*