get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/638518/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 638518,
    "url": "http://patchwork.ozlabs.org/api/patches/638518/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/rtc-linux/patch/1466493770-11895-10-git-send-email-andrew.smirnov@gmail.com/",
    "project": {
        "id": 9,
        "url": "http://patchwork.ozlabs.org/api/projects/9/?format=api",
        "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-10-git-send-email-andrew.smirnov@gmail.com>",
    "list_archive_url": null,
    "date": "2016-06-21T07:22:44",
    "name": "[v2,11/17] RTC: ds1307: Convert goto to a loop",
    "commit_ref": null,
    "pull_url": null,
    "state": "rejected",
    "archived": false,
    "hash": "3b5f2dd04fe3a75fedfcd15887d5059d98a04e17",
    "submitter": {
        "id": 67013,
        "url": "http://patchwork.ozlabs.org/api/people/67013/?format=api",
        "name": "Andrey Smirnov",
        "email": "andrew.smirnov@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/rtc-linux/patch/1466493770-11895-10-git-send-email-andrew.smirnov@gmail.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/638518/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/638518/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<rtc-linux+bncBDKOBWPM5ABRBXGWUO5QKGQEBLZ6N5I@googlegroups.com>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Received": [
            "from mail-vk0-x237.google.com (mail-vk0-x237.google.com\n\t[IPv6:2607:f8b0:400c:c05::237])\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 3rYfMf6vW7z9t0S\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 21 Jun 2016 17:23:10 +1000 (AEST)",
            "by mail-vk0-x237.google.com with SMTP id c127sf2928293vkb.0\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 21 Jun 2016 00:23:10 -0700 (PDT)",
            "by 10.107.138.35 with SMTP id m35ls2439943iod.79.gmail; Tue, 21 Jun\n\t2016 00:23:08 -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.08\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:08 -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:08 -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.07\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tTue, 21 Jun 2016 00:23:07 -0700 (PDT)"
        ],
        "Authentication-Results": "ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=googlegroups.com header.i=@googlegroups.com\n\theader.b=rrJT4gDP; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com header.b=wDArx2s6;\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=V85pKiSxBjSKHbiYCpapEk/zbow0uslut+/PIfw32rQ=;\n\tb=rrJT4gDPKnzHausqJIAr3Vfu5IhTNHzrSVRPjhCzPZgPa1CnMnPm/+9DKjDr+ag+st\n\tPCuAqTqdCNAZ3lBfYaJw8mjoxBr9O030LhBF2nPn9+MHuQQ4PnlrUAZ6RE9cXd/et1TN\n\tnc7YqD6Jshgkjvimg/c4ZLA8qmdC38XBiYru5aFyouwQUqB8BCdCmMJRvPpYKdIEQRuS\n\tYepMhePuxqf37BpBQxn1GYlKee/dPRY4R6e55uCQJ4gp+ifCvKjL/jdxPiuLM/9PKj4d\n\twkjeMCdhiP73Qa2AfTw3Geo9az1ZgMZmGvsFuF+33WhuNNEUkWyvp8yNFiwqlVbWoqLI\n\tybDA==",
            "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=V85pKiSxBjSKHbiYCpapEk/zbow0uslut+/PIfw32rQ=;\n\tb=wDArx2s66sVWqAsMzd9uk2skBWROeCaedaUyS8I5xIE/ZtOV6yVCYP8DtcMIUu41Qn\n\tLJwPNamzCUH4q+dIGegKtr7qvRcJ/yhE7ZJ8cn3ZzPOzDtobYFY+JxoF1AkSffvyEGqL\n\tDaS7waAVputZ7/Acdy1fcFWvUez9Fbeq81WulYDK2ILBIrRtMc/A2inXLdvTp8+3b+lm\n\tHeMRcvVVGwspqdQmRNtJrNP6/JdBGbyR7aVhzjdg/wzdeHevkLBSpUQzg5bBH01xq0RI\n\tabocQtQNBr3/pB3W9u7J1pK4sPHkdwCf4c6xrVCVwqcnhvbPODDjYmhD7LCyOmtHQ56X\n\tAvpA=="
        ],
        "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=V85pKiSxBjSKHbiYCpapEk/zbow0uslut+/PIfw32rQ=;\n\tb=cNSsgoUuNGT6BWjDY3MlM6t9jVb7Z3Fjk5ATr5g4iWxQE/h71eKoR4/pCN/KM1dyrd\n\txdnuL0qlAOHolMdAgaBUWkKq+glY76qVkOxTuFbWbTHDII0jiwR4h4gBHFHzHsoOonMO\n\tyW0fXEbfJZ8aFlm6AL/gs+FC/PodGFfJgNqJMtRqXmIqrpTgqCBPJ5U9hBKIxzIZfuTl\n\tFBGoM4HoVOwV+iw4/Ct0VuVYoD0FTo8K2filzpjKQ9nwg6o3NC45Cou/4bzETl1k+sv7\n\t2DGrnX4bdR+RKWT+OpWR/EzW0x20mNOwObsLDtGfeLuwKSOmZge+pFjPy/+A6airw3sK\n\tNRNw==",
        "Sender": "rtc-linux@googlegroups.com",
        "X-Gm-Message-State": "ALyK8tL3FahFSDVmzJxaeKE5807K5Vyc7eef/su+0HIvfrl3uTEgdosiCgD/HURh6FmgJQ==",
        "X-Received": [
            "by 10.36.124.143 with SMTP id a137mr32425itd.9.1466493788965;\n\tTue, 21 Jun 2016 00:23:08 -0700 (PDT)",
            "by 10.66.169.172 with SMTP id af12mr25231842pac.7.1466493788710; \n\tTue, 21 Jun 2016 00:23:08 -0700 (PDT)",
            "by 10.98.0.83 with SMTP id 80mr22221580pfa.0.1466493788423;\n\tTue, 21 Jun 2016 00:23:08 -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 11/17] RTC: ds1307: Convert goto to a loop",
        "Date": "Tue, 21 Jun 2016 00:22:44 -0700",
        "Message-Id": "<1466493770-11895-10-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": "Convert goto to a loop and set a hard upper limit on the number of times\ndriver would try to make RTC work (as opposed to having an infinite\nretry loop).\n\nSigned-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>\n---\n drivers/rtc/rtc-ds1307.c | 151 +++++++++++++++++++++++++----------------------\n 1 file changed, 82 insertions(+), 69 deletions(-)",
    "diff": "diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c\nindex 67907f1..cbbe9f0 100644\n--- a/drivers/rtc/rtc-ds1307.c\n+++ b/drivers/rtc/rtc-ds1307.c\n@@ -1424,87 +1424,100 @@ static int ds1307_chip_configure(const struct ds1307 *ds1307)\n \n static int ds1307_chip_sanity_check(const struct ds1307 *ds1307)\n {\n-\tint tmp;\n+\tint tmp, retries;\n \tu8  regs[DS1307_REG_COUNT];\n \tstruct i2c_client *client = ds1307->client;\n \n-read_rtc:\n-\t/* read RTC registers */\n-\ttmp = ds1307->read_block_data(ds1307->client, ds1307->offset, 8, regs);\n-\tif (tmp != 8) {\n-\t\tdev_dbg(&client->dev, \"read error %d\\n\", tmp);\n-\t\treturn -EIO;\n-\t}\n-\n-\t/*\n-\t * minimal sanity checking; some chips (like DS1340) don't\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 = regs[DS1307_REG_SECS];\n-\tswitch (ds1307->type) {\n-\tcase ds_1307:\n-\tcase m41t00:\n-\t\t/* clock halted?  turn it on, so clock can tick. */\n-\t\tif (tmp & DS1307_BIT_CH) {\n-\t\t\ti2c_smbus_write_byte_data(client, DS1307_REG_SECS, 0);\n-\t\t\tdev_warn(&client->dev, \"SET TIME!\\n\");\n-\t\t\tgoto read_rtc;\n-\t\t}\n-\t\tbreak;\n-\tcase ds_1338:\n-\t\t/* clock halted?  turn it on, so clock can tick. */\n-\t\tif (tmp & DS1307_BIT_CH)\n-\t\t\ti2c_smbus_write_byte_data(client, DS1307_REG_SECS, 0);\n-\n-\t\t/* oscillator fault?  clear flag, and warn */\n-\t\tif (regs[DS1307_REG_CONTROL] & DS1338_BIT_OSF) {\n-\t\t\ti2c_smbus_write_byte_data(client, 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(&client->dev, \"SET TIME!\\n\");\n-\t\t\tgoto read_rtc;\n-\t\t}\n-\t\tbreak;\n-\tcase ds_1340:\n-\t\t/* clock halted?  turn it on, so clock can tick. */\n-\t\tif (tmp & DS1340_BIT_nEOSC)\n-\t\t\ti2c_smbus_write_byte_data(client, DS1307_REG_SECS, 0);\n-\n-\t\ttmp = i2c_smbus_read_byte_data(client, DS1340_REG_FLAG);\n-\t\tif (tmp < 0) {\n+\tfor (retries = 0; retries < 5; retries++) {\n+\t\t/* read RTC registers */\n+\t\ttmp = ds1307->read_block_data(ds1307->client,\n+\t\t\t\t\t      ds1307->offset, 8, regs);\n+\t\tif (tmp != 8) {\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 fault?  clear flag, and warn */\n-\t\tif (tmp & DS1340_BIT_OSF) {\n-\t\t\ti2c_smbus_write_byte_data(client, DS1340_REG_FLAG, 0);\n-\t\t\tdev_warn(&client->dev, \"SET TIME!\\n\");\n-\t\t}\n-\t\tbreak;\n-\tcase mcp794xx:\n-\t\t/* make sure that the backup battery is enabled */\n-\t\tif (!(regs[DS1307_REG_WDAY] & MCP794XX_BIT_VBATEN)) {\n-\t\t\ti2c_smbus_write_byte_data(client, DS1307_REG_WDAY,\n-\t\t\t\t\tregs[DS1307_REG_WDAY]\n-\t\t\t\t\t| MCP794XX_BIT_VBATEN);\n-\t\t}\n+\t\t/*\n+\t\t * minimal sanity checking; some chips (like DS1340)\n+\t\t * don't specify the extra bits as must-be-zero, but\n+\t\t * there are still a few values that are clearly\n+\t\t * out-of-range.\n+\t\t */\n+\t\ttmp = regs[DS1307_REG_SECS];\n+\t\tswitch (ds1307->type) {\n+\t\tcase ds_1307:\n+\t\tcase m41t00:\n+\t\t\t/* clock halted?  turn it on, so clock can tick. */\n+\t\t\tif (tmp & DS1307_BIT_CH) {\n+\t\t\t\ti2c_smbus_write_byte_data(client,\n+\t\t\t\t\t\t\t  DS1307_REG_SECS, 0);\n+\t\t\t\tdev_warn(&client->dev, \"SET TIME!\\n\");\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\t\t\tbreak;\n+\t\tcase ds_1338:\n+\t\t\t/* clock halted?  turn it on, so clock can tick. */\n+\t\t\tif (tmp & DS1307_BIT_CH)\n+\t\t\t\ti2c_smbus_write_byte_data(client,\n+\t\t\t\t\t\t\t  DS1307_REG_SECS, 0);\n+\n+\t\t\t/* oscillator fault?  clear flag, and warn */\n+\t\t\tif (regs[DS1307_REG_CONTROL] & DS1338_BIT_OSF) {\n+\t\t\t\ti2c_smbus_write_byte_data(client,\n+\t\t\t\t\t\t\t  DS1307_REG_CONTROL,\n+\t\t\t\t\t\t\t  regs[DS1307_REG_CONTROL]\n+\t\t\t\t\t\t\t  & ~DS1338_BIT_OSF);\n+\t\t\t\tdev_warn(&client->dev, \"SET TIME!\\n\");\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\t\t\tbreak;\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+\t\t\t\ti2c_smbus_write_byte_data(client,\n+\t\t\t\t\t\t\t  DS1307_REG_SECS, 0);\n+\n+\t\t\ttmp = i2c_smbus_read_byte_data(client, DS1340_REG_FLAG);\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 & DS1340_BIT_OSF) {\n+\t\t\t\ti2c_smbus_write_byte_data(client,\n+\t\t\t\t\t\t\t  DS1340_REG_FLAG, 0);\n+\t\t\t\tdev_warn(&client->dev, \"SET TIME!\\n\");\n+\t\t\t}\n+\t\t\treturn 0;\n \n-\t\t/* clock halted?  turn it on, so clock can tick. */\n-\t\tif (!(tmp & MCP794XX_BIT_ST)) {\n-\t\t\ti2c_smbus_write_byte_data(client, DS1307_REG_SECS,\n-\t\t\t\t\tMCP794XX_BIT_ST);\n-\t\t\tdev_warn(&client->dev, \"SET TIME!\\n\");\n-\t\t\tgoto read_rtc;\n+\t\tcase mcp794xx:\n+\t\t\t/* make sure that the backup battery is enabled */\n+\t\t\tif (!(regs[DS1307_REG_WDAY] & MCP794XX_BIT_VBATEN)) {\n+\t\t\t\ti2c_smbus_write_byte_data(client,\n+\t\t\t\t\t\t\t  DS1307_REG_WDAY,\n+\t\t\t\t\t\t\t  regs[DS1307_REG_WDAY]\n+\t\t\t\t\t\t\t  | MCP794XX_BIT_VBATEN);\n+\t\t\t}\n+\n+\t\t\t/* clock halted?  turn it on, so clock can tick. */\n+\t\t\tif (!(tmp & MCP794XX_BIT_ST)) {\n+\t\t\t\ti2c_smbus_write_byte_data(client,\n+\t\t\t\t\t\t\t  DS1307_REG_SECS,\n+\t\t\t\t\t\t\t  MCP794XX_BIT_ST);\n+\t\t\t\tdev_warn(&client->dev, \"SET TIME!\\n\");\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\tbreak;\n \t\t}\n \n-\t\tbreak;\n-\tdefault:\n-\t\tbreak;\n+\t\treturn 0;\n \t}\n \n-\treturn 0;\n+\treturn -EIO;\n }\n \n static int ds1307_probe(struct i2c_client *client,\n",
    "prefixes": [
        "v2",
        "11/17"
    ]
}