Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f2ab000 authored by Rajiv Andrade's avatar Rajiv Andrade Committed by James Morris
Browse files

TPM: ACPI/PNP dependency removal



This patch pushes the ACPI dependency into the device driver code
itself. Now, even without ACPI/PNP enabled, the device can be registered
using the TIS specified memory space. This will however result in the
lack of access to the BIOS event log, being the only implication of such
ACPI removal.

Signed-off-by: default avatarRajiv Andrade <srajiv@linux.vnet.ibm.com>
Acked-by: default avatarMimi Zohar <zohar@linux.vnet.ibm.com>
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent b3139bbc
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -17,14 +17,16 @@ 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 enable CONFIG_PNP, CONFIG_ACPI
	  Notes:
	  1) For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI
	  and CONFIG_PNPACPI.
	  2) Without ACPI enabled, the BIOS event log won't be accessible,
	  which is required to validate the PCR 0-7 values.

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
+21 −19
Original line number Diff line number Diff line
@@ -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,8 +690,11 @@ 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

	if (force) {
	rc = platform_driver_register(&tis_drv);
	if (rc < 0)
		return rc;
@@ -704,9 +707,6 @@ static int __init init_tis(void)
	return rc;
}

	return pnp_register_driver(&tis_pnp_driver);
}

static void __exit cleanup_tis(void)
{
	struct tpm_vendor_specific *i, *j;
@@ -728,12 +728,14 @@ static void __exit cleanup_tis(void)
		list_del(&i->list);
	}
	spin_unlock(&tis_lock);

	if (force) {
#ifdef CONFIG_PNP
	if (!force) {
		pnp_unregister_driver(&tis_pnp_driver);
		return;
	}
#endif
	platform_device_unregister(pdev);
	platform_driver_unregister(&tis_drv);
	} else
		pnp_unregister_driver(&tis_pnp_driver);
}

module_init(init_tis);