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>