From patchwork Wed Jul 9 12:37:30 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roger Quadros X-Patchwork-Id: 33303 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-ie0-f198.google.com (mail-ie0-f198.google.com [209.85.223.198]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 4895C203F4 for ; Wed, 9 Jul 2014 12:40:00 +0000 (UTC) Received: by mail-ie0-f198.google.com with SMTP id lx4sf29585483iec.9 for ; Wed, 09 Jul 2014 05:39:59 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:sender:precedence:list-id :x-original-sender:x-original-authentication-results:mailing-list :list-post:list-help:list-archive:list-unsubscribe:content-type; bh=hixUb5U9E/fE0B/CaovWFiXb3XsSV5fUd/yDRo6oNRI=; b=ChtvYJ6LmO6Rz9SAmsXISF6oTfYnf4BU99HGc5h0uSyQP4te3yUlqHEZbrjYhrxrIf nhgEgLE6yYWxdmGGKu6kh895H/w5ezaop1XIUuwu6la4cCjpgp4ifdFPkyoOGodw3LEe mNvrsDc7JaoMr6mkI4055d1eVn+4KFvRBDd4RDutB+x1VqL7oXH6Xfhpg/ii/2mVti3L iuv4sZO7aBI+vxA7d9dvRNcIoSeU7rodFsq8BndcYzGzDdHrZUfNO0EDSUaQ0KNQV6Xa V+cHTBYPBtkoAVZOP/KfS5NyNj0Jg71vVXrGaxLr8dVQWi01g3lkYLuJhMXQZi42Ma77 P9iw== X-Gm-Message-State: ALoCoQk+ay/YW1gjWj627z1ZNLfessCnvq1vBnGRCTHU6ZrSXFbxvw4y49hybgSSSNbqaBIibdYE X-Received: by 10.42.27.18 with SMTP id h18mr20110603icc.25.1404909599741; Wed, 09 Jul 2014 05:39:59 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.49.1 with SMTP id p1ls2490570qga.97.gmail; Wed, 09 Jul 2014 05:39:59 -0700 (PDT) X-Received: by 10.58.197.193 with SMTP id iw1mr166180vec.57.1404909599640; Wed, 09 Jul 2014 05:39:59 -0700 (PDT) Received: from mail-ve0-f180.google.com (mail-ve0-f180.google.com [209.85.128.180]) by mx.google.com with ESMTPS id py4si21431077vcb.49.2014.07.09.05.39.59 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 09 Jul 2014 05:39:59 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.128.180 as permitted sender) client-ip=209.85.128.180; Received: by mail-ve0-f180.google.com with SMTP id jw12so7158954veb.11 for ; Wed, 09 Jul 2014 05:39:59 -0700 (PDT) X-Received: by 10.220.252.198 with SMTP id mx6mr22588450vcb.15.1404909599515; Wed, 09 Jul 2014 05:39:59 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.221.37.5 with SMTP id tc5csp44203vcb; Wed, 9 Jul 2014 05:39:59 -0700 (PDT) X-Received: by 10.68.235.100 with SMTP id ul4mr40642128pbc.15.1404909598779; Wed, 09 Jul 2014 05:39:58 -0700 (PDT) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id dl5si7298666pdb.97.2014.07.09.05.39.57; Wed, 09 Jul 2014 05:39:58 -0700 (PDT) Received-SPF: none (google.com: linux-kernel-owner@vger.kernel.org does not designate permitted sender hosts) client-ip=209.132.180.67; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756496AbaGIMjh (ORCPT + 28 others); Wed, 9 Jul 2014 08:39:37 -0400 Received: from devils.ext.ti.com ([198.47.26.153]:60478 "EHLO devils.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756167AbaGIMjD (ORCPT ); Wed, 9 Jul 2014 08:39:03 -0400 Received: from dflxv15.itg.ti.com ([128.247.5.124]) by devils.ext.ti.com (8.13.7/8.13.7) with ESMTP id s69CcA82030598; Wed, 9 Jul 2014 07:38:10 -0500 Received: from DLEE70.ent.ti.com (dlee70.ent.ti.com [157.170.170.113]) by dflxv15.itg.ti.com (8.14.3/8.13.8) with ESMTP id s69CcAQR006800; Wed, 9 Jul 2014 07:38:10 -0500 Received: from dlep33.itg.ti.com (157.170.170.75) by DLEE70.ent.ti.com (157.170.170.113) with Microsoft SMTP Server id 14.3.174.1; Wed, 9 Jul 2014 07:38:10 -0500 Received: from localhost.localdomain (ileax41-snat.itg.ti.com [10.172.224.153]) by dlep33.itg.ti.com (8.14.3/8.13.8) with ESMTP id s69CbX7r010057; Wed, 9 Jul 2014 07:38:07 -0500 From: Roger Quadros To: , CC: , , , , , , , , , Roger Quadros Subject: [RFC PATCH 10/10] OMAP: GPMC: NAND: Don't pass NAND/ECC/BCH register adresses to NAND driver Date: Wed, 9 Jul 2014 15:37:30 +0300 Message-ID: <1404909450-11970-11-git-send-email-rogerq@ti.com> X-Mailer: git-send-email 1.8.3.2 In-Reply-To: <1404909450-11970-1-git-send-email-rogerq@ti.com> References: <1404909450-11970-1-git-send-email-rogerq@ti.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: rogerq@ti.com X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.128.180 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , The NAND driver now relies completely on the GPMC APIs to access the NAND control lines and ECC/BCH engine. We no longer need gpmc_update_nand_reg() and struct gpmc_nand_regs, so get rid of them. Signed-off-by: Roger Quadros --- arch/arm/mach-omap2/gpmc-nand.c | 2 -- arch/arm/mach-omap2/gpmc.c | 38 ---------------------------- arch/arm/mach-omap2/gpmc.h | 1 - drivers/mtd/nand/omap2.c | 2 -- include/linux/platform_data/mtd-nand-omap2.h | 5 +++- 5 files changed, 4 insertions(+), 44 deletions(-) diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-omap2/gpmc-nand.c index 17cd393..565bd15 100644 --- a/arch/arm/mach-omap2/gpmc-nand.c +++ b/arch/arm/mach-omap2/gpmc-nand.c @@ -138,8 +138,6 @@ int gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data, if (err < 0) goto out_free_cs; - gpmc_update_nand_reg(&gpmc_nand_data->reg, gpmc_nand_data->cs); - if (!gpmc_hwecc_bch_capable(gpmc_nand_data->ecc_opt)) { dev_err(dev, "Unsupported NAND ECC scheme selected\n"); return -EINVAL; diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 9222244..fbd651e 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c @@ -724,44 +724,6 @@ int gpmc_configure(int cmd, int wval) } EXPORT_SYMBOL(gpmc_configure); -void gpmc_update_nand_reg(struct gpmc_nand_regs *reg, int cs) -{ - int i; - - reg->gpmc_status = gpmc_base + GPMC_STATUS; - reg->gpmc_nand_command = gpmc_base + GPMC_CS0_OFFSET + - GPMC_CS_NAND_COMMAND + GPMC_CS_SIZE * cs; - reg->gpmc_nand_address = gpmc_base + GPMC_CS0_OFFSET + - GPMC_CS_NAND_ADDRESS + GPMC_CS_SIZE * cs; - reg->gpmc_nand_data = gpmc_base + GPMC_CS0_OFFSET + - GPMC_CS_NAND_DATA + GPMC_CS_SIZE * cs; - reg->gpmc_prefetch_config1 = gpmc_base + GPMC_PREFETCH_CONFIG1; - reg->gpmc_prefetch_config2 = gpmc_base + GPMC_PREFETCH_CONFIG2; - reg->gpmc_prefetch_control = gpmc_base + GPMC_PREFETCH_CONTROL; - reg->gpmc_prefetch_status = gpmc_base + GPMC_PREFETCH_STATUS; - reg->gpmc_ecc_config = gpmc_base + GPMC_ECC_CONFIG; - reg->gpmc_ecc_control = gpmc_base + GPMC_ECC_CONTROL; - reg->gpmc_ecc_size_config = gpmc_base + GPMC_ECC_SIZE_CONFIG; - reg->gpmc_ecc1_result = gpmc_base + GPMC_ECC1_RESULT; - - for (i = 0; i < GPMC_BCH_NUM_REMAINDER; i++) { - reg->gpmc_bch_result0[i] = gpmc_base + GPMC_ECC_BCH_RESULT_0 + - GPMC_BCH_SIZE * i; - reg->gpmc_bch_result1[i] = gpmc_base + GPMC_ECC_BCH_RESULT_1 + - GPMC_BCH_SIZE * i; - reg->gpmc_bch_result2[i] = gpmc_base + GPMC_ECC_BCH_RESULT_2 + - GPMC_BCH_SIZE * i; - reg->gpmc_bch_result3[i] = gpmc_base + GPMC_ECC_BCH_RESULT_3 + - GPMC_BCH_SIZE * i; - reg->gpmc_bch_result4[i] = gpmc_base + GPMC_ECC_BCH_RESULT_4 + - i * GPMC_BCH_SIZE; - reg->gpmc_bch_result5[i] = gpmc_base + GPMC_ECC_BCH_RESULT_5 + - i * GPMC_BCH_SIZE; - reg->gpmc_bch_result6[i] = gpmc_base + GPMC_ECC_BCH_RESULT_6 + - i * GPMC_BCH_SIZE; - } -} - int gpmc_get_client_irq(unsigned irq_config) { int i; diff --git a/arch/arm/mach-omap2/gpmc.h b/arch/arm/mach-omap2/gpmc.h index 707f6d5..a91fab7 100644 --- a/arch/arm/mach-omap2/gpmc.h +++ b/arch/arm/mach-omap2/gpmc.h @@ -211,7 +211,6 @@ extern int gpmc_calc_timings(struct gpmc_timings *gpmc_t, struct gpmc_settings *gpmc_s, struct gpmc_device_timings *dev_t); -extern void gpmc_update_nand_reg(struct gpmc_nand_regs *reg, int cs); extern int gpmc_get_client_irq(unsigned irq_config); extern unsigned int gpmc_ticks_to_ns(unsigned int ticks); diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c index 6b0f953..e894e65 100644 --- a/drivers/mtd/nand/omap2.c +++ b/drivers/mtd/nand/omap2.c @@ -163,7 +163,6 @@ struct omap_nand_info { } iomode; u_char *buf; int buf_len; - struct gpmc_nand_regs reg; /* fields specific for BCHx_HW ECC scheme */ struct device *elm_dev; struct device_node *of_node; @@ -1547,7 +1546,6 @@ static int omap_nand_probe(struct platform_device *pdev) info->pdev = pdev; info->gpmc_cs = pdata->cs; - info->reg = pdata->reg; info->of_node = pdata->of_node; info->ecc_opt = pdata->ecc_opt; mtd = &info->mtd; diff --git a/include/linux/platform_data/mtd-nand-omap2.h b/include/linux/platform_data/mtd-nand-omap2.h index 660c029..44198be 100644 --- a/include/linux/platform_data/mtd-nand-omap2.h +++ b/include/linux/platform_data/mtd-nand-omap2.h @@ -35,6 +35,7 @@ enum omap_ecc { OMAP_ECC_BCH16_CODE_HW, }; +/* Deprecated - Don't use */ struct gpmc_nand_regs { void __iomem *gpmc_status; void __iomem *gpmc_nand_command; @@ -65,10 +66,12 @@ struct omap_nand_platform_data { enum nand_io xfer_type; int devsize; enum omap_ecc ecc_opt; - struct gpmc_nand_regs reg; /* for passing the partitions */ struct device_node *of_node; struct device_node *elm_of_node; + + + struct gpmc_nand_regs reg; /* Deprecated. Don't use */ }; #endif