Lines Matching refs:sum
91 static int amixer_set_sum(struct amixer *amixer, struct sum *sum)
96 amixer->sum = sum;
97 if (!sum) {
102 sum->rsc.ops->index(&sum->rsc));
114 struct sum *sum;
118 sum = amixer->sum;
125 if (sum)
126 sum->rsc.ops->master(&sum->rsc);
135 if (sum) {
137 sum->rsc.ops->index(&sum->rsc));
138 sum->rsc.ops->next_conj(&sum->rsc);
148 if (sum)
149 sum->rsc.ops->master(&sum->rsc);
175 unsigned int scale, struct sum *sum)
179 amixer_set_sum(amixer, sum);
210 amixer->sum = NULL;
223 amixer->sum = NULL;
336 rsc->idx = container_of(rsc, struct sum, rsc)->idx[0];
346 return container_of(rsc, struct sum, rsc)->idx[rsc->conj];
361 static int sum_rsc_init(struct sum *sum,
367 err = rsc_init(&sum->rsc, sum->idx[0], SUM, desc->msr, mgr->mgr.hw);
371 sum->rsc.ops = &sum_basic_rsc_ops;
376 static int sum_rsc_uninit(struct sum *sum)
378 rsc_uninit(&sum->rsc);
384 struct sum **rsum)
388 struct sum *sum;
393 /* Allocate mem for sum resource */
394 sum = kzalloc(sizeof(*sum), GFP_KERNEL);
395 if (!sum)
398 /* Check whether there are sufficient sum resources to meet request. */
406 sum->idx[i] = idx;
415 err = sum_rsc_init(sum, desc, mgr);
419 *rsum = sum;
426 mgr_put_resource(&mgr->mgr, 1, sum->idx[i]);
429 kfree(sum);
433 static int put_sum_rsc(struct sum_mgr *mgr, struct sum *sum)
439 for (i = 0; i < sum->rsc.msr; i++)
440 mgr_put_resource(&mgr->mgr, 1, sum->idx[i]);
443 sum_rsc_uninit(sum);
444 kfree(sum);