2023-07-05 12:13:46

by 李扬韬

[permalink] [raw]
Subject: [PATCH] tpm/tpm_tis_synquacer: do some cleanup

Use devm_platform_ioremap_resource() to simplify code,
and remove unnecessary struct tpm_tis_synquacer_info.

Signed-off-by: Yangtao Li <[email protected]>
---
drivers/char/tpm/tpm_tis_synquacer.c | 39 +++++-----------------------
1 file changed, 6 insertions(+), 33 deletions(-)

diff --git a/drivers/char/tpm/tpm_tis_synquacer.c b/drivers/char/tpm/tpm_tis_synquacer.c
index 49278746b0e2..6e17b655cbde 100644
--- a/drivers/char/tpm/tpm_tis_synquacer.c
+++ b/drivers/char/tpm/tpm_tis_synquacer.c
@@ -14,16 +14,6 @@
#include "tpm.h"
#include "tpm_tis_core.h"

-/*
- * irq > 0 means: use irq $irq;
- * irq = 0 means: autoprobe for an irq;
- * irq = -1 means: no irq support
- */
-struct tpm_tis_synquacer_info {
- struct resource res;
- int irq;
-};
-
struct tpm_tis_synquacer_phy {
struct tpm_tis_data priv;
void __iomem *iobase;
@@ -91,42 +81,25 @@ static const struct tpm_tis_phy_ops tpm_tcg_bw = {
.write_bytes = tpm_tis_synquacer_write_bytes,
};

-static int tpm_tis_synquacer_init(struct device *dev,
- struct tpm_tis_synquacer_info *tpm_info)
+static SIMPLE_DEV_PM_OPS(tpm_tis_synquacer_pm, tpm_pm_suspend, tpm_tis_resume);
+
+static int tpm_tis_synquacer_probe(struct platform_device *pdev)
{
struct tpm_tis_synquacer_phy *phy;
+ struct device *dev = &pdev->dev;

phy = devm_kzalloc(dev, sizeof(struct tpm_tis_synquacer_phy), GFP_KERNEL);
if (phy == NULL)
return -ENOMEM;

- phy->iobase = devm_ioremap_resource(dev, &tpm_info->res);
+ phy->iobase = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(phy->iobase))
return PTR_ERR(phy->iobase);

- return tpm_tis_core_init(dev, &phy->priv, tpm_info->irq, &tpm_tcg_bw,
+ return tpm_tis_core_init(dev, &phy->priv, -1, &tpm_tcg_bw,
ACPI_HANDLE(dev));
}

-static SIMPLE_DEV_PM_OPS(tpm_tis_synquacer_pm, tpm_pm_suspend, tpm_tis_resume);
-
-static int tpm_tis_synquacer_probe(struct platform_device *pdev)
-{
- struct tpm_tis_synquacer_info tpm_info = {};
- struct resource *res;
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (res == NULL) {
- dev_err(&pdev->dev, "no memory resource defined\n");
- return -ENODEV;
- }
- tpm_info.res = *res;
-
- tpm_info.irq = -1;
-
- return tpm_tis_synquacer_init(&pdev->dev, &tpm_info);
-}
-
static void tpm_tis_synquacer_remove(struct platform_device *pdev)
{
struct tpm_chip *chip = dev_get_drvdata(&pdev->dev);
--
2.39.0