Skip to content

Commit

Permalink
misc: at25: Get rid of intermediate storage for AT25 chip data
Browse files Browse the repository at this point in the history
There is no need to copy twice the same data. Drop needless local
variable.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20211125213203.86693-6-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Andy Shevchenko authored and Greg Kroah-Hartman committed Dec 3, 2021
1 parent 994233e commit 01d3c42
Showing 1 changed file with 15 additions and 17 deletions.
32 changes: 15 additions & 17 deletions drivers/misc/eeprom/at25.c
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,6 @@ static int at25_fw_to_chip(struct device *dev, struct spi_eeprom *chip)
u32 val;
int err;

memset(chip, 0, sizeof(*chip));
strncpy(chip->name, "at25", sizeof(chip->name));

err = device_property_read_u32(dev, "size", &val);
Expand Down Expand Up @@ -378,9 +377,9 @@ MODULE_DEVICE_TABLE(spi, at25_spi_ids);
static int at25_probe(struct spi_device *spi)
{
struct at25_data *at25 = NULL;
struct spi_eeprom chip, *pdata;
int err;
int sr;
struct spi_eeprom *pdata;
u8 id[FM25_ID_LEN];
u8 sernum[FM25_SN_LEN];
bool is_fram;
Expand All @@ -392,20 +391,6 @@ static int at25_probe(struct spi_device *spi)
else
is_fram = false;

/* Chip description */
pdata = dev_get_platdata(&spi->dev);
if (!pdata) {
if (is_fram) {
/* We file fields for FRAM case later on */
memset(&chip, 0, sizeof(chip));
} else {
err = at25_fw_to_chip(&spi->dev, &chip);
if (err)
return err;
}
} else
chip = *pdata;

/* Ping the chip ... the status register is pretty portable,
* unlike probing manufacturer IDs. We do expect that system
* firmware didn't write it in the past few milliseconds!
Expand All @@ -421,10 +406,23 @@ static int at25_probe(struct spi_device *spi)
return -ENOMEM;

mutex_init(&at25->lock);
at25->chip = chip;
at25->spi = spi;
spi_set_drvdata(spi, at25);

/* Chip description */
pdata = dev_get_platdata(&spi->dev);
if (pdata) {
at25->chip = *pdata;
} else {
if (is_fram) {
/* We file fields for FRAM case later on */
} else {
err = at25_fw_to_chip(&spi->dev, &at25->chip);
if (err)
return err;
}
}

if (is_fram) {
/* Get ID of chip */
fm25_aux_read(at25, id, FM25_RDID, FM25_ID_LEN);
Expand Down

0 comments on commit 01d3c42

Please sign in to comment.