From mboxrd@z Thu Jan 1 00:00:00 1970 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E4877C02192 for ; Mon, 3 Feb 2025 14:39:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=0rYzey9rE1Gs3xI5o67C+WA5jMDK33VlyvPQHt2SeZ0=; b=UEPm8RcGIdXo9n +RHzzNx0DsgeObM0CFif/vVYkJikp7VBJbsR8T/CJZ/sAU3k602gjI/HdW+LIhm2P3y2zsS4aGJ2I UZ+9rbpmhXA3AxecHZTqYxP3a3eW3JMJcJuHnoOnhBMUPi5wTblGwMXiwb7IYhee+ueN3fHruHOE6 pLY8W2klKTA0OjwuMYCvo5mpbfvfsFjzIaZGGNeemkQT+WN+kABrHfykVgZafQktjLxDJ+uS5SOmz SiozBxaAJ7xX7GLpx38Uovnec9iDf9TjPU7iqC+2jnvgZ5iWETp7OV0gLoJAlbsycaeluv92i6E3W FhFycPXrmIvv3RcenUyQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1texbg-0000000Fi1j-3xhx; Mon, 03 Feb 2025 14:39:24 +0000 Received: from mgamail.intel.com ([198.175.65.16]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1texbe-0000000Fi0s-08co for linux-riscv@lists.infradead.org; Mon, 03 Feb 2025 14:39:23 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1738593562; x=1770129562; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=dA12J9ikOMHFZHgkM871xf7LoUD101cGevQzk/6n9tU=; b=mkC0nb7A7u0Los7MObt3fsCCwRNubmIBzD22sHVxLg03yTFvU6Q5bmyb 9FS29PFms0zpIHCO6xtCj5nVyEUUCT/ZsnImkjBkulaaxNDAePoRjNupR eu7i147TBJvSciPRV0rwdhcBeI9H/t9SAD5k94XyQGxdlLv3VGMROuUbv K9WOQbNHG5zYnA9c/k2My30ryCnkh9lXwSGB1bP74SDgHJQEIEhKQbVXK TuvH0pPF+XmU0csAi+nsPqZjRsbRecrrWReepY9qbv8Mx2odtL6UzHO8g q01OrM5BIUQHrMVV2ARqbgLWHKExAhPyIukHuhDd09sux7nHhGNcH36t4 w==; X-CSE-ConnectionGUID: JKiUKG6iQz+SzAxcNv/uSQ== X-CSE-MsgGUID: wyf+e77+TEuVao55naUcDw== X-IronPort-AV: E=McAfee;i="6700,10204,11335"; a="39226923" X-IronPort-AV: E=Sophos;i="6.13,256,1732608000"; d="scan'208";a="39226923" Received: from fmviesa007.fm.intel.com ([10.60.135.147]) by orvoesa108.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Feb 2025 06:39:21 -0800 X-CSE-ConnectionGUID: /2Cyhkc9SySXsArDog+jaQ== X-CSE-MsgGUID: rC94I25uQ6qErBJa9Mq56Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.13,256,1732608000"; d="scan'208";a="110199299" Received: from smile.fi.intel.com ([10.237.72.58]) by fmviesa007.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Feb 2025 06:39:15 -0800 Received: from andy by smile.fi.intel.com with local (Exim 4.98) (envelope-from ) id 1texbT-00000007rJ0-0hyj; Mon, 03 Feb 2025 16:39:11 +0200 Date: Mon, 3 Feb 2025 16:39:10 +0200 From: Andy Shevchenko To: Sunil V L Cc: Mika Westerberg , Anup Patel , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jassi Brar , Thomas Gleixner , "Rafael J . Wysocki" , Linus Walleij , Bartosz Golaszewski , Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= , Palmer Dabbelt , Paul Walmsley , Len Brown , Rahul Pathak , Leyfoon Tan , Atish Patra , Andrew Jones , Samuel Holland , Anup Patel , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH v2 12/17] ACPI: property: Add support for nargs_prop in acpi_fwnode_get_reference_args() Message-ID: References: <20250203084906.681418-1-apatel@ventanamicro.com> <20250203084906.681418-13-apatel@ventanamicro.com> <20250203105840.GH3713119@black.fi.intel.com> <20250203123658.GI3713119@black.fi.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250203_063922_119248_ED7F0D9A X-CRM114-Status: GOOD ( 40.25 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org On Mon, Feb 03, 2025 at 07:21:50PM +0530, Sunil V L wrote: > On Mon, Feb 03, 2025 at 02:36:58PM +0200, Mika Westerberg wrote: > > On Mon, Feb 03, 2025 at 05:54:18PM +0530, Sunil V L wrote: > > > On Mon, Feb 03, 2025 at 12:58:40PM +0200, Mika Westerberg wrote: > > > > On Mon, Feb 03, 2025 at 11:43:26AM +0200, Andy Shevchenko wrote: > > > > > On Mon, Feb 03, 2025 at 02:19:01PM +0530, Anup Patel wrote: > > > > > > From: Sunil V L > > > > > > > > > > > > fwnode_get_reference_args() which is common for both DT and ACPI passes > > > > > > a property name like #mbox-cells which needs to be fetched from the > > > > > > reference node to determine the number of arguments needed for the > > > > > > property. However, the ACPI version of this function doesn't support > > > > > > this and simply ignores the parameter passed from the wrapper function. > > > > > > Add support for dynamically finding number of arguments by reading the > > > > > > nargs property value. Update the callers to pass extra parameter. > > > > > > > > > > I don't like this (implementation). > > > > > > > > Agree. > > > > > > > > > It seems that we basically have two parameters which values are duplicating > > > > > each other. This is error prone API and confusing in the cases when both are > > > > > defined. If you want property, add a new API that takes const char *nargs > > > > > and relies on the property be present. > > > > > > > > Also this is not really needed for ACPI case because it has types so it can > > > > distinguish references from integer. Having separate property for this just > > > > makes things more complex than they need to be IMHO. > > > > > > Thanks! Andy and Mika for your kind feedback. I agree that having both > > > property name and nargs is confusing and also ACPI would not need > > > nargs_prop. In fact, I think ACPI doesn't need even nargs integer value > > > as well from the caller since all integers after the reference are > > > counted as arguments. However, the issue is acpi_get_ref_args() assumes > > > that caller passes valid num_args. But typically the common > > > fwnode_property_get_reference_args() doesn't usually pass both valid > > > values. So, should fwnode_property_get_reference_args() pass both > > > nargs_prop (for DT) and nargs (for ACPI). Or do you mean it is better to > > > remove the check for num_args in the loop inside acpi_get_ref_args() > > > function? > > > > Can you show an example of a case you are trying to solve with this? So far > > we have been able to go with the current implementation so why this is > > needed now? > > Basically one can call fwnode_property_get_reference_args() > irrespective of DT/ACPI. The case we are trying is like below. > > if (fwnode_property_get_reference_args(dev->fwnode, "mboxes", > "#mbox-cells", 0, index, &fwspec)) { > ... > } > > As you can see this works for DT since OF interface handles > "#mbox-cells". But since nargs is passed as 0, it won't work for ACPI > due to the reason I mentioned earlier. > > Mandating to pass both "#mbox-cell" and valid nargs count looks > redundant to me. Ah, interesting. The original change that introduces this 3e3119d3088f ("device property: Introduce fwnode_property_get_reference_args") hadn't been reviewed by Mika or me, that's probably why we are not familiar with. Since interface is already established, I would recommend to fix this as proposed, i.e. with a new API. This is the way to match how OF seems to be doing. -- With Best Regards, Andy Shevchenko _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv