tpm: clean up tpm_nsc driver for platform_device suspend/resume compliance
authorDavid Smith <dds@google.com>
Thu, 8 Jan 2009 02:08:57 +0000 (18:08 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 8 Jan 2009 16:31:12 +0000 (08:31 -0800)
Signed-off-by: Marcel Selhorst <tpm@selhorst.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/char/tpm/tpm_nsc.c

index ab18c1e7b115fd098ef56599241560d67fb19597..70efba2ee05321a8960d6391b9cc742eb953dae7 100644 (file)
@@ -273,12 +273,23 @@ static void tpm_nsc_remove(struct device *dev)
        }
 }
 
-static struct device_driver nsc_drv = {
-       .name = "tpm_nsc",
-       .bus = &platform_bus_type,
-       .owner = THIS_MODULE,
-       .suspend = tpm_pm_suspend,
-       .resume = tpm_pm_resume,
+static int tpm_nsc_suspend(struct platform_device *dev, pm_message_t msg)
+{
+       return tpm_pm_suspend(&dev->dev, msg);
+}
+
+static int tpm_nsc_resume(struct platform_device *dev)
+{
+       return tpm_pm_resume(&dev->dev);
+}
+
+static struct platform_driver nsc_drv = {
+       .suspend         = tpm_nsc_suspend,
+       .resume          = tpm_nsc_resume,
+       .driver          = {
+               .name    = "tpm_nsc",
+               .owner   = THIS_MODULE,
+       },
 };
 
 static int __init init_nsc(void)
@@ -297,7 +308,7 @@ static int __init init_nsc(void)
                        return -ENODEV;
        }
 
-       err = driver_register(&nsc_drv);
+       err = platform_driver_register(&nsc_drv);
        if (err)
                return err;
 
@@ -308,17 +319,15 @@ static int __init init_nsc(void)
        /* enable the DPM module */
        tpm_write_index(nscAddrBase, NSC_LDC_INDEX, 0x01);
 
-       pdev = kzalloc(sizeof(struct platform_device), GFP_KERNEL);
+       pdev = platform_device_alloc("tpm_nscl0", -1);
        if (!pdev) {
                rc = -ENOMEM;
                goto err_unreg_drv;
        }
 
-       pdev->name = "tpm_nscl0";
-       pdev->id = -1;
        pdev->num_resources = 0;
+       pdev->dev.driver = &nsc_drv.driver;
        pdev->dev.release = tpm_nsc_remove;
-       pdev->dev.driver = &nsc_drv;
 
        if ((rc = platform_device_register(pdev)) < 0)
                goto err_free_dev;
@@ -377,7 +386,7 @@ err_unreg_dev:
 err_free_dev:
        kfree(pdev);
 err_unreg_drv:
-       driver_unregister(&nsc_drv);
+       platform_driver_unregister(&nsc_drv);
        return rc;
 }
 
@@ -390,7 +399,7 @@ static void __exit cleanup_nsc(void)
                pdev = NULL;
        }
 
-       driver_unregister(&nsc_drv);
+       platform_driver_unregister(&nsc_drv);
 }
 
 module_init(init_nsc);