diff options
author | Cyril Bur <cyril.bur@au1.ibm.com> | 2015-08-26 16:02:34 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2015-08-28 15:24:04 +1000 |
commit | 55c30aa53919fda1bd903630c4c92bca95cbd42d (patch) | |
tree | 865d63360c7103c7d9213dabc44bbc0f32d275d8 /libflash | |
parent | aa0f5f4cb904faeff3ae53e35d16e5e12191de4e (diff) | |
download | skiboot-55c30aa53919fda1bd903630c4c92bca95cbd42d.zip skiboot-55c30aa53919fda1bd903630c4c92bca95cbd42d.tar.gz skiboot-55c30aa53919fda1bd903630c4c92bca95cbd42d.tar.bz2 |
libflash: Reintroduce typesafety in lowlevel libflash calls
Previous work did away with some typesafety when adding the
blocklevel_device abstraction, this has resulted in the ability to
accidently call libflash low level code with a blocklevel_device which has
not been initialised by the libflash backend.
The end result will not be good. Best to reintroduce that low level calls
be called with libflashes own structures.
Signed-off-by: Cyril Bur <cyril.bur@au1.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'libflash')
-rw-r--r-- | libflash/libflash.c | 6 | ||||
-rw-r--r-- | libflash/libflash.h | 4 |
2 files changed, 4 insertions, 6 deletions
diff --git a/libflash/libflash.c b/libflash/libflash.c index 4b9948b..c43f212 100644 --- a/libflash/libflash.c +++ b/libflash/libflash.c @@ -267,9 +267,8 @@ static int flash_erase(struct blocklevel_device *bl, uint32_t dst, uint32_t size return 0; } -int flash_erase_chip(struct blocklevel_device *bl) +int flash_erase_chip(struct flash_chip *c) { - struct flash_chip *c = container_of(bl, struct flash_chip, bl); struct spi_flash_ctrl *ct = c->ctrl; int rc; @@ -692,9 +691,8 @@ static int flash_set_4b(struct flash_chip *c, bool enable) return ct->cmd_wr(ct, enable ? CMD_EN4B : CMD_EX4B, false, 0, NULL, 0); } -int flash_force_4b_mode(struct blocklevel_device *bl, bool enable_4b) +int flash_force_4b_mode(struct flash_chip *c, bool enable_4b) { - struct flash_chip *c = container_of(bl, struct flash_chip, bl); struct spi_flash_ctrl *ct = c->ctrl; int rc; diff --git a/libflash/libflash.h b/libflash/libflash.h index 3fdd00b..4fecfe7 100644 --- a/libflash/libflash.h +++ b/libflash/libflash.h @@ -57,7 +57,7 @@ void flash_exit_close(struct blocklevel_device *bl, void (*close)(struct spi_fla /* libflash sets the 4b mode automatically based on the flash * size and controller capabilities but it can be overriden */ -int flash_force_4b_mode(struct blocklevel_device *bl, bool enable_4b); +int flash_force_4b_mode(struct flash_chip *c, bool enable_4b); /* * This provides a wapper around flash_read() on ECCed data. All params are @@ -95,6 +95,6 @@ int flash_smart_write_corrected(struct blocklevel_device *bl, uint32_t dst, cons /* chip erase may not be supported by all chips/controllers, get ready * for FLASH_ERR_CHIP_ER_NOT_SUPPORTED */ -int flash_erase_chip(struct blocklevel_device *bl); +int flash_erase_chip(struct flash_chip *c); #endif /* __LIBFLASH_H */ |