Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-mmc
[sfrench/cifs-2.6.git] / drivers / char / mbcs.c
index ac9cfa9701ea9003d0f440ec572e0eecaec7a1a3..0385650f6077892843b966f3c68018c254a46492 100644 (file)
@@ -10,7 +10,6 @@
  *     MOATB Core Services driver.
  */
 
-#include <linux/config.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
@@ -593,7 +592,7 @@ static int mbcs_intr_alloc(struct cx_dev *dev)
        getdma->intrHostDest = sn_irq->irq_xtalkaddr;
        getdma->intrVector = sn_irq->irq_irq;
        if (request_irq(sn_irq->irq_irq,
-                       (void *)mbcs_completion_intr_handler, SA_SHIRQ,
+                       (void *)mbcs_completion_intr_handler, IRQF_SHARED,
                        "MBCS get intr", (void *)soft)) {
                tiocx_irq_free(soft->get_sn_irq);
                return -EAGAIN;
@@ -609,7 +608,7 @@ static int mbcs_intr_alloc(struct cx_dev *dev)
        putdma->intrHostDest = sn_irq->irq_xtalkaddr;
        putdma->intrVector = sn_irq->irq_irq;
        if (request_irq(sn_irq->irq_irq,
-                       (void *)mbcs_completion_intr_handler, SA_SHIRQ,
+                       (void *)mbcs_completion_intr_handler, IRQF_SHARED,
                        "MBCS put intr", (void *)soft)) {
                tiocx_irq_free(soft->put_sn_irq);
                free_irq(soft->get_sn_irq->irq_irq, soft);
@@ -629,7 +628,7 @@ static int mbcs_intr_alloc(struct cx_dev *dev)
        algo->intrHostDest = sn_irq->irq_xtalkaddr;
        algo->intrVector = sn_irq->irq_irq;
        if (request_irq(sn_irq->irq_irq,
-                       (void *)mbcs_completion_intr_handler, SA_SHIRQ,
+                       (void *)mbcs_completion_intr_handler, IRQF_SHARED,
                        "MBCS algo intr", (void *)soft)) {
                tiocx_irq_free(soft->algo_sn_irq);
                free_irq(soft->put_sn_irq->irq_irq, soft);
@@ -699,7 +698,7 @@ static inline int mbcs_hw_init(struct mbcs_soft *soft)
        return 0;
 }
 
-static ssize_t show_algo(struct device *dev, char *buf)
+static ssize_t show_algo(struct device *dev, struct device_attribute *attr, char *buf)
 {
        struct cx_dev *cx_dev = to_cx_dev(dev);
        struct mbcs_soft *soft = cx_dev->soft;
@@ -715,7 +714,7 @@ static ssize_t show_algo(struct device *dev, char *buf)
                       (debug0 >> 32), (debug0 & 0xffffffff));
 }
 
-static ssize_t store_algo(struct device *dev, const char *buf, size_t count)
+static ssize_t store_algo(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
 {
        int n;
        struct cx_dev *cx_dev = to_cx_dev(dev);
@@ -750,7 +749,7 @@ static int mbcs_probe(struct cx_dev *dev, const struct cx_device_id *id)
 
        dev->soft = NULL;
 
-       soft = kcalloc(1, sizeof(struct mbcs_soft), GFP_KERNEL);
+       soft = kzalloc(sizeof(struct mbcs_soft), GFP_KERNEL);
        if (soft == NULL)
                return -ENOMEM;
 
@@ -830,6 +829,9 @@ static int __init mbcs_init(void)
 {
        int rv;
 
+       if (!ia64_platform_is("sn2"))
+               return -ENODEV;
+
        // Put driver into chrdevs[].  Get major number.
        rv = register_chrdev(mbcs_major, DEVICE_NAME, &mbcs_ops);
        if (rv < 0) {