Commit ecd0a6f0 authored by Ben Hutchings's avatar Ben Hutchings

sfc: Rename SPI stuff to show that it is Falcon-specific

Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
parent 964e6135
...@@ -434,7 +434,7 @@ static int falcon_spi_wait(struct efx_nic *efx) ...@@ -434,7 +434,7 @@ static int falcon_spi_wait(struct efx_nic *efx)
} }
} }
int falcon_spi_cmd(struct efx_nic *efx, const struct efx_spi_device *spi, int falcon_spi_cmd(struct efx_nic *efx, const struct falcon_spi_device *spi,
unsigned int command, int address, unsigned int command, int address,
const void *in, void *out, size_t len) const void *in, void *out, size_t len)
{ {
...@@ -491,22 +491,22 @@ int falcon_spi_cmd(struct efx_nic *efx, const struct efx_spi_device *spi, ...@@ -491,22 +491,22 @@ int falcon_spi_cmd(struct efx_nic *efx, const struct efx_spi_device *spi,
} }
static size_t static size_t
falcon_spi_write_limit(const struct efx_spi_device *spi, size_t start) falcon_spi_write_limit(const struct falcon_spi_device *spi, size_t start)
{ {
return min(FALCON_SPI_MAX_LEN, return min(FALCON_SPI_MAX_LEN,
(spi->block_size - (start & (spi->block_size - 1)))); (spi->block_size - (start & (spi->block_size - 1))));
} }
static inline u8 static inline u8
efx_spi_munge_command(const struct efx_spi_device *spi, falcon_spi_munge_command(const struct falcon_spi_device *spi,
const u8 command, const unsigned int address) const u8 command, const unsigned int address)
{ {
return command | (((address >> 8) & spi->munge_address) << 3); return command | (((address >> 8) & spi->munge_address) << 3);
} }
/* Wait up to 10 ms for buffered write completion */ /* Wait up to 10 ms for buffered write completion */
int int
falcon_spi_wait_write(struct efx_nic *efx, const struct efx_spi_device *spi) falcon_spi_wait_write(struct efx_nic *efx, const struct falcon_spi_device *spi)
{ {
unsigned long timeout = jiffies + 1 + DIV_ROUND_UP(HZ, 100); unsigned long timeout = jiffies + 1 + DIV_ROUND_UP(HZ, 100);
u8 status; u8 status;
...@@ -530,7 +530,7 @@ falcon_spi_wait_write(struct efx_nic *efx, const struct efx_spi_device *spi) ...@@ -530,7 +530,7 @@ falcon_spi_wait_write(struct efx_nic *efx, const struct efx_spi_device *spi)
} }
} }
int falcon_spi_read(struct efx_nic *efx, const struct efx_spi_device *spi, int falcon_spi_read(struct efx_nic *efx, const struct falcon_spi_device *spi,
loff_t start, size_t len, size_t *retlen, u8 *buffer) loff_t start, size_t len, size_t *retlen, u8 *buffer)
{ {
size_t block_len, pos = 0; size_t block_len, pos = 0;
...@@ -540,7 +540,7 @@ int falcon_spi_read(struct efx_nic *efx, const struct efx_spi_device *spi, ...@@ -540,7 +540,7 @@ int falcon_spi_read(struct efx_nic *efx, const struct efx_spi_device *spi,
while (pos < len) { while (pos < len) {
block_len = min(len - pos, FALCON_SPI_MAX_LEN); block_len = min(len - pos, FALCON_SPI_MAX_LEN);
command = efx_spi_munge_command(spi, SPI_READ, start + pos); command = falcon_spi_munge_command(spi, SPI_READ, start + pos);
rc = falcon_spi_cmd(efx, spi, command, start + pos, NULL, rc = falcon_spi_cmd(efx, spi, command, start + pos, NULL,
buffer + pos, block_len); buffer + pos, block_len);
if (rc) if (rc)
...@@ -561,7 +561,7 @@ int falcon_spi_read(struct efx_nic *efx, const struct efx_spi_device *spi, ...@@ -561,7 +561,7 @@ int falcon_spi_read(struct efx_nic *efx, const struct efx_spi_device *spi,
} }
int int
falcon_spi_write(struct efx_nic *efx, const struct efx_spi_device *spi, falcon_spi_write(struct efx_nic *efx, const struct falcon_spi_device *spi,
loff_t start, size_t len, size_t *retlen, const u8 *buffer) loff_t start, size_t len, size_t *retlen, const u8 *buffer)
{ {
u8 verify_buffer[FALCON_SPI_MAX_LEN]; u8 verify_buffer[FALCON_SPI_MAX_LEN];
...@@ -576,7 +576,7 @@ falcon_spi_write(struct efx_nic *efx, const struct efx_spi_device *spi, ...@@ -576,7 +576,7 @@ falcon_spi_write(struct efx_nic *efx, const struct efx_spi_device *spi,
block_len = min(len - pos, block_len = min(len - pos,
falcon_spi_write_limit(spi, start + pos)); falcon_spi_write_limit(spi, start + pos));
command = efx_spi_munge_command(spi, SPI_WRITE, start + pos); command = falcon_spi_munge_command(spi, SPI_WRITE, start + pos);
rc = falcon_spi_cmd(efx, spi, command, start + pos, rc = falcon_spi_cmd(efx, spi, command, start + pos,
buffer + pos, NULL, block_len); buffer + pos, NULL, block_len);
if (rc) if (rc)
...@@ -586,7 +586,7 @@ falcon_spi_write(struct efx_nic *efx, const struct efx_spi_device *spi, ...@@ -586,7 +586,7 @@ falcon_spi_write(struct efx_nic *efx, const struct efx_spi_device *spi,
if (rc) if (rc)
break; break;
command = efx_spi_munge_command(spi, SPI_READ, start + pos); command = falcon_spi_munge_command(spi, SPI_READ, start + pos);
rc = falcon_spi_cmd(efx, spi, command, start + pos, rc = falcon_spi_cmd(efx, spi, command, start + pos,
NULL, verify_buffer, block_len); NULL, verify_buffer, block_len);
if (memcmp(verify_buffer, buffer + pos, block_len)) { if (memcmp(verify_buffer, buffer + pos, block_len)) {
...@@ -1481,15 +1481,15 @@ falcon_read_nvram(struct efx_nic *efx, struct falcon_nvconfig *nvconfig_out) ...@@ -1481,15 +1481,15 @@ falcon_read_nvram(struct efx_nic *efx, struct falcon_nvconfig *nvconfig_out)
{ {
struct falcon_nic_data *nic_data = efx->nic_data; struct falcon_nic_data *nic_data = efx->nic_data;
struct falcon_nvconfig *nvconfig; struct falcon_nvconfig *nvconfig;
struct efx_spi_device *spi; struct falcon_spi_device *spi;
void *region; void *region;
int rc, magic_num, struct_ver; int rc, magic_num, struct_ver;
__le16 *word, *limit; __le16 *word, *limit;
u32 csum; u32 csum;
if (efx_spi_present(&nic_data->spi_flash)) if (falcon_spi_present(&nic_data->spi_flash))
spi = &nic_data->spi_flash; spi = &nic_data->spi_flash;
else if (efx_spi_present(&nic_data->spi_eeprom)) else if (falcon_spi_present(&nic_data->spi_eeprom))
spi = &nic_data->spi_eeprom; spi = &nic_data->spi_eeprom;
else else
return -EINVAL; return -EINVAL;
...@@ -1504,7 +1504,7 @@ falcon_read_nvram(struct efx_nic *efx, struct falcon_nvconfig *nvconfig_out) ...@@ -1504,7 +1504,7 @@ falcon_read_nvram(struct efx_nic *efx, struct falcon_nvconfig *nvconfig_out)
mutex_unlock(&nic_data->spi_lock); mutex_unlock(&nic_data->spi_lock);
if (rc) { if (rc) {
netif_err(efx, hw, efx->net_dev, "Failed to read %s\n", netif_err(efx, hw, efx->net_dev, "Failed to read %s\n",
efx_spi_present(&nic_data->spi_flash) ? falcon_spi_present(&nic_data->spi_flash) ?
"flash" : "EEPROM"); "flash" : "EEPROM");
rc = -EIO; rc = -EIO;
goto out; goto out;
...@@ -1849,7 +1849,7 @@ static int falcon_reset_sram(struct efx_nic *efx) ...@@ -1849,7 +1849,7 @@ static int falcon_reset_sram(struct efx_nic *efx)
} }
static void falcon_spi_device_init(struct efx_nic *efx, static void falcon_spi_device_init(struct efx_nic *efx,
struct efx_spi_device *spi_device, struct falcon_spi_device *spi_device,
unsigned int device_id, u32 device_type) unsigned int device_id, u32 device_type)
{ {
if (device_type != 0) { if (device_type != 0) {
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
#include "mcdi.h" #include "mcdi.h"
#include "mcdi_pcol.h" #include "mcdi_pcol.h"
#define EFX_SPI_VERIFY_BUF_LEN 16 #define FALCON_SPI_VERIFY_BUF_LEN 16
struct efx_mtd_partition { struct efx_mtd_partition {
struct mtd_info mtd; struct mtd_info mtd;
...@@ -50,7 +50,7 @@ struct efx_mtd_ops { ...@@ -50,7 +50,7 @@ struct efx_mtd_ops {
struct efx_mtd { struct efx_mtd {
struct list_head node; struct list_head node;
struct efx_nic *efx; struct efx_nic *efx;
const struct efx_spi_device *spi; const struct falcon_spi_device *spi;
const char *name; const char *name;
const struct efx_mtd_ops *ops; const struct efx_mtd_ops *ops;
size_t n_parts; size_t n_parts;
...@@ -71,10 +71,10 @@ static int siena_mtd_probe(struct efx_nic *efx); ...@@ -71,10 +71,10 @@ static int siena_mtd_probe(struct efx_nic *efx);
/* SPI utilities */ /* SPI utilities */
static int static int
efx_spi_slow_wait(struct efx_mtd_partition *part, bool uninterruptible) falcon_spi_slow_wait(struct efx_mtd_partition *part, bool uninterruptible)
{ {
struct efx_mtd *efx_mtd = part->mtd.priv; struct efx_mtd *efx_mtd = part->mtd.priv;
const struct efx_spi_device *spi = efx_mtd->spi; const struct falcon_spi_device *spi = efx_mtd->spi;
struct efx_nic *efx = efx_mtd->efx; struct efx_nic *efx = efx_mtd->efx;
u8 status; u8 status;
int rc, i; int rc, i;
...@@ -98,7 +98,7 @@ efx_spi_slow_wait(struct efx_mtd_partition *part, bool uninterruptible) ...@@ -98,7 +98,7 @@ efx_spi_slow_wait(struct efx_mtd_partition *part, bool uninterruptible)
} }
static int static int
efx_spi_unlock(struct efx_nic *efx, const struct efx_spi_device *spi) falcon_spi_unlock(struct efx_nic *efx, const struct falcon_spi_device *spi)
{ {
const u8 unlock_mask = (SPI_STATUS_BP2 | SPI_STATUS_BP1 | const u8 unlock_mask = (SPI_STATUS_BP2 | SPI_STATUS_BP1 |
SPI_STATUS_BP0); SPI_STATUS_BP0);
...@@ -133,14 +133,14 @@ efx_spi_unlock(struct efx_nic *efx, const struct efx_spi_device *spi) ...@@ -133,14 +133,14 @@ efx_spi_unlock(struct efx_nic *efx, const struct efx_spi_device *spi)
} }
static int static int
efx_spi_erase(struct efx_mtd_partition *part, loff_t start, size_t len) falcon_spi_erase(struct efx_mtd_partition *part, loff_t start, size_t len)
{ {
struct efx_mtd *efx_mtd = part->mtd.priv; struct efx_mtd *efx_mtd = part->mtd.priv;
const struct efx_spi_device *spi = efx_mtd->spi; const struct falcon_spi_device *spi = efx_mtd->spi;
struct efx_nic *efx = efx_mtd->efx; struct efx_nic *efx = efx_mtd->efx;
unsigned pos, block_len; unsigned pos, block_len;
u8 empty[EFX_SPI_VERIFY_BUF_LEN]; u8 empty[FALCON_SPI_VERIFY_BUF_LEN];
u8 buffer[EFX_SPI_VERIFY_BUF_LEN]; u8 buffer[FALCON_SPI_VERIFY_BUF_LEN];
int rc; int rc;
if (len != spi->erase_size) if (len != spi->erase_size)
...@@ -149,7 +149,7 @@ efx_spi_erase(struct efx_mtd_partition *part, loff_t start, size_t len) ...@@ -149,7 +149,7 @@ efx_spi_erase(struct efx_mtd_partition *part, loff_t start, size_t len)
if (spi->erase_command == 0) if (spi->erase_command == 0)
return -EOPNOTSUPP; return -EOPNOTSUPP;
rc = efx_spi_unlock(efx, spi); rc = falcon_spi_unlock(efx, spi);
if (rc) if (rc)
return rc; return rc;
rc = falcon_spi_cmd(efx, spi, SPI_WREN, -1, NULL, NULL, 0); rc = falcon_spi_cmd(efx, spi, SPI_WREN, -1, NULL, NULL, 0);
...@@ -159,7 +159,7 @@ efx_spi_erase(struct efx_mtd_partition *part, loff_t start, size_t len) ...@@ -159,7 +159,7 @@ efx_spi_erase(struct efx_mtd_partition *part, loff_t start, size_t len)
NULL, 0); NULL, 0);
if (rc) if (rc)
return rc; return rc;
rc = efx_spi_slow_wait(part, false); rc = falcon_spi_slow_wait(part, false);
/* Verify the entire region has been wiped */ /* Verify the entire region has been wiped */
memset(empty, 0xff, sizeof(empty)); memset(empty, 0xff, sizeof(empty));
...@@ -319,7 +319,7 @@ static int falcon_mtd_read(struct mtd_info *mtd, loff_t start, ...@@ -319,7 +319,7 @@ static int falcon_mtd_read(struct mtd_info *mtd, loff_t start,
{ {
struct efx_mtd_partition *part = to_efx_mtd_partition(mtd); struct efx_mtd_partition *part = to_efx_mtd_partition(mtd);
struct efx_mtd *efx_mtd = mtd->priv; struct efx_mtd *efx_mtd = mtd->priv;
const struct efx_spi_device *spi = efx_mtd->spi; const struct falcon_spi_device *spi = efx_mtd->spi;
struct efx_nic *efx = efx_mtd->efx; struct efx_nic *efx = efx_mtd->efx;
struct falcon_nic_data *nic_data = efx->nic_data; struct falcon_nic_data *nic_data = efx->nic_data;
int rc; int rc;
...@@ -344,7 +344,7 @@ static int falcon_mtd_erase(struct mtd_info *mtd, loff_t start, size_t len) ...@@ -344,7 +344,7 @@ static int falcon_mtd_erase(struct mtd_info *mtd, loff_t start, size_t len)
rc = mutex_lock_interruptible(&nic_data->spi_lock); rc = mutex_lock_interruptible(&nic_data->spi_lock);
if (rc) if (rc)
return rc; return rc;
rc = efx_spi_erase(part, part->offset + start, len); rc = falcon_spi_erase(part, part->offset + start, len);
mutex_unlock(&nic_data->spi_lock); mutex_unlock(&nic_data->spi_lock);
return rc; return rc;
} }
...@@ -354,7 +354,7 @@ static int falcon_mtd_write(struct mtd_info *mtd, loff_t start, ...@@ -354,7 +354,7 @@ static int falcon_mtd_write(struct mtd_info *mtd, loff_t start,
{ {
struct efx_mtd_partition *part = to_efx_mtd_partition(mtd); struct efx_mtd_partition *part = to_efx_mtd_partition(mtd);
struct efx_mtd *efx_mtd = mtd->priv; struct efx_mtd *efx_mtd = mtd->priv;
const struct efx_spi_device *spi = efx_mtd->spi; const struct falcon_spi_device *spi = efx_mtd->spi;
struct efx_nic *efx = efx_mtd->efx; struct efx_nic *efx = efx_mtd->efx;
struct falcon_nic_data *nic_data = efx->nic_data; struct falcon_nic_data *nic_data = efx->nic_data;
int rc; int rc;
...@@ -377,7 +377,7 @@ static int falcon_mtd_sync(struct mtd_info *mtd) ...@@ -377,7 +377,7 @@ static int falcon_mtd_sync(struct mtd_info *mtd)
int rc; int rc;
mutex_lock(&nic_data->spi_lock); mutex_lock(&nic_data->spi_lock);
rc = efx_spi_slow_wait(part, true); rc = falcon_spi_slow_wait(part, true);
mutex_unlock(&nic_data->spi_lock); mutex_unlock(&nic_data->spi_lock);
return rc; return rc;
} }
...@@ -392,14 +392,14 @@ static const struct efx_mtd_ops falcon_mtd_ops = { ...@@ -392,14 +392,14 @@ static const struct efx_mtd_ops falcon_mtd_ops = {
static int falcon_mtd_probe(struct efx_nic *efx) static int falcon_mtd_probe(struct efx_nic *efx)
{ {
struct falcon_nic_data *nic_data = efx->nic_data; struct falcon_nic_data *nic_data = efx->nic_data;
struct efx_spi_device *spi; struct falcon_spi_device *spi;
struct efx_mtd *efx_mtd; struct efx_mtd *efx_mtd;
int rc = -ENODEV; int rc = -ENODEV;
ASSERT_RTNL(); ASSERT_RTNL();
spi = &nic_data->spi_flash; spi = &nic_data->spi_flash;
if (efx_spi_present(spi) && spi->size > FALCON_FLASH_BOOTCODE_START) { if (falcon_spi_present(spi) && spi->size > FALCON_FLASH_BOOTCODE_START) {
efx_mtd = kzalloc(sizeof(*efx_mtd) + sizeof(efx_mtd->part[0]), efx_mtd = kzalloc(sizeof(*efx_mtd) + sizeof(efx_mtd->part[0]),
GFP_KERNEL); GFP_KERNEL);
if (!efx_mtd) if (!efx_mtd)
...@@ -425,7 +425,7 @@ static int falcon_mtd_probe(struct efx_nic *efx) ...@@ -425,7 +425,7 @@ static int falcon_mtd_probe(struct efx_nic *efx)
} }
spi = &nic_data->spi_eeprom; spi = &nic_data->spi_eeprom;
if (efx_spi_present(spi) && spi->size > EFX_EEPROM_BOOTCONFIG_START) { if (falcon_spi_present(spi) && spi->size > FALCON_EEPROM_BOOTCONFIG_START) {
efx_mtd = kzalloc(sizeof(*efx_mtd) + sizeof(efx_mtd->part[0]), efx_mtd = kzalloc(sizeof(*efx_mtd) + sizeof(efx_mtd->part[0]),
GFP_KERNEL); GFP_KERNEL);
if (!efx_mtd) if (!efx_mtd)
...@@ -439,10 +439,10 @@ static int falcon_mtd_probe(struct efx_nic *efx) ...@@ -439,10 +439,10 @@ static int falcon_mtd_probe(struct efx_nic *efx)
efx_mtd->part[0].mtd.type = MTD_RAM; efx_mtd->part[0].mtd.type = MTD_RAM;
efx_mtd->part[0].mtd.flags = MTD_CAP_RAM; efx_mtd->part[0].mtd.flags = MTD_CAP_RAM;
efx_mtd->part[0].mtd.size = efx_mtd->part[0].mtd.size =
min(spi->size, EFX_EEPROM_BOOTCONFIG_END) - min(spi->size, FALCON_EEPROM_BOOTCONFIG_END) -
EFX_EEPROM_BOOTCONFIG_START; FALCON_EEPROM_BOOTCONFIG_START;
efx_mtd->part[0].mtd.erasesize = spi->erase_size; efx_mtd->part[0].mtd.erasesize = spi->erase_size;
efx_mtd->part[0].offset = EFX_EEPROM_BOOTCONFIG_START; efx_mtd->part[0].offset = FALCON_EEPROM_BOOTCONFIG_START;
efx_mtd->part[0].type_name = "sfc_bootconfig"; efx_mtd->part[0].type_name = "sfc_bootconfig";
rc = efx_mtd_probe_device(efx, efx_mtd); rc = efx_mtd_probe_device(efx, efx_mtd);
......
...@@ -184,8 +184,8 @@ struct falcon_nic_data { ...@@ -184,8 +184,8 @@ struct falcon_nic_data {
bool stats_pending; bool stats_pending;
struct timer_list stats_timer; struct timer_list stats_timer;
u32 *stats_dma_done; u32 *stats_dma_done;
struct efx_spi_device spi_flash; struct falcon_spi_device spi_flash;
struct efx_spi_device spi_eeprom; struct falcon_spi_device spi_eeprom;
struct mutex spi_lock; struct mutex spi_lock;
struct mutex mdio_lock; struct mutex mdio_lock;
bool xmac_poll_required; bool xmac_poll_required;
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#define SPI_STATUS_NRDY 0x01 /* Device busy flag */ #define SPI_STATUS_NRDY 0x01 /* Device busy flag */
/** /**
* struct efx_spi_device - an Efx SPI (Serial Peripheral Interface) device * struct falcon_spi_device - a Falcon SPI (Serial Peripheral Interface) device
* @device_id: Controller's id for the device * @device_id: Controller's id for the device
* @size: Size (in bytes) * @size: Size (in bytes)
* @addr_len: Number of address bytes in read/write commands * @addr_len: Number of address bytes in read/write commands
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
* @block_size: Write block size (in bytes). * @block_size: Write block size (in bytes).
* Write commands are limited to blocks with this size and alignment. * Write commands are limited to blocks with this size and alignment.
*/ */
struct efx_spi_device { struct falcon_spi_device {
int device_id; int device_id;
unsigned int size; unsigned int size;
unsigned int addr_len; unsigned int addr_len;
...@@ -61,21 +61,21 @@ struct efx_spi_device { ...@@ -61,21 +61,21 @@ struct efx_spi_device {
unsigned int block_size; unsigned int block_size;
}; };
static inline bool efx_spi_present(const struct efx_spi_device *spi) static inline bool falcon_spi_present(const struct falcon_spi_device *spi)
{ {
return spi->size != 0; return spi->size != 0;
} }
int falcon_spi_cmd(struct efx_nic *efx, int falcon_spi_cmd(struct efx_nic *efx,
const struct efx_spi_device *spi, unsigned int command, const struct falcon_spi_device *spi, unsigned int command,
int address, const void *in, void *out, size_t len); int address, const void *in, void *out, size_t len);
int falcon_spi_wait_write(struct efx_nic *efx, int falcon_spi_wait_write(struct efx_nic *efx,
const struct efx_spi_device *spi); const struct falcon_spi_device *spi);
int falcon_spi_read(struct efx_nic *efx, int falcon_spi_read(struct efx_nic *efx,
const struct efx_spi_device *spi, loff_t start, const struct falcon_spi_device *spi, loff_t start,
size_t len, size_t *retlen, u8 *buffer); size_t len, size_t *retlen, u8 *buffer);
int falcon_spi_write(struct efx_nic *efx, int falcon_spi_write(struct efx_nic *efx,
const struct efx_spi_device *spi, loff_t start, const struct falcon_spi_device *spi, loff_t start,
size_t len, size_t *retlen, const u8 *buffer); size_t len, size_t *retlen, const u8 *buffer);
/* /*
...@@ -93,7 +93,7 @@ int falcon_spi_write(struct efx_nic *efx, ...@@ -93,7 +93,7 @@ int falcon_spi_write(struct efx_nic *efx,
*/ */
#define FALCON_NVCONFIG_END 0x400U #define FALCON_NVCONFIG_END 0x400U
#define FALCON_FLASH_BOOTCODE_START 0x8000U #define FALCON_FLASH_BOOTCODE_START 0x8000U
#define EFX_EEPROM_BOOTCONFIG_START 0x800U #define FALCON_EEPROM_BOOTCONFIG_START 0x800U
#define EFX_EEPROM_BOOTCONFIG_END 0x1800U #define FALCON_EEPROM_BOOTCONFIG_END 0x1800U
#endif /* EFX_SPI_H */ #endif /* EFX_SPI_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment