Received: by 2002:ab2:3319:0:b0:1ef:7a0f:c32d with SMTP id i25csp30539lqc; Thu, 7 Mar 2024 09:24:33 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUOsKCllzYUOLjQ20cx4Gy68qw+egdbjQU3uvym2hAsBBYB/wcZr2T7Jl1tNqOPhPt695sCaRpCAG2tlwidkDMh/WgIn6hrXwJXDvAasg== X-Google-Smtp-Source: AGHT+IEoanptP9qYsiX3iN24W2+jCAxh24zVoqlsxgRipfDJn/8WunMNxQ1d0tP/epxB+50mEu+V X-Received: by 2002:a05:620a:16a7:b0:788:26bb:1378 with SMTP id s7-20020a05620a16a700b0078826bb1378mr9557688qkj.73.1709832273210; Thu, 07 Mar 2024 09:24:33 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709832273; cv=pass; d=google.com; s=arc-20160816; b=cT733Fb/3OY0yulxNyddolb0nle820HeaU3z/xrmhH6S7jEv103c547nIKwlxhp8OF Sy2rMAmQ76YXuwe8+ZF736ZW7Glvq0N13sMdivciDF4B7V4mADDYVJve5yGEh3N0ZKUX VPDQC3x1DUvD98+BzQW2+QKCNHmP61kKhvhTPU1fFbssRqoIVHoWC4iviJAHc6QXGlI7 Lpj4MlpdUteXKYGBTPiRbEUoQbzKwACqXOvlShUEpZ1ujc2cszWPyW8EW3WHuc+IfcJ4 5h/fhOG6qnA4DxQeIQnhEQbmWW8A570fKEsynSRzzVADEs/X6uK63I7pSTnQsWkzDOeI 3Pyg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=Aep+0Bx5dDl+omojFo37hiW07MeWApSc10wBdc6QHoM=; fh=YAAtToetpfsnHAm1J9NBTCrSPftQvWIsfHfENZcC/ck=; b=1Hssl8Cqo7tKmeUfzyWMZb2UcMOSwUtw+zJykz4ShbjRRDWcUatphkndiQrLlDTlcr R81qZyCERrA0cmAz2dv4e7+UxFtdKogXJbOEPlids2qf5aK1zaIpUFu/xSvCoeXKA9Rk Bizf2ZjNdNxTdROcPrYETsilKYl5YYxBjqnzi7NeOeMjhpC/KxTFWm9mNi8TRdui4i3b P7678G0kpBbZPx1U0BMTRZOLR+dEkvkuEwwdNKxuR+Gp4GKxVayOabo3xm98nQUs1vCD RQtKJf9+xq/5gwGBsA+bKElF7kpxyZvEEn9fKdxiiiSAqM60IosRlOAb/hbUNSTWLWMg uPkw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=MjrdmZM9; arc=pass (i=1 spf=pass spfdomain=linux.dev dkim=pass dkdomain=linux.dev dmarc=pass fromdomain=linux.dev); spf=pass (google.com: domain of linux-kernel+bounces-95932-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-95932-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id j23-20020ae9c217000000b0078805f82ec0si14983707qkg.689.2024.03.07.09.24.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Mar 2024 09:24:33 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-95932-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=MjrdmZM9; arc=pass (i=1 spf=pass spfdomain=linux.dev dkim=pass dkdomain=linux.dev dmarc=pass fromdomain=linux.dev); spf=pass (google.com: domain of linux-kernel+bounces-95932-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-95932-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id C56F91C22F3A for ; Thu, 7 Mar 2024 17:24:32 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 87684130E20; Thu, 7 Mar 2024 17:24:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="MjrdmZM9" Received: from out-173.mta1.migadu.com (out-173.mta1.migadu.com [95.215.58.173]) (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 E0DF8130AFA for ; Thu, 7 Mar 2024 17:24:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709832259; cv=none; b=pVa0ravCJDl7ZybM+UCXD5bgTErxI2PfTqwugwPsfAxbC5XKzhx4NLppARP9tJY1zinkEXBvm7JZL6Spb/z4BNT6GG2Bo+eUlxjrG7ukarkFrLXROTeWpCa053B+6K2gdTWHgNW0dHP36mhfljeYJDNPnSMqPYVkPqyVAXtm6GI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709832259; c=relaxed/simple; bh=vq9XBTBjoQZnocYnQAqv25NSvH4VWo7Rsys2n+nDlxE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=HCEKakVx25IXdyyrExNc6Fd3BdTpHykOSub7CMef7YY7Jk4gkRzlYGYD+lkEk1MvYuMQ2wgySOWUYpHtWOZqdyfWa0y1uNKmYRQULM8oVfWDoBLjMObCG6SiT9+1HtjUPzV8T8Yxn+DivzL1lxOxttH+NJbI+xzkn67iRLcZ/14= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=MjrdmZM9; arc=none smtp.client-ip=95.215.58.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1709832256; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Aep+0Bx5dDl+omojFo37hiW07MeWApSc10wBdc6QHoM=; b=MjrdmZM97DGXf8NUgnv3kQSFenL756NRBX0a4Eq1+HUwHoKn6W6QjgZQ96aX4pIZwBP2A/ 6K+QnMIvFW0gfAhnUvtLD/28VexBFk2ynaqz0K6pIMBQNLaYoZksAeNPK9szWCnRtFWZ8Q 8D1znj6H8xMX2ctIvDQtx36GGbAz/34= From: Sui Jingfeng To: Andrzej Hajda Cc: Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Phong LE , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Sui Jingfeng Subject: [PATCH v2 3/4] drm-bridge: display-connector: Use fwnode API to acquire device properties Date: Fri, 8 Mar 2024 01:23:33 +0800 Message-Id: <20240307172334.1753343-4-sui.jingfeng@linux.dev> In-Reply-To: <20240307172334.1753343-1-sui.jingfeng@linux.dev> References: <20240307172334.1753343-1-sui.jingfeng@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT Make this driver less DT-dependent by using the fwnode helper function, should be no functional changes for DT based systems. Do the necessary works before it can be truely subsystem independent, even though there is no user yet, this still do no harms. Signed-off-by: Sui Jingfeng --- drivers/gpu/drm/bridge/display-connector.c | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/bridge/display-connector.c b/drivers/gpu/drm/bridge/display-connector.c index ab8e00baf3f1..d80cb7bc59e6 100644 --- a/drivers/gpu/drm/bridge/display-connector.c +++ b/drivers/gpu/drm/bridge/display-connector.c @@ -204,6 +204,7 @@ static int display_connector_get_supply(struct platform_device *pdev, static int display_connector_probe(struct platform_device *pdev) { + struct fwnode_handle *fwnode = dev_fwnode(&pdev->dev); struct display_connector *conn; unsigned int type; const char *label = NULL; @@ -215,15 +216,15 @@ static int display_connector_probe(struct platform_device *pdev) platform_set_drvdata(pdev, conn); - type = (uintptr_t)of_device_get_match_data(&pdev->dev); + type = (uintptr_t)device_get_match_data(&pdev->dev); /* Get the exact connector type. */ switch (type) { case DRM_MODE_CONNECTOR_DVII: { bool analog, digital; - analog = of_property_read_bool(pdev->dev.of_node, "analog"); - digital = of_property_read_bool(pdev->dev.of_node, "digital"); + analog = fwnode_property_present(fwnode, "analog"); + digital = fwnode_property_present(fwnode, "digital"); if (analog && !digital) { conn->bridge.type = DRM_MODE_CONNECTOR_DVIA; } else if (!analog && digital) { @@ -240,8 +241,7 @@ static int display_connector_probe(struct platform_device *pdev) case DRM_MODE_CONNECTOR_HDMIA: { const char *hdmi_type; - ret = of_property_read_string(pdev->dev.of_node, "type", - &hdmi_type); + ret = fwnode_property_read_string(fwnode, "type", &hdmi_type); if (ret < 0) { dev_err(&pdev->dev, "HDMI connector with no type\n"); return -EINVAL; @@ -271,7 +271,7 @@ static int display_connector_probe(struct platform_device *pdev) conn->bridge.interlace_allowed = true; /* Get the optional connector label. */ - of_property_read_string(pdev->dev.of_node, "label", &label); + fwnode_property_read_string(fwnode, "label", &label); /* * Get the HPD GPIO for DVI, HDMI and DP connectors. If the GPIO can provide @@ -309,12 +309,12 @@ static int display_connector_probe(struct platform_device *pdev) if (type == DRM_MODE_CONNECTOR_DVII || type == DRM_MODE_CONNECTOR_HDMIA || type == DRM_MODE_CONNECTOR_VGA) { - struct device_node *phandle; + struct fwnode_handle *phandle; - phandle = of_parse_phandle(pdev->dev.of_node, "ddc-i2c-bus", 0); - if (phandle) { - conn->bridge.ddc = of_get_i2c_adapter_by_node(phandle); - of_node_put(phandle); + phandle = fwnode_find_reference(fwnode, "ddc-i2c-bus", 0); + if (!IS_ERR_OR_NULL(phandle)) { + conn->bridge.ddc = i2c_get_adapter_by_fwnode(phandle); + fwnode_handle_put(phandle); if (!conn->bridge.ddc) return -EPROBE_DEFER; } else { @@ -358,7 +358,7 @@ static int display_connector_probe(struct platform_device *pdev) } conn->bridge.funcs = &display_connector_bridge_funcs; - conn->bridge.of_node = pdev->dev.of_node; + drm_bridge_set_node(&conn->bridge, fwnode); if (conn->bridge.ddc) conn->bridge.ops |= DRM_BRIDGE_OP_EDID -- 2.34.1