@@ -109,6 +109,12 @@ static int wmt_i2c_wait_bus_not_busy(struct wmt_i2c_dev *i2c_dev)
109
109
static int wmt_check_status (struct wmt_i2c_dev * i2c_dev )
110
110
{
111
111
int ret = 0 ;
112
+ unsigned long wait_result ;
113
+
114
+ wait_result = wait_for_completion_timeout (& i2c_dev -> complete ,
115
+ msecs_to_jiffies (500 ));
116
+ if (!wait_result )
117
+ return - ETIMEDOUT ;
112
118
113
119
if (i2c_dev -> cmd_status & ISR_NACK_ADDR )
114
120
ret = - EIO ;
@@ -125,7 +131,6 @@ static int wmt_i2c_write(struct i2c_adapter *adap, struct i2c_msg *pmsg,
125
131
struct wmt_i2c_dev * i2c_dev = i2c_get_adapdata (adap );
126
132
u16 val , tcr_val ;
127
133
int ret ;
128
- unsigned long wait_result ;
129
134
int xfer_len = 0 ;
130
135
131
136
if (pmsg -> len == 0 ) {
@@ -167,12 +172,6 @@ static int wmt_i2c_write(struct i2c_adapter *adap, struct i2c_msg *pmsg,
167
172
}
168
173
169
174
while (xfer_len < pmsg -> len ) {
170
- wait_result = wait_for_completion_timeout (& i2c_dev -> complete ,
171
- msecs_to_jiffies (500 ));
172
-
173
- if (wait_result == 0 )
174
- return - ETIMEDOUT ;
175
-
176
175
ret = wmt_check_status (i2c_dev );
177
176
if (ret )
178
177
return ret ;
@@ -210,7 +209,6 @@ static int wmt_i2c_read(struct i2c_adapter *adap, struct i2c_msg *pmsg,
210
209
struct wmt_i2c_dev * i2c_dev = i2c_get_adapdata (adap );
211
210
u16 val , tcr_val ;
212
211
int ret ;
213
- unsigned long wait_result ;
214
212
u32 xfer_len = 0 ;
215
213
216
214
val = readw (i2c_dev -> base + REG_CR );
@@ -251,12 +249,6 @@ static int wmt_i2c_read(struct i2c_adapter *adap, struct i2c_msg *pmsg,
251
249
}
252
250
253
251
while (xfer_len < pmsg -> len ) {
254
- wait_result = wait_for_completion_timeout (& i2c_dev -> complete ,
255
- msecs_to_jiffies (500 ));
256
-
257
- if (!wait_result )
258
- return - ETIMEDOUT ;
259
-
260
252
ret = wmt_check_status (i2c_dev );
261
253
if (ret )
262
254
return ret ;
0 commit comments