get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2218925,
    "url": "http://patchwork.ozlabs.org/api/1.0/patches/2218925/?format=api",
    "project": {
        "id": 9,
        "url": "http://patchwork.ozlabs.org/api/1.0/projects/9/?format=api",
        "name": "Linux RTC development",
        "link_name": "rtc-linux",
        "list_id": "linux-rtc.vger.kernel.org",
        "list_email": "linux-rtc@vger.kernel.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20260402051442.1426672-2-a0282524688@gmail.com>",
    "date": "2026-04-02T05:14:41",
    "name": "[v1,1/2] mfd: nct6694: Switch to devm_mfd_add_devices() and drop IDA",
    "commit_ref": null,
    "pull_url": null,
    "state": "handled-elsewhere",
    "archived": false,
    "hash": "ac4f8c94d2a9dfcc18e0af89a67ed0d03ea59583",
    "submitter": {
        "id": 89578,
        "url": "http://patchwork.ozlabs.org/api/1.0/people/89578/?format=api",
        "name": "Ming Yu",
        "email": "a0282524688@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/rtc-linux/patch/20260402051442.1426672-2-a0282524688@gmail.com/mbox/",
    "series": [
        {
            "id": 498426,
            "url": "http://patchwork.ozlabs.org/api/1.0/series/498426/?format=api",
            "date": "2026-04-02T05:14:41",
            "name": "mfd: nct6694: Refactor transport layer and add HIF (eSPI) support",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498426/mbox/"
        }
    ],
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2218925/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "\n <linux-rtc+bounces-6281-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-rtc@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=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=RssiDcyI;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c09:e001:a7::12fc:5321; helo=sto.lore.kernel.org;\n envelope-from=linux-rtc+bounces-6281-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"RssiDcyI\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.216.50",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=gmail.com"
        ],
        "Received": [
            "from sto.lore.kernel.org (sto.lore.kernel.org\n [IPv6:2600:3c09:e001:a7::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 4fmVT456dtz1yGH\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 16:16:40 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id 11C37307586E\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  2 Apr 2026 05:15:51 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 8DD7A372EEF;\n\tThu,  2 Apr 2026 05:15:40 +0000 (UTC)",
            "from mail-pj1-f50.google.com (mail-pj1-f50.google.com\n [209.85.216.50])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 875AA372EEA\n\tfor <linux-rtc@vger.kernel.org>; Thu,  2 Apr 2026 05:15:38 +0000 (UTC)",
            "by mail-pj1-f50.google.com with SMTP id\n 98e67ed59e1d1-35d9f68d011so262546a91.2\n        for <linux-rtc@vger.kernel.org>; Wed, 01 Apr 2026 22:15:38 -0700 (PDT)",
            "from hcdev-d520mt2.. (60-250-196-139.hinet-ip.hinet.net.\n [60.250.196.139])\n        by smtp.gmail.com with ESMTPSA id\n 98e67ed59e1d1-35dbe93661fsm6902107a91.11.2026.04.01.22.15.34\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Wed, 01 Apr 2026 22:15:37 -0700 (PDT)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775106940; cv=none;\n b=IEqQP5vxc+J25FouCkAGOMsAg7TmmwXZCgXTE9zjrSgUn5KqXtVqxv6Hr09J5PVlO5xhEq8a3lE+Z9Einn8VxceLWBkJYXbsig6FUISlcyRH6qpr0qbFX5yZWiH3IL978+R/rt0BJFECxRffMetwV+ZmsJRqK3odgGNUJN/RUtE=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775106940; c=relaxed/simple;\n\tbh=lbgRgN14X3CUpEJv6dKvS7/nLgyBUL/xeX7e54cB3vs=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t MIME-Version;\n b=t+UZZavSPb1InRo4j32tU8sewXAsqvWCNImg7bxpfO2Lftkqzw8Q3VfHc4kybbDsW97UdBbL0vuaFrqbeIubxu4P3G+fomi2U/PtxxCSKg1NwfOX6M8yULrp6pvLFz21s3koK2we9vDFVAFMiH9KLubvbTGRAlMxb0j2aSdO1hU=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com;\n spf=pass smtp.mailfrom=gmail.com;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=RssiDcyI; arc=none smtp.client-ip=209.85.216.50",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1775106938; x=1775711738;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:mime-version:references:in-reply-to\n         :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=urUQup7dc3mN1NcxY7RoIdIVM9FIVTCa2CM6teh2xWs=;\n        b=RssiDcyIYDWi/EneUGyN80gJd3yyFN0jCmqyYG87SpoPwC8ezAgO0E7bon0Ejb6rqt\n         vIhkND3rYbz8svVlnQYKWp50zY9lBem574aG8fVwIuLItnkEGA4N20OUxUwq/1NovDAz\n         ZfljM+6tbx19w9rO2mLh2xT/O4KppOyXdhnFscVu8WzLYcWuWqf0OCHuUdXajUIDGLCi\n         yeVRdRqH41ncXPLcWPYJv5wLXdYWuUjkrcXgKNauACQeinzTX+E3k/lBjxnuEwxjbSDH\n         +IEm6i4nulNl31VFl4EuTTVIYZmtqCX2oP/HE1tomBoLN2PW+EBOh2uAEavVFfZ7+RmT\n         epKg==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775106938; x=1775711738;\n        h=content-transfer-encoding:mime-version:references:in-reply-to\n         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n         :to:cc:subject:date:message-id:reply-to;\n        bh=urUQup7dc3mN1NcxY7RoIdIVM9FIVTCa2CM6teh2xWs=;\n        b=H0Z4oX2Jf1P5CuQEiQMd+iA58BLvWOg0qZNgnYg0o6wA6+KmxaSRdR1B3IDTBclAxl\n         PMZgcMkOkJZTtNcgLwPeJAh2wBj06z/y8e8jUWdm/ZVqVRVmBPoDsPWTFtUyOCJ6nXHs\n         WaedZzryGgb7MHBra6lUpwJPH3VBrFY/b+97c8XuvOPsNZVeIAAf/YnYptHZ/U0HNP4L\n         uCHK0MdzChE6eNjrUTSNKfg9VrDreownFo3ImtQiEyjUMMGhENlt7hP5C65O1Z545npU\n         OUhJVZz9VX+QMTYjrmcg6kgUuzpb7gaddbSrQlx1bGuKj8hQGWF5UT4V1XfpAssVYsJ2\n         gy1Q==",
        "X-Forwarded-Encrypted": "i=1;\n AJvYcCW7hhXNkJTU8hgfTn2kATNcg4Ls6hyPze9TOg92vB3pH4ZFdnWuQrv91V8gfRDtAi2lGz/2cdXFLiQ=@vger.kernel.org",
        "X-Gm-Message-State": "AOJu0Yx19GnespFnSNPYSAKPrSNMaW7hg6gKInwrKZSZwL+EbHZojRtR\n\tSNUIYR8+u4IhzH6SNhxVy94rOw5ac3H/QKxoo1rUl70TIvujKPpjJwlv",
        "X-Gm-Gg": "AeBDietFKSnO49GKl4zVoZ9tjbQZ2yUtNNBXW0m40Fo0ZgQZj2Zim6gBjjyTmySELZ8\n\tnCr86wgbHBXSJgOYMkOCV0GxSze8X1oJhaJOZVXMPSX5C74kQG7jGRkpZJZ1tj6tCuzKur/FDVx\n\t23rs02rLNw+ubS7i05YfR4Tfx6uiqA43bE94RIWMdqOzxbRpUoxA44EjmRjSRATih6sS9CQcbKP\n\tQDxtfAPiPJ/0KloatvmEoBLsOCZKTtKaRdJTFl6WSjQOpeCYijXILLDWIIFtxXNiBFsx7YDfPfF\n\tUI/GyDcXCsomwSz8lCL2aTRoEpLueVOaBFQAPS30otWSDy+Zo8aXpLmp7uk3Y/8mE28IC9ZAhwI\n\t8LU6NkmbhTscdI1AgGN7qxcl/wJKN1dQZKn0rTEw34Q82sK54GNwJtVMLi58d7NZXV8qKqcgPU0\n\tG/+UnNC28KMe/u0NWhtpmXzeYx7nW9tfYv2c/0zM5/ij0Qggd+tOhXGK/Xm4Bofz5GaA==",
        "X-Received": "by 2002:a17:90b:2ec4:b0:35d:a8d9:3a8 with SMTP id\n 98e67ed59e1d1-35dc6f7ad0bmr5899589a91.16.1775106937985;\n        Wed, 01 Apr 2026 22:15:37 -0700 (PDT)",
        "From": "a0282524688@gmail.com",
        "To": "tmyu0@nuvoton.com,\n\tlinusw@kernel.org,\n\tbrgl@kernel.org,\n\tlinux@roeck-us.net,\n\tandi.shyti@kernel.org,\n\tlee@kernel.org,\n\tmkl@pengutronix.de,\n\tmailhol@kernel.org,\n\talexandre.belloni@bootlin.com,\n\twim@linux-watchdog.org",
        "Cc": "linux-kernel@vger.kernel.org,\n\tlinux-gpio@vger.kernel.org,\n\tlinux-i2c@vger.kernel.org,\n\tlinux-can@vger.kernel.org,\n\tnetdev@vger.kernel.org,\n\tlinux-watchdog@vger.kernel.org,\n\tlinux-hwmon@vger.kernel.org,\n\tlinux-rtc@vger.kernel.org,\n\tlinux-usb@vger.kernel.org,\n\tMing Yu <a0282524688@gmail.com>",
        "Subject": "[PATCH v1 1/2] mfd: nct6694: Switch to devm_mfd_add_devices() and\n drop IDA",
        "Date": "Thu,  2 Apr 2026 13:14:41 +0800",
        "Message-Id": "<20260402051442.1426672-2-a0282524688@gmail.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "In-Reply-To": "<20260402051442.1426672-1-a0282524688@gmail.com>",
        "References": "<20260402051442.1426672-1-a0282524688@gmail.com>",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-rtc@vger.kernel.org",
        "List-Id": "<linux-rtc.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-rtc+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-rtc+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit"
    },
    "content": "From: Ming Yu <a0282524688@gmail.com>\n\nCurrently, the nct6694 core driver uses mfd_add_hotplug_devices()\nand an IDA to manage subdevice IDs.\n\nSwitch the core implementation to use the managed\ndevm_mfd_add_devices() API, which simplifies the error handling and\ndevice lifecycle management. Concurrently, drop the custom IDA\nimplementation and transition to using pdev->id.\n\nSigned-off-by: Ming Yu <a0282524688@gmail.com>\n---\n drivers/gpio/gpio-nct6694.c         | 19 +------\n drivers/i2c/busses/i2c-nct6694.c    | 19 +------\n drivers/mfd/nct6694.c               | 83 ++++++++++++-----------------\n drivers/net/can/usb/nct6694_canfd.c | 12 +----\n drivers/watchdog/nct6694_wdt.c      | 20 +------\n include/linux/mfd/nct6694.h         |  8 +--\n 6 files changed, 43 insertions(+), 118 deletions(-)",
    "diff": "diff --git a/drivers/gpio/gpio-nct6694.c b/drivers/gpio/gpio-nct6694.c\nindex a8607f0d9915..3703a61209e6 100644\n--- a/drivers/gpio/gpio-nct6694.c\n+++ b/drivers/gpio/gpio-nct6694.c\n@@ -7,7 +7,6 @@\n \n #include <linux/bits.h>\n #include <linux/gpio/driver.h>\n-#include <linux/idr.h>\n #include <linux/interrupt.h>\n #include <linux/mfd/nct6694.h>\n #include <linux/module.h>\n@@ -381,14 +380,6 @@ static void nct6694_irq_dispose_mapping(void *d)\n \tirq_dispose_mapping(data->irq);\n }\n \n-static void nct6694_gpio_ida_free(void *d)\n-{\n-\tstruct nct6694_gpio_data *data = d;\n-\tstruct nct6694 *nct6694 = data->nct6694;\n-\n-\tida_free(&nct6694->gpio_ida, data->group);\n-}\n-\n static int nct6694_gpio_probe(struct platform_device *pdev)\n {\n \tstruct device *dev = &pdev->dev;\n@@ -403,15 +394,7 @@ static int nct6694_gpio_probe(struct platform_device *pdev)\n \t\treturn -ENOMEM;\n \n \tdata->nct6694 = nct6694;\n-\n-\tret = ida_alloc(&nct6694->gpio_ida, GFP_KERNEL);\n-\tif (ret < 0)\n-\t\treturn ret;\n-\tdata->group = ret;\n-\n-\tret = devm_add_action_or_reset(dev, nct6694_gpio_ida_free, data);\n-\tif (ret)\n-\t\treturn ret;\n+\tdata->group = pdev->id;\n \n \tnames = devm_kcalloc(dev, NCT6694_NR_GPIO, sizeof(char *),\n \t\t\t     GFP_KERNEL);\ndiff --git a/drivers/i2c/busses/i2c-nct6694.c b/drivers/i2c/busses/i2c-nct6694.c\nindex 1413ab6f9462..7d8ad997f6d2 100644\n--- a/drivers/i2c/busses/i2c-nct6694.c\n+++ b/drivers/i2c/busses/i2c-nct6694.c\n@@ -6,7 +6,6 @@\n  */\n \n #include <linux/i2c.h>\n-#include <linux/idr.h>\n #include <linux/kernel.h>\n #include <linux/mfd/nct6694.h>\n #include <linux/module.h>\n@@ -134,14 +133,6 @@ static int nct6694_i2c_set_baudrate(struct nct6694_i2c_data *data)\n \treturn 0;\n }\n \n-static void nct6694_i2c_ida_free(void *d)\n-{\n-\tstruct nct6694_i2c_data *data = d;\n-\tstruct nct6694 *nct6694 = data->nct6694;\n-\n-\tida_free(&nct6694->i2c_ida, data->port);\n-}\n-\n static int nct6694_i2c_probe(struct platform_device *pdev)\n {\n \tstruct device *dev = &pdev->dev;\n@@ -155,15 +146,7 @@ static int nct6694_i2c_probe(struct platform_device *pdev)\n \n \tdata->dev = dev;\n \tdata->nct6694 = nct6694;\n-\n-\tret = ida_alloc(&nct6694->i2c_ida, GFP_KERNEL);\n-\tif (ret < 0)\n-\t\treturn ret;\n-\tdata->port = ret;\n-\n-\tret = devm_add_action_or_reset(dev, nct6694_i2c_ida_free, data);\n-\tif (ret)\n-\t\treturn ret;\n+\tdata->port = pdev->id;\n \n \tret = nct6694_i2c_set_baudrate(data);\n \tif (ret)\ndiff --git a/drivers/mfd/nct6694.c b/drivers/mfd/nct6694.c\nindex 308b2fda3055..8ce2c4985aab 100644\n--- a/drivers/mfd/nct6694.c\n+++ b/drivers/mfd/nct6694.c\n@@ -11,7 +11,6 @@\n \n #include <linux/bits.h>\n #include <linux/interrupt.h>\n-#include <linux/idr.h>\n #include <linux/irq.h>\n #include <linux/irqdomain.h>\n #include <linux/kernel.h>\n@@ -23,35 +22,35 @@\n #include <linux/usb.h>\n \n static const struct mfd_cell nct6694_devs[] = {\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\tMFD_CELL_NAME(\"nct6694-gpio\"),\n-\n-\tMFD_CELL_NAME(\"nct6694-i2c\"),\n-\tMFD_CELL_NAME(\"nct6694-i2c\"),\n-\tMFD_CELL_NAME(\"nct6694-i2c\"),\n-\tMFD_CELL_NAME(\"nct6694-i2c\"),\n-\tMFD_CELL_NAME(\"nct6694-i2c\"),\n-\tMFD_CELL_NAME(\"nct6694-i2c\"),\n-\n-\tMFD_CELL_NAME(\"nct6694-canfd\"),\n-\tMFD_CELL_NAME(\"nct6694-canfd\"),\n-\n-\tMFD_CELL_NAME(\"nct6694-wdt\"),\n-\tMFD_CELL_NAME(\"nct6694-wdt\"),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 0),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 1),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 2),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 3),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 4),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 5),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 6),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 7),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 8),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 9),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 10),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 11),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 12),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 13),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 14),\n+\tMFD_CELL_BASIC(\"nct6694-gpio\", NULL, NULL, 0, 15),\n+\n+\tMFD_CELL_BASIC(\"nct6694-i2c\", NULL, NULL, 0, 0),\n+\tMFD_CELL_BASIC(\"nct6694-i2c\", NULL, NULL, 0, 1),\n+\tMFD_CELL_BASIC(\"nct6694-i2c\", NULL, NULL, 0, 2),\n+\tMFD_CELL_BASIC(\"nct6694-i2c\", NULL, NULL, 0, 3),\n+\tMFD_CELL_BASIC(\"nct6694-i2c\", NULL, NULL, 0, 4),\n+\tMFD_CELL_BASIC(\"nct6694-i2c\", NULL, NULL, 0, 5),\n+\n+\tMFD_CELL_BASIC(\"nct6694-canfd\", NULL, NULL, 0, 0),\n+\tMFD_CELL_BASIC(\"nct6694-canfd\", NULL, NULL, 0, 1),\n+\n+\tMFD_CELL_BASIC(\"nct6694-wdt\", NULL, NULL, 0, 0),\n+\tMFD_CELL_BASIC(\"nct6694-wdt\", NULL, NULL, 0, 1),\n \n \tMFD_CELL_NAME(\"nct6694-hwmon\"),\n \n@@ -307,23 +306,18 @@ static int nct6694_usb_probe(struct usb_interface *iface,\n \tnct6694->dev = dev;\n \tnct6694->udev = udev;\n \n-\tida_init(&nct6694->gpio_ida);\n-\tida_init(&nct6694->i2c_ida);\n-\tida_init(&nct6694->canfd_ida);\n-\tida_init(&nct6694->wdt_ida);\n-\n \tspin_lock_init(&nct6694->irq_lock);\n \n \tret = devm_mutex_init(dev, &nct6694->access_lock);\n \tif (ret)\n-\t\tgoto err_ida;\n+\t\tgoto err_irq_domain;\n \n \tinterface = iface->cur_altsetting;\n \n \tint_endpoint = &interface->endpoint[0].desc;\n \tif (!usb_endpoint_is_int_in(int_endpoint)) {\n \t\tret = -ENODEV;\n-\t\tgoto err_ida;\n+\t\tgoto err_irq_domain;\n \t}\n \n \tusb_fill_int_urb(nct6694->int_in_urb, udev, usb_rcvintpipe(udev, NCT6694_INT_IN_EP),\n@@ -332,11 +326,11 @@ static int nct6694_usb_probe(struct usb_interface *iface,\n \n \tret = usb_submit_urb(nct6694->int_in_urb, GFP_KERNEL);\n \tif (ret)\n-\t\tgoto err_ida;\n+\t\tgoto err_irq_domain;\n \n \tusb_set_intfdata(iface, nct6694);\n \n-\tret = mfd_add_hotplug_devices(dev, nct6694_devs, ARRAY_SIZE(nct6694_devs));\n+\tret = devm_mfd_add_devices(dev, 0, nct6694_devs, ARRAY_SIZE(nct6694_devs), NULL, 0, NULL);\n \tif (ret)\n \t\tgoto err_mfd;\n \n@@ -344,11 +338,7 @@ static int nct6694_usb_probe(struct usb_interface *iface,\n \n err_mfd:\n \tusb_kill_urb(nct6694->int_in_urb);\n-err_ida:\n-\tida_destroy(&nct6694->wdt_ida);\n-\tida_destroy(&nct6694->canfd_ida);\n-\tida_destroy(&nct6694->i2c_ida);\n-\tida_destroy(&nct6694->gpio_ida);\n+err_irq_domain:\n \tirq_domain_remove(nct6694->domain);\n err_urb:\n \tusb_free_urb(nct6694->int_in_urb);\n@@ -359,12 +349,7 @@ static void nct6694_usb_disconnect(struct usb_interface *iface)\n {\n \tstruct nct6694 *nct6694 = usb_get_intfdata(iface);\n \n-\tmfd_remove_devices(nct6694->dev);\n \tusb_kill_urb(nct6694->int_in_urb);\n-\tida_destroy(&nct6694->wdt_ida);\n-\tida_destroy(&nct6694->canfd_ida);\n-\tida_destroy(&nct6694->i2c_ida);\n-\tida_destroy(&nct6694->gpio_ida);\n \tirq_domain_remove(nct6694->domain);\n \tusb_free_urb(nct6694->int_in_urb);\n }\ndiff --git a/drivers/net/can/usb/nct6694_canfd.c b/drivers/net/can/usb/nct6694_canfd.c\nindex e5f7f8849a73..29282c56430f 100644\n--- a/drivers/net/can/usb/nct6694_canfd.c\n+++ b/drivers/net/can/usb/nct6694_canfd.c\n@@ -8,7 +8,6 @@\n #include <linux/can/dev.h>\n #include <linux/can/rx-offload.h>\n #include <linux/ethtool.h>\n-#include <linux/idr.h>\n #include <linux/irqdomain.h>\n #include <linux/kernel.h>\n #include <linux/mfd/nct6694.h>\n@@ -725,15 +724,13 @@ static int nct6694_canfd_probe(struct platform_device *pdev)\n \tstruct net_device *ndev;\n \tint port, irq, ret, can_clk;\n \n-\tport = ida_alloc(&nct6694->canfd_ida, GFP_KERNEL);\n-\tif (port < 0)\n-\t\treturn port;\n+\tport = pdev->id;\n \n \tirq = irq_create_mapping(nct6694->domain,\n \t\t\t\t NCT6694_IRQ_CAN0 + port);\n \tif (!irq) {\n \t\tret = -EINVAL;\n-\t\tgoto free_ida;\n+\t\treturn ret;\n \t}\n \n \tndev = alloc_candev(sizeof(struct nct6694_canfd_priv), 1);\n@@ -796,24 +793,19 @@ static int nct6694_canfd_probe(struct platform_device *pdev)\n \tfree_candev(ndev);\n dispose_irq:\n \tirq_dispose_mapping(irq);\n-free_ida:\n-\tida_free(&nct6694->canfd_ida, port);\n \treturn ret;\n }\n \n static void nct6694_canfd_remove(struct platform_device *pdev)\n {\n \tstruct nct6694_canfd_priv *priv = platform_get_drvdata(pdev);\n-\tstruct nct6694 *nct6694 = priv->nct6694;\n \tstruct net_device *ndev = priv->ndev;\n-\tint port = ndev->dev_port;\n \tint irq = ndev->irq;\n \n \tunregister_candev(ndev);\n \tcan_rx_offload_del(&priv->offload);\n \tfree_candev(ndev);\n \tirq_dispose_mapping(irq);\n-\tida_free(&nct6694->canfd_ida, port);\n }\n \n static struct platform_driver nct6694_canfd_driver = {\ndiff --git a/drivers/watchdog/nct6694_wdt.c b/drivers/watchdog/nct6694_wdt.c\nindex bc3689bd4b6b..2b4b804a1739 100644\n--- a/drivers/watchdog/nct6694_wdt.c\n+++ b/drivers/watchdog/nct6694_wdt.c\n@@ -5,7 +5,6 @@\n  * Copyright (C) 2025 Nuvoton Technology Corp.\n  */\n \n-#include <linux/idr.h>\n #include <linux/kernel.h>\n #include <linux/mfd/nct6694.h>\n #include <linux/module.h>\n@@ -233,21 +232,12 @@ static const struct watchdog_ops nct6694_wdt_ops = {\n \t.ping = nct6694_wdt_ping,\n };\n \n-static void nct6694_wdt_ida_free(void *d)\n-{\n-\tstruct nct6694_wdt_data *data = d;\n-\tstruct nct6694 *nct6694 = data->nct6694;\n-\n-\tida_free(&nct6694->wdt_ida, data->wdev_idx);\n-}\n-\n static int nct6694_wdt_probe(struct platform_device *pdev)\n {\n \tstruct device *dev = &pdev->dev;\n \tstruct nct6694 *nct6694 = dev_get_drvdata(dev->parent);\n \tstruct nct6694_wdt_data *data;\n \tstruct watchdog_device *wdev;\n-\tint ret;\n \n \tdata = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);\n \tif (!data)\n@@ -260,15 +250,7 @@ static int nct6694_wdt_probe(struct platform_device *pdev)\n \n \tdata->dev = dev;\n \tdata->nct6694 = nct6694;\n-\n-\tret = ida_alloc(&nct6694->wdt_ida, GFP_KERNEL);\n-\tif (ret < 0)\n-\t\treturn ret;\n-\tdata->wdev_idx = ret;\n-\n-\tret = devm_add_action_or_reset(dev, nct6694_wdt_ida_free, data);\n-\tif (ret)\n-\t\treturn ret;\n+\tdata->wdev_idx = pdev->id;\n \n \twdev = &data->wdev;\n \twdev->info = &nct6694_wdt_info;\ndiff --git a/include/linux/mfd/nct6694.h b/include/linux/mfd/nct6694.h\nindex 6eb9be2cd4a0..496da72949d9 100644\n--- a/include/linux/mfd/nct6694.h\n+++ b/include/linux/mfd/nct6694.h\n@@ -8,6 +8,10 @@\n #ifndef __MFD_NCT6694_H\n #define __MFD_NCT6694_H\n \n+#include <linux/mutex.h>\n+#include <linux/spinlock.h>\n+#include <linux/types.h>\n+\n #define NCT6694_VENDOR_ID\t0x0416\n #define NCT6694_PRODUCT_ID\t0x200B\n #define NCT6694_INT_IN_EP\t0x81\n@@ -82,10 +86,6 @@ union __packed nct6694_usb_msg {\n \n struct nct6694 {\n \tstruct device *dev;\n-\tstruct ida gpio_ida;\n-\tstruct ida i2c_ida;\n-\tstruct ida canfd_ida;\n-\tstruct ida wdt_ida;\n \tstruct irq_domain *domain;\n \tstruct mutex access_lock;\n \tspinlock_t irq_lock;\n",
    "prefixes": [
        "v1",
        "1/2"
    ]
}