From patchwork Wed May 17 23:18:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 763812 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3wSr551Mjqz9s2s for ; Thu, 18 May 2017 09:24:57 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="MTOyIH3V"; dkim-atps=neutral Received: by lists.denx.de (Postfix, from userid 105) id D2033C2229A; Wed, 17 May 2017 23:23:05 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 3316CC2217A; Wed, 17 May 2017 23:19:05 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 0E221C22206; Wed, 17 May 2017 23:18:58 +0000 (UTC) Received: from mail-oi0-f46.google.com (mail-oi0-f46.google.com [209.85.218.46]) by lists.denx.de (Postfix) with ESMTPS id 60EA6C22152 for ; Wed, 17 May 2017 23:18:49 +0000 (UTC) Received: by mail-oi0-f46.google.com with SMTP id h4so34476135oib.3 for ; Wed, 17 May 2017 16:18:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=xHIpqulmGbjzTnIbBik2i7D+Lmq4w3h3H3DSG0XLeMc=; b=MTOyIH3VQYxXDSh+fyHo/1/hzmWdkznPAJKZQRzhcdyLakfsVZUtgikgXCt5JX43yJ ASxHokMlmLGmVxnk7QRpML5v2Ze7OhQbmgN6nM9YR+GRgCQ5jmoTaTPeY/heYQBvWCG9 AyD4IS5SJL60fSTnZ33qi7n7MukqoraKI93nieBcNTwFn8FEXrNTwLhSlPKZBy/XM1fN 4YhV/Ax39D+2VEP4ioKKCgXnZMZh0hJpcZ5IL81oET4+rivFOHdnZtUCDEp8GonCXiFl 1vMiXqV1dmuprINzyIxoKOG8fScRcUu8zIBj9Zj4I6gXuYRCtxe4P9EyZ/XceIM/uQCf BMJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=xHIpqulmGbjzTnIbBik2i7D+Lmq4w3h3H3DSG0XLeMc=; b=LFM5L1HJSBIN/aXexlwXM5nAAEQdGS84ncPPYt4Hg908o7TA8Wem6OFh4qoG4hvBZ3 X/qOexBGx1S1g2/vOiKaT2C0tcMacoZYlwtbdTZICtKHfRoOrlWLG9JF8SHp7HTOnJe6 QdHkOIk3r/Iv0+oUfPcuzYPw3R4LmawwgJOp2heMXUuk7GtHiAGp+ikvalJSr08JKIm2 KhVqVDrkqrkLd7HBrWigZmTmZ0Lmc50CUbosFQAxR0rlWppTh26p6UgsKTtVZC8IFHb3 0uU8mtCb8bar3+40T48cL8+v/4UvEdoNV+wFBg3znseTVOJRDBb4b/w0VM3AllOvqnav w2UQ== X-Gm-Message-State: AODbwcBSKE4+Bfhvfy7Jfb3691QE6JZeWjIk5bKIcravBlbmbfItx2gj VE0bR6U8RTmWNWVx X-Received: by 10.202.81.9 with SMTP id f9mr729830oib.184.1495063128132; Wed, 17 May 2017 16:18:48 -0700 (PDT) Received: from kaki.bld.corp.google.com ([2620:0:1005:11:28e1:eb17:d6f7:d437]) by smtp.gmail.com with ESMTPSA id t4sm1777321oie.10.2017.05.17.16.18.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 17 May 2017 16:18:47 -0700 (PDT) Received: by kaki.bld.corp.google.com (Postfix, from userid 121222) id 1976840563; Wed, 17 May 2017 17:18:47 -0600 (MDT) From: Simon Glass To: U-Boot Mailing List Date: Wed, 17 May 2017 17:18:11 -0600 Message-Id: <20170517231812.24681-10-sjg@chromium.org> X-Mailer: git-send-email 2.13.0.303.g4ebf302169-goog In-Reply-To: <20170517231812.24681-1-sjg@chromium.org> References: <20170517231812.24681-1-sjg@chromium.org> Cc: Tom Rini Subject: [U-Boot] [PATCH v3 9/9] dm: core: Adjust device_bind_common() to take an ofnode X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" This core function will need to work with a live tree also. Update it to accept an ofnode instead of an offset. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- Changes in v3: None Changes in v2: - Cut the series down to only prepare the way for live tree - Drop all live tree changes - Adjust storage to avoid a code size increase drivers/core/device.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/core/device.c b/drivers/core/device.c index 2738685092..363c1833e9 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -29,7 +29,7 @@ DECLARE_GLOBAL_DATA_PTR; static int device_bind_common(struct udevice *parent, const struct driver *drv, const char *name, void *platdata, - ulong driver_data, int of_offset, + ulong driver_data, ofnode node, uint of_platdata_size, struct udevice **devp) { struct udevice *dev; @@ -60,7 +60,7 @@ static int device_bind_common(struct udevice *parent, const struct driver *drv, dev->platdata = platdata; dev->driver_data = driver_data; dev->name = name; - dev->node = offset_to_ofnode(of_offset); + dev->node = node; dev->parent = parent; dev->driver = drv; dev->uclass = uc; @@ -76,9 +76,10 @@ static int device_bind_common(struct udevice *parent, const struct driver *drv, * resolved (and ->seq updated) when the device is probed. */ if (uc->uc_drv->flags & DM_UC_FLAG_SEQ_ALIAS) { - if (uc->uc_drv->name && of_offset != -1) { + if (uc->uc_drv->name && ofnode_valid(node)) { fdtdec_get_alias_seq(gd->fdt_blob, - uc->uc_drv->name, of_offset, + uc->uc_drv->name, + ofnode_to_offset(node), &dev->req_seq); } } @@ -219,15 +220,15 @@ int device_bind_with_driver_data(struct udevice *parent, struct udevice **devp) { return device_bind_common(parent, drv, name, NULL, driver_data, - of_offset, 0, devp); + offset_to_ofnode(of_offset), 0, devp); } int device_bind(struct udevice *parent, const struct driver *drv, const char *name, void *platdata, int of_offset, struct udevice **devp) { - return device_bind_common(parent, drv, name, platdata, 0, of_offset, 0, - devp); + return device_bind_common(parent, drv, name, platdata, 0, + offset_to_ofnode(of_offset), 0, devp); } int device_bind_by_name(struct udevice *parent, bool pre_reloc_only, @@ -246,7 +247,8 @@ int device_bind_by_name(struct udevice *parent, bool pre_reloc_only, platdata_size = info->platdata_size; #endif return device_bind_common(parent, drv, info->name, - (void *)info->platdata, 0, -1, platdata_size, devp); + (void *)info->platdata, 0, offset_to_ofnode(-1), + platdata_size, devp); } static void *alloc_priv(int size, uint flags)