35 if (!ctx->
user[i].in_use) {
49 if (ctx->
user[i].in_use)
56 static void bc_cproc_mark_pwr_state(
struct crystalhd_cmd *ctx)
61 if (!ctx->
user[i].in_use)
97 BCMLOG_ERR(
"multiple playback sessions are not "
103 ctx->
user[idata->
u_id].mode = idata->
udata.u.NotifyMode.Mode;
117 if (!ctx || !idata) {
131 if (!ctx || !idata) {
152 idata->
udata.u.regAcc.Offset);
163 idata->
udata.u.regAcc.Value);
175 idata->
udata.u.regAcc.Offset);
186 idata->
udata.u.regAcc.Value);
204 idata->
udata.u.devMem.NumDwords,
224 idata->
udata.u.devMem.NumDwords,
240 off = idata->
udata.u.pciCfg.Offset;
241 len = idata->
udata.u.pciCfg.Size;
248 cnt = idata->
udata.u.pciCfg.Size / len;
249 for (ix = 0; ix <
cnt; ix++) {
272 off = idata->
udata.u.pciCfg.Offset;
273 len = idata->
udata.u.pciCfg.Size;
280 cnt = idata->
udata.u.pciCfg.Size / len;
281 for (ix = 0; ix <
cnt; ix++) {
312 BCMLOG_ERR(
"Firmware Download Failure!! - %d\n", sts);
343 cmd = idata->
udata.u.fwCmd.cmd;
378 if (!dio_hnd || !event) {
386 dio_hnd->
uinfo.ev_sts = 1;
419 if (!ctx || !idata || !dio) {
430 idata->
udata.u.ProcInput.Encrypted);
433 sts = bc_cproc_codein_sleep(ctx);
437 bc_proc_in_completion,
439 idata->
udata.u.ProcInput.Encrypted);
454 return dio->
uinfo.comp_sts;
455 }
else if (rc == -
EBUSY) {
458 }
else if (rc == -
EINTR) {
478 if (!ubuff || !ub_sz) {
480 ((pin) ?
"TX" :
"RX"), ubuff, ub_sz);
486 BCMLOG_ERR(
"%s-->Un-aligned address not implemented yet.. %p\n",
487 ((pin) ?
"TX" :
"RX"), ubuff);
493 if (!en_422 && !uv_off) {
498 if (en_422 && uv_off) {
514 if (!ctx || !idata) {
519 ubuff = idata->
udata.u.ProcInput.pDmaBuff;
520 ub_sz = idata->
udata.u.ProcInput.BuffSz;
522 sts = bc_cproc_check_inbuffs(1, ubuff, ub_sz, 0, 0);
535 sts = bc_cproc_hw_txdma(ctx, idata, dio_hnd);
551 if (!ctx || !idata) {
556 ubuff = idata->
udata.u.RxBuffs.YuvBuff;
557 ub_sz = idata->
udata.u.RxBuffs.YuvBuffSz;
558 uv_off = idata->
udata.u.RxBuffs.UVbuffOffset;
559 en_422 = idata->
udata.u.RxBuffs.b422Mode;
561 sts = bc_cproc_check_inbuffs(0, ubuff, ub_sz, uv_off, en_422);
566 en_422, 0, &dio_hnd);
607 if (!ctx || !idata) {
617 frame = &idata->
udata.u.DecOutData;
626 return bc_cproc_fmt_change(ctx, dio);
659 if (!ctx || !idata) {
673 frame = &idata->
udata.u.DecOutData;
692 if (!ctx || !idata) {
699 stats = &idata->
udata.u.drvStat;
700 stats->
drvRLL = hw_stats.rdyq_count;
701 stats->
drvFLL = hw_stats.freeq_count;
704 stats->
intCount = hw_stats.num_interrupts;
706 hw_stats.dev_interrupts;
733 if (!ctx || !idata) {
738 clock = &idata->
udata.u.clockValue;
739 oldClk = ctx->
hw_ctx.core_clock_mhz;
745 ctx->
hw_ctx.core_clock_mhz = oldClk;
806 if (!ctx || !idata) {
821 bc_cproc_mark_pwr_state(ctx);
824 sts = bc_cproc_flush_cap_buffs(ctx, idata);
864 bc_cproc_mark_pwr_state(ctx);
886 if (!ctx || !user_ctx) {
891 uc = bc_cproc_get_uid(ctx);
933 }
else if (bc_cproc_get_user_count(ctx)) {
970 ctx->
user[
i].in_use = 0;
1015 unsigned int i, tbl_sz;
1023 BCMLOG_ERR(
"Invalid State [suspend Set].. Cmd[%d]\n", cmd);
1028 for (i = 0; i < tbl_sz; i++) {
1029 if (g_crystalhd_cproc_tbl[i].cmd_id == cmd) {
1035 cproc = g_crystalhd_cproc_tbl[
i].
cmd_proc;