Skip to content

Commit 2815716

Browse files
cricard13Jarkko Sakkinen
authored andcommitted
tpm: Remove useless priv field in struct tpm_vendor_specific
Remove useless priv field in struct tpm_vendor_specific and take benefit of chip->dev.driver_data. As priv is the latest field available in struct tpm_vendor_specific, remove any reference to that structure. Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
1 parent c7586a4 commit 2815716

File tree

13 files changed

+131
-165
lines changed

13 files changed

+131
-165
lines changed

drivers/char/tpm/st33zp24/i2c.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include <linux/tpm.h>
2727
#include <linux/platform_data/st33zp24.h>
2828

29+
#include "../tpm.h"
2930
#include "st33zp24.h"
3031

3132
#define TPM_DUMMY_BYTE 0xAA
@@ -112,7 +113,9 @@ static const struct st33zp24_phy_ops i2c_phy_ops = {
112113

113114
static int st33zp24_i2c_acpi_request_resources(struct i2c_client *client)
114115
{
115-
struct st33zp24_i2c_phy *phy = i2c_get_clientdata(client);
116+
struct tpm_chip *chip = i2c_get_clientdata(client);
117+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
118+
struct st33zp24_i2c_phy *phy = tpm_dev->phy_id;
116119
struct gpio_desc *gpiod_lpcpd;
117120
struct device *dev = &client->dev;
118121

@@ -138,7 +141,9 @@ static int st33zp24_i2c_acpi_request_resources(struct i2c_client *client)
138141

139142
static int st33zp24_i2c_of_request_resources(struct i2c_client *client)
140143
{
141-
struct st33zp24_i2c_phy *phy = i2c_get_clientdata(client);
144+
struct tpm_chip *chip = i2c_get_clientdata(client);
145+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
146+
struct st33zp24_i2c_phy *phy = tpm_dev->phy_id;
142147
struct device_node *pp;
143148
int gpio;
144149
int ret;
@@ -176,8 +181,10 @@ static int st33zp24_i2c_of_request_resources(struct i2c_client *client)
176181

177182
static int st33zp24_i2c_request_resources(struct i2c_client *client)
178183
{
184+
struct tpm_chip *chip = i2c_get_clientdata(client);
185+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
186+
struct st33zp24_i2c_phy *phy = tpm_dev->phy_id;
179187
struct st33zp24_platform_data *pdata;
180-
struct st33zp24_i2c_phy *phy = i2c_get_clientdata(client);
181188
int ret;
182189

183190
pdata = client->dev.platform_data;
@@ -234,8 +241,6 @@ static int st33zp24_i2c_probe(struct i2c_client *client,
234241

235242
phy->client = client;
236243

237-
i2c_set_clientdata(client, phy);
238-
239244
pdata = client->dev.platform_data;
240245
if (!pdata && client->dev.of_node) {
241246
ret = st33zp24_i2c_of_request_resources(client);

drivers/char/tpm/st33zp24/spi.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include <linux/tpm.h>
2727
#include <linux/platform_data/st33zp24.h>
2828

29+
#include "../tpm.h"
2930
#include "st33zp24.h"
3031

3132
#define TPM_DATA_FIFO 0x24
@@ -231,7 +232,9 @@ static const struct st33zp24_phy_ops spi_phy_ops = {
231232

232233
static int st33zp24_spi_acpi_request_resources(struct spi_device *spi_dev)
233234
{
234-
struct st33zp24_spi_phy *phy = spi_get_drvdata(spi_dev);
235+
struct tpm_chip *chip = spi_get_drvdata(spi_dev);
236+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
237+
struct st33zp24_spi_phy *phy = tpm_dev->phy_id;
235238
struct gpio_desc *gpiod_lpcpd;
236239
struct device *dev = &spi_dev->dev;
237240

@@ -256,7 +259,9 @@ static int st33zp24_spi_acpi_request_resources(struct spi_device *spi_dev)
256259

257260
static int st33zp24_spi_of_request_resources(struct spi_device *spi_dev)
258261
{
259-
struct st33zp24_spi_phy *phy = spi_get_drvdata(spi_dev);
262+
struct tpm_chip *chip = spi_get_drvdata(spi_dev);
263+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
264+
struct st33zp24_spi_phy *phy = tpm_dev->phy_id;
260265
struct device_node *pp;
261266
int gpio;
262267
int ret;
@@ -294,7 +299,9 @@ static int st33zp24_spi_of_request_resources(struct spi_device *spi_dev)
294299

295300
static int st33zp24_spi_request_resources(struct spi_device *dev)
296301
{
297-
struct st33zp24_spi_phy *phy = spi_get_drvdata(dev);
302+
struct tpm_chip *chip = spi_get_drvdata(dev);
303+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
304+
struct st33zp24_spi_phy *phy = tpm_dev->phy_id;
298305
struct st33zp24_platform_data *pdata;
299306
int ret;
300307

@@ -347,8 +354,6 @@ static int st33zp24_spi_probe(struct spi_device *dev)
347354

348355
phy->spi_device = dev;
349356

350-
spi_set_drvdata(dev, phy);
351-
352357
pdata = dev->dev.platform_data;
353358
if (!pdata && dev->dev.of_node) {
354359
ret = st33zp24_spi_of_request_resources(dev);

drivers/char/tpm/st33zp24/st33zp24.c

Lines changed: 14 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,9 @@ static u8 clear_interruption(struct st33zp24_dev *tpm_dev)
9494
*/
9595
static void st33zp24_cancel(struct tpm_chip *chip)
9696
{
97-
struct st33zp24_dev *tpm_dev;
97+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
9898
u8 data;
9999

100-
tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
101-
102100
data = TPM_STS_COMMAND_READY;
103101
tpm_dev->ops->send(tpm_dev->phy_id, TPM_STS, &data, 1);
104102
} /* st33zp24_cancel() */
@@ -110,11 +108,9 @@ static void st33zp24_cancel(struct tpm_chip *chip)
110108
*/
111109
static u8 st33zp24_status(struct tpm_chip *chip)
112110
{
113-
struct st33zp24_dev *tpm_dev;
111+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
114112
u8 data;
115113

116-
tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
117-
118114
tpm_dev->ops->recv(tpm_dev->phy_id, TPM_STS, &data, 1);
119115
return data;
120116
} /* st33zp24_status() */
@@ -126,12 +122,10 @@ static u8 st33zp24_status(struct tpm_chip *chip)
126122
*/
127123
static int check_locality(struct tpm_chip *chip)
128124
{
129-
struct st33zp24_dev *tpm_dev;
125+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
130126
u8 data;
131127
u8 status;
132128

133-
tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
134-
135129
status = tpm_dev->ops->recv(tpm_dev->phy_id, TPM_ACCESS, &data, 1);
136130
if (status && (data &
137131
(TPM_ACCESS_ACTIVE_LOCALITY | TPM_ACCESS_VALID)) ==
@@ -148,13 +142,11 @@ static int check_locality(struct tpm_chip *chip)
148142
*/
149143
static int request_locality(struct tpm_chip *chip)
150144
{
145+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
151146
unsigned long stop;
152147
long ret;
153-
struct st33zp24_dev *tpm_dev;
154148
u8 data;
155149

156-
tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
157-
158150
if (check_locality(chip) == tpm_dev->locality)
159151
return tpm_dev->locality;
160152

@@ -182,10 +174,9 @@ static int request_locality(struct tpm_chip *chip)
182174
*/
183175
static void release_locality(struct tpm_chip *chip)
184176
{
185-
struct st33zp24_dev *tpm_dev;
177+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
186178
u8 data;
187179

188-
tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
189180
data = TPM_ACCESS_ACTIVE_LOCALITY;
190181

191182
tpm_dev->ops->send(tpm_dev->phy_id, TPM_ACCESS, &data, 1);
@@ -198,12 +189,10 @@ static void release_locality(struct tpm_chip *chip)
198189
*/
199190
static int get_burstcount(struct tpm_chip *chip)
200191
{
192+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
201193
unsigned long stop;
202194
int burstcnt, status;
203195
u8 temp;
204-
struct st33zp24_dev *tpm_dev;
205-
206-
tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
207196

208197
stop = jiffies + chip->timeout_d;
209198
do {
@@ -263,15 +252,13 @@ static bool wait_for_tpm_stat_cond(struct tpm_chip *chip, u8 mask,
263252
static int wait_for_stat(struct tpm_chip *chip, u8 mask, unsigned long timeout,
264253
wait_queue_head_t *queue, bool check_cancel)
265254
{
255+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
266256
unsigned long stop;
267257
int ret = 0;
268258
bool canceled = false;
269259
bool condition;
270260
u32 cur_intrs;
271261
u8 status;
272-
struct st33zp24_dev *tpm_dev;
273-
274-
tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
275262

276263
/* check current status */
277264
status = st33zp24_status(chip);
@@ -329,10 +316,8 @@ static int wait_for_stat(struct tpm_chip *chip, u8 mask, unsigned long timeout,
329316
*/
330317
static int recv_data(struct tpm_chip *chip, u8 *buf, size_t count)
331318
{
319+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
332320
int size = 0, burstcnt, len, ret;
333-
struct st33zp24_dev *tpm_dev;
334-
335-
tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
336321

337322
while (size < count &&
338323
wait_for_stat(chip,
@@ -362,9 +347,7 @@ static int recv_data(struct tpm_chip *chip, u8 *buf, size_t count)
362347
static irqreturn_t tpm_ioserirq_handler(int irq, void *dev_id)
363348
{
364349
struct tpm_chip *chip = dev_id;
365-
struct st33zp24_dev *tpm_dev;
366-
367-
tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
350+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
368351

369352
tpm_dev->intrs++;
370353
wake_up_interruptible(&tpm_dev->read_queue);
@@ -385,19 +368,17 @@ static irqreturn_t tpm_ioserirq_handler(int irq, void *dev_id)
385368
static int st33zp24_send(struct tpm_chip *chip, unsigned char *buf,
386369
size_t len)
387370
{
371+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
388372
u32 status, i, size, ordinal;
389373
int burstcnt = 0;
390374
int ret;
391375
u8 data;
392-
struct st33zp24_dev *tpm_dev;
393376

394377
if (!chip)
395378
return -EBUSY;
396379
if (len < TPM_HEADER_SIZE)
397380
return -EBUSY;
398381

399-
tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
400-
401382
ret = request_locality(chip);
402383
if (ret < 0)
403384
return ret;
@@ -557,9 +538,9 @@ int st33zp24_probe(void *phy_id, const struct st33zp24_phy_ops *ops,
557538
if (!tpm_dev)
558539
return -ENOMEM;
559540

560-
TPM_VPRIV(chip) = tpm_dev;
561541
tpm_dev->phy_id = phy_id;
562542
tpm_dev->ops = ops;
543+
dev_set_drvdata(&chip->dev, tpm_dev);
563544

564545
chip->timeout_a = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
565546
chip->timeout_b = msecs_to_jiffies(TIS_LONG_TIMEOUT);
@@ -643,10 +624,9 @@ EXPORT_SYMBOL(st33zp24_remove);
643624
int st33zp24_pm_suspend(struct device *dev)
644625
{
645626
struct tpm_chip *chip = dev_get_drvdata(dev);
646-
struct st33zp24_dev *tpm_dev;
647-
int ret = 0;
627+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
648628

649-
tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
629+
int ret = 0;
650630

651631
if (gpio_is_valid(tpm_dev->io_lpcpd))
652632
gpio_set_value(tpm_dev->io_lpcpd, 0);
@@ -665,11 +645,9 @@ EXPORT_SYMBOL(st33zp24_pm_suspend);
665645
int st33zp24_pm_resume(struct device *dev)
666646
{
667647
struct tpm_chip *chip = dev_get_drvdata(dev);
668-
struct st33zp24_dev *tpm_dev;
648+
struct st33zp24_dev *tpm_dev = dev_get_drvdata(&chip->dev);
669649
int ret = 0;
670650

671-
tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip);
672-
673651
if (gpio_is_valid(tpm_dev->io_lpcpd)) {
674652
gpio_set_value(tpm_dev->io_lpcpd, 1);
675653
ret = wait_for_stat(chip,

drivers/char/tpm/tpm.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -128,14 +128,6 @@ enum tpm2_startup_types {
128128
TPM2_SU_STATE = 0x0001,
129129
};
130130

131-
struct tpm_chip;
132-
133-
struct tpm_vendor_specific {
134-
void *priv;
135-
};
136-
137-
#define TPM_VPRIV(c) ((c)->vendor.priv)
138-
139131
#define TPM_VID_INTEL 0x8086
140132
#define TPM_VID_WINBOND 0x1050
141133
#define TPM_VID_STM 0x104A
@@ -166,7 +158,6 @@ struct tpm_chip {
166158

167159
struct mutex tpm_mutex; /* tpm is processing */
168160

169-
struct tpm_vendor_specific vendor;
170161
unsigned long timeout_a; /* jiffies */
171162
unsigned long timeout_b; /* jiffies */
172163
unsigned long timeout_c; /* jiffies */

drivers/char/tpm/tpm_atmel.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ enum tpm_atmel_read_status {
3737

3838
static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
3939
{
40-
struct tpm_atmel_priv *priv = chip->vendor.priv;
40+
struct tpm_atmel_priv *priv = dev_get_drvdata(&chip->dev);
4141
u8 status, *hdr = buf;
4242
u32 size;
4343
int i;
@@ -96,7 +96,7 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
9696

9797
static int tpm_atml_send(struct tpm_chip *chip, u8 *buf, size_t count)
9898
{
99-
struct tpm_atmel_priv *priv = chip->vendor.priv;
99+
struct tpm_atmel_priv *priv = dev_get_drvdata(&chip->dev);
100100
int i;
101101

102102
dev_dbg(&chip->dev, "tpm_atml_send:\n");
@@ -110,14 +110,14 @@ static int tpm_atml_send(struct tpm_chip *chip, u8 *buf, size_t count)
110110

111111
static void tpm_atml_cancel(struct tpm_chip *chip)
112112
{
113-
struct tpm_atmel_priv *priv = chip->vendor.priv;
113+
struct tpm_atmel_priv *priv = dev_get_drvdata(&chip->dev);
114114

115115
iowrite8(ATML_STATUS_ABORT, priv->iobase + 1);
116116
}
117117

118118
static u8 tpm_atml_status(struct tpm_chip *chip)
119119
{
120-
struct tpm_atmel_priv *priv = chip->vendor.priv;
120+
struct tpm_atmel_priv *priv = dev_get_drvdata(&chip->dev);
121121

122122
return ioread8(priv->iobase + 1);
123123
}
@@ -142,7 +142,7 @@ static struct platform_device *pdev;
142142
static void atml_plat_remove(void)
143143
{
144144
struct tpm_chip *chip = dev_get_drvdata(&pdev->dev);
145-
struct tpm_atmel_priv *priv = chip->vendor.priv;
145+
struct tpm_atmel_priv *priv = dev_get_drvdata(&chip->dev);
146146

147147
if (chip) {
148148
tpm_chip_unregister(chip);
@@ -207,7 +207,7 @@ static int __init init_atmel(void)
207207
goto err_unreg_dev;
208208
}
209209

210-
chip->vendor.priv = priv;
210+
dev_set_drvdata(&chip->dev, priv);
211211

212212
rc = tpm_chip_register(chip);
213213
if (rc)

drivers/char/tpm/tpm_atmel.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,6 @@ struct tpm_atmel_priv {
2929
void __iomem *iobase;
3030
};
3131

32-
static inline struct tpm_atmel_priv *atmel_get_priv(struct tpm_chip *chip)
33-
{
34-
return chip->vendor.priv;
35-
}
36-
3732
#ifdef CONFIG_PPC64
3833

3934
#include <asm/prom.h>

0 commit comments

Comments
 (0)