Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Jan 2015 01:05:36 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r276680 - head/sys/powerpc/ps3
Message-ID:  <201501050105.t0515abb071875@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: nwhitehorn
Date: Mon Jan  5 01:05:35 2015
New Revision: 276680
URL: https://svnweb.freebsd.org/changeset/base/276680

Log:
  Use FDT properties to identify a PS3 if present.

Modified:
  head/sys/powerpc/ps3/platform_ps3.c
  head/sys/powerpc/ps3/ps3_syscons.c

Modified: head/sys/powerpc/ps3/platform_ps3.c
==============================================================================
--- head/sys/powerpc/ps3/platform_ps3.c	Mon Jan  5 00:50:16 2015	(r276679)
+++ head/sys/powerpc/ps3/platform_ps3.c	Mon Jan  5 01:05:35 2015	(r276680)
@@ -49,6 +49,8 @@ __FBSDID("$FreeBSD$");
 #include <machine/spr.h>
 #include <machine/vmparam.h>
 
+#include <dev/ofw/openfirm.h>
+
 #include "platform_if.h"
 #include "ps3-hvcall.h"
 
@@ -103,8 +105,17 @@ PLATFORM_DEF(ps3_platform);
 static int
 ps3_probe(platform_t plat)
 {
+	phandle_t root;
+	char compatible[64];
+
+	root = OF_finddevice("/");
+	if (OF_getprop(root, "compatible", compatible, sizeof(compatible)) <= 0)
+                return (BUS_PROBE_NOWILDCARD);
+	
+	if (strncmp(compatible, "sony,ps3", sizeof(compatible)) != 0)
+		return (BUS_PROBE_NOWILDCARD);
 
-	return (BUS_PROBE_NOWILDCARD);
+	return (BUS_PROBE_SPECIFIC);
 }
 
 static int

Modified: head/sys/powerpc/ps3/ps3_syscons.c
==============================================================================
--- head/sys/powerpc/ps3/ps3_syscons.c	Mon Jan  5 00:50:16 2015	(r276679)
+++ head/sys/powerpc/ps3/ps3_syscons.c	Mon Jan  5 01:05:35 2015	(r276680)
@@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$");
 #include <machine/platform.h>
 #include <machine/pmap.h>
 
+#include <dev/ofw/openfirm.h>
 #include <dev/vt/vt.h>
 #include <dev/vt/hw/fb/vt_fb.h>
 #include <dev/vt/colors/vt_termcolors.h>
@@ -95,9 +96,7 @@ ps3fb_probe(struct vt_device *vd)
 	struct ps3fb_softc *sc;
 	int disable;
 	char compatible[64];
-#if 0
 	phandle_t root;
-#endif
 
 	disable = 0;
 	TUNABLE_INT_FETCH("hw.syscons.disable", &disable);
@@ -106,18 +105,16 @@ ps3fb_probe(struct vt_device *vd)
 
 	sc = &ps3fb_softc;
 
-#if 0
+	TUNABLE_STR_FETCH("hw.platform", compatible, sizeof(compatible));
+	if (strcmp(compatible, "ps3") == 0)
+		return (CN_INTERNAL);
+
 	root = OF_finddevice("/");
 	if (OF_getprop(root, "compatible", compatible, sizeof(compatible)) <= 0)
-                return (0);
+                return (CN_DEAD);
 	
 	if (strncmp(compatible, "sony,ps3", sizeof(compatible)) != 0)
-		return (0);
-#else
-	TUNABLE_STR_FETCH("hw.platform", compatible, sizeof(compatible));
-	if (strcmp(compatible, "ps3") != 0)
 		return (CN_DEAD);
-#endif
 
 	return (CN_INTERNAL);
 }



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