get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 1032815,
    "url": "http://patchwork.ozlabs.org/api/patches/1032815/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/20190129150143.12681-28-mika.westerberg@linux.intel.com/",
    "project": {
        "id": 7,
        "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api",
        "name": "Linux network development",
        "link_name": "netdev",
        "list_id": "netdev.vger.kernel.org",
        "list_email": "netdev@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20190129150143.12681-28-mika.westerberg@linux.intel.com>",
    "list_archive_url": null,
    "date": "2019-01-29T15:01:42",
    "name": "[27/28] thunderbolt: Make rest of the logging to happen at debug level",
    "commit_ref": null,
    "pull_url": null,
    "state": "not-applicable",
    "archived": false,
    "hash": "7904fa88aac230026071604e3b5deeb7cb269f29",
    "submitter": {
        "id": 14534,
        "url": "http://patchwork.ozlabs.org/api/people/14534/?format=api",
        "name": "Mika Westerberg",
        "email": "mika.westerberg@linux.intel.com"
    },
    "delegate": {
        "id": 34,
        "url": "http://patchwork.ozlabs.org/api/users/34/?format=api",
        "username": "davem",
        "first_name": "David",
        "last_name": "Miller",
        "email": "davem@davemloft.net"
    },
    "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/20190129150143.12681-28-mika.westerberg@linux.intel.com/mbox/",
    "series": [
        {
            "id": 88859,
            "url": "http://patchwork.ozlabs.org/api/series/88859/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=88859",
            "date": "2019-01-29T15:01:18",
            "name": "thunderbolt: Software connection manager improvements",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/88859/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/1032815/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/1032815/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<netdev-owner@vger.kernel.org>",
        "X-Original-To": "patchwork-incoming-netdev@ozlabs.org",
        "Delivered-To": "patchwork-incoming-netdev@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=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org; dmarc=none (p=none dis=none)\n\theader.from=linux.intel.com"
        ],
        "Received": [
            "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 43pqTm61XXz9sDL\n\tfor <patchwork-incoming-netdev@ozlabs.org>;\n\tWed, 30 Jan 2019 02:02:04 +1100 (AEDT)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1728627AbfA2PCA (ORCPT\n\t<rfc822;patchwork-incoming-netdev@ozlabs.org>);\n\tTue, 29 Jan 2019 10:02:00 -0500",
            "from mga02.intel.com ([134.134.136.20]:34521 \"EHLO mga02.intel.com\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1728414AbfA2PB6 (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tTue, 29 Jan 2019 10:01:58 -0500",
            "from fmsmga004.fm.intel.com ([10.253.24.48])\n\tby orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t29 Jan 2019 07:01:54 -0800",
            "from black.fi.intel.com ([10.237.72.28])\n\tby fmsmga004.fm.intel.com with ESMTP; 29 Jan 2019 07:01:51 -0800",
            "by black.fi.intel.com (Postfix, from userid 1001)\n\tid 73D46D4C; Tue, 29 Jan 2019 17:01:45 +0200 (EET)"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.56,537,1539673200\"; d=\"scan'208\";a=\"139779856\"",
        "From": "Mika Westerberg <mika.westerberg@linux.intel.com>",
        "To": "linux-kernel@vger.kernel.org",
        "Cc": "Michael Jamet <michael.jamet@intel.com>,\n\tYehezkel Bernat <YehezkelShB@gmail.com>,\n\tAndreas Noever <andreas.noever@gmail.com>,\n\tLukas Wunner <lukas@wunner.de>, \"David S . Miller\" <davem@davemloft.net>,\n\tMika Westerberg <mika.westerberg@linux.intel.com>,\n\tAndy Shevchenko <andriy.shevchenko@linux.intel.com>,\n\tnetdev@vger.kernel.org",
        "Subject": "[PATCH 27/28] thunderbolt: Make rest of the logging to happen at\n\tdebug level",
        "Date": "Tue, 29 Jan 2019 18:01:42 +0300",
        "Message-Id": "<20190129150143.12681-28-mika.westerberg@linux.intel.com>",
        "X-Mailer": "git-send-email 2.20.1",
        "In-Reply-To": "<20190129150143.12681-1-mika.westerberg@linux.intel.com>",
        "References": "<20190129150143.12681-1-mika.westerberg@linux.intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Sender": "netdev-owner@vger.kernel.org",
        "Precedence": "bulk",
        "List-ID": "<netdev.vger.kernel.org>",
        "X-Mailing-List": "netdev@vger.kernel.org"
    },
    "content": "Now that the driver can handle every possible tunnel types there is no\npoint to log everything as info level so turn these to happen at debug\nlevel instead.\n\nWhile at it remove duplicated tunnel activation log message\n(tb_tunnel_activate() calls tb_tunnel_restart() which print the same\nmessage).\n\nSigned-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>\n---\n drivers/thunderbolt/ctl.c    |  2 +-\n drivers/thunderbolt/icm.c    |  2 +-\n drivers/thunderbolt/path.c   | 30 +++++++++++++++---------------\n drivers/thunderbolt/switch.c | 19 +++++++++----------\n drivers/thunderbolt/tb.c     | 11 +++++------\n drivers/thunderbolt/tunnel.c | 10 ++++------\n 6 files changed, 35 insertions(+), 39 deletions(-)",
    "diff": "diff --git a/drivers/thunderbolt/ctl.c b/drivers/thunderbolt/ctl.c\nindex 73b386de4d15..2427d73be731 100644\n--- a/drivers/thunderbolt/ctl.c\n+++ b/drivers/thunderbolt/ctl.c\n@@ -720,7 +720,7 @@ int tb_cfg_error(struct tb_ctl *ctl, u64 route, u32 port,\n \t\t.port = port,\n \t\t.error = error,\n \t};\n-\ttb_ctl_info(ctl, \"resetting error on %llx:%x.\\n\", route, port);\n+\ttb_ctl_dbg(ctl, \"resetting error on %llx:%x.\\n\", route, port);\n \treturn tb_ctl_tx(ctl, &pkg, sizeof(pkg), TB_CFG_PKG_ERROR);\n }\n \ndiff --git a/drivers/thunderbolt/icm.c b/drivers/thunderbolt/icm.c\nindex e28a4255d56a..c44906fac2a4 100644\n--- a/drivers/thunderbolt/icm.c\n+++ b/drivers/thunderbolt/icm.c\n@@ -1559,7 +1559,7 @@ static int icm_firmware_start(struct tb *tb, struct tb_nhi *nhi)\n \tif (val & REG_FW_STS_ICM_EN)\n \t\treturn 0;\n \n-\tdev_info(&nhi->pdev->dev, \"starting ICM firmware\\n\");\n+\tdev_dbg(&nhi->pdev->dev, \"starting ICM firmware\\n\");\n \n \tret = icm_firmware_reset(tb, nhi);\n \tif (ret)\ndiff --git a/drivers/thunderbolt/path.c b/drivers/thunderbolt/path.c\nindex afdb667fcc0d..1aefdef403ef 100644\n--- a/drivers/thunderbolt/path.c\n+++ b/drivers/thunderbolt/path.c\n@@ -354,12 +354,12 @@ void tb_path_deactivate(struct tb_path *path)\n \t\ttb_WARN(path->tb, \"trying to deactivate an inactive path\\n\");\n \t\treturn;\n \t}\n-\ttb_info(path->tb,\n-\t\t\"deactivating path from %llx:%x to %llx:%x\\n\",\n-\t\ttb_route(path->hops[0].in_port->sw),\n-\t\tpath->hops[0].in_port->port,\n-\t\ttb_route(path->hops[path->path_length - 1].out_port->sw),\n-\t\tpath->hops[path->path_length - 1].out_port->port);\n+\ttb_dbg(path->tb,\n+\t       \"deactivating path from %llx:%x to %llx:%x\\n\",\n+\t       tb_route(path->hops[0].in_port->sw),\n+\t       path->hops[0].in_port->port,\n+\t       tb_route(path->hops[path->path_length - 1].out_port->sw),\n+\t       path->hops[path->path_length - 1].out_port->port);\n \t__tb_path_deactivate_hops(path, 0);\n \t__tb_path_deallocate_nfc(path, 0);\n \tpath->activated = false;\n@@ -382,12 +382,12 @@ int tb_path_activate(struct tb_path *path)\n \t\treturn -EINVAL;\n \t}\n \n-\ttb_info(path->tb,\n-\t\t\"activating path from %llx:%x to %llx:%x\\n\",\n-\t\ttb_route(path->hops[0].in_port->sw),\n-\t\tpath->hops[0].in_port->port,\n-\t\ttb_route(path->hops[path->path_length - 1].out_port->sw),\n-\t\tpath->hops[path->path_length - 1].out_port->port);\n+\ttb_dbg(path->tb,\n+\t       \"activating path from %llx:%x to %llx:%x\\n\",\n+\t       tb_route(path->hops[0].in_port->sw),\n+\t       path->hops[0].in_port->port,\n+\t       tb_route(path->hops[path->path_length - 1].out_port->sw),\n+\t       path->hops[path->path_length - 1].out_port->port);\n \n \t/* Clear counters. */\n \tfor (i = path->path_length - 1; i >= 0; i--) {\n@@ -438,8 +438,8 @@ int tb_path_activate(struct tb_path *path)\n \t\t\t\t\t    & out_mask;\n \t\thop.unknown3 = 0;\n \n-\t\ttb_port_info(path->hops[i].in_port, \"Writing hop %d, index %d\",\n-\t\t\t     i, path->hops[i].in_hop_index);\n+\t\ttb_port_dbg(path->hops[i].in_port, \"Writing hop %d, index %d\",\n+\t\t\t    i, path->hops[i].in_hop_index);\n \t\ttb_dump_hop(path->hops[i].in_port, &hop);\n \t\tres = tb_port_write(path->hops[i].in_port, &hop, TB_CFG_HOPS,\n \t\t\t\t    2 * path->hops[i].in_hop_index, 2);\n@@ -450,7 +450,7 @@ int tb_path_activate(struct tb_path *path)\n \t\t}\n \t}\n \tpath->activated = true;\n-\ttb_info(path->tb, \"path activation complete\\n\");\n+\ttb_dbg(path->tb, \"path activation complete\\n\");\n \treturn 0;\n err:\n \ttb_WARN(path->tb, \"path activation failed\\n\");\ndiff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c\nindex f5ebe8bcaeb0..af0ec45129c8 100644\n--- a/drivers/thunderbolt/switch.c\n+++ b/drivers/thunderbolt/switch.c\n@@ -500,23 +500,22 @@ int tb_wait_for_port(struct tb_port *port, bool wait_if_unplugged)\n \t\tif (state < 0)\n \t\t\treturn state;\n \t\tif (state == TB_PORT_DISABLED) {\n-\t\t\ttb_port_info(port, \"is disabled (state: 0)\\n\");\n+\t\t\ttb_port_dbg(port, \"is disabled (state: 0)\\n\");\n \t\t\treturn 0;\n \t\t}\n \t\tif (state == TB_PORT_UNPLUGGED) {\n \t\t\tif (wait_if_unplugged) {\n \t\t\t\t/* used during resume */\n-\t\t\t\ttb_port_info(port,\n-\t\t\t\t\t     \"is unplugged (state: 7), retrying...\\n\");\n+\t\t\t\ttb_port_dbg(port,\n+\t\t\t\t\t    \"is unplugged (state: 7), retrying...\\n\");\n \t\t\t\tmsleep(100);\n \t\t\t\tcontinue;\n \t\t\t}\n-\t\t\ttb_port_info(port, \"is unplugged (state: 7)\\n\");\n+\t\t\ttb_port_dbg(port, \"is unplugged (state: 7)\\n\");\n \t\t\treturn 0;\n \t\t}\n \t\tif (state == TB_PORT_UP) {\n-\t\t\ttb_port_info(port,\n-\t\t\t\t     \"is connected, link is up (state: 2)\\n\");\n+\t\t\ttb_port_dbg(port, \"is connected, link is up (state: 2)\\n\");\n \t\t\treturn 1;\n \t\t}\n \n@@ -524,9 +523,9 @@ int tb_wait_for_port(struct tb_port *port, bool wait_if_unplugged)\n \t\t * After plug-in the state is TB_PORT_CONNECTING. Give it some\n \t\t * time.\n \t\t */\n-\t\ttb_port_info(port,\n-\t\t\t     \"is connected, link is not up (state: %d), retrying...\\n\",\n-\t\t\t     state);\n+\t\ttb_port_dbg(port,\n+\t\t\t    \"is connected, link is not up (state: %d), retrying...\\n\",\n+\t\t\t    state);\n \t\tmsleep(100);\n \t}\n \ttb_port_warn(port,\n@@ -592,7 +591,7 @@ int tb_port_set_initial_credits(struct tb_port *port, u32 credits)\n int tb_port_clear_counter(struct tb_port *port, int counter)\n {\n \tu32 zero[3] = { 0, 0, 0 };\n-\ttb_port_info(port, \"clearing counter %d\\n\", counter);\n+\ttb_port_dbg(port, \"clearing counter %d\\n\", counter);\n \treturn tb_port_write(port, zero, TB_CFG_COUNTERS, 3 * counter, 3);\n }\n \ndiff --git a/drivers/thunderbolt/tb.c b/drivers/thunderbolt/tb.c\nindex 645798eb0a77..4e0a5d7f4e64 100644\n--- a/drivers/thunderbolt/tb.c\n+++ b/drivers/thunderbolt/tb.c\n@@ -514,18 +514,17 @@ static void tb_handle_hotplug(struct work_struct *work)\n \t\t} else if (tb_port_is_dpout(port)) {\n \t\t\ttb_teardown_dp(tb, port);\n \t\t} else {\n-\t\t\ttb_port_info(port,\n-\t\t\t\t     \"got unplug event for disconnected port, ignoring\\n\");\n+\t\t\ttb_port_dbg(port,\n+\t\t\t\t   \"got unplug event for disconnected port, ignoring\\n\");\n \t\t}\n \t} else if (port->remote) {\n-\t\ttb_port_info(port,\n-\t\t\t     \"got plug event for connected port, ignoring\\n\");\n+\t\ttb_port_dbg(port, \"got plug event for connected port, ignoring\\n\");\n \t} else {\n \t\tif (tb_port_is_null(port)) {\n-\t\t\ttb_port_info(port, \"hotplug: scanning\\n\");\n+\t\t\ttb_port_dbg(port, \"hotplug: scanning\\n\");\n \t\t\ttb_scan_port(port);\n \t\t\tif (!port->remote)\n-\t\t\t\ttb_port_info(port, \"hotplug: no switch found\\n\");\n+\t\t\t\ttb_port_dbg(port, \"hotplug: no switch found\\n\");\n \t\t} else if (tb_port_is_dpout(port)) {\n \t\t\ttb_tunnel_dp(tb, port);\n \t\t}\ndiff --git a/drivers/thunderbolt/tunnel.c b/drivers/thunderbolt/tunnel.c\nindex fad18e84d475..fae6defc21d1 100644\n--- a/drivers/thunderbolt/tunnel.c\n+++ b/drivers/thunderbolt/tunnel.c\n@@ -47,8 +47,8 @@ static const char * const tb_tunnel_names[] = { \"PCI\", \"DP\", \"DMA\" };\n \t__TB_TUNNEL_PRINT(tb_WARN, tunnel, fmt, ##arg)\n #define tb_tunnel_warn(tunnel, fmt, arg...) \\\n \t__TB_TUNNEL_PRINT(tb_warn, tunnel, fmt, ##arg)\n-#define tb_tunnel_info(tunnel, fmt, arg...) \\\n-\t__TB_TUNNEL_PRINT(tb_info, tunnel, fmt, ##arg)\n+#define tb_tunnel_dbg(tunnel, fmt, arg...) \\\n+\t__TB_TUNNEL_PRINT(tb_dbg, tunnel, fmt, ##arg)\n \n static struct tb_tunnel *tb_tunnel_alloc(struct tb *tb, size_t npaths,\n \t\t\t\t\t enum tb_tunnel_type type)\n@@ -610,7 +610,7 @@ int tb_tunnel_restart(struct tb_tunnel *tunnel)\n {\n \tint res, i;\n \n-\ttb_tunnel_info(tunnel, \"activating\\n\");\n+\ttb_tunnel_dbg(tunnel, \"activating\\n\");\n \n \t/* Make sure all paths are properly disabled before enable them again */\n \tfor (i = 0; i < tunnel->npaths; i++) {\n@@ -650,8 +650,6 @@ int tb_tunnel_activate(struct tb_tunnel *tunnel)\n {\n \tint i;\n \n-\ttb_tunnel_info(tunnel, \"activating\\n\");\n-\n \tfor (i = 0; i < tunnel->npaths; i++) {\n \t\tif (tunnel->paths[i]->activated) {\n \t\t\ttb_tunnel_WARN(tunnel,\n@@ -671,7 +669,7 @@ void tb_tunnel_deactivate(struct tb_tunnel *tunnel)\n {\n \tint i;\n \n-\ttb_tunnel_info(tunnel, \"deactivating\\n\");\n+\ttb_tunnel_dbg(tunnel, \"deactivating\\n\");\n \n \tif (tunnel->activate)\n \t\ttunnel->activate(tunnel, false);\n",
    "prefixes": [
        "27/28"
    ]
}