Received: by 2002:a89:d88:0:b0:1fa:5c73:8e2d with SMTP id eb8csp1706542lqb; Sun, 26 May 2024 13:23:09 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXNZjOoRA5qWKyy00saV/DiejpAKOghs3pvKhSFbkZxh9eDmhex0tuZdPIU8ELtO0mKPvc3eifsJdtvoqNdAFmmks2fU1oQH8TxC9NDVA== X-Google-Smtp-Source: AGHT+IF5N2SSQ+dfO337vrbd+1kPYhp1fRR0O63CE9cB/nCp/jursnDLZR9zQP5154M3qBQfBnlg X-Received: by 2002:a50:9e69:0:b0:578:64b9:d02e with SMTP id 4fb4d7f45d1cf-57864b9d078mr2899909a12.40.1716754989244; Sun, 26 May 2024 13:23:09 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1716754989; cv=pass; d=google.com; s=arc-20160816; b=pIS6LbNtHCK+8wCLSlGnX0BNLdjQpEbGDerZsd25ySeFP9rEB5NnOZIUrbHej7l1A8 EI3z3Jy7zD817LOkEq2s5dADfvv9vXN4y2jhJ1zYy/yRxppVku2gE3IyOCJxmRPZ5Uyi qxIBGgl13xaB2oqxSuWlZNCTB9s2b/sEq5V0Ks9P6B9TfLor4t3KgdTNLUDPSZQf4Ggn NLrlYvg84H8UbmFnick3Q9ewAit6ZHj2qW2twK8HznBuKLeJTwYM1GvPjcYQSRd301bH 1I6OBXVR/2iw7dhyZ4wFIJbtyjidrELERX86PW4AtWiY359+lePYRW2ZAHvHNStCGl6X u70A== 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=VbVQH6UjLIjvKCoLX7bXmeNWCrvCRHfR0kUXIzVDjRE=; fh=+9pjvWy/sQxAY6MxG8mZV2fAo+vnxCF8rB7oqMHgJRU=; b=mkdL0bf0Ox14Q6lTnr+LTnq9kPIHM65Ewr/Xx77sKCz7sUhtT68aE+r54a8yG2Rpj6 i7bwMT3r5S+AWXEBNkXVZQMC4vTUzZZcxeUFjgL2rHce+CF06OY5RVWXnknG3gSqHoir 5PagQCndlRgxaPbiSG4N3RM3jLaq06BTg1wRbZ0B9CE/Ie8/1U6fCWVrLQJiEETnJXov hl1lBi/oh8TGzEGhfD70lP8gJIVnRKcz7CCMPpZt6caKfTvfrI3dPlJhIqkTx3Kp35cx rnHcRtiGzFTPDo0l7eqOwWICf8Nw8tb8RYQsE6s/8jVTC184lpKH6xdVMywwgNHv7tK2 wZXA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=Kaipai+S; 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-189861-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-189861-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id 4fb4d7f45d1cf-5795ce615c7si1791012a12.97.2024.05.26.13.23.09 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 May 2024 13:23:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-189861-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=Kaipai+S; 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-189861-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-189861-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 am.mirrors.kernel.org (Postfix) with ESMTPS id C56831F20355 for ; Sun, 26 May 2024 20:23:08 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8CD8F13A3E2; Sun, 26 May 2024 20:22:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="Kaipai+S" Received: from out-186.mta1.migadu.com (out-186.mta1.migadu.com [95.215.58.186]) (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 0232A13A404 for ; Sun, 26 May 2024 20:22:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.186 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716754924; cv=none; b=KnTCwM5RGLRgE7TIWf1MMiq/tXR+2ooF78xi2o7p9KRV3e86rBEOTTWP+RYkbKzM/qcsfVbVXjprHC9CBms1+YdkxeIdsshhiK1NBMvFxDfv6TCVXjisWmUAyqHrTmnvosco8h/Ta8mwwcU0vMz9Z0MBk2vYTzDoktH5skYpBGo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716754924; c=relaxed/simple; bh=kYFxmWRdbPydozaGTcIpRlcm4XoGgiXWDEvjk/MZIVs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Wr4wA/K6/oiButMcUhipP88tnU7pBaWaIxMYk5IPsKCzsg8Z97gpLcT9cEcETrrcarqxSSqZVrcjw7lrwvjtjLSRdodWwxWlYKOCillO4iJOILIhzbZbooNHfv80J2NT88Mj1aOZ157LqZ2fHVw/wsk5rOMR1MIInq+MrbIv3Qs= 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=Kaipai+S; arc=none smtp.client-ip=95.215.58.186 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-Envelope-To: rfoss@kernel.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1716754921; 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=VbVQH6UjLIjvKCoLX7bXmeNWCrvCRHfR0kUXIzVDjRE=; b=Kaipai+SutibUDr4EsmJ1eYyck6yOz9Qet87vyspLMoaPjpb6fOz9eF/0RObBYmFAFEWT1 FH0xNfYVzyxeufSWffv8k61lrB5qoRVFcqiL8FA9UAAgdPvrCsHqUWGNtQrvyPtCDz+ck9 QbP8lBxB+opjB/pyzv+kydXo4tDbEyY= X-Envelope-To: laurent.pinchart@ideasonboard.com X-Envelope-To: dri-devel@lists.freedesktop.org X-Envelope-To: linux-kernel@vger.kernel.org X-Envelope-To: sui.jingfeng@linux.dev X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Sui Jingfeng To: Robert Foss , Laurent Pinchart Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Sui Jingfeng Subject: [PATCH v6 06/10] drm/bridge: sii902x: Switch to use fwnode APIs to acquire device properties Date: Mon, 27 May 2024 04:21:11 +0800 Message-Id: <20240526202115.129049-7-sui.jingfeng@linux.dev> In-Reply-To: <20240526202115.129049-1-sui.jingfeng@linux.dev> References: <20240526202115.129049-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, also switch to use fwnode APIs to acquire additional device properties. One side benifit is that boilerplates get reduced, no functional changes for DT-based systems. Signed-off-by: Sui Jingfeng --- drivers/gpu/drm/bridge/sii902x.c | 43 +++++++++++--------------------- 1 file changed, 15 insertions(+), 28 deletions(-) diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c index f4808838717a..975511d623a4 100644 --- a/drivers/gpu/drm/bridge/sii902x.c +++ b/drivers/gpu/drm/bridge/sii902x.c @@ -827,20 +827,17 @@ static int sii902x_audio_codec_init(struct sii902x *sii902x, .spdif = 0, .max_i2s_channels = 0, }; + struct fwnode_handle *fwnode = dev_fwnode(dev); u8 lanes[4]; int num_lanes, i; - if (!of_property_read_bool(dev->of_node, "#sound-dai-cells")) { + if (!fwnode_property_present(fwnode, "#sound-dai-cells")) { dev_dbg(dev, "%s: No \"#sound-dai-cells\", no audio\n", __func__); return 0; } - num_lanes = of_property_read_variable_u8_array(dev->of_node, - "sil,i2s-data-lanes", - lanes, 1, - ARRAY_SIZE(lanes)); - + num_lanes = fwnode_property_count_u8(fwnode, "sil,i2s-data-lanes"); if (num_lanes == -EINVAL) { dev_dbg(dev, "%s: No \"sil,i2s-data-lanes\", use default <0>\n", @@ -852,7 +849,11 @@ static int sii902x_audio_codec_init(struct sii902x *sii902x, "%s: Error gettin \"sil,i2s-data-lanes\": %d\n", __func__, num_lanes); return num_lanes; + } else { + fwnode_property_read_u8_array(fwnode, "sil,i2s-data-lanes", + lanes, num_lanes); } + codec_data.max_i2s_channels = 2 * num_lanes; for (i = 0; i < num_lanes; i++) @@ -1117,7 +1118,6 @@ static int sii902x_init(struct sii902x *sii902x) static int sii902x_probe(struct i2c_client *client) { struct device *dev = &client->dev; - struct device_node *endpoint; struct sii902x *sii902x; static const char * const supplies[] = {"iovcc", "cvcc12"}; int ret; @@ -1146,27 +1146,14 @@ static int sii902x_probe(struct i2c_client *client) return PTR_ERR(sii902x->reset_gpio); } - endpoint = of_graph_get_endpoint_by_regs(dev->of_node, 1, -1); - if (endpoint) { - struct device_node *remote = of_graph_get_remote_port_parent(endpoint); - - of_node_put(endpoint); - if (!remote) { - dev_err(dev, "Endpoint in port@1 unconnected\n"); - return -ENODEV; - } - - if (!of_device_is_available(remote)) { - dev_err(dev, "port@1 remote device is disabled\n"); - of_node_put(remote); - return -ENODEV; - } - - sii902x->next_bridge = of_drm_find_bridge(remote); - of_node_put(remote); - if (!sii902x->next_bridge) - return dev_err_probe(dev, -EPROBE_DEFER, - "Failed to find remote bridge\n"); + sii902x->next_bridge = drm_bridge_find_next_bridge_by_fwnode(dev_fwnode(dev), 1); + if (!sii902x->next_bridge) { + return dev_err_probe(dev, -EPROBE_DEFER, + "Failed to find the next bridge\n"); + } else if (IS_ERR(sii902x->next_bridge)) { + ret = PTR_ERR(sii902x->next_bridge); + dev_err(dev, "Error on find the next bridge: %d\n", ret); + return ret; } mutex_init(&sii902x->mutex); -- 2.34.1