summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/host/nvhost_cdma.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/tegra/host/nvhost_cdma.h')
-rw-r--r--drivers/video/tegra/host/nvhost_cdma.h38
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