linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/2] add gpmi support for imx6q
@ 2012-07-03  1:39 Huang Shijie
  2012-07-03  1:39 ` [PATCH v4 1/2] ARM: imx6q: add clocks for gpmi-nand Huang Shijie
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Huang Shijie @ 2012-07-03  1:39 UTC (permalink / raw)
  To: linux-arm-kernel

This patch set adds the gpmi-nand support for imx6q.

I prefer to add the clocks in the gpmi-nand driver.
Yes, it will change the gpmi nand driver, but we have to do so.
The reason is :
  We will support the ONFI nand in mx6q in the future. If the ONFI nand is
  set to Sync mode, we have to __change__ the clocks explicitly.

Test this patch set on imx6q-arm2 board and imx28-evk board.

v3 --> v4:
	[1] add con_id for gpmi nand
	[2] balance the clk_prepare_enable()/clk_disable_unprepare()
	    in __gpmi_enable_clk();
	[3] do not send the second patch which is applied to Shawn's tree.

v2 --> v3:
	[1] fix a bug the clocks.

v1 --> v2:
	[1] add dev_id for the gpmi-nand's clocks.
	[2] set the default values for these clocks.

Huang Shijie (2):
  ARM: imx6q: add clocks for gpmi-nand
  mtd: gpmi: change the code for clocks

 arch/arm/mach-imx/clk-imx6q.c          |    8 +++-
 drivers/mtd/nand/gpmi-nand/gpmi-lib.c  |   45 ++++++++++++++---
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c |   82 ++++++++++++++++++++++++++++----
 drivers/mtd/nand/gpmi-nand/gpmi-nand.h |    3 +-
 4 files changed, 119 insertions(+), 19 deletions(-)

-- 
1.7.4.4

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v4 1/2] ARM: imx6q: add clocks for gpmi-nand
  2012-07-03  1:39 [PATCH v4 0/2] add gpmi support for imx6q Huang Shijie
@ 2012-07-03  1:39 ` Huang Shijie
  2012-07-17  5:41   ` Shawn Guo
  2012-07-18 13:12   ` Artem Bityutskiy
  2012-07-03  1:39 ` [PATCH v4 2/2] mtd: gpmi: change the code for clocks Huang Shijie
  2012-07-16 15:12 ` [PATCH v4 0/2] add gpmi support for imx6q Artem Bityutskiy
  2 siblings, 2 replies; 11+ messages in thread
From: Huang Shijie @ 2012-07-03  1:39 UTC (permalink / raw)
  To: linux-arm-kernel

Add clocks for gpmi-nand.

Signed-off-by: Huang Shijie <shijie8@gmail.com>
---
 arch/arm/mach-imx/clk-imx6q.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c
index 12d9040..b28f68a 100644
--- a/arch/arm/mach-imx/clk-imx6q.c
+++ b/arch/arm/mach-imx/clk-imx6q.c
@@ -151,7 +151,7 @@ enum mx6q_clks {
 	esai, gpt_ipg, gpt_ipg_per, gpu2d_core, gpu3d_core, hdmi_iahb,
 	hdmi_isfr, i2c1, i2c2, i2c3, iim, enfc, ipu1, ipu1_di0, ipu1_di1, ipu2,
 	ipu2_di0, ldb_di0, ldb_di1, ipu2_di1, hsi_tx, mlb, mmdc_ch0_axi,
-	mmdc_ch1_axi, ocram, openvg_axi, pcie_axi, pwm1, pwm2, pwm3, pwm4,
+	mmdc_ch1_axi, ocram, openvg_axi, pcie_axi, pwm1, pwm2, pwm3, pwm4, per1_bch,
 	gpmi_bch_apb, gpmi_bch, gpmi_io, gpmi_apb, sata, sdma, spba, ssi1,
 	ssi2, ssi3, uart_ipg, uart_serial, usboh3, usdhc1, usdhc2, usdhc3,
 	usdhc4, vdo_axi, vpu_axi, cko1, pll1_sys, pll2_bus, pll3_usb_otg,
@@ -357,6 +357,7 @@ int __init mx6q_clocks_init(void)
 	clk[ocram]        = imx_clk_gate2("ocram",         "ahb",               base + 0x74, 28);
 	clk[openvg_axi]   = imx_clk_gate2("openvg_axi",    "axi",               base + 0x74, 30);
 	clk[pcie_axi]     = imx_clk_gate2("pcie_axi",      "pcie_axi_sel",      base + 0x78, 0);
+	clk[per1_bch]     = imx_clk_gate2("per1_bch",      "usdhc3",            base + 0x78, 12);
 	clk[pwm1]         = imx_clk_gate2("pwm1",          "ipg_per",           base + 0x78, 16);
 	clk[pwm2]         = imx_clk_gate2("pwm2",          "ipg_per",           base + 0x78, 18);
 	clk[pwm3]         = imx_clk_gate2("pwm3",          "ipg_per",           base + 0x78, 20);
@@ -394,6 +395,11 @@ int __init mx6q_clocks_init(void)
 	clk_register_clkdev(clk[twd], NULL, "smp_twd");
 	clk_register_clkdev(clk[usboh3], NULL, "usboh3");
 	clk_register_clkdev(clk[apbh_dma], NULL, "110000.dma-apbh");
+	clk_register_clkdev(clk[per1_bch], "per1_bch", "112000.gpmi-nand");
+	clk_register_clkdev(clk[gpmi_bch_apb], "gpmi_bch_apb", "112000.gpmi-nand");
+	clk_register_clkdev(clk[gpmi_bch], "gpmi_bch", "112000.gpmi-nand");
+	clk_register_clkdev(clk[gpmi_apb], "gpmi_apb", "112000.gpmi-nand");
+	clk_register_clkdev(clk[gpmi_io], "gpmi_io", "112000.gpmi-nand");
 	clk_register_clkdev(clk[uart_serial], "per", "2020000.serial");
 	clk_register_clkdev(clk[uart_ipg], "ipg", "2020000.serial");
 	clk_register_clkdev(clk[uart_serial], "per", "21e8000.serial");
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v4 2/2] mtd: gpmi: change the code for clocks
  2012-07-03  1:39 [PATCH v4 0/2] add gpmi support for imx6q Huang Shijie
  2012-07-03  1:39 ` [PATCH v4 1/2] ARM: imx6q: add clocks for gpmi-nand Huang Shijie
@ 2012-07-03  1:39 ` Huang Shijie
  2012-07-16 15:12 ` [PATCH v4 0/2] add gpmi support for imx6q Artem Bityutskiy
  2 siblings, 0 replies; 11+ messages in thread
From: Huang Shijie @ 2012-07-03  1:39 UTC (permalink / raw)
  To: linux-arm-kernel

The gpmi nand driver may needs several clocks(MX6Q needs five clocks).

In the old clock framework, all these clocks are chained together,
all you need is to manipulate the first clock.

But the kernel uses the common clk framework now, which forces us to
get the clocks one by one. When we use them, we have to enable them
one by one too.

Signed-off-by: Huang Shijie <shijie8@gmail.com>
---
 drivers/mtd/nand/gpmi-nand/gpmi-lib.c  |   45 ++++++++++++++---
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c |   82 ++++++++++++++++++++++++++++----
 drivers/mtd/nand/gpmi-nand/gpmi-nand.h |    3 +-
 3 files changed, 112 insertions(+), 18 deletions(-)

diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
index a1f4332..6bb0998 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
@@ -124,12 +124,42 @@ error:
 	return -ETIMEDOUT;
 }
 
+static int __gpmi_enable_clk(struct gpmi_nand_data *this, bool v)
+{
+	struct clk *clk;
+	int ret;
+	int i;
+
+	for (i = 0; i < GPMI_CLK_MAX; i++) {
+		clk = this->resources.clock[i];
+		if (!clk)
+			break;
+
+		if (v) {
+			ret = clk_prepare_enable(clk);
+			if (ret)
+				goto err_clk;
+		} else {
+			clk_disable_unprepare(clk);
+		}
+	}
+	return 0;
+
+err_clk:
+	for (; i > 0; i--)
+		clk_disable_unprepare(this->resources.clock[i - 1]);
+	return ret;
+}
+
+#define gpmi_enable_clk(x) __gpmi_enable_clk(x, true)
+#define gpmi_disable_clk(x) __gpmi_enable_clk(x, false)
+
 int gpmi_init(struct gpmi_nand_data *this)
 {
 	struct resources *r = &this->resources;
 	int ret;
 
-	ret = clk_prepare_enable(r->clock);
+	ret = gpmi_enable_clk(this);
 	if (ret)
 		goto err_out;
 	ret = gpmi_reset_block(r->gpmi_regs, false);
@@ -149,7 +179,7 @@ int gpmi_init(struct gpmi_nand_data *this)
 	/* Select BCH ECC. */
 	writel(BM_GPMI_CTRL1_BCH_MODE, r->gpmi_regs + HW_GPMI_CTRL1_SET);
 
-	clk_disable_unprepare(r->clock);
+	gpmi_disable_clk(this);
 	return 0;
 err_out:
 	return ret;
@@ -205,7 +235,7 @@ int bch_set_geometry(struct gpmi_nand_data *this)
 	ecc_strength  = bch_geo->ecc_strength >> 1;
 	page_size     = bch_geo->page_size;
 
-	ret = clk_prepare_enable(r->clock);
+	ret = gpmi_enable_clk(this);
 	if (ret)
 		goto err_out;
 
@@ -240,7 +270,7 @@ int bch_set_geometry(struct gpmi_nand_data *this)
 	writel(BM_BCH_CTRL_COMPLETE_IRQ_EN,
 				r->bch_regs + HW_BCH_CTRL_SET);
 
-	clk_disable_unprepare(r->clock);
+	gpmi_disable_clk(this);
 	return 0;
 err_out:
 	return ret;
@@ -716,7 +746,7 @@ void gpmi_begin(struct gpmi_nand_data *this)
 	int ret;
 
 	/* Enable the clock. */
-	ret = clk_prepare_enable(r->clock);
+	ret = gpmi_enable_clk(this);
 	if (ret) {
 		pr_err("We failed in enable the clk\n");
 		goto err_out;
@@ -727,7 +757,7 @@ void gpmi_begin(struct gpmi_nand_data *this)
 		gpmi_regs + HW_GPMI_TIMING1);
 
 	/* Get the timing information we need. */
-	nfc->clock_frequency_in_hz = clk_get_rate(r->clock);
+	nfc->clock_frequency_in_hz = clk_get_rate(r->clock[0]);
 	clock_period_in_ns = 1000000000 / nfc->clock_frequency_in_hz;
 
 	gpmi_nfc_compute_hardware_timing(this, &hw);
@@ -784,8 +814,7 @@ err_out:
 
 void gpmi_end(struct gpmi_nand_data *this)
 {
-	struct resources *r = &this->resources;
-	clk_disable_unprepare(r->clock);
+	gpmi_disable_clk(this);
 }
 
 /* Clears a BCH interrupt. */
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
index a6cad5c..b821517 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
@@ -464,9 +464,78 @@ acquire_err:
 	return -EINVAL;
 }
 
+static void gpmi_put_clks(struct gpmi_nand_data *this)
+{
+	struct resources *r = &this->resources;
+	struct clk *clk;
+	int i;
+
+	for (i = 0; i < GPMI_CLK_MAX; i++) {
+		clk = r->clock[i];
+		if (clk) {
+			clk_put(clk);
+			r->clock[i] = NULL;
+		}
+	}
+}
+
+static char *extra_clks_for_mx6q[GPMI_CLK_MAX] = {
+	"gpmi_apb", "gpmi_bch", "gpmi_bch_apb", "per1_bch",
+};
+
+static int __devinit gpmi_get_clks(struct gpmi_nand_data *this)
+{
+	struct resources *r = &this->resources;
+	char **extra_clks = NULL;
+	struct clk *clk;
+	int i;
+
+	/* The main clock is stored in the first. */
+	r->clock[0] = clk_get(this->dev, "gpmi_io");
+	if (IS_ERR(r->clock[0]))
+		goto err_clock;
+
+	/* Get extra clocks */
+	if (GPMI_IS_MX6Q(this))
+		extra_clks = extra_clks_for_mx6q;
+	if (!extra_clks)
+		return 0;
+
+	for (i = 1; i < GPMI_CLK_MAX; i++) {
+		if (extra_clks[i - 1] == NULL)
+			break;
+
+		clk = clk_get(this->dev, extra_clks[i - 1]);
+		if (IS_ERR(clk))
+			goto err_clock;
+
+		r->clock[i] = clk;
+	}
+
+	if (GPMI_IS_MX6Q(this)) {
+		/*
+		 * Set the default values for the clocks in mx6q:
+		 *    The main clock(enfc) : 22MHz
+		 *    The others           : 44.5MHz
+		 *
+		 * These are just the default values. If you want to use
+		 * the ONFI nand which is in the Synchronous Mode, you should
+		 * change the clocks's frequencies as you need.
+		 */
+		clk_set_rate(r->clock[0], 22000000);
+		for (i = 1; i < GPMI_CLK_MAX && r->clock[i]; i++)
+			clk_set_rate(r->clock[i], 44500000);
+	}
+	return 0;
+
+err_clock:
+	dev_dbg(this->dev, "failed in finding the clocks.\n");
+	gpmi_put_clks(this);
+	return -ENOMEM;
+}
+
 static int __devinit acquire_resources(struct gpmi_nand_data *this)
 {
-	struct resources *res = &this->resources;
 	struct pinctrl *pinctrl;
 	int ret;
 
@@ -492,12 +561,9 @@ static int __devinit acquire_resources(struct gpmi_nand_data *this)
 		goto exit_pin;
 	}
 
-	res->clock = clk_get(&this->pdev->dev, NULL);
-	if (IS_ERR(res->clock)) {
-		pr_err("can not get the clock\n");
-		ret = -ENOENT;
+	ret = gpmi_get_clks(this);
+	if (ret)
 		goto exit_clock;
-	}
 	return 0;
 
 exit_clock:
@@ -512,9 +578,7 @@ exit_regs:
 
 static void release_resources(struct gpmi_nand_data *this)
 {
-	struct resources *r = &this->resources;
-
-	clk_put(r->clock);
+	gpmi_put_clks(this);
 	release_register_block(this);
 	release_bch_irq(this);
 	release_dma_channels(this);
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
index ce5daa1..1547a60 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
@@ -22,6 +22,7 @@
 #include <linux/dma-mapping.h>
 #include <linux/fsl/mxs-dma.h>
 
+#define GPMI_CLK_MAX 5 /* MX6Q needs five clocks */
 struct resources {
 	void          *gpmi_regs;
 	void          *bch_regs;
@@ -29,7 +30,7 @@ struct resources {
 	unsigned int  bch_high_interrupt;
 	unsigned int  dma_low_channel;
 	unsigned int  dma_high_channel;
-	struct clk    *clock;
+	struct clk    *clock[GPMI_CLK_MAX];
 };
 
 /**
-- 
1.7.4.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v4 0/2] add gpmi support for imx6q
  2012-07-03  1:39 [PATCH v4 0/2] add gpmi support for imx6q Huang Shijie
  2012-07-03  1:39 ` [PATCH v4 1/2] ARM: imx6q: add clocks for gpmi-nand Huang Shijie
  2012-07-03  1:39 ` [PATCH v4 2/2] mtd: gpmi: change the code for clocks Huang Shijie
@ 2012-07-16 15:12 ` Artem Bityutskiy
  2012-07-17  3:07   ` [PATCH] mtd: gpmi: fix the compiler warnings Huang Shijie
                     ` (2 more replies)
  2 siblings, 3 replies; 11+ messages in thread
From: Artem Bityutskiy @ 2012-07-16 15:12 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 2012-07-02 at 21:39 -0400, Huang Shijie wrote:
> This patch set adds the gpmi-nand support for imx6q.

Shawn's ack would be nice to have. BTW, aiaiai complains like this about
your driver:

drivers/mtd/nand/gpmi-nand/gpmi-nand.c:327:11: warning: incorrect type in assignment (different address spaces) [sparse]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:327:11:    expected void *p [sparse]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:327:11:    got void [noderef] <asn:2>* [sparse]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:347:28: warning: incorrect type in argument 1 (different address spaces) [sparse]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:347:28:    expected void volatile [noderef] <asn:2>*addr [sparse]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:347:28:    got void *gpmi_regs [sparse]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:349:28: warning: incorrect type in argument 1 (different address spaces) [sparse]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:349:28:    expected void volatile [noderef] <asn:2>*addr [sparse]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:349:28:    got void *bch_regs [sparse]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:1464:6: warning: symbol 'gpmi_nfc_exit' was not declared. Should it be static? [sparse]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:670 gpmi_alloc_dma_buffer() error: no modifiers for allocation. [smatch]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:675 gpmi_alloc_dma_buffer() error: no modifiers for allocation. [smatch]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c: In function 'mx23_check_transcription_stamp':
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:1198:9: warning: variable 'byte' set but not used [-Wunused-but-set-variable]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c: In function 'mx23_write_transcription_stamp':
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:1259:15: warning: variable 'byte' set but not used [-Wunused-but-set-variable]
drivers/mtd/nand/gpmi-nand/gpmi-nand.c: At top level:
drivers/mtd/nand/gpmi-nand/gpmi-nand.c:1464:6: warning: no previous prototype for 'gpmi_nfc_exit' [-Wmissing-prototypes]

I did not check whether they are false-positives or not, but some of
these are reasonable warnings - could you please take a look and
possibly fix?

To make sure the line numbers are the same for you, I've attached the
gpmi-nand.c which was tested.

-- 
Best Regards,
Artem Bityutskiy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gpmi-nand.c
Type: text/x-csrc
Size: 47854 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120716/d30403a5/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120716/d30403a5/attachment-0001.sig>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH] mtd: gpmi: fix the compiler warnings
  2012-07-16 15:12 ` [PATCH v4 0/2] add gpmi support for imx6q Artem Bityutskiy
@ 2012-07-17  3:07   ` Huang Shijie
  2012-07-17  5:57   ` [PATCH v2] " Huang Shijie
  2012-07-17  6:14   ` [PATCH v3] " Huang Shijie
  2 siblings, 0 replies; 11+ messages in thread
From: Huang Shijie @ 2012-07-17  3:07 UTC (permalink / raw)
  To: linux-arm-kernel

fix the compiler warnings.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
 drivers/mtd/nand/gpmi-nand/gpmi-lib.c  |    4 ++--
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c |    8 ++++----
 drivers/mtd/nand/gpmi-nand/gpmi-nand.h |    4 ++--
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
index 6bb0998..2289cf8 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
@@ -26,7 +26,7 @@
 #include "gpmi-regs.h"
 #include "bch-regs.h"
 
-struct timing_threshod timing_default_threshold = {
+static struct timing_threshod timing_default_threshold = {
 	.max_data_setup_cycles       = (BM_GPMI_TIMING0_DATA_SETUP >>
 						BP_GPMI_TIMING0_DATA_SETUP),
 	.internal_data_setup_in_ns   = 0,
@@ -738,7 +738,7 @@ void gpmi_begin(struct gpmi_nand_data *this)
 {
 	struct resources *r = &this->resources;
 	struct timing_threshod *nfc = &timing_default_threshold;
-	unsigned char  *gpmi_regs = r->gpmi_regs;
+	void __iomem *gpmi_regs = r->gpmi_regs;
 	unsigned int   clock_period_in_ns;
 	uint32_t       reg;
 	unsigned int   dll_wait_time_in_us;
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
index 8c0d2f0..c47ec6c 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
@@ -317,7 +317,7 @@ acquire_register_block(struct gpmi_nand_data *this, const char *res_name)
 	struct platform_device *pdev = this->pdev;
 	struct resources *res = &this->resources;
 	struct resource *r;
-	void *p;
+	void __iomem *p;
 
 	r = platform_get_resource_byname(pdev, IORESOURCE_MEM, res_name);
 	if (!r) {
@@ -424,8 +424,8 @@ static int __devinit acquire_dma_channels(struct gpmi_nand_data *this)
 	struct platform_device *pdev = this->pdev;
 	struct resource *r_dma;
 	struct device_node *dn;
-	int dma_channel;
-	unsigned int ret;
+	u32 dma_channel;
+	int ret;
 	struct dma_chan *dma_chan;
 	dma_cap_mask_t mask;
 
@@ -1527,7 +1527,7 @@ static int gpmi_scan_bbt(struct mtd_info *mtd)
 	return nand_default_bbt(mtd);
 }
 
-void gpmi_nfc_exit(struct gpmi_nand_data *this)
+static void gpmi_nfc_exit(struct gpmi_nand_data *this)
 {
 	nand_release(&this->mtd);
 	gpmi_free_dma_buffer(this);
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
index 1547a60..1f61217 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
@@ -24,8 +24,8 @@
 
 #define GPMI_CLK_MAX 5 /* MX6Q needs five clocks */
 struct resources {
-	void          *gpmi_regs;
-	void          *bch_regs;
+	void __iomem  *gpmi_regs;
+	void __iomem  *bch_regs;
 	unsigned int  bch_low_interrupt;
 	unsigned int  bch_high_interrupt;
 	unsigned int  dma_low_channel;
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v4 1/2] ARM: imx6q: add clocks for gpmi-nand
  2012-07-03  1:39 ` [PATCH v4 1/2] ARM: imx6q: add clocks for gpmi-nand Huang Shijie
@ 2012-07-17  5:41   ` Shawn Guo
  2012-07-18 13:12   ` Artem Bityutskiy
  1 sibling, 0 replies; 11+ messages in thread
From: Shawn Guo @ 2012-07-17  5:41 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Jul 02, 2012 at 09:39:31PM -0400, Huang Shijie wrote:
> Add clocks for gpmi-nand.
> 
> Signed-off-by: Huang Shijie <shijie8@gmail.com>

Acked-by: Shawn Guo <shawn.guo@linaro.org>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2] mtd: gpmi: fix the compiler warnings
  2012-07-16 15:12 ` [PATCH v4 0/2] add gpmi support for imx6q Artem Bityutskiy
  2012-07-17  3:07   ` [PATCH] mtd: gpmi: fix the compiler warnings Huang Shijie
@ 2012-07-17  5:57   ` Huang Shijie
  2012-07-17  6:14   ` [PATCH v3] " Huang Shijie
  2 siblings, 0 replies; 11+ messages in thread
From: Huang Shijie @ 2012-07-17  5:57 UTC (permalink / raw)
  To: linux-arm-kernel

fix the compiler warnings.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
v1 --> v2:
         fix the "no modifiers for allocation" warnings by the smatch
---
 drivers/mtd/nand/gpmi-nand/gpmi-lib.c  |    4 ++--
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c |   12 ++++++------
 drivers/mtd/nand/gpmi-nand/gpmi-nand.h |    4 ++--
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
index 6bb0998..2289cf8 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
@@ -26,7 +26,7 @@
 #include "gpmi-regs.h"
 #include "bch-regs.h"
 
-struct timing_threshod timing_default_threshold = {
+static struct timing_threshod timing_default_threshold = {
 	.max_data_setup_cycles       = (BM_GPMI_TIMING0_DATA_SETUP >>
 						BP_GPMI_TIMING0_DATA_SETUP),
 	.internal_data_setup_in_ns   = 0,
@@ -738,7 +738,7 @@ void gpmi_begin(struct gpmi_nand_data *this)
 {
 	struct resources *r = &this->resources;
 	struct timing_threshod *nfc = &timing_default_threshold;
-	unsigned char  *gpmi_regs = r->gpmi_regs;
+	void __iomem *gpmi_regs = r->gpmi_regs;
 	unsigned int   clock_period_in_ns;
 	uint32_t       reg;
 	unsigned int   dll_wait_time_in_us;
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
index 8c0d2f0..7d31321 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
@@ -317,7 +317,7 @@ acquire_register_block(struct gpmi_nand_data *this, const char *res_name)
 	struct platform_device *pdev = this->pdev;
 	struct resources *res = &this->resources;
 	struct resource *r;
-	void *p;
+	void __iomem *p;
 
 	r = platform_get_resource_byname(pdev, IORESOURCE_MEM, res_name);
 	if (!r) {
@@ -424,8 +424,8 @@ static int __devinit acquire_dma_channels(struct gpmi_nand_data *this)
 	struct platform_device *pdev = this->pdev;
 	struct resource *r_dma;
 	struct device_node *dn;
-	int dma_channel;
-	unsigned int ret;
+	u32 dma_channel;
+	int ret;
 	struct dma_chan *dma_chan;
 	dma_cap_mask_t mask;
 
@@ -732,12 +732,12 @@ static int gpmi_alloc_dma_buffer(struct gpmi_nand_data *this)
 	struct device *dev = this->dev;
 
 	/* [1] Allocate a command buffer. PAGE_SIZE is enough. */
-	this->cmd_buffer = kzalloc(PAGE_SIZE, GFP_DMA);
+	this->cmd_buffer = kzalloc(PAGE_SIZE, GFP_DMA | GFP_KERNEL);
 	if (this->cmd_buffer == NULL)
 		goto error_alloc;
 
 	/* [2] Allocate a read/write data buffer. PAGE_SIZE is enough. */
-	this->data_buffer_dma = kzalloc(PAGE_SIZE, GFP_DMA);
+	this->data_buffer_dma = kzalloc(PAGE_SIZE, GFP_DMA | GFP_KERNEL);
 	if (this->data_buffer_dma == NULL)
 		goto error_alloc;
 
@@ -1527,7 +1527,7 @@ static int gpmi_scan_bbt(struct mtd_info *mtd)
 	return nand_default_bbt(mtd);
 }
 
-void gpmi_nfc_exit(struct gpmi_nand_data *this)
+static void gpmi_nfc_exit(struct gpmi_nand_data *this)
 {
 	nand_release(&this->mtd);
 	gpmi_free_dma_buffer(this);
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
index 1547a60..1f61217 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
@@ -24,8 +24,8 @@
 
 #define GPMI_CLK_MAX 5 /* MX6Q needs five clocks */
 struct resources {
-	void          *gpmi_regs;
-	void          *bch_regs;
+	void __iomem  *gpmi_regs;
+	void __iomem  *bch_regs;
 	unsigned int  bch_low_interrupt;
 	unsigned int  bch_high_interrupt;
 	unsigned int  dma_low_channel;
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3] mtd: gpmi: fix the compiler warnings
  2012-07-16 15:12 ` [PATCH v4 0/2] add gpmi support for imx6q Artem Bityutskiy
  2012-07-17  3:07   ` [PATCH] mtd: gpmi: fix the compiler warnings Huang Shijie
  2012-07-17  5:57   ` [PATCH v2] " Huang Shijie
@ 2012-07-17  6:14   ` Huang Shijie
  2012-08-01  2:27     ` Huang Shijie
  2 siblings, 1 reply; 11+ messages in thread
From: Huang Shijie @ 2012-07-17  6:14 UTC (permalink / raw)
  To: linux-arm-kernel

fix the compiler warnings.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
v2 --> v3:
         sorry, I missed the "set but not used" warnings.
	 This patch is based on the patch:
	  "[PATCH v4 2/2] mtd: gpmi: change the code for clocks".
v1 --> v2:
         fix the "no modifiers for allocation" warnings by the smatch
---
 drivers/mtd/nand/gpmi-nand/gpmi-lib.c  |    4 ++--
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c |   20 ++++++++------------
 drivers/mtd/nand/gpmi-nand/gpmi-nand.h |    4 ++--
 3 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
index 6bb0998..2289cf8 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
@@ -26,7 +26,7 @@
 #include "gpmi-regs.h"
 #include "bch-regs.h"
 
-struct timing_threshod timing_default_threshold = {
+static struct timing_threshod timing_default_threshold = {
 	.max_data_setup_cycles       = (BM_GPMI_TIMING0_DATA_SETUP >>
 						BP_GPMI_TIMING0_DATA_SETUP),
 	.internal_data_setup_in_ns   = 0,
@@ -738,7 +738,7 @@ void gpmi_begin(struct gpmi_nand_data *this)
 {
 	struct resources *r = &this->resources;
 	struct timing_threshod *nfc = &timing_default_threshold;
-	unsigned char  *gpmi_regs = r->gpmi_regs;
+	void __iomem *gpmi_regs = r->gpmi_regs;
 	unsigned int   clock_period_in_ns;
 	uint32_t       reg;
 	unsigned int   dll_wait_time_in_us;
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
index 8c0d2f0..c46be6c 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
@@ -317,7 +317,7 @@ acquire_register_block(struct gpmi_nand_data *this, const char *res_name)
 	struct platform_device *pdev = this->pdev;
 	struct resources *res = &this->resources;
 	struct resource *r;
-	void *p;
+	void __iomem *p;
 
 	r = platform_get_resource_byname(pdev, IORESOURCE_MEM, res_name);
 	if (!r) {
@@ -424,8 +424,8 @@ static int __devinit acquire_dma_channels(struct gpmi_nand_data *this)
 	struct platform_device *pdev = this->pdev;
 	struct resource *r_dma;
 	struct device_node *dn;
-	int dma_channel;
-	unsigned int ret;
+	u32 dma_channel;
+	int ret;
 	struct dma_chan *dma_chan;
 	dma_cap_mask_t mask;
 
@@ -732,12 +732,12 @@ static int gpmi_alloc_dma_buffer(struct gpmi_nand_data *this)
 	struct device *dev = this->dev;
 
 	/* [1] Allocate a command buffer. PAGE_SIZE is enough. */
-	this->cmd_buffer = kzalloc(PAGE_SIZE, GFP_DMA);
+	this->cmd_buffer = kzalloc(PAGE_SIZE, GFP_DMA | GFP_KERNEL);
 	if (this->cmd_buffer == NULL)
 		goto error_alloc;
 
 	/* [2] Allocate a read/write data buffer. PAGE_SIZE is enough. */
-	this->data_buffer_dma = kzalloc(PAGE_SIZE, GFP_DMA);
+	this->data_buffer_dma = kzalloc(PAGE_SIZE, GFP_DMA | GFP_KERNEL);
 	if (this->data_buffer_dma == NULL)
 		goto error_alloc;
 
@@ -1260,7 +1260,6 @@ static int mx23_check_transcription_stamp(struct gpmi_nand_data *this)
 	unsigned int search_area_size_in_strides;
 	unsigned int stride;
 	unsigned int page;
-	loff_t byte;
 	uint8_t *buffer = chip->buffers->databuf;
 	int saved_chip_number;
 	int found_an_ncb_fingerprint = false;
@@ -1277,9 +1276,8 @@ static int mx23_check_transcription_stamp(struct gpmi_nand_data *this)
 	dev_dbg(dev, "Scanning for an NCB fingerprint...\n");
 
 	for (stride = 0; stride < search_area_size_in_strides; stride++) {
-		/* Compute the page and byte addresses. */
+		/* Compute the page addresses. */
 		page = stride * rom_geo->stride_size_in_pages;
-		byte = page   * mtd->writesize;
 
 		dev_dbg(dev, "Looking for a fingerprint in page 0x%x\n", page);
 
@@ -1321,7 +1319,6 @@ static int mx23_write_transcription_stamp(struct gpmi_nand_data *this)
 	unsigned int block;
 	unsigned int stride;
 	unsigned int page;
-	loff_t       byte;
 	uint8_t      *buffer = chip->buffers->databuf;
 	int saved_chip_number;
 	int status;
@@ -1370,9 +1367,8 @@ static int mx23_write_transcription_stamp(struct gpmi_nand_data *this)
 	/* Loop through the first search area, writing NCB fingerprints. */
 	dev_dbg(dev, "Writing NCB fingerprints...\n");
 	for (stride = 0; stride < search_area_size_in_strides; stride++) {
-		/* Compute the page and byte addresses. */
+		/* Compute the page addresses. */
 		page = stride * rom_geo->stride_size_in_pages;
-		byte = page   * mtd->writesize;
 
 		/* Write the first page of the current stride. */
 		dev_dbg(dev, "Writing an NCB fingerprint in page 0x%x\n", page);
@@ -1527,7 +1523,7 @@ static int gpmi_scan_bbt(struct mtd_info *mtd)
 	return nand_default_bbt(mtd);
 }
 
-void gpmi_nfc_exit(struct gpmi_nand_data *this)
+static void gpmi_nfc_exit(struct gpmi_nand_data *this)
 {
 	nand_release(&this->mtd);
 	gpmi_free_dma_buffer(this);
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
index 1547a60..1f61217 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
@@ -24,8 +24,8 @@
 
 #define GPMI_CLK_MAX 5 /* MX6Q needs five clocks */
 struct resources {
-	void          *gpmi_regs;
-	void          *bch_regs;
+	void __iomem  *gpmi_regs;
+	void __iomem  *bch_regs;
 	unsigned int  bch_low_interrupt;
 	unsigned int  bch_high_interrupt;
 	unsigned int  dma_low_channel;
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v4 1/2] ARM: imx6q: add clocks for gpmi-nand
  2012-07-03  1:39 ` [PATCH v4 1/2] ARM: imx6q: add clocks for gpmi-nand Huang Shijie
  2012-07-17  5:41   ` Shawn Guo
@ 2012-07-18 13:12   ` Artem Bityutskiy
  1 sibling, 0 replies; 11+ messages in thread
From: Artem Bityutskiy @ 2012-07-18 13:12 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 2012-07-02 at 21:39 -0400, Huang Shijie wrote:
> Add clocks for gpmi-nand.
> 
> Signed-off-by: Huang Shijie <shijie8@gmail.com>

Pushed both to l2-mtd.git, thanks!

-- 
Best Regards,
Artem Bityutskiy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120718/fd8884b2/attachment.sig>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v3] mtd: gpmi: fix the compiler warnings
  2012-07-17  6:14   ` [PATCH v3] " Huang Shijie
@ 2012-08-01  2:27     ` Huang Shijie
  2012-08-24  8:09       ` Artem Bityutskiy
  0 siblings, 1 reply; 11+ messages in thread
From: Huang Shijie @ 2012-08-01  2:27 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Artem;
Just a ping.

Please do not miss this patch.

thanks
Huang Shijie

On Tue, Jul 17, 2012 at 2:14 PM, Huang Shijie <b32955@freescale.com> wrote:
> fix the compiler warnings.
>
> Signed-off-by: Huang Shijie <b32955@freescale.com>
> ---
> v2 --> v3:
>          sorry, I missed the "set but not used" warnings.
>          This patch is based on the patch:
>           "[PATCH v4 2/2] mtd: gpmi: change the code for clocks".
> v1 --> v2:
>          fix the "no modifiers for allocation" warnings by the smatch
> ---
>  drivers/mtd/nand/gpmi-nand/gpmi-lib.c  |    4 ++--
>  drivers/mtd/nand/gpmi-nand/gpmi-nand.c |   20 ++++++++------------
>  drivers/mtd/nand/gpmi-nand/gpmi-nand.h |    4 ++--
>  3 files changed, 12 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
> index 6bb0998..2289cf8 100644
> --- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
> +++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
> @@ -26,7 +26,7 @@
>  #include "gpmi-regs.h"
>  #include "bch-regs.h"
>
> -struct timing_threshod timing_default_threshold = {
> +static struct timing_threshod timing_default_threshold = {
>         .max_data_setup_cycles       = (BM_GPMI_TIMING0_DATA_SETUP >>
>                                                 BP_GPMI_TIMING0_DATA_SETUP),
>         .internal_data_setup_in_ns   = 0,
> @@ -738,7 +738,7 @@ void gpmi_begin(struct gpmi_nand_data *this)
>  {
>         struct resources *r = &this->resources;
>         struct timing_threshod *nfc = &timing_default_threshold;
> -       unsigned char  *gpmi_regs = r->gpmi_regs;
> +       void __iomem *gpmi_regs = r->gpmi_regs;
>         unsigned int   clock_period_in_ns;
>         uint32_t       reg;
>         unsigned int   dll_wait_time_in_us;
> diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> index 8c0d2f0..c46be6c 100644
> --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> @@ -317,7 +317,7 @@ acquire_register_block(struct gpmi_nand_data *this, const char *res_name)
>         struct platform_device *pdev = this->pdev;
>         struct resources *res = &this->resources;
>         struct resource *r;
> -       void *p;
> +       void __iomem *p;
>
>         r = platform_get_resource_byname(pdev, IORESOURCE_MEM, res_name);
>         if (!r) {
> @@ -424,8 +424,8 @@ static int __devinit acquire_dma_channels(struct gpmi_nand_data *this)
>         struct platform_device *pdev = this->pdev;
>         struct resource *r_dma;
>         struct device_node *dn;
> -       int dma_channel;
> -       unsigned int ret;
> +       u32 dma_channel;
> +       int ret;
>         struct dma_chan *dma_chan;
>         dma_cap_mask_t mask;
>
> @@ -732,12 +732,12 @@ static int gpmi_alloc_dma_buffer(struct gpmi_nand_data *this)
>         struct device *dev = this->dev;
>
>         /* [1] Allocate a command buffer. PAGE_SIZE is enough. */
> -       this->cmd_buffer = kzalloc(PAGE_SIZE, GFP_DMA);
> +       this->cmd_buffer = kzalloc(PAGE_SIZE, GFP_DMA | GFP_KERNEL);
>         if (this->cmd_buffer == NULL)
>                 goto error_alloc;
>
>         /* [2] Allocate a read/write data buffer. PAGE_SIZE is enough. */
> -       this->data_buffer_dma = kzalloc(PAGE_SIZE, GFP_DMA);
> +       this->data_buffer_dma = kzalloc(PAGE_SIZE, GFP_DMA | GFP_KERNEL);
>         if (this->data_buffer_dma == NULL)
>                 goto error_alloc;
>
> @@ -1260,7 +1260,6 @@ static int mx23_check_transcription_stamp(struct gpmi_nand_data *this)
>         unsigned int search_area_size_in_strides;
>         unsigned int stride;
>         unsigned int page;
> -       loff_t byte;
>         uint8_t *buffer = chip->buffers->databuf;
>         int saved_chip_number;
>         int found_an_ncb_fingerprint = false;
> @@ -1277,9 +1276,8 @@ static int mx23_check_transcription_stamp(struct gpmi_nand_data *this)
>         dev_dbg(dev, "Scanning for an NCB fingerprint...\n");
>
>         for (stride = 0; stride < search_area_size_in_strides; stride++) {
> -               /* Compute the page and byte addresses. */
> +               /* Compute the page addresses. */
>                 page = stride * rom_geo->stride_size_in_pages;
> -               byte = page   * mtd->writesize;
>
>                 dev_dbg(dev, "Looking for a fingerprint in page 0x%x\n", page);
>
> @@ -1321,7 +1319,6 @@ static int mx23_write_transcription_stamp(struct gpmi_nand_data *this)
>         unsigned int block;
>         unsigned int stride;
>         unsigned int page;
> -       loff_t       byte;
>         uint8_t      *buffer = chip->buffers->databuf;
>         int saved_chip_number;
>         int status;
> @@ -1370,9 +1367,8 @@ static int mx23_write_transcription_stamp(struct gpmi_nand_data *this)
>         /* Loop through the first search area, writing NCB fingerprints. */
>         dev_dbg(dev, "Writing NCB fingerprints...\n");
>         for (stride = 0; stride < search_area_size_in_strides; stride++) {
> -               /* Compute the page and byte addresses. */
> +               /* Compute the page addresses. */
>                 page = stride * rom_geo->stride_size_in_pages;
> -               byte = page   * mtd->writesize;
>
>                 /* Write the first page of the current stride. */
>                 dev_dbg(dev, "Writing an NCB fingerprint in page 0x%x\n", page);
> @@ -1527,7 +1523,7 @@ static int gpmi_scan_bbt(struct mtd_info *mtd)
>         return nand_default_bbt(mtd);
>  }
>
> -void gpmi_nfc_exit(struct gpmi_nand_data *this)
> +static void gpmi_nfc_exit(struct gpmi_nand_data *this)
>  {
>         nand_release(&this->mtd);
>         gpmi_free_dma_buffer(this);
> diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
> index 1547a60..1f61217 100644
> --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
> +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h
> @@ -24,8 +24,8 @@
>
>  #define GPMI_CLK_MAX 5 /* MX6Q needs five clocks */
>  struct resources {
> -       void          *gpmi_regs;
> -       void          *bch_regs;
> +       void __iomem  *gpmi_regs;
> +       void __iomem  *bch_regs;
>         unsigned int  bch_low_interrupt;
>         unsigned int  bch_high_interrupt;
>         unsigned int  dma_low_channel;
> --
> 1.7.0.4
>
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v3] mtd: gpmi: fix the compiler warnings
  2012-08-01  2:27     ` Huang Shijie
@ 2012-08-24  8:09       ` Artem Bityutskiy
  0 siblings, 0 replies; 11+ messages in thread
From: Artem Bityutskiy @ 2012-08-24  8:09 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 2012-08-01 at 10:27 +0800, Huang Shijie wrote:
> Hi Artem;
> Just a ping.
> 
> Please do not miss this patch.

I actually missed it, pushed now to l2-mtd.git, thanks!

-- 
Best Regards,
Artem Bityutskiy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120824/f45f7cb7/attachment.sig>

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2012-08-24  8:09 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-03  1:39 [PATCH v4 0/2] add gpmi support for imx6q Huang Shijie
2012-07-03  1:39 ` [PATCH v4 1/2] ARM: imx6q: add clocks for gpmi-nand Huang Shijie
2012-07-17  5:41   ` Shawn Guo
2012-07-18 13:12   ` Artem Bityutskiy
2012-07-03  1:39 ` [PATCH v4 2/2] mtd: gpmi: change the code for clocks Huang Shijie
2012-07-16 15:12 ` [PATCH v4 0/2] add gpmi support for imx6q Artem Bityutskiy
2012-07-17  3:07   ` [PATCH] mtd: gpmi: fix the compiler warnings Huang Shijie
2012-07-17  5:57   ` [PATCH v2] " Huang Shijie
2012-07-17  6:14   ` [PATCH v3] " Huang Shijie
2012-08-01  2:27     ` Huang Shijie
2012-08-24  8:09       ` Artem Bityutskiy

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).