Lines Matching defs: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;
334 rsc->idx = container_of(rsc, struct sum, rsc)->idx[0];
344 return container_of(rsc, struct sum, rsc)->idx[rsc->conj];
359 static int sum_rsc_init(struct sum *sum,
365 err = rsc_init(&sum->rsc, sum->idx[0], SUM, desc->msr, mgr->mgr.hw);
369 sum->rsc.ops = &sum_basic_rsc_ops;
374 static int sum_rsc_uninit(struct sum *sum)
376 rsc_uninit(&sum->rsc);
382 struct sum **rsum)
386 struct sum *sum;
390 /* Allocate mem for sum resource */
391 sum = kzalloc(sizeof(*sum), GFP_KERNEL);
392 if (!sum)
395 /* Check whether there are sufficient sum resources to meet request. */
403 sum->idx[i] = idx;
412 err = sum_rsc_init(sum, desc, mgr);
416 *rsum = sum;
423 mgr_put_resource(&mgr->mgr, 1, sum->idx[i]);
425 kfree(sum);
429 static int put_sum_rsc(struct sum_mgr *mgr, struct sum *sum)
434 for (i = 0; i < sum->rsc.msr; i++)
435 mgr_put_resource(&mgr->mgr, 1, sum->idx[i]);
437 sum_rsc_uninit(sum);
438 kfree(sum);