Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp990822imm; Fri, 11 May 2018 09:22:43 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpyjNysFkmp8lc2g/cxm5wdus4vIva6OYN0huIOO7uq0HZh+16yeReeGa4n2N247bbX1Tl1 X-Received: by 2002:a17:902:3303:: with SMTP id a3-v6mr6100280plc.209.1526055763265; Fri, 11 May 2018 09:22:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526055763; cv=none; d=google.com; s=arc-20160816; b=q53E7ozsVJDAmIEiWlbhfffh48almj5nchmRK2Pdsdmna7wG8zykIYzPyWPuH5mHoj uijto7kIQHv6P1EkjqwFF7KyoIdMyajiGcK9Aeoh8+/+QA87VekpEI5gvyo1EOCVnSGI FzBgdi2KhHc25jb+x+V1SW3Fk4MD/otFD5PNSTtO24jsfOPdBXPB+colFeaWQBbdiiJd 7IBWeOqgcps9P359349wngY3jGwvhmR8xl7rJ/b2pY7sLGcbEyHoCug6jSF6ub8zlT7v p7A8Nu0Yg+Cg1s8C2sbUEqKW3PP6ydRUJYVuR0bjdpgn9bx1iQ9fLgqd87qFCtBbA3YY fYrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=DahAdSlzgc7DeiUSxkEimltI3pxa0xtlyVdWzMrvjGU=; b=fDBUvWxd38Ymveqr+OhcD0ZTNLbRY+Y41T49k1HCFEyyA6e9AQOu2SqFWLznlS3Zov sm5sGK6BUG+pyXWZYLxAacKiHMvole1hGyqOrRCgmi1JWjQeIbjCkepxEnU3wdkGHeVU KnZXUvm+bXZiFXQ1yMXzOrmaXCycQ+LalFR93AJ6nDOuSPdRKFYlmzF0HMU4Rl5iJN7M IU8ApSNmn+Eq0HaGPW0/eWHC+yD/RqTesd9Xgx0+Um1gUoME9T/QvWeRgCXp/ZQQS27E CRmR0HDN3jafiET02WAaCdkUj+4RMZvoF811vVJu9dKmIoEw0ZFZV0Vspli9B0VV2Kwy PNWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bgdev-pl.20150623.gappssmtp.com header.s=20150623 header.b=RWhgBF2b; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 24-v6si3710968pfj.6.2018.05.11.09.22.29; Fri, 11 May 2018 09:22:43 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@bgdev-pl.20150623.gappssmtp.com header.s=20150623 header.b=RWhgBF2b; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752259AbeEKQV4 (ORCPT + 99 others); Fri, 11 May 2018 12:21:56 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:44536 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752241AbeEKQVw (ORCPT ); Fri, 11 May 2018 12:21:52 -0400 Received: by mail-wr0-f193.google.com with SMTP id y15-v6so5880432wrg.11 for ; Fri, 11 May 2018 09:21:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=DahAdSlzgc7DeiUSxkEimltI3pxa0xtlyVdWzMrvjGU=; b=RWhgBF2bpcE0B5hLyDslTLTAx8lknLzTfPXFV7YnRpG43rjtSVgpBDzMl4k4ESIlRk DoJCNNVPa6TS1Qt2Y2eMbIj9Er1EGJjXeaprzqCRbpa0ReP5ovz3mP6wYH+BVXALSYQR zBy4/73hjjMmLXIJ5f5h1TJO1xMTQvTJGF49IN3I/kZrujsbIlg1F/cXJTT0UYW4UAbl 8iU8y242fUkNVddVyw8I7oo71GRAE5XulbONTaQSM8XEfSI4oixBCxOOPSkMvBbVgMo+ Ke/29vcBOiANY9dAgbdMMIpAmLn69N2vmm5lC3+TiKZEcW9+fq3x0IM49muVYmDkq85b tvrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=DahAdSlzgc7DeiUSxkEimltI3pxa0xtlyVdWzMrvjGU=; b=F/KSxhPtA3Sk4WOZBaYZkG+75/BA8eEkKZmBqaGqtGLZxiXhVRY8mh5eUFBmMMyo0Q QW0anpI3pv3TL6Dy+g76x73mTQHT0nofxAhy62PTKXVqQhXDWCuw7wMrGmcGehTjAWDx QbjnCTufqRUYF5z0El8tFP9WZpbLVi60Zo/e6uqseg96/AF9e6N5OSA9azixTmcUdDyc FGdvggiGJn1zZY6ssspXH3hG4WviCADHXpB3+w4elDACg0+j2HCPa3UeylbCqZWLjXVb FwaB8s3q7n7mbiiGKui9LyvoOtUMkfhkguqHpWuZ+6B0M0ancEgH1fArfzBneBgltCcz Lncg== X-Gm-Message-State: ALKqPwf4qSOdGn1VN6yBl8SpsAX/OjPsp1/0rX1ggfTIfd9uekNm6wph jtkvR3kzbFQP30N+JyWbWUiwwA== X-Received: by 2002:adf:df02:: with SMTP id y2-v6mr5252392wrl.92.1526055711301; Fri, 11 May 2018 09:21:51 -0700 (PDT) Received: from brgl-bgdev.baylibre.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id q17-v6sm1429523wmf.3.2018.05.11.09.21.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 May 2018 09:21:50 -0700 (PDT) From: Bartosz Golaszewski To: Sekhar Nori , Kevin Hilman , David Lechner , Michael Turquette , Stephen Boyd , Arnd Bergmann , Greg Kroah-Hartman , Mark Rutland , Yoshinori Sato , Rich Felker , Andy Shevchenko , Marc Zyngier , "Rafael J . Wysocki" , Peter Rosin , Jiri Slaby , Thomas Gleixner , Daniel Lezcano , Geert Uytterhoeven , Magnus Damm , Johan Hovold , Rob Herring , Frank Rowand Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arch@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 12/12] of/platform: make the OF code aware of early platform drivers Date: Fri, 11 May 2018 18:20:28 +0200 Message-Id: <20180511162028.20616-13-brgl@bgdev.pl> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180511162028.20616-1-brgl@bgdev.pl> References: <20180511162028.20616-1-brgl@bgdev.pl> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bartosz Golaszewski Check the relevant flag in the device node and skip the allocation part for devices that were populated early. Signed-off-by: Bartosz Golaszewski --- drivers/of/platform.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/of/platform.c b/drivers/of/platform.c index 0e554fe1f325..91760e2d3dc7 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -21,6 +21,7 @@ #include #include #include +#include const struct of_device_id of_default_bus_match_table[] = { { .compatible = "simple-bus", }, @@ -196,9 +197,17 @@ static struct platform_device *of_platform_device_create_pdata( of_node_test_and_set_flag(np, OF_POPULATED)) return NULL; - dev = of_device_alloc(np, bus_id, parent); - if (!dev) - goto err_clear_flag; + if (of_node_check_flag(np, OF_POPULATED_EARLY)) { + dev = of_early_to_platform_device(np); + if (IS_ERR(dev)) + goto err_clear_flag; + + of_device_init(dev, np, bus_id, parent); + } else { + dev = of_device_alloc(np, bus_id, parent); + if (!dev) + goto err_clear_flag; + } dev->dev.bus = &platform_bus_type; dev->dev.platform_data = platform_data; -- 2.17.0