linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: viresh.kumar@st.com (Viresh KUMAR)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 11/74] ST SPEAr: Adding support for divisor per parent clock
Date: Mon, 30 Aug 2010 16:08:42 +0530	[thread overview]
Message-ID: <f48a03e98396acfa0baf06105eb66c41fbb70e4d.1283161023.git.viresh.kumar@st.com> (raw)
In-Reply-To: <cover.1283161023.git.viresh.kumar@st.com>

This patch was intended to provide support for clocks with multiple parents,
where clock derived from any parent can be divided by a fixed number or can be
passed to synthesizer. For this clock framework is reorganized to make behaviour
of functions more closer to their name.

Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
---
 arch/arm/plat-spear/clock.c              |  249 +++++++++++++++++++-----------
 arch/arm/plat-spear/include/plat/clock.h |    6 +-
 2 files changed, 162 insertions(+), 93 deletions(-)

diff --git a/arch/arm/plat-spear/clock.c b/arch/arm/plat-spear/clock.c
index f1cf832..ab29353 100644
--- a/arch/arm/plat-spear/clock.c
+++ b/arch/arm/plat-spear/clock.c
@@ -64,6 +64,40 @@ static struct clkops generic_clkops = {
 	.disable = generic_clk_disable,
 };
 
+/* returns current programmed clocks clock info structure */
+static struct pclk_info *pclk_info_get(struct clk *clk)
+{
+	unsigned int mask, i;
+	struct pclk_info *info = NULL;
+
+	mask = (readl(clk->pclk_sel->pclk_sel_reg) >> clk->pclk_sel_shift)
+		& clk->pclk_sel->pclk_sel_mask;
+
+	for (i = 0; i < clk->pclk_sel->pclk_count; i++) {
+		if (clk->pclk_sel->pclk_info[i].pclk_mask == mask)
+			info = &clk->pclk_sel->pclk_info[i];
+	}
+
+	return info;
+}
+
+/*
+ * Set Update pclk, and pclk_info of clk and add clock sibling node to current
+ * parents children list
+ */
+static void update_clk_tree(struct clk *clk, struct pclk_info *pclk_info)
+{
+	unsigned long flags;
+
+	spin_lock_irqsave(&clocks_lock, flags);
+	list_del(&clk->sibling);
+	list_add(&clk->sibling, &pclk_info->pclk->children);
+
+	clk->pclk = pclk_info->pclk;
+	clk->pclk_info = pclk_info;
+	spin_unlock_irqrestore(&clocks_lock, flags);
+}
+
 /*
  * clk_enable - inform the system when the clock source should be running.
  * @clk: clock source
@@ -161,6 +195,7 @@ int clk_set_parent(struct clk *clk, struct clk *parent)
 	if (clk->pclk == parent)
 		return 0;
 
+	/* check if requested parent is in clk parent list */
 	for (i = 0; i < clk->pclk_sel->pclk_count; i++) {
 		if (clk->pclk_sel->pclk_info[i].pclk == parent) {
 			found = 1;
@@ -180,8 +215,11 @@ int clk_set_parent(struct clk *clk, struct clk *parent)
 	spin_unlock_irqrestore(&clocks_lock, flags);
 
 	/* reflect parent change in software */
+	update_clk_tree(clk, &clk->pclk_sel->pclk_info[i]);
+
 	clk->recalc(clk);
 	propagate_rate(&clk->children);
+
 	return 0;
 }
 EXPORT_SYMBOL(clk_set_parent);
@@ -220,14 +258,23 @@ void clk_register(struct clk_lookup *cl)
 	/* root clock don't have any parents */
 	if (!clk->pclk && !clk->pclk_sel) {
 		list_add(&clk->sibling, &root_clks);
-		/* add clocks with only one parent to parent's children list */
 	} else if (clk->pclk && !clk->pclk_sel) {
+		/* add clocks with only one parent to parent's children list */
 		list_add(&clk->sibling, &clk->pclk->children);
 	} else {
-		/* add clocks with > 1 parent to 1st parent's children list */
-		clk->pclk = clk->pclk_sel->pclk_info[0].pclk;
-		list_add(&clk->sibling,
-			 &clk->pclk_sel->pclk_info[0].pclk->children);
+		/* clocks with more than one parent */
+		struct pclk_info *pclk_info;
+
+		pclk_info = pclk_info_get(clk);
+		if (!pclk_info) {
+			printk(KERN_ERR "CLKDEV: invalid pclk info of clk with"
+					" %s dev_id and %s con_id\n",
+					cl->dev_id, cl->con_id);
+		} else {
+			clk->pclk = pclk_info->pclk;
+			clk->pclk_info = pclk_info;
+			list_add(&clk->sibling, &pclk_info->pclk->children);
+		}
 	}
 	spin_unlock_irqrestore(&clocks_lock, flags);
 
@@ -252,42 +299,6 @@ static void propagate_rate(struct list_head *lhead)
 	}
 }
 
-/* returns current programmed clocks clock info structure */
-static struct pclk_info *pclk_info_get(struct clk *clk)
-{
-	unsigned int mask, i;
-	unsigned long flags;
-	struct pclk_info *info = NULL;
-
-	spin_lock_irqsave(&clocks_lock, flags);
-	mask = (readl(clk->pclk_sel->pclk_sel_reg) >> clk->pclk_sel_shift)
-			& clk->pclk_sel->pclk_sel_mask;
-
-	for (i = 0; i < clk->pclk_sel->pclk_count; i++) {
-		if (clk->pclk_sel->pclk_info[i].pclk_mask == mask)
-			info = &clk->pclk_sel->pclk_info[i];
-	}
-	spin_unlock_irqrestore(&clocks_lock, flags);
-
-	return info;
-}
-
-/*
- * Set pclk as cclk's parent and add clock sibling node to current parents
- * children list
- */
-static void change_parent(struct clk *cclk, struct clk *pclk)
-{
-	unsigned long flags;
-
-	spin_lock_irqsave(&clocks_lock, flags);
-	list_del(&cclk->sibling);
-	list_add(&cclk->sibling, &pclk->children);
-
-	cclk->pclk = pclk;
-	spin_unlock_irqrestore(&clocks_lock, flags);
-}
-
 /*
  * calculates current programmed rate of pll1
  *
@@ -304,28 +315,53 @@ void pll_clk_recalc(struct clk *clk)
 	unsigned long flags;
 
 	spin_lock_irqsave(&clocks_lock, flags);
-	mode = (readl(config->mode_reg) >> config->masks->mode_shift) &
-		config->masks->mode_mask;
-
-	val = readl(config->cfg_reg);
-	/* calculate denominator */
-	den = (val >> config->masks->div_p_shift) & config->masks->div_p_mask;
-	den = 1 << den;
-	den *= (val >> config->masks->div_n_shift) & config->masks->div_n_mask;
-
-	/* calculate numerator & denominator */
-	if (!mode) {
-		/* Normal mode */
-		num *= (val >> config->masks->norm_fdbk_m_shift) &
-			config->masks->norm_fdbk_m_mask;
+
+	/*
+	 * read divisor from hardware, only in two cases:
+	 * - There is only parent to clk and it requires *_clk_recalc
+	 * - There are two parents of a clock and current pclk requires
+	 *   *_clk_recalc
+	 */
+	if (!clk->pclk_info || clk->pclk_info->scalable) {
+		mode = (readl(config->mode_reg) >> config->masks->mode_shift) &
+			config->masks->mode_mask;
+
+		val = readl(config->cfg_reg);
+		spin_unlock_irqrestore(&clocks_lock, flags);
+
+		/* calculate denominator */
+		den = (val >> config->masks->div_p_shift) &
+			config->masks->div_p_mask;
+		den = 1 << den;
+		den *= (val >> config->masks->div_n_shift) &
+			config->masks->div_n_mask;
+
+		/* calculate numerator & denominator */
+		if (!mode) {
+			/* Normal mode */
+			num *= (val >> config->masks->norm_fdbk_m_shift) &
+				config->masks->norm_fdbk_m_mask;
+		} else {
+			/* Dithered mode */
+			num *= (val >> config->masks->dith_fdbk_m_shift) &
+				config->masks->dith_fdbk_m_mask;
+			den *= 256;
+		}
+
+		spin_lock_irqsave(&clocks_lock, flags);
+		val = (((clk->pclk->rate/10000) * num) / den) * 10000;
 	} else {
-		/* Dithered mode */
-		num *= (val >> config->masks->dith_fdbk_m_shift) &
-			config->masks->dith_fdbk_m_mask;
-		den *= 256;
+		int div = 0;
+		/*
+		 * only if there are two parents and current parent requires
+		 * simple division
+		 */
+		div = (clk->pclk_info->div_factor < 1) ? 1 :
+			clk->pclk_info->div_factor;
+		val = clk->pclk->rate/div;
 	}
 
-	clk->rate = (((clk->pclk->rate/10000) * num) / den) * 10000;
+	clk->rate = val;
 	spin_unlock_irqrestore(&clocks_lock, flags);
 }
 
@@ -337,8 +373,23 @@ void bus_clk_recalc(struct clk *clk)
 	unsigned long flags;
 
 	spin_lock_irqsave(&clocks_lock, flags);
-	div = ((readl(config->reg) >> config->masks->shift) &
-			config->masks->mask) + 1;
+	/*
+	 * read divisor from hardware, only in two cases:
+	 * - There is only parent to clk and it requires *_clk_recalc
+	 * - There are two parents of a clock and current pclk requires
+	 *   *_clk_recalc
+	 */
+	if (!clk->pclk_info || clk->pclk_info->scalable) {
+		div = ((readl(config->reg) >> config->masks->shift) &
+				config->masks->mask) + 1;
+	} else {
+		/*
+		 * only if there are two parents and current parent requires
+		 * simple division
+		 */
+		div = (clk->pclk_info->div_factor < 1) ? 1 :
+			clk->pclk_info->div_factor;
+	}
 	clk->rate = (unsigned long)clk->pclk->rate / div;
 	spin_unlock_irqrestore(&clocks_lock, flags);
 }
@@ -356,25 +407,19 @@ void bus_clk_recalc(struct clk *clk)
 void aux_clk_recalc(struct clk *clk)
 {
 	struct aux_clk_config *config = clk->private_data;
-	struct pclk_info *pclk_info = NULL;
 	unsigned int num = 1, den = 1, val, eqn;
 	unsigned long flags;
 
-	/* get current programmed parent */
-	pclk_info = pclk_info_get(clk);
-	if (!pclk_info) {
-		spin_lock_irqsave(&clocks_lock, flags);
-		clk->pclk = NULL;
-		clk->rate = 0;
-		spin_unlock_irqrestore(&clocks_lock, flags);
-		return;
-	}
-
-	change_parent(clk, pclk_info->pclk);
-
 	spin_lock_irqsave(&clocks_lock, flags);
-	if (pclk_info->scalable) {
+	/*
+	 * read divisor from hardware, only in two cases:
+	 * - There is only parent to clk and it requires *_clk_recalc
+	 * - There are two parents of a clock and current pclk requires
+	 *   *_clk_recalc
+	 */
+	if (!clk->pclk_info || clk->pclk_info->scalable) {
 		val = readl(config->synth_reg);
+		spin_unlock_irqrestore(&clocks_lock, flags);
 
 		eqn = (val >> config->masks->eq_sel_shift) &
 			config->masks->eq_sel_mask;
@@ -388,9 +433,19 @@ void aux_clk_recalc(struct clk *clk)
 		/* calculate denominator */
 		den *= (val >> config->masks->yscale_sel_shift) &
 			config->masks->yscale_sel_mask;
+
+		spin_lock_irqsave(&clocks_lock, flags);
 		val = (((clk->pclk->rate/10000) * num) / den) * 10000;
-	} else
-		val = clk->pclk->rate;
+	} else {
+		/*
+		 * only if there are two parents and current parent requires
+		 * simple division
+		 */
+		int div_factor = (clk->pclk_info->div_factor < 1) ? 1 :
+			clk->pclk_info->div_factor;
+
+		val = clk->pclk->rate/div_factor;
+	}
 
 	clk->rate = val;
 	spin_unlock_irqrestore(&clocks_lock, flags);
@@ -404,28 +459,32 @@ void aux_clk_recalc(struct clk *clk)
 void gpt_clk_recalc(struct clk *clk)
 {
 	struct gpt_clk_config *config = clk->private_data;
-	struct pclk_info *pclk_info = NULL;
 	unsigned int div = 1, val;
 	unsigned long flags;
 
-	pclk_info = pclk_info_get(clk);
-	if (!pclk_info) {
-		spin_lock_irqsave(&clocks_lock, flags);
-		clk->pclk = NULL;
-		clk->rate = 0;
-		spin_unlock_irqrestore(&clocks_lock, flags);
-		return;
-	}
-
-	change_parent(clk, pclk_info->pclk);
-
 	spin_lock_irqsave(&clocks_lock, flags);
-	if (pclk_info->scalable) {
+	/*
+	 * read divisor from hardware, only in two cases:
+	 * - There is only parent to clk and it requires *_clk_recalc
+	 * - There are two parents of a clock and current pclk requires
+	 *   *_clk_recalc
+	 */
+	if (!clk->pclk_info || clk->pclk_info->scalable) {
 		val = readl(config->synth_reg);
+		spin_unlock_irqrestore(&clocks_lock, flags);
+
 		div += (val >> config->masks->mscale_sel_shift) &
 			config->masks->mscale_sel_mask;
 		div *= 1 << (((val >> config->masks->nscale_sel_shift) &
 					config->masks->nscale_sel_mask) + 1);
+		spin_lock_irqsave(&clocks_lock, flags);
+	} else {
+		/*
+		 * only if there are two parents and current parent requires
+		 * simple division
+		 */
+		div = (clk->pclk_info->div_factor < 1) ? 1 :
+			clk->pclk_info->div_factor;
 	}
 
 	clk->rate = (unsigned long)clk->pclk->rate / div;
@@ -439,9 +498,15 @@ void gpt_clk_recalc(struct clk *clk)
 void follow_parent(struct clk *clk)
 {
 	unsigned long flags;
-	unsigned int div_factor = (clk->div_factor < 1) ? 1 : clk->div_factor;
+	unsigned int div_factor;
 
 	spin_lock_irqsave(&clocks_lock, flags);
+	if (clk->pclk_info)
+		div_factor = clk->pclk_info->div_factor;
+	else
+		div_factor = clk->div_factor;
+	div_factor = (div_factor < 1) ? 1 : div_factor;
+
 	clk->rate = clk->pclk->rate/div_factor;
 	spin_unlock_irqrestore(&clocks_lock, flags);
 }
diff --git a/arch/arm/plat-spear/include/plat/clock.h b/arch/arm/plat-spear/include/plat/clock.h
index e08b58c..d8d0856 100644
--- a/arch/arm/plat-spear/include/plat/clock.h
+++ b/arch/arm/plat-spear/include/plat/clock.h
@@ -37,11 +37,13 @@ struct clkops {
  * @pclk: pointer to parent clk
  * @pclk_mask: value to be written for selecting this parent
  * @scalable: Is parent scalable (1 - YES, 0 - NO)
+ * @div_factor: div factor for pclk
  */
 struct pclk_info {
 	struct clk *pclk;
 	u8 pclk_mask;
 	u8 scalable;
+	u8 div_factor;
 };
 
 /**
@@ -67,8 +69,9 @@ struct pclk_sel {
  * @en_reg_bit: clk enable/disable bit
  * @ops: clk enable/disable ops - generic_clkops selected if NULL
  * @recalc: pointer to clock rate recalculate function
- * @div_factor: division factor to parent clock. Only for recalc = follow_parent
+ * @div_factor: division factor to parent clock. Only for clks with one parent
  * @pclk: current parent clk
+ * @pclk_info: current parent clk's pclk_info
  * @pclk_sel: pointer to parent selection structure
  * @pclk_sel_shift: register shift for selecting parent of this clock
  * @children: list for childrens or this clock
@@ -86,6 +89,7 @@ struct clk {
 	unsigned int div_factor;
 
 	struct clk *pclk;
+	struct pclk_info *pclk_info;
 	struct pclk_sel *pclk_sel;
 	unsigned int pclk_sel_shift;
 
-- 
1.7.2.2

  parent reply	other threads:[~2010-08-30 10:38 UTC|newest]

Thread overview: 207+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-30 10:38 [PATCH 00/74] Updating SPEAr Support Viresh KUMAR
2010-08-30 10:38 ` [PATCH 01/74] ST SPEAr: Padmux code Updated Viresh KUMAR
2010-09-06 22:49   ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-07  3:51     ` viresh kumar
2010-09-07  4:07       ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-07  4:10         ` viresh kumar
2010-08-30 10:38 ` [PATCH 02/74] ST SPEAr: Making clock functions more generic Viresh KUMAR
2010-08-30 10:38 ` [PATCH 03/74] ST SPEAr: Formalized timer support Viresh KUMAR
2010-09-06 22:55   ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-13  3:22     ` Shiraz Hashim
2010-09-13  3:37       ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-13  4:04         ` Shiraz Hashim
2010-09-13  4:37           ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-13  7:49       ` Russell King - ARM Linux
2010-08-30 10:38 ` [PATCH 04/74] ST SPEAr13XX: Adding machine specific header files Viresh KUMAR
2010-09-02  8:56   ` Russell King - ARM Linux
2010-09-03  6:57     ` Shiraz Hashim
2010-08-30 10:38 ` [PATCH 05/74] ST SPEAr13XX: Adding machine specific src files Viresh KUMAR
2010-09-02  9:04   ` Russell King - ARM Linux
2010-09-03  6:38     ` Shiraz Hashim
2010-08-30 10:38 ` [PATCH 06/74] ST SPEAr: Adding support for SPEAr13xx SoC in spear generic plat/ Viresh KUMAR
2010-08-30 10:38 ` [PATCH 07/74] ST SPEAr13XX: Added compilation support in arch/arm/ Viresh KUMAR
2010-09-02 16:27   ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-06 11:52     ` viresh kumar
2010-09-07 11:35     ` viresh kumar
2010-09-07 20:56       ` Russell King - ARM Linux
2010-08-30 10:38 ` [PATCH 08/74] ST SPEAr1300: Adding default config file Viresh KUMAR
2010-09-02  8:51   ` Russell King - ARM Linux
2010-09-03  1:45     ` Nicolas Pitre
2010-09-03  7:32       ` Russell King - ARM Linux
2010-09-03  7:44         ` viresh kumar
2010-08-30 10:38 ` [PATCH 09/74] ST SPEAr: Adding information in Documentation/ and MAINTAINERS Viresh KUMAR
2010-08-30 10:38 ` [PATCH 10/74] ST SPEAr: Adding support for CLCD on SPEAr3xx/6xx Viresh KUMAR
2010-09-02  9:08   ` Russell King - ARM Linux
2010-09-06  9:43     ` viresh kumar
2010-08-30 10:38 ` Viresh KUMAR [this message]
2010-08-30 10:38 ` [PATCH 12/74] ST SPEAr: Correcting SOC Config base address for spear320 Viresh KUMAR
2010-09-06 22:58   ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-07  8:36     ` viresh kumar
2010-08-30 10:38 ` [PATCH 13/74] ST SPEAr: Update clock framework and definitions Viresh KUMAR
2010-09-06 23:09   ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-07  3:58     ` viresh kumar
2010-09-07  4:06       ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-07  9:01         ` viresh kumar
2010-09-07  9:09           ` Russell King - ARM Linux
2010-09-07  9:16             ` viresh kumar
2010-08-30 10:38 ` [PATCH 14/74] ST SPEAr: Adding PLGPIO driver for spear platform Viresh KUMAR
2010-09-02  9:13   ` Russell King - ARM Linux
2010-09-03  3:44     ` viresh kumar
2010-08-30 10:38 ` [PATCH 16/74] ST SPEAr: adding support for synopsis i2c designware Viresh KUMAR
2010-09-06 23:12   ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-07  4:02     ` viresh kumar
2010-09-07  4:12       ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-07  9:16         ` viresh kumar
2010-09-07  9:44           ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-07 10:17             ` viresh kumar
2010-08-30 10:38 ` [PATCH 18/74] ST SPEAr: enhanced spear clock framework Viresh KUMAR
2010-08-30 10:38 ` [PATCH 19/74] ST SPEAr: Adding Debugfs support on " Viresh KUMAR
2010-08-30 10:38 ` [PATCH 20/74] Clock Framework: Adding ENABLED_ON_INIT feature in clk Viresh KUMAR
2010-08-30 10:38 ` [PATCH 22/74] ST SPEAr: Added ARM PL061 GPIO Support on SPEAr13xx and modified resource size Viresh KUMAR
2010-08-30 10:38 ` [PATCH 23/74] ST SPEAr: Adding support for ST's PWM IP Viresh KUMAR
2010-08-30 10:38 ` [PATCH 25/74] ST SPEAr: Adding support for serial nor flash in all spear platforms Viresh KUMAR
2010-08-30 10:38 ` [PATCH 26/74] ST SPEAr: Adding Watchdog support Viresh KUMAR
2010-08-30 10:38 ` [PATCH 30/74] ST SPEAr: Added PCIE host controller base driver support Viresh KUMAR
2010-08-30 10:38 ` [PATCH 31/74] ST SPEAr: Adding support for SSP PL022 Viresh KUMAR
2010-09-02  9:57   ` Russell King - ARM Linux
2010-09-03  3:50     ` viresh kumar
2010-09-02 19:18   ` Linus Walleij
2010-09-03  3:58     ` viresh kumar
2010-08-30 10:38 ` [PATCH 32/74] ST SPEAr: Adding clk_set_rate support Viresh KUMAR
2010-09-02  9:21   ` Russell King - ARM Linux
2010-09-06 10:03     ` viresh kumar
2010-08-30 10:38 ` [PATCH 33/74] ST SPEAr: Adding support for SDHCI (SDIO) Viresh KUMAR
2010-08-30 10:38 ` [PATCH 34/74] ST SPEAr: Changing resource size of amba devices to SZ_4K Viresh KUMAR
2010-08-30 10:38 ` [PATCH 35/74] ST SPEAr: Enabling clocks before amba device registeration Viresh KUMAR
2010-09-02 10:02   ` Russell King - ARM Linux
2010-09-06 11:26     ` viresh kumar
2010-08-30 10:39 ` [PATCH 36/74] ST SPEAr: Replacing SIZE macro's with actual required size Viresh KUMAR
2010-08-30 10:39 ` [PATCH 37/74] SPEAr: removing size based macros except those necessary Viresh KUMAR
2010-08-30 10:39 ` [PATCH 38/74] ST SPEAr3xx: Rearranging declarations in clock.c file Viresh KUMAR
2010-09-02 10:04   ` Russell King - ARM Linux
2010-09-03  3:52     ` viresh kumar
2010-08-30 10:39 ` [PATCH 39/74] ST SPEAr: Adding miscellaneous devices and clocks Viresh KUMAR
2010-08-30 10:39 ` [PATCH 40/74] ST SPEAr 13xx : Adding support for SPEAr1310 Viresh KUMAR
2010-09-02 10:07   ` Russell King - ARM Linux
2010-09-03  3:53     ` viresh kumar
2010-08-30 10:39 ` [PATCH 41/74] ST SPEAr : Adding CAN platform support for SPEAr320 and SPEAr1310 Viresh KUMAR
2010-08-30 10:39 ` [PATCH 42/74] ST SPEAr: Adding support for DDR in clock framework Viresh KUMAR
2010-08-30 10:39 ` [PATCH 43/74] ST SPEAr : EMI (Extrenal Memory Interface) controller driver Viresh KUMAR
2010-09-06 22:40   ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-07 10:51     ` viresh kumar
2010-09-07 11:38       ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-07 11:54         ` viresh kumar
2010-09-07 13:32           ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-10  8:11             ` Vipin Kumar
2010-09-10  8:56               ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-10  9:06                 ` Vipin Kumar
2010-09-10  9:21                   ` Jean-Christophe PLAGNIOL-VILLARD
2010-10-01  5:42     ` Vipin Kumar
2010-08-30 10:39 ` [PATCH 44/74] ST SPEAr : FSMC (Flexible Static Memory Controller) NOR interface driver Viresh KUMAR
2010-09-01 22:43   ` Linus Walleij
2010-08-30 10:39 ` [PATCH 45/74] SPEAr : SEV Send event to secondary CPUs Viresh KUMAR
2010-09-02 10:22   ` Russell King - ARM Linux
2010-09-02 10:40     ` Will Deacon
2010-09-02 11:07       ` Shilimkar, Santosh
2010-09-02 15:59         ` Russell King - ARM Linux
2010-09-02 13:08       ` Russell King - ARM Linux
2010-09-06  7:44     ` Shiraz Hashim
2010-08-30 10:39 ` [PATCH 46/74] SPEAr Clock Framework: Adding support for PLL frequency change Viresh KUMAR
2010-08-30 10:39 ` [PATCH 47/74] SPEAr Power Management: Added the support for Standby mode Viresh KUMAR
2010-08-30 10:39 ` [PATCH 48/74] GIC: Added dummy handlers for Power Management Suspend Resume Viresh KUMAR
2010-09-02 10:23   ` Russell King - ARM Linux
2010-09-03  6:24     ` deepaksi
2010-09-03  7:34       ` Russell King - ARM Linux
2010-09-06 11:55         ` deepaksi
2010-09-08 15:12           ` Russell King - ARM Linux
2010-09-09  4:17             ` deepaksi
2010-09-20 13:44               ` deepaksi
2010-09-20 13:48                 ` Russell King - ARM Linux
2010-09-20 14:56                   ` Rob Herring
2010-09-20 15:07                     ` Russell King - ARM Linux
2010-09-20 16:55                       ` Rob Herring
2010-09-20 18:07                         ` Russell King - ARM Linux
2010-09-30  5:33                           ` viresh kumar
2010-08-30 10:39 ` [PATCH 49/74] SPEAr CPU freq: Adding support for CPU Freq framework Viresh KUMAR
2010-09-02 10:24   ` Russell King - ARM Linux
2010-09-03  6:20     ` deepaksi
2010-08-30 10:39 ` [PATCH 51/74] ST SPEAr1310: Adding fsmc nor support Viresh KUMAR
2010-08-30 10:39 ` [PATCH 52/74] ST SPEAr13xx: Adding CPU hotplug support added for SMP platforms Viresh KUMAR
2010-09-03  6:00   ` Sundar
2010-09-30  9:37     ` Shiraz Hashim
2010-08-30 10:39 ` [PATCH 53/74] ST SPEAr13xx: add l2 cache support Viresh KUMAR
2010-08-30 10:39 ` [PATCH 54/74] ST SPEAr: SDHCI- selecting SD_MMC from misc and fixing sdhci_synth rate to 48 MHz Viresh KUMAR
2010-08-30 10:39 ` [PATCH 55/74] ST SPEAr13xx: Modified static mappings Viresh KUMAR
2010-08-30 10:39 ` [PATCH 56/74] SPEAr13xx: Adding and Updating Clock definitions Viresh KUMAR
2010-08-30 10:39 ` [PATCH 57/74] SPEAr : Pad multiplexing handling modified Viresh KUMAR
2010-08-30 10:39 ` [PATCH 58/74] SPEAr13xx : Fixed part devices in SPEAr13xx addded to the generic implementation Viresh KUMAR
2010-08-30 10:39 ` [PATCH 59/74] SPEAr : Adding SPEAr1310 pad multiplexing devices Viresh KUMAR
2010-08-30 10:39 ` [PATCH 60/74] ST SPEAr3xx: Passing pmx devices address from machine *.c files Viresh KUMAR
2010-08-30 10:39 ` [PATCH 61/74] SPEAr3xx: Make local structres static Viresh KUMAR
2010-08-30 10:39 ` [PATCH 62/74] SPEAR3xx: Rename register/irq defines to remove naming conflicts Viresh KUMAR
2010-08-30 10:39 ` [PATCH 63/74] SPEAr3xx: Rework pmx_dev code to remove conflicts Viresh KUMAR
2010-08-30 10:39 ` [PATCH 64/74] SPEAr3xx: Rework KConfig to allow all boards to be compiled in Viresh KUMAR
2010-08-30 10:39 ` [PATCH 65/74] SPEAr3xx: Replace defconfigs with single unfied defconfig Viresh KUMAR
2010-08-30 10:39 ` [PATCH 66/74] ST SPEAr: Appending spear3** with global structures Viresh KUMAR
2010-08-30 10:39 ` [PATCH 67/74] ST SPEAr3xx: Updating plgpio and emi source to make it compliant with single image strategy Viresh KUMAR
2010-08-30 10:39 ` [PATCH 68/74] SPEAr6xx: Rework Kconfig for single image solution Viresh KUMAR
2010-08-30 10:39 ` [PATCH 69/74] ST SPEAR6xx: renaming spear600_defconfig as spear6xx_defconfig Viresh KUMAR
2010-08-30 10:39 ` [PATCH 70/74] SPEAr13XX: Update register/macros/devices/routine names and pmx dev registration to implement single image for multiple boards Viresh KUMAR
2010-08-30 10:39 ` [PATCH 71/74] SPEAr13xx: Rework KConfig to allow all boards to be compiled in Viresh KUMAR
2010-08-30 10:39 ` [PATCH 72/74] SPEAr13xx: Replace defconfigs with single unfied defconfig Viresh KUMAR
2010-09-02 15:40   ` Russell King - ARM Linux
2010-09-03  3:56     ` viresh kumar
2010-09-07  9:18     ` viresh kumar
2010-08-30 10:39 ` [PATCH 73/74] ST SPEAr: Updating defconfigs Viresh KUMAR
2010-08-30 10:39 ` [PATCH 74/74] ST SPEAr: Enabling devices in various evb.c files Viresh KUMAR
2010-08-30 10:41 ` [PATCH 15/74] ST SPEAr: adding support for rtc Viresh KUMAR
2010-09-01  1:22   ` [rtc-linux] " Wan ZongShun
2010-09-01  3:44     ` viresh kumar
2010-09-06 19:09   ` Alessandro Zummo
2010-09-07  3:30     ` rajeev
2010-09-07 10:13     ` viresh kumar
2010-09-06 22:45   ` Jean-Christophe PLAGNIOL-VILLARD
2010-09-07  8:35     ` viresh kumar
2010-08-30 10:42 ` [PATCH 17/74] ST SPEAr: Adding USB Host support Viresh KUMAR
2010-08-30 14:10   ` Alan Stern
2010-09-01  3:55     ` viresh kumar
2010-08-30 10:43 ` [PATCH 21/74] ST SPEAr : Added keyboard support Viresh KUMAR
2010-08-30 16:48   ` Dmitry Torokhov
2010-09-01  5:23     ` rajeev
2010-09-01  5:41       ` rajeev
2010-09-01  6:31       ` Dmitry Torokhov
2010-09-01  7:01         ` viresh kumar
2010-08-30 10:43 ` [PATCH 24/74] ST SPEAr: Add smi driver for serial NOR flash Viresh KUMAR
2010-08-30 10:43   ` [PATCH 27/74] ST SPEAr : NAND interface driver for spear platforms Viresh KUMAR
2010-09-01 22:36     ` Linus Walleij
2010-09-02  8:09       ` Armando Visconti
2010-09-02  8:52         ` Armando Visconti
2010-09-02 11:15         ` Linus Walleij
2010-09-02 12:33           ` Armando Visconti
2010-09-03 11:23           ` Alessandro Rubini
2010-09-03 17:26             ` Linus Walleij
2010-09-06  7:25               ` Armando Visconti
2010-09-10  4:21               ` viresh kumar
2010-09-10  8:38                 ` Linus Walleij
2010-09-03  7:11         ` Vipin Kumar
2010-09-03 11:22           ` Sebastian RASMUSSEN
2010-08-30 10:43   ` [PATCH 28/74] Incrementing the ecc_pos array to contain 128 char Viresh KUMAR
2010-08-30 12:14     ` Artem Bityutskiy
2010-08-31  6:34       ` Vipin Kumar
2010-08-31 23:36         ` Artem Bityutskiy
2010-09-01  4:13           ` Vipin Kumar
2010-09-01 10:45             ` Artem Bityutskiy
2010-09-01 11:04               ` Vipin Kumar
2010-09-01 21:23                 ` Ryan Mallon
2010-09-01 21:54                   ` Kevin Cernekee
2010-09-01 22:21                     ` Ryan Mallon
2010-09-01 22:53                       ` Artem Bityutskiy
2010-09-01 23:37                         ` Ryan Mallon
2010-09-01 23:43                           ` Ryan Mallon
2010-09-02  6:33                       ` Brian Norris
2010-09-02  9:49                         ` Artem Bityutskiy
2010-09-01 23:23                 ` Artem Bityutskiy
2010-08-30 10:43   ` [PATCH 29/74] Newly erased page read workaround Viresh KUMAR
2010-08-30 10:44 ` [PATCH 50/74] ST SPEAr: PCIE gadget suppport Viresh KUMAR
2010-09-21 11:32 ` [PATCH 00/74] Updating SPEAr Support Matthias Fuchs
2010-09-21 11:50   ` viresh kumar

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=f48a03e98396acfa0baf06105eb66c41fbb70e4d.1283161023.git.viresh.kumar@st.com \
    --to=viresh.kumar@st.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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).