get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2227976,
    "url": "http://patchwork.ozlabs.org/api/patches/2227976/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260424155646.533334-1-luc.michel@amd.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260424155646.533334-1-luc.michel@amd.com>",
    "list_archive_url": null,
    "date": "2026-04-24T15:56:44",
    "name": "hw/core/register: add register_array_get_owner",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "617d0b437a6ee2172b339123669bb2dacd19184d",
    "submitter": {
        "id": 87387,
        "url": "http://patchwork.ozlabs.org/api/people/87387/?format=api",
        "name": "Luc Michel",
        "email": "luc.michel@amd.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260424155646.533334-1-luc.michel@amd.com/mbox/",
    "series": [
        {
            "id": 501389,
            "url": "http://patchwork.ozlabs.org/api/series/501389/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=501389",
            "date": "2026-04-24T15:56:44",
            "name": "hw/core/register: add register_array_get_owner",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/501389/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2227976/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2227976/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256\n header.s=selector1 header.b=xgY6bbv5;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\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 4g2Hg71Ljjz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 01:58:09 +1000 (AEST)",
            "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wGIuC-0003oG-F0; Fri, 24 Apr 2026 11:57:25 -0400",
            "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <Luc.Michel@amd.com>)\n id 1wGIuA-0003nd-Jo; Fri, 24 Apr 2026 11:57:22 -0400",
            "from\n mail-northcentralusazlp170130007.outbound.protection.outlook.com\n ([2a01:111:f403:c105::7] helo=CH4PR04CU002.outbound.protection.outlook.com)\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <Luc.Michel@amd.com>)\n id 1wGIu7-0003Mq-Lj; Fri, 24 Apr 2026 11:57:22 -0400",
            "from BL1P221CA0043.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:5b5::13)\n by DS2PR12MB9752.namprd12.prod.outlook.com (2603:10b6:8:270::17) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.20; Fri, 24 Apr\n 2026 15:57:12 +0000",
            "from BL02EPF0001A103.namprd05.prod.outlook.com\n (2603:10b6:208:5b5:cafe::c7) by BL1P221CA0043.outlook.office365.com\n (2603:10b6:208:5b5::13) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.22 via Frontend Transport; Fri,\n 24 Apr 2026 15:57:12 +0000",
            "from satlexmb08.amd.com (165.204.84.17) by\n BL02EPF0001A103.mail.protection.outlook.com (10.167.241.133) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9846.18 via Frontend Transport; Fri, 24 Apr 2026 15:57:11 +0000",
            "from SATLEXMB04.amd.com (10.181.40.145) by satlexmb08.amd.com\n (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.2.2562.17; Fri, 24 Apr\n 2026 10:57:10 -0500",
            "from satlexmb08.amd.com (10.181.42.217) by SATLEXMB04.amd.com\n (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Fri, 24 Apr\n 2026 10:57:10 -0500",
            "from XFR-LUMICHEL-L2.xilinx.com (10.180.168.240) by\n satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server id 15.2.2562.17\n via Frontend Transport; Fri, 24 Apr 2026 10:57:09 -0500"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=kQ9TVten3udibLg3U3YPydTp27cfob6Pw9R+xT+bOFbCB0oWhB1lK6IJ9F5FlpxwznSliJfGRvjO4LX05Q5+gOSdXpGSglqFbYyDGox8E1rFZxBvy0E2sOWmgwVan4x/Je/x+J6iPZqfs9kzh4WeZ5+aLUeL8vFFIKkii16ZJx0kF7K2D5AiqELakBmHhOOw/vs/6PcqPO2CRQYX6ecFwaqOdBm3rcXyc3dH/StJDY7PZQ7uGHPgOm0VY4qOXAoupsH3a3tmwpBCMlrlrTXzigzwPEmZ5/QJUKkQT9M+V+ScDQVNjEUwAHvf7piOcsKI3ES7CXbmwo99E9GIHjgiOA==",
        "ARC-Message-Signature": "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=lLyg4SUcbhPf/UgAsp0MRyeOKbr8wXR3qR32euURJAw=;\n b=pG/64umbZOtP1lM2EM2GDJCrm8FG+bxeThBX7gzEJj/bZ7aMvrKK958OC+PksA+AMuEXN3vz5S3o8aa40vIP1TGKXGnqo98e3PGw1AyrajOdTPIGjCiCVTT+in9kCOksJ0S04yRR5d+nrtJ04y0cLD2/d2yf9vavclLxHCYK4UcAt2Dpf8axcD4EOQv6O/EFuWyoABlyzUiqQPnyS7qNAyfIjzZCZE38YwUtoIj2ygZOOUklLyEC9EbD3BJrcUjCiYyrwtHL4FthnFAzXeE7JmVs6VWQcYVFeF4ZVcGDl7dS9RZ//4mtZ/Coq/3u6Mqo0/kxLQUP2T6MV33QIxyikA==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 165.204.84.17) smtp.rcpttodomain=nongnu.org smtp.mailfrom=amd.com; dmarc=pass\n (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com;\n dkim=none (message not signed); arc=none (0)",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=lLyg4SUcbhPf/UgAsp0MRyeOKbr8wXR3qR32euURJAw=;\n b=xgY6bbv5eheKlJ1fTMU11r64vFwlf5D0EaOsg5sgKtiAoMTUO2mi1rWFyAb7VOmcPX4is0NPCdkurMV97Tije46ywlcxP5w2+/ZaXDcvLW35iTJU2D9ahX9QiHfqtPkaZKmE8W4t2UNOdGbFmIZGb/JpRo/WYnrSr2W/BYNl+Wc=",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 165.204.84.17)\n smtp.mailfrom=amd.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=amd.com;",
        "Received-SPF": [
            "Pass (protection.outlook.com: domain of amd.com designates\n 165.204.84.17 as permitted sender) receiver=protection.outlook.com;\n client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C",
            "None (SATLEXMB04.amd.com: luc.michel@amd.com does not designate\n permitted sender hosts)",
            "permerror client-ip=2a01:111:f403:c105::7;\n envelope-from=Luc.Michel@amd.com;\n helo=CH4PR04CU002.outbound.protection.outlook.com"
        ],
        "From": "Luc Michel <luc.michel@amd.com>",
        "To": "<qemu-devel@nongnu.org>",
        "CC": "Luc Michel <luc.michel@amd.com>, Thomas Huth <thuth@redhat.com>,\n \"Peter Maydell\" <peter.maydell@linaro.org>,\n Francisco Iglesias <francisco.iglesias@amd.com>,\n Frederic Konrad <frederic.konrad@amd.com>,\n \"Edgar E . Iglesias\" <edgar.iglesias@amd.com>, =?utf-8?q?Philippe_Mathieu-D?=\n\t=?utf-8?q?aud=C3=A9?= <philmd@linaro.org>,\n \"Alistair Francis\" <alistair@alistair23.me>, <qemu-arm@nongnu.org>",
        "Subject": "[PATCH] hw/core/register: add register_array_get_owner",
        "Date": "Fri, 24 Apr 2026 17:56:44 +0200",
        "Message-ID": "<20260424155646.533334-1-luc.michel@amd.com>",
        "X-Mailer": "git-send-email 2.53.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "BL02EPF0001A103:EE_|DS2PR12MB9752:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "3dee10cd-84b4-4486-2b1e-08dea21a259b",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|1800799024|82310400026|376014|36860700016|13003099007|56012099003|18002099003;",
        "X-Microsoft-Antispam-Message-Info": "\n hFwi0VOatTt17NNsWvm6V6iiwlIGKqlO0dDwqQ4vdRY43uAVAFIQ6SOkArkcWvtkxpN0Bfw5MiOorCqCIePNQY9bzy/JSL/k/mZUzm3Va1QwjR014mue/zaVuQafeR3ahTPFi6iuN9h74vF8L+AfrhgcpLPV1VGdP21UXdCjc9rAl2WRp3EtDZxV6c0uFOG6nSwx/gfA5C8Nq6dW6rEeIWOrPNpnWBLAmcbTRAbZvJQdA2J4UQv0x10Wji6mMK0LhJAGo5cYVXQTzi8CK7kWxl1FlGf8AHDt2cZ2580TyiQW8uMvno0WThXLELZmkbZRH1rLbMvYr5ckggkQStnB7DDI82+16RwQkRIZidLIXTUjvt3V2+TUGeRUnwkc5y0oSX+hXTeIW8rYLNqBcf7Wm3Qwik3NDTgMJW+S8pSwJ/AkzhrarMDScPfNPQEyHoEON528RLJI73BAXQnxPYkgd8jdxcMoUgKwDJqxR9T7bGi7J+Ok3Vs2z/9JrpZQHpTo4rDVhtxbLcKQqm5VGNGbS4TxHpcwYJDV1NNX6mPEMOimEZxSEjSnoJAgYYCYa56He+xD6OG3tL80SW85Yp0d0uo0CiBHKbXy9UiHZ/3l2CSGPEBRuFVcflAUopJg6WaNFiIEDxQAkSvQPS50C0pv9NG/PAT+fCYmhlLURZrKqT2U9L2Ex0AYwIkTqD5kc+PEtUSoB5kSn94VygY6QLsOQg93cFUgaCV5HUCXLdAYRFs=",
        "X-Forefront-Antispam-Report": "CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:satlexmb08.amd.com; PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230040)(1800799024)(82310400026)(376014)(36860700016)(13003099007)(56012099003)(18002099003);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n yPTbFYFPlRZuEcMM9aF8fKlmCDklQ3b5jYBxc8+xw7RYN9rQnfsRTWe0EV1V6CS54kgo8yk+aGK9jyc1cq7Hwvt4ZoWD5Y+z54om0MgLNzhXiejb17oqAKOHVpdOUCVczOTSF0FpI8Up3cLRV6/cpZma3WSD69HLdOZvAnbesLbxcoeA/HOxIkJf6dokhITqeo76yKzKOq3H9mlXbwuSZ+sPz47pgvh3HzFUT1+gPyXEUT2WKo12AD1VkrXOZuNbYtQnnNU6zwqUnvGji+NFOLH6LATfcgaj/QduOhXXyKoGIl1IcBu0IGcwi/k7kvgukq2ucqpwNPAalWKQv7JG8PFlTYa7oT7xytgQC7xptXi6Q4ClJ2GxaD+NmbeHQpMa/gESgI6vJKZs5yWfJzaKxtKu875yw5YJEijI8vZdJ71mFV4WKCg72SMHlyo2Qa9d",
        "X-OriginatorOrg": "amd.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "24 Apr 2026 15:57:11.6595 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 3dee10cd-84b4-4486-2b1e-08dea21a259b",
        "X-MS-Exchange-CrossTenant-Id": "3dd8961f-e488-4e60-8e11-a82d994e183d",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17];\n Helo=[satlexmb08.amd.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n BL02EPF0001A103.namprd05.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DS2PR12MB9752",
        "X-Spam_score_int": "-20",
        "X-Spam_score": "-2.1",
        "X-Spam_bar": "--",
        "X-Spam_report": "(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no",
        "X-Spam_action": "no action",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "qemu development <qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"
    },
    "content": "Add the register_array_get_owner function to the register API. This\nfunction can be used to retrieve the device owning the given\nRegisterInfoArray.\n\nThis was previously done inline by some devices.\n5c6367bc1c8850f74812eeaaf87cff9911be58de modified the way register\nblocks are created and parented to the device. Since this is an\nimplementation detail of the register API, it makes sense to have a\nfunction for this.\n\nUse it in the Versal OSPI and Versal/ZynqMP eFuse models instead of\ntinkering with the API internals.\n\nResolves: https://gitlab.com/qemu-project/qemu/-/work_items/3421\nResolves: https://gitlab.com/qemu-project/qemu/-/work_items/3422\nResolves: https://gitlab.com/qemu-project/qemu/-/work_items/3423\nSigned-off-by: Luc Michel <luc.michel@amd.com>\n---\n include/hw/core/register.h        | 11 +++++++++++\n hw/core/register.c                |  5 +++++\n hw/nvram/xlnx-versal-efuse-ctrl.c |  4 ++--\n hw/nvram/xlnx-zynqmp-efuse.c      |  4 ++--\n hw/ssi/xlnx-versal-ospi.c         | 10 +++-------\n 5 files changed, 23 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/include/hw/core/register.h b/include/hw/core/register.h\nindex 1f265f4ed71..c6f648fe95e 100644\n--- a/include/hw/core/register.h\n+++ b/include/hw/core/register.h\n@@ -207,6 +207,17 @@ RegisterInfoArray *register_init_block64(DeviceState *owner,\n                                          uint64_t *data,\n                                          const MemoryRegionOps *ops,\n                                          bool debug_enabled,\n                                          uint64_t memory_size);\n \n+/**\n+ * register_array_get_owner\n+ *\n+ * Retrieve the device owning the register info array @reg_array.\n+ *\n+ * @reg_array The register info array to retrieve the owner from\n+ *\n+ * Returns: the device owning @reg_array\n+ */\n+DeviceState *register_array_get_owner(const RegisterInfoArray *reg_array);\n+\n #endif\ndiff --git a/hw/core/register.c b/hw/core/register.c\nindex c3f3c936e70..99ca5e17758 100644\n--- a/hw/core/register.c\n+++ b/hw/core/register.c\n@@ -320,10 +320,15 @@ static void register_array_finalize(Object *obj)\n     RegisterInfoArray *r_array = REGISTER_ARRAY(obj);\n \n     g_free(r_array->r);\n }\n \n+DeviceState *register_array_get_owner(const RegisterInfoArray *reg_array)\n+{\n+    return DEVICE(OBJECT(reg_array)->parent);\n+}\n+\n static const TypeInfo register_array_info = {\n     .name  = TYPE_REGISTER_ARRAY,\n     .parent = TYPE_OBJECT,\n     .instance_size = sizeof(RegisterInfoArray),\n     .instance_finalize = register_array_finalize,\ndiff --git a/hw/nvram/xlnx-versal-efuse-ctrl.c b/hw/nvram/xlnx-versal-efuse-ctrl.c\nindex 69acdfa3047..f5d5587cb65 100644\n--- a/hw/nvram/xlnx-versal-efuse-ctrl.c\n+++ b/hw/nvram/xlnx-versal-efuse-ctrl.c\n@@ -617,15 +617,15 @@ static const RegisterAccessInfo efuse_ctrl_regs_info[] = {\n static void efuse_ctrl_reg_write(void *opaque, hwaddr addr,\n                                  uint64_t data, unsigned size)\n {\n     RegisterInfoArray *reg_array = opaque;\n     XlnxVersalEFuseCtrl *s;\n-    Object *dev;\n+    DeviceState *dev;\n \n     assert(reg_array != NULL);\n \n-    dev = reg_array->mem.owner;\n+    dev = register_array_get_owner(reg_array);\n     assert(dev);\n \n     s = XLNX_VERSAL_EFUSE_CTRL(dev);\n \n     if (addr != A_WR_LOCK && s->regs[R_WR_LOCK]) {\ndiff --git a/hw/nvram/xlnx-zynqmp-efuse.c b/hw/nvram/xlnx-zynqmp-efuse.c\nindex e6bc54fc6bd..028120f824d 100644\n--- a/hw/nvram/xlnx-zynqmp-efuse.c\n+++ b/hw/nvram/xlnx-zynqmp-efuse.c\n@@ -722,15 +722,15 @@ static RegisterAccessInfo zynqmp_efuse_regs_info[] = {\n static void zynqmp_efuse_reg_write(void *opaque, hwaddr addr,\n                                    uint64_t data, unsigned size)\n {\n     RegisterInfoArray *reg_array = opaque;\n     XlnxZynqMPEFuse *s;\n-    Object *dev;\n+    DeviceState *dev;\n \n     assert(reg_array != NULL);\n \n-    dev = reg_array->mem.owner;\n+    dev = register_array_get_owner(reg_array);\n     assert(dev);\n \n     s = XLNX_ZYNQMP_EFUSE(dev);\n \n     if (addr != A_WR_LOCK && s->regs[R_WR_LOCK]) {\ndiff --git a/hw/ssi/xlnx-versal-ospi.c b/hw/ssi/xlnx-versal-ospi.c\nindex 467f0ce7033..e25e4c26c2e 100644\n--- a/hw/ssi/xlnx-versal-ospi.c\n+++ b/hw/ssi/xlnx-versal-ospi.c\n@@ -1567,19 +1567,15 @@ static RegisterAccessInfo ospi_regs_info[] = {\n         .ro = 0xffffffff,\n     }\n };\n \n /* Return dev-obj from reg-region created by register_init_block32 */\n-static XlnxVersalOspi *xilinx_ospi_of_mr(void *mr_accessor)\n+static XlnxVersalOspi *xilinx_ospi_of_mr(void *opaque)\n {\n-    RegisterInfoArray *reg_array = mr_accessor;\n-    Object *dev;\n+    RegisterInfoArray *reg_array = REGISTER_ARRAY(opaque);\n \n-    dev = reg_array->mem.owner;\n-    assert(dev);\n-\n-    return XILINX_VERSAL_OSPI(dev);\n+    return XILINX_VERSAL_OSPI(register_array_get_owner(reg_array));\n }\n \n static void ospi_write(void *opaque, hwaddr addr, uint64_t value,\n         unsigned int size)\n {\n",
    "prefixes": []
}