char: tpm: move to use request_irq by IRQF_NO_AUTOEN flag
disable_irq() after request_irq() still has a time gap in which interrupts can come. request_irq() with IRQF_NO_AUTOEN flag will disable IRQ auto-enable because of requesting. Link: https://lore.kernel.org/patchwork/patch/1388765/ Signed-off-by: Tian Tao <tiantao6@hisilicon.com> Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
This commit is contained in:
parent
114e43371c
commit
446cd6f0f3
@ -706,14 +706,14 @@ static int tpm_cr50_i2c_probe(struct i2c_client *client,
|
|||||||
|
|
||||||
if (client->irq > 0) {
|
if (client->irq > 0) {
|
||||||
rc = devm_request_irq(dev, client->irq, tpm_cr50_i2c_int_handler,
|
rc = devm_request_irq(dev, client->irq, tpm_cr50_i2c_int_handler,
|
||||||
IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
|
IRQF_TRIGGER_FALLING | IRQF_ONESHOT |
|
||||||
|
IRQF_NO_AUTOEN,
|
||||||
dev->driver->name, chip);
|
dev->driver->name, chip);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
dev_err(dev, "Failed to probe IRQ %d\n", client->irq);
|
dev_err(dev, "Failed to probe IRQ %d\n", client->irq);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
disable_irq(client->irq);
|
|
||||||
priv->irq = client->irq;
|
priv->irq = client->irq;
|
||||||
} else {
|
} else {
|
||||||
dev_warn(dev, "No IRQ, will use %ums delay for TPM ready\n",
|
dev_warn(dev, "No IRQ, will use %ums delay for TPM ready\n",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user