Commit 01d3c42a authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Greg Kroah-Hartman

misc: at25: Get rid of intermediate storage for AT25 chip data

There is no need to copy twice the same data. Drop needless local
variable.
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20211125213203.86693-6-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 994233e1
......@@ -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);
......@@ -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;
......@@ -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!
......@@ -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);
......
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