diff options
| -rw-r--r-- | drivers/mtd/spi/atmel.c | 11 | 
1 files changed, 8 insertions, 3 deletions
| diff --git a/drivers/mtd/spi/atmel.c b/drivers/mtd/spi/atmel.c index 89ebe9dcd..006f6d5d0 100644 --- a/drivers/mtd/spi/atmel.c +++ b/drivers/mtd/spi/atmel.c @@ -518,13 +518,19 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode)  			asf->flash.erase = dataflash_erase_p2;  		} +		asf->flash.page_size = page_size; +		asf->flash.sector_size = page_size;  		break;  	case DF_FAMILY_AT26F:  	case DF_FAMILY_AT26DF:  		asf->flash.read = spi_flash_cmd_read_fast; -		asf->flash.write = dataflash_write_p2; -		asf->flash.erase = dataflash_erase_p2; +		asf->flash.write = spi_flash_cmd_write_multi; +		asf->flash.erase = spi_flash_cmd_erase; +		asf->flash.page_size = page_size; +		asf->flash.sector_size = 4096; +		/* clear SPRL# bit for locked flash */ +		spi_flash_cmd_write_status(&asf->flash, 0);  		break;  	default: @@ -532,7 +538,6 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode)  		goto err;  	} -	asf->flash.sector_size = page_size;  	asf->flash.size = page_size * params->pages_per_block  				* params->blocks_per_sector  				* params->nr_sectors; |