#include <linux/dma-fence.h>
#include "msm_drv.h"
#include "msm_fence.h"
#include "msm_gpu.h"
static struct msm_gpu *fctx2gpu(struct msm_fence_context *fctx)
{ … }
static enum hrtimer_restart deadline_timer(struct hrtimer *t)
{ … }
static void deadline_work(struct kthread_work *work)
{ … }
struct msm_fence_context *
msm_fence_context_alloc(struct drm_device *dev, volatile uint32_t *fenceptr,
const char *name)
{ … }
void msm_fence_context_free(struct msm_fence_context *fctx)
{ … }
bool msm_fence_completed(struct msm_fence_context *fctx, uint32_t fence)
{ … }
void msm_update_fence(struct msm_fence_context *fctx, uint32_t fence)
{ … }
struct msm_fence { … };
static inline struct msm_fence *to_msm_fence(struct dma_fence *fence)
{ … }
static const char *msm_fence_get_driver_name(struct dma_fence *fence)
{ … }
static const char *msm_fence_get_timeline_name(struct dma_fence *fence)
{ … }
static bool msm_fence_signaled(struct dma_fence *fence)
{ … }
static void msm_fence_set_deadline(struct dma_fence *fence, ktime_t deadline)
{ … }
static const struct dma_fence_ops msm_fence_ops = …;
struct dma_fence *
msm_fence_alloc(void)
{ … }
void
msm_fence_init(struct dma_fence *fence, struct msm_fence_context *fctx)
{ … }