diff options
55 files changed, 1083 insertions, 2183 deletions
diff --git a/Documentation/dontdiff b/Documentation/dontdiff index e1efc400bed6..e151b2a36267 100644 --- a/Documentation/dontdiff +++ b/Documentation/dontdiff | |||
| @@ -65,6 +65,7 @@ aicdb.h* | |||
| 65 | asm-offsets.h | 65 | asm-offsets.h |
| 66 | asm_offsets.h | 66 | asm_offsets.h |
| 67 | autoconf.h* | 67 | autoconf.h* |
| 68 | av_permissions.h | ||
| 68 | bbootsect | 69 | bbootsect |
| 69 | bin2c | 70 | bin2c |
| 70 | binkernel.spec | 71 | binkernel.spec |
| @@ -95,12 +96,14 @@ docproc | |||
| 95 | elf2ecoff | 96 | elf2ecoff |
| 96 | elfconfig.h* | 97 | elfconfig.h* |
| 97 | fixdep | 98 | fixdep |
| 99 | flask.h | ||
| 98 | fore200e_mkfirm | 100 | fore200e_mkfirm |
| 99 | fore200e_pca_fw.c* | 101 | fore200e_pca_fw.c* |
| 100 | gconf | 102 | gconf |
| 101 | gen-devlist | 103 | gen-devlist |
| 102 | gen_crc32table | 104 | gen_crc32table |
| 103 | gen_init_cpio | 105 | gen_init_cpio |
| 106 | genheaders | ||
| 104 | genksyms | 107 | genksyms |
| 105 | *_gray256.c | 108 | *_gray256.c |
| 106 | ihex2fw | 109 | ihex2fw |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 9107b387e91f..332fe3b47e0c 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
| @@ -85,7 +85,6 @@ parameter is applicable: | |||
| 85 | PPT Parallel port support is enabled. | 85 | PPT Parallel port support is enabled. |
| 86 | PS2 Appropriate PS/2 support is enabled. | 86 | PS2 Appropriate PS/2 support is enabled. |
| 87 | RAM RAM disk support is enabled. | 87 | RAM RAM disk support is enabled. |
| 88 | ROOTPLUG The example Root Plug LSM is enabled. | ||
| 89 | S390 S390 architecture is enabled. | 88 | S390 S390 architecture is enabled. |
| 90 | SCSI Appropriate SCSI support is enabled. | 89 | SCSI Appropriate SCSI support is enabled. |
| 91 | A lot of drivers has their options described inside of | 90 | A lot of drivers has their options described inside of |
| @@ -2164,15 +2163,6 @@ and is between 256 and 4096 characters. It is defined in the file | |||
| 2164 | Useful for devices that are detected asynchronously | 2163 | Useful for devices that are detected asynchronously |
| 2165 | (e.g. USB and MMC devices). | 2164 | (e.g. USB and MMC devices). |
| 2166 | 2165 | ||
| 2167 | root_plug.vendor_id= | ||
| 2168 | [ROOTPLUG] Override the default vendor ID | ||
| 2169 | |||
| 2170 | root_plug.product_id= | ||
| 2171 | [ROOTPLUG] Override the default product ID | ||
| 2172 | |||
| 2173 | root_plug.debug= | ||
| 2174 | [ROOTPLUG] Enable debugging output | ||
| 2175 | |||
| 2176 | rw [KNL] Mount root device read-write on boot | 2166 | rw [KNL] Mount root device read-write on boot |
| 2177 | 2167 | ||
| 2178 | S [KNL] Run init in single mode | 2168 | S [KNL] Run init in single mode |
diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c index 47c2d2763456..f06bb37defb1 100644 --- a/drivers/char/tpm/tpm.c +++ b/drivers/char/tpm/tpm.c | |||
| @@ -31,7 +31,7 @@ | |||
| 31 | 31 | ||
| 32 | enum tpm_const { | 32 | enum tpm_const { |
| 33 | TPM_MINOR = 224, /* officially assigned */ | 33 | TPM_MINOR = 224, /* officially assigned */ |
| 34 | TPM_BUFSIZE = 2048, | 34 | TPM_BUFSIZE = 4096, |
| 35 | TPM_NUM_DEVICES = 256, | 35 | TPM_NUM_DEVICES = 256, |
| 36 | }; | 36 | }; |
| 37 | 37 | ||
diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c index 0b73e4ec1add..2405f17b29dd 100644 --- a/drivers/char/tpm/tpm_tis.c +++ b/drivers/char/tpm/tpm_tis.c | |||
| @@ -257,6 +257,10 @@ out: | |||
| 257 | return size; | 257 | return size; |
| 258 | } | 258 | } |
| 259 | 259 | ||
| 260 | static int itpm; | ||
| 261 | module_param(itpm, bool, 0444); | ||
| 262 | MODULE_PARM_DESC(itpm, "Force iTPM workarounds (found on some Lenovo laptops)"); | ||
| 263 | |||
| 260 | /* | 264 | /* |
| 261 | * If interrupts are used (signaled by an irq set in the vendor structure) | 265 | * If interrupts are used (signaled by an irq set in the vendor structure) |
| 262 | * tpm.c can skip polling for the data to be available as the interrupt is | 266 | * tpm.c can skip polling for the data to be available as the interrupt is |
| @@ -293,7 +297,7 @@ static int tpm_tis_send(struct tpm_chip *chip, u8 *buf, size_t len) | |||
| 293 | wait_for_stat(chip, TPM_STS_VALID, chip->vendor.timeout_c, | 297 | wait_for_stat(chip, TPM_STS_VALID, chip->vendor.timeout_c, |
| 294 | &chip->vendor.int_queue); | 298 | &chip->vendor.int_queue); |
| 295 | status = tpm_tis_status(chip); | 299 | status = tpm_tis_status(chip); |
| 296 | if ((status & TPM_STS_DATA_EXPECT) == 0) { | 300 | if (!itpm && (status & TPM_STS_DATA_EXPECT) == 0) { |
| 297 | rc = -EIO; | 301 | rc = -EIO; |
| 298 | goto out_err; | 302 | goto out_err; |
| 299 | } | 303 | } |
| @@ -467,6 +471,10 @@ static int tpm_tis_init(struct device *dev, resource_size_t start, | |||
| 467 | "1.2 TPM (device-id 0x%X, rev-id %d)\n", | 471 | "1.2 TPM (device-id 0x%X, rev-id %d)\n", |
| 468 | vendor >> 16, ioread8(chip->vendor.iobase + TPM_RID(0))); | 472 | vendor >> 16, ioread8(chip->vendor.iobase + TPM_RID(0))); |
| 469 | 473 | ||
| 474 | if (itpm) | ||
| 475 | dev_info(dev, "Intel iTPM workaround enabled\n"); | ||
| 476 | |||
| 477 | |||
| 470 | /* Figure out the capabilities */ | 478 | /* Figure out the capabilities */ |
| 471 | intfcaps = | ||
