Thread (16 messages) 16 messages, 4 authors, 2011-12-09
STALE5306d

[PATCH 2/3] pata/at91: use new introduce smc accessor

From: Sergei Shtylyov <hidden>
Date: 2011-12-09 10:59:49
Also in: linux-ide

Hello.

On 08-12-2011 19:23, Jean-Christophe PLAGNIOL-VILLARD wrote:

    Your subject doesn't parse. Maybe you meant "use newly introduced smc 
accessor"?
this will allow to use the pata_at91 on a single zImage
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD<redacted>
Cc: Nicolas Ferre<redacted>
Cc: linux-ide at vger.kernel.org
---
Hi,
	it's depends on other patch for AT91 can we apply via at91
Best Regards,
J.
  drivers/ata/pata_at91.c |   43 +++++++++++++++++++++----------------------
  1 files changed, 21 insertions(+), 22 deletions(-)
quoted hunk ↗ jump to hunk
diff --git a/drivers/ata/pata_at91.c b/drivers/ata/pata_at91.c
index 5249e6d..c8d1154 100644
--- a/drivers/ata/pata_at91.c
+++ b/drivers/ata/pata_at91.c
@@ -207,11 +207,11 @@ static void set_smc_timing(struct device *dev, struct ata_device *adev,
  {
  	int ret = 0;
  	int use_iordy;
+	struct sam9_smc_config smc;
  	unsigned int t6z;         /* data tristate time in ns */
  	unsigned int cycle;       /* SMC Cycle width in MCK ticks */
  	unsigned int setup;       /* SMC Setup width in MCK ticks */
  	unsigned int pulse;       /* CFIOR and CFIOW pulse width in MCK ticks */
-	unsigned int cs_setup = 0;/* CS4 or CS5 setup width in MCK ticks */
  	unsigned int cs_pulse;    /* CS4 or CS5 pulse width in MCK ticks*/
  	unsigned int tdf_cycles;  /* SMC TDF MCK ticks */
  	unsigned long mck_hz;     /* MCK frequency in Hz */
@@ -244,26 +244,25 @@ static void set_smc_timing(struct device *dev, struct ata_device *adev,
  	}

  	dev_dbg(dev, "Use IORDY=%u, TDF Cycles=%u\n", use_iordy, tdf_cycles);
-	info->mode |= AT91_SMC_TDF_(tdf_cycles);

  	/* write SMC Setup Register */
-	at91_sys_write(AT91_SMC_SETUP(info->cs),
-			AT91_SMC_NWESETUP_(setup) |
-			AT91_SMC_NRDSETUP_(setup) |
-			AT91_SMC_NCS_WRSETUP_(cs_setup) |
-			AT91_SMC_NCS_RDSETUP_(cs_setup));
+	smc.nrd_setup = setup;
+	smc.nwe_setup = smc.nrd_setup;
+	smc.ncs_read_setup = 0;
+	smc.ncs_write_setup = smc.ncs_read_setup;
    Why not:

	smc.nrd_setup = smc.nwe_setup = setup;
	smc.ncs_read_setup = smc.ncs_write_setup = 0;
  	/* write SMC Pulse Register */
-	at91_sys_write(AT91_SMC_PULSE(info->cs),
-			AT91_SMC_NWEPULSE_(pulse) |
-			AT91_SMC_NRDPULSE_(pulse) |
-			AT91_SMC_NCS_WRPULSE_(cs_pulse) |
-			AT91_SMC_NCS_RDPULSE_(cs_pulse));
+	smc.nrd_pulse = pulse;
+	smc.nwe_pulse = smc.nrd_pulse;
+	smc.ncs_read_pulse =cs_pulse;
    Add space after =, please.
+	smc.ncs_write_pulse = smc.ncs_read_pulse;
    Why not:

	smc.nrd_pulse = smc.nwe_pulse = pulse;
	smc.ncs_read_pulse = smc.ncs_write_pulse = cs_pulse;
  	/* write SMC Cycle Register */
-	at91_sys_write(AT91_SMC_CYCLE(info->cs),
-			AT91_SMC_NWECYCLE_(cycle) |
-			AT91_SMC_NRDCYCLE_(cycle));
+	smc.read_cycle = cycle;
+	smc.write_cycle = smc.read_cycle;
    Why not:

	smc.read_cycle = smc.write_cycle = cycle;

WBR, Sergei
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help