summaryrefslogtreecommitdiffstats
path: root/drivers/misc/eeprom
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2021-11-25 23:31:58 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-12-03 14:26:15 +0100
commit01d3c42a08021617ad8ee79b0a9fed91d68e32b6 (patch)
treebd8a44d97be8bf2c75e2f8bcb805d2f5748af78d /drivers/misc/eeprom
parent994233e195aaa53f30ca1722a280c5295f8782ce (diff)
downloadlinux-01d3c42a08021617ad8ee79b0a9fed91d68e32b6.tar.bz2
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: 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>
Diffstat (limited to 'drivers/misc/eeprom')
-rw-r--r--drivers/misc/eeprom/at25.c32
1 files changed, 15 insertions, 17 deletions
diff --git a/drivers/misc/eeprom/at25.c b/drivers/misc/eeprom/at25.c
index b235f20c56da..70cab386040a 100644
--- a/drivers/misc/eeprom/at25.c
+++ b/drivers/misc/eeprom/at25.c
@@ -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);