mtd: cfi_cmdset_0002: PPB locking support for larger capacity devices

Message ID 20170405115743.27441-1-mathias.thore@infinera.com
State Changes Requested
Headers show

Commit Message

Mathias Thore April 5, 2017, 11:57 a.m.
Currently cfi_cmdset_0002.c supports advanced sector protection scheme
for devices with 512 or fewer sectors. This patch increases the limit
to enable advanced sector protection on devices with larger capacity.

Signed-off-by: Mathias Thore <mathias.thore@infinera.com>
---
 drivers/mtd/chips/cfi_cmdset_0002.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Boris Brezillon Aug. 10, 2017, 9:31 a.m. | #1
Hi Matthias,

Le Wed,  5 Apr 2017 13:57:43 +0200,
Mathias Thore <mathias.thore@infinera.com> a écrit :

> Currently cfi_cmdset_0002.c supports advanced sector protection scheme
> for devices with 512 or fewer sectors. This patch increases the limit
> to enable advanced sector protection on devices with larger capacity.

Can't we fix the implementation to determine at runtime how many
sectors the flash has instead of changing MAX_SECTORS value every time
a new flash comes in?
This would also have the benefit of keeping the ppb_lock array
(allocated in cfi_ppb_unlock()) small on setup that have a flash with a
limited number of sectors.

Regards,

Boris

> 
> Signed-off-by: Mathias Thore <mathias.thore@infinera.com>
> ---
>  drivers/mtd/chips/cfi_cmdset_0002.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
> index 9dca881..4966f12 100644
> --- a/drivers/mtd/chips/cfi_cmdset_0002.c
> +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
> @@ -2532,7 +2532,7 @@ struct ppb_lock {
>  	int locked;
>  };
>  
> -#define MAX_SECTORS			512
> +#define MAX_SECTORS			1024
>  
>  #define DO_XXLOCK_ONEBLOCK_LOCK		((void *)1)
>  #define DO_XXLOCK_ONEBLOCK_UNLOCK	((void *)2)

Patch

diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index 9dca881..4966f12 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -2532,7 +2532,7 @@  struct ppb_lock {
 	int locked;
 };
 
-#define MAX_SECTORS			512
+#define MAX_SECTORS			1024
 
 #define DO_XXLOCK_ONEBLOCK_LOCK		((void *)1)
 #define DO_XXLOCK_ONEBLOCK_UNLOCK	((void *)2)