From: Bin Meng Date: Fri, 24 Apr 2015 11:51:10 +0000 (+0800) Subject: dm: sf: Make SST flash write op work again X-Git-Tag: v2015.07-rc1~64^2~1 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=074eed5146acc39a77f15ecdc8404b3ba74aa3ae;p=oweals%2Fu-boot.git dm: sf: Make SST flash write op work again With SPI flash moving to driver model, commit fbb0991 "dm: Convert spi_flash_probe() and 'sf probe' to use driver model" ignored the SST flash-specific write op (byte program & word program), which actually broke the SST flash from wroking. This commit makes SST flash work again under driver model, by adding SST flash-specific handling in the spi_flash_std_write(). Signed-off-by: Bin Meng Reviewed-by: Jagannadha Sutradharudu Teki --- diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c index d8ab6a1ecc..d8b9fcaeae 100644 --- a/drivers/mtd/spi/sf_probe.c +++ b/drivers/mtd/spi/sf_probe.c @@ -446,6 +446,15 @@ int spi_flash_std_write(struct udevice *dev, u32 offset, size_t len, { struct spi_flash *flash = dev_get_uclass_priv(dev); +#if defined(CONFIG_SPI_FLASH_SST) + if (flash->flags & SST_WR) { + if (flash->spi->op_mode_tx & SPI_OPM_TX_BP) + return sst_write_bp(flash, offset, len, buf); + else + return sst_write_wp(flash, offset, len, buf); + } +#endif + return spi_flash_cmd_write_ops(flash, offset, len, buf); }