Lines Matching refs:mutex
137 struct mtk_mutex mutex[10]; member
284 if (!mtx->mutex[i].claimed) { in mtk_mutex_get()
285 mtx->mutex[i].claimed = true; in mtk_mutex_get()
286 return &mtx->mutex[i]; in mtk_mutex_get()
293 void mtk_mutex_put(struct mtk_mutex *mutex) in mtk_mutex_put() argument
295 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_put()
296 mutex[mutex->id]); in mtk_mutex_put()
298 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_put()
300 mutex->claimed = false; in mtk_mutex_put()
304 int mtk_mutex_prepare(struct mtk_mutex *mutex) in mtk_mutex_prepare() argument
306 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_prepare()
307 mutex[mutex->id]); in mtk_mutex_prepare()
312 void mtk_mutex_unprepare(struct mtk_mutex *mutex) in mtk_mutex_unprepare() argument
314 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_unprepare()
315 mutex[mutex->id]); in mtk_mutex_unprepare()
320 void mtk_mutex_add_comp(struct mtk_mutex *mutex, in mtk_mutex_add_comp() argument
323 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_add_comp()
324 mutex[mutex->id]); in mtk_mutex_add_comp()
329 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_add_comp()
353 mutex->id); in mtk_mutex_add_comp()
358 offset = DISP_REG_MUTEX_MOD2(mutex->id); in mtk_mutex_add_comp()
368 DISP_REG_MUTEX_SOF(mtx->data->mutex_sof_reg, mutex->id)); in mtk_mutex_add_comp()
372 void mtk_mutex_remove_comp(struct mtk_mutex *mutex, in mtk_mutex_remove_comp() argument
375 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_remove_comp()
376 mutex[mutex->id]); in mtk_mutex_remove_comp()
380 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_remove_comp()
392 mutex->id)); in mtk_mutex_remove_comp()
397 mutex->id); in mtk_mutex_remove_comp()
402 offset = DISP_REG_MUTEX_MOD2(mutex->id); in mtk_mutex_remove_comp()
412 void mtk_mutex_enable(struct mtk_mutex *mutex) in mtk_mutex_enable() argument
414 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_enable()
415 mutex[mutex->id]); in mtk_mutex_enable()
417 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_enable()
419 writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); in mtk_mutex_enable()
423 void mtk_mutex_disable(struct mtk_mutex *mutex) in mtk_mutex_disable() argument
425 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_disable()
426 mutex[mutex->id]); in mtk_mutex_disable()
428 WARN_ON(&mtx->mutex[mutex->id] != mutex); in mtk_mutex_disable()
430 writel(0, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); in mtk_mutex_disable()
434 void mtk_mutex_acquire(struct mtk_mutex *mutex) in mtk_mutex_acquire() argument
436 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_acquire()
437 mutex[mutex->id]); in mtk_mutex_acquire()
440 writel(1, mtx->regs + DISP_REG_MUTEX_EN(mutex->id)); in mtk_mutex_acquire()
441 writel(1, mtx->regs + DISP_REG_MUTEX(mutex->id)); in mtk_mutex_acquire()
442 if (readl_poll_timeout_atomic(mtx->regs + DISP_REG_MUTEX(mutex->id), in mtk_mutex_acquire()
444 pr_err("could not acquire mutex %d\n", mutex->id); in mtk_mutex_acquire()
448 void mtk_mutex_release(struct mtk_mutex *mutex) in mtk_mutex_release() argument
450 struct mtk_mutex_ctx *mtx = container_of(mutex, struct mtk_mutex_ctx, in mtk_mutex_release()
451 mutex[mutex->id]); in mtk_mutex_release()
453 writel(0, mtx->regs + DISP_REG_MUTEX(mutex->id)); in mtk_mutex_release()
469 mtx->mutex[i].id = i; in mtk_mutex_probe()