From patchwork Tue May 5 10:05:07 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 2149 Return-Path: X-Original-To: noreply@patchwork.local Delivered-To: noreply@patchwork.local Received: from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114]) by mxe881.netcup.net (Postfix) with ESMTPS id 170381C0224 for ; Tue, 5 May 2026 12:29:17 +0200 (CEST) Authentication-Results: mxe881; dkim=pass header.d=nxp.com; spf=pass (sender IP is 172.105.105.114) smtp.mailfrom=linux-sunxi+bounces-23117-noreply=patchwork.local@lists.linux.dev smtp.helo=tor.lore.kernel.org Received-SPF: pass (mxe881: domain of lists.linux.dev designates 172.105.105.114 as permitted sender) client-ip=172.105.105.114; envelope-from=linux-sunxi+bounces-23117-noreply=patchwork.local@lists.linux.dev; helo=tor.lore.kernel.org; Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by tor.lore.kernel.org (Postfix) with ESMTP id 1F65231AEFBB for ; Tue, 5 May 2026 10:13:16 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 40770423A8C; Tue, 5 May 2026 10:06:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="mWqKXI4I" X-Original-To: linux-sunxi@lists.linux.dev Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011057.outbound.protection.outlook.com [52.101.70.57]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DBAE540F8DD; Tue, 5 May 2026 10:06:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777975583; cv=fail; b=CwXqm2U12Sbn0r47VKUAVL1zrzhYbyS+GRrnLzf1xdVhWwagU8ijpBuga42P8lKLvkX3YMzuG5d6IBicEAfJWCzLDl8MBl4Ops88HtMMwYGUeYfDxIvWm6T4vy27U64aVGN02+EQfmUnAjISDB1/z6YNJh8hBeK2+eI/FdFI8e4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777975583; c=relaxed/simple; bh=WnGfCsYXelYE4uk5S9Q8SDA3ZV3VHra4flbS3FpzxxY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=TGdhcJamyRkPp1RkCestK1Ar+IxI/OrWtbLqzjo2UNaDPmFEAzKEGJFQWqkl8mKOBU0zEvXQcLFq2KBcgMjnjfPxJfpcYn/MgwAPUWBrKEWfzjdpvctBq2Hy1ieE9/80NG+GUiSk2paP887oNNEKxC7WlNAqWqPve5B3MjsK2HQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=mWqKXI4I; arc=fail smtp.client-ip=52.101.70.57 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AcQFGQpzZ/GzkOX0Ok1zah9S2bL1las+yCy2cSLtwZ7rFEkh29EW7olbCtrcLxnH7vGyIufxvL6BBYhKxgHIZSC1ZUqPR18Wg5URXeRCUmdZNVK3xsxQ9/KoWdXEzWTwYdUiHafoAwFLZk3tTqi4K6jIcZxEuZiF8ORCWcLLlfNQHZhO5vUVKoNdhqFOsfXWlRHMn2Yu2vCgrtvHVHcyVcpF+2S9HEZRBlFxPDP2TMQn362zdeHAvPLOicOPYI17lJN8TaqkKc0dxOfm6uH9MfEpxIXBjqVDBiZskBiflq3oJksimxpqnrKuzQCT0a/TWCvSmF0btKHacNQKJvF5Yw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=weEL2i1hxJGgS7vYKMcDgw10jYGVvvghvREqdK1mtnw=; b=VDj0/wpsiGj/jrf3prqjc73KlNj+i0169+7/fhKcBAlhd1ZBZQ/kwbN5v2qSsdFluKz1t61AdPfmv/4aWjZdDsPRi8Af5Fasm8GCNn+A4hntNa1y3WMrC9OvorSeASvFANMiUQJuF7z+WsRKPCH8CWlDhFUgqW21fsZyWgdRAYhph6HgCqTuiQMf/iGhBo3IDBLsDZzgsm4xdI8xbyW97fVOE1NZxnb9OwYP9FXEdXbI/wirzNjAPj9I1NI2+6CKOxPJaFVxXQet5yOH9sB1juOME+0xL7CJ89lx+Fp1taXpe62G6x7DiStnHlruYQusR5DcyzBN2Fz7mhUxcNSWiQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=weEL2i1hxJGgS7vYKMcDgw10jYGVvvghvREqdK1mtnw=; b=mWqKXI4IEyGl6jFikGfGK+Y4z0flmVn3hQTps4magKszUXNbO9idM1qdw2xWZzdW7baCIMtV19E5LF4WHJ8oI9kwhq22wnPfmjZKjBUbgZPTcDM4EGmECV/hOT359O36rA8ngxp7tyjopcuy7jZe1a/1nS3SnIwofcY96UmfUs2uqdIk0vdPNcKyjklCGOPFops57kYQ42mQpffOHOMQNIV0DKWdVl+PIxVjiGR7kJ3LQBdNotO1WFy9RhDRrc8U1MBs8AmvSc/rDUTGXRJcnY72vyBt8FqA67HyvmYdkp6ifnhMjGLumWcH3pjWhdP69gqcupjah2+JjAq858QJyQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) by DB9PR04MB8363.eurprd04.prod.outlook.com (2603:10a6:10:24b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Tue, 5 May 2026 10:06:11 +0000 Received: from AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4]) by AM9PR04MB8585.eurprd04.prod.outlook.com ([fe80::f010:fca8:7ef:62f4%4]) with mapi id 15.20.9870.023; Tue, 5 May 2026 10:06:09 +0000 From: Vladimir Oltean To: linux-phy@lists.infradead.org Cc: Vinod Koul , Neil Armstrong , dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-can@vger.kernel.org, linux-gpio@vger.kernel.org, linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-pci@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-scsi@vger.kernel.org, linux-sunxi@lists.linux.dev, linux-tegra@vger.kernel.org, linux-usb@vger.kernel.org, netdev@vger.kernel.org, spacemit@lists.linux.dev, UNGLinuxDriver@microchip.com, Heiko Stueber , Sandy Huang , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Subject: [PATCH v8 phy-next 15/31] drm/rockchip: dw_hdmi: avoid direct dereference of phy->dev.of_node Date: Tue, 5 May 2026 13:05:07 +0300 Message-Id: <20260505100523.1922388-16-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260505100523.1922388-1-vladimir.oltean@nxp.com> References: <20260505100523.1922388-1-vladimir.oltean@nxp.com> X-ClientProxiedBy: FR2P281CA0034.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:14::21) To AM9PR04MB8585.eurprd04.prod.outlook.com (2603:10a6:20b:438::13) Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8585:EE_|DB9PR04MB8363:EE_ X-MS-Office365-Filtering-Correlation-Id: 870da5f8-44a6-4f9d-d93c-08deaa8dedb2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|19092799006|7416014|366016|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: u0NM0OmiL2uEkl0JKrW/x8bqQIGgXTfgEFALncSozU/TOAOriN30VcpKhecBk4/86NEUZXHNf02VMpgYkYA1Yor0qiqK0s2Z2+fsbbSPmNYg4QM5Ni6MbTCQBHKaO3IuWFuowP8VOCqQw3nWGtf7Ci42G+UiOplO8zHmF/Va7pbc/fUcoGU+83o4BDF25P+hmo594wAexusZZmj9htlxIYhndnPMm97Ks5Kh0FwW3e9Kqt2FjesdbcSpI4cM6/fvmWnYoQSCZFUfNZkjbQyN1zIqxj3n+jvLKktIMGXIKzLp7jxXjnmid4uxrsIpFWO6I1rNmBXTBmc3PU1Ro2O3LwRp++/EJKWITADcprBpxGFaC2ORcByTdWsdPrym2wef582M69z6lZ0TswkewyT1N653mRS2TjCFpEmyjUw+om1o0lTX2lLRe3cycctP/rHtu76NzSS+NUDKMbLyWV208PMHlB214vrwz7XNOt4+qfFnwlufNH++bUqQzhleJ8m6vr5LdLHoQbeFfhcRJcUyJdjNJwd5f26rft3QgfWs8hn4Z34M3hK13+duTG6C6gbWI4LesfJlHRDp4lTdxdFWFaPUvKSA6iJ9KkEyyEFKB+0Ret6maRuZ26pcoi534f6IbGq9flca6S2USh65h3xQfKA/q1G9tuQzPKua/m6Kv2jEoH9v+lHA0/br15dn1zOl X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8585.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(19092799006)(7416014)(366016)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?rNUzROTZrw72m77KLFBlPF7ElLcJ?= =?utf-8?q?OyrKJ/gfnUMNJheQhEeNmclBe8jCm9BpBcf1gjJDaeaA7uYSefRUe/LH89VvV9P5D?= =?utf-8?q?RMUZp/wOEufqA/UX+sledydJvXbdAuMRZYO4v5ThdcyufymXG1uBdl9Oc2YzBoeSB?= =?utf-8?q?XqeW55Mj5sj+xOL1vFJ8UJHDZ20MMYUstrBFKoefwQS3y7AAcsIZceIOJFWh7GzPs?= =?utf-8?q?uOxs/8cSb/3lNYGY8JUf4aGuimkG087RXgDRjsD34Haz0v+yS3t88GrfVRza2uYOv?= =?utf-8?q?2BQUZ0PX1bwt4Bbgige9109vTSyVRRW6FpOWonn6jjSeSyxAdjCd1AoQt39kIKqid?= =?utf-8?q?xReEpUScYDK6avudnMW5j+tUdWrVsxf1gYEYfMYek06P4hCbTj5odBOIK6ySj621/?= =?utf-8?q?GTmeGZsjeKRsNeuVUU7K1YnDkExYyvQpv2OBS6K0nnewh96HzVOrrZDk3FoHhqsu7?= =?utf-8?q?cANoxS10n+6ItKQMvXh/GORr5Y1b9MMomKsthN2S341ztrhSc+spyLNAKkAzJzHoA?= =?utf-8?q?DsEGxV9EfRSd3tQzbvizg0OsQMYt/zvCRQOFKPW0WpeE755Zk2dDqBBTf11RpYEkX?= =?utf-8?q?8C5d3o9ZdY+B/ydAUd5mTWl+GpPoNcTJXSM/P+rNr3h4tGEfKTIuPOuNKxeoSx9K1?= =?utf-8?q?PpEuFRN1OllhW24ZmYGOO8vfnJ54m2NIcReaQQgYAkoiq72mYK8rh8bi2CE7xzoLE?= =?utf-8?q?3C9nOA2PMPAiqi8KxZiC4H+OQYsvSc4yM+5b3k1tLfWwyfriwjcxaXyI1jberBUPP?= =?utf-8?q?fcyipMvd8QFxMS8zsoGatbjIvcuXWYKpQ+1veu8MSWM4dTueGAW0Jq0MfEEs80o2I?= =?utf-8?q?RfgYoO8hfeiO5uhEH8xMFSDFu/Fq/3Me4WKLiF4R0eJewbkevWKxkfI1gh+NZY2x/?= =?utf-8?q?uE1NF7FmFU5XjbEBl6/0OjAwAIyTjhE8DJ6/sYUVVdKG6lpZM7C+mZv4bh89xA8jY?= =?utf-8?q?eQ88DDfmqYQjN7EiK19fpTXLBFCnO4PvZPR98dOxG2anLYIQ4JkyXwXemLLHXV5DC?= =?utf-8?q?dCfpyc3jx3dqTkrqA0rlIASN7knUheGBok9L01Gdr4QxSvx3xY/7f5nnWTHJpTXVV?= =?utf-8?q?fOe5y6tTlPqKwDTWuivSOJQSt/xqyRvXPzBTjmbfSCwedA6EaEreS2kIZZu6jDD/a?= =?utf-8?q?AK3dH5i4ReuMR8MPPLa8JbxP/lMXLQ8qTOAzfIqYQ62ljHqzJuLMu787C3nKArn9/?= =?utf-8?q?r+WxK/BTNPR35FdSNdBZusFYR8XVFsQIkitWIlNUKSmYZ1nwqv6ei0eMVp4CPLCUm?= =?utf-8?q?XbxTP4sueJP04ea3SJZPP3fajCHF5tYxxzxTgQARS0aSDp9xrjovdEqDmtAqx7f49?= =?utf-8?q?c5acN9FlasCB+o/wLIUMtM82VhvsIz3I09zDsje7YGe2vxUatXmsJIb0K+nZuQgpl?= =?utf-8?q?Qwdim0vOGJmXHwfg5X/ac1g6v0SW9U9Y4j3MsXU+IdwMbsSnsCuvwJLj8ijfvf6X+?= =?utf-8?q?FzdiwIW6+AyrLwACtgj4NzoiX3rkU+TxGITg+GvF9r7zfjn/lHZv9Ml4EUb7jWmU3?= =?utf-8?q?1YF52B+rZM2kRt03n3CnP7P/MSOMSSe3MnZtPHguobbnyxMx6vpVLtm0C51qbVLqo?= =?utf-8?q?XUpkGJ01KdrhENphqR2bVuQ0TxALno2N0kfleQJVUpd7D5HgPx/PMzoIMvmWH/Ubc?= =?utf-8?q?tjHaOCnXodmrqjfnp2Yi4UiyN1+9JUvA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 870da5f8-44a6-4f9d-d93c-08deaa8dedb2 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8585.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2026 10:06:09.0236 (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: VE54NA+2Sy1ZKD9hVo3xgupbnUsTDWezPvbMNAUlnvYb17QEvxjZy9qAFjmznGYEaikADoW2u7+/y+k2q1SZlQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8363 X-Rspamd-Server: rspamd-worker-8404 X-Spamd-Result: default: False [-1.66 / 15.00]; BAYES_HAM(-5.50)[100.00%]; RBL_SENDERSCORE(2.00)[172.105.105.114:from]; ARC_REJECT(1.00)[cv is fail on i=2]; MID_CONTAINS_FROM(1.00)[]; MAILLIST(-0.15)[generic]; BAD_REP_POLICIES(0.10)[]; MIME_GOOD(-0.10)[text/plain]; HAS_LIST_UNSUB(-0.01)[]; PRECEDENCE_BULK(0.00)[]; TO_DN_SOME(0.00)[]; RCPT_COUNT_TWELVE(0.00)[32]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_HAS_DN(0.00)[]; RCVD_COUNT_FIVE(0.00)[6]; R_DKIM_ALLOW(0.00)[nxp.com:s=selector1]; FROM_NEQ_ENVFROM(0.00)[vladimir.oltean@nxp.com,linux-sunxi@lists.linux.dev]; DMARC_POLICY_ALLOW(0.00)[nxp.com,none]; DKIM_TRACE(0.00)[nxp.com:+]; R_SPF_ALLOW(0.00)[+ip4:172.105.105.114:c]; FREEMAIL_CC(0.00)[kernel.org,linaro.org,lists.freedesktop.org,lists.infradead.org,vger.kernel.org,lists.linux.dev,microchip.com,sntech.de,rock-chips.com,linux.intel.com,suse.de,gmail.com,ffwll.ch]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; TAGGED_FROM(0.00)[bounces-23117-noreply=patchwork.local]; ASN(0.00)[asn:63949, ipnet:172.105.96.0/20, country:SG]; FORGED_SENDER_MAILLIST(0.00)[] X-Rspamd-Queue-Id: 170381C0224 X-MORS-Enabled: yes X-MORS-DOMAIN: patchwork.local X-MORS-HOSTING: hosting172546 X-MORS-USER: hosting172546 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= The dw_hdmi-rockchip driver validates pixel clock rates against the HDMI PHY's internal clock provider on certain SoCs like RK3328. This is currently achieved by dereferencing hdmi->phy->dev.of_node to obtain the provider node, which violates the Generic PHY API's encapsulation (the goal is for struct phy to be an opaque pointer with a hidden definition, to be interacted with only using API functions or NULL pointer checks, for the case where optional variants of phy_get() did not find a PHY). Refactor dw_hdmi_rockchip_bind() to perform a manual phandle lookup on the "hdmi" PHY index within the controller's DT node. This provides a parallel path to the clock provider's OF node without relying on the internal structure of the struct phy handle. Signed-off-by: Vladimir Oltean Reviewed-by: Heiko Stueber --- Cc: Sandy Huang Cc: "Heiko Stübner" Cc: Andy Yan Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: Thomas Zimmermann Cc: David Airlie Cc: Simona Vetter v4->v8: none v3->v4: add commit message clarification of what is understood by "opaque pointer" v1->v3: none --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 25 ++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c index 0dc1eb5d2ae3..7abb42e486c0 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -537,21 +537,22 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master, void *data) { struct platform_device *pdev = to_platform_device(dev); + struct device_node *np = dev_of_node(dev); struct dw_hdmi_plat_data *plat_data; const struct of_device_id *match; struct drm_device *drm = data; struct drm_encoder *encoder; struct rockchip_hdmi *hdmi; - int ret; + int ret, index; - if (!pdev->dev.of_node) + if (!np) return -ENODEV; hdmi = devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL); if (!hdmi) return -ENOMEM; - match = of_match_node(dw_hdmi_rockchip_dt_ids, pdev->dev.of_node); + match = of_match_node(dw_hdmi_rockchip_dt_ids, np); plat_data = devm_kmemdup(&pdev->dev, match->data, sizeof(*plat_data), GFP_KERNEL); if (!plat_data) @@ -564,9 +565,9 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master, plat_data->priv_data = hdmi; encoder = &hdmi->encoder.encoder; - encoder->possible_crtcs = drm_of_find_possible_crtcs(drm, dev->of_node); + encoder->possible_crtcs = drm_of_find_possible_crtcs(drm, np); rockchip_drm_encoder_set_crtc_endpoint_id(&hdmi->encoder, - dev->of_node, 0, 0); + np, 0, 0); /* * If we failed to find the CRTC(s) which this encoder is @@ -588,13 +589,17 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master, return dev_err_probe(hdmi->dev, ret, "failed to get phy\n"); } - if (hdmi->phy) { + index = of_property_match_string(np, "phy-names", "hdmi"); + if (index >= 0) { struct of_phandle_args clkspec; - clkspec.np = hdmi->phy->dev.of_node; - hdmi->hdmiphy_clk = of_clk_get_from_provider(&clkspec); - if (IS_ERR(hdmi->hdmiphy_clk)) - hdmi->hdmiphy_clk = NULL; + if (!of_parse_phandle_with_args(np, "phys", "#phy-cells", index, + &clkspec)) { + hdmi->hdmiphy_clk = of_clk_get_from_provider(&clkspec); + of_node_put(clkspec.np); + if (IS_ERR(hdmi->hdmiphy_clk)) + hdmi->hdmiphy_clk = NULL; + } } if (hdmi->chip_data == &rk3568_chip_data) {