Lines Matching defs:cmb_area
438 * struct cmb_area - container for global cmb data
445 struct cmb_area {
452 static struct cmb_area cmb_area = {
453 .lock = __SPIN_LOCK_UNLOCKED(cmb_area.lock),
454 .list = LIST_HEAD_INIT(cmb_area.list),
470 module_param_named(maxchannels, cmb_area.num_channels, uint, 0444);
502 * Insert a single device into the cmb_area list.
503 * Called with cmb_area.lock held from alloc_cmb.
519 * Find first unused cmb in cmb_area.mem.
520 * This is a little tricky: cmb_area.list
523 cmb = cmb_area.mem;
524 list_for_each_entry(node, &cmb_area.list, cmb_list) {
531 if (cmb - cmb_area.mem >= cmb_area.num_channels) {
564 spin_lock(&cmb_area.lock);
566 if (!cmb_area.mem) {
568 size = sizeof(struct cmb) * cmb_area.num_channels;
569 WARN_ON(!list_empty(&cmb_area.list));
571 spin_unlock(&cmb_area.lock);
574 spin_lock(&cmb_area.lock);
576 if (cmb_area.mem) {
586 cmb_area.mem = mem;
587 cmf_activate(cmb_area.mem, 1);
594 spin_unlock(&cmb_area.lock);
607 spin_lock(&cmb_area.lock);
624 if (list_empty(&cmb_area.list)) {
626 size = sizeof(struct cmb) * cmb_area.num_channels;
628 free_pages((unsigned long)cmb_area.mem, get_order(size));
629 cmb_area.mem = NULL;
633 spin_unlock(&cmb_area.lock);
648 offset = mme ? (struct cmb *)cmb_data->hw_block - cmb_area.mem : 0;
855 spin_lock(&cmb_area.lock);
856 if (list_empty(&cmb_area.list))
858 list_add_tail(&cdev->private->cmb_list, &cmb_area.list);
859 spin_unlock(&cmb_area.lock);
883 spin_lock(&cmb_area.lock);
885 if (list_empty(&cmb_area.list))
887 spin_unlock(&cmb_area.lock);