@@ -37,6 +37,7 @@ enum tpm_atmel_read_status {
37
37
38
38
static int tpm_atml_recv (struct tpm_chip * chip , u8 * buf , size_t count )
39
39
{
40
+ struct tpm_atmel_priv * priv = chip -> vendor .priv ;
40
41
u8 status , * hdr = buf ;
41
42
u32 size ;
42
43
int i ;
@@ -47,12 +48,12 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
47
48
return - EIO ;
48
49
49
50
for (i = 0 ; i < 6 ; i ++ ) {
50
- status = ioread8 (chip -> vendor . iobase + 1 );
51
+ status = ioread8 (priv -> iobase + 1 );
51
52
if ((status & ATML_STATUS_DATA_AVAIL ) == 0 ) {
52
53
dev_err (& chip -> dev , "error reading header\n" );
53
54
return - EIO ;
54
55
}
55
- * buf ++ = ioread8 (chip -> vendor . iobase );
56
+ * buf ++ = ioread8 (priv -> iobase );
56
57
}
57
58
58
59
/* size of the data received */
@@ -63,7 +64,7 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
63
64
dev_err (& chip -> dev ,
64
65
"Recv size(%d) less than available space\n" , size );
65
66
for (; i < size ; i ++ ) { /* clear the waiting data anyway */
66
- status = ioread8 (chip -> vendor . iobase + 1 );
67
+ status = ioread8 (priv -> iobase + 1 );
67
68
if ((status & ATML_STATUS_DATA_AVAIL ) == 0 ) {
68
69
dev_err (& chip -> dev , "error reading data\n" );
69
70
return - EIO ;
@@ -74,16 +75,16 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
74
75
75
76
/* read all the data available */
76
77
for (; i < size ; i ++ ) {
77
- status = ioread8 (chip -> vendor . iobase + 1 );
78
+ status = ioread8 (priv -> iobase + 1 );
78
79
if ((status & ATML_STATUS_DATA_AVAIL ) == 0 ) {
79
80
dev_err (& chip -> dev , "error reading data\n" );
80
81
return - EIO ;
81
82
}
82
- * buf ++ = ioread8 (chip -> vendor . iobase );
83
+ * buf ++ = ioread8 (priv -> iobase );
83
84
}
84
85
85
86
/* make sure data available is gone */
86
- status = ioread8 (chip -> vendor . iobase + 1 );
87
+ status = ioread8 (priv -> iobase + 1 );
87
88
88
89
if (status & ATML_STATUS_DATA_AVAIL ) {
89
90
dev_err (& chip -> dev , "data available is stuck\n" );
@@ -95,25 +96,30 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
95
96
96
97
static int tpm_atml_send (struct tpm_chip * chip , u8 * buf , size_t count )
97
98
{
99
+ struct tpm_atmel_priv * priv = chip -> vendor .priv ;
98
100
int i ;
99
101
100
102
dev_dbg (& chip -> dev , "tpm_atml_send:\n" );
101
103
for (i = 0 ; i < count ; i ++ ) {
102
104
dev_dbg (& chip -> dev , "%d 0x%x(%d)\n" , i , buf [i ], buf [i ]);
103
- iowrite8 (buf [i ], chip -> vendor . iobase );
105
+ iowrite8 (buf [i ], priv -> iobase );
104
106
}
105
107
106
108
return count ;
107
109
}
108
110
109
111
static void tpm_atml_cancel (struct tpm_chip * chip )
110
112
{
111
- iowrite8 (ATML_STATUS_ABORT , chip -> vendor .iobase + 1 );
113
+ struct tpm_atmel_priv * priv = chip -> vendor .priv ;
114
+
115
+ iowrite8 (ATML_STATUS_ABORT , priv -> iobase + 1 );
112
116
}
113
117
114
118
static u8 tpm_atml_status (struct tpm_chip * chip )
115
119
{
116
- return ioread8 (chip -> vendor .iobase + 1 );
120
+ struct tpm_atmel_priv * priv = chip -> vendor .priv ;
121
+
122
+ return ioread8 (priv -> iobase + 1 );
117
123
}
118
124
119
125
static bool tpm_atml_req_canceled (struct tpm_chip * chip , u8 status )
@@ -142,7 +148,7 @@ static void atml_plat_remove(void)
142
148
tpm_chip_unregister (chip );
143
149
if (priv -> have_region )
144
150
atmel_release_region (priv -> base , priv -> region_size );
145
- atmel_put_base_addr (chip -> vendor . iobase );
151
+ atmel_put_base_addr (priv -> iobase );
146
152
platform_device_unregister (pdev );
147
153
}
148
154
}
@@ -190,6 +196,7 @@ static int __init init_atmel(void)
190
196
goto err_unreg_dev ;
191
197
}
192
198
199
+ priv -> iobase = iobase ;
193
200
priv -> base = base ;
194
201
priv -> have_region = have_region ;
195
202
priv -> region_size = region_size ;
@@ -200,7 +207,6 @@ static int __init init_atmel(void)
200
207
goto err_unreg_dev ;
201
208
}
202
209
203
- chip -> vendor .iobase = iobase ;
204
210
chip -> vendor .priv = priv ;
205
211
206
212
rc = tpm_chip_register (chip );
0 commit comments