From 4316a2b075123906f47f8da9c14eac12b070d5ee Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Sun, 7 May 2017 13:05:39 -0700 Subject: [PATCH] UPSTREAM: drivers/spi/spi_flash: Use boot_device_spi_flash to obtain spi_flash structure Instead of storing spi flash device structure in spi flash driver, use boot_device_spi_flash callback to obtain pointer to boot device spi flash structure. BUG=b:38330715 Change-Id: I83a384ce1b417869167d9dbeb38ed7a9900f0e11 Signed-off-by: Patrick Georgi Original-Commit-Id: f422fd2c78b8a7ab58e75ba7bd13b0c354a207b8 Original-Change-Id: Idd50b7644d1a4be8b62d38cc9239feae2215103c Original-Signed-off-by: Furquan Shaikh Original-Reviewed-on: https://review.coreboot.org/19703 Original-Tested-by: build bot (Jenkins) Original-Reviewed-by: Aaron Durbin Reviewed-on: https://chromium-review.googlesource.com/509518 Commit-Ready: Patrick Georgi Tested-by: Patrick Georgi Reviewed-by: Patrick Georgi --- src/drivers/spi/spi_flash.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/drivers/spi/spi_flash.c b/src/drivers/spi/spi_flash.c index 95362f2618..e84df73c29 100644 --- a/src/drivers/spi/spi_flash.c +++ b/src/drivers/spi/spi_flash.c @@ -22,8 +22,6 @@ #include "spi_flash_internal.h" #include -static struct spi_flash *spi_flash_dev = NULL; - static void spi_flash_addr(u32 addr, u8 *cmd) { /* cmd[0] is actual command */ @@ -357,14 +355,6 @@ struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs) printk(BIOS_INFO, "SF: Detected %s with sector size 0x%x, total 0x%x\n", flash->name, flash->sector_size, flash->size); - /* - * Only set the global spi_flash_dev if this is the boot - * device's bus and it's previously unset while in ramstage. - */ - if (ENV_RAMSTAGE && IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH) && - CONFIG_BOOT_DEVICE_SPI_FLASH_BUS == bus && !spi_flash_dev) - spi_flash_dev = flash; - return flash; } @@ -451,6 +441,7 @@ int spi_flash_volatile_group_end(const struct spi_flash *flash) void lb_spi_flash(struct lb_header *header) { struct lb_spi_flash *flash; + const struct spi_flash *spi_flash_dev; if (!IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH)) return; @@ -460,9 +451,7 @@ void lb_spi_flash(struct lb_header *header) flash->tag = LB_TAG_SPI_FLASH; flash->size = sizeof(*flash); - /* Try to get the flash device if not loaded yet */ - if (!spi_flash_dev) - boot_device_init(); + spi_flash_dev = boot_device_spi_flash(); if (spi_flash_dev) { flash->flash_size = spi_flash_dev->size;