equal
deleted
inserted
replaced
150 master->internal_lock = SPIN_LOCK_UNLOCKED; |
150 master->internal_lock = SPIN_LOCK_UNLOCKED; |
151 master->request_cb = NULL; |
151 master->request_cb = NULL; |
152 master->release_cb = NULL; |
152 master->release_cb = NULL; |
153 master->cb_data = NULL; |
153 master->cb_data = NULL; |
154 |
154 |
|
155 INIT_LIST_HEAD(&master->eeprom_requests); |
|
156 init_MUTEX(&master->eeprom_sem); |
|
157 init_waitqueue_head(&master->eeprom_queue); |
|
158 |
155 master->sdo_request = NULL; |
159 master->sdo_request = NULL; |
156 master->sdo_seq_user = 0; |
160 master->sdo_seq_user = 0; |
157 master->sdo_seq_master = 0; |
161 master->sdo_seq_master = 0; |
158 init_MUTEX(&master->sdo_sem); |
162 init_MUTEX(&master->sdo_sem); |
159 init_timer(&master->sdo_timer); |
163 init_timer(&master->sdo_timer); |
252 void ec_master_clear(struct kobject *kobj /**< kobject of the master */) |
256 void ec_master_clear(struct kobject *kobj /**< kobject of the master */) |
253 { |
257 { |
254 ec_master_t *master = container_of(kobj, ec_master_t, kobj); |
258 ec_master_t *master = container_of(kobj, ec_master_t, kobj); |
255 ec_eoe_t *eoe, *next_eoe; |
259 ec_eoe_t *eoe, *next_eoe; |
256 ec_datagram_t *datagram, *next_datagram; |
260 ec_datagram_t *datagram, *next_datagram; |
|
261 |
|
262 // list of EEPROM requests is empty, |
|
263 // otherwise master could not be cleared. |
257 |
264 |
258 // dequeue all datagrams |
265 // dequeue all datagrams |
259 list_for_each_entry_safe(datagram, next_datagram, |
266 list_for_each_entry_safe(datagram, next_datagram, |
260 &master->datagram_queue, queue) { |
267 &master->datagram_queue, queue) { |
261 datagram->state = EC_DATAGRAM_ERROR; |
268 datagram->state = EC_DATAGRAM_ERROR; |