aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ps3/ps3av.c
diff options
context:
space:
mode:
authorGeert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>2007-03-09 18:05:38 -0500
committerArnd Bergmann <arnd@klappe.arndb.de>2007-03-09 18:07:51 -0500
commitef596c697a4d80048eccf50530153d7e3330c127 (patch)
treeafd1d1cf9c4fc2c53d557a669d0fdba085dc3e35 /drivers/ps3/ps3av.c
parent94b2a4393c500a620de90c3266d595926302e26b (diff)
[POWERPC] ps3: always make sure were running on a PS3
Add missing checks to PS3 specific drivers ps3av and sys-manager to verify that we are actually running on a PS3 (pointed out by Arnd). Correct existing checks in other subsystems/drivers to return -ENODEV instead of zero. Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Diffstat (limited to 'drivers/ps3/ps3av.c')
-rw-r--r--drivers/ps3/ps3av.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/ps3/ps3av.c b/drivers/ps3/ps3av.c
index 1926b4d3e1f4..d21e04ccb021 100644
--- a/drivers/ps3/ps3av.c
+++ b/drivers/ps3/ps3av.c
@@ -24,6 +24,8 @@
24#include <linux/reboot.h> 24#include <linux/reboot.h>
25#include <linux/kernel.h> 25#include <linux/kernel.h>
26#include <linux/ioctl.h> 26#include <linux/ioctl.h>
27
28#include <asm/firmware.h>
27#include <asm/lv1call.h> 29#include <asm/lv1call.h>
28#include <asm/ps3av.h> 30#include <asm/ps3av.h>
29#include <asm/ps3.h> 31#include <asm/ps3.h>
@@ -947,7 +949,12 @@ static struct ps3_vuart_port_driver ps3av_driver = {
947 949
948static int ps3av_module_init(void) 950static int ps3av_module_init(void)
949{ 951{
950 int error = ps3_vuart_port_driver_register(&ps3av_driver); 952 int error;
953
954 if (!firmware_has_feature(FW_FEATURE_PS3_LV1))
955 return -ENODEV;
956
957 error = ps3_vuart_port_driver_register(&ps3av_driver);
951 if (error) { 958 if (error) {
952 printk(KERN_ERR 959 printk(KERN_ERR
953 "%s: ps3_vuart_port_driver_register failed %d\n", 960 "%s: ps3_vuart_port_driver_register failed %d\n",