{"id":638521,"url":"http://patchwork.ozlabs.org/api/patches/638521/?format=json","web_url":"http://patchwork.ozlabs.org/project/rtc-linux/patch/1466493770-11895-13-git-send-email-andrew.smirnov@gmail.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":"<1466493770-11895-13-git-send-email-andrew.smirnov@gmail.com>","list_archive_url":null,"date":"2016-06-21T07:22:47","name":"[v2,14/17] RTC: ds1307: Move last bits of sanity checking out of chip_configure","commit_ref":null,"pull_url":null,"state":"rejected","archived":false,"hash":"518641db9d0ed4ec085a5cbd82113bd279416fc4","submitter":{"id":67013,"url":"http://patchwork.ozlabs.org/api/people/67013/?format=json","name":"Andrey Smirnov","email":"andrew.smirnov@gmail.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/rtc-linux/patch/1466493770-11895-13-git-send-email-andrew.smirnov@gmail.com/mbox/","series":[],"comments":"http://patchwork.ozlabs.org/api/patches/638521/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/638521/checks/","tags":{},"related":[],"headers":{"Return-Path":"<rtc-linux+bncBDKOBWPM5ABRBX6WUO5QKGQEGH2RKFA@googlegroups.com>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Received":["from mail-yw0-x23c.google.com (mail-yw0-x23c.google.com\n\t[IPv6:2607:f8b0:4002:c05::23c])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3rYfMj0vZCz9t0S\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 21 Jun 2016 17:23:13 +1000 (AEST)","by mail-yw0-x23c.google.com with SMTP id b72sf2200141ywa.0\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 21 Jun 2016 00:23:13 -0700 (PDT)","by 10.157.22.208 with SMTP id s16ls3577283ots.68.gmail; Tue, 21 Jun\n\t2016 00:23:11 -0700 (PDT)","from mail-pf0-x242.google.com (mail-pf0-x242.google.com.\n\t[2607:f8b0:400e:c00::242]) by gmr-mx.google.com with ESMTPS id\n\tpo17si907888pab.2.2016.06.21.00.23.10\n\tfor <rtc-linux@googlegroups.com>\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tTue, 21 Jun 2016 00:23:10 -0700 (PDT)","by mail-pf0-x242.google.com with SMTP id c74so763755pfb.0\n\tfor <rtc-linux@googlegroups.com>;\n\tTue, 21 Jun 2016 00:23:10 -0700 (PDT)","from squirtle.localdomain.localdomain\n\t(c-73-225-163-254.hsd1.wa.comcast.net. [73.225.163.254])\n\tby smtp.gmail.com with ESMTPSA id\n\tp187sm19452396pfg.67.2016.06.21.00.23.09\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tTue, 21 Jun 2016 00:23:10 -0700 (PDT)"],"Authentication-Results":"ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=googlegroups.com header.i=@googlegroups.com\n\theader.b=yNyUgxFf; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com header.b=hADZM0qu;\n\tdkim-atps=neutral","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=googlegroups.com; s=20120806;\n\th=sender:mime-version:from:to:cc:subject:date:message-id:in-reply-to\n\t:references:x-original-sender:x-original-authentication-results\n\t:reply-to:precedence:mailing-list:list-id:x-spam-checked-in-group\n\t:list-post:list-help:list-archive:list-subscribe:list-unsubscribe;\n\tbh=6uxOFomp4/nn5t6IuhOOOOCyj5zgbb8Seu2Rml6m+wU=;\n\tb=yNyUgxFfK2bqp/TfGwY8fF7fT4cc4VTT8nOCon7niq9r9iQnQ8mU+2HDvVVY85YHYo\n\tqjzj8OPptG207Tu+7WW9874uaJGGPDnQ3lg8W0oSQruVhEvaOo9yRLsfRRHiz63TjPHI\n\tFTYsFvtTEcY3Ozz3GFtlJxgymb0M+OgbbSSARrCOYGTkKLZ3MH1Yt2g/A6SmyAqQktgM\n\tz5KR2V5T5+ATDsedRxP3UBpitPZVoYH6oLmmTwEX4IdpoaoQnPSQaxwUluseJEyDI8Ik\n\tikap7FUeyvSdSWZUFBs9c5JlSRgCD1MnXsAf+uqpKWAxb1/6vyQKjmLd2fEOnhoIRndN\n\tJBYw==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20120113;\n\th=mime-version:from:to:cc:subject:date:message-id:in-reply-to\n\t:references:x-original-sender:x-original-authentication-results\n\t:reply-to:precedence:mailing-list:list-id:x-spam-checked-in-group\n\t:list-post:list-help:list-archive:list-subscribe:list-unsubscribe;\n\tbh=6uxOFomp4/nn5t6IuhOOOOCyj5zgbb8Seu2Rml6m+wU=;\n\tb=hADZM0quhoqTFK5lVZjTuKwP09LVBMOauhPz9zgfK8pCdrXWz9Jv1cC7i0MI0TKYY8\n\tCi3SCPIKhgwD9t6VqcOGHTKF6t6X8xK3s5KYqgbtllq1Uz9arbkYSZGpTYEoyAF+pg0e\n\t4vViys2XNDVcgoaLJH6Ap6b/OBQMR4BvdS5v2AgMqmBzIokXtxttm3G5eZx2lBt239db\n\t43CgUL3ccIC2dILE3o12xk8UaxWFrJs0+NERkiFj3kf0T7ysXdXnXKCfliyt2Zv/XFKC\n\tOCSKTEIGkGUs1Ct1wB6uNrMIVQnw9UqKzPMCPGHKetY2BB1rDPkvOpBHa6Xzbo8E/YFf\n\ti33g=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=sender:x-gm-message-state:mime-version:from:to:cc:subject:date\n\t:message-id:in-reply-to:references:x-original-sender\n\t:x-original-authentication-results:reply-to:precedence:mailing-list\n\t:list-id:x-spam-checked-in-group:list-post:list-help:list-archive\n\t:list-subscribe:list-unsubscribe;\n\tbh=6uxOFomp4/nn5t6IuhOOOOCyj5zgbb8Seu2Rml6m+wU=;\n\tb=kknk4DDhQ49Fe5Ledynj3NdbF9mIqXpu+pqnonBULVma3T1JEX6MWvuvqRh4U+lGHH\n\tvWAnQQaaED+gDdMKHZA2b1cBVp+PBG+eZD+Byxf9DvznYTyBl6k2x/GYfqvMPUINznIn\n\txZU6uRi/b+kTBGRj2jUavbplHXfEhYInsMwVmvU+EzTzZqn00oZibeib3Ncy9Gu9FauY\n\tuaKd1Hh+DO8YD7M3D1HvytRDgLItMusoLDOGf/3rG+40sga0mASSQaRV8s+NcTCjyhjN\n\tg12FjpnUlsHAE3RMs4EKcFRjk5SlL0uIokX1QLweUsTXrFPX9VWR/38oKmrWIpcdYWB9\n\t4VGg==","Sender":"rtc-linux@googlegroups.com","X-Gm-Message-State":"ALyK8tImMnc36wnT7Kt40b9w9fvwRpEb5wmKNzZVsofn5+5T0oU3Hsopw9v5XGOV6zlL/A==","X-Received":["by 10.157.42.81 with SMTP id t75mr343427ota.1.1466493791277;\n\tTue, 21 Jun 2016 00:23:11 -0700 (PDT)","by 10.129.154.215 with SMTP id\n\tr206mr25331853ywg.35.1466493791057; \n\tTue, 21 Jun 2016 00:23:11 -0700 (PDT)","by 10.98.204.130 with SMTP id j2mr26718445pfk.147.1466493790684; \n\tTue, 21 Jun 2016 00:23:10 -0700 (PDT)"],"MIME-Version":"1.0","X-BeenThere":"rtc-linux@googlegroups.com","Received-SPF":"pass (google.com: domain of andrew.smirnov@gmail.com\n\tdesignates 2607:f8b0:400e:c00::242 as permitted sender)\n\tclient-ip=2607:f8b0:400e:c00::242; ","From":"Andrey Smirnov <andrew.smirnov@gmail.com>","To":"rtc-linux@googlegroups.com","Cc":"Andrey Smirnov <andrew.smirnov@gmail.com>,\n\tAlessandro Zummo <a.zummo@towertech.it>,\n\tAlexandre Belloni <alexandre.belloni@free-electrons.com>,\n\tlinux-kernel@vger.kernel.org, cphealy@gmail.com","Subject":"[rtc-linux] [PATCH v2 14/17] RTC: ds1307: Move last bits of sanity\n\tchecking out of chip_configure","Date":"Tue, 21 Jun 2016 00:22:47 -0700","Message-Id":"<1466493770-11895-13-git-send-email-andrew.smirnov@gmail.com>","X-Mailer":"git-send-email 2.5.5","In-Reply-To":"<1466493770-11895-1-git-send-email-andrew.smirnov@gmail.com>","References":"<1466493770-11895-1-git-send-email-andrew.smirnov@gmail.com>","X-Original-Sender":"andrew.smirnov@gmail.com","X-Original-Authentication-Results":"gmr-mx.google.com;       dkim=pass\n\theader.i=@gmail.com;       spf=pass (google.com: domain of\n\tandrew.smirnov@gmail.com designates 2607:f8b0:400e:c00::242 as\n\tpermitted\n\tsender) smtp.mailfrom=andrew.smirnov@gmail.com; dmarc=pass (p=NONE\n\tdis=NONE) header.from=gmail.com","Reply-To":"rtc-linux@googlegroups.com","Content-Type":"text/plain; charset=UTF-8","Precedence":"list","Mailing-list":"list rtc-linux@googlegroups.com;\n\tcontact rtc-linux+owners@googlegroups.com","List-ID":"<rtc-linux.googlegroups.com>","X-Spam-Checked-In-Group":"rtc-linux@googlegroups.com","X-Google-Group-Id":"712029733259","List-Post":"<https://groups.google.com/group/rtc-linux/post>,\n\t<mailto:rtc-linux@googlegroups.com>","List-Help":"<https://groups.google.com/support/>,\n\t<mailto:rtc-linux+help@googlegroups.com>","List-Archive":"<https://groups.google.com/group/rtc-linux","List-Subscribe":"<https://groups.google.com/group/rtc-linux/subscribe>,\n\t<mailto:rtc-linux+subscribe@googlegroups.com>","List-Unsubscribe":"<mailto:googlegroups-manage+712029733259+unsubscribe@googlegroups.com>,\n\t<https://groups.google.com/group/rtc-linux/subscribe>"},"content":"Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>\n---\n drivers/rtc/rtc-ds1307.c | 106 ++++++++++++++++++++++++++---------------------\n 1 file changed, 59 insertions(+), 47 deletions(-)","diff":"diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c\nindex 2169e5b..45b2adb 100644\n--- a/drivers/rtc/rtc-ds1307.c\n+++ b/drivers/rtc/rtc-ds1307.c\n@@ -1344,66 +1344,23 @@ static int ds1307_chip_configure(const struct ds1307 *ds1307)\n \t\t\t\t\t  DS1337_REG_CONTROL,\n \t\t\t\t\t  regs[0]);\n \n-\t\t/* oscillator fault?  clear flag, and warn */\n-\t\tif (regs[1] & DS1337_BIT_OSF) {\n-\t\t\ti2c_smbus_write_byte_data(client,\n-\t\t\t\t\t\t  DS1337_REG_STATUS,\n-\t\t\t\t\t\t  regs[1] & ~DS1337_BIT_OSF);\n-\t\t\tdev_warn(&ds1307->client->dev, \"SET TIME!\\n\");\n-\t\t}\n \t\tbreak;\n \t}\n \tcase rx_8025:\n-\t\ttmp = i2c_smbus_read_i2c_block_data(client,\n-\t\t\t\t\t\t    RX8025_REG_CTRL1,\n-\t\t\t\t\t\t    2, regs);\n-\t\tif (tmp != 2) {\n+\t\ttmp = i2c_smbus_read_byte_data(client, RX8025_REG_CTRL1);\n+\t\tif (tmp < 0) {\n \t\t\tdev_dbg(&client->dev, \"read error %d\\n\", tmp);\n \t\t\treturn -EIO;\n \t\t}\n \n-\t\t/* oscillator off?  turn it on, so clock can tick. */\n-\t\tif (!(regs[1] & RX8025_BIT_XST)) {\n-\t\t\tregs[1] |= RX8025_BIT_XST;\n-\t\t\ti2c_smbus_write_byte_data(client,\n-\t\t\t\t\t\t  RX8025_REG_CTRL2,\n-\t\t\t\t\t\t  regs[1]);\n-\t\t\tdev_warn(&client->dev,\n-\t\t\t\t \"oscillator stop detected - SET TIME!\\n\");\n-\t\t}\n-\n-\t\tif (regs[1] & RX8025_BIT_PON) {\n-\t\t\tregs[1] &= ~RX8025_BIT_PON;\n-\t\t\ti2c_smbus_write_byte_data(client,\n-\t\t\t\t\t\t  RX8025_REG_CTRL2,\n-\t\t\t\t\t\t  regs[1]);\n-\t\t\tdev_warn(&client->dev, \"power-on detected\\n\");\n-\t\t}\n-\n-\t\tif (regs[1] & RX8025_BIT_VDET) {\n-\t\t\tregs[1] &= ~RX8025_BIT_VDET;\n-\t\t\ti2c_smbus_write_byte_data(client,\n-\t\t\t\t\t\t  RX8025_REG_CTRL2,\n-\t\t\t\t\t\t  regs[1]);\n-\t\t\tdev_warn(&client->dev, \"voltage drop detected\\n\");\n-\t\t}\n-\n \t\t/* make sure we are running in 24hour mode */\n-\t\tif (!(regs[0] & RX8025_BIT_2412)) {\n+\t\tif (!(tmp & RX8025_BIT_2412)) {\n \t\t\tu8 hour;\n \n \t\t\t/* switch to 24 hour mode */\n \t\t\ti2c_smbus_write_byte_data(client,\n \t\t\t\t\t\t  RX8025_REG_CTRL1,\n-\t\t\t\t\t\t  regs[0] | RX8025_BIT_2412);\n-\n-\t\t\ttmp = i2c_smbus_read_i2c_block_data(client,\n-\t\t\t\t\t\t\t    RX8025_REG_CTRL1,\n-\t\t\t\t\t\t\t    2, regs);\n-\t\t\tif (tmp != 2) {\n-\t\t\t\tdev_dbg(&client->dev, \"read error %d\\n\", tmp);\n-\t\t\t\treturn -EIO;\n-\t\t\t}\n+\t\t\t\t\t\t  tmp | RX8025_BIT_2412);\n \n \t\t\t/* correct hour */\n \t\t\thour = bcd2bin(regs[DS1307_REG_HOUR]);\n@@ -1486,6 +1443,27 @@ static int ds1307_chip_sanity_check(const struct ds1307 *ds1307)\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\tbreak;\n+\n+\t\tcase ds_1337:\n+\t\tcase ds_1339:\n+\t\tcase ds_3231:\n+\t\tcase ds_1341:\n+\t\t\ttmp = i2c_smbus_read_byte_data(client,\n+\t\t\t\t\t\t       DS1337_REG_STATUS);\n+\t\t\tif (tmp < 0) {\n+\t\t\t\tdev_dbg(&client->dev, \"read error %d\\n\", tmp);\n+\t\t\t\treturn -EIO;\n+\t\t\t}\n+\n+\t\t\t/* oscillator fault?  clear flag, and warn */\n+\t\t\tif (tmp & DS1337_BIT_OSF) {\n+\t\t\t\ti2c_smbus_write_byte_data(client,\n+\t\t\t\t\t\t\t  DS1337_REG_STATUS,\n+\t\t\t\t\t\t\t  regs[1] & ~DS1337_BIT_OSF);\n+\t\t\t\tds1307_report_oscillator_fault(ds1307);\n+\t\t\t}\n+\t\t\treturn 0;\n+\n \t\tcase ds_1340:\n \t\t\t/* clock halted?  turn it on, so clock can tick. */\n \t\t\tif (tmp & DS1340_BIT_nEOSC) {\n@@ -1530,6 +1508,40 @@ static int ds1307_chip_sanity_check(const struct ds1307 *ds1307)\n \t\t\t}\n \n \t\t\tbreak;\n+\n+\t\tcase rx_8025:\n+\t\t\ttmp = i2c_smbus_read_byte_data(client,\n+\t\t\t\t\t\t       RX8025_REG_CTRL2);\n+\t\t\tif (tmp < 0) {\n+\t\t\t\tdev_dbg(&client->dev, \"read error %d\\n\", tmp);\n+\t\t\t\treturn -EIO;\n+\t\t\t}\n+\n+\t\t\t/* oscillator off?  turn it on, so clock can tick. */\n+\t\t\tif (!(tmp & RX8025_BIT_XST)) {\n+\t\t\t\ttmp |= RX8025_BIT_XST;\n+\t\t\t\ti2c_smbus_write_byte_data(client,\n+\t\t\t\t\t\t\t  RX8025_REG_CTRL2,\n+\t\t\t\t\t\t\t  tmp);\n+\t\t\t\tds1307_report_clock_halt(ds1307);\n+\t\t\t}\n+\n+\t\t\tif (tmp & RX8025_BIT_PON) {\n+\t\t\t\ttmp &= ~RX8025_BIT_PON;\n+\t\t\t\ti2c_smbus_write_byte_data(client,\n+\t\t\t\t\t\t\t  RX8025_REG_CTRL2,\n+\t\t\t\t\t\t\t  tmp);\n+\t\t\t\tdev_warn(&client->dev, \"power-on detected\\n\");\n+\t\t\t}\n+\n+\t\t\tif (tmp & RX8025_BIT_VDET) {\n+\t\t\t\ttmp &= ~RX8025_BIT_VDET;\n+\t\t\t\ti2c_smbus_write_byte_data(client,\n+\t\t\t\t\t\t\t  RX8025_REG_CTRL2,\n+\t\t\t\t\t\t\t  tmp);\n+\t\t\t\tdev_warn(&client->dev, \"voltage drop detected\\n\");\n+\t\t\t}\n+\t\t\tbreak;\n \t\tdefault:\n \t\t\tbreak;\n \t\t}\n","prefixes":["v2","14/17"]}