aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.osdl.org>2006-12-21 02:59:36 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-21 02:59:36 -0500
commit5576d187a0eef3bb3c47500eaab33fb5485bc352 (patch)
tree608ac1f1091eddf17b4930d59c3a61dad7994614 /drivers
parentee2fae03d68e702866a8661fbee7ff2f2f3754d7 (diff)
parent1c9bb1a01ac1bc92a0d98cf3e40a7922ee684dc0 (diff)
Merge branch 'merge' of master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc: [POWERPC] Fix register save area alignment for swapcontext syscall [POWERPC] Fix PCI device channel state initialization [POWERPC] Update MTD OF documentation [POWERPC] Probe Efika platform before CHRP. [POWERPC] Fix build of cell zImage.initrd [POWERPC] iSeries: fix CONFIG_VIOPATH dependency [POWERPC] iSeries: fix viocons init [POWERPC] iSeries: fix viocd init [POWERPC] iSeries: fix iseries_veth init [POWERPC] iSeries: fix viotape init [POWERPC] iSeries: fix viodasd init [POWERPC] Workaround oldworld OF bug with IRQs & P2P bridges [POWERPC] powerpc: add scanning of ebc bus to of_platform [POWERPC] spufs: fix assignment of node numbers [POWERPC] cell: Fix spufs with "new style" device-tree [POWERPC] cell: Enable spider workarounds on all PCI buses [POWERPC] cell: add forward struct declarations to spu.h [POWERPC] cell: update cell_defconfig
Diffstat (limited to 'drivers')
-rw-r--r--drivers/block/viodasd.c6
-rw-r--r--drivers/cdrom/viocd.c4
-rw-r--r--drivers/char/viocons.c7
-rw-r--r--drivers/char/viotape.c5
-rw-r--r--drivers/net/iseries_veth.c9
5 files changed, 27 insertions, 4 deletions
diff --git a/drivers/block/viodasd.c b/drivers/block/viodasd.c
index e19ba4ebcd4e..68592c336011 100644
--- a/drivers/block/viodasd.c
+++ b/drivers/block/viodasd.c
@@ -49,6 +49,7 @@
49#include <asm/iseries/hv_lp_event.h> 49#include <asm/iseries/hv_lp_event.h>
50#include <asm/iseries/hv_lp_config.h> 50#include <asm/iseries/hv_lp_config.h>
51#include <asm/iseries/vio.h> 51#include <asm/iseries/vio.h>
52#include <asm/firmware.h>
52 53
53MODULE_DESCRIPTION("iSeries Virtual DASD"); 54MODULE_DESCRIPTION("iSeries Virtual DASD");
54MODULE_AUTHOR("Dave Boutcher"); 55MODULE_AUTHOR("Dave Boutcher");
@@ -769,6 +770,11 @@ static int __init viodasd_init(void)
769{ 770{
770 int rc; 771 int rc;
771 772
773 if (!firmware_has_feature(FW_FEATURE_ISERIES)) {
774 rc = -ENODEV;
775 goto early_fail;
776 }
777
772 /* Try to open to our host lp */ 778 /* Try to open to our host lp */
773 if (viopath_hostLp == HvLpIndexInvalid) 779 if (viopath_hostLp == HvLpIndexInvalid)
774 vio_set_hostlp(); 780 vio_set_hostlp();
diff --git a/drivers/cdrom/viocd.c b/drivers/cdrom/viocd.c
index 54ca931e19ea..93fbf84dcc4a 100644
--- a/drivers/cdrom/viocd.c
+++ b/drivers/cdrom/viocd.c
@@ -47,6 +47,7 @@
47#include <asm/iseries/hv_types.h> 47#include <asm/iseries/hv_types.h>
48#include <asm/iseries/hv_lp_event.h> 48#include <asm/iseries/hv_lp_event.h>
49#include <asm/iseries/vio.h> 49#include <asm/iseries/vio.h>
50#include <asm/firmware.h>
50 51
51#define VIOCD_DEVICE "iseries/vcd" 52#define VIOCD_DEVICE "iseries/vcd"
52 53
@@ -748,6 +749,9 @@ static int __init viocd_init(void)
748 struct proc_dir_entry *e; 749 struct proc_dir_entry *e;
749 int ret = 0; 750 int ret = 0;
750 751
752 if (!firmware_has_feature(FW_FEATURE_ISERIES))
753 return -ENODEV;
754
751 if (viopath_hostLp == HvLpIndexInvalid) { 755 if (viopath_hostLp == HvLpIndexInvalid) {
752 vio_set_hostlp(); 756 vio_set_hostlp();
753 /* If we don't have a host, bail out */ 757 /* If we don't have a host, bail out */
diff --git a/drivers/char/viocons.c b/drivers/char/viocons.c
index 0e0da443cbd5..8de6b95aeb84 100644
--- a/drivers/char/viocons.c
+++ b/drivers/char/viocons.c
@@ -42,6 +42,7 @@
42#include <linux/tty_flip.h> 42#include <linux/tty_flip.h>
43#include <linux/sysrq.h> 43#include <linux/sysrq.h>
44 44
45#include <asm/firmware.h>
45#include <asm/iseries/vio.h> 46#include <asm/iseries/vio.h>
46#include <asm/iseries/hv_lp_event.h> 47#include <asm/iseries/hv_lp_event.h>
47#include <asm/iseries/hv_call_event.h> 48#include <asm/iseries/hv_call_event.h>
@@ -1060,6 +1061,9 @@ static int __init viocons_init2(void)
1060 atomic_t wait_flag; 1061 atomic_t wait_flag;
1061 int rc; 1062 int rc;
1062 1063
1064 if (!firmware_has_feature(FW_FEATURE_ISERIES))
1065 return -ENODEV;
1066
1063 /* +2 for fudge */ 1067 /* +2 for fudge */
1064 rc = viopath_open(HvLpConfig_getPrimaryLpIndex(), 1068 rc = viopath_open(HvLpConfig_getPrimaryLpIndex(),
1065 viomajorsubtype_chario, VIOCHAR_WINDOW + 2); 1069 viomajorsubtype_chario, VIOCHAR_WINDOW + 2);
@@ -1145,6 +1149,9 @@ static int __init viocons_init(void)
1145{ 1149{
1146 int i; 1150 int i;
1147 1151
1152 if (!firmware_has_feature(FW_FEATURE_ISERIES))
1153 return -ENODEV;
1154
1148 printk(VIOCONS_KERN_INFO "registering console\n"); 1155 printk(VIOCONS_KERN_INFO "registering console\n");
1149 for (i = 0; i < VTTY_PORTS; i++) { 1156 for (i = 0; i < VTTY_PORTS; i++) {
1150 port_info[i].lp = HvLpIndexInvalid; 1157 port_info[i].lp = HvLpIndexInvalid;
diff --git a/drivers/char/viotape.c b/drivers/char/viotape.c
index 94d79cb8ce8d..9438512b17f1 100644
--- a/drivers/char/viotape.c
+++ b/drivers/char/viotape.c
@@ -49,7 +49,7 @@
49 49
50#include <asm/uaccess.h> 50#include <asm/uaccess.h>
51#include <asm/ioctls.h> 51#include <asm/ioctls.h>
52 52#include <asm/firmware.h>
53#include <asm/vio.h> 53#include <asm/vio.h>
54#include <asm/iseries/vio.h> 54#include <asm/iseries/vio.h>
55#include <asm/iseries/hv_lp_event.h> 55#include <asm/iseries/hv_lp_event.h>
@@ -997,6 +997,9 @@ int __init viotap_init(void)
997 int ret; 997 int ret;
998 struct proc_dir_entry *e; 998 struct proc_dir_entry *e;
999 999
1000 if (!firmware_has_feature(FW_FEATURE_ISERIES))
1001 return -ENODEV;
1002
1000 op_struct_list = NULL; 1003 op_struct_list = NULL;
1001 if ((ret = add_op_structs(VIOTAPE_MAXREQ)) < 0) { 1004 if ((ret = add_op_structs(VIOTAPE_MAXREQ)) < 0) {
1002 printk(VIOTAPE_KERN_WARN "couldn't allocate op structs\n"); 1005 printk(VIOTAPE_KERN_WARN "couldn't allocate op structs\n");
diff --git a/drivers/net/iseries_veth.c b/drivers/net/iseries_veth.c
index d6f4f185bf37..2194b567239f 100644
--- a/drivers/net/iseries_veth.c
+++ b/drivers/net/iseries_veth.c
@@ -73,7 +73,7 @@
73#include <asm/abs_addr.h> 73#include <asm/abs_addr.h>
74#include <asm/iseries/mf.h> 74#include <asm/iseries/mf.h>
75#include <asm/uaccess.h> 75#include <asm/uaccess.h>
76 76#include <asm/firmware.h>
77#include <asm/iseries/hv_lp_config.h> 77#include <asm/iseries/hv_lp_config.h>
78#include <asm/iseries/hv_types.h> 78#include <asm/iseries/hv_types.h>
79#include <asm/iseries/hv_lp_event.h> 79#include <asm/iseries/hv_lp_event.h>
@@ -1668,7 +1668,7 @@ static struct vio_driver veth_driver = {
1668 * Module initialization/cleanup 1668 * Module initialization/cleanup
1669 */ 1669 */
1670 1670
1671void __exit veth_module_cleanup(void) 1671static void __exit veth_module_cleanup(void)
1672{ 1672{
1673 int i; 1673 int i;
1674 struct veth_lpar_connection *cnx; 1674 struct veth_lpar_connection *cnx;
@@ -1697,11 +1697,14 @@ void __exit veth_module_cleanup(void)
1697} 1697}
1698module_exit(veth_module_cleanup); 1698module_exit(veth_module_cleanup);
1699 1699
1700int __init veth_module_init(void) 1700static int __init veth_module_init(void)
1701{ 1701{
1702 int i; 1702 int i;
1703 int rc; 1703 int rc;
1704 1704
1705 if (!firmware_has_feature(FW_FEATURE_ISERIES))
1706 return -ENODEV;
1707
1705 this_lp = HvLpConfig_getLpIndex_outline(); 1708 this_lp = HvLpConfig_getLpIndex_outline();
1706 1709
1707 for (i = 0; i < HVMAXARCHITECTEDLPS; ++i) { 1710 for (i = 0; i < HVMAXARCHITECTEDLPS; ++i) {