Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2190620/?format=api
{ "id": 2190620, "url": "http://patchwork.ozlabs.org/api/patches/2190620/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260129210159.2279888-3-jonas@kwiboo.se/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260129210159.2279888-3-jonas@kwiboo.se>", "list_archive_url": null, "date": "2026-01-29T21:01:50", "name": "[2/4] net: dwc_eth_qos: Initialize the transmit tail pointer in eqos_start()", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "69d603175d744d0b69470ae97a3e9051a9a85788", "submitter": { "id": 71439, "url": "http://patchwork.ozlabs.org/api/people/71439/?format=api", "name": "Jonas Karlman", "email": "jonas@kwiboo.se" }, "delegate": { "id": 157425, "url": "http://patchwork.ozlabs.org/api/users/157425/?format=api", "username": "jforissier", "first_name": "Jerome", "last_name": "Forissier", "email": "jerome.forissier@linaro.org" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260129210159.2279888-3-jonas@kwiboo.se/mbox/", "series": [ { "id": 490294, "url": "http://patchwork.ozlabs.org/api/series/490294/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=490294", "date": "2026-01-29T21:01:48", "name": "net: dwc_eth_qos: Update tail pointer handling", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/490294/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2190620/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2190620/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=kwiboo.se header.i=@kwiboo.se header.a=rsa-sha256\n header.s=fe-e1b5cab7be header.b=kv+k3R3U;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)", "phobos.denx.de;\n dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se", "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de", "phobos.denx.de;\n\tdkim=pass (2048-bit key;\n secure) header.d=kwiboo.se header.i=@kwiboo.se header.b=\"kv+k3R3U\";\n\tdkim-atps=neutral", "phobos.denx.de; dmarc=pass (p=quarantine dis=none)\n header.from=kwiboo.se", "phobos.denx.de; spf=pass\n smtp.mailfrom=SRS0=d4a6=AD=kwiboo.se=jonas@fe-bounces.kwiboo.se" ], "Received": [ "from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f2BSB5wVSz1xtd\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 30 Jan 2026 08:03:06 +1100 (AEDT)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id BA7D784120;\n\tThu, 29 Jan 2026 22:02:34 +0100 (CET)", "by phobos.denx.de (Postfix, from userid 109)\n id 85B2884105; Thu, 29 Jan 2026 22:02:30 +0100 (CET)", "from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id B912984118\n for <u-boot@lists.denx.de>; Thu, 29 Jan 2026 22:02:25 +0100 (CET)" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED,\n SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;\n h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To:\n Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be;\n t=1769720539; bh=AVMUxlzGjwbyyN8dyC6Rb4uJxlaW/oBHwDLu6vWlh+Q=;\n b=kv+k3R3UX4MC24sIh+vWclOEdxiTwec0ZZqKhgbDJeOlR1aSOHobflsGcA7a6bbIQSXnr1pGu\n D1kbEktueejsiRVWm7tke0ID0VnAPo1p52bQJleU4FLJscNjUeKiW/1PM1nfV7N0wbGEgZ+gcU1\n y8kSKp27Gx+dpG+48Y8dLKUOo6t3lKFHgqYNS3Sn+sWkM53RvLWkWnXGQ6tKQlm3vqbL7n8cSrd\n FXv+Fklod4p2eizdVGilimyYHOApjP7VIavnq1xJh3k4uvxv/saBFTc9bXJ5b3+xApgCM2vTKL1\n nClobMyzCsQ2mkf+yebYaw8lvxX3ursWi8F0uDZvBNpQ==", "X-Forward-Email-ID": "697bcad48bac728cb531c6bb", "X-Forward-Email-Sender": "rfc822; jonas@kwiboo.se, smtp.forwardemail.net,\n 149.28.215.223", "X-Forward-Email-Version": "2.5.4", "X-Forward-Email-Website": "https://forwardemail.net", "X-Complaints-To": "abuse@forwardemail.net", "X-Report-Abuse": "abuse@forwardemail.net", "X-Report-Abuse-To": "abuse@forwardemail.net", "From": "Jonas Karlman <jonas@kwiboo.se>", "To": "Joe Hershberger <joe.hershberger@ni.com>,\n Ramon Fried <rfried.dev@gmail.com>,\n Jerome Forissier <jerome@forissier.org>, Tom Rini <trini@konsulko.com>", "Cc": "u-boot@lists.denx.de,\n\tJonas Karlman <jonas@kwiboo.se>", "Subject": "[PATCH 2/4] net: dwc_eth_qos: Initialize the transmit tail pointer in\n eqos_start()", "Date": "Thu, 29 Jan 2026 21:01:50 +0000", "Message-ID": "<20260129210159.2279888-3-jonas@kwiboo.se>", "X-Mailer": "git-send-email 2.52.0", "In-Reply-To": "<20260129210159.2279888-1-jonas@kwiboo.se>", "References": "<20260129210159.2279888-1-jonas@kwiboo.se>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.39", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>", "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de", "X-Virus-Status": "Clean" }, "content": "The DesignWare Cores Ethernet Quality-of-Service databook state that\ndescriptors up to one location less than the one indicated by the\ndescriptor tail pointer are owned by the DMA. The DMA continues to\nprocess the descriptors until the following condition occurs:\n\n Current Descriptor Pointer == Descriptor Tail Pointer\n\nThe DMA goes into suspend mode when this condition occurs, and updating\nthe tail pointer resume the DMA processing.\n\nConfigure the transmit tail pointer to the first (current) descriptor\npointer so that the tail pointer is a valid address instead of being\ninitialized to NULL when transmit DMA is started.\n\nAlso update the receive tail pointer comment to state that by pointing\nto the last descriptor we are actually implying that all receive\ndescriptors are owned by and can be processed by the DMA.\n\nSigned-off-by: Jonas Karlman <jonas@kwiboo.se>\n---\n drivers/net/dwc_eth_qos.c | 15 ++++++++++-----\n 1 file changed, 10 insertions(+), 5 deletions(-)", "diff": "diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c\nindex 74cdaa27644f..08332210afb4 100644\n--- a/drivers/net/dwc_eth_qos.c\n+++ b/drivers/net/dwc_eth_qos.c\n@@ -1011,12 +1011,17 @@ static int eqos_start(struct udevice *dev)\n \tsetbits_le32(&eqos->mac_regs->configuration,\n \t\t EQOS_MAC_CONFIGURATION_TE | EQOS_MAC_CONFIGURATION_RE);\n \n-\t/* TX tail pointer not written until we need to TX a packet */\n \t/*\n-\t * Point RX tail pointer at last descriptor. Ideally, we'd point at the\n-\t * first descriptor, implying all descriptors were available. However,\n-\t * that's not distinguishable from none of the descriptors being\n-\t * available.\n+\t * Point TX tail pointer at the first descriptor, implying no descriptor\n+\t * are owned by the DMA. We advance the tail pointer when we need to TX\n+\t * a packet in eqos_send().\n+\t */\n+\taddr64 = (ulong)eqos_get_desc(eqos, 0, false);\n+\twritel(lower_32_bits(addr64), &eqos->dma_regs->ch0_txdesc_tail_pointer);\n+\n+\t/*\n+\t * Point RX tail pointer at the last descriptor, implying all\n+\t * descriptors are owned by the DMA.\n \t */\n \taddr64 = (ulong)eqos_get_desc(eqos, EQOS_DESCRIPTORS_RX - 1, true);\n \twritel(lower_32_bits(addr64), &eqos->dma_regs->ch0_rxdesc_tail_pointer);\n", "prefixes": [ "2/4" ] }