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 X-Spam-Level: X-Spam-Status: No, score=-10.9 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DB22CC433E9 for ; Sat, 26 Dec 2020 23:48:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A3835208CA for ; Sat, 26 Dec 2020 23:48:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726089AbgLZXsX (ORCPT ); Sat, 26 Dec 2020 18:48:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45854 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725943AbgLZXsW (ORCPT ); Sat, 26 Dec 2020 18:48:22 -0500 Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 64F50C061757; Sat, 26 Dec 2020 15:47:42 -0800 (PST) Received: by mail-wr1-x430.google.com with SMTP id c5so7056174wrp.6; Sat, 26 Dec 2020 15:47:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=kzI2MBTYva7U96gTMdRoE9qINNA+Cq6RZ4dSPhM8U1k=; b=hJM+G/aArmhCe9cR274A2+PGV6lQ/drZKAZwupEAAlgnFtX4aQZPx2DqEXbX7LGQkk YdgYKL15S6UQTVSNwr3QWdj5a0bQ/ggEQvuDO7TzVLipV0Vib95bOSvXey/5gVQez2Jc TiGZclktxHth2mxRD4m8Xu/QI16HD2GaRJuodWEU+7NYA08ZYjsCOEr2tZ3ZFWRnMull gYe3hEzyRXbW0lWl5dSKuNUI3P89K6wz8MfuBzOMuDZ6DUyL6y5kuSwhlhViSLWAB3ap SQLFuWIeg5v9zTwTKv1Fhr7uD8e+e2US2woYNrvXWQ23BTaRxZZ0O7BYM42npMRuw2rf wwKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=kzI2MBTYva7U96gTMdRoE9qINNA+Cq6RZ4dSPhM8U1k=; b=glQMUr9/fJRXqLcJbH3T+3VJwyMncsZRn2Df10BfPoYMT+2wbehHYInfXuhWWfqKOi DGY5hPaC++jMSHUDuQGtDC4/P8ke7X1YDZjb5W1XpvpMkZfMyAsugT+vsu+UKJQgGUn3 heSusFKQnQAb4/ELx6hao2Vu5zD0VTOWi6aQUzvIcnHSUZO7/PNf7lMK618O6FdPvchT jRTIfnw/0CSsYQlMoCQytjMS5ypqc3JnDj5sNyetW+7QRuUG7lTnYWYqW9DoG8Veu+UL vX4DIwps3tR39QhY0rnixC1u5cHxvw6mI3LNZ1OggUBh/HfkApo6cTzeR52NkGvySAc9 Olfg== X-Gm-Message-State: AOAM531ZAp8kj+sWAdEFsMh7hpsevtbkV5GTDXU8cvmUGaNRd3qpLwUd 8g8Y9Tjo7bjKT+nwh1rlN34= X-Google-Smtp-Source: ABdhPJzwtl+Qm96JmW1M6/1w9dplkoiCaZcr7sxyqHDpk1gQAqoFP7RCWtUJRsftTRInmSLfgw167g== X-Received: by 2002:adf:e9d2:: with SMTP id l18mr43057569wrn.179.1609026459449; Sat, 26 Dec 2020 15:47:39 -0800 (PST) Received: from [192.168.1.211] ([2.31.224.116]) by smtp.gmail.com with ESMTPSA id m17sm54312124wrn.0.2020.12.26.15.47.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 26 Dec 2020 15:47:38 -0800 (PST) Subject: Re: [PATCH v3 07/14] software_node: Add support for fwnode_graph*() family of functions To: Andy Shevchenko Cc: Linux Kernel Mailing List , ACPI Devel Maling List , Linux Media Mailing List , devel@acpica.org, "Rafael J. Wysocki" , Len Brown , Greg Kroah-Hartman , Yong Zhi , Sakari Ailus , Bingbu Cao , Tian Shu Qiu , Mauro Carvalho Chehab , Robert Moore , Erik Kaneda , Petr Mladek , Steven Rostedt , Sergey Senozhatsky , Andy Shevchenko , Rasmus Villemoes , Laurent Pinchart , Jacopo Mondi , kieran.bingham+renesas@ideasonboard.com, Hans Verkuil , Marco Felsch , niklas.soderlund+renesas@ragnatech.se, Steve Longerbeam , "Krogerus, Heikki" , Linus Walleij References: <20201224010907.263125-1-djrscally@gmail.com> <20201224010907.263125-8-djrscally@gmail.com> From: Daniel Scally Message-ID: Date: Sat, 26 Dec 2020 23:47:37 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Hi Andy On 24/12/2020 12:24, Andy Shevchenko wrote: > On Thu, Dec 24, 2020 at 3:14 AM Daniel Scally wrote: >> >> From: Heikki Krogerus >> >> This implements the remaining .graph_* callbacks in the > > .graph_* ==> ->graph_*() ? > >> fwnode operations structure for the software nodes. That makes >> the fwnode_graph*() functions available in the drivers also > > graph*() -> graph_*() ? Both done. >> when software nodes are used. >> >> The implementation tries to mimic the "OF graph" as much as >> possible, but there is no support for the "reg" device >> property. The ports will need to have the index in their >> name which starts with "port@" (for example "port@0", "port@1", > >> ...) > > Looks not good, perhaps move to the previous line, or move port@1 example here? Fixed - by expanding the lines to ~75 chars > Few nitpicks here and there, after addressing them, > Reviewed-by: Andy Shevchenko Thank you! >> +static struct fwnode_handle * >> +swnode_graph_find_next_port(const struct fwnode_handle *parent, >> + struct fwnode_handle *port) >> +{ >> + struct fwnode_handle *old = port; >> + >> + while ((port = software_node_get_next_child(parent, old))) { >> + /* >> + * ports have naming style "port@n", so we search for children >> + * that follow that convention (but without assuming anything >> + * about the index number) >> + */ > >> + if (!strncmp(to_swnode(port)->node->name, "port@", > > You may use here corresponding _FMT macro. >> +static int >> +software_node_graph_parse_endpoint(const struct fwnode_handle *fwnode, >> + struct fwnode_endpoint *endpoint) >> +{ >> + struct swnode *swnode = to_swnode(fwnode); >> + int ret; >> + >> + /* Ports have naming style "port@n", we need to select the n */ > >> + ret = kstrtou32(swnode->parent->node->name + FWNODE_GRAPH_PORT_NAME_PREFIX_LEN, > > Maybe a temporary variable? > > unsigned int prefix_len = FWNODE_GRAPH_PORT_NAME_PREFIX_LEN; > ... > ret = kstrtou32(swnode->parent->node->name + prefix_len, Both discussed after Laurent's reply I think.