From nobody Thu Sep 11 18:23:15 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A89D0C636CC for ; Thu, 16 Feb 2023 18:12:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230153AbjBPSMh (ORCPT ); Thu, 16 Feb 2023 13:12:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50358 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229627AbjBPSMf (ORCPT ); Thu, 16 Feb 2023 13:12:35 -0500 Received: from mail-oi1-f178.google.com (mail-oi1-f178.google.com [209.85.167.178]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 782DD50ACA for ; Thu, 16 Feb 2023 10:12:30 -0800 (PST) Received: by mail-oi1-f178.google.com with SMTP id w11so2501115oiv.5 for ; Thu, 16 Feb 2023 10:12:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=AY71C+meiyBHhST24LKS8BIZ3aLMamU0OluZ9cJRz0Q=; b=xtl+RSevCG8xi9SVW8+vJ5lb5IbVNKt5qlLrcXM3XmaeK75UzGIsdY83tC1giS2OMG xG1n6D95s3ZRf6Ll2GXxe0GcsKW4/zz0pSBS+8gZuVkXasajLo35j0oZmbOm76nbIyYC fmJT0KqAdUPsxtlVlH2i5GddJGrUf7OmoPC/zKzzwwcwk56LjxS2sqcbTGH1lJNs7tIv AehR0wSFIM1SEBk+GqPrC4qytrQEvdI+eemKuSgmo6puOfJzFQxmN8oTAkQX+hAXplcN OO7eZ9vUPly09+slBjhsmfqWnyMPlaoDO8j9YMrlKAw2WYQQ7ikll1lAE3T9swePdZSd ju/w== X-Gm-Message-State: AO0yUKX35Kr7VVMeHdWE2dW+NBAny1ypR0msrsHDLpdv35NxNdPFLSNs j4RB0UOpEjnZIpp2Q7b1A5E+HZ9mow== X-Google-Smtp-Source: AK7set/pbk6oZ0/SkxgTX5KHhHgxu5iymQgCl4ocNvHwABpkAaCU0q6GU9DfXqbnQVqUYbgXmiFHrQ== X-Received: by 2002:a05:6808:192:b0:378:6f44:2a2e with SMTP id w18-20020a056808019200b003786f442a2emr2751994oic.46.1676571149629; Thu, 16 Feb 2023 10:12:29 -0800 (PST) Received: from robh_at_kernel.org (66-90-144-107.dyn.grandenetworks.net. [66.90.144.107]) by smtp.gmail.com with ESMTPSA id r124-20020acaf382000000b0035c073aa0d8sm821386oih.18.2023.02.16.10.12.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Feb 2023 10:12:29 -0800 (PST) Received: (nullmailer pid 2896124 invoked by uid 1000); Thu, 16 Feb 2023 18:12:28 -0000 From: Rob Herring To: Andrew Lunn , Gregory Clement Cc: linux-arm-kernel@lists.infradead.org, Sebastian Hesselbarth , linux-kernel@vger.kernel.org Subject: [PATCH] bus: mvebu-mbus: Remove open coded "ranges" parsing Date: Thu, 16 Feb 2023 12:12:04 -0600 Message-Id: <20230216181204.2895676-1-robh@kernel.org> X-Mailer: git-send-email 2.39.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" "ranges" is a standard property, and we have common helper functions for parsing it, so let's use them. Cc: Andrew Lunn Cc: Sebastian Hesselbarth Cc: Gregory Clement Signed-off-by: Rob Herring --- Compile tested only! --- drivers/bus/mvebu-mbus.c | 58 ++++++---------------------------------- 1 file changed, 8 insertions(+), 50 deletions(-) diff --git a/drivers/bus/mvebu-mbus.c b/drivers/bus/mvebu-mbus.c index d51573ac525e..00cb792bda18 100644 --- a/drivers/bus/mvebu-mbus.c +++ b/drivers/bus/mvebu-mbus.c @@ -1179,74 +1179,32 @@ static int __init mbus_dt_setup_win(struct mvebu_mb= us_state *mbus, return 0; } =20 -static int __init -mbus_parse_ranges(struct device_node *node, - int *addr_cells, int *c_addr_cells, int *c_size_cells, - int *cell_count, const __be32 **ranges_start, - const __be32 **ranges_end) -{ - const __be32 *prop; - int ranges_len, tuple_len; - - /* Allow a node with no 'ranges' property */ - *ranges_start =3D of_get_property(node, "ranges", &ranges_len); - if (*ranges_start =3D=3D NULL) { - *addr_cells =3D *c_addr_cells =3D *c_size_cells =3D *cell_count =3D 0; - *ranges_start =3D *ranges_end =3D NULL; - return 0; - } - *ranges_end =3D *ranges_start + ranges_len / sizeof(__be32); - - *addr_cells =3D of_n_addr_cells(node); - - prop =3D of_get_property(node, "#address-cells", NULL); - *c_addr_cells =3D be32_to_cpup(prop); - - prop =3D of_get_property(node, "#size-cells", NULL); - *c_size_cells =3D be32_to_cpup(prop); - - *cell_count =3D *addr_cells + *c_addr_cells + *c_size_cells; - tuple_len =3D (*cell_count) * sizeof(__be32); - - if (ranges_len % tuple_len) { - pr_warn("malformed ranges entry '%pOFn'\n", node); - return -EINVAL; - } - return 0; -} - static int __init mbus_dt_setup(struct mvebu_mbus_state *mbus, struct device_node *np) { - int addr_cells, c_addr_cells, c_size_cells; - int i, ret, cell_count; - const __be32 *r, *ranges_start, *ranges_end; + int ret; + struct of_range_parser parser; + struct of_range range; =20 - ret =3D mbus_parse_ranges(np, &addr_cells, &c_addr_cells, - &c_size_cells, &cell_count, - &ranges_start, &ranges_end); + ret =3D of_range_parser_init(&parser, np); if (ret < 0) - return ret; + return 0; =20 - for (i =3D 0, r =3D ranges_start; r < ranges_end; r +=3D cell_count, i++)= { - u32 windowid, base, size; + for_each_of_range(&parser, &range) { + u32 windowid =3D upper_32_bits(range.bus_addr); u8 target, attr; =20 /* * An entry with a non-zero custom field do not * correspond to a static window, so skip it. */ - windowid =3D of_read_number(r, 1); if (CUSTOM(windowid)) continue; =20 target =3D TARGET(windowid); attr =3D ATTR(windowid); =20 - base =3D of_read_number(r + c_addr_cells, addr_cells); - size =3D of_read_number(r + c_addr_cells + addr_cells, - c_size_cells); - ret =3D mbus_dt_setup_win(mbus, base, size, target, attr); + ret =3D mbus_dt_setup_win(mbus, range.cpu_addr, range.size, target, attr= ); if (ret < 0) return ret; } --=20 2.39.1