master/master.h
changeset 601 d6d951b766e3
parent 597 3a2c2d6ca5e9
child 612 aede068f9a74
equal deleted inserted replaced
600:b0660152f710 601:d6d951b766e3
    42 #define _EC_MASTER_H_
    42 #define _EC_MASTER_H_
    43 
    43 
    44 #include <linux/list.h>
    44 #include <linux/list.h>
    45 #include <linux/sysfs.h>
    45 #include <linux/sysfs.h>
    46 #include <linux/timer.h>
    46 #include <linux/timer.h>
       
    47 #include <linux/wait.h>
    47 #include <asm/atomic.h>
    48 #include <asm/atomic.h>
    48 #include <asm/semaphore.h>
    49 #include <asm/semaphore.h>
    49 
    50 
    50 #include "device.h"
    51 #include "device.h"
    51 #include "device_id.h"
    52 #include "device_id.h"
   136     spinlock_t internal_lock; /**< spinlock used in idle mode */
   137     spinlock_t internal_lock; /**< spinlock used in idle mode */
   137     int (*request_cb)(void *); /**< lock request callback */
   138     int (*request_cb)(void *); /**< lock request callback */
   138     void (*release_cb)(void *); /**< lock release callback */
   139     void (*release_cb)(void *); /**< lock release callback */
   139     void *cb_data; /**< data parameter of locking callbacks */
   140     void *cb_data; /**< data parameter of locking callbacks */
   140 
   141 
       
   142     struct list_head eeprom_requests; /**< EEPROM write requests */
       
   143     struct semaphore eeprom_sem; /**< semaphore protecting the list of
       
   144                                    EEPROM write requests */
       
   145     wait_queue_head_t eeprom_queue; /**< wait queue for EEPROM
       
   146                                       write requests from user space */
       
   147 
   141     ec_sdo_request_t *sdo_request; /**< pointer to the current SDO request */
   148     ec_sdo_request_t *sdo_request; /**< pointer to the current SDO request */
   142     unsigned int sdo_seq_user; /**< sequence number for user space */
   149     unsigned int sdo_seq_user; /**< sequence number for user space */
   143     unsigned int sdo_seq_master; /**< sequence number for master */
   150     unsigned int sdo_seq_master; /**< sequence number for master */
   144     struct semaphore sdo_sem; /**< SDO semaphore */
   151     struct semaphore sdo_sem; /**< SDO semaphore */
   145     struct timer_list sdo_timer; /**< timer for polling sdo processing */
   152     struct timer_list sdo_timer; /**< timer for polling sdo processing */