Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp1588149imd; Sun, 4 Nov 2018 05:54:42 -0800 (PST) X-Google-Smtp-Source: AJdET5er1Ax3qn0qv6pkPGe/0V5XuArTyVkuoIkFfhCFIFPQKRXKxcnad1ay+KUVkH0sFvKYpqKI X-Received: by 2002:a63:41c2:: with SMTP id o185-v6mr16828597pga.11.1541339682309; Sun, 04 Nov 2018 05:54:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541339682; cv=none; d=google.com; s=arc-20160816; b=ZzaQh6xl3APjBMqRHQMllpO14E/PE33OwX5W541WaqpE9PdM/slS0cYnd0Rp7TSRjD dxKCr5jKcImYKT7uJJ9u1IQdDxWtziOwqOYoxMXzNmSiAD/aVX3pfJSGmKas/G4XFq0q 27ppdYbiErTPl7Z/5fFoIACNGm2hxLRAGS4crnyE0D7XtDy7PscmzJz2O8KH2mFAZyfq drUfbeyW9YUbCvgnspPFtS5/WHfQG1sp82zSk9pD1Vt7/lMy9RBxPjvGvkeh91nyYqax +BC29S4KhPMtCZlD/v1Waol8VgpCx6RvVpMiUMGW/ANXXZNx9oqFTBIQ3FOLlQADO9NE HFWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=6cTbArKwlhjoQHp5/QF086wCDZuQ1YRsGIX3OxDyPkM=; b=fQIz3OFKXzzlN0zaOhZ5jW9nLBiK0fmOuHXkor6tBJG7Ck3Z+h5lC07fIPq+ggqtAn 2jUjxzso0aZuhlt9O4OFP1xcgQquiN/ugQUodJ/zoAtm0mx5L6eynN3rMPCjnNhqy5Be PubYhxYYuY1lHRtoSO0AvgGIlUPke48Ax9e6Cp31y88X02DHhUBUL5/+F76yMy580ndX bwS//5WV5+1Y2n3O8gQoYOq6yp0lxxeFXdVRRWfdH50KAaTD9ddFtQjOTYHmqwqK7+m2 5eQ7CVkwqRPOQCTDuHJ+78hEkbsSy7M7K/eXXGA7ZLwzKu7OTAeWuqwiZmBOXYFflZFy lVkg== ARC-Authentication-Results: i=1; mx.google.com; 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 g20-v6si38215949plq.192.2018.11.04.05.54.27; Sun, 04 Nov 2018 05:54:42 -0800 (PST) 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; 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 S1729775AbeKDVt0 (ORCPT + 99 others); Sun, 4 Nov 2018 16:49:26 -0500 Received: from atrey.karlin.mff.cuni.cz ([195.113.26.193]:40666 "EHLO atrey.karlin.mff.cuni.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729232AbeKDVt0 (ORCPT ); Sun, 4 Nov 2018 16:49:26 -0500 Received: by atrey.karlin.mff.cuni.cz (Postfix, from userid 512) id 924288092E; Sun, 4 Nov 2018 13:34:29 +0100 (CET) Date: Sun, 4 Nov 2018 13:34:31 +0100 From: Pavel Machek To: Lubomir Rintel Cc: Mark Brown , Geert Uytterhoeven , Darren Hart , Andy Shevchenko , Greg Kroah-Hartman , James Cameron , Sebastian Reichel , Rob Herring , Mark Rutland , Eric Miao , Haojian Zhuang , Daniel Mack , Robert Jarzmik , linux-spi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, platform-driver-x86@vger.kernel.org, devel@driverdev.osuosl.org, linux-pm@vger.kernel.org Subject: Re: [PATCH 11/15] x86, olpc: Use a correct version when making up a battery node Message-ID: <20181104123430.GD23864@amd> References: <20181010172300.317643-1-lkundrak@v3.sk> <20181010172300.317643-12-lkundrak@v3.sk> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="fblc08uBQ7kpPybH" Content-Disposition: inline In-Reply-To: <20181010172300.317643-12-lkundrak@v3.sk> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --fblc08uBQ7kpPybH Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed 2018-10-10 19:22:56, Lubomir Rintel wrote: > The XO-1 and XO-1.5 batteries apparently differ in an ability to report > ambient temperature. Add a different compatible string to the 1.5 > battery. >=20 > Signed-off-by: Lubomir Rintel Acked-by: Pavel Machek > --- > arch/x86/platform/olpc/olpc_dt.c | 59 +++++++++++++++++++++++--------- > 1 file changed, 42 insertions(+), 17 deletions(-) >=20 > diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/ol= pc_dt.c > index d6ee92986920..6e54e116b0c5 100644 > --- a/arch/x86/platform/olpc/olpc_dt.c > +++ b/arch/x86/platform/olpc/olpc_dt.c > @@ -218,10 +218,28 @@ static u32 __init olpc_dt_get_board_revision(void) > return be32_to_cpu(rev); > } > =20 > -void __init olpc_dt_fixup(void) > +int olpc_dt_compatible_match(phandle node, const char *compat) > { > - int r; > char buf[64]; > + int plen; > + char *p; > + int len; > + > + plen =3D olpc_dt_getproperty(node, "compatible", buf, sizeof(buf)); > + if (plen <=3D 0) > + return 0; > + > + len =3D strlen(compat); > + for (p =3D buf; p < buf + plen; p +=3D strlen(p) + 1) { > + if (strcmp(p, compat) =3D=3D 0) > + return 1; > + } > + > + return 0; > +} > + > +void __init olpc_dt_fixup(void) > +{ > phandle node; > u32 board_rev; > =20 > @@ -229,32 +247,33 @@ void __init olpc_dt_fixup(void) > if (!node) > return; > =20 > - /* > - * If the battery node has a compatible property, we are running a new > - * enough firmware and don't have fixups to make. > - */ > - r =3D olpc_dt_getproperty(node, "compatible", buf, sizeof(buf)); > - if (r > 0) > - return; > - > - pr_info("PROM DT: Old firmware detected, applying fixes\n"); > - > - /* Add olpc,xo1-battery compatible marker to battery node */ > - olpc_dt_interpret("\" /battery@0\" find-device" > - " \" olpc,xo1-battery\" +compatible" > - " device-end"); > - > board_rev =3D olpc_dt_get_board_revision(); > if (!board_rev) > return; > =20 > if (board_rev >=3D olpc_board_pre(0xd0)) { > + if (olpc_dt_compatible_match(node, "olpc,xo1.5-battery")) > + return; > + > + /* Add olpc,xo1.5-battery compatible marker to battery node */ > + olpc_dt_interpret("\" /battery@0\" find-device" > + " \" olpc,xo1.5-battery\" +compatible" > + " device-end"); > + > + /* We're running a very old firmware if this is missing. */ > + if (olpc_dt_compatible_match(node, "olpc,xo1-battery")) > + return; > + > /* XO-1.5: add dcon device */ > olpc_dt_interpret("\" /pci/display@1\" find-device" > " new-device" > " \" dcon\" device-name \" olpc,xo1-dcon\" +compatible" > " finish-device device-end"); > } else { > + /* We're running a very old firmware if this is missing. */ > + if (olpc_dt_compatible_match(node, "olpc,xo1-battery")) > + return; > + > /* XO-1: add dcon device, mark RTC as olpc,xo1-rtc */ > olpc_dt_interpret("\" /pci/display@1,1\" find-device" > " new-device" > @@ -264,6 +283,11 @@ void __init olpc_dt_fixup(void) > " \" olpc,xo1-rtc\" +compatible" > " device-end"); > } > + > + /* Add olpc,xo1-battery compatible marker to battery node */ > + olpc_dt_interpret("\" /battery@0\" find-device" > + " \" olpc,xo1-battery\" +compatible" > + " device-end"); > } > =20 > void __init olpc_dt_build_devicetree(void) > @@ -289,6 +313,7 @@ void __init olpc_dt_build_devicetree(void) > /* A list of DT node/bus matches that we want to expose as platform devi= ces */ > static struct of_device_id __initdata of_ids[] =3D { > { .compatible =3D "olpc,xo1-battery" }, > + { .compatible =3D "olpc,xo1.5-battery" }, > { .compatible =3D "olpc,xo1-dcon" }, > { .compatible =3D "olpc,xo1-rtc" }, > {}, --=20 (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blo= g.html --fblc08uBQ7kpPybH Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAlve51YACgkQMOfwapXb+vKHgACgvjiaNR9mvQBgmk3t0b2lg6q9 xV4AoIFiPzQc4fFbefN4LWGpokLZHl0K =s/mT -----END PGP SIGNATURE----- --fblc08uBQ7kpPybH--