{"id":809842,"url":"http://patchwork.ozlabs.org/api/patches/809842/?format=json","web_url":"http://patchwork.ozlabs.org/project/rtc-linux/patch/20170904204608.7090-1-alexandre.belloni@free-electrons.com/","project":{"id":9,"url":"http://patchwork.ozlabs.org/api/projects/9/?format=json","name":"Linux RTC development","link_name":"rtc-linux","list_id":"linux-rtc.vger.kernel.org","list_email":"linux-rtc@vger.kernel.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170904204608.7090-1-alexandre.belloni@free-electrons.com>","list_archive_url":null,"date":"2017-09-04T20:46:02","name":"[1/7] rtc: ds1307: remove regs member","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"ae525d61f7e4fbef16facd9f1f2dc0f46d05705e","submitter":{"id":26276,"url":"http://patchwork.ozlabs.org/api/people/26276/?format=json","name":"Alexandre Belloni","email":"alexandre.belloni@free-electrons.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/rtc-linux/patch/20170904204608.7090-1-alexandre.belloni@free-electrons.com/mbox/","series":[{"id":1455,"url":"http://patchwork.ozlabs.org/api/series/1455/?format=json","web_url":"http://patchwork.ozlabs.org/project/rtc-linux/list/?series=1455","date":"2017-09-04T20:46:03","name":"[1/7] rtc: ds1307: remove regs member","version":1,"mbox":"http://patchwork.ozlabs.org/series/1455/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/809842/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/809842/checks/","tags":{},"related":[],"headers":{"Return-Path":"<linux-rtc-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-rtc-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xmMNV0hnPz9t24\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  5 Sep 2017 06:47:22 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1754043AbdIDUqS (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tMon, 4 Sep 2017 16:46:18 -0400","from mail.free-electrons.com ([62.4.15.54]:53956 \"EHLO\n\tmail.free-electrons.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751358AbdIDUqN (ORCPT\n\t<rfc822;linux-rtc@vger.kernel.org>); Mon, 4 Sep 2017 16:46:13 -0400","by mail.free-electrons.com (Postfix, from userid 110)\n\tid D985620888; Mon,  4 Sep 2017 22:46:09 +0200 (CEST)","from localhost (unknown [88.191.26.124])\n\tby mail.free-electrons.com (Postfix) with ESMTPSA id A727420859;\n\tMon,  4 Sep 2017 22:46:09 +0200 (CEST)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.0 (2014-02-07) on\n\tmail.free-electrons.com","X-Spam-Level":"","X-Spam-Status":"No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT,\n\tURIBL_BLOCKED shortcircuit=ham autolearn=disabled version=3.4.0","From":"Alexandre Belloni <alexandre.belloni@free-electrons.com>","To":"linux-rtc@vger.kernel.org","Cc":"linux-kernel@vger.kernel.org, Heiner Kallweit <hkallweit1@gmail.com>,\n\tAlexandre Belloni <alexandre.belloni@free-electrons.com>","Subject":"[PATCH 1/7] rtc: ds1307: remove regs member","Date":"Mon,  4 Sep 2017 22:46:02 +0200","Message-Id":"<20170904204608.7090-1-alexandre.belloni@free-electrons.com>","X-Mailer":"git-send-email 2.14.1","Sender":"linux-rtc-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-rtc.vger.kernel.org>","X-Mailing-List":"linux-rtc@vger.kernel.org"},"content":"ds1307->regs is never used before being read or initialized locally. There\nis no point in keeping a copy in memory.\n\nAlso limit the size of the read buffer to what is really used, rename buf\nto regs for consistency and use sizeof() where possible.\n\nSigned-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>\n---\n drivers/rtc/rtc-ds1307.c | 207 ++++++++++++++++++++++++-----------------------\n 1 file changed, 107 insertions(+), 100 deletions(-)","diff":"diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c\nindex 6038c49ed68a..8de1d7116461 100644\n--- a/drivers/rtc/rtc-ds1307.c\n+++ b/drivers/rtc/rtc-ds1307.c\n@@ -116,7 +116,6 @@ enum ds_type {\n \n \n struct ds1307 {\n-\tu8\t\t\tregs[11];\n \tstruct nvmem_config\tnvmem_cfg;\n \tenum ds_type\t\ttype;\n \tunsigned long\t\tflags;\n@@ -397,34 +396,36 @@ static int ds1307_get_time(struct device *dev, struct rtc_time *t)\n \tstruct ds1307\t*ds1307 = dev_get_drvdata(dev);\n \tint\t\ttmp, ret;\n \tconst struct chip_desc *chip = &chips[ds1307->type];\n+\tu8 regs[7];\n \n \t/* read the RTC date and time registers all at once */\n-\tret = regmap_bulk_read(ds1307->regmap, chip->offset, ds1307->regs, 7);\n+\tret = regmap_bulk_read(ds1307->regmap, chip->offset, regs,\n+\t\t\t       sizeof(regs));\n \tif (ret) {\n \t\tdev_err(dev, \"%s error %d\\n\", \"read\", ret);\n \t\treturn ret;\n \t}\n \n-\tdev_dbg(dev, \"%s: %7ph\\n\", \"read\", ds1307->regs);\n+\tdev_dbg(dev, \"%s: %7ph\\n\", \"read\", regs);\n \n \t/* if oscillator fail bit is set, no data can be trusted */\n \tif (ds1307->type == m41t0 &&\n-\t    ds1307->regs[DS1307_REG_MIN] & M41T0_BIT_OF) {\n+\t    regs[DS1307_REG_MIN] & M41T0_BIT_OF) {\n \t\tdev_warn_once(dev, \"oscillator failed, set time!\\n\");\n \t\treturn -EINVAL;\n \t}\n \n-\tt->tm_sec = bcd2bin(ds1307->regs[DS1307_REG_SECS] & 0x7f);\n-\tt->tm_min = bcd2bin(ds1307->regs[DS1307_REG_MIN] & 0x7f);\n-\ttmp = ds1307->regs[DS1307_REG_HOUR] & 0x3f;\n+\tt->tm_sec = bcd2bin(regs[DS1307_REG_SECS] & 0x7f);\n+\tt->tm_min = bcd2bin(regs[DS1307_REG_MIN] & 0x7f);\n+\ttmp = regs[DS1307_REG_HOUR] & 0x3f;\n \tt->tm_hour = bcd2bin(tmp);\n-\tt->tm_wday = bcd2bin(ds1307->regs[DS1307_REG_WDAY] & 0x07) - 1;\n-\tt->tm_mday = bcd2bin(ds1307->regs[DS1307_REG_MDAY] & 0x3f);\n-\ttmp = ds1307->regs[DS1307_REG_MONTH] & 0x1f;\n+\tt->tm_wday = bcd2bin(regs[DS1307_REG_WDAY] & 0x07) - 1;\n+\tt->tm_mday = bcd2bin(regs[DS1307_REG_MDAY] & 0x3f);\n+\ttmp = regs[DS1307_REG_MONTH] & 0x1f;\n \tt->tm_mon = bcd2bin(tmp) - 1;\n-\tt->tm_year = bcd2bin(ds1307->regs[DS1307_REG_YEAR]) + 100;\n+\tt->tm_year = bcd2bin(regs[DS1307_REG_YEAR]) + 100;\n \n-\tif (ds1307->regs[chip->century_reg] & chip->century_bit &&\n+\tif (regs[chip->century_reg] & chip->century_bit &&\n \t    IS_ENABLED(CONFIG_RTC_DRV_DS1307_CENTURY))\n \t\tt->tm_year += 100;\n \n@@ -444,7 +445,7 @@ static int ds1307_set_time(struct device *dev, struct rtc_time *t)\n \tconst struct chip_desc *chip = &chips[ds1307->type];\n \tint\t\tresult;\n \tint\t\ttmp;\n-\tu8\t\t*buf = ds1307->regs;\n+\tu8\t\tregs[7];\n \n \tdev_dbg(dev, \"%s secs=%d, mins=%d, \"\n \t\t\"hours=%d, mday=%d, mon=%d, year=%d, wday=%d\\n\",\n@@ -463,35 +464,36 @@ static int ds1307_set_time(struct device *dev, struct rtc_time *t)\n \t\treturn -EINVAL;\n #endif\n \n-\tbuf[DS1307_REG_SECS] = bin2bcd(t->tm_sec);\n-\tbuf[DS1307_REG_MIN] = bin2bcd(t->tm_min);\n-\tbuf[DS1307_REG_HOUR] = bin2bcd(t->tm_hour);\n-\tbuf[DS1307_REG_WDAY] = bin2bcd(t->tm_wday + 1);\n-\tbuf[DS1307_REG_MDAY] = bin2bcd(t->tm_mday);\n-\tbuf[DS1307_REG_MONTH] = bin2bcd(t->tm_mon + 1);\n+\tregs[DS1307_REG_SECS] = bin2bcd(t->tm_sec);\n+\tregs[DS1307_REG_MIN] = bin2bcd(t->tm_min);\n+\tregs[DS1307_REG_HOUR] = bin2bcd(t->tm_hour);\n+\tregs[DS1307_REG_WDAY] = bin2bcd(t->tm_wday + 1);\n+\tregs[DS1307_REG_MDAY] = bin2bcd(t->tm_mday);\n+\tregs[DS1307_REG_MONTH] = bin2bcd(t->tm_mon + 1);\n \n \t/* assume 20YY not 19YY */\n \ttmp = t->tm_year - 100;\n-\tbuf[DS1307_REG_YEAR] = bin2bcd(tmp);\n+\tregs[DS1307_REG_YEAR] = bin2bcd(tmp);\n \n \tif (chip->century_enable_bit)\n-\t\tbuf[chip->century_reg] |= chip->century_enable_bit;\n+\t\tregs[chip->century_reg] |= chip->century_enable_bit;\n \tif (t->tm_year > 199 && chip->century_bit)\n-\t\tbuf[chip->century_reg] |= chip->century_bit;\n+\t\tregs[chip->century_reg] |= chip->century_bit;\n \n \tif (ds1307->type == mcp794xx) {\n \t\t/*\n \t\t * these bits were cleared when preparing the date/time\n \t\t * values and need to be set again before writing the\n-\t\t * buffer out to the device.\n+\t\t * regsfer out to the device.\n \t\t */\n-\t\tbuf[DS1307_REG_SECS] |= MCP794XX_BIT_ST;\n-\t\tbuf[DS1307_REG_WDAY] |= MCP794XX_BIT_VBATEN;\n+\t\tregs[DS1307_REG_SECS] |= MCP794XX_BIT_ST;\n+\t\tregs[DS1307_REG_WDAY] |= MCP794XX_BIT_VBATEN;\n \t}\n \n-\tdev_dbg(dev, \"%s: %7ph\\n\", \"write\", buf);\n+\tdev_dbg(dev, \"%s: %7ph\\n\", \"write\", regs);\n \n-\tresult = regmap_bulk_write(ds1307->regmap, chip->offset, buf, 7);\n+\tresult = regmap_bulk_write(ds1307->regmap, chip->offset, regs,\n+\t\t\t\t   sizeof(regs));\n \tif (result) {\n \t\tdev_err(dev, \"%s error %d\\n\", \"write\", result);\n \t\treturn result;\n@@ -503,33 +505,34 @@ static int ds1337_read_alarm(struct device *dev, struct rtc_wkalrm *t)\n {\n \tstruct ds1307\t\t*ds1307 = dev_get_drvdata(dev);\n \tint\t\t\tret;\n+\tu8\t\t\tregs[9];\n \n \tif (!test_bit(HAS_ALARM, &ds1307->flags))\n \t\treturn -EINVAL;\n \n \t/* read all ALARM1, ALARM2, and status registers at once */\n \tret = regmap_bulk_read(ds1307->regmap, DS1339_REG_ALARM1_SECS,\n-\t\t\t       ds1307->regs, 9);\n+\t\t\t       regs, sizeof(regs));\n \tif (ret) {\n \t\tdev_err(dev, \"%s error %d\\n\", \"alarm read\", ret);\n \t\treturn ret;\n \t}\n \n \tdev_dbg(dev, \"%s: %4ph, %3ph, %2ph\\n\", \"alarm read\",\n-\t\t&ds1307->regs[0], &ds1307->regs[4], &ds1307->regs[7]);\n+\t\t&regs[0], &regs[4], &regs[7]);\n \n \t/*\n \t * report alarm time (ALARM1); assume 24 hour and day-of-month modes,\n \t * and that all four fields are checked matches\n \t */\n-\tt->time.tm_sec = bcd2bin(ds1307->regs[0] & 0x7f);\n-\tt->time.tm_min = bcd2bin(ds1307->regs[1] & 0x7f);\n-\tt->time.tm_hour = bcd2bin(ds1307->regs[2] & 0x3f);\n-\tt->time.tm_mday = bcd2bin(ds1307->regs[3] & 0x3f);\n+\tt->time.tm_sec = bcd2bin(regs[0] & 0x7f);\n+\tt->time.tm_min = bcd2bin(regs[1] & 0x7f);\n+\tt->time.tm_hour = bcd2bin(regs[2] & 0x3f);\n+\tt->time.tm_mday = bcd2bin(regs[3] & 0x3f);\n \n \t/* ... and status */\n-\tt->enabled = !!(ds1307->regs[7] & DS1337_BIT_A1IE);\n-\tt->pending = !!(ds1307->regs[8] & DS1337_BIT_A1I);\n+\tt->enabled = !!(regs[7] & DS1337_BIT_A1IE);\n+\tt->pending = !!(regs[8] & DS1337_BIT_A1I);\n \n \tdev_dbg(dev, \"%s secs=%d, mins=%d, \"\n \t\t\"hours=%d, mday=%d, enabled=%d, pending=%d\\n\",\n@@ -543,7 +546,7 @@ static int ds1337_read_alarm(struct device *dev, struct rtc_wkalrm *t)\n static int ds1337_set_alarm(struct device *dev, struct rtc_wkalrm *t)\n {\n \tstruct ds1307\t\t*ds1307 = dev_get_drvdata(dev);\n-\tunsigned char\t\t*buf = ds1307->regs;\n+\tunsigned char\t\tregs[9];\n \tu8\t\t\tcontrol, status;\n \tint\t\t\tret;\n \n@@ -557,33 +560,35 @@ static int ds1337_set_alarm(struct device *dev, struct rtc_wkalrm *t)\n \t\tt->enabled, t->pending);\n \n \t/* read current status of both alarms and the chip */\n-\tret = regmap_bulk_read(ds1307->regmap, DS1339_REG_ALARM1_SECS, buf, 9);\n+\tret = regmap_bulk_read(ds1307->regmap, DS1339_REG_ALARM1_SECS, regs,\n+\t\t\t       sizeof(regs));\n \tif (ret) {\n \t\tdev_err(dev, \"%s error %d\\n\", \"alarm write\", ret);\n \t\treturn ret;\n \t}\n-\tcontrol = ds1307->regs[7];\n-\tstatus = ds1307->regs[8];\n+\tcontrol = regs[7];\n+\tstatus = regs[8];\n \n \tdev_dbg(dev, \"%s: %4ph, %3ph, %02x %02x\\n\", \"alarm set (old status)\",\n-\t\t&ds1307->regs[0], &ds1307->regs[4], control, status);\n+\t\t&regs[0], &regs[4], control, status);\n \n \t/* set ALARM1, using 24 hour and day-of-month modes */\n-\tbuf[0] = bin2bcd(t->time.tm_sec);\n-\tbuf[1] = bin2bcd(t->time.tm_min);\n-\tbuf[2] = bin2bcd(t->time.tm_hour);\n-\tbuf[3] = bin2bcd(t->time.tm_mday);\n+\tregs[0] = bin2bcd(t->time.tm_sec);\n+\tregs[1] = bin2bcd(t->time.tm_min);\n+\tregs[2] = bin2bcd(t->time.tm_hour);\n+\tregs[3] = bin2bcd(t->time.tm_mday);\n \n \t/* set ALARM2 to non-garbage */\n-\tbuf[4] = 0;\n-\tbuf[5] = 0;\n-\tbuf[6] = 0;\n+\tregs[4] = 0;\n+\tregs[5] = 0;\n+\tregs[6] = 0;\n \n \t/* disable alarms */\n-\tbuf[7] = control & ~(DS1337_BIT_A1IE | DS1337_BIT_A2IE);\n-\tbuf[8] = status & ~(DS1337_BIT_A1I | DS1337_BIT_A2I);\n+\tregs[7] = control & ~(DS1337_BIT_A1IE | DS1337_BIT_A2IE);\n+\tregs[8] = status & ~(DS1337_BIT_A1I | DS1337_BIT_A2I);\n \n-\tret = regmap_bulk_write(ds1307->regmap, DS1339_REG_ALARM1_SECS, buf, 9);\n+\tret = regmap_bulk_write(ds1307->regmap, DS1339_REG_ALARM1_SECS, regs,\n+\t\t\t\tsizeof(regs));\n \tif (ret) {\n \t\tdev_err(dev, \"can't set alarm time\\n\");\n \t\treturn ret;\n@@ -592,8 +597,8 @@ static int ds1337_set_alarm(struct device *dev, struct rtc_wkalrm *t)\n \t/* optionally enable ALARM1 */\n \tif (t->enabled) {\n \t\tdev_dbg(dev, \"alarm IRQ armed\\n\");\n-\t\tbuf[7] |= DS1337_BIT_A1IE;\t/* only ALARM1 is used */\n-\t\tregmap_write(ds1307->regmap, DS1337_REG_CONTROL, buf[7]);\n+\t\tregs[7] |= DS1337_BIT_A1IE;\t/* only ALARM1 is used */\n+\t\tregmap_write(ds1307->regmap, DS1337_REG_CONTROL, regs[7]);\n \t}\n \n \treturn 0;\n@@ -830,26 +835,27 @@ static irqreturn_t mcp794xx_irq(int irq, void *dev_id)\n static int mcp794xx_read_alarm(struct device *dev, struct rtc_wkalrm *t)\n {\n \tstruct ds1307 *ds1307 = dev_get_drvdata(dev);\n-\tu8 *regs = ds1307->regs;\n+\tu8 regs[10];\n \tint ret;\n \n \tif (!test_bit(HAS_ALARM, &ds1307->flags))\n \t\treturn -EINVAL;\n \n \t/* Read control and alarm 0 registers. */\n-\tret = regmap_bulk_read(ds1307->regmap, MCP794XX_REG_CONTROL, regs, 10);\n+\tret = regmap_bulk_read(ds1307->regmap, MCP794XX_REG_CONTROL, regs,\n+\t\t\t       sizeof(regs));\n \tif (ret)\n \t\treturn ret;\n \n \tt->enabled = !!(regs[0] & MCP794XX_BIT_ALM0_EN);\n \n \t/* Report alarm 0 time assuming 24-hour and day-of-month modes. */\n-\tt->time.tm_sec = bcd2bin(ds1307->regs[3] & 0x7f);\n-\tt->time.tm_min = bcd2bin(ds1307->regs[4] & 0x7f);\n-\tt->time.tm_hour = bcd2bin(ds1307->regs[5] & 0x3f);\n-\tt->time.tm_wday = bcd2bin(ds1307->regs[6] & 0x7) - 1;\n-\tt->time.tm_mday = bcd2bin(ds1307->regs[7] & 0x3f);\n-\tt->time.tm_mon = bcd2bin(ds1307->regs[8] & 0x1f) - 1;\n+\tt->time.tm_sec = bcd2bin(regs[3] & 0x7f);\n+\tt->time.tm_min = bcd2bin(regs[4] & 0x7f);\n+\tt->time.tm_hour = bcd2bin(regs[5] & 0x3f);\n+\tt->time.tm_wday = bcd2bin(regs[6] & 0x7) - 1;\n+\tt->time.tm_mday = bcd2bin(regs[7] & 0x3f);\n+\tt->time.tm_mon = bcd2bin(regs[8] & 0x1f) - 1;\n \tt->time.tm_year = -1;\n \tt->time.tm_yday = -1;\n \tt->time.tm_isdst = -1;\n@@ -858,9 +864,9 @@ static int mcp794xx_read_alarm(struct device *dev, struct rtc_wkalrm *t)\n \t\t\"enabled=%d polarity=%d irq=%d match=%d\\n\", __func__,\n \t\tt->time.tm_sec, t->time.tm_min, t->time.tm_hour,\n \t\tt->time.tm_wday, t->time.tm_mday, t->time.tm_mon, t->enabled,\n-\t\t!!(ds1307->regs[6] & MCP794XX_BIT_ALMX_POL),\n-\t\t!!(ds1307->regs[6] & MCP794XX_BIT_ALMX_IF),\n-\t\t(ds1307->regs[6] & MCP794XX_MSK_ALMX_MATCH) >> 4);\n+\t\t!!(regs[6] & MCP794XX_BIT_ALMX_POL),\n+\t\t!!(regs[6] & MCP794XX_BIT_ALMX_IF),\n+\t\t(regs[6] & MCP794XX_MSK_ALMX_MATCH) >> 4);\n \n \treturn 0;\n }\n@@ -868,7 +874,7 @@ static int mcp794xx_read_alarm(struct device *dev, struct rtc_wkalrm *t)\n static int mcp794xx_set_alarm(struct device *dev, struct rtc_wkalrm *t)\n {\n \tstruct ds1307 *ds1307 = dev_get_drvdata(dev);\n-\tunsigned char *regs = ds1307->regs;\n+\tunsigned char regs[10];\n \tint ret;\n \n \tif (!test_bit(HAS_ALARM, &ds1307->flags))\n@@ -881,7 +887,8 @@ static int mcp794xx_set_alarm(struct device *dev, struct rtc_wkalrm *t)\n \t\tt->enabled, t->pending);\n \n \t/* Read control and alarm 0 registers. */\n-\tret = regmap_bulk_read(ds1307->regmap, MCP794XX_REG_CONTROL, regs, 10);\n+\tret = regmap_bulk_read(ds1307->regmap, MCP794XX_REG_CONTROL, regs,\n+\t\t\t       sizeof(regs));\n \tif (ret)\n \t\treturn ret;\n \n@@ -900,7 +907,8 @@ static int mcp794xx_set_alarm(struct device *dev, struct rtc_wkalrm *t)\n \t/* Disable interrupt. We will not enable until completely programmed */\n \tregs[0] &= ~MCP794XX_BIT_ALM0_EN;\n \n-\tret = regmap_bulk_write(ds1307->regmap, MCP794XX_REG_CONTROL, regs, 10);\n+\tret = regmap_bulk_write(ds1307->regmap, MCP794XX_REG_CONTROL, regs,\n+\t\t\t\tsizeof(regs));\n \tif (ret)\n \t\treturn ret;\n \n@@ -1344,7 +1352,7 @@ static int ds1307_probe(struct i2c_client *client,\n \tconst struct chip_desc\t*chip;\n \tbool\t\t\twant_irq;\n \tbool\t\t\tds1307_can_wakeup_device = false;\n-\tunsigned char\t\t*buf;\n+\tunsigned char\t\tregs[8];\n \tstruct ds1307_platform_data *pdata = dev_get_platdata(&client->dev);\n \tstruct rtc_time\t\ttm;\n \tunsigned long\t\ttimestamp;\n@@ -1400,8 +1408,6 @@ static int ds1307_probe(struct i2c_client *client,\n \t\t\t     trickle_charger_setup);\n \t}\n \n-\tbuf = ds1307->regs;\n-\n #ifdef CONFIG_OF\n /*\n  * For devices with no IRQ directly connected to the SoC, the RTC chip\n@@ -1423,15 +1429,15 @@ static int ds1307_probe(struct i2c_client *client,\n \tcase ds_3231:\n \t\t/* get registers that the \"rtc\" read below won't read... */\n \t\terr = regmap_bulk_read(ds1307->regmap, DS1337_REG_CONTROL,\n-\t\t\t\t       buf, 2);\n+\t\t\t\t       regs, 2);\n \t\tif (err) {\n \t\t\tdev_dbg(ds1307->dev, \"read error %d\\n\", err);\n \t\t\tgoto exit;\n \t\t}\n \n \t\t/* oscillator off?  turn it on, so clock can tick. */\n-\t\tif (ds1307->regs[0] & DS1337_BIT_nEOSC)\n-\t\t\tds1307->regs[0] &= ~DS1337_BIT_nEOSC;\n+\t\tif (regs[0] & DS1337_BIT_nEOSC)\n+\t\t\tregs[0] &= ~DS1337_BIT_nEOSC;\n \n \t\t/*\n \t\t * Using IRQ or defined as wakeup-source?\n@@ -1440,77 +1446,77 @@ static int ds1307_probe(struct i2c_client *client,\n \t\t * running on Vbackup (BBSQI/BBSQW)\n \t\t */\n \t\tif (want_irq || ds1307_can_wakeup_device) {\n-\t\t\tds1307->regs[0] |= DS1337_BIT_INTCN | chip->bbsqi_bit;\n-\t\t\tds1307->regs[0] &= ~(DS1337_BIT_A2IE | DS1337_BIT_A1IE);\n+\t\t\tregs[0] |= DS1337_BIT_INTCN | chip->bbsqi_bit;\n+\t\t\tregs[0] &= ~(DS1337_BIT_A2IE | DS1337_BIT_A1IE);\n \t\t}\n \n \t\tregmap_write(ds1307->regmap, DS1337_REG_CONTROL,\n-\t\t\t     ds1307->regs[0]);\n+\t\t\t     regs[0]);\n \n \t\t/* oscillator fault?  clear flag, and warn */\n-\t\tif (ds1307->regs[1] & DS1337_BIT_OSF) {\n+\t\tif (regs[1] & DS1337_BIT_OSF) {\n \t\t\tregmap_write(ds1307->regmap, DS1337_REG_STATUS,\n-\t\t\t\t     ds1307->regs[1] & ~DS1337_BIT_OSF);\n+\t\t\t\t     regs[1] & ~DS1337_BIT_OSF);\n \t\t\tdev_warn(ds1307->dev, \"SET TIME!\\n\");\n \t\t}\n \t\tbreak;\n \n \tcase rx_8025:\n \t\terr = regmap_bulk_read(ds1307->regmap,\n-\t\t\t\t       RX8025_REG_CTRL1 << 4 | 0x08, buf, 2);\n+\t\t\t\t       RX8025_REG_CTRL1 << 4 | 0x08, regs, 2);\n \t\tif (err) {\n \t\t\tdev_dbg(ds1307->dev, \"read error %d\\n\", err);\n \t\t\tgoto exit;\n \t\t}\n \n \t\t/* oscillator off?  turn it on, so clock can tick. */\n-\t\tif (!(ds1307->regs[1] & RX8025_BIT_XST)) {\n-\t\t\tds1307->regs[1] |= RX8025_BIT_XST;\n+\t\tif (!(regs[1] & RX8025_BIT_XST)) {\n+\t\t\tregs[1] |= RX8025_BIT_XST;\n \t\t\tregmap_write(ds1307->regmap,\n \t\t\t\t     RX8025_REG_CTRL2 << 4 | 0x08,\n-\t\t\t\t     ds1307->regs[1]);\n+\t\t\t\t     regs[1]);\n \t\t\tdev_warn(ds1307->dev,\n \t\t\t\t \"oscillator stop detected - SET TIME!\\n\");\n \t\t}\n \n-\t\tif (ds1307->regs[1] & RX8025_BIT_PON) {\n-\t\t\tds1307->regs[1] &= ~RX8025_BIT_PON;\n+\t\tif (regs[1] & RX8025_BIT_PON) {\n+\t\t\tregs[1] &= ~RX8025_BIT_PON;\n \t\t\tregmap_write(ds1307->regmap,\n \t\t\t\t     RX8025_REG_CTRL2 << 4 | 0x08,\n-\t\t\t\t     ds1307->regs[1]);\n+\t\t\t\t     regs[1]);\n \t\t\tdev_warn(ds1307->dev, \"power-on detected\\n\");\n \t\t}\n \n-\t\tif (ds1307->regs[1] & RX8025_BIT_VDET) {\n-\t\t\tds1307->regs[1] &= ~RX8025_BIT_VDET;\n+\t\tif (regs[1] & RX8025_BIT_VDET) {\n+\t\t\tregs[1] &= ~RX8025_BIT_VDET;\n \t\t\tregmap_write(ds1307->regmap,\n \t\t\t\t     RX8025_REG_CTRL2 << 4 | 0x08,\n-\t\t\t\t     ds1307->regs[1]);\n+\t\t\t\t     regs[1]);\n \t\t\tdev_warn(ds1307->dev, \"voltage drop detected\\n\");\n \t\t}\n \n \t\t/* make sure we are running in 24hour mode */\n-\t\tif (!(ds1307->regs[0] & RX8025_BIT_2412)) {\n+\t\tif (!(regs[0] & RX8025_BIT_2412)) {\n \t\t\tu8 hour;\n \n \t\t\t/* switch to 24 hour mode */\n \t\t\tregmap_write(ds1307->regmap,\n \t\t\t\t     RX8025_REG_CTRL1 << 4 | 0x08,\n-\t\t\t\t     ds1307->regs[0] | RX8025_BIT_2412);\n+\t\t\t\t     regs[0] | RX8025_BIT_2412);\n \n \t\t\terr = regmap_bulk_read(ds1307->regmap,\n \t\t\t\t\t       RX8025_REG_CTRL1 << 4 | 0x08,\n-\t\t\t\t\t       buf, 2);\n+\t\t\t\t\t       regs, 2);\n \t\t\tif (err) {\n \t\t\t\tdev_dbg(ds1307->dev, \"read error %d\\n\", err);\n \t\t\t\tgoto exit;\n \t\t\t}\n \n \t\t\t/* correct hour */\n-\t\t\thour = bcd2bin(ds1307->regs[DS1307_REG_HOUR]);\n+\t\t\thour = bcd2bin(regs[DS1307_REG_HOUR]);\n \t\t\tif (hour == 12)\n \t\t\t\thour = 0;\n-\t\t\tif (ds1307->regs[DS1307_REG_HOUR] & DS1307_BIT_PM)\n+\t\t\tif (regs[DS1307_REG_HOUR] & DS1307_BIT_PM)\n \t\t\t\thour += 12;\n \n \t\t\tregmap_write(ds1307->regmap,\n@@ -1523,7 +1529,8 @@ static int ds1307_probe(struct i2c_client *client,\n \n read_rtc:\n \t/* read RTC registers */\n-\terr = regmap_bulk_read(ds1307->regmap, chip->offset, buf, 8);\n+\terr = regmap_bulk_read(ds1307->regmap, chip->offset, regs,\n+\t\t\t       sizeof(regs));\n \tif (err) {\n \t\tdev_dbg(ds1307->dev, \"read error %d\\n\", err);\n \t\tgoto exit;\n@@ -1534,7 +1541,7 @@ static int ds1307_probe(struct i2c_client *client,\n \t * specify the extra bits as must-be-zero, but there are\n \t * still a few values that are clearly out-of-range.\n \t */\n-\ttmp = ds1307->regs[DS1307_REG_SECS];\n+\ttmp = regs[DS1307_REG_SECS];\n \tswitch (ds1307->type) {\n \tcase ds_1307:\n \tcase m41t0:\n@@ -1553,9 +1560,9 @@ static int ds1307_probe(struct i2c_client *client,\n \t\t\tregmap_write(ds1307->regmap, DS1307_REG_SECS, 0);\n \n \t\t/* oscillator fault?  clear flag, and warn */\n-\t\tif (ds1307->regs[DS1307_REG_CONTROL] & DS1338_BIT_OSF) {\n+\t\tif (regs[DS1307_REG_CONTROL] & DS1338_BIT_OSF) {\n \t\t\tregmap_write(ds1307->regmap, DS1307_REG_CONTROL,\n-\t\t\t\t\tds1307->regs[DS1307_REG_CONTROL] &\n+\t\t\t\t\tregs[DS1307_REG_CONTROL] &\n \t\t\t\t\t~DS1338_BIT_OSF);\n \t\t\tdev_warn(ds1307->dev, \"SET TIME!\\n\");\n \t\t\tgoto read_rtc;\n@@ -1580,9 +1587,9 @@ static int ds1307_probe(struct i2c_client *client,\n \t\tbreak;\n \tcase mcp794xx:\n \t\t/* make sure that the backup battery is enabled */\n-\t\tif (!(ds1307->regs[DS1307_REG_WDAY] & MCP794XX_BIT_VBATEN)) {\n+\t\tif (!(regs[DS1307_REG_WDAY] & MCP794XX_BIT_VBATEN)) {\n \t\t\tregmap_write(ds1307->regmap, DS1307_REG_WDAY,\n-\t\t\t\t     ds1307->regs[DS1307_REG_WDAY] |\n+\t\t\t\t     regs[DS1307_REG_WDAY] |\n \t\t\t\t     MCP794XX_BIT_VBATEN);\n \t\t}\n \n@@ -1599,7 +1606,7 @@ static int ds1307_probe(struct i2c_client *client,\n \t\tbreak;\n \t}\n \n-\ttmp = ds1307->regs[DS1307_REG_HOUR];\n+\ttmp = regs[DS1307_REG_HOUR];\n \tswitch (ds1307->type) {\n \tcase ds_1340:\n \tcase m41t0:\n@@ -1622,7 +1629,7 @@ static int ds1307_probe(struct i2c_client *client,\n \t\ttmp = bcd2bin(tmp & 0x1f);\n \t\tif (tmp == 12)\n \t\t\ttmp = 0;\n-\t\tif (ds1307->regs[DS1307_REG_HOUR] & DS1307_BIT_PM)\n+\t\tif (regs[DS1307_REG_HOUR] & DS1307_BIT_PM)\n \t\t\ttmp += 12;\n \t\tregmap_write(ds1307->regmap, chip->offset + DS1307_REG_HOUR,\n \t\t\t     bin2bcd(tmp));\n","prefixes":["1/7"]}