get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 807139,
    "url": "http://patchwork.ozlabs.org/api/patches/807139/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-i2c/patch/1504018610-10822-5-git-send-email-ulf.hansson@linaro.org/",
    "project": {
        "id": 35,
        "url": "http://patchwork.ozlabs.org/api/projects/35/?format=api",
        "name": "Linux I2C development",
        "link_name": "linux-i2c",
        "list_id": "linux-i2c.vger.kernel.org",
        "list_email": "linux-i2c@vger.kernel.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<1504018610-10822-5-git-send-email-ulf.hansson@linaro.org>",
    "list_archive_url": null,
    "date": "2017-08-29T14:56:46",
    "name": "[v3,4/8] PM / ACPI: Split code validating need for runtime resume in ->prepare()",
    "commit_ref": null,
    "pull_url": null,
    "state": "not-applicable",
    "archived": false,
    "hash": "ce52de28d33a5907dc7396d4c69bc6ab034aa18a",
    "submitter": {
        "id": 21036,
        "url": "http://patchwork.ozlabs.org/api/people/21036/?format=api",
        "name": "Ulf Hansson",
        "email": "ulf.hansson@linaro.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-i2c/patch/1504018610-10822-5-git-send-email-ulf.hansson@linaro.org/mbox/",
    "series": [
        {
            "id": 387,
            "url": "http://patchwork.ozlabs.org/api/series/387/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-i2c/list/?series=387",
            "date": "2017-08-29T14:56:42",
            "name": "PM / ACPI / i2c: Deploy runtime PM centric path for system sleep",
            "version": 3,
            "mbox": "http://patchwork.ozlabs.org/series/387/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/807139/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/807139/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<linux-i2c-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-i2c-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"AJTTGHek\"; dkim-atps=neutral"
        ],
        "Received": [
            "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xhWvN5Dh0z9t38\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 30 Aug 2017 00:57:20 +1000 (AEST)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1754681AbdH2O5N (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tTue, 29 Aug 2017 10:57:13 -0400",
            "from mail-lf0-f54.google.com ([209.85.215.54]:35488 \"EHLO\n\tmail-lf0-f54.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1754583AbdH2O5I (ORCPT\n\t<rfc822; linux-i2c@vger.kernel.org>); Tue, 29 Aug 2017 10:57:08 -0400",
            "by mail-lf0-f54.google.com with SMTP id k186so14377301lfe.2\n\tfor <linux-i2c@vger.kernel.org>; Tue, 29 Aug 2017 07:57:07 -0700 (PDT)",
            "from localhost.localdomain (h-158-174-22-67.NA.cust.bahnhof.se.\n\t[158.174.22.67]) by smtp.gmail.com with ESMTPSA id\n\ty23sm652454ljd.19.2017.08.29.07.57.05\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tTue, 29 Aug 2017 07:57:06 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=Lg9EEQT3YuyzWd/JOg75Y85U4sVeV31PRz0DxI/aF3w=;\n\tb=AJTTGHekrPYMkim+F9nNl6TaM1vVhP+VaGH0EV/+XkIXeGFZZ5kaw567JrdyVQNW3Y\n\tX9aL0t6bnXx+tLpf9vjSRh6NkkMhpuK98xF3rrgTg4y2CrpfKCmJ9ANwr7KFTYGWbOnT\n\t7UzlVLL+nsELDhMNLztjatNIdrCDzFBBEvpvo=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=Lg9EEQT3YuyzWd/JOg75Y85U4sVeV31PRz0DxI/aF3w=;\n\tb=E1xHWXoYbBg1Fp1Kk1DEIf/e/HGSmYRwBJjZThTFvzISfRV5gcGnmPuAQDyNfaWLfR\n\tEhJVRqy7+48yRsmv5dq52YW5Iz16fce9lzNN4Kr0vfEb4qMHDwH7GrG/J/DVCnLpoWPW\n\tmvNf9O1RPl13gwdaIe7+BEsYIxhKmOmxWqmoCSqOaEQM+uL/hQ7hmTB8xDxFW0ruV2yy\n\tiGcqRiM5RWG8fmHAPwm6k2BIqazjV1FYQaCMKTvtTBd55/ndYJ+b4M1n5mUVKnUQ2AsI\n\tsH1Bt1Ek7b6I0tu2ItTlDmqd7Fhgd7Qc1kaCHS4RlUKEfk4TMrC37cfFmQPbrreHSxi3\n\tu0PA==",
        "X-Gm-Message-State": "AHYfb5gOlPVE8kgNus8U4TIi/bSYKTYzGyWyJ6hp4FIJvhslcttNEMEL\n\tYCklKQmsqB0ufuAz",
        "X-Received": "by 10.25.84.136 with SMTP id b8mr191048lfl.9.1504018627031;\n\tTue, 29 Aug 2017 07:57:07 -0700 (PDT)",
        "From": "Ulf Hansson <ulf.hansson@linaro.org>",
        "To": "Wolfram Sang <wsa@the-dreams.de>,\n\t\"Rafael J . Wysocki\" <rjw@rjwysocki.net>,\n\tLen Brown <lenb@kernel.org>, linux-acpi@vger.kernel.org,\n\tlinux-pm@vger.kernel.org",
        "Cc": "Kevin Hilman <khilman@kernel.org>,\n\tJarkko Nikula <jarkko.nikula@linux.intel.com>,\n\tAndy Shevchenko <andriy.shevchenko@linux.intel.com>,\n\tMika Westerberg <mika.westerberg@linux.intel.com>,\n\tJisheng Zhang <jszhang@marvell.com>,\n\tJohn Stultz <john.stultz@linaro.org>, Guodong Xu <guodong.xu@linaro.org>,\n\tSumit Semwal <sumit.semwal@linaro.org>,\n\tHaojian Zhuang <haojian.zhuang@linaro.org>,\n\tJohannes Stezenbach <js@sig21.net>,\n\tlinux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org,\n\tUlf Hansson <ulf.hansson@linaro.org>",
        "Subject": "[PATCH v3 4/8] PM / ACPI: Split code validating need for runtime\n\tresume in ->prepare()",
        "Date": "Tue, 29 Aug 2017 16:56:46 +0200",
        "Message-Id": "<1504018610-10822-5-git-send-email-ulf.hansson@linaro.org>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1504018610-10822-1-git-send-email-ulf.hansson@linaro.org>",
        "References": "<1504018610-10822-1-git-send-email-ulf.hansson@linaro.org>",
        "Sender": "linux-i2c-owner@vger.kernel.org",
        "Precedence": "bulk",
        "List-ID": "<linux-i2c.vger.kernel.org>",
        "X-Mailing-List": "linux-i2c@vger.kernel.org"
    },
    "content": "Move the code dealing with validation of whether runtime resuming the\ndevice is needed during system suspend.\n\nIn this way it becomes more clear for what circumstances ACPI is prevented\nfrom trying the direct_complete path.\n\nSigned-off-by: Ulf Hansson <ulf.hansson@linaro.org>\n---\n\nChanges in v3:\n\t- None.\n\n---\n drivers/acpi/device_pm.c | 37 ++++++++++++++++++++++++-------------\n 1 file changed, 24 insertions(+), 13 deletions(-)",
    "diff": "diff --git a/drivers/acpi/device_pm.c b/drivers/acpi/device_pm.c\nindex 632f214..5181057 100644\n--- a/drivers/acpi/device_pm.c\n+++ b/drivers/acpi/device_pm.c\n@@ -989,6 +989,27 @@ int acpi_dev_resume_early(struct device *dev)\n }\n EXPORT_SYMBOL_GPL(acpi_dev_resume_early);\n \n+static bool acpi_dev_needs_resume(struct device *dev, struct acpi_device *adev)\n+{\n+\tu32 sys_target = acpi_target_system_state();\n+\tint ret, state;\n+\n+\tif (device_may_wakeup(dev) != !!adev->wakeup.prepare_count)\n+\t\treturn true;\n+\n+\tif (sys_target == ACPI_STATE_S0)\n+\t\treturn false;\n+\n+\tif (adev->power.flags.dsw_present)\n+\t\treturn true;\n+\n+\tret = acpi_dev_pm_get_state(dev, adev, sys_target, NULL, &state);\n+\tif (ret)\n+\t\treturn true;\n+\n+\treturn state != adev->power.state;\n+}\n+\n /**\n  * acpi_subsys_prepare - Prepare device for system transition to a sleep state.\n  * @dev: Device to prepare.\n@@ -996,26 +1017,16 @@ EXPORT_SYMBOL_GPL(acpi_dev_resume_early);\n int acpi_subsys_prepare(struct device *dev)\n {\n \tstruct acpi_device *adev = ACPI_COMPANION(dev);\n-\tu32 sys_target;\n-\tint ret, state;\n+\tint ret;\n \n \tret = pm_generic_prepare(dev);\n \tif (ret < 0)\n \t\treturn ret;\n \n-\tif (!adev || !pm_runtime_suspended(dev)\n-\t    || device_may_wakeup(dev) != !!adev->wakeup.prepare_count)\n-\t\treturn 0;\n-\n-\tsys_target = acpi_target_system_state();\n-\tif (sys_target == ACPI_STATE_S0)\n-\t\treturn 1;\n-\n-\tif (adev->power.flags.dsw_present)\n+\tif (!adev || !pm_runtime_suspended(dev))\n \t\treturn 0;\n \n-\tret = acpi_dev_pm_get_state(dev, adev, sys_target, NULL, &state);\n-\treturn !ret && state == adev->power.state;\n+\treturn !acpi_dev_needs_resume(dev, adev);\n }\n EXPORT_SYMBOL_GPL(acpi_subsys_prepare);\n \n",
    "prefixes": [
        "v3",
        "4/8"
    ]
}