get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2217321,
    "url": "http://patchwork.ozlabs.org/api/patches/2217321/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260327-pinctrl-mux-v5-4-d4aec9d62c62@nxp.com/",
    "project": {
        "id": 42,
        "url": "http://patchwork.ozlabs.org/api/projects/42/?format=api",
        "name": "Linux GPIO development",
        "link_name": "linux-gpio",
        "list_id": "linux-gpio.vger.kernel.org",
        "list_email": "linux-gpio@vger.kernel.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260327-pinctrl-mux-v5-4-d4aec9d62c62@nxp.com>",
    "list_archive_url": null,
    "date": "2026-03-27T21:34:01",
    "name": "[v5,4/7] pinctrl: add optional .release_mux() callback",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "3b14fd547d8223cef0804f39571ea020b2e18b4c",
    "submitter": {
        "id": 68011,
        "url": "http://patchwork.ozlabs.org/api/people/68011/?format=api",
        "name": "Frank Li",
        "email": "Frank.Li@nxp.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260327-pinctrl-mux-v5-4-d4aec9d62c62@nxp.com/mbox/",
    "series": [
        {
            "id": 497832,
            "url": "http://patchwork.ozlabs.org/api/series/497832/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=497832",
            "date": "2026-03-27T21:33:57",
            "name": "pinctrl: Add generic pinctrl for board-level mux chips",
            "version": 5,
            "mbox": "http://patchwork.ozlabs.org/series/497832/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2217321/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2217321/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-gpio+bounces-34331-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-gpio@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256\n header.s=selector1 header.b=eA39KQav;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-gpio+bounces-34331-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=\"eA39KQav\"",
            "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.65.34",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=nxp.com",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nxp.com;"
        ],
        "Received": [
            "from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fjDWQ612kz1y0D\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 28 Mar 2026 08:37:22 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id E7B7E308544F\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 21:34:43 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id BE49839EF19;\n\tFri, 27 Mar 2026 21:34:31 +0000 (UTC)",
            "from DU2PR03CU002.outbound.protection.outlook.com\n (mail-northeuropeazon11011034.outbound.protection.outlook.com [52.101.65.34])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E0D837A4BE;\n\tFri, 27 Mar 2026 21:34:30 +0000 (UTC)",
            "from PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8)\n by AM9PR04MB8668.eurprd04.prod.outlook.com (2603:10a6:20b:43f::22) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar\n 2026 21:34:28 +0000",
            "from PA4PR04MB9366.eurprd04.prod.outlook.com\n ([fe80::75e4:8143:ddbc:6588]) by PA4PR04MB9366.eurprd04.prod.outlook.com\n ([fe80::75e4:8143:ddbc:6588%6]) with mapi id 15.20.9745.024; Fri, 27 Mar 2026\n 21:34:28 +0000"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774647271; cv=fail;\n b=KDwH3u+WP54sNKHYZ/eOtMGtZhP4ncXnlbLZbGIgjj5STCNSa9lOrK7uTAZ0hjMrELDI6PAmnLQkygZlPSqK3pCzaJUPv5dcpKrmQHtFGQPOxEYEvfPYweoj3NNFKkqxnFfNObTWiKfhmHkXdEsoZX6rrQjyzq7tY1DmQZhpxCo=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=sVGRJQ8Dc6wXTl10RUTmYhj4sTtjq5kOmz8kr41FGP3RV4HU7SeyAB6840lAukgsWwLWPEk9Q5rEZqMylDK1hDET2zmBb0oWh/CPKzkVTxLHm5PMBKSHl8n8RXUuvQXXut7C2a97T1Ed/sMxlzW73x11QMCYORZElmfwDy1+6I8LsuwcV2yhcAYWdf9Z4M3MWhmWr1OGYFuD6BKsfDzA4WTPTktebDdbLgEvhK0EgKbF9FtHB8P/R5f2rm9WLkU9XkDaC7P7PXci4iToCjFlL9p7u9gA3BOORBC2DX+ZF+hzgIID/5KwF8X/dGYMl4QZ1qgDnR1poSRSVBta/L62Aw=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774647271; c=relaxed/simple;\n\tbh=84YFQG/s33y4aWmdQnO4NG1npAXRpP23tH3HW7BHAtc=;\n\th=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To:\n\t To:Cc:MIME-Version;\n b=QbEK3Kfsv1Ec+by/gyjWpwQknBwdZl9l44jV9NHUY4YHrtakWj2JBhYnMx/bhDVAK3nrYusnf8uHXpGVjORxR35KWYoYXBzfkdICHB1ygmlIUZmvGoWbLxHgyV5aKYszoQ8ZNkK5yUULxBWNX5F05k63NUTe/kiFwFsWlumxkMM=",
            "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=EomKscOACz2EiMfHyFMhDh5ukwxhM8VLlPUnGrNoojg=;\n b=sVUf54qVYudwxdMf3R/vMESxqEGe5bpWdycI8fLaOdmlVo1B05khHKO5UCYivKMpwR+JiDSBlZD6wKV3Jyc2QFm4mKFVZ9hNoKq1FBq8gh76Bbzmc2Le9KAtUwBg1bZArWoBICppVZRZawowJuX0vni0dZcIo2fP79go5TnRC4eoETWsWjYSyZ+IcaWXSRQYmJg+bEMbNb/UMt7KvU8dOlZxL0ykJbmjaNAd9lrz3D7rtBkInC145OMevD2UAu4H4v/dAw3RDhx+SIm07CS0F8G8UBDqEUIBIopjpZZylNdRe4LEcyl7DlBuCKlrcu2hkjlE20wnd5VunfU264CFJA=="
        ],
        "ARC-Authentication-Results": [
            "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=nxp.com;\n spf=pass smtp.mailfrom=nxp.com;\n dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com\n header.b=eA39KQav; arc=fail smtp.client-ip=52.101.65.34",
            "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass\n header.d=nxp.com; arc=none"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=EomKscOACz2EiMfHyFMhDh5ukwxhM8VLlPUnGrNoojg=;\n b=eA39KQavVDKv0myPOlo+zIpJ2r/FDz1Fvz86XvVgQRrUnKsuTiJYs+RDeWmOhxIKZGUJ5Iq8Sh1mVpL3DPEv95U70Nsr6muQtvUv3Ay2sVhbdtZlS24j7sAjxoQ27A3YYb5SLVLyLQ/D6slFfN/QQ0UkZwoyhVmPSXbIbp+IS6lX1+1l/hfKOTmVgHpq4bILHF2auLu9i9AvN72Z0/rPXAaAl7v5Etm0H658ZRiWOu9ZGt7qmUK6Ej9KrYIWaKPgq+dPtm/sPDyUb0j/gqOnHkqazGSPVVIYhweuBAqJcF/L8nON3klxiywLaOe4I3XyUfo5irRTR3spz75f3KvrBg==",
        "From": "Frank Li <Frank.Li@nxp.com>",
        "Date": "Fri, 27 Mar 2026 17:34:01 -0400",
        "Subject": "[PATCH v5 4/7] pinctrl: add optional .release_mux() callback",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "7bit",
        "Message-Id": "<20260327-pinctrl-mux-v5-4-d4aec9d62c62@nxp.com>",
        "References": "<20260327-pinctrl-mux-v5-0-d4aec9d62c62@nxp.com>",
        "In-Reply-To": "<20260327-pinctrl-mux-v5-0-d4aec9d62c62@nxp.com>",
        "To": "Peter Rosin <peda@axentia.se>, Linus Walleij <linusw@kernel.org>,\n  Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>,\n  Conor Dooley <conor+dt@kernel.org>,\n =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= <rafal@milecki.pl>,\n  Sascha Hauer <s.hauer@pengutronix.de>,\n  Pengutronix Kernel Team <kernel@pengutronix.de>,\n  Fabio Estevam <festevam@gmail.com>",
        "Cc": "linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,\n devicetree@vger.kernel.org, imx@lists.linux.dev,\n linux-arm-kernel@lists.infradead.org, Haibo Chen <haibo.chen@nxp.com>,\n Frank Li <Frank.Li@nxp.com>",
        "X-Mailer": "b4 0.14.2",
        "X-Developer-Signature": "v=1; a=ed25519-sha256; t=1774647254; l=3409;\n i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id;\n bh=84YFQG/s33y4aWmdQnO4NG1npAXRpP23tH3HW7BHAtc=;\n b=Roh+eHNTlsPrdeEK2+/2kyviVZZq+emGZ9IVm07GP7UQGqkFFV4pRsoJqfTsRyNUjh9zexlv+\n 9K5OIPt0gMNCjIL8uBZWFpxysX3SXz7MQYVaSDTdYqp7Q/2OD1tlGkT",
        "X-Developer-Key": "i=Frank.Li@nxp.com; a=ed25519;\n pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q=",
        "X-ClientProxiedBy": "SA1P222CA0182.NAMP222.PROD.OUTLOOK.COM\n (2603:10b6:806:3c4::20) To PA4PR04MB9366.eurprd04.prod.outlook.com\n (2603:10a6:102:2a9::8)",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-gpio@vger.kernel.org",
        "List-Id": "<linux-gpio.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-gpio+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-gpio+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "PA4PR04MB9366:EE_|AM9PR04MB8668:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "3f730001-f66e-4794-c424-08de8c489fe5",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|366016|19092799006|1800799024|52116014|7416014|376014|38350700014|18002099003|56012099003|22082099003;",
        "X-Microsoft-Antispam-Message-Info": "\n\tzuzcG4ZxFz2pYcsgc1QQQxsI9gXMhUwquTYl9GkMl/usyYfgWt/vpYFBG+CwiaTUMMoKaxa+iEzne2w6prVkAHHJAll1G5cE6Hp+h4YKe6kCkpv3JnLmv/mSK5mEeSyVdpuAoepcQoc6Jgq83babVWKbzbVSPtu0qDBigdtUeFyTHwHsCKjCWmUDIDodIpbzYcSzCvstjCztk3J/tSVRdPSSUipmVvF0w26bGsaeAdhsN62zLb9fUrHaLqIdlKMPbss7GdvOE9KOwK7TJjhAX3sVvrN/+otpq0kUARy2hfOnlhaYgu1TPJ+c8SQwNOuZ5TKdVvIakoGazI9aWQENbc0BXa1VA0mg9oNFn8kNDwYBXqnFiHfkHzFvrpfx8Pr8JBHICODaBfgdwhweduUQKG2BFSIknp15V9xVAmsegJu25/tqc/43gtqa0bJ1ekekScQJtCuQClhXPakzkX7rKbhdvVfVvEvMndjWcaL8PU83ceH3uI3vS52zONZyrco1N1A8nzKDN+zYCdeaVJpdnBsixQEFt4ATxFclSfHeEkqXEb7AA/Vlcm9k6X+dgDHa7o1UHJ4tTnmCAn1X/KKrVpNWWz3DuDT7VnKee6t6aRMBtx3BMJaG1eZ7ikVTwkcSgLxNjyy4tV3VgYX9fi3Xsg9ZC1qOHlSIQACqGi2XcaBN+sRESU19Xtagc7AadZ+cwnuvfA7OsZVtOMzHQfizCi/WG1vn0waNWvlJg7KDjHtdrjlmiVdSljZrPXP/G7I9dC2KHHhUX1mXeylFcx6QFRRKi5qy+6oqbpwgSpYNnHU=",
        "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9366.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(1800799024)(52116014)(7416014)(376014)(38350700014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "=?utf-8?q?Z9+Dpiba9ZJIj4ar5t6IIu/Mqe2Z?=\n\t=?utf-8?q?AjB+DQgkLdjp8WFc4TbV6GZBOHcDhNzfsfLW0BMr6F+Q3g7LUDMwJ3+LY1fif3D8z?=\n\t=?utf-8?q?AJHRnCPUhBW4ctBm/MQsK6CueW7wIQAny0HuBP4QXuiOV2DEpxJoSs+NtIu6xKfML?=\n\t=?utf-8?q?cimnEfJydp6H/dE/vq5ZJlqpTeOWXMlYx/z3cxKW/qGLhHf8/AzSyAo5m1bQGcWOl?=\n\t=?utf-8?q?oglP2N5UfWEcD+Reka14cSxkgmKWKctmEMr9+o75KcJmf4daQMIdCDumr/W+hyVOq?=\n\t=?utf-8?q?lfr7FHxs+JDXzQMd1Xi1yaGxxB+I3tPLM+rBBInGi8lPtLE2LTScfYg86ajuHeD9j?=\n\t=?utf-8?q?8LWpZ7PMEeexBmjcIKWdtK4HSNMPQyhftD9IOkPRFd2EtMUglMjDXg1Zs3TtIrpyx?=\n\t=?utf-8?q?1u4ic5F97r5gXewvIwV8TNtCx5W0QhUEeWoHDcKHKCbiTOMykEqEIlGIv1Qgd8btc?=\n\t=?utf-8?q?Awt1GIKzZ1q7UO0SxlkHXU85Sp88kHXSXtMBFBDfaVSWG6eT9UCW6VfTkBImBMy3G?=\n\t=?utf-8?q?E0v9iaeeL+PUaY07XIey45FomWiB4hBJOyV814oFSmEtW5+itb/dRHimCqq+m3Udi?=\n\t=?utf-8?q?0LhfcrArtBceQXs2ePYxAl+FeHZuXtz93NdYZPIWV1HXSJY/oxPyHmmIom4f4NAtJ?=\n\t=?utf-8?q?gd0qZUk2JlgcA828eNNMEY5gc5xU5NEBenY/tpTQH3TkfrDBGCdw5fY8zwehvyNf6?=\n\t=?utf-8?q?XcTGpR0BBseEyPJIIVUmhAPA3v/t9ziP1D3yYtnuAylM7m9J/nbA5XQ16cqSKsyiq?=\n\t=?utf-8?q?dbCwPeEPY320HtBMFXzaNYNZrtz2yOoQXYTyA/fazZFHOINJu2e/6WYMNiNc6mIcX?=\n\t=?utf-8?q?pnjRKkUh+wLMYCvvzFSxGc4+5hrssD8AzbmnpW5Jmwfew8x3JFSZrXzsw1yeakLnt?=\n\t=?utf-8?q?0P4+JJeJF8CmXtI83IPz8r/AB2kaWvVsXuKBcggVDaBLyTolzPgVApnuCAYe84lHB?=\n\t=?utf-8?q?ajLPTg6Lswn66LVtyY+HucMW+bZVdI38pkBqEOrYpVuJzNkOeBqtzzIBQkn0qHhyl?=\n\t=?utf-8?q?bBkNtmbfhqDpyYFqG4Uba/xWVxYsD+wZOeZZgWHQTZ9fVLmZz+dbmD0nFPgla4kL5?=\n\t=?utf-8?q?R8+q4zLdoBJZegDWQt1vlujS8jRkwBoLR9PXB6Hku33h9gcaiuN3HYh/3u8ltFJF1?=\n\t=?utf-8?q?ajMiCiXW95gtqDM0m2hIVgEjyfCO3VpmfEBjT3pW3sIWQUEajF/KntVACcZ+QOAXB?=\n\t=?utf-8?q?Yddy9mlBOoESLZyi6Vlx89KXXEffYPNJA098wF9iAbPgXubak2CMiLC3XfSuplOeK?=\n\t=?utf-8?q?VkKThoAB6wb4bXjPsWjgZWj5TiMD8HXSs39ECKz5wYx2vrpsqkSPHt3cLsOy4atzU?=\n\t=?utf-8?q?IwVzhAoHslWTpKSpKUyYjvTFrCuKBpS8o5aLXDNNpKBK/jVrxfMRnQaSzbvepEnEc?=\n\t=?utf-8?q?XIwDjmrVnluVJclQwgAzj4vrWixwjCO1HCxwIGTMJtbq302CzoOCx7tiklpJcd27/?=\n\t=?utf-8?q?3kn2ZurjhT249wPkPNEXfjD5sE6KsMp+Npyk3LbFpcmXL9u36NWvh4Zpbyn/jaG0w?=\n\t=?utf-8?q?+aKvqCGqLWLa6ymTd8tOk1roLuLZERzBcCBT8X8JjpzFUGfb3eibLKZq1AglpCfVt?=\n\t=?utf-8?q?KRQ1/3kBbrYWemqWkuIY8uMYuVL74ewjHo0K+/TLQO4cqnrRYwDpUAK6V3b5JfFdB?=\n\t=?utf-8?q?518a2aNXi8?=",
        "X-OriginatorOrg": "nxp.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 3f730001-f66e-4794-c424-08de8c489fe5",
        "X-MS-Exchange-CrossTenant-AuthSource": "PA4PR04MB9366.eurprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Mar 2026 21:34:28.2674\n (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "686ea1d3-bc2b-4c6f-a92c-d99c5c301635",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n tb1mVz2c0qQgGs7kzn/CKn+3MKQRZYwwYr/Xn68EqbDVhSBVw+oYeiCtjj7kPuQGMN7B2TQst8uXEFiN6THkZA==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AM9PR04MB8668"
    },
    "content": "Add an optional .release_mux() callback to struct pinmux_ops.\n\nSome drivers acquire additional resources in .set_mux(), such as software\nlocks. These resources may need to be released when the mux function is no\nlonger active. Introducing a dedicated .release_mux() callback allows\ndrivers to clean up such resources.\n\nThe callback is optional and does not affect existing drivers.\n\nCommit 2243a87d90b42 (\"pinctrl: avoid duplicated calling\nenable_pinmux_setting for a pin\") removed the .disable() callback\nto resolve two issues:\n\n  1. desc->mux_usecount increasing monotonically\n  2. Hardware glitches caused by repeated .disable()/.enable() calls\n\nAdding .release_mux() does not reintroduce those problems. The callback is\nintended only for releasing driver-side resources (e.g. locks) and must not\nmodify hardware registers.\n\nSigned-off-by: Frank Li <Frank.Li@nxp.com>\n---\nchange in v4\n- none\n\nchange in v3\n- Add judgement about 2243a87d90b42 (\"pinctrl: avoid duplicated calling\nenable_pinmux_setting for a pin\") in commit message.\n---\n drivers/pinctrl/pinmux.c       | 5 +++++\n include/linux/pinctrl/pinmux.h | 5 +++++\n 2 files changed, 10 insertions(+)",
    "diff": "diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c\nindex 3a8dd184ba3d670e01a890427e19af59b65eb813..c705bc182266c596c4e6c820f5e3ffcadbbb2838 100644\n--- a/drivers/pinctrl/pinmux.c\n+++ b/drivers/pinctrl/pinmux.c\n@@ -517,6 +517,7 @@ void pinmux_disable_setting(const struct pinctrl_setting *setting)\n {\n \tstruct pinctrl_dev *pctldev = setting->pctldev;\n \tconst struct pinctrl_ops *pctlops = pctldev->desc->pctlops;\n+\tconst struct pinmux_ops *ops = pctldev->desc->pmxops;\n \tint ret = 0;\n \tconst unsigned int *pins = NULL;\n \tunsigned int num_pins = 0;\n@@ -563,6 +564,10 @@ void pinmux_disable_setting(const struct pinctrl_setting *setting)\n \t\t\t\t pins[i], desc->name, gname);\n \t\t}\n \t}\n+\n+\tif (ops->release_mux)\n+\t\tops->release_mux(pctldev, setting->data.mux.func,\n+\t\t\t\t setting->data.mux.group);\n }\n \n #ifdef CONFIG_DEBUG_FS\ndiff --git a/include/linux/pinctrl/pinmux.h b/include/linux/pinctrl/pinmux.h\nindex 094bbe2fd6fd5ea3c5fdf5b6d6d9a7639700b50b..77664937eeb273eef440988c4cf833dbc6f10758 100644\n--- a/include/linux/pinctrl/pinmux.h\n+++ b/include/linux/pinctrl/pinmux.h\n@@ -51,6 +51,8 @@ struct pinctrl_gpio_range;\n  *\tare handled by the pinmux subsystem. The @func_selector selects a\n  *\tcertain function whereas @group_selector selects a certain set of pins\n  *\tto be used. On simple controllers the latter argument may be ignored\n+ * @release_mux: Release software resources acquired by @set_mux. This callback\n+ *\tmust not change hardware state to avoid glitches when switching mux.\n  * @gpio_request_enable: requests and enables GPIO on a certain pin.\n  *\tImplement this only if you can mux every pin individually as GPIO. The\n  *\taffected GPIO range is passed along with an offset(pin number) into that\n@@ -80,6 +82,9 @@ struct pinmux_ops {\n \t\t\t\t  unsigned int selector);\n \tint (*set_mux) (struct pinctrl_dev *pctldev, unsigned int func_selector,\n \t\t\tunsigned int group_selector);\n+\tvoid (*release_mux) (struct pinctrl_dev *pctldev,\n+\t\t\t     unsigned int func_selector,\n+\t\t\t     unsigned int group_selector);\n \tint (*gpio_request_enable) (struct pinctrl_dev *pctldev,\n \t\t\t\t    struct pinctrl_gpio_range *range,\n \t\t\t\t    unsigned int offset);\n",
    "prefixes": [
        "v5",
        "4/7"
    ]
}