get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2217224,
    "url": "http://patchwork.ozlabs.org/api/patches/2217224/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260327184706.1600329-13-vladimir.oltean@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": "<20260327184706.1600329-13-vladimir.oltean@nxp.com>",
    "list_archive_url": null,
    "date": "2026-03-27T18:46:50",
    "name": "[v6,phy-next,12/28] drm/rockchip: dw_hdmi: avoid direct dereference of phy->dev.of_node",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "03e709137918fd26fd526a537052af572e972917",
    "submitter": {
        "id": 75582,
        "url": "http://patchwork.ozlabs.org/api/people/75582/?format=api",
        "name": "Vladimir Oltean",
        "email": "vladimir.oltean@nxp.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/patch/20260327184706.1600329-13-vladimir.oltean@nxp.com/mbox/",
    "series": [
        {
            "id": 497821,
            "url": "http://patchwork.ozlabs.org/api/series/497821/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=497821",
            "date": "2026-03-27T18:46:39",
            "name": "Split Generic PHY consumer and provider",
            "version": 6,
            "mbox": "http://patchwork.ozlabs.org/series/497821/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2217224/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2217224/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-gpio+bounces-34307-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=nhvxVNe4;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-gpio+bounces-34307-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=\"nhvxVNe4\"",
            "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.83.36",
            "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 [172.105.105.114])\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 4fj8zL3pK9z1yFr\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 28 Mar 2026 05:57:50 +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 D6A8F315BB14\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 18:52:26 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 361D72D839B;\n\tFri, 27 Mar 2026 18:49:07 +0000 (UTC)",
            "from GVXPR05CU001.outbound.protection.outlook.com\n (mail-swedencentralazon11013036.outbound.protection.outlook.com\n [52.101.83.36])\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 3C2FE393DFD;\n\tFri, 27 Mar 2026 18:49:05 +0000 (UTC)",
            "from DU2PR04MB8584.eurprd04.prod.outlook.com (2603:10a6:10:2db::24)\n by MRWPR04MB11287.eurprd04.prod.outlook.com (2603:10a6:501:79::20) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.22; Fri, 27 Mar\n 2026 18:48:59 +0000",
            "from DU2PR04MB8584.eurprd04.prod.outlook.com\n ([fe80::3f9d:4a01:f53c:952d]) by DU2PR04MB8584.eurprd04.prod.outlook.com\n ([fe80::3f9d:4a01:f53c:952d%5]) with mapi id 15.20.9745.019; Fri, 27 Mar 2026\n 18:48:59 +0000"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774637346; cv=fail;\n b=Z4chlFldZmCMcOf6V3V+Rxbn864BJxoH9svDK+P+6fwc0Xh0xtdYkl0RzkhFOUhnGc+DH0XPO9Khw81lFP9uNiTZda4DecefUeoCfhTkZ6cdVZ0dRae2f6UHILucxWkU3sdLzJEO/k/0d+oNwdCOJ/IJZ7J3MnNWiM+9DV6bn7I=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=gEHx6I07Xl9TbMFm+HJTb3unqA432EjutWxDi08/gxZiMT9iXSJMFwEHS1ETY/xIgUMsrPVCczMMTfQouSLCptv7MS+giZ5dDZFKetI/di4Uehi9YJax1X9Vqs6YE3NOV7dR+Xvh40Wz85AhhjLPdLgAvkfb3YuS+J2hjUSpdeDr/r3S8TF1u2u1CtlUcRhkqxyqQkMxKdcETQWDXBuOxiQnQscdIdmVc4It7uNioCYJeAMhH6rq99pWbXCVxIg3yC0j8dwM5BsrKmzkO7RfUZbzjExyTQpkeWDtwjFNqHckFJHhh7XDQkWPc7kQRl0VF5rDOdc+a8BqfYVcTjjweg=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774637346; c=relaxed/simple;\n\tbh=NRFEG6ehqBcKgFcwj/0u0in6gzPJ30IFq1bV52oCC6k=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=AAJRZw4R6WsE479Shtx9jlHdqQd+9ztCkyAkNpUId1TQJcnxgxoM9PvTSaEfXmvYD+uhqmQ0WrBh5zHC7qO6rgGOQbGUNLZYzBZA44ecZUzvxKqXoxhUzwEGhqJiltm5hvZE4IErKwP5w3fwsFfGV4jPg4UvjjUL7e10BGySKp0=",
            "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=S48+hgH2VmzfEjLMOCn4XbeTFUmmqXzy8WudOwilpqY=;\n b=q5ZYrz/jK9v7ckFnoJHLO15fHGEqTe8ilBND6NtbJgxMmF9cL5S/XhTnUNuzayDcN6KucwPanp9RnUTEKwaolCLJ23qhK1iRfjzyverWNz3iuYjHfp2cjW77hSKIm3mmf8O1ahgpH3HY1DwMMsU+1q7icfvJYsaFZAomxf4u4fiky2J8zvvDkruDu4sGA8bX1oMbP2lbOJxDYX551VHmTjxiGK3kLdxMGpSeZiboLKs7YOiUz6YR4KkOi/6OmNutRpVY10HjQtnJhOfDua62uoC4Yma9GGOQAMRPLScxTIr4fgREHtD7CvWOIuCinanl3uQ0/TsVQtDS8s6/pOZTSA=="
        ],
        "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=nhvxVNe4; arc=fail smtp.client-ip=52.101.83.36",
            "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=S48+hgH2VmzfEjLMOCn4XbeTFUmmqXzy8WudOwilpqY=;\n b=nhvxVNe4j2xzpTT1/OlIgj8h0f5Q7y1IqgrfEv26ZbxxoFay4/W3QSrsAUlWlNVF+/UZMpC+5XjDgFXnGGL0D75ZLDmM+SPGgXENETSK4Zqv+7JbbaYb4mtuJZvQxL+vGBk87ntauokV2ai76T4zG3oaK+0cz0I6UjPoEPt5VynAO5WkUCJFN0P2DSZMainWlrUhwH1kEvapa64Cq/x6B0YV0eGuagnvouDT4mMA9edLZomxsAdmyoKAvD/D2wgCS6n8oWk5LxMTEeSmW3JFDW2YJS7Zhy1fqALzdh35rScptXhDyt5hyyxlasfzncGCQU+qDygY85l7djfjktya9w==",
        "From": "Vladimir Oltean <vladimir.oltean@nxp.com>",
        "To": "linux-phy@lists.infradead.org",
        "Cc": "Vinod Koul <vkoul@kernel.org>,\n\tNeil Armstrong <neil.armstrong@linaro.org>,\n\tdri-devel@lists.freedesktop.org,\n\tfreedreno@lists.freedesktop.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tlinux-arm-msm@vger.kernel.org,\n\tlinux-can@vger.kernel.org,\n\tlinux-gpio@vger.kernel.org,\n\tlinux-ide@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-media@vger.kernel.org,\n\tlinux-pci@vger.kernel.org,\n\tlinux-renesas-soc@vger.kernel.org,\n\tlinux-riscv@lists.infradead.org,\n\tlinux-rockchip@lists.infradead.org,\n\tlinux-samsung-soc@vger.kernel.org,\n\tlinux-scsi@vger.kernel.org,\n\tlinux-sunxi@lists.linux.dev,\n\tlinux-tegra@vger.kernel.org,\n\tlinux-usb@vger.kernel.org,\n\tnetdev@vger.kernel.org,\n\tspacemit@lists.linux.dev,\n\tUNGLinuxDriver@microchip.com,\n\tHeiko Stueber <heiko@sntech.de>,\n\tSandy Huang <hjc@rock-chips.com>,\n\tAndy Yan <andy.yan@rock-chips.com>,\n\tMaarten Lankhorst <maarten.lankhorst@linux.intel.com>,\n\tMaxime Ripard <mripard@kernel.org>,\n\tThomas Zimmermann <tzimmermann@suse.de>,\n\tDavid Airlie <airlied@gmail.com>,\n\tSimona Vetter <simona@ffwll.ch>",
        "Subject": "[PATCH v6 phy-next 12/28] drm/rockchip: dw_hdmi: avoid direct\n dereference of phy->dev.of_node",
        "Date": "Fri, 27 Mar 2026 20:46:50 +0200",
        "Message-ID": "<20260327184706.1600329-13-vladimir.oltean@nxp.com>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20260327184706.1600329-1-vladimir.oltean@nxp.com>",
        "References": "<20260327184706.1600329-1-vladimir.oltean@nxp.com>",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-ClientProxiedBy": "VI6PEPF00000222.AUTP296.PROD.OUTLOOK.COM\n (2603:10a6:808:1::8f8) To DU2PR04MB8584.eurprd04.prod.outlook.com\n (2603:10a6:10:2db::24)",
        "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": "DU2PR04MB8584:EE_|MRWPR04MB11287:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "3704dbb6-f262-4fb4-0b09-08de8c31818a",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|7416014|376014|1800799024|366016|10070799003|19092799006|18002099003|56012099003|22082099003;",
        "X-Microsoft-Antispam-Message-Info": "\n\tJOgDEosucolsegjG+RBZNlvvP04/WDTKtyetSAeAyLQPryahvNMUotnzm3c3fHmiCcurQ4TkFLizKMTsRh30aA6zPX7WgMXyAhOo+jALXjHM7/5w3RcIgBy1ths7L1r0mfquguICjzC9j0TMSTT4BuwlKEWI/whKAU8+4Zoe5zgJDIw/QqCobe9xrdKPTO7QKi+J5N7xRNYDpoeddnyYo77gXF05puMMi2SRLcXLR7XZXUM2dbQUGuYztNCJ+eg3INMsMRJIawfFUWuEhPNte3MPSMZjEGlHsdPuJAnmZVKQzM4G8ih6FLu7Gg5Z6hZJPbu1mxTRf+S2QEDSeqtmrXsYkYxwH0LcgXX08tgzURaF/Q1P+hj8sJv+kSfbTtsbUpm50GNEgnsQ0cnzbH4Vz7iAD8tapwcATK58qYR5eXMsP9SD04oUmycPxNu1yzG3msNtr103VfBLYvgH67OIXyRZ1yJBMcXf/UbYYR4hAYIRDdR4sSiodCDNgh0nq6h0wyZul7iQromImM0et6GaNRUbm2XcFV62vcHHB8vAsQGiZ0WvLEBIGpx7k85Rtneh6rRyVNdh7TPGCkSWqLQKwp6yCpsIPeYjpsb1lTyVcunoYwTSiKVeNGrpxzygrg/dMt7Sk4g6sYYc28LuBOh1SpvqqYfQr1MXjh7B6Y+RalIBsiZYOiY4LLlMFLGHAZ6onTUtvyNm8ewqZqkaRWrupdtC3AofGT2mvUzOTQPjmsQ=",
        "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8584.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(10070799003)(19092799006)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "2",
        "X-MS-Exchange-AntiSpam-MessageData-0": "=?utf-8?q?J9cmtkhsy+y7XcTaZNxhKFZ0ehRX?=\n\t=?utf-8?q?IO0hdKu2SLpStHNpjOXZOlNG1DCVg1nSuOBsefRjkI5MAuEsYOz20tqus/toyBWJD?=\n\t=?utf-8?q?R73v42ajCV6RruH6gL3Yx/APo1letSEnrR4qdOoK8Kq5wPGtpw8v8BDaFAgPLnrdd?=\n\t=?utf-8?q?U53nLxhNGDkg1ZqVzp78hJ5FDqPF3IPR3szluc8VvK2oohsoIZ+ZgtGE7tEUck4Qx?=\n\t=?utf-8?q?Yk8Jh29d9H+ET4O8t0aimktxkFUn2U/iilMAC8S2ynMNzb29O92A+nOH6jiZy9PvU?=\n\t=?utf-8?q?QmOFc613o4qt1PzfozaETVbXXcV76d/O9xc0FxNHPAttv1qQdZlBBTGc7JVIk8F4a?=\n\t=?utf-8?q?LDu1nKFSiuHs4UNauwuqHcmLIbUyWn+KpbI/ukRL4GF2R6UbOJR/n1GoHsa2RELFv?=\n\t=?utf-8?q?ltrnQ10Zo6u4SV7tyGT7EqpHBjWWRSok6hDXky2aHvXPgnMAII9S7AUBBY3ztxJmp?=\n\t=?utf-8?q?XrJykAryWbSsV0p6oU7oayFUTFpqCLD/GI3bWh5irOMGKDuhfpWB/HPjDPAXtu8u7?=\n\t=?utf-8?q?U1DeuguQ3/opgErKqs9xzXxHt8rxg9n14cK0UyQzgGzqmTr0ewOtjuA4VYwCn1CSX?=\n\t=?utf-8?q?HiHJaU35/asyKfugOENMWwK9TscaCg71Z0iR3h5Xy3U9V98T4AKd3lOVEKpd/Dvde?=\n\t=?utf-8?q?z3iYv+MhC/OfcgaCUD8kMqFw0F9Go6cxKyj7U4L++0HYzT5Oq4qbbzzB10ci4TSk+?=\n\t=?utf-8?q?wX+5l7JJONiePui0nzygcRinE2l2vIfpfBKpq8dSLOHkYNKCv5RZvBM1Mrixrdaft?=\n\t=?utf-8?q?YTU5D1e/Q6OFYTypgsl1Sp3vg4ZgldZG9YdE1gXTMAEbjJEZE1+4iS7OUYHgfVyE1?=\n\t=?utf-8?q?/jTNGAKVFZ2oW1YW2Bh9EBou8dDs+p3moZO99RqlYhhGtjL0XtFAd0Ivoy3qiG3Oo?=\n\t=?utf-8?q?oCBeVNbkUPYpGIq/gubOCdeaDmSWvZ02hQ/Nfw0WwcgKqVOqfJZ4TXRmT28ziTzSp?=\n\t=?utf-8?q?SuRfywz4Cb66SDPyNhPbK9OUBDmFMYTSUGasQAJzELZMWWqocJ/rkCpl8UktlHJM9?=\n\t=?utf-8?q?OD9gMOepY7KK59XEvZhJ0ZmUki1+3KVcaplpAfxROPX1wtXR9CIdK3D+CclnX+Zul?=\n\t=?utf-8?q?IEidjJXGhkzEvf6v+QV4D34R/J7gMyGQnYw+YzRxKbz3nKBVTYqxVB9+j2jJlUYHC?=\n\t=?utf-8?q?XixVdrSeUvSzk6fIGR2ZgOi9daL3J0CEeUv1VLjWHR/SUUVAVCzch+3mklApCse6q?=\n\t=?utf-8?q?F2HOmn4odlR7cVRcEoK+C+8W0jBgCQ+z2LgXZtlPILD9Ek46WydBMHoKw6L5bMaXV?=\n\t=?utf-8?q?XrZv86y+Q1vBYyaxYnRU/VMR6McAVdqOvPgidHbPkcnkv4t3VPyFLWtjCuxjhV0ns?=\n\t=?utf-8?q?A9sgToNF8X/X+EC57lA/YhU6Saj6gbWt+d40zt6VSq3+vHpfueqBV1D+PH9PHIDyX?=\n\t=?utf-8?q?2YLD9O3kIa7kw/bnMb8XmdMfyZm5XjgRHQvcjpRXAnpWmpCF4qi7p1PjEOq30XARN?=\n\t=?utf-8?q?7K1EhaX8LemAt/DWrvgMt43uFcOpDKGXRYWWeDZpKenWxgopjHmUedG9/q4y3KaXn?=\n\t=?utf-8?q?eYvVPgmfAV62JTzNvs2ojuDVn8J+mItGNoq/MSPs7AlUo0fCcAJs6WWMFOjzaUpbS?=\n\t=?utf-8?q?xgzPBejbSk9ObTCQy0cToekI9/9Cn6rLgA6/fAJeZnmMbk7Ou+1qXIpDikWxxHwMP?=\n\t=?utf-8?q?Y/ptiuTC51eWXE0wx4fobAhUeEss0kojY3lTWcm7WpHv+IaDd7+XUBSVkhjNhgiUz?=\n\t=?utf-8?q?03YLQBUOuyEFoixQK?=",
        "X-MS-Exchange-AntiSpam-MessageData-1": "7Bctp4s+Lqf4u55zlkR5YlhM+thUVaDp7vw=",
        "X-OriginatorOrg": "nxp.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 3704dbb6-f262-4fb4-0b09-08de8c31818a",
        "X-MS-Exchange-CrossTenant-AuthSource": "DU2PR04MB8584.eurprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Mar 2026 18:48:58.8939\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 j2xy9Waqoe3oDnieZjJn8K6urlUMP+z12bYBm/vwALevdIxoC5VaypuViU+lWoz8F20/jKFzZot/cpZqOwnaDQ==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MRWPR04MB11287"
    },
    "content": "The dw_hdmi-rockchip driver validates pixel clock rates against the\nHDMI PHY's internal clock provider on certain SoCs like RK3328.\nThis is currently achieved by dereferencing hdmi->phy->dev.of_node\nto obtain the provider node, which violates the Generic PHY API's\nencapsulation (the goal is for struct phy to be an opaque pointer\nwith a hidden definition, to be interacted with only using API\nfunctions or NULL pointer checks, for the case where optional variants\nof phy_get() did not find a PHY).\n\nRefactor dw_hdmi_rockchip_bind() to perform a manual phandle lookup\non the \"hdmi\" PHY index within the controller's DT node. This provides\na parallel path to the clock provider's OF node without relying on the\ninternal structure of the struct phy handle.\n\nSigned-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>\nReviewed-by: Heiko Stueber <heiko@sntech.de>\n---\nCc: Sandy Huang <hjc@rock-chips.com>\nCc: \"Heiko Stübner\" <heiko@sntech.de>\nCc: Andy Yan <andy.yan@rock-chips.com>\nCc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>\nCc: Maxime Ripard <mripard@kernel.org>\nCc: Thomas Zimmermann <tzimmermann@suse.de>\nCc: David Airlie <airlied@gmail.com>\nCc: Simona Vetter <simona@ffwll.ch>\n\nv4->v6: none\nv3->v4: add commit message clarification of what is understood by\n        \"opaque pointer\"\nv1->v3: none\n---\n drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 25 ++++++++++++---------\n 1 file changed, 15 insertions(+), 10 deletions(-)",
    "diff": "diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c\nindex 0dc1eb5d2ae3..7abb42e486c0 100644\n--- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c\n+++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c\n@@ -537,21 +537,22 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,\n \t\t\t\t void *data)\n {\n \tstruct platform_device *pdev = to_platform_device(dev);\n+\tstruct device_node *np = dev_of_node(dev);\n \tstruct dw_hdmi_plat_data *plat_data;\n \tconst struct of_device_id *match;\n \tstruct drm_device *drm = data;\n \tstruct drm_encoder *encoder;\n \tstruct rockchip_hdmi *hdmi;\n-\tint ret;\n+\tint ret, index;\n \n-\tif (!pdev->dev.of_node)\n+\tif (!np)\n \t\treturn -ENODEV;\n \n \thdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL);\n \tif (!hdmi)\n \t\treturn -ENOMEM;\n \n-\tmatch = of_match_node(dw_hdmi_rockchip_dt_ids, pdev->dev.of_node);\n+\tmatch = of_match_node(dw_hdmi_rockchip_dt_ids, np);\n \tplat_data = devm_kmemdup(&pdev->dev, match->data,\n \t\t\t\t\t     sizeof(*plat_data), GFP_KERNEL);\n \tif (!plat_data)\n@@ -564,9 +565,9 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,\n \tplat_data->priv_data = hdmi;\n \tencoder = &hdmi->encoder.encoder;\n \n-\tencoder->possible_crtcs = drm_of_find_possible_crtcs(drm, dev->of_node);\n+\tencoder->possible_crtcs = drm_of_find_possible_crtcs(drm, np);\n \trockchip_drm_encoder_set_crtc_endpoint_id(&hdmi->encoder,\n-\t\t\t\t\t\t  dev->of_node, 0, 0);\n+\t\t\t\t\t\t  np, 0, 0);\n \n \t/*\n \t * If we failed to find the CRTC(s) which this encoder is\n@@ -588,13 +589,17 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master,\n \t\treturn dev_err_probe(hdmi->dev, ret, \"failed to get phy\\n\");\n \t}\n \n-\tif (hdmi->phy) {\n+\tindex = of_property_match_string(np, \"phy-names\", \"hdmi\");\n+\tif (index >= 0) {\n \t\tstruct of_phandle_args clkspec;\n \n-\t\tclkspec.np = hdmi->phy->dev.of_node;\n-\t\thdmi->hdmiphy_clk = of_clk_get_from_provider(&clkspec);\n-\t\tif (IS_ERR(hdmi->hdmiphy_clk))\n-\t\t\thdmi->hdmiphy_clk = NULL;\n+\t\tif (!of_parse_phandle_with_args(np, \"phys\", \"#phy-cells\", index,\n+\t\t\t\t\t\t&clkspec)) {\n+\t\t\thdmi->hdmiphy_clk = of_clk_get_from_provider(&clkspec);\n+\t\t\tof_node_put(clkspec.np);\n+\t\t\tif (IS_ERR(hdmi->hdmiphy_clk))\n+\t\t\t\thdmi->hdmiphy_clk = NULL;\n+\t\t}\n \t}\n \n \tif (hdmi->chip_data == &rk3568_chip_data) {\n",
    "prefixes": [
        "v6",
        "phy-next",
        "12/28"
    ]
}