Show a cover letter.

GET /api/covers/2196663/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2196663,
    "url": "http://patchwork.ozlabs.org/api/covers/2196663/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/cover/20260215225501.6365-1-wsa+renesas@sang-engineering.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": "<20260215225501.6365-1-wsa+renesas@sang-engineering.com>",
    "list_archive_url": null,
    "date": "2026-02-15T22:54:40",
    "name": "[RFC,v2,00/13] hwspinlock: move device alloc into core and refactor includes",
    "submitter": {
        "id": 69646,
        "url": "http://patchwork.ozlabs.org/api/people/69646/?format=api",
        "name": "Wolfram Sang",
        "email": "wsa+renesas@sang-engineering.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/cover/20260215225501.6365-1-wsa+renesas@sang-engineering.com/mbox/",
    "series": [
        {
            "id": 492237,
            "url": "http://patchwork.ozlabs.org/api/series/492237/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=492237",
            "date": "2026-02-15T22:54:40",
            "name": "hwspinlock: move device alloc into core and refactor includes",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/492237/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2196663/comments/",
    "headers": {
        "Return-Path": "\n <linux-gpio+bounces-31694-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 secure) header.d=sang-engineering.com header.i=@sang-engineering.com\n header.a=rsa-sha256 header.s=k1 header.b=Khem6T/L;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-gpio+bounces-31694-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=sang-engineering.com\n header.i=@sang-engineering.com header.b=\"Khem6T/L\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=194.117.254.33",
            "smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=sang-engineering.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=sang-engineering.com"
        ],
        "Received": [
            "from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\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 4fDh7v5TCFz1xtN\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 16 Feb 2026 09:55:23 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id EB809301A722\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 15 Feb 2026 22:55:18 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 579D830BF52;\n\tSun, 15 Feb 2026 22:55:18 +0000 (UTC)",
            "from mail.zeus03.de (zeus03.de [194.117.254.33])\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 E3D7E30B52A\n\tfor <linux-gpio@vger.kernel.org>; Sun, 15 Feb 2026 22:55:14 +0000 (UTC)",
            "(qmail 3011230 invoked from network); 15 Feb 2026 23:55:04 +0100",
            "by mail.zeus03.de with ESMTPSA (TLS_AES_256_GCM_SHA384 encrypted,\n authenticated); 15 Feb 2026 23:55:04 +0100"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1771196118; cv=none;\n b=VXnQXcFG1NoR9pjhyj4b+o/HcWHKTvVEuHJpt8npltEKVItX7sVVlFJJqdomHteR1rnnIR4Pv6P4tA7FUm/9ipq1GGrj9bDeUS1VqDlqJ0jnLs1+56ejX7KXG3xNQkVS6g8OhmdpNathe7+WKaktPhM2p3Jp1xg/dyls4SWkqlA=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1771196118; c=relaxed/simple;\n\tbh=TNyRzSBr/AtNCce67q749OZFUSphAmrWNkHgydf587w=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=pugB8OQTiyO4HNQhVnv4qw314ZAVN9a4y/7FwFLPXPd8NtIelrk1mOzhrSzDma42gEcS71akiQbCOPiCDY9N8TrSYrfbMOAty2CR5pNhcold81mFcdj4BgcyygLplKJtugNLinv95qFpx88x6V46W6QpcwV2FmUmtQGjMKHWx0E=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=none (p=none dis=none) header.from=sang-engineering.com;\n spf=pass smtp.mailfrom=sang-engineering.com;\n dkim=pass (2048-bit key) header.d=sang-engineering.com\n header.i=@sang-engineering.com header.b=Khem6T/L;\n arc=none smtp.client-ip=194.117.254.33",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n\tsang-engineering.com; h=from:to:cc:subject:date:message-id\n\t:mime-version:content-transfer-encoding; s=k1; bh=fjqK1CnmMLnynK\n\tmUkq2NGNXQxQWHiqDXRDV1cxXQMFc=; b=Khem6T/LPXw9DcbGo2IAw6sOzSG6U5\n\tH+3X7IjRDdV59N8cB8IV56DQabVc5sY0EGs7isNQKWgzIcrflS0xfTsyWykrOCIN\n\tuXqpNDup5wRHcdl/ovjJEz4Kph6I3yNxxllxraRzP/cLNeSBfT24ixK4hIpVTbFu\n\tKPhRq0XDDSGz0w/xy9Jv1AYH2A9nrni1JQ2Z+U+GiSqkbGNbWo9dEOvx68PTFusm\n\tBA+a4Gt8A7K2lky5w3aEzE14WxR8ylMT5G5nh+AxRcgKht+aPrFfq2KQigyR28W+\n\tr4SDphAActIw7+YT8hOnwMb1RpfMPbwjCPddRcsyeOy0MBMvVqYD3Zag==",
        "X-UD-Smtp-Session": "l3s3148p1@reycuuRKXIQujns5",
        "From": "Wolfram Sang <wsa+renesas@sang-engineering.com>",
        "To": "linux-renesas-soc@vger.kernel.org",
        "Cc": "Andy Shevchenko <andriy.shevchenko@intel.com>,\n linux-arm-kernel@lists.infradead.org,\n Wolfram Sang <wsa+renesas@sang-engineering.com>,\n Alexandre Torgue <alexandre.torgue@foss.st.com>,\n Andy Shevchenko <andy@kernel.org>,\n Antonio Borneo <antonio.borneo@foss.st.com>, Arnd Bergmann <arnd@arndb.de>,\n Baolin Wang <baolin.wang@linux.alibaba.com>,\n Bjorn Andersson <andersson@kernel.org>, Boqun Feng <boqun@kernel.org>,\n Chen-Yu Tsai <wens@kernel.org>, Chunyan Zhang <zhang.lyra@gmail.com>,\n Danilo Krummrich <dakr@kernel.org>, David Lechner <dlechner@baylibre.com>,\n driver-core@lists.linux.dev, Greg Kroah-Hartman <gregkh@linuxfoundation.org>,\n Ingo Molnar <mingo@redhat.com>, Jernej Skrabec <jernej.skrabec@gmail.com>,\n Jonathan Cameron <jic23@kernel.org>, Jonathan Corbet <corbet@lwn.net>,\n Konrad Dybcio <konradybcio@kernel.org>, Lee Jones <lee@kernel.org>,\n Linus Walleij <linusw@kernel.org>, linux-arm-msm@vger.kernel.org,\n linux-doc@vger.kernel.org, linux-gpio@vger.kernel.org,\n linux-iio@vger.kernel.org, linux-omap@vger.kernel.org,\n linux-remoteproc@vger.kernel.org, linux-spi@vger.kernel.org,\n linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev,\n Mark Brown <broonie@kernel.org>, Maxime Coquelin <mcoquelin.stm32@gmail.com>,\n\t=?utf-8?q?Nuno_S=C3=A1?= <nuno.sa@analog.com>,\n Orson Zhai <orsonzhai@gmail.com>, Peter Zijlstra <peterz@infradead.org>,\n \"Rafael J. Wysocki\" <rafael@kernel.org>,\n Samuel Holland <samuel@sholland.org>, Shuah Khan <skhan@linuxfoundation.org>,\n Srinivas Kandagatla <srini@kernel.org>, Thomas Gleixner <tglx@kernel.org>,\n Waiman Long <longman@redhat.com>,\n Wilken Gottwalt <wilken.gottwalt@posteo.net>, Will Deacon <will@kernel.org>",
        "Subject": "[RFC v2 PATCH 00/13] hwspinlock: move device alloc into core and\n refactor includes",
        "Date": "Sun, 15 Feb 2026 23:54:40 +0100",
        "Message-ID": "<20260215225501.6365-1-wsa+renesas@sang-engineering.com>",
        "X-Mailer": "git-send-email 2.51.0",
        "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",
        "Content-Transfer-Encoding": "8bit"
    },
    "content": "My ultimate goal is to allow hwspinlock provider drivers outside of the\nsubsystem directory. It turned out that a simple split of the headers\nfiles into a public provider and a public consumer header file is not\nenough because core internal structure need to stay hidden. Even more,\ntheir opaqueness could and should even be increased. That would also\nallow the core to handle the de-/allocation of the hwspinlock device\nitself.\n\nThis series does all that. Patches 1-7 abstract access to internal\nstructures away using helpers. Patch 8 then move hwspinlock device\nhandling to the core, simplifying drivers. The remaining patches\nrefactor the headers until the internal one is gone and the public ones\nare divided into provider and consumer parts. More details are given in\nthe patch descriptions.\n\nOne note about using a callback to initialize hwspinlock priv: I also\nexperimented with a dedicated 'set_priv' helper function. It felt a bit\nclumsy to me. Drivers would need to save the 'bank' pointer again and\niterate over it. Because most drivers will only have a simple callback\nanyhow, it looked leaner to me.\n\nThis series is based on the cleanup series \"hwspinlock: remove\nplatform_data from subsystem\" and has been tested on a Renesas\nSparrowHawk board (R-Car V4H) with a yet-to-be-upstreamed hwspinlock\ndriver for the MFIS IP core. A branch can be found here (the MFIS driver\nis still WIP):\n\ngit://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git renesas/hwspinlock/refactor-alloc-buildtest\n\nBuildbots seem to be happy, too.\n\nLooking forward to comments. I especially wonder if the last patch\nshould stay as-is or if it should be broken out, so individual\nsubsystems can pick up their part (with a fallback in place, of course,\nuntil the last user is converted).\n\nHappy hacking,\n\n   Wolfram\n\n\nWolfram Sang (13):\n  hwspinlock: add helpers to retrieve core data\n  hwspinlock: add callback to fill private data of a hwspinlock\n  hwspinlock: omap: use new callback to initialize hwspinlock priv\n  hwspinlock: qcom: use new callback to initialize hwspinlock priv\n  hwspinlock: sprd: use new callback to initialize hwspinlock priv\n  hwspinlock: stm32: use new callback to initialize hwspinlock priv\n  hwspinlock: sun6i: use new callback to initialize hwspinlock priv\n  hwspinlock: handle hwspinlock device allocation in the core\n  hwspinlock: move entries from internal to public header\n  hwspinlock: remove internal header\n  hwspinlock: sort include and update copyright\n  hwspinlock: refactor provider.h from public header\n  hwspinlock: refactor consumer.h from public header\n\n Documentation/locking/hwspinlock.rst          |   2 +-\n MAINTAINERS                                   |   2 +-\n drivers/base/regmap/regmap.c                  |   2 +-\n drivers/hwspinlock/hwspinlock_core.c          | 129 +++++++++++++-----\n drivers/hwspinlock/hwspinlock_internal.h      |  72 ----------\n drivers/hwspinlock/omap_hwspinlock.c          |  29 ++--\n drivers/hwspinlock/qcom_hwspinlock.c          |  69 +++++-----\n drivers/hwspinlock/sprd_hwspinlock.c          |  41 +++---\n drivers/hwspinlock/stm32_hwspinlock.c         |  28 ++--\n drivers/hwspinlock/sun6i_hwspinlock.c         |  38 ++----\n drivers/iio/adc/sc27xx_adc.c                  |   2 +-\n drivers/irqchip/irq-stm32mp-exti.c            |   2 +-\n drivers/mfd/syscon.c                          |   2 +-\n drivers/nvmem/sc27xx-efuse.c                  |   2 +-\n drivers/nvmem/sprd-efuse.c                    |   2 +-\n drivers/pinctrl/stm32/pinctrl-stm32.c         |   2 +-\n drivers/soc/qcom/smem.c                       |   2 +-\n drivers/spi/spi-sprd-adi.c                    |   2 +-\n .../{hwspinlock.h => hwspinlock/consumer.h}   |  29 +---\n include/linux/hwspinlock/provider.h           |  60 ++++++++\n 20 files changed, 268 insertions(+), 249 deletions(-)\n delete mode 100644 drivers/hwspinlock/hwspinlock_internal.h\n rename include/linux/{hwspinlock.h => hwspinlock/consumer.h} (93%)\n create mode 100644 include/linux/hwspinlock/provider.h"
}