瀏覽代碼

Revert "TPM: ACPI/PNP dependency removal"

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>
James Morris 15 年之前
父節點
當前提交
ec4a162af3
共有 2 個文件被更改,包括 22 次插入32 次删除
  1. 3 11
      drivers/char/tpm/Kconfig
  2. 19 21
      drivers/char/tpm/tpm_tis.c

+ 3 - 11
drivers/char/tpm/Kconfig

@@ -17,28 +17,20 @@ menuconfig TCG_TPM
 	  obtained at: <http://sourceforge.net/projects/trousers>.  To 
 	  obtained at: <http://sourceforge.net/projects/trousers>.  To 
 	  compile this driver as a module, choose M here; the module 
 	  compile this driver as a module, choose M here; the module 
 	  will be called tpm. If unsure, say N.
 	  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
 if TCG_TPM
 
 
 config TCG_TIS
 config TCG_TIS
 	tristate "TPM Interface Specification 1.2 Interface"
 	tristate "TPM Interface Specification 1.2 Interface"
+	depends on PNP
 	---help---
 	---help---
 	  If you have a TPM security chip that is compliant with the
 	  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
 	  TCG TIS 1.2 TPM specification say Yes and it will be accessible
 	  from within Linux.  To compile this driver as a module, choose
 	  from within Linux.  To compile this driver as a module, choose
 	  M here; the module will be called tpm_tis.
 	  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
 config TCG_NSC
 	tristate "National Semiconductor TPM Interface"
 	tristate "National Semiconductor TPM Interface"
 	---help---
 	---help---

+ 19 - 21
drivers/char/tpm/tpm_tis.c

@@ -598,7 +598,7 @@ out_err:
 	tpm_remove_hardware(chip->dev);
 	tpm_remove_hardware(chip->dev);
 	return rc;
 	return rc;
 }
 }
-#ifdef CONFIG_PNP
+
 static int __devinit tpm_tis_pnp_init(struct pnp_dev *pnp_dev,
 static int __devinit tpm_tis_pnp_init(struct pnp_dev *pnp_dev,
 				      const struct pnp_device_id *pnp_id)
 				      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,
 module_param_string(hid, tpm_pnp_tbl[TIS_HID_USR_IDX].id,
 		    sizeof(tpm_pnp_tbl[TIS_HID_USR_IDX].id), 0444);
 		    sizeof(tpm_pnp_tbl[TIS_HID_USR_IDX].id), 0444);
 MODULE_PARM_DESC(hid, "Set additional specific HID for this driver to probe");
 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)
 static int tpm_tis_suspend(struct platform_device *dev, pm_message_t msg)
 {
 {
 	return tpm_pm_suspend(&dev->dev, 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)
 static int __init init_tis(void)
 {
 {
 	int rc;
 	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;
 		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)
 static void __exit cleanup_tis(void)
@@ -728,14 +728,12 @@ static void __exit cleanup_tis(void)
 		list_del(&i->list);
 		list_del(&i->list);
 	}
 	}
 	spin_unlock(&tis_lock);
 	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);
 		pnp_unregister_driver(&tis_pnp_driver);
-		return;
-	}
-#endif
-	platform_device_unregister(pdev);
-	platform_driver_unregister(&tis_drv);
 }
 }
 
 
 module_init(init_tis);
 module_init(init_tis);