diff options
author | Stefan Roese <sr@denx.de> | 2012-12-06 15:44:09 +0100 |
---|---|---|
committer | Stefan Roese <sr@denx.de> | 2013-01-10 14:39:30 +0100 |
commit | 20043a4c3cfbe0df8b452ef137ad6149f68c4ada (patch) | |
tree | f70fa8223e94ee344402cd449da15fe523533766 /drivers/mtd/cfi_flash.c | |
parent | 07b2c5c0e5abb8b6b996068471024410a7ef4bd4 (diff) | |
download | u-boot-imx-20043a4c3cfbe0df8b452ef137ad6149f68c4ada.zip u-boot-imx-20043a4c3cfbe0df8b452ef137ad6149f68c4ada.tar.gz u-boot-imx-20043a4c3cfbe0df8b452ef137ad6149f68c4ada.tar.bz2 |
cfi_flash: Add manufact_match helper function
Consolidate manufacturer matching into the function manufact_match()
and use it.
Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Holger Brunck <holger.brunck@keymile.com>
Diffstat (limited to 'drivers/mtd/cfi_flash.c')
-rw-r--r-- | drivers/mtd/cfi_flash.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c index c8099db..9a44109 100644 --- a/drivers/mtd/cfi_flash.c +++ b/drivers/mtd/cfi_flash.c @@ -1425,13 +1425,18 @@ int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt) return flash_write_cfiword (info, wp, cword); } +static inline int manufact_match(flash_info_t *info, u32 manu) +{ + return info->manufacturer_id == ((manu & FLASH_VENDMASK) >> 16); +} + /*----------------------------------------------------------------------- */ #ifdef CONFIG_SYS_FLASH_PROTECTION static int cfi_protect_bugfix(flash_info_t *info, long sector, int prot) { - if (info->manufacturer_id == ((INTEL_MANUFACT & FLASH_VENDMASK) >> 16) + if (manufact_match(info, INTEL_MANUFACT) && info->device_id == NUMONYX_256MBIT) { /* * see errata called @@ -1488,8 +1493,7 @@ int flash_real_protect (flash_info_t * info, long sector, int prot) case CFI_CMDSET_AMD_EXTENDED: case CFI_CMDSET_AMD_STANDARD: /* U-Boot only checks the first byte */ - if (info->manufacturer_id == - ((ATM_MANUFACT & FLASH_VENDMASK) >> 16)) { + if (manufact_match(info, ATM_MANUFACT)) { if (prot) { flash_unlock_seq (info, 0); flash_write_cmd (info, 0, @@ -1507,8 +1511,7 @@ int flash_real_protect (flash_info_t * info, long sector, int prot) 0, ATM_CMD_UNLOCK_SECT); } } - if (info->manufacturer_id == - ((AMD_MANUFACT & FLASH_VENDMASK) >> 16)) { + if (manufact_match(info, AMD_MANUFACT)) { int flag = disable_interrupts(); int lock_flag; @@ -1739,8 +1742,7 @@ static int cmdset_amd_init(flash_info_t *info, struct cfi_qry *qry) flash_write_cmd(info, 0, info->cfi_offset, FLASH_CMD_CFI); #ifdef CONFIG_SYS_FLASH_PROTECTION - if (info->ext_addr && info->manufacturer_id == - ((AMD_MANUFACT & FLASH_VENDMASK) >> 16)) { + if (info->ext_addr && manufact_match(info, AMD_MANUFACT)) { ushort spus; /* read sector protect/unprotect scheme */ |