get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2219109,
    "url": "http://patchwork.ozlabs.org/api/patches/2219109/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20260402125518.326038-2-acelan.kao@canonical.com/",
    "project": {
        "id": 15,
        "url": "http://patchwork.ozlabs.org/api/projects/15/?format=api",
        "name": "Ubuntu Kernel",
        "link_name": "ubuntu-kernel",
        "list_id": "kernel-team.lists.ubuntu.com",
        "list_email": "kernel-team@lists.ubuntu.com",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260402125518.326038-2-acelan.kao@canonical.com>",
    "list_archive_url": null,
    "date": "2026-04-02T12:55:16",
    "name": "[SRU,R,1/1] UBUNTU: SAUCE: r8169: add quirk for RTL8116af SerDes",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "9b3a31a59cfc7e7de670ef84e662c75cd7d7c8ad",
    "submitter": {
        "id": 2976,
        "url": "http://patchwork.ozlabs.org/api/people/2976/?format=api",
        "name": "AceLan Kao",
        "email": "acelan.kao@canonical.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20260402125518.326038-2-acelan.kao@canonical.com/mbox/",
    "series": [
        {
            "id": 498477,
            "url": "http://patchwork.ozlabs.org/api/series/498477/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/list/?series=498477",
            "date": "2026-04-02T12:55:15",
            "name": "Realtek RTL8116AF SFP option module fails to get connected",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498477/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2219109/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2219109/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<kernel-team-bounces@lists.ubuntu.com>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=VAUlerKZ;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com\n (client-ip=185.125.189.65; helo=lists.ubuntu.com;\n envelope-from=kernel-team-bounces@lists.ubuntu.com;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fmhfg6R10z1yCs\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 23:55:39 +1100 (AEDT)",
            "from localhost ([127.0.0.1] helo=lists.ubuntu.com)\n\tby lists.ubuntu.com with esmtp (Exim 4.86_2)\n\t(envelope-from <kernel-team-bounces@lists.ubuntu.com>)\n\tid 1w8Ha4-0000LJ-0d; Thu, 02 Apr 2026 12:55:28 +0000",
            "from mail-pf1-f176.google.com ([209.85.210.176])\n by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.86_2) (envelope-from <acelan@gmail.com>) id 1w8Ha2-0000Jr-VV\n for kernel-team@lists.ubuntu.com; Thu, 02 Apr 2026 12:55:27 +0000",
            "by mail-pf1-f176.google.com with SMTP id\n d2e1a72fcca58-82a893d289bso397616b3a.0\n for <kernel-team@lists.ubuntu.com>; Thu, 02 Apr 2026 05:55:26 -0700 (PDT)",
            "from localhost (220-135-95-34.hinet-ip.hinet.net. [220.135.95.34])\n by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-82cf9c9cbf6sm3290714b3a.52.2026.04.02.05.55.23\n for <kernel-team@lists.ubuntu.com>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 02 Apr 2026 05:55:23 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775134525; x=1775739325; darn=lists.ubuntu.com;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:sender:from:to:cc:subject:date\n :message-id:reply-to;\n bh=TjUQeaSpkgkTgvhgpNrYx5q8RLJyZ/U2GFoW9RKPMY0=;\n b=VAUlerKZaWIFkZwICLIOfmVLVRzJGtn+Dbifah3v3TqqgiNNvGITyV2ClEhpcKaDVM\n GeZE6CjK+enJiYVsPBWv6TaKFFjkBCOPSdcGGf4zfSvqBYGo4egZOcxE2iw370dhadhC\n sL1Umn4STGx9h9nHEVWy/ufXPiEU9SQNhwyGFJdPfrA2qQ6qt+RX76nJaS33MreSQ6uG\n jBfKE395EZG5gmsUTxST/TzEeQLt5rNd6A1GOQFXOZrUWR5+W+Z6FsyqoFn0hG5HJAXi\n AgyC5CP4UD3lHKxgVrs3dvYZabKHeWPmi5FCGPpJNtNaDXNVA0LUCdSnWkQDHqBOBUr4\n rUlA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775134525; x=1775739325;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:sender:x-gm-gg:x-gm-message-state\n :from:to:cc:subject:date:message-id:reply-to;\n bh=TjUQeaSpkgkTgvhgpNrYx5q8RLJyZ/U2GFoW9RKPMY0=;\n b=dvOT/Z/NRWT/iDLbB84g57rpYRjNzca1vYN2CFXIxnJkopitKXpxKHzxhn5y+X/yv6\n gFaqUKGhKVbTxDROZzYJkwg4al1DWGNOBDtNet5iDDhJTkJ1hC0NZph00zHEOx1hliex\n 17iTGRhLVnFwMWgSk9eSap/lcxSB73Iztu8nWwY7y9RyCEqXl5Ov0uDoc6Q9zjuMvWks\n 6sJuVyYT5p47bd8I40N7JFUFhtdshkq60/rkZwcxFgiU/Bht7T9SgM8HlvIYqHTIgwQs\n hDfHFk8y0CZC6qz+hL4GqtP2pbaWcL23aKhAdN2q/OtjXpHA+zlGrA9ERlwnqRsPBQLB\n 0cGg==",
        "X-Gm-Message-State": "AOJu0YyGKLzZO+LTnx3ROhn0dhbIWvUkm1FzJNwFacCSQ7Im37uS+OP4\n mUnr5GPqY2B/wVAl2XtbQV+sXwagmFpr1ZLXw0EgswQrg5IEAcCvgoHnQudvLYJU",
        "X-Gm-Gg": "ATEYQzzkjKTbwk8O2yXYykZ5XdXEBwPlSC/LWo07C//kHIvSBIjkf9TRyaM6vJOM/ho\n 49wGa577knVoRg1GdU6TsKxeyuPg/C1XdzLoboJOaoobBgij7M5dj4BkPqzRSK7vm6/Aj2rAgWs\n yH/HDwiTkxO6D0qtyWFvi+AJFdPo6/Mz4PlT+2d/hQimveTbB0nIgeruThd/3YlDI3f9K7S6imw\n /mJ0HYlvM7oO8QA7JSHbnpqpDap3nM5AkevU/iuxRXXi+fJ9N+pPu6kN4Fuichas4rdqacj3Bsb\n O2jZTUjMa57I8YSBYdR0Vz+/+OOrGeV5CsP7dhO+sV/hcNedERi8PCdjGtpJH7mAOr3rjkyDFpP\n yV+Cm2+V2hS9DSOFqZ7BGLkxyps8fElAhbB0VEYY5TcjBYnb0VD7eUZQVqU5VBr1KNaozh1ztFU\n 7qUWYaDVRswAUrFLanWCRaIA1oJ+xhEwGfSNss/w+Q0dk7LsNvwi/BJYsvJ7qG",
        "X-Received": "by 2002:a05:6a00:4c98:b0:82c:21df:807a with SMTP id\n d2e1a72fcca58-82cfb901047mr3425447b3a.26.1775134524566;\n Thu, 02 Apr 2026 05:55:24 -0700 (PDT)",
        "From": "AceLan Kao <acelan.kao@canonical.com>",
        "To": "kernel-team@lists.ubuntu.com",
        "Subject": "[SRU][R][PATCH 1/1] UBUNTU: SAUCE: r8169: add quirk for RTL8116af\n SerDes",
        "Date": "Thu,  2 Apr 2026 20:55:16 +0800",
        "Message-ID": "<20260402125518.326038-2-acelan.kao@canonical.com>",
        "X-Mailer": "git-send-email 2.53.0",
        "In-Reply-To": "<20260402125518.326038-1-acelan.kao@canonical.com>",
        "References": "<20260402125518.326038-1-acelan.kao@canonical.com>",
        "MIME-Version": "1.0",
        "Received-SPF": "pass client-ip=209.85.210.176; envelope-from=acelan@gmail.com;\n helo=mail-pf1-f176.google.com",
        "X-BeenThere": "kernel-team@lists.ubuntu.com",
        "X-Mailman-Version": "2.1.20",
        "Precedence": "list",
        "List-Id": "Kernel team discussions <kernel-team.lists.ubuntu.com>",
        "List-Unsubscribe": "<https://lists.ubuntu.com/mailman/options/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=unsubscribe>",
        "List-Archive": "<https://lists.ubuntu.com/archives/kernel-team>",
        "List-Post": "<mailto:kernel-team@lists.ubuntu.com>",
        "List-Help": "<mailto:kernel-team-request@lists.ubuntu.com?subject=help>",
        "List-Subscribe": "<https://lists.ubuntu.com/mailman/listinfo/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "base64",
        "Errors-To": "kernel-team-bounces@lists.ubuntu.com",
        "Sender": "\"kernel-team\" <kernel-team-bounces@lists.ubuntu.com>"
    },
    "content": "From: ChunHao Lin <hau@realtek.com>\n\nBugLink: https://bugs.launchpad.net/bugs/2116144\n\nRTL8116af is a variation of RTL8168fp. It uses SerDes instead of PHY.\nBut SerDes status will not reflect to PHY. So it needs quirk to help\nto reflect SerDes status during PHY read.\n\nSigned-off-by: ChunHao Lin <hau@realtek.com>\n(cherry picked from commit https://lore.kernel.org/lkml/20250711034412.17937-1-hau@realtek.com/)\nSigned-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>\n---\n drivers/net/ethernet/realtek/r8169_main.c | 40 ++++++++++++++++++++++-\n 1 file changed, 39 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c\nindex 449a1a4381083..4f27f2bbb391e 100644\n--- a/drivers/net/ethernet/realtek/r8169_main.c\n+++ b/drivers/net/ethernet/realtek/r8169_main.c\n@@ -1269,6 +1269,34 @@ static int r8168g_mdio_read(struct rtl8169_private *tp, int reg)\n \treturn r8168_phy_ocp_read(tp, tp->ocp_base + reg * 2);\n }\n \n+/* The quirk reflects RTL8116af SerDes status. */\n+static int r8116af_mdio_read_quirk(struct rtl8169_private *tp, int reg)\n+{\n+\tu8 phyStatus = RTL_R8(tp, PHYstatus);\n+\n+\tif (!(phyStatus & LinkStatus))\n+\t\treturn 0;\n+\n+\t/* BMSR */\n+\tif (tp->ocp_base == OCP_STD_PHY_BASE && reg == MII_BMSR)\n+\t\treturn BMSR_ANEGCOMPLETE | BMSR_LSTATUS;\n+\n+\t/* PHYSR */\n+\tif (tp->ocp_base == 0xa430 && reg == 0x12)\n+\t{\tif (phyStatus & _1000bpsF)\n+\t\t\treturn 0x0028;\n+\t\telse if (phyStatus & _100bps)\n+\t\t\treturn 0x0018;\n+\t}\n+\n+\treturn 0;\n+}\n+\n+static int r8116af_mdio_read(struct rtl8169_private *tp, int reg)\n+{\n+\treturn r8168g_mdio_read(tp, reg) | r8116af_mdio_read_quirk(tp, reg);\n+}\n+\n static void mac_mcu_write(struct rtl8169_private *tp, int reg, int value)\n {\n \tif (reg == 0x1f) {\n@@ -1362,6 +1390,13 @@ static int r8168dp_2_mdio_read(struct rtl8169_private *tp, int reg)\n \treturn value;\n }\n \n+static bool rtl_is_8116af(struct rtl8169_private *tp)\n+{\n+\treturn tp->mac_version == RTL_GIGA_MAC_VER_52 &&\n+\t\t(r8168_mac_ocp_read(tp, 0xdc00) & 0x0078) == 0x0030 &&\n+\t\t(r8168_mac_ocp_read(tp, 0xd006) & 0x00ff) == 0x0000;\n+}\n+\n static void rtl_writephy(struct rtl8169_private *tp, int location, int val)\n {\n \tswitch (tp->mac_version) {\n@@ -1385,7 +1420,10 @@ static int rtl_readphy(struct rtl8169_private *tp, int location)\n \tcase RTL_GIGA_MAC_VER_31:\n \t\treturn r8168dp_2_mdio_read(tp, location);\n \tcase RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_LAST:\n-\t\treturn r8168g_mdio_read(tp, location);\n+\t\tif (rtl_is_8116af(tp))\n+\t\t\treturn r8116af_mdio_read(tp, location);\n+\t\telse\n+\t\t\treturn r8168g_mdio_read(tp, location);\n \tdefault:\n \t\treturn r8169_mdio_read(tp, location);\n \t}\n",
    "prefixes": [
        "SRU",
        "R",
        "1/1"
    ]
}