Patchwork [2/2] mtd: gpmi: only scan two chips for imx6

login
register
mail settings
Submitter Huang Shijie
Date Nov. 7, 2013, 9:46 a.m.
Message ID <1383817597-31992-2-git-send-email-b32955@freescale.com>
Download mbox | patch
Permalink /patch/289251/
State New
Headers show

Comments

Huang Shijie - Nov. 7, 2013, 9:46 a.m.
We cannot scan two chips for imx23 and imx28:
  imx23: the Ready-Busy1 line is not connected for some board.
  imx28: we do not set the pinctrl for Ready-Busy1

So we only scan two chips for imx6.

Signed-off-by: Huang Shijie <b32955@freescale.com>
---
 drivers/mtd/nand/gpmi-nand/gpmi-nand.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Fabio Estevam - Nov. 7, 2013, 1:08 p.m.
On Thu, Nov 7, 2013 at 7:46 AM, Huang Shijie <b32955@freescale.com> wrote:
> We cannot scan two chips for imx23 and imx28:
>   imx23: the Ready-Busy1 line is not connected for some board.
>   imx28: we do not set the pinctrl for Ready-Busy1
>
> So we only scan two chips for imx6.
>
> Signed-off-by: Huang Shijie <b32955@freescale.com>

You missed to Cc stable on this one.

If only 1/2 gets into stable we still see the crash.

Regards,

Fabio Estevam
Fabio Estevam - Nov. 7, 2013, 1:22 p.m.
On Thu, Nov 7, 2013 at 7:46 AM, Huang Shijie <b32955@freescale.com> wrote:
> We cannot scan two chips for imx23 and imx28:
>   imx23: the Ready-Busy1 line is not connected for some board.
>   imx28: we do not set the pinctrl for Ready-Busy1
>
> So we only scan two chips for imx6.

What happens if Ready-Busy1 line is not connected on some mx6 board?
You cannot assume that all boards
have this line connected and configured in pinctrl just like you
mentioned for mx23 and mx28.

Regards,

Fabio Estevam
Huang Shijie - Nov. 8, 2013, 3:11 a.m.
于 2013年11月07日 21:08, Fabio Estevam 写道:
> You missed to Cc stable on this one.
>
this patch has not been merged by linus's tree.
so it is not need to CC stable.

thanks
Huang Shijie
Huang Shijie - Nov. 8, 2013, 3:14 a.m.
于 2013年11月08日 11:11, Huang Shijie 写道:
> this patch has not been merged by linus's tree. 
I meant the patch:
"cdef39d mtd: gpmi: scan two nand chips"

Huang Shijie
Huang Shijie - Nov. 8, 2013, 3:26 a.m.
于 2013年11月07日 21:22, Fabio Estevam 写道:
> On Thu, Nov 7, 2013 at 7:46 AM, Huang Shijie<b32955@freescale.com>  wrote:
>> We cannot scan two chips for imx23 and imx28:
>>    imx23: the Ready-Busy1 line is not connected for some board.
>>    imx28: we do not set the pinctrl for Ready-Busy1
>>
>> So we only scan two chips for imx6.
> What happens if Ready-Busy1 line is not connected on some mx6 board?
> You cannot assume that all boards
we will meet a DMA timeout.

All the imx6's boards supporting the gpmi have the RB1 now.
the customer's boards will follow our boards, so their boards also 
should have the RB1 line too.

> have this line connected and configured in pinctrl just like you
> mentioned for mx23 and mx28.
Please check the schematics for imx23/imx28/imx6x.
For imx6, the line is OR-combined with the RB0.
For imx23-evk,imx28-evk, the RB1 line is a seperate line, not OR with 
the RB0.
     and the pinctrls does not have RB1.

thanks
Huang Shijie
Brian Norris - Nov. 8, 2013, 6:44 p.m.
On Thu, Nov 07, 2013 at 05:46:37PM +0800, Huang Shijie wrote:
> We cannot scan two chips for imx23 and imx28:
>   imx23: the Ready-Busy1 line is not connected for some board.
>   imx28: we do not set the pinctrl for Ready-Busy1
> 
> So we only scan two chips for imx6.
> 
> Signed-off-by: Huang Shijie <b32955@freescale.com>

Pushed to l2-mtd.git. Thanks!

This is a major bugfix (only for the queued-up code for 3.13), right? Do
we want to include a stronger bug description from Fabio?

Brian

Patch

diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
index d34cc54..00ea9c4 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
@@ -1675,7 +1675,7 @@  static int gpmi_nfc_init(struct gpmi_nand_data *this)
 	if (ret)
 		goto err_out;
 
-	ret = nand_scan_ident(mtd, 2, NULL);
+	ret = nand_scan_ident(mtd, GPMI_IS_MX6Q(this) ? 2 : 1, NULL);
 	if (ret)
 		goto err_out;