Lines Matching defs:ch
29 void scmi_get_channel(scmi_channel_t *ch)
31 assert(ch->lock);
32 scmi_lock_get(ch->lock);
36 ((mailbox_mem_t *)(ch->info->scmi_mbx_mem))->status));
42 void scmi_send_sync_command(scmi_channel_t *ch)
44 mailbox_mem_t *mbx_mem = (mailbox_mem_t *)(ch->info->scmi_mbx_mem);
55 ch->info->ring_doorbell(ch->info);
77 void scmi_put_channel(scmi_channel_t *ch)
81 ((mailbox_mem_t *)(ch->info->scmi_mbx_mem))->status));
83 assert(ch->lock);
84 scmi_lock_release(ch->lock);
95 scmi_channel_t *ch = (scmi_channel_t *)p;
97 validate_scmi_channel(ch);
99 scmi_get_channel(ch);
101 mbx_mem = (mailbox_mem_t *)(ch->info->scmi_mbx_mem);
107 scmi_send_sync_command(ch);
114 scmi_put_channel(ch);
128 scmi_channel_t *ch = (scmi_channel_t *)p;
130 validate_scmi_channel(ch);
132 scmi_get_channel(ch);
134 mbx_mem = (mailbox_mem_t *)(ch->info->scmi_mbx_mem);
141 scmi_send_sync_command(ch);
148 scmi_put_channel(ch);
157 void *scmi_init(scmi_channel_t *ch)
162 assert(ch && ch->info);
163 assert(ch->info->db_reg_addr);
164 assert(ch->info->db_modify_mask);
165 assert(ch->info->db_preserve_mask);
166 assert(ch->info->ring_doorbell != NULL);
168 assert(ch->lock);
170 scmi_lock_init(ch->lock);
172 ch->is_initialized = 1;
174 ret = scmi_proto_version(ch, SCMI_PWR_DMN_PROTO_ID, &version);
188 ret = scmi_proto_version(ch, SCMI_SYS_PWR_PROTO_ID, &version);
205 return (void *)ch;
208 ch->is_initialized = 0;