Add code for the unlocking (erasing/writing) of Winbond W39V040FB chips, enabling erasing/writing this type of chip.

Signed-off-by: Idwer Vollering <vidwer@gmail.com>

Index: w39.c
===================================================================
--- w39.c       (revision 1246)
+++ w39.c       (working copy)
@@ -244,6 +244,16 @@
        return -1;
 }

+int unlock_w39v040fb(struct flashchip *flash)
+{
+       if (unlock_w39_fwh(flash))
+               return -1;
+       if (printlock_w39_common(flash, 0x7fff2))
+               return -1;
+
+       return 0;
+}
+
 int unlock_w39v080fa(struct flashchip *flash)
 {
        if (unlock_w39_fwh(flash))
Index: flashchips.c
===================================================================
--- flashchips.c        (revision 1246)
+++ flashchips.c        (working copy)
@@ -7694,7 +7694,7 @@
                .feature_bits   = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
                .tested         = TEST_OK_PRE,
                .probe          = probe_jedec,
-               .probe_timing   = 10,
+               .probe_timing   = 10,
                .block_erasers  =
                {
                        {
@@ -7706,6 +7706,7 @@
                        }
                },
                .printlock      = printlock_w39v040fb,
+               .unlock         = unlock_w39v040fb,
                .write          = write_jedec_1,
                .read           = read_memmapped,
        },
Index: chipdrivers.h
===================================================================
--- chipdrivers.h       (revision 1246)
+++ chipdrivers.h       (working copy)
@@ -119,6 +119,7 @@
 int printlock_w39v080a(struct flashchip *flash);
 int printlock_w39v080fa(struct flashchip *flash);
 int printlock_w39v080fa_dual(struct flashchip *flash);
+int unlock_w39v040fb(struct flashchip *flash);
 int unlock_w39v080fa(struct flashchip *flash);

 /* w29ee011.c */