Lines Matching refs:mutex
230 struct mtk_mutex mutex[10]; member
536 if (!mtx->mutex[i].claimed) { in mtk_mutex_get()
537 mtx->mutex[i].claimed = true; in mtk_mutex_get()
538 return &mtx->mutex[i]; in mtk_mutex_get()
545 void mtk_mutex_put(struct mtk_mutex *mutex) in mtk_mutex_put() argument
547 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_put()
548 mutex[mutex->id]); in mtk_mutex_put()
550 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_put()
552 mutex->claimed = false; in mtk_mutex_put()
556 int mtk_mutex_prepare(struct mtk_mutex *mutex) in mtk_mutex_prepare() argument
558 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_prepare()
559 mutex[mutex->id]); in mtk_mutex_prepare()
564 void mtk_mutex_unprepare(struct mtk_mutex *mutex) in mtk_mutex_unprepare() argument
566 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_unprepare()
567 mutex[mutex->id]); in mtk_mutex_unprepare()
572 void mtk_mutex_add_comp(struct mtk_mutex *mutex, in mtk_mutex_add_comp() argument
575 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_add_comp()
576 mutex[mutex->id]); in mtk_mutex_add_comp()
581 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_add_comp()
608 mutex->id); in mtk_mutex_add_comp()
613 offset = DISP_REG_MUTEX_MOD2(mutex->id); in mtk_mutex_add_comp()
623 DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); in mtk_mutex_add_comp()
627 void mtk_mutex_remove_comp(struct mtk_mutex *mutex, in mtk_mutex_remove_comp() argument
630 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_remove_comp()
631 mutex[mutex->id]); in mtk_mutex_remove_comp()
635 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_remove_comp()
648 mutex->id)); in mtk_mutex_remove_comp()
653 mutex->id); in mtk_mutex_remove_comp()
658 offset = DISP_REG_MUTEX_MOD2(mutex->id); in mtk_mutex_remove_comp()
668 void mtk_mutex_enable(struct mtk_mutex *mutex) in mtk_mutex_enable() argument
670 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_enable()
671 mutex[mutex->id]); in mtk_mutex_enable()
673 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_enable()
675 writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); in mtk_mutex_enable()
679 int mtk_mutex_enable_by_cmdq(struct mtk_mutex *mutex, void *pkt) in mtk_mutex_enable_by_cmdq() argument
681 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_enable_by_cmdq()
682 mutex[mutex->id]); in mtk_mutex_enable_by_cmdq()
686 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_enable_by_cmdq()
694 mtx->addr + DISP_REG_MUTEX_EN(mutex->id), 1); in mtk_mutex_enable_by_cmdq()
703 void mtk_mutex_disable(struct mtk_mutex *mutex) in mtk_mutex_disable() argument
705 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_disable()
706 mutex[mutex->id]); in mtk_mutex_disable()
708 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_disable()
710 writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); in mtk_mutex_disable()
714 void mtk_mutex_acquire(struct mtk_mutex *mutex) in mtk_mutex_acquire() argument
716 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_acquire()
717 mutex[mutex->id]); in mtk_mutex_acquire()
720 writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); in mtk_mutex_acquire()
721 writel(1, mtx->regs + DISP_REG_MUTEX(mutex->id)); in mtk_mutex_acquire()
722 if (readl_poll_timeout_atomic(mtx->regs + DISP_REG_MUTEX(mutex->id), in mtk_mutex_acquire()
724 pr_err("could not acquire mutex %d\n", mutex->id); in mtk_mutex_acquire()
728 void mtk_mutex_release(struct mtk_mutex *mutex) in mtk_mutex_release() argument
730 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_release()
731 mutex[mutex->id]); in mtk_mutex_release()
733 writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); in mtk_mutex_release()
737 int mtk_mutex_write_mod(struct mtk_mutex *mutex, in mtk_mutex_write_mod() argument
740 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_write_mod()
741 mutex[mutex->id]); in mtk_mutex_write_mod()
745 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_write_mod()
754 mutex->id); in mtk_mutex_write_mod()
768 int mtk_mutex_write_sof(struct mtk_mutex *mutex, in mtk_mutex_write_sof() argument
771 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_write_sof()
772 mutex[mutex->id]); in mtk_mutex_write_sof()
774 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_write_sof()
783 DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); in mtk_mutex_write_sof()
804 mtx->mutex[i].id = i; in mtk_mutex_probe()