Lines Matching refs:mutex
342 struct mtk_mutex mutex[MTK_MUTEX_MAX_HANDLES]; member
814 if (!mtx->mutex[i].claimed) { in mtk_mutex_get()
815 mtx->mutex[i].claimed = true; in mtk_mutex_get()
816 return &mtx->mutex[i]; in mtk_mutex_get()
823 void mtk_mutex_put(struct mtk_mutex *mutex) in mtk_mutex_put() argument
825 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_put()
826 mutex[mutex->id]); in mtk_mutex_put()
828 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_put()
830 mutex->claimed = false; in mtk_mutex_put()
834 int mtk_mutex_prepare(struct mtk_mutex *mutex) in mtk_mutex_prepare() argument
836 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_prepare()
837 mutex[mutex->id]); in mtk_mutex_prepare()
842 void mtk_mutex_unprepare(struct mtk_mutex *mutex) in mtk_mutex_unprepare() argument
844 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_unprepare()
845 mutex[mutex->id]); in mtk_mutex_unprepare()
850 void mtk_mutex_add_comp(struct mtk_mutex *mutex, in mtk_mutex_add_comp() argument
853 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_add_comp()
854 mutex[mutex->id]); in mtk_mutex_add_comp()
859 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_add_comp()
889 mutex->id); in mtk_mutex_add_comp()
894 offset = DISP_REG_MUTEX_MOD2(mutex->id); in mtk_mutex_add_comp()
904 DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); in mtk_mutex_add_comp()
908 void mtk_mutex_remove_comp(struct mtk_mutex *mutex, in mtk_mutex_remove_comp() argument
911 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_remove_comp()
912 mutex[mutex->id]); in mtk_mutex_remove_comp()
916 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_remove_comp()
930 mutex->id)); in mtk_mutex_remove_comp()
935 mutex->id); in mtk_mutex_remove_comp()
940 offset = DISP_REG_MUTEX_MOD2(mutex->id); in mtk_mutex_remove_comp()
950 void mtk_mutex_enable(struct mtk_mutex *mutex) in mtk_mutex_enable() argument
952 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_enable()
953 mutex[mutex->id]); in mtk_mutex_enable()
955 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_enable()
957 writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); in mtk_mutex_enable()
961 int mtk_mutex_enable_by_cmdq(struct mtk_mutex *mutex, void *pkt) in mtk_mutex_enable_by_cmdq() argument
963 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_enable_by_cmdq()
964 mutex[mutex->id]); in mtk_mutex_enable_by_cmdq()
967 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_enable_by_cmdq()
975 mtx->addr + DISP_REG_MUTEX_EN(mutex->id), 1); in mtk_mutex_enable_by_cmdq()
980 void mtk_mutex_disable(struct mtk_mutex *mutex) in mtk_mutex_disable() argument
982 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_disable()
983 mutex[mutex->id]); in mtk_mutex_disable()
985 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_disable()
987 writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); in mtk_mutex_disable()
991 void mtk_mutex_acquire(struct mtk_mutex *mutex) in mtk_mutex_acquire() argument
993 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_acquire()
994 mutex[mutex->id]); in mtk_mutex_acquire()
997 writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); in mtk_mutex_acquire()
998 writel(1, mtx->regs + DISP_REG_MUTEX(mutex->id)); in mtk_mutex_acquire()
999 if (readl_poll_timeout_atomic(mtx->regs + DISP_REG_MUTEX(mutex->id), in mtk_mutex_acquire()
1001 pr_err("could not acquire mutex %d\n", mutex->id); in mtk_mutex_acquire()
1005 void mtk_mutex_release(struct mtk_mutex *mutex) in mtk_mutex_release() argument
1007 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_release()
1008 mutex[mutex->id]); in mtk_mutex_release()
1010 writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); in mtk_mutex_release()
1014 int mtk_mutex_write_mod(struct mtk_mutex *mutex, in mtk_mutex_write_mod() argument
1017 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_write_mod()
1018 mutex[mutex->id]); in mtk_mutex_write_mod()
1022 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_write_mod()
1044 mutex->id); in mtk_mutex_write_mod()
1047 mutex->id); in mtk_mutex_write_mod()
1063 int mtk_mutex_write_sof(struct mtk_mutex *mutex, in mtk_mutex_write_sof() argument
1066 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_write_sof()
1067 mutex[mutex->id]); in mtk_mutex_write_sof()
1069 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_write_sof()
1078 DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); in mtk_mutex_write_sof()
1096 mtx->mutex[i].id = i; in mtk_mutex_probe()