diff mbox

[v2] mtd: davinci-nand: disable subpage write for keystone-nand

Message ID 1395346112-13350-1-git-send-email-ivan.khoronzhuk@ti.com
State Accepted
Commit 28c015a9daabe4ed3aeb0ccf669a3f1c2b8b81d5
Headers show

Commit Message

Ivan Khoronzhuk March 20, 2014, 8:08 p.m. UTC
From: Murali Karicheri <m-karicheri2@ti.com>

Sub page write doesn't work because of hw issue in controller found on
Keystone SOCs. AEMIF controller is also used on DaVinci SOCs which
don't seems to have any issue. So add "ti,keysone-nand" compatible
to nand driver in order to set NAND_NO_SUBPAGE_WRITE option.

Cc: Brian Norris <computersforpeace@gmail.com>
Cc: Warner Losh <imp@bsdimp.com>
Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>

Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
---

This patch is a result of discussion on patch v1:
https://lkml.org/lkml/2014/3/20/461

 drivers/mtd/nand/davinci_nand.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Santosh Shilimkar March 20, 2014, 8:14 p.m. UTC | #1
On Thursday 20 March 2014 04:08 PM, Ivan Khoronzhuk wrote:
> From: Murali Karicheri <m-karicheri2@ti.com>
> 
> Sub page write doesn't work because of hw issue in controller found on
> Keystone SOCs. AEMIF controller is also used on DaVinci SOCs which
> don't seems to have any issue. So add "ti,keysone-nand" compatible
> to nand driver in order to set NAND_NO_SUBPAGE_WRITE option.
> 
> Cc: Brian Norris <computersforpeace@gmail.com>
> Cc: Warner Losh <imp@bsdimp.com>
> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
> 
> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
> ---
> 
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>

> This patch is a result of discussion on patch v1:
> https://lkml.org/lkml/2014/3/20/461
> 
>  drivers/mtd/nand/davinci_nand.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/mtd/nand/davinci_nand.c b/drivers/mtd/nand/davinci_nand.c
> index 4615d79..b922c8e 100644
> --- a/drivers/mtd/nand/davinci_nand.c
> +++ b/drivers/mtd/nand/davinci_nand.c
> @@ -523,6 +523,7 @@ static struct nand_ecclayout hwecc4_2048 = {
>  #if defined(CONFIG_OF)
>  static const struct of_device_id davinci_nand_of_match[] = {
>  	{.compatible = "ti,davinci-nand", },
> +	{.compatible = "ti,keystone-nand", },
>  	{},
>  };
>  MODULE_DEVICE_TABLE(of, davinci_nand_of_match);
> @@ -581,6 +582,11 @@ static struct davinci_nand_pdata
>  		    of_property_read_bool(pdev->dev.of_node,
>  			"ti,davinci-nand-use-bbt"))
>  			pdata->bbt_options = NAND_BBT_USE_FLASH;
> +
> +		if (of_device_is_compatible(pdev->dev.of_node,
> +					    "ti,keystone-nand")) {
> +			pdata->options |= NAND_NO_SUBPAGE_WRITE;
> +		}
>  	}
>  
>  	return dev_get_platdata(&pdev->dev);
> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ivan Khoronzhuk April 8, 2014, 12:51 p.m. UTC | #2
On 03/20/2014 10:14 PM, Santosh Shilimkar wrote:
> On Thursday 20 March 2014 04:08 PM, Ivan Khoronzhuk wrote:
>> From: Murali Karicheri <m-karicheri2@ti.com>
>>
>> Sub page write doesn't work because of hw issue in controller found on
>> Keystone SOCs. AEMIF controller is also used on DaVinci SOCs which
>> don't seems to have any issue. So add "ti,keysone-nand" compatible
>> to nand driver in order to set NAND_NO_SUBPAGE_WRITE option.
>>
>> Cc: Brian Norris <computersforpeace@gmail.com>
>> Cc: Warner Losh <imp@bsdimp.com>
>> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
>>
>> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
>> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
>> ---
>>
> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>
>> This patch is a result of discussion on patch v1:
>> https://lkml.org/lkml/2014/3/20/461
>>
>>   drivers/mtd/nand/davinci_nand.c | 6 ++++++
>>   1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/mtd/nand/davinci_nand.c b/drivers/mtd/nand/davinci_nand.c
>> index 4615d79..b922c8e 100644
>> --- a/drivers/mtd/nand/davinci_nand.c
>> +++ b/drivers/mtd/nand/davinci_nand.c
>> @@ -523,6 +523,7 @@ static struct nand_ecclayout hwecc4_2048 = {
>>   #if defined(CONFIG_OF)
>>   static const struct of_device_id davinci_nand_of_match[] = {
>>   	{.compatible = "ti,davinci-nand", },
>> +	{.compatible = "ti,keystone-nand", },
>>   	{},
>>   };
>>   MODULE_DEVICE_TABLE(of, davinci_nand_of_match);
>> @@ -581,6 +582,11 @@ static struct davinci_nand_pdata
>>   		    of_property_read_bool(pdev->dev.of_node,
>>   			"ti,davinci-nand-use-bbt"))
>>   			pdata->bbt_options = NAND_BBT_USE_FLASH;
>> +
>> +		if (of_device_is_compatible(pdev->dev.of_node,
>> +					    "ti,keystone-nand")) {
>> +			pdata->options |= NAND_NO_SUBPAGE_WRITE;
>> +		}
>>   	}
>>   
>>   	return dev_get_platdata(&pdev->dev);
>>
>>

Brian,
Could you pick up subj patch?
Brian Norris April 16, 2014, 7:08 a.m. UTC | #3
On Tue, Apr 08, 2014 at 03:51:34PM +0300, Ivan Khoronzhuk wrote:
> On 03/20/2014 10:14 PM, Santosh Shilimkar wrote:
> >On Thursday 20 March 2014 04:08 PM, Ivan Khoronzhuk wrote:
> >>From: Murali Karicheri <m-karicheri2@ti.com>
> >>Sub page write doesn't work because of hw issue in controller found on
> >>Keystone SOCs. AEMIF controller is also used on DaVinci SOCs which
> >>don't seems to have any issue. So add "ti,keysone-nand" compatible
> >>to nand driver in order to set NAND_NO_SUBPAGE_WRITE option.
> >>
> >>Cc: Brian Norris <computersforpeace@gmail.com>
> >>Cc: Warner Losh <imp@bsdimp.com>
> >>Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
> >>
> >>Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
> >>Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
> >>---
> >>
> >Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> 
> Brian,
> Could you pick up subj patch?

Pushed to l2-mtd.git. Is it critical this goes in for 3.15? It's
currently queued for -next (3.16).

Brian
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ivan Khoronzhuk April 16, 2014, 9:47 a.m. UTC | #4
On 04/16/2014 10:08 AM, Brian Norris wrote:
> On Tue, Apr 08, 2014 at 03:51:34PM +0300, Ivan Khoronzhuk wrote:
>> On 03/20/2014 10:14 PM, Santosh Shilimkar wrote:
>>> On Thursday 20 March 2014 04:08 PM, Ivan Khoronzhuk wrote:
>>>> From: Murali Karicheri <m-karicheri2@ti.com>
>>>> Sub page write doesn't work because of hw issue in controller found on
>>>> Keystone SOCs. AEMIF controller is also used on DaVinci SOCs which
>>>> don't seems to have any issue. So add "ti,keysone-nand" compatible
>>>> to nand driver in order to set NAND_NO_SUBPAGE_WRITE option.
>>>>
>>>> Cc: Brian Norris <computersforpeace@gmail.com>
>>>> Cc: Warner Losh <imp@bsdimp.com>
>>>> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
>>>>
>>>> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
>>>> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
>>>> ---
>>>>
>>> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>> Brian,
>> Could you pick up subj patch?
> Pushed to l2-mtd.git. Is it critical this goes in for 3.15? It's
> currently queued for -next (3.16).
>
> Brian

This is a critical fix and it should be for 3.15.
Thanks.
Santosh Shilimkar April 16, 2014, 2:03 p.m. UTC | #5
On Wednesday 16 April 2014 05:47 AM, Ivan Khoronzhuk wrote:
> 
> On 04/16/2014 10:08 AM, Brian Norris wrote:
>> On Tue, Apr 08, 2014 at 03:51:34PM +0300, Ivan Khoronzhuk wrote:
>>> On 03/20/2014 10:14 PM, Santosh Shilimkar wrote:
>>>> On Thursday 20 March 2014 04:08 PM, Ivan Khoronzhuk wrote:
>>>>> From: Murali Karicheri <m-karicheri2@ti.com>
>>>>> Sub page write doesn't work because of hw issue in controller found on
>>>>> Keystone SOCs. AEMIF controller is also used on DaVinci SOCs which
>>>>> don't seems to have any issue. So add "ti,keysone-nand" compatible
>>>>> to nand driver in order to set NAND_NO_SUBPAGE_WRITE option.
>>>>>
>>>>> Cc: Brian Norris <computersforpeace@gmail.com>
>>>>> Cc: Warner Losh <imp@bsdimp.com>
>>>>> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
>>>>>
>>>>> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
>>>>> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
>>>>> ---
>>>>>
>>>> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>>> Brian,
>>> Could you pick up subj patch?
>> Pushed to l2-mtd.git. Is it critical this goes in for 3.15? It's
>> currently queued for -next (3.16).
>>
>> Brian
> 
> This is a critical fix and it should be for 3.15.
Yep. The NAND is broken on Keystone without this patch.
So 3.15 fixes please

Regards,
Santosh

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Santosh Shilimkar April 28, 2014, 1:43 p.m. UTC | #6
Brian,

On Wednesday 16 April 2014 05:47 AM, Ivan Khoronzhuk wrote:
> 
> On 04/16/2014 10:08 AM, Brian Norris wrote:
>> On Tue, Apr 08, 2014 at 03:51:34PM +0300, Ivan Khoronzhuk wrote:
>>> On 03/20/2014 10:14 PM, Santosh Shilimkar wrote:
>>>> On Thursday 20 March 2014 04:08 PM, Ivan Khoronzhuk wrote:
>>>>> From: Murali Karicheri <m-karicheri2@ti.com>
>>>>> Sub page write doesn't work because of hw issue in controller found on
>>>>> Keystone SOCs. AEMIF controller is also used on DaVinci SOCs which
>>>>> don't seems to have any issue. So add "ti,keysone-nand" compatible
>>>>> to nand driver in order to set NAND_NO_SUBPAGE_WRITE option.
>>>>>
>>>>> Cc: Brian Norris <computersforpeace@gmail.com>
>>>>> Cc: Warner Losh <imp@bsdimp.com>
>>>>> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
>>>>>
>>>>> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
>>>>> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
>>>>> ---
>>>>>
>>>> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>>> Brian,
>>> Could you pick up subj patch?
>> Pushed to l2-mtd.git. Is it critical this goes in for 3.15? It's
>> currently queued for -next (3.16).
>>

[..]

> 
> This is a critical fix and it should be for 3.15.
Ping. 3.15-rc3 is already out and I still see this fix merged
yet.

Regards,
Santosh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Brian Norris April 30, 2014, 10:33 p.m. UTC | #7
On Mon, Apr 28, 2014 at 09:43:17AM -0400, Santosh Shilimkar wrote:
> On Wednesday 16 April 2014 05:47 AM, Ivan Khoronzhuk wrote:
> > On 04/16/2014 10:08 AM, Brian Norris wrote:
> >> On Tue, Apr 08, 2014 at 03:51:34PM +0300, Ivan Khoronzhuk wrote:
> >>> Could you pick up subj patch?
> >> Pushed to l2-mtd.git. Is it critical this goes in for 3.15? It's
> >> currently queued for -next (3.16).
> >>
> 
> [..]
> 
> > 
> > This is a critical fix and it should be for 3.15.
> Ping. 3.15-rc3 is already out and I still see this fix merged
> yet.

OK, cherry-picked to linux-mtd.git with the intention of sending to
Linus soon.

Regards,
Brian
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/mtd/nand/davinci_nand.c b/drivers/mtd/nand/davinci_nand.c
index 4615d79..b922c8e 100644
--- a/drivers/mtd/nand/davinci_nand.c
+++ b/drivers/mtd/nand/davinci_nand.c
@@ -523,6 +523,7 @@  static struct nand_ecclayout hwecc4_2048 = {
 #if defined(CONFIG_OF)
 static const struct of_device_id davinci_nand_of_match[] = {
 	{.compatible = "ti,davinci-nand", },
+	{.compatible = "ti,keystone-nand", },
 	{},
 };
 MODULE_DEVICE_TABLE(of, davinci_nand_of_match);
@@ -581,6 +582,11 @@  static struct davinci_nand_pdata
 		    of_property_read_bool(pdev->dev.of_node,
 			"ti,davinci-nand-use-bbt"))
 			pdata->bbt_options = NAND_BBT_USE_FLASH;
+
+		if (of_device_is_compatible(pdev->dev.of_node,
+					    "ti,keystone-nand")) {
+			pdata->options |= NAND_NO_SUBPAGE_WRITE;
+		}
 	}
 
 	return dev_get_platdata(&pdev->dev);