Merge tag 'drm/tegra/for-3.19-rc1' of git://people.freedesktop.org/~tagr/linux into drm-next
drm/tegra: Changes for v3.19-rc1
The highlights in this pull request are:
* IOMMU support: The Tegra DRM driver can now deal with discontiguous
buffers if an IOMMU exists in the system. That means it can allocate
using drm_gem_get_pages() and will map them into IOVA space via the
IOMMU API. Similarly, non-contiguous PRIME buffers can be imported
from a different driver, which allows better integration with gk20a
(nouveau) and less hacks.
* Universal planes: This is precursory work for atomic modesetting and
will allow hardware cursor support to be implemented on pre-Tegra114
where RGB cursors were not supported.
* DSI ganged-mode support: The DSI controller can now gang up with a
second DSI controller to drive high resolution DSI panels.
Besides those bigger changes there is a slew of fixes, cleanups, plugged
memory leaks and so on.
* tag 'drm/tegra/for-3.19-rc1' of git://people.freedesktop.org/~tagr/linux: (44 commits)
drm/tegra: gem: Check before freeing CMA memory
drm/tegra: fb: Add error codes to error messages
drm/tegra: fb: Properly release GEM objects on failure
drm/tegra: Detach panel when a connector is removed
drm/tegra: Plug memory leak
drm/tegra: gem: Use more consistent data types
drm/tegra: fb: Do not destroy framebuffer
drm/tegra: gem: dumb: pitch and size are outputs
drm/tegra: Enable the hotplug interrupt only when necessary
drm/tegra: dc: Universal plane support
drm/tegra: dc: Registers are 32 bits wide
drm/tegra: dc: Factor out DC, window and cursor commit
drm/tegra: Add IOMMU support
drm/tegra: Fix error handling cleanup
drm/tegra: gem: Use dma_mmap_writecombine()
drm/tegra: gem: Remove redundant drm_gem_free_mmap_offset()
drm/tegra: gem: Cleanup tegra_bo_create_with_handle()
drm/tegra: gem: Extract tegra_bo_alloc_object()
drm/tegra: dsi: Set up PHY_TIMING & BTA_TIMING registers earlier
drm/tegra: dsi: Replace 1000000 by USEC_PER_SEC
...
This commit is contained in:
@@ -29,6 +29,8 @@
|
||||
#include <linux/ktime.h>
|
||||
#include <linux/tracepoint.h>
|
||||
|
||||
struct host1x_bo;
|
||||
|
||||
DECLARE_EVENT_CLASS(host1x,
|
||||
TP_PROTO(const char *name),
|
||||
TP_ARGS(name),
|
||||
@@ -79,14 +81,14 @@ TRACE_EVENT(host1x_cdma_push,
|
||||
);
|
||||
|
||||
TRACE_EVENT(host1x_cdma_push_gather,
|
||||
TP_PROTO(const char *name, u32 mem_id,
|
||||
TP_PROTO(const char *name, struct host1x_bo *bo,
|
||||
u32 words, u32 offset, void *cmdbuf),
|
||||
|
||||
TP_ARGS(name, mem_id, words, offset, cmdbuf),
|
||||
TP_ARGS(name, bo, words, offset, cmdbuf),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(const char *, name)
|
||||
__field(u32, mem_id)
|
||||
__field(struct host1x_bo *, bo)
|
||||
__field(u32, words)
|
||||
__field(u32, offset)
|
||||
__field(bool, cmdbuf)
|
||||
@@ -100,13 +102,13 @@ TRACE_EVENT(host1x_cdma_push_gather,
|
||||
}
|
||||
__entry->cmdbuf = cmdbuf;
|
||||
__entry->name = name;
|
||||
__entry->mem_id = mem_id;
|
||||
__entry->bo = bo;
|
||||
__entry->words = words;
|
||||
__entry->offset = offset;
|
||||
),
|
||||
|
||||
TP_printk("name=%s, mem_id=%08x, words=%u, offset=%d, contents=[%s]",
|
||||
__entry->name, __entry->mem_id,
|
||||
TP_printk("name=%s, bo=%p, words=%u, offset=%d, contents=[%s]",
|
||||
__entry->name, __entry->bo,
|
||||
__entry->words, __entry->offset,
|
||||
__print_hex(__get_dynamic_array(cmdbuf),
|
||||
__entry->cmdbuf ? __entry->words * 4 : 0))
|
||||
@@ -221,12 +223,13 @@ TRACE_EVENT(host1x_syncpt_load_min,
|
||||
);
|
||||
|
||||
TRACE_EVENT(host1x_syncpt_wait_check,
|
||||
TP_PROTO(void *mem_id, u32 offset, u32 syncpt_id, u32 thresh, u32 min),
|
||||
TP_PROTO(struct host1x_bo *bo, u32 offset, u32 syncpt_id, u32 thresh,
|
||||
u32 min),
|
||||
|
||||
TP_ARGS(mem_id, offset, syncpt_id, thresh, min),
|
||||
TP_ARGS(bo, offset, syncpt_id, thresh, min),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(void *, mem_id)
|
||||
__field(struct host1x_bo *, bo)
|
||||
__field(u32, offset)
|
||||
__field(u32, syncpt_id)
|
||||
__field(u32, thresh)
|
||||
@@ -234,15 +237,15 @@ TRACE_EVENT(host1x_syncpt_wait_check,
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->mem_id = mem_id;
|
||||
__entry->bo = bo;
|
||||
__entry->offset = offset;
|
||||
__entry->syncpt_id = syncpt_id;
|
||||
__entry->thresh = thresh;
|
||||
__entry->min = min;
|
||||
),
|
||||
|
||||
TP_printk("mem_id=%p, offset=%05x, id=%d, thresh=%d, current=%d",
|
||||
__entry->mem_id, __entry->offset,
|
||||
TP_printk("bo=%p, offset=%05x, id=%d, thresh=%d, current=%d",
|
||||
__entry->bo, __entry->offset,
|
||||
__entry->syncpt_id, __entry->thresh,
|
||||
__entry->min)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user