Lines Matching defs:sum
96 static int amixer_set_sum(struct amixer *amixer, struct sum *sum)
101 amixer->sum = sum;
102 if (!sum) {
107 sum->rsc.ops->index(&sum->rsc));
119 struct sum *sum;
123 sum = amixer->sum;
130 if (sum)
131 sum->rsc.ops->master(&sum->rsc);
140 if (sum) {
142 sum->rsc.ops->index(&sum->rsc));
143 sum->rsc.ops->next_conj(&sum->rsc);
153 if (sum)
154 sum->rsc.ops->master(&sum->rsc);
180 unsigned int scale, struct sum *sum)
184 amixer_set_sum(amixer, sum);
215 amixer->sum = NULL;
228 amixer->sum = NULL;
339 return rsc->idx = container_of(rsc, struct sum, rsc)->idx[0];
345 return container_of(rsc, struct sum, rsc)->idx[rsc->conj];
350 return container_of(rsc, struct sum, rsc)->idx[rsc->conj];
365 static int sum_rsc_init(struct sum *sum,
371 err = rsc_init(&sum->rsc, sum->idx[0], SUM, desc->msr, mgr->mgr.hw);
375 sum->rsc.ops = &sum_basic_rsc_ops;
380 static int sum_rsc_uninit(struct sum *sum)
382 rsc_uninit(&sum->rsc);
388 struct sum **rsum)
392 struct sum *sum;
397 /* Allocate mem for sum resource */
398 sum = kzalloc(sizeof(*sum), GFP_KERNEL);
399 if (!sum)
402 /* Check whether there are sufficient sum resources to meet request. */
410 sum->idx[i] = idx;
418 err = sum_rsc_init(sum, desc, mgr);
422 *rsum = sum;
429 mgr_put_resource(&mgr->mgr, 1, sum->idx[i]);
432 kfree(sum);
436 static int put_sum_rsc(struct sum_mgr *mgr, struct sum *sum)
442 for (i = 0; i < sum->rsc.msr; i++)
443 mgr_put_resource(&mgr->mgr, 1, sum->idx[i]);
446 sum_rsc_uninit(sum);
447 kfree(sum);