|
@@ -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);
|