Revert "TPM: ACPI/PNP dependency removal"
authorJames Morris <jmorris@namei.org>
Thu, 6 May 2010 23:19:29 +0000 (09:19 +1000)
committerJames Morris <jmorris@namei.org>
Thu, 6 May 2010 23:19:29 +0000 (09:19 +1000)
This reverts commit b89e66e1e396f7b5436af154e58209320cc08aed.

> > When CONFIG_PM is not set:
> >
> > drivers/built-in.o: In function `acpi_init':
> > bus.c:(.init.text+0x2d84): undefined reference to `pm_flags'
> > bus.c:(.init.text+0x2d91): undefined reference to `pm_flags'
>
> CONFIG_ACPI depends on CONFIG_PM,
> so acpi/bus.c should not be compiled for CONFIG_PM=n
>
> Hmm, is is somebody doing something strange, like "select ACPI"
> without guaranteeing that all of ACPI's dependencies are satisfied?

Signed-off-by: James Morris <jmorris@namei.org>
drivers/char/tpm/Kconfig
drivers/char/tpm/tpm_tis.c

index bfc2c26780fbd6eeaafcec42ebb895de806a6d62..f5fc64f89c5c3b71a54a874020e1f8108c9e025e 100644 (file)
@@ -17,28 +17,20 @@ menuconfig TCG_TPM
          obtained at: <http://sourceforge.net/projects/trousers>.  To 
          compile this driver as a module, choose M here; the module 
          will be called tpm. If unsure, say N.
-         Note: For more TPM drivers and BIOS LOG access enable
-         CONFIG_PNP, CONFIG_ACPI and CONFIG_PNPACPI.
+         Note: For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI
+         and CONFIG_PNPACPI.
 
 if TCG_TPM
 
 config TCG_TIS
        tristate "TPM Interface Specification 1.2 Interface"
+       depends on PNP
        ---help---
          If you have a TPM security chip that is compliant with the
          TCG TIS 1.2 TPM specification say Yes and it will be accessible
          from within Linux.  To compile this driver as a module, choose
          M here; the module will be called tpm_tis.
 
-config TCG_BIOS_LOG
-       bool "TPM bios mesurement log"
-       depends on X86
-       select ACPI
-       ---help---
-         ACPI is required for access to bios measurements lists and therefore
-         to validate the PCR[0] value. So say Yes in case you want this
-         feature and, consequently, ACPI will be enabled.
-
 config TCG_NSC
        tristate "National Semiconductor TPM Interface"
        ---help---
index 24314a9cffe83875858b4d2b4aeb0ab5a68acf21..94345994f8a635c3f610327010eb391add6f6234 100644 (file)
@@ -598,7 +598,7 @@ out_err:
        tpm_remove_hardware(chip->dev);
        return rc;
 }
-#ifdef CONFIG_PNP
+
 static int __devinit tpm_tis_pnp_init(struct pnp_dev *pnp_dev,
                                      const struct pnp_device_id *pnp_id)
 {
@@ -663,7 +663,7 @@ static struct pnp_driver tis_pnp_driver = {
 module_param_string(hid, tpm_pnp_tbl[TIS_HID_USR_IDX].id,
                    sizeof(tpm_pnp_tbl[TIS_HID_USR_IDX].id), 0444);
 MODULE_PARM_DESC(hid, "Set additional specific HID for this driver to probe");
-#endif
+
 static int tpm_tis_suspend(struct platform_device *dev, pm_message_t msg)
 {
        return tpm_pm_suspend(&dev->dev, msg);
@@ -690,21 +690,21 @@ MODULE_PARM_DESC(force, "Force device probe rather than using ACPI entry");
 static int __init init_tis(void)
 {
        int rc;
-#ifdef CONFIG_PNP
-       if (!force)
-               return pnp_register_driver(&tis_pnp_driver);
-#endif
 
-       rc = platform_driver_register(&tis_drv);
-       if (rc < 0)
+       if (force) {
+               rc = platform_driver_register(&tis_drv);
+               if (rc < 0)
+                       return rc;
+               if (IS_ERR(pdev=platform_device_register_simple("tpm_tis", -1, NULL, 0)))
+                       return PTR_ERR(pdev);
+               if((rc=tpm_tis_init(&pdev->dev, TIS_MEM_BASE, TIS_MEM_LEN, 0)) != 0) {
+                       platform_device_unregister(pdev);
+                       platform_driver_unregister(&tis_drv);
+               }
                return rc;
-       if (IS_ERR(pdev=platform_device_register_simple("tpm_tis", -1, NULL, 0)))
-               return PTR_ERR(pdev);
-       if((rc=tpm_tis_init(&pdev->dev, TIS_MEM_BASE, TIS_MEM_LEN, 0)) != 0) {
-               platform_device_unregister(pdev);
-               platform_driver_unregister(&tis_drv);
        }
-       return rc;
+
+       return pnp_register_driver(&tis_pnp_driver);
 }
 
 static void __exit cleanup_tis(void)
@@ -728,14 +728,12 @@ static void __exit cleanup_tis(void)
                list_del(&i->list);
        }
        spin_unlock(&tis_lock);
-#ifdef CONFIG_PNP
-       if (!force) {
+
+       if (force) {
+               platform_device_unregister(pdev);
+               platform_driver_unregister(&tis_drv);
+       } else
                pnp_unregister_driver(&tis_pnp_driver);
-               return;
-       }
-#endif
-       platform_device_unregister(pdev);
-       platform_driver_unregister(&tis_drv);
 }
 
 module_init(init_tis);