devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jon Hunter <jon-hunter@ti.com>
To: Rob Herring <rob.herring@calxeda.com>,
	Grant Likely <grant.likely@secretlab.ca>,
	Tony Lindgren <tony@atomide.com>,
	Benoit Cousson <b-cousson@ti.com>
Cc: device-tree <devicetree-discuss@lists.ozlabs.org>,
	linux-omap <linux-omap@vger.kernel.org>,
	linux-arm <linux-arm-kernel@lists.infradead.org>,
	Daniel Mack <zonque@gmail.com>,
	Ezequiel Garcia <elezegarcia@gmail.com>,
	Mark Jackson <mpfj-list@mimc.co.uk>,
	Jon Hunter <jon-hunter@ti.com>
Subject: [PATCH V3 01/18] ARM: OMAP2+: Simplify code configuring ONENAND devices
Date: Fri, 15 Mar 2013 10:20:59 -0500	[thread overview]
Message-ID: <1363360876-13617-2-git-send-email-jon-hunter@ti.com> (raw)
In-Reply-To: <1363360876-13617-1-git-send-email-jon-hunter@ti.com>

The OMAP2+ code that configures the GPMC for ONENAND devices is copying
structures between functions unnecessarily. Avoid this by passing
pointers instead and simplify the code.

A pointer to structure "omap_onenand_platform_data" is passed to the
function omap2_onenand_calc_sync_timings(), but only the flags member
of the structure is used. Simplify the code by only passing the flags
member and not the entire structure.

Signed-off-by: Jon Hunter <jon-hunter@ti.com>
---
 arch/arm/mach-omap2/gpmc-onenand.c |   26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

diff --git a/arch/arm/mach-omap2/gpmc-onenand.c b/arch/arm/mach-omap2/gpmc-onenand.c
index 4c91752..db52c4b 100644
--- a/arch/arm/mach-omap2/gpmc-onenand.c
+++ b/arch/arm/mach-omap2/gpmc-onenand.c
@@ -47,10 +47,9 @@ static struct platform_device gpmc_onenand_device = {
 	.resource	= &gpmc_onenand_resource,
 };
 
-static struct gpmc_timings omap2_onenand_calc_async_timings(void)
+static void omap2_onenand_calc_async_timings(struct gpmc_timings *t)
 {
 	struct gpmc_device_timings dev_t;
-	struct gpmc_timings t;
 
 	const int t_cer = 15;
 	const int t_avdp = 12;
@@ -76,9 +75,7 @@ static struct gpmc_timings omap2_onenand_calc_async_timings(void)
 	dev_t.t_wpl = t_wpl * 1000;
 	dev_t.t_wph = t_wph * 1000;
 
-	gpmc_calc_timings(&t, &dev_t);
-
-	return t;
+	gpmc_calc_timings(t, &dev_t);
 }
 
 static int gpmc_set_async_mode(int cs, struct gpmc_timings *t)
@@ -158,12 +155,11 @@ static int omap2_onenand_get_freq(struct omap_onenand_platform_data *cfg,
 	return freq;
 }
 
-static struct gpmc_timings
-omap2_onenand_calc_sync_timings(struct omap_onenand_platform_data *cfg,
-				int freq)
+static void omap2_onenand_calc_sync_timings(struct gpmc_timings *t,
+					    unsigned int flags,
+					    int freq)
 {
 	struct gpmc_device_timings dev_t;
-	struct gpmc_timings t;
 	const int t_cer  = 15;
 	const int t_avdp = 12;
 	const int t_cez  = 20; /* max of t_cez, t_oez */
@@ -172,9 +168,9 @@ omap2_onenand_calc_sync_timings(struct omap_onenand_platform_data *cfg,
 	int min_gpmc_clk_period, t_ces, t_avds, t_avdh, t_ach, t_aavdh, t_rdyo;
 	int div, gpmc_clk_ns;
 
-	if (cfg->flags & ONENAND_SYNC_READ)
+	if (flags & ONENAND_SYNC_READ)
 		onenand_flags = ONENAND_FLAG_SYNCREAD;
-	else if (cfg->flags & ONENAND_SYNC_READWRITE)
+	else if (flags & ONENAND_SYNC_READWRITE)
 		onenand_flags = ONENAND_FLAG_SYNCREAD | ONENAND_FLAG_SYNCWRITE;
 
 	switch (freq) {
@@ -265,9 +261,7 @@ omap2_onenand_calc_sync_timings(struct omap_onenand_platform_data *cfg,
 	dev_t.cyc_aavdh_oe = 1;
 	dev_t.t_rdyo = t_rdyo * 1000 + min_gpmc_clk_period;
 
-	gpmc_calc_timings(&t, &dev_t);
-
-	return t;
+	gpmc_calc_timings(t, &dev_t);
 }
 
 static int gpmc_set_sync_mode(int cs, struct gpmc_timings *t)
@@ -300,7 +294,7 @@ static int omap2_onenand_setup_async(void __iomem *onenand_base)
 
 	omap2_onenand_set_async_mode(onenand_base);
 
-	t = omap2_onenand_calc_async_timings();
+	omap2_onenand_calc_async_timings(&t);
 
 	ret = gpmc_set_async_mode(gpmc_onenand_data->cs, &t);
 	if (ret < 0)
@@ -322,7 +316,7 @@ static int omap2_onenand_setup_sync(void __iomem *onenand_base, int *freq_ptr)
 		set_onenand_cfg(onenand_base);
 	}
 
-	t = omap2_onenand_calc_sync_timings(gpmc_onenand_data, freq);
+	omap2_onenand_calc_sync_timings(&t, gpmc_onenand_data->flags, freq);
 
 	ret = gpmc_set_sync_mode(gpmc_onenand_data->cs, &t);
 	if (ret < 0)
-- 
1.7.10.4


  reply	other threads:[~2013-03-15 15:20 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-15 15:20 [PATCH V3 00/18] ARM: OMAP2+: GPMC clean-up and DT update Jon Hunter
2013-03-15 15:20 ` Jon Hunter [this message]
2013-03-15 15:21 ` [PATCH V3 02/18] ARM: OMAP2+: Add variable to store number of GPMC waitpins Jon Hunter
2013-03-16 20:59   ` Ezequiel Garcia
2013-03-18 13:43     ` Jon Hunter
2013-03-15 15:21 ` [PATCH V3 03/18] ARM: OMAP2+: Add structure for storing GPMC settings Jon Hunter
2013-03-15 15:21 ` [PATCH V3 04/18] ARM: OMAP2+: Add function for configuring " Jon Hunter
2013-03-15 15:21 ` [PATCH V3 05/18] ARM: OMAP2+: Convert ONENAND to use gpmc_cs_program_settings() Jon Hunter
2013-03-15 15:21 ` [PATCH V3 06/18] ARM: OMAP2+: Convert NAND " Jon Hunter
2013-03-15 15:21 ` [PATCH V3 07/18] ARM: OMAP2+: Convert SMC91x " Jon Hunter
2013-03-15 15:21 ` [PATCH V3 08/18] ARM: OMAP2+: Convert TUSB " Jon Hunter
2013-03-15 15:21 ` [PATCH V3 09/18] ARM: OMAP2+: Don't configure of chip-select options in gpmc_cs_configure() Jon Hunter
2013-03-15 15:21 ` [PATCH V3 10/18] ARM: OMAP2+: Add function to read GPMC settings from device-tree Jon Hunter
2013-03-17  5:24   ` Ezequiel Garcia
2013-03-18 13:43     ` Jon Hunter
2013-03-15 15:21 ` [PATCH V3 11/18] ARM: OMAP2+: Add device-tree support for NOR flash Jon Hunter
2013-03-15 15:21 ` [PATCH V3 12/18] ARM: OMAP2+: Add additional GPMC timing parameters Jon Hunter
2013-03-18 14:07   ` Rob Herring
2013-03-18 14:32     ` Jon Hunter
2013-03-18 15:59       ` Jon Hunter
2013-03-15 15:21 ` [PATCH V3 13/18] ARM: OMAP2+: Convert NAND to retrieve GPMC settings from DT Jon Hunter
2013-03-15 15:21 ` [PATCH V3 14/18] ARM: OMAP2+: Convert ONENAND " Jon Hunter
2013-03-15 15:21 ` [PATCH V3 15/18] ARM: OMAP2+: Detect incorrectly aligned GPMC base address Jon Hunter
2013-03-15 15:21 ` [PATCH V3 16/18] ARM: OMAP2+: Remove unnecesssary GPMC definitions and variable Jon Hunter
2013-03-15 15:21 ` [PATCH V3 17/18] ARM: OMAP2+: Allow GPMC probe to complete even if CS mapping fails Jon Hunter
2013-03-15 15:21 ` [PATCH V3 18/18] ARM: OMAP2+: return -ENODEV if GPMC child device creation fails Jon Hunter
2013-03-17  5:34 ` [PATCH V3 00/18] ARM: OMAP2+: GPMC clean-up and DT update Ezequiel Garcia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1363360876-13617-2-git-send-email-jon-hunter@ti.com \
    --to=jon-hunter@ti.com \
    --cc=b-cousson@ti.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=elezegarcia@gmail.com \
    --cc=grant.likely@secretlab.ca \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=mpfj-list@mimc.co.uk \
    --cc=rob.herring@calxeda.com \
    --cc=tony@atomide.com \
    --cc=zonque@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).