diff options
Diffstat (limited to 'drivers/video/tegra/host/nvhost_cdma.h')
-rw-r--r-- | drivers/video/tegra/host/nvhost_cdma.h | 38 |
1 files changed, 11 insertions, 27 deletions
diff --git a/drivers/video/tegra/host/nvhost_cdma.h b/drivers/video/tegra/host/nvhost_cdma.h index 9cb9b8277254..a9522c5f6326 100644 --- a/drivers/video/tegra/host/nvhost_cdma.h +++ b/drivers/video/tegra/host/nvhost_cdma.h @@ -25,14 +25,13 @@ #include <linux/semaphore.h> #include <linux/nvhost.h> -#include <mach/nvmap.h> #include <linux/list.h> -#include "nvhost_acm.h" - struct nvhost_syncpt; struct nvhost_userctx_timeout; struct nvhost_job; +struct mem_mgr; +struct mem_handle; /* * cdma @@ -48,27 +47,13 @@ struct nvhost_job; * update - call to update sync queue and push buffer, unpin memory */ -struct nvmap_client_handle { - struct nvmap_client *client; - struct nvmap_handle *handle; -}; - struct push_buffer { - struct nvmap_handle_ref *mem; /* handle to pushbuffer memory */ + struct mem_handle *mem; /* handle to pushbuffer memory */ u32 *mapped; /* mapped pushbuffer memory */ u32 phys; /* physical address of pushbuffer */ u32 fence; /* index we've written */ u32 cur; /* index to write to */ - struct nvmap_client_handle *nvmap; - /* nvmap handle for each opcode pair */ -}; - -struct syncpt_buffer { - struct nvmap_handle_ref *mem; /* handle to pushbuffer memory */ - u32 *mapped; /* mapped gather buffer (at channel offset */ - u32 phys; /* physical address (at channel offset) */ - u32 incr_per_buffer; /* max # of incrs per GATHER */ - u32 words_per_incr; /* # of DWORDS in buffer to incr a syncpt */ + struct mem_mgr_handle *client_handle; /* handle for each opcode pair */ }; struct buffer_timeout { @@ -97,29 +82,28 @@ struct nvhost_cdma { unsigned int first_get; /* DMAGET value, where submit begins */ unsigned int last_put; /* last value written to DMAPUT */ struct push_buffer push_buffer; /* channel's push buffer */ - struct syncpt_buffer syncpt_buffer; /* syncpt incr buffer */ struct list_head sync_queue; /* job queue */ struct buffer_timeout timeout; /* channel's timeout state/wq */ bool running; bool torndown; + int high_prio_count; + int med_prio_count; + int low_prio_count; }; #define cdma_to_channel(cdma) container_of(cdma, struct nvhost_channel, cdma) #define cdma_to_dev(cdma) nvhost_get_host(cdma_to_channel(cdma)->dev) -#define cdma_op(cdma) (cdma_to_dev(cdma)->op.cdma) -#define cdma_to_nvmap(cdma) ((cdma_to_dev(cdma))->nvmap) +#define cdma_to_memmgr(cdma) ((cdma_to_dev(cdma))->memmgr) #define pb_to_cdma(pb) container_of(pb, struct nvhost_cdma, push_buffer) -#define cdma_pb_op(cdma) (cdma_to_dev(cdma)->op.push_buffer) int nvhost_cdma_init(struct nvhost_cdma *cdma); void nvhost_cdma_deinit(struct nvhost_cdma *cdma); void nvhost_cdma_stop(struct nvhost_cdma *cdma); int nvhost_cdma_begin(struct nvhost_cdma *cdma, struct nvhost_job *job); void nvhost_cdma_push(struct nvhost_cdma *cdma, u32 op1, u32 op2); -#define NVHOST_CDMA_PUSH_GATHER_CTXSAVE 0xffffffff void nvhost_cdma_push_gather(struct nvhost_cdma *cdma, - struct nvmap_client *client, - struct nvmap_handle *handle, u32 op1, u32 op2); + struct mem_mgr *client, + struct mem_handle *handle, u32 offset, u32 op1, u32 op2); void nvhost_cdma_end(struct nvhost_cdma *cdma, struct nvhost_job *job); void nvhost_cdma_update(struct nvhost_cdma *cdma); @@ -129,5 +113,5 @@ void nvhost_cdma_peek(struct nvhost_cdma *cdma, unsigned int nvhost_cdma_wait_locked(struct nvhost_cdma *cdma, enum cdma_event event); void nvhost_cdma_update_sync_queue(struct nvhost_cdma *cdma, - struct nvhost_syncpt *syncpt, struct device *dev); + struct nvhost_syncpt *syncpt, struct nvhost_device *dev); #endif |