Merge ../linus
[linux-drm-fsl-dcu.git] / drivers / char / tb0219.c
index b3d411a756fee2d25a24882d60c3a9215c1ab593..4c431cb7cf1b1f21f1c32389d738c005c0df7a9d 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Driver for TANBAC TB0219 base board.
  *
- *  Copyright (C) 2005  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ *  Copyright (C) 2005  Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
 #include <asm/vr41xx/giu.h>
 #include <asm/vr41xx/tb0219.h>
 
-MODULE_AUTHOR("Yoichi Yuasa <yuasa@hh.iij4u.or.jp>");
+MODULE_AUTHOR("Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>");
 MODULE_DESCRIPTION("TANBAC TB0219 base board driver");
 MODULE_LICENSE("GPL");
 
@@ -164,7 +164,7 @@ static ssize_t tanbac_tb0219_read(struct file *file, char __user *buf, size_t le
        unsigned int minor;
        char value;
 
-       minor = iminor(file->f_dentry->d_inode);
+       minor = iminor(file->f_path.dentry->d_inode);
        switch (minor) {
        case 0:
                value = get_led();
@@ -200,7 +200,7 @@ static ssize_t tanbac_tb0219_write(struct file *file, const char __user *data,
        int retval = 0;
        char c;
 
-       minor = iminor(file->f_dentry->d_inode);
+       minor = iminor(file->f_path.dentry->d_inode);
        switch (minor) {
        case 0:
                type = TYPE_LED;
@@ -255,7 +255,7 @@ static int tanbac_tb0219_release(struct inode *inode, struct file *file)
        return 0;
 }
 
-static struct file_operations tb0219_fops = {
+static const struct file_operations tb0219_fops = {
        .owner          = THIS_MODULE,
        .read           = tanbac_tb0219_read,
        .write          = tanbac_tb0219_write,
@@ -283,7 +283,7 @@ static void tb0219_pci_irq_init(void)
        vr41xx_set_irq_level(TB0219_PCI_SLOT3_PIN, IRQ_LEVEL_LOW);
 }
 
-static int tb0219_probe(struct platform_device *dev)
+static int __devinit tb0219_probe(struct platform_device *dev)
 {
        int retval;
 
@@ -319,7 +319,7 @@ static int tb0219_probe(struct platform_device *dev)
        return 0;
 }
 
-static int tb0219_remove(struct platform_device *dev)
+static int __devexit tb0219_remove(struct platform_device *dev)
 {
        _machine_restart = old_machine_restart;
 
@@ -335,19 +335,26 @@ static struct platform_device *tb0219_platform_device;
 
 static struct platform_driver tb0219_device_driver = {
        .probe          = tb0219_probe,
-       .remove         = tb0219_remove,
+       .remove         = __devexit_p(tb0219_remove),
        .driver         = {
                .name   = "TB0219",
+               .owner  = THIS_MODULE,
        },
 };
 
-static int __devinit tanbac_tb0219_init(void)
+static int __init tanbac_tb0219_init(void)
 {
        int retval;
 
-       tb0219_platform_device = platform_device_register_simple("TB0219", -1, NULL, 0);
-       if (IS_ERR(tb0219_platform_device))
-               return PTR_ERR(tb0219_platform_device);
+       tb0219_platform_device = platform_device_alloc("TB0219", -1);
+       if (!tb0219_platform_device)
+               return -ENOMEM;
+
+       retval = platform_device_add(tb0219_platform_device);
+       if (retval < 0) {
+               platform_device_put(tb0219_platform_device);
+               return retval;
+       }
 
        retval = platform_driver_register(&tb0219_device_driver);
        if (retval < 0)
@@ -356,10 +363,9 @@ static int __devinit tanbac_tb0219_init(void)
        return retval;
 }
 
-static void __devexit tanbac_tb0219_exit(void)
+static void __exit tanbac_tb0219_exit(void)
 {
        platform_driver_unregister(&tb0219_device_driver);
-
        platform_device_unregister(tb0219_platform_device);
 }