Lines Matching defs:cmb_area
369 * struct cmb_area - container for global cmb data
376 struct cmb_area {
383 static struct cmb_area cmb_area = {
384 .lock = __SPIN_LOCK_UNLOCKED(cmb_area.lock),
385 .list = LIST_HEAD_INIT(cmb_area.list),
401 module_param_named(maxchannels, cmb_area.num_channels, uint, 0444);
433 * Insert a single device into the cmb_area list.
434 * Called with cmb_area.lock held from alloc_cmb.
450 * Find first unused cmb in cmb_area.mem.
451 * This is a little tricky: cmb_area.list
454 cmb = cmb_area.mem;
455 list_for_each_entry(node, &cmb_area.list, cmb_list) {
462 if (cmb - cmb_area.mem >= cmb_area.num_channels) {
495 spin_lock(&cmb_area.lock);
497 if (!cmb_area.mem) {
499 size = sizeof(struct cmb) * cmb_area.num_channels;
500 WARN_ON(!list_empty(&cmb_area.list));
502 spin_unlock(&cmb_area.lock);
505 spin_lock(&cmb_area.lock);
507 if (cmb_area.mem) {
517 cmb_area.mem = mem;
518 cmf_activate(cmb_area.mem, CMF_ON);
525 spin_unlock(&cmb_area.lock);
538 spin_lock(&cmb_area.lock);
549 if (list_empty(&cmb_area.list)) {
551 size = sizeof(struct cmb) * cmb_area.num_channels;
553 free_pages((unsigned long)cmb_area.mem, get_order(size));
554 cmb_area.mem = NULL;
557 spin_unlock(&cmb_area.lock);
572 offset = mme ? (struct cmb *)cmb_data->hw_block - cmb_area.mem : 0;
780 spin_lock(&cmb_area.lock);
788 if (list_empty(&cmb_area.list))
790 list_add_tail(&cdev->private->cmb_list, &cmb_area.list);
793 spin_unlock(&cmb_area.lock);
798 spin_unlock(&cmb_area.lock);
813 spin_lock(&cmb_area.lock);
825 if (list_empty(&cmb_area.list))
828 spin_unlock(&cmb_area.lock);
1248 spin_lock(&cmb_area.lock);
1249 if (!list_empty(&cmb_area.list))
1250 cmf_activate(cmb_area.mem, CMF_ON);
1251 spin_unlock(&cmb_area.lock);