Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Jan 2016 13:35:07 +0000 (UTC)
From:      Zbigniew Bodek <zbb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r294419 - in head/sys: arm/mv dev/fdt
Message-ID:  <201601201335.u0KDZ7ss061471@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: zbb
Date: Wed Jan 20 13:35:06 2016
New Revision: 294419
URL: https://svnweb.freebsd.org/changeset/base/294419

Log:
  Do not require strict compatibility on simplebus
  
  Strict compatibility requirement is a root of problems when simplebus'
  node has two compatibility strings (i.e. on Armada38x). Removing this
  requirement should not interfere with other platforms.
  
  fdt_is_compatible_strict() and fdt_find_compatible() calls were changed
  in fdt_common.c and mv_common.c.
  
  Reviewed by:    ian, imp
  Obtained from:	Semihalf
  Sponsored by:	Stormshield
  Submitted by:	Bartosz Szczepanek <bsz@semihalf.com>
  Differential revision:  https://reviews.freebsd.org/D4602

Modified:
  head/sys/arm/mv/mv_common.c
  head/sys/dev/fdt/fdt_common.c

Modified: head/sys/arm/mv/mv_common.c
==============================================================================
--- head/sys/arm/mv/mv_common.c	Wed Jan 20 13:32:13 2016	(r294418)
+++ head/sys/arm/mv/mv_common.c	Wed Jan 20 13:35:06 2016	(r294419)
@@ -2064,7 +2064,7 @@ fdt_win_setup(void)
 		 */
 		child = OF_peer(child);
 		if ((child == 0) && (node == OF_finddevice("/"))) {
-			node = fdt_find_compatible(node, "simple-bus", 1);
+			node = fdt_find_compatible(node, "simple-bus", 0);
 			if (node == 0)
 				return (ENXIO);
 			child = OF_child(node);

Modified: head/sys/dev/fdt/fdt_common.c
==============================================================================
--- head/sys/dev/fdt/fdt_common.c	Wed Jan 20 13:32:13 2016	(r294418)
+++ head/sys/dev/fdt/fdt_common.c	Wed Jan 20 13:35:06 2016	(r294419)
@@ -212,7 +212,7 @@ fdt_immr_addr(vm_offset_t immr_va)
 	 * Try to access the SOC node directly i.e. through /aliases/.
 	 */
 	if ((node = OF_finddevice("soc")) != 0)
-		if (fdt_is_compatible_strict(node, "simple-bus"))
+		if (fdt_is_compatible(node, "simple-bus"))
 			goto moveon;
 	/*
 	 * Find the node the long way.
@@ -220,7 +220,7 @@ fdt_immr_addr(vm_offset_t immr_va)
 	if ((node = OF_finddevice("/")) == 0)
 		return (ENXIO);
 
-	if ((node = fdt_find_compatible(node, "simple-bus", 1)) == 0)
+	if ((node = fdt_find_compatible(node, "simple-bus", 0)) == 0)
 		return (ENXIO);
 
 moveon:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601201335.u0KDZ7ss061471>