Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217514/?format=api
{ "id": 2217514, "url": "http://patchwork.ozlabs.org/api/patches/2217514/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20260330025400.2010331-3-chris.chiu@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": "<20260330025400.2010331-3-chris.chiu@canonical.com>", "list_archive_url": null, "date": "2026-03-30T02:53:54", "name": "[SRU,R,2/7] ASoC: SDCA: Update counting of SU/GE DAPM routes", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "163fdba2519f4a32a626dba60eb976d4166e5f0c", "submitter": { "id": 81418, "url": "http://patchwork.ozlabs.org/api/people/81418/?format=api", "name": "Chris Chiu", "email": "chris.chiu@canonical.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20260330025400.2010331-3-chris.chiu@canonical.com/mbox/", "series": [ { "id": 497946, "url": "http://patchwork.ozlabs.org/api/series/497946/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ubuntu-kernel/list/?series=497946", "date": "2026-03-30T02:53:52", "name": "Enable audio functions on Dell Huracan/Renegade platforms w/o built-in microphone", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/497946/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217514/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217514/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\" (4096-bit key;\n unprotected) header.d=canonical.com header.i=@canonical.com\n header.a=rsa-sha256 header.s=20251003 header.b=lFuXo8ix;\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 4fkbSb2gPNz1y1q\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 30 Mar 2026 13:54:38 +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 1w72lr-0001M7-7m; Mon, 30 Mar 2026 02:54:31 +0000", "from smtp-relay-internal-1.internal ([10.131.114.114]\n helo=smtp-relay-internal-1.canonical.com)\n by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.86_2) (envelope-from <chris.chiu@canonical.com>)\n id 1w72lo-0001Kg-JA\n for kernel-team@lists.ubuntu.com; Mon, 30 Mar 2026 02:54:28 +0000", "from mail-wm1-f71.google.com (mail-wm1-f71.google.com\n [209.85.128.71])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id 787DC3F154\n for <kernel-team@lists.ubuntu.com>; Mon, 30 Mar 2026 02:54:28 +0000 (UTC)", "by mail-wm1-f71.google.com with SMTP id\n 5b1f17b1804b1-4839fc4cef6so48750555e9.0\n for <kernel-team@lists.ubuntu.com>; Sun, 29 Mar 2026 19:54:28 -0700 (PDT)", "from localhost.localdomain (211-75-139-218.hinet-ip.hinet.net.\n [211.75.139.218]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-48730628efasm242867945e9.5.2026.03.29.19.54.24\n for <kernel-team@lists.ubuntu.com>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sun, 29 Mar 2026 19:54:25 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com;\n s=20251003; t=1774839268;\n bh=XvgnOZ/6xaZwokS5OnI0q2L+43qMs6YIPDlwc3cwGyQ=;\n h=From:To:Subject:Date:Message-ID:In-Reply-To:References:\n MIME-Version;\n b=lFuXo8ixi4wNOde1l2Pn4uD2OLowDBGt2yaof0JGwjDnxToo+6EpMJ/589H13mCAG\n kgnp2uWv2Kv5KsY66ISBmXXA2sWLlrS6w/vAhQpZNbGUdwqnxUWSAmk/l5Bao9F6YE\n mqqum2e4GoDxfLyqD2ufegSupTUhLIrahdHOtAPPPciEdjbDSDf2qKhcVvizkG4e3z\n IRwb7JdSyDsKsRfcyrRy3f5IKsedKUawARcuk1UQ0kIQOc5RgkqflwwcpHrpS54xxb\n MvyWKmgHyzUT3lInhByd3dkcm1FnHj9jJsAfuz/F4F2qbWvnspiNcXGBImPDaLKZAy\n JiPT4H/Q4NOjU9u4gFgKOTRj+NEjMFP3Uhe1xDlkaoHpDrR//RnNHMPgQFlXLuQ7Nh\n k2xY7sLm2Zpgj01eJzUFEGKMaAJn/fEMyw5ZjlRrTKLr6R97zl+hT8mvc1QTKjO4yU\n dxEMc354MgsyeHDg4OXlYHl5F7Cqpz8AfJqcwgRK/mr2I+AYdr7B0/I5iABklt+FSW\n wAxPQt69OK3DAxfkxbCQ1/V2vMHm2ZHDj7M03jVB5RwVk3Ma70UkZoz2/mRgPg7sWp\n FJ+cps/YIC8lizDsiuFjT79tGVPnIO19AD28PrAXExBNVnPSmfax42eZlED+dnoeMg\n M9aYN70iXGnR+zV+BArVIVw0=", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774839268; x=1775444068;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to\n :cc:subject:date:message-id:reply-to;\n bh=XvgnOZ/6xaZwokS5OnI0q2L+43qMs6YIPDlwc3cwGyQ=;\n b=Ye3gizSmZkPWmFHl8qPxZOWWbasLubNObo19mNZcW3X04j3WXqCFZ5J3posqC8ov+S\n Ht/oabYRZd98ok4na+JuFEgbBZ9lPIKMxctYNcw4CB4WtT5ocD5tfB4rBwp6X7EA+VnV\n a+WRSe7MFWkF7QVLARspTLSDUivR/NEwI4R1Znvq6Q7X7yaZkEFbIxxgHo0qREOrkEQk\n vThLhYrQSosLihBfEpSpZ0aCDG112rMpH52/OlDbOgt3T4Iwy08YfoCOWmfkEPkUBEFv\n rCMII1jt4E/3ts3vt4P0XeFj89Z60k2GHDEVlvtmzW12/MRCZ8OmJbULaXTn1iEzsBVY\n 3GKg==", "X-Gm-Message-State": "AOJu0YwqwwGzNkHQTxCzcA1M98hndeYz8GZEEKJ7FuY6hzbMM5BA8X3U\n ojJACZ4fZUOvJa5fYnqqlM4IeJXRI4xo2yPgFEuKNzTMUqRy52uWn7PJHz0REyrhiAaJQzlBRWd\n YmdfZKOAIzu/mWaGShMsoE4AGPzYhnfwQhMkO9LZ8mICoU8OZyRi3bYoj0PMSvlnY5uwNlpGIXf\n Eo3rMayWMQ7yyBfw==", "X-Gm-Gg": "ATEYQzzYWS2EWiLfC+O5d/s0GJqUWAF04a8GSL4FR7sCkwCMCMxx+tt+H4KAu8w+0Ra\n WWcVIA2nJUQcHX7UE5YpxhhduxGAx+ZkaolKRL+I4VfNlUy5KKkFG5aIHmdSClWKu37rVclRcwI\n xDJqhllqdsX0RkXKxp0AoQhQQ4dWkPJE/RybA/PznNuzvWZwuos+OXH/4gB77mUqebIoA99pC+z\n odhEuJY+74qHBa5/5S9pZRmZ8bGkS8adQu23fs9SyG1MaA0QkACmWfQKK4D2VVNzEFwGUjJNJYK\n xy/5H8iAuieEpzH3m9w/iGFrg8dGFxfCfGh12VA1WGO2ps3tkhPrdtkfC4AWlg5LLVewURHnlVk\n p3m0dWW/WL2zIUWVnzspunYYoMJg6iwh4z93+R+dr0x0pj1lgCr+xyFnBYoL7dgBAD7X6LD6MPp\n HX", "X-Received": [ "by 2002:a05:600d:8402:b0:485:3428:774c with SMTP id\n 5b1f17b1804b1-487290b36b5mr111522085e9.4.1774839267658;\n Sun, 29 Mar 2026 19:54:27 -0700 (PDT)", "by 2002:a05:600d:8402:b0:485:3428:774c with SMTP id\n 5b1f17b1804b1-487290b36b5mr111522005e9.4.1774839267174;\n Sun, 29 Mar 2026 19:54:27 -0700 (PDT)" ], "From": "Chris Chiu <chris.chiu@canonical.com>", "To": "kernel-team@lists.ubuntu.com", "Subject": "[SRU][R][PATCH 2/7] ASoC: SDCA: Update counting of SU/GE DAPM routes", "Date": "Mon, 30 Mar 2026 02:53:54 +0000", "Message-ID": "<20260330025400.2010331-3-chris.chiu@canonical.com>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20260330025400.2010331-1-chris.chiu@canonical.com>", "References": "<20260330025400.2010331-1-chris.chiu@canonical.com>", "MIME-Version": "1.0", "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: Charles Keepax <ckeepax@opensource.cirrus.com>\n\nBugLink: https://bugs.launchpad.net/bugs/2143902\n\nDevice Layer Selector Unit's are controlled by a Group Entity control\nrather than by the host directly. For the purposes of the ASoC class\ndriver the number of input routes to the SU is controlled by the number\nof options within the Group Entity Selected Mode Control. ie. One valid\nDAPM route for each valid route defined in the Group Entity.\n\nCurrently the code assumes that a Device Layer SU will have a number of\nroutes equal to the number of potential sources for the SU. ie. it\ncounts the routes using the SU, but then creates the routes using the\nGE. However, this isn't actually true, it is perfectly allowed for the\nGE to only define options for some of the potential sources of the SU.o\nIn such a case the number of routes return will not match those created,\nleading to either an overflow of the routes array or undefined routes to\nbe past to the ASoC core, both of which generally lead to the sound card\nfailing to probe.\n\nUpdate the handling for the counting of routes to count the connected\nroutes on the GE itself and then ignore the source routes on the SU.\nThis makes it match the logic generating the routes and ensuring that\nboth remain in sync.\n\nFixes: 2c8b3a8e6aa8 (\"ASoC: SDCA: Create DAPM widgets and routes from DisCo\")\nReviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>\nSigned-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>\nLink: https://patch.msgid.link/20260225140118.402695-3-ckeepax@opensource.cirrus.com\nSigned-off-by: Mark Brown <broonie@kernel.org>\n(cherry picked from commit 1fb720d33eecdb9a90ee340b3000ba378d49f5ca linux-next)\nSigned-off-by: Chris Chiu <chris.chiu@canonical.com>\n---\n sound/soc/sdca/sdca_asoc.c | 41 +++++++++++++++++++++++++++++++-------\n 1 file changed, 34 insertions(+), 7 deletions(-)", "diff": "diff --git a/sound/soc/sdca/sdca_asoc.c b/sound/soc/sdca/sdca_asoc.c\nindex 65e87de1563b..49cbf38b7adb 100644\n--- a/sound/soc/sdca/sdca_asoc.c\n+++ b/sound/soc/sdca/sdca_asoc.c\n@@ -50,6 +50,25 @@ static bool readonly_control(struct sdca_control *control)\n \treturn control->has_fixed || control->mode == SDCA_ACCESS_MODE_RO;\n }\n \n+static int ge_count_routes(struct sdca_entity *entity)\n+{\n+\tint count = 0;\n+\tint i, j;\n+\n+\tfor (i = 0; i < entity->ge.num_modes; i++) {\n+\t\tstruct sdca_ge_mode *mode = &entity->ge.modes[i];\n+\n+\t\tfor (j = 0; j < mode->num_controls; j++) {\n+\t\t\tstruct sdca_ge_control *affected = &mode->controls[j];\n+\n+\t\t\tif (affected->sel != SDCA_CTL_SU_SELECTOR || affected->val)\n+\t\t\t\tcount++;\n+\t\t}\n+\t}\n+\n+\treturn count;\n+}\n+\n /**\n * sdca_asoc_count_component - count the various component parts\n * @dev: Pointer to the device against which allocations will be done.\n@@ -73,6 +92,7 @@ int sdca_asoc_count_component(struct device *dev, struct sdca_function_data *fun\n \t\t\t int *num_widgets, int *num_routes, int *num_controls,\n \t\t\t int *num_dais)\n {\n+\tstruct sdca_control *control;\n \tint i, j;\n \n \t*num_widgets = function->num_entities - 1;\n@@ -82,6 +102,7 @@ int sdca_asoc_count_component(struct device *dev, struct sdca_function_data *fun\n \n \tfor (i = 0; i < function->num_entities - 1; i++) {\n \t\tstruct sdca_entity *entity = &function->entities[i];\n+\t\tbool skip_primary_routes = false;\n \n \t\t/* Add supply/DAI widget connections */\n \t\tswitch (entity->type) {\n@@ -95,6 +116,17 @@ int sdca_asoc_count_component(struct device *dev, struct sdca_function_data *fun\n \t\tcase SDCA_ENTITY_TYPE_PDE:\n \t\t\t*num_routes += entity->pde.num_managed;\n \t\t\tbreak;\n+\t\tcase SDCA_ENTITY_TYPE_GE:\n+\t\t\t*num_routes += ge_count_routes(entity);\n+\t\t\tskip_primary_routes = true;\n+\t\t\tbreak;\n+\t\tcase SDCA_ENTITY_TYPE_SU:\n+\t\t\tcontrol = sdca_selector_find_control(dev, entity, SDCA_CTL_SU_SELECTOR);\n+\t\t\tif (!control)\n+\t\t\t\treturn -EINVAL;\n+\n+\t\t\tskip_primary_routes = (control->layers == SDCA_ACCESS_LAYER_DEVICE);\n+\t\t\tbreak;\n \t\tdefault:\n \t\t\tbreak;\n \t\t}\n@@ -103,7 +135,8 @@ int sdca_asoc_count_component(struct device *dev, struct sdca_function_data *fun\n \t\t\t(*num_routes)++;\n \n \t\t/* Add primary entity connections from DisCo */\n-\t\t*num_routes += entity->num_sources;\n+\t\tif (!skip_primary_routes)\n+\t\t\t*num_routes += entity->num_sources;\n \n \t\tfor (j = 0; j < entity->num_controls; j++) {\n \t\t\tif (exported_control(entity, &entity->controls[j]))\n@@ -406,7 +439,6 @@ static int entity_parse_su_device(struct device *dev,\n \t\t\t\t struct snd_soc_dapm_route **route)\n {\n \tstruct sdca_control_range *range;\n-\tint num_routes = 0;\n \tint i, j;\n \n \tif (!entity->group) {\n@@ -442,11 +474,6 @@ static int entity_parse_su_device(struct device *dev,\n \t\t\t\treturn -EINVAL;\n \t\t\t}\n \n-\t\t\tif (++num_routes > entity->num_sources) {\n-\t\t\t\tdev_err(dev, \"%s: too many input routes\\n\", entity->label);\n-\t\t\t\treturn -EINVAL;\n-\t\t\t}\n-\n \t\t\tterm = sdca_range_search(range, SDCA_SELECTED_MODE_INDEX,\n \t\t\t\t\t\t mode->val, SDCA_SELECTED_MODE_TERM_TYPE);\n \t\t\tif (!term) {\n", "prefixes": [ "SRU", "R", "2/7" ] }