Lines Matching refs:rsc
102 static int rsc_index(const struct rsc *rsc)
104 return rsc->conj;
107 static int audio_ring_slot(const struct rsc *rsc)
109 return (rsc->conj << 4) + offset_in_audio_slot_block[rsc->type];
112 static void rsc_next_conj(struct rsc *rsc)
115 for (i = 0; (i < 8) && (!(rsc->msr & (0x1 << i))); )
117 rsc->conj += (AUDIO_SLOT_BLOCK_NUM >> i);
120 static void rsc_master(struct rsc *rsc)
122 rsc->conj = rsc->idx;
133 rsc_init(struct rsc *rsc, u32 idx, enum RSCTYP type, u32 msr, struct hw *hw)
137 rsc->idx = idx;
138 rsc->conj = idx;
139 rsc->type = type;
140 rsc->msr = msr;
141 rsc->hw = hw;
142 rsc->ops = &rsc_generic_ops;
144 rsc->ctrl_blk = NULL;
150 err = hw->src_rsc_get_ctrl_blk(&rsc->ctrl_blk);
153 err = hw->amixer_rsc_get_ctrl_blk(&rsc->ctrl_blk);
174 int rsc_uninit(struct rsc *rsc)
176 if ((NULL != rsc->hw) && (NULL != rsc->ctrl_blk)) {
177 switch (rsc->type) {
179 rsc->hw->src_rsc_put_ctrl_blk(rsc->ctrl_blk);
182 rsc->hw->amixer_rsc_put_ctrl_blk(rsc->ctrl_blk);
188 dev_err(((struct hw *)rsc->hw)->card->dev,
190 rsc->type);
194 rsc->hw = rsc->ctrl_blk = NULL;
197 rsc->idx = rsc->conj = 0;
198 rsc->type = NUM_RSCTYP;
199 rsc->msr = 0;