aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/tpm/tpm_tis.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/tpm/tpm_tis.c')
-rw-r--r--drivers/char/tpm/tpm_tis.c40
1 files changed, 21 insertions, 19 deletions
diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index 2405f17b29dd..04a18bffb730 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -597,7 +597,7 @@ out_err:
597 tpm_remove_hardware(chip->dev); 597 tpm_remove_hardware(chip->dev);
598 return rc; 598 return rc;
599} 599}
600 600#ifdef CONFIG_PNP
601static int __devinit tpm_tis_pnp_init(struct pnp_dev *pnp_dev, 601static int __devinit tpm_tis_pnp_init(struct pnp_dev *pnp_dev,
602 const struct pnp_device_id *pnp_id) 602 const struct pnp_device_id *pnp_id)
603{ 603{
@@ -662,7 +662,7 @@ static struct pnp_driver tis_pnp_driver = {
662module_param_string(hid, tpm_pnp_tbl[TIS_HID_USR_IDX].id, 662module_param_string(hid, tpm_pnp_tbl[TIS_HID_USR_IDX].id,
663 sizeof(tpm_pnp_tbl[TIS_HID_USR_IDX].id), 0444); 663 sizeof(tpm_pnp_tbl[TIS_HID_USR_IDX].id), 0444);
664MODULE_PARM_DESC(hid, "Set additional specific HID for this driver to probe"); 664MODULE_PARM_DESC(hid, "Set additional specific HID for this driver to probe");
665 665#endif
666static int tpm_tis_suspend(struct platform_device *dev, pm_message_t msg) 666static int tpm_tis_suspend(struct platform_device *dev, pm_message_t msg)
667{ 667{
668 return tpm_pm_suspend(&dev->dev, msg); 668 return tpm_pm_suspend(&dev->dev, msg);
@@ -689,21 +689,21 @@ MODULE_PARM_DESC(force, "Force device probe rather than using ACPI entry");
689static int __init init_tis(void) 689static int __init init_tis(void)
690{ 690{
691 int rc; 691 int rc;
692#ifdef CONFIG_PNP
693 if (!force)
694 return pnp_register_driver(&tis_pnp_driver);
695#endif
692 696
693 if (force) { 697 rc = platform_driver_register(&tis_drv);
694 rc = platform_driver_register(&tis_drv); 698 if (rc < 0)
695 if (rc < 0)
696 return rc;
697 if (IS_ERR(pdev=platform_device_register_simple("tpm_tis", -1, NULL, 0)))
698 return PTR_ERR(pdev);
699 if((rc=tpm_tis_init(&pdev->dev, TIS_MEM_BASE, TIS_MEM_LEN, 0)) != 0) {
700 platform_device_unregister(pdev);
701 platform_driver_unregister(&tis_drv);
702 }
703 return rc; 699 return rc;
700 if (IS_ERR(pdev=platform_device_register_simple("tpm_tis", -1, NULL, 0)))
701 return PTR_ERR(pdev);
702 if((rc=tpm_tis_init(&pdev->dev, TIS_MEM_BASE, TIS_MEM_LEN, 0)) != 0) {
703 platform_device_unregister(pdev);
704 platform_driver_unregister(&tis_drv);
704 } 705 }
705 706 return rc;
706 return pnp_register_driver(&tis_pnp_driver);
707} 707}
708 708
709static void __exit cleanup_tis(void) 709static void __exit cleanup_tis(void)
@@ -727,12 +727,14 @@ static void __exit cleanup_tis(void)
727 list_del(&i->list); 727 list_del(&i->list);
728 } 728 }
729 spin_unlock(&tis_lock); 729 spin_unlock(&tis_lock);
730 730#ifdef CONFIG_PNP
731 if (force) { 731 if (!force) {
732 platform_device_unregister(pdev);
733 platform_driver_unregister(&tis_drv);
734 } else
735 pnp_unregister_driver(&tis_pnp_driver); 732 pnp_unregister_driver(&tis_pnp_driver);
733 return;
734 }
735#endif
736 platform_device_unregister(pdev);
737 platform_driver_unregister(&tis_drv);
736} 738}
737 739
738module_init(init_tis); 740module_init(init_tis);