]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/tty/hvc/hvc_vio.c
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
[karo-tx-linux.git] / drivers / tty / hvc / hvc_vio.c
index f575a9b5ede7b05bd24c87ecf58425e89ec20fdc..b05dc508662795639d391aee29ed568c2e2fe75e 100644 (file)
@@ -41,7 +41,6 @@
 #include <linux/delay.h>
 #include <linux/slab.h>
 #include <linux/console.h>
-#include <linux/module.h>
 
 #include <asm/hvconsole.h>
 #include <asm/vio.h>
@@ -61,7 +60,6 @@ static struct vio_device_id hvc_driver_table[] = {
 #endif
        { "", "" }
 };
-MODULE_DEVICE_TABLE(vio, hvc_driver_table);
 
 typedef enum hv_protocol {
        HV_PROTOCOL_RAW,
@@ -363,26 +361,13 @@ static int hvc_vio_probe(struct vio_dev *vdev,
        return 0;
 }
 
-static int hvc_vio_remove(struct vio_dev *vdev)
-{
-       struct hvc_struct *hp = dev_get_drvdata(&vdev->dev);
-       int rc, termno;
-
-       termno = hp->vtermno;
-       rc = hvc_remove(hp);
-       if (rc == 0) {
-               if (hvterm_privs[termno] != &hvterm_priv0)
-                       kfree(hvterm_privs[termno]);
-               hvterm_privs[termno] = NULL;
-       }
-       return rc;
-}
-
 static struct vio_driver hvc_vio_driver = {
        .id_table       = hvc_driver_table,
        .probe          = hvc_vio_probe,
-       .remove         = hvc_vio_remove,
        .name           = hvc_driver_name,
+       .driver = {
+               .suppress_bind_attrs    = true,
+       },
 };
 
 static int __init hvc_vio_init(void)
@@ -394,13 +379,7 @@ static int __init hvc_vio_init(void)
 
        return rc;
 }
-module_init(hvc_vio_init); /* after drivers/char/hvc_console.c */
-
-static void __exit hvc_vio_exit(void)
-{
-       vio_unregister_driver(&hvc_vio_driver);
-}
-module_exit(hvc_vio_exit);
+device_initcall(hvc_vio_init); /* after drivers/tty/hvc/hvc_console.c */
 
 void __init hvc_vio_init_early(void)
 {