Received: by 2002:ab2:6203:0:b0:1f5:f2ab:c469 with SMTP id o3csp2495843lqt; Mon, 22 Apr 2024 12:19:55 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCX2OavEpaC7Vl0HEbsIRKuD8hACZMCwh8/0hwNeSjEFUPiNXq72+rQndb7LT/iyG/cNJjY0f2rguYwhjjUJ9V0STg3LZNR2ZWng/rppkg== X-Google-Smtp-Source: AGHT+IHTucZmg71pFaFjwtfKWcDvSeb5H1ZftH3xFEqzf4bJ2SCpBGZ7I3LGfLIkX8aDoJLCk+II X-Received: by 2002:a05:6a20:728d:b0:1a9:83ac:e659 with SMTP id o13-20020a056a20728d00b001a983ace659mr12665805pzk.26.1713813595149; Mon, 22 Apr 2024 12:19:55 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1713813595; cv=pass; d=google.com; s=arc-20160816; b=E2yvo/SOunwFCpZK8S8L5fi33tAiFBImC2TXkltQ0BFGX/1/PslEv6bka0yNG4qhAn BNxAUR4c4KRXnq2zOom+wTewrfkXww+j5XfI2wzhxAYuYPvj5QCz4kLlr34Zjh//3PP9 8LFqlF59KKBN9PdK4apgcKekNtlTDBB0Ys5Xf9STnQdLCAJZJcxvQi50DCnuBLF6MLdf AhHzT6rOGkOH2YN2dIJ26w+Y2389NEYFJdGL+vfyZXrzEVuN814Bv4P+GMlLE5jZWoJ+ xVn2uxzmwbq/7Mo70npvXCsz7hevasA+SUItATzs6JeDdKups+3Y3MD6dVgwoTCrG6KN r4FQ== 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=AdzVq0hSo8fS18z5xoeY8+4STJ0X8hxCUiiSMI/5/9M=; fh=Q9AnfQhVv5Du4del//y1nGcCApAuQhQMIw7pMf+iOUk=; b=rivJEqWOttZ8vka/LHk3VuyPsyW/r0HAviWJI1J64vefHS8SwdKgocxVFf5gDRFCaW 7JH8FDTL1oJgn/xfOBg6ido1Rrsh+OMN6P0YR4J5x7JEg18p0sZPFH6Tg+fjJXtieSBt a9xwBkBkpTVOG/mp503uPOuNNJrPENW90arxk4ysIa6MRMyDLgFW0kANesZOrQ61FxMU OoyB6fL9frEyL3cl1Bl++aJldzMVJBRZ+/LyYr2bqrnkL6pn42OtQWWQRQmo2IxjLLbB pLRSJRBGCuxjBosXlPdnMHbLLdkreSMLLa/drWRvoXzRM1p05kd/z8GADmK5Fartr5js MZsA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=duhA1RQz; 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-153905-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-153905-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id q3-20020a656843000000b005f803be4fe7si5631889pgt.181.2024.04.22.12.19.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Apr 2024 12:19:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-153905-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=duhA1RQz; 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-153905-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-153905-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id C2C1A28135E for ; Mon, 22 Apr 2024 19:19:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9464E15535A; Mon, 22 Apr 2024 19:19:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="duhA1RQz" Received: from out-171.mta1.migadu.com (out-171.mta1.migadu.com [95.215.58.171]) (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 61C3E155356 for ; Mon, 22 Apr 2024 19:19:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.171 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713813569; cv=none; b=neVC6ka8r88ZK/T+/HuXzk8kWPbKYkVHCprp81U0pGU+6B0GrftRSs8ppIXLU5+zeMrus5eSup3/a+x7FncpCegAaYwKBQtIU8iPOj32YTRou1+ho/mUws0j5VUD+idOgPr7kt6RC5TDgdJ6ykz319dheZwbp+MlrPlH+hmi9Jk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713813569; c=relaxed/simple; bh=g2uyYKP3fTMNqz1inMg+JCYrTWQJzGEy4xF64bwHe0Q=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=rs6NvisagyUN48LYUskCZC1cSJUOX+QwgW1Njz58UuvBXTHVdmMn5TXUeDewx6KiPgjS/UBtSwAiw89/0C+Uz6bLtwGMN0iXiqsWFOFuZp+gAqJPZk6MhlPz0g04eUYKwSc5L0J6jMlDopG/G2poxVccbr9Yj7eZrk/EXU1P//k= 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=duhA1RQz; arc=none smtp.client-ip=95.215.58.171 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=1713813566; 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=AdzVq0hSo8fS18z5xoeY8+4STJ0X8hxCUiiSMI/5/9M=; b=duhA1RQznC1J8pwivtIZfwp0dvGCXf1fBt5p4kOOd6DxGSSr0yi0YiaF3GxpDFV8SYKRCW xH86JxsMHtCe3To2cUKpvMFzu8R0CpyI+Qmlqifj+5IwsS/aP95n3tIfXwrN165NR7ahOJ ccklRIJwDIW5ymmuB4kVprvVOQ4f8eI= From: Sui Jingfeng To: Neil Armstrong Cc: Robert Foss , Laurent Pinchart , Andrzej Hajda , Jonas Karlman , Jernej Skrabec , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Phong LE , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Sui Jingfeng Subject: [PATCH v4 2/9] drm/bridge: simple-bridge: Use fwnode API to acquire device properties Date: Tue, 23 Apr 2024 03:18:56 +0800 Message-Id: <20240422191903.255642-3-sui.jingfeng@linux.dev> In-Reply-To: <20240422191903.255642-1-sui.jingfeng@linux.dev> References: <20240422191903.255642-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 calling the freshly created helpers, should be no functional changes for DT based systems. But open the door for otherwise use cases. Even though there is no user emerged yet, this still do no harms. Signed-off-by: Sui Jingfeng --- drivers/gpu/drm/bridge/simple-bridge.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/bridge/simple-bridge.c b/drivers/gpu/drm/bridge/simple-bridge.c index 5813a2c4fc5e..3b09bdd5ad4d 100644 --- a/drivers/gpu/drm/bridge/simple-bridge.c +++ b/drivers/gpu/drm/bridge/simple-bridge.c @@ -9,7 +9,6 @@ #include #include #include -#include #include #include @@ -169,33 +168,32 @@ static const struct drm_bridge_funcs simple_bridge_bridge_funcs = { static int simple_bridge_probe(struct platform_device *pdev) { + struct fwnode_handle *fwnode = dev_fwnode(&pdev->dev); struct simple_bridge *sbridge; - struct device_node *remote; + int ret; sbridge = devm_kzalloc(&pdev->dev, sizeof(*sbridge), GFP_KERNEL); if (!sbridge) return -ENOMEM; platform_set_drvdata(pdev, sbridge); - sbridge->info = of_device_get_match_data(&pdev->dev); + sbridge->info = device_get_match_data(&pdev->dev); /* Get the next bridge in the pipeline. */ - remote = of_graph_get_remote_node(pdev->dev.of_node, 1, -1); - if (!remote) - return -EINVAL; - - sbridge->next_bridge = of_drm_find_bridge(remote); - of_node_put(remote); - + sbridge->next_bridge = drm_bridge_find_next_bridge_by_fwnode(fwnode, 1); if (!sbridge->next_bridge) { dev_dbg(&pdev->dev, "Next bridge not found, deferring probe\n"); return -EPROBE_DEFER; + } else if (IS_ERR(sbridge->next_bridge)) { + ret = PTR_ERR(sbridge->next_bridge); + dev_err(&pdev->dev, "Error on finding the next bridge: %d\n", ret); + return ret; } /* Get the regulator and GPIO resources. */ sbridge->vdd = devm_regulator_get_optional(&pdev->dev, "vdd"); if (IS_ERR(sbridge->vdd)) { - int ret = PTR_ERR(sbridge->vdd); + ret = PTR_ERR(sbridge->vdd); if (ret == -EPROBE_DEFER) return -EPROBE_DEFER; sbridge->vdd = NULL; @@ -210,9 +208,9 @@ static int simple_bridge_probe(struct platform_device *pdev) /* Register the bridge. */ sbridge->bridge.funcs = &simple_bridge_bridge_funcs; - sbridge->bridge.of_node = pdev->dev.of_node; sbridge->bridge.timings = sbridge->info->timings; + drm_bridge_set_node(&sbridge->bridge, fwnode); drm_bridge_add(&sbridge->bridge); return 0; -- 2.34.1