From patchwork Thu May 1 09:56:24 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lee Jones X-Patchwork-Id: 344464 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id CE0B814011F for ; Thu, 1 May 2014 19:59:19 +1000 (EST) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1WfnlG-0003qF-5O; Thu, 01 May 2014 09:58:38 +0000 Received: from mail-wi0-f171.google.com ([209.85.212.171]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1Wfnke-0002jv-2P for linux-mtd@lists.infradead.org; Thu, 01 May 2014 09:58:00 +0000 Received: by mail-wi0-f171.google.com with SMTP id hm4so408392wib.10 for ; Thu, 01 May 2014 02:57:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=UBlx5++LrwJYkMnrZRGzCoveI7I6dJ1zZDdv98XJbwU=; b=cnIXTtpunLMDyEHr/3tPwvOTevUagaOWdJlQLtwCx2pW+49YaOS2bRS4ZCdCdM+yoc cXk4suwFb1RO5O/dw8PSYZ1wIfZZz/MzCTpZ7BDsgAP0AhlMtg2LOk8ux09980IJvByd Q1Ru539U7W8ogurQahUtaE8YiedZHkFqE+1kvwAb4rolAqVmTEwgVwSHIesRRgJfoN6v Tb31JFT8fnyjcECmEhdfB+aprc67Z2lYNK34xuRbscCcJVMjhuSdKvYjNXDCZ6drLrTS 6vL5GnVyOg1aNjWLnlf0QOv0WJ07pZmt7G6UvIJSe4xoik/IQ56ahqTR/jz1pgArZBt6 2YYw== X-Gm-Message-State: ALoCoQn970qJzNAHUmj9rQXn/NhbzrQWh1RjTI3jDWBxeQZrW8JAttP3qYtOvvG1T1i1987wNi5E X-Received: by 10.180.91.161 with SMTP id cf1mr1438458wib.49.1398938261359; Thu, 01 May 2014 02:57:41 -0700 (PDT) Received: from lee--X1.home (host109-148-238-223.range109-148.btcentralplus.com. [109.148.238.223]) by mx.google.com with ESMTPSA id bj5sm2696494wib.3.2014.05.01.02.57.39 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 01 May 2014 02:57:40 -0700 (PDT) From: Lee Jones To: linux-kernel@vger.kernel.org Subject: [PATCH 17/47] mtd: nand: stm_nand_bch: derive some working variables for latter use Date: Thu, 1 May 2014 10:56:24 +0100 Message-Id: <1398938214-17847-18-git-send-email-lee.jones@linaro.org> X-Mailer: git-send-email 1.8.3.2 In-Reply-To: <1398938214-17847-1-git-send-email-lee.jones@linaro.org> References: <1398938214-17847-1-git-send-email-lee.jones@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140501_025800_271232_E6AABC4E X-CRM114-Status: GOOD ( 10.68 ) X-Spam-Score: -0.7 (/) X-Spam-Report: SpamAssassin version 3.3.2 on bombadil.infradead.org summary: Content analysis details: (-0.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [209.85.212.171 listed in list.dnswl.org] Cc: Lee Jones , computersforpeace@gmail.com, linux-mtd@lists.infradead.org, kernel@stlinux.com X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org A few of the working variables can either be taken or derived from existing knowledge about the connected chip. Rather than attempt to provide each specification manually, here we make assumptions based on information already obtained. Signed-off-by: Lee Jones --- drivers/mtd/nand/stm_nand_bch.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/mtd/nand/stm_nand_bch.c b/drivers/mtd/nand/stm_nand_bch.c index a1c25d0..8302273 100644 --- a/drivers/mtd/nand/stm_nand_bch.c +++ b/drivers/mtd/nand/stm_nand_bch.c @@ -930,6 +930,15 @@ static int stm_nand_bch_probe(struct platform_device *pdev) return -EINVAL; } + /* Derive some working variables */ + nandi->sectors_per_page = mtd->writesize / NANDI_BCH_SECTOR_SIZE; + nandi->blocks_per_device = mtd->size >> chip->phys_erase_shift; + nandi->page_shift = chip->page_shift; + nandi->block_shift = chip->phys_erase_shift; + nandi->extra_addr = ((chip->chipsize >> nandi->page_shift) > + 0x10000) ? true : false; + mtd->writebufsize = mtd->writesize; + return 0; }