mirror of https://gitee.com/openkylin/linux.git
Revert "TPM: ACPI/PNP dependency removal"
This reverts commit b89e66e1e3
.
> > 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>
This commit is contained in:
parent
f70e2e0619
commit
ec4a162af3
|
@ -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
|
Note: For more TPM drivers enable CONFIG_PNP, CONFIG_ACPI
|
||||||
CONFIG_PNP, CONFIG_ACPI and CONFIG_PNPACPI.
|
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---
|
||||||
|
|
|
@ -598,7 +598,7 @@ static int tpm_tis_init(struct device *dev, resource_size_t start,
|
||||||
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 (force) {
|
||||||
if (rc < 0)
|
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);
|
||||||
|
|
Loading…
Reference in New Issue