mirror of
https://review.coreboot.org/flashrom.git
synced 2025-07-01 14:11:15 +02:00
Replace most of the switch cases in the spi code with lookup on a struct instead
This brings the SPI code in line with the generic programmer infrastructure. This patch is a reworked version of a patch by Jakob Bornecrantz. Corresponding to flashrom svn r657. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com> Acked-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Jakob Bornecrantz <wallbraker@gmail.com> Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
This commit is contained in:
20
ichspi.c
20
ichspi.c
@ -742,3 +742,23 @@ int ich_spi_send_command(unsigned int writecnt, unsigned int readcnt,
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
int ich_spi_send_multicommand(struct spi_command *spicommands)
|
||||
{
|
||||
int ret = 0;
|
||||
while ((spicommands->writecnt || spicommands->readcnt) && !ret) {
|
||||
ret = ich_spi_send_command(spicommands->writecnt, spicommands->readcnt,
|
||||
spicommands->writearr, spicommands->readarr);
|
||||
/* This awful hack needs to be smarter.
|
||||
*/
|
||||
if ((ret == SPI_INVALID_OPCODE) &&
|
||||
((spicommands->writearr[0] == JEDEC_WREN) ||
|
||||
(spicommands->writearr[0] == JEDEC_EWSR))) {
|
||||
printf_debug(" due to SPI master limitation, ignoring"
|
||||
" and hoping it will be run as PREOP\n");
|
||||
ret = 0;
|
||||
}
|
||||
spicommands++;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user