Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
[profile/ivi/kernel-x86-ivi.git] / drivers / cdrom / viocd.c
index 54ca931..dc13eba 100644 (file)
@@ -47,6 +47,7 @@
 #include <asm/iseries/hv_types.h>
 #include <asm/iseries/hv_lp_event.h>
 #include <asm/iseries/vio.h>
+#include <asm/firmware.h>
 
 #define VIOCD_DEVICE                   "iseries/vcd"
 
@@ -175,7 +176,7 @@ static int proc_viocd_open(struct inode *inode, struct file *file)
        return single_open(file, proc_viocd_show, NULL);
 }
 
-static struct file_operations proc_viocd_operations = {
+static const struct file_operations proc_viocd_operations = {
        .open           = proc_viocd_open,
        .read           = seq_read,
        .llseek         = seq_lseek,
@@ -748,6 +749,9 @@ static int __init viocd_init(void)
        struct proc_dir_entry *e;
        int ret = 0;
 
+       if (!firmware_has_feature(FW_FEATURE_ISERIES))
+               return -ENODEV;
+
        if (viopath_hostLp == HvLpIndexInvalid) {
                vio_set_hostlp();
                /* If we don't have a host, bail out */