Received: by 2002:ab2:3319:0:b0:1ef:7a0f:c32d with SMTP id i25csp30391lqc; Thu, 7 Mar 2024 09:24:21 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCW3ozPjmqhqPWwX7TALe4OgfklVW2a5HJ2nw3exn8NprsaG4C72Xqiylh/nh6bFwOHcI4Is3FsRFQPURW2HKZXqPS6d8IgpeT6i+yM8Pg== X-Google-Smtp-Source: AGHT+IGvkUk7HYxgxJaDWoCe5gD3gfwwn3JO+fHX/IaN2utvBICTR19bjXgHLeGNLDH5rtMRWc8V X-Received: by 2002:ac8:5806:0:b0:42e:814e:e0c8 with SMTP id g6-20020ac85806000000b0042e814ee0c8mr9486336qtg.47.1709832261497; Thu, 07 Mar 2024 09:24:21 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709832261; cv=pass; d=google.com; s=arc-20160816; b=Zw73U0iMxvbZt4/aax7E3bXDd1lrYzlIyA1Am7GN+ZdyZBa5p8t/xlSQF8HI0zusIo gL/xlHrPeYGDOsYdnRD+RbAWyrltkHxec3AYuK6MH8vn80myCDL+RPNTaBI6E82anOT5 fP2mQvnei8glFj3YewqiuGUyVYHRpFEiCk+jzO8NA125qWWD3OWkwNNiFi5VNNOPEaE/ tva847FA8NfuBY/46pmlh6j0SELajacd3xstoObW/CTPB63bqvVRz2w5fX5tLpR/tc// SGKJjIXIooRFhZ0aqggz75IRENmrUIMX0VJjB699oF7NlJlXjNESXGGjiX0DfCfmpQiP +WAw== 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=HWIRWItjBDtFTXEgAVRhwUssfo0ucN+z9Lfq4vCBxhY=; fh=YAAtToetpfsnHAm1J9NBTCrSPftQvWIsfHfENZcC/ck=; b=ttvsYiE8dmFxWqePAYKc9I9Y+VNgpFsbgXNhzlp780ihjJeKPiMt07E/ov4ufWSjNz cl5JiIpEbRCMSMdcLMXD09vgMQpASBdfSI3I3O2COZL23LBhw9gJNFiyOYx2ECUhunM7 OJGILQRDgkRxH8Tp84faMsdgJkLUzEh/Rdd6z1rJtTRuj9CaIOAhXAo/aaZGtxn0wcle iWqh4QjfWLpftyG65X9WcbwgLyxYMoJ+2Muorh/rrJejCMw973xYx4BE/wt+vohylgOW X6Bs039GVpyPo0QQPtvcMZqNbw7jDTb4b2pZohlc3ZQpKINYG1M/xyJoETirRK5E9JG0 RUTA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=T4dgunbY; 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-95931-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-95931-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 y11-20020a05622a004b00b0042f1cf4bfb7si1441048qtw.169.2024.03.07.09.24.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Mar 2024 09:24:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-95931-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=T4dgunbY; 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-95931-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-95931-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 34A691C22F73 for ; Thu, 7 Mar 2024 17:24:21 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 76638130E25; Thu, 7 Mar 2024 17:24:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="T4dgunbY" Received: from out-183.mta1.migadu.com (out-183.mta1.migadu.com [95.215.58.183]) (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 AA58512F5BD for ; Thu, 7 Mar 2024 17:24:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.183 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709832250; cv=none; b=aSqEIJxexVbGZfsaGdGFt7FKkpHdhOROqYbfvbrmcPsqShoyZ2rsUmlRLh7aHjC19J+GEXq3Xe36ZN5t65XU0zbnrNN1Uoz7VzzOSiTacmAlic1bAFk4ZUrz3gSQz3IiCd+PeDdcdeZ7ZDhRRk8aOCJMSKLvpk8PBxCLikcJ9wo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709832250; c=relaxed/simple; bh=WFD8xa6o6CKBxUlGwMGJYymQooCoBt++TmIRNwmCIrQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=IVg98Ojet9ZYC8TDPjBNcnqpi6BuyfoVdEFpKqKj7anXhqkFEp/S0tBScDYE8PwKdUcL45VCSNSSL/OaYRXCgix7pd2Kd4DdJaATft3zMeO2xLg0orZiFmGATBac6eqAwpgp6q4QwHbwiODO1zJnyOFOqjXE5SgNh/b+ex4VYn4= 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=T4dgunbY; arc=none smtp.client-ip=95.215.58.183 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=1709832246; 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=HWIRWItjBDtFTXEgAVRhwUssfo0ucN+z9Lfq4vCBxhY=; b=T4dgunbYtU4RWIuT6iRO64fkWXDqshNCfrRQpImh4dDxaZrjzeKmI2qVyuvB8faNWq44M6 n2+5/JwmyrZrQKTFBomYfMFtIw7Udoo9pjHq9joxoE8JZ2SPjsoGagXa7HT4RBk8yxGn99 4GZ1r505R25HSR2kiIqtWNDi1RI8N2E= 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 2/4] drm/bridge: simple-bridge: Use fwnode API to acquire device properties Date: Fri, 8 Mar 2024 01:23:32 +0800 Message-Id: <20240307172334.1753343-3-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 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..bf00b9b5e00f 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 find 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