tpm/tpm_i2c_stm_st33: Remove reference to io_serirq
authorChristophe Ricard <christophe.ricard@gmail.com>
Mon, 1 Dec 2014 18:32:52 +0000 (19:32 +0100)
committerPeter Huewe <peterhuewe@gmx.de>
Sat, 17 Jan 2015 13:00:07 +0000 (14:00 +0100)
The serirq gpio pin is used only as interrupt. After driver initialization,
the serirq signal is always used through interrupt and never with gpio
kernel API.

The irq can then be initialized during the platform_data definition within the client->irq pin.

Reviewed-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
drivers/char/tpm/tpm_i2c_stm_st33.c
include/linux/platform_data/tpm_i2c_stm_st33.h

index 4f725386385fd553dddcc308f9b01c6f1e0933d7..728611638d1ca9951420a639a041f703b21f742d 100644 (file)
@@ -103,7 +103,6 @@ struct tpm_stm_dev {
        struct completion irq_detection;
        struct tpm_chip *chip;
        u8 buf[TPM_BUFSIZE + 1];
-       int io_serirq;
        int io_lpcpd;
 };
 
@@ -688,18 +687,15 @@ tpm_st33_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id)
                        err = -ENODEV;
                        goto _tpm_clean_answer;
                }
-               err = gpio_request(platform_data->io_serirq, "TPM IO_SERIRQ");
-               if (err)
-                       goto _gpio_init2;
 
                clear_interruption(tpm_dev);
-               err = request_irq(gpio_to_irq(platform_data->io_serirq),
+               err = request_irq(client->irq,
                                &tpm_ioserirq_handler,
                                IRQF_TRIGGER_HIGH,
                                "TPM SERIRQ management", chip);
                if (err < 0) {
                        dev_err(chip->dev , "TPM SERIRQ signals %d not available\n",
-                               gpio_to_irq(platform_data->io_serirq));
+                               client->irq);
                        goto _irq_set;
                }
 
@@ -739,10 +735,7 @@ tpm_st33_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id)
        dev_info(chip->dev, "TPM I2C Initialized\n");
        return 0;
 _irq_set:
-       free_irq(gpio_to_irq(platform_data->io_serirq), (void *)chip);
-_gpio_init2:
-       if (interrupts)
-               gpio_free(platform_data->io_serirq);
+       free_irq(client->irq, (void *)chip);
 _gpio_init1:
        if (power_mgt)
                gpio_free(platform_data->io_lpcpd);
index 88f9cb18113aa5d0dbfafbba8e8f39bb56777c63..85775cf5f9a54adff0cad3079cf1ca20dc17b11c 100644 (file)
@@ -33,7 +33,6 @@
 #define TPM_ST33_I2C                   "st33zp24_i2c"
 
 struct st33zp24_platform_data {
-       int io_serirq;
        int io_lpcpd;
 };