svn commit: r294419 - in head/sys: arm/mv dev/fdt

Zbigniew Bodek zbb at FreeBSD.org
Wed Jan 20 13:35:08 UTC 2016


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 at 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:


More information about the svn-src-all mailing list