From patchwork Tue Jun 27 00:12:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Grygorii Strashko X-Patchwork-Id: 780916 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3wxRHV2bP7z9s75 for ; Tue, 27 Jun 2017 10:14:14 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ti.com header.i=@ti.com header.b="Aw+IVxH0"; dkim-atps=neutral Received: by lists.denx.de (Postfix, from userid 105) id 20C59C21D95; Tue, 27 Jun 2017 00:13:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id A5D4DC21D61; Tue, 27 Jun 2017 00:13:31 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 92326C21C39; Tue, 27 Jun 2017 00:13:27 +0000 (UTC) Received: from lelnx194.ext.ti.com (lelnx194.ext.ti.com [198.47.27.80]) by lists.denx.de (Postfix) with ESMTPS id E1256C21C2A for ; Tue, 27 Jun 2017 00:13:26 +0000 (UTC) Received: from dflxv15.itg.ti.com ([128.247.5.124]) by lelnx194.ext.ti.com (8.15.1/8.15.1) with ESMTP id v5R0DArw002400; Mon, 26 Jun 2017 19:13:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ti.com; s=ti-com-17Q1; t=1498522390; bh=bYPecBD8TOXi+W+E9IcwpP+46RiSFj+TNK1BLS/wR/k=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=Aw+IVxH0oAfEVYaKqI4I308tYBfju+pTS1aGgFr+Aj0+p3TO+GDaPraOCOnAKa2nn 8m71OCLvBllyOoOlafcAX27hoFcfokZLYDLoc569Kq/B3du+Ab2ImThRAj3F8wFD+p Wy5iDL55RrSQIAEZ4UX0RynNEMw5XIUXoPyq1RJA= Received: from DLEE71.ent.ti.com (dlee71.ent.ti.com [157.170.170.114]) by dflxv15.itg.ti.com (8.14.3/8.13.8) with ESMTP id v5R0DAf7024849; Mon, 26 Jun 2017 19:13:10 -0500 Received: from dflp32.itg.ti.com (10.64.6.15) by DLEE71.ent.ti.com (157.170.170.114) with Microsoft SMTP Server id 14.3.294.0; Mon, 26 Jun 2017 19:13:09 -0500 Received: from legion.dal.design.ti.com (legion.dal.design.ti.com [128.247.22.53]) by dflp32.itg.ti.com (8.14.3/8.13.8) with ESMTP id v5R0D9xv029382; Mon, 26 Jun 2017 19:13:09 -0500 Received: from localhost (uda0226610.dhcp.ti.com [128.247.59.147]) by legion.dal.design.ti.com (8.11.7p1+Sun/8.11.7) with ESMTP id v5R0D9328766; Mon, 26 Jun 2017 19:13:09 -0500 (CDT) From: Grygorii Strashko To: Lokesh Vutla , Tom Rini , Scott Wood , Simon Glass Date: Mon, 26 Jun 2017 19:12:52 -0500 Message-ID: <20170627001308.23513-3-grygorii.strashko@ti.com> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20170627001308.23513-1-grygorii.strashko@ti.com> References: <20170627001308.23513-1-grygorii.strashko@ti.com> MIME-Version: 1.0 Cc: Stelian Pop , u-boot@lists.denx.de, Bo Shen , Franklin S Cooper Jr Subject: [U-Boot] [PATCH v4 02/18] common: env_nand: use get_nand_dev_by_index() X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" As part of preparation for nand DM conversion the new API has been introduced to remove direct access to nand_info array. So, use it here instead of accessing to nand_info array directly. Signed-off-by: Grygorii Strashko --- common/env_nand.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/common/env_nand.c b/common/env_nand.c index 2e28171..133ecfb 100644 --- a/common/env_nand.c +++ b/common/env_nand.c @@ -130,17 +130,22 @@ static int writeenv(size_t offset, u_char *buf) size_t end = offset + CONFIG_ENV_RANGE; size_t amount_saved = 0; size_t blocksize, len; + struct mtd_info *mtd; u_char *char_ptr; - blocksize = nand_info[0]->erasesize; + mtd = get_nand_dev_by_index(0); + if (!mtd) + return 1; + + blocksize = mtd->erasesize; len = min(blocksize, (size_t)CONFIG_ENV_SIZE); while (amount_saved < CONFIG_ENV_SIZE && offset < end) { - if (nand_block_isbad(nand_info[0], offset)) { + if (nand_block_isbad(mtd, offset)) { offset += blocksize; } else { char_ptr = &buf[amount_saved]; - if (nand_write(nand_info[0], offset, &len, char_ptr)) + if (nand_write(mtd, offset, &len, char_ptr)) return 1; offset += blocksize; @@ -161,13 +166,15 @@ struct env_location { static int erase_and_write_env(const struct env_location *location, u_char *env_new) { + struct mtd_info *mtd; int ret = 0; - if (!nand_info[0]) + mtd = get_nand_dev_by_index(0); + if (!mtd) return 1; printf("Erasing %s...\n", location->name); - if (nand_erase_opts(nand_info[0], &location->erase_opts)) + if (nand_erase_opts(mtd, &location->erase_opts)) return 1; printf("Writing to %s... ", location->name); @@ -248,22 +255,24 @@ static int readenv(size_t offset, u_char *buf) size_t end = offset + CONFIG_ENV_RANGE; size_t amount_loaded = 0; size_t blocksize, len; + struct mtd_info *mtd; u_char *char_ptr; - if (!nand_info[0]) + mtd = get_nand_dev_by_index(0); + if (!mtd) return 1; - blocksize = nand_info[0]->erasesize; + blocksize = mtd->erasesize; len = min(blocksize, (size_t)CONFIG_ENV_SIZE); while (amount_loaded < CONFIG_ENV_SIZE && offset < end) { - if (nand_block_isbad(nand_info[0], offset)) { + if (nand_block_isbad(mtd, offset)) { offset += blocksize; } else { char_ptr = &buf[amount_loaded]; - if (nand_read_skip_bad(nand_info[0], offset, + if (nand_read_skip_bad(mtd, offset, &len, NULL, - nand_info[0]->size, char_ptr)) + mtd->size, char_ptr)) return 1; offset += blocksize; @@ -390,12 +399,12 @@ void env_relocate_spec(void) ALLOC_CACHE_ALIGN_BUFFER(char, buf, CONFIG_ENV_SIZE); #if defined(CONFIG_ENV_OFFSET_OOB) + struct mtd_info *mtd = get_nand_dev_by_index(0); /* * If unable to read environment offset from NAND OOB then fall through * to the normal environment reading code below */ - if (nand_info[0] && !get_nand_env_oob(nand_info[0], - &nand_env_oob_offset)) { + if (mtd && !get_nand_env_oob(mtd, &nand_env_oob_offset)) { printf("Found Environment offset in OOB..\n"); } else { set_default_env("!no env offset in OOB");