153 |
153 |
154 INIT_LIST_HEAD(&slave->sdo_requests); |
154 INIT_LIST_HEAD(&slave->sdo_requests); |
155 INIT_LIST_HEAD(&slave->reg_requests); |
155 INIT_LIST_HEAD(&slave->reg_requests); |
156 INIT_LIST_HEAD(&slave->foe_requests); |
156 INIT_LIST_HEAD(&slave->foe_requests); |
157 INIT_LIST_HEAD(&slave->soe_requests); |
157 INIT_LIST_HEAD(&slave->soe_requests); |
|
158 INIT_LIST_HEAD(&slave->eoe_requests); |
158 |
159 |
159 // create state machine object |
160 // create state machine object |
160 ec_fsm_slave_init(&slave->fsm, slave); |
161 ec_fsm_slave_init(&slave->fsm, slave); |
161 } |
162 } |
162 |
163 |
205 while (!list_empty(&slave->soe_requests)) { |
206 while (!list_empty(&slave->soe_requests)) { |
206 ec_soe_request_t *request = |
207 ec_soe_request_t *request = |
207 list_entry(slave->soe_requests.next, ec_soe_request_t, list); |
208 list_entry(slave->soe_requests.next, ec_soe_request_t, list); |
208 list_del_init(&request->list); // dequeue |
209 list_del_init(&request->list); // dequeue |
209 EC_SLAVE_WARN(slave, "Discarding SoE request," |
210 EC_SLAVE_WARN(slave, "Discarding SoE request," |
|
211 " slave about to be deleted.\n"); |
|
212 request->state = EC_INT_REQUEST_FAILURE; |
|
213 } |
|
214 |
|
215 while (!list_empty(&slave->eoe_requests)) { |
|
216 ec_eoe_request_t *request = |
|
217 list_entry(slave->eoe_requests.next, ec_eoe_request_t, list); |
|
218 list_del_init(&request->list); // dequeue |
|
219 EC_SLAVE_WARN(slave, "Discarding EoE request," |
210 " slave about to be deleted.\n"); |
220 " slave about to be deleted.\n"); |
211 request->state = EC_INT_REQUEST_FAILURE; |
221 request->state = EC_INT_REQUEST_FAILURE; |
212 } |
222 } |
213 |
223 |
214 wake_up_all(&slave->master->request_queue); |
224 wake_up_all(&slave->master->request_queue); |