From: Lucas Stach <l.stach@pengutronix.de>
To: dri-devel@lists.freedesktop.org
Cc: Russell King <linux@arm.linux.org.uk>, kernel@pengutronix.de
Subject: [PATCH RFC 084/111] staging: etnaviv: runtime PM: add initial support
Date: Thu, 2 Apr 2015 17:30:26 +0200 [thread overview]
Message-ID: <1427988653-754-85-git-send-email-l.stach@pengutronix.de> (raw)
In-Reply-To: <1427988653-754-1-git-send-email-l.stach@pengutronix.de>
From: Russell King <rmk+kernel@arm.linux.org.uk>
Add initial runtime PM support. We manage the runtime PM state based
on the events: when we allocate an event upon command submission, we
"get" the runtime PM state, causing it to resume if not already resumed.
When we receive an interrupt, and free an event, we "put" the runtime
state. When all events are eventually freed, the runtime PM state
will then indicate that it can attempt to suspend the device.
We also include an idle callback which checks that the GPU modules
(except for the front end) are idle before suspending. This way we
ensure that the GPU is properly idle, and retry the suspend later if
not.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
lst: squashed fix for PM_RUNTIME config symbol removal
---
drivers/staging/etnaviv/etnaviv_gpu.c | 111 ++++++++++++++++++++++++++++++++--
drivers/staging/etnaviv/etnaviv_gpu.h | 1 +
2 files changed, 107 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/etnaviv/etnaviv_gpu.c b/drivers/staging/etnaviv/etnaviv_gpu.c
index a22c5ab558a7..32084e08a387 100644
--- a/drivers/staging/etnaviv/etnaviv_gpu.c
+++ b/drivers/staging/etnaviv/etnaviv_gpu.c
@@ -457,10 +457,14 @@ int etnaviv_gpu_init(struct etnaviv_gpu *gpu)
struct iommu_domain *iommu;
bool mmuv2;
+ ret = pm_runtime_get_sync(gpu->dev);
+ if (ret < 0)
+ return ret;
+
etnaviv_hw_identify(gpu);
ret = etnaviv_hw_reset(gpu);
if (ret)
- return ret;
+ goto fail;
/* Setup IOMMU.. eventually we will (I think) do this once per context
* and have separate page tables per context. For now, to keep things
@@ -510,10 +514,17 @@ int etnaviv_gpu_init(struct etnaviv_gpu *gpu)
/* Now program the hardware */
etnaviv_gpu_hw_init(gpu);
+ gpu->initialized = true;
+
+ pm_runtime_mark_last_busy(gpu->dev);
+ pm_runtime_put_autosuspend(gpu->dev);
return 0;
fail:
+ pm_runtime_mark_last_busy(gpu->dev);
+ pm_runtime_put_autosuspend(gpu->dev);
+
return ret;
}
@@ -545,10 +556,15 @@ static void verify_dma(struct etnaviv_gpu *gpu, struct dma_debug *debug)
void etnaviv_gpu_debugfs(struct etnaviv_gpu *gpu, struct seq_file *m)
{
struct dma_debug debug;
- u32 dma_lo = gpu_read(gpu, VIVS_FE_DMA_LOW);
- u32 dma_hi = gpu_read(gpu, VIVS_FE_DMA_HIGH);
- u32 axi = gpu_read(gpu, VIVS_HI_AXI_STATUS);
- u32 idle = gpu_read(gpu, VIVS_HI_IDLE_STATE);
+ u32 dma_lo, dma_hi, axi, idle;
+
+ if (pm_runtime_get_sync(gpu->dev) < 0)
+ return;
+
+ dma_lo = gpu_read(gpu, VIVS_FE_DMA_LOW);
+ dma_hi = gpu_read(gpu, VIVS_FE_DMA_HIGH);
+ axi = gpu_read(gpu, VIVS_HI_AXI_STATUS);
+ idle = gpu_read(gpu, VIVS_HI_IDLE_STATE);
verify_dma(gpu, &debug);
@@ -610,6 +626,9 @@ void etnaviv_gpu_debugfs(struct etnaviv_gpu *gpu, struct seq_file *m)
seq_printf(m, "\t state 1: 0x%08x\n", debug.state[1]);
seq_printf(m, "\t last fetch 64 bit word: 0x%08x 0x%08x\n",
dma_lo, dma_hi);
+
+ pm_runtime_mark_last_busy(gpu->dev);
+ pm_runtime_put_autosuspend(gpu->dev);
}
#endif
@@ -819,6 +838,11 @@ int etnaviv_gpu_submit(struct etnaviv_gpu *gpu,
struct drm_device *dev = gpu->drm;
struct etnaviv_drm_private *priv = dev->dev_private;
unsigned int event, i;
+ int ret;
+
+ ret = pm_runtime_get_sync(gpu->dev);
+ if (ret < 0)
+ return ret;
/*
* TODO
@@ -832,6 +856,7 @@ int etnaviv_gpu_submit(struct etnaviv_gpu *gpu,
event = event_alloc(gpu);
if (unlikely(event == ~0U)) {
DRM_ERROR("no free event\n");
+ pm_runtime_put_autosuspend(gpu->dev);
return -EBUSY;
}
@@ -884,6 +909,8 @@ static irqreturn_t irq_handler(int irq, void *data)
if (intr != 0) {
int event;
+ pm_runtime_mark_last_busy(gpu->dev);
+
dev_dbg(gpu->dev, "intr 0x%08x\n", intr);
if (intr & VIVS_HI_INTR_ACKNOWLEDGE_AXI_BUS_ERROR) {
@@ -911,6 +938,15 @@ static irqreturn_t irq_handler(int irq, void *data)
gpu->last_ring_pos = gpu->event[event].ring_pos;
}
event_free(gpu, event);
+
+ /*
+ * We need to balance the runtime PM count caused by
+ * each submission. Upon submission, we increment
+ * the runtime PM counter, and allocate one event.
+ * So here, we put the runtime PM count for each
+ * completed event.
+ */
+ pm_runtime_put_autosuspend(gpu->dev);
}
etnaviv_gpu_retire(gpu);
@@ -1003,7 +1039,11 @@ static int etnaviv_gpu_bind(struct device *dev, struct device *master,
dev_info(dev, "post gpu[idx]: %p\n", priv->gpu[idx]);
+#ifdef CONFIG_PM
+ ret = pm_runtime_get_sync(gpu->dev);
+#else
ret = etnaviv_gpu_resume(gpu);
+#endif
if (ret < 0)
return ret;
@@ -1015,6 +1055,10 @@ static int etnaviv_gpu_bind(struct device *dev, struct device *master,
setup_timer(&gpu->hangcheck_timer, hangcheck_handler,
(unsigned long)gpu);
+
+ pm_runtime_mark_last_busy(gpu->dev);
+ pm_runtime_put_autosuspend(gpu->dev);
+
return 0;
fail:
return -1;
@@ -1031,7 +1075,12 @@ static void etnaviv_gpu_unbind(struct device *dev, struct device *master,
WARN_ON(!list_empty(&gpu->active_list));
+#ifdef CONFIG_PM
+ pm_runtime_get_sync(gpu->dev);
+ pm_runtime_put_sync_suspend(gpu->dev);
+#else
etnaviv_gpu_suspend(gpu);
+#endif
if (gpu->buffer) {
drm_gem_object_unreference(gpu->buffer);
@@ -1130,6 +1179,15 @@ static int etnaviv_gpu_platform_probe(struct platform_device *pdev)
/* TODO: figure out max mapped size */
dev_set_drvdata(dev, gpu);
+ /*
+ * We treat the device as initially suspended. The runtime PM
+ * autosuspend delay is rather arbitary: no measurements have
+ * yet been performed to determine an appropriate value.
+ */
+ pm_runtime_use_autosuspend(gpu->dev);
+ pm_runtime_set_autosuspend_delay(gpu->dev, 200);
+ pm_runtime_enable(gpu->dev);
+
err = component_add(&pdev->dev, &gpu_ops);
if (err < 0) {
dev_err(&pdev->dev, "failed to register component: %d\n", err);
@@ -1145,13 +1203,56 @@ fail:
static int etnaviv_gpu_platform_remove(struct platform_device *pdev)
{
component_del(&pdev->dev, &gpu_ops);
+ pm_runtime_disable(&pdev->dev);
return 0;
}
+#ifdef CONFIG_PM
+static int etnaviv_gpu_rpm_suspend(struct device *dev)
+{
+ struct etnaviv_gpu *gpu = dev_get_drvdata(dev);
+ u32 idle, mask;
+
+ /* If we have outstanding fences, we're not idle */
+ if (gpu->retired_fence != gpu->submitted_fence)
+ return -EBUSY;
+
+ /* Check whether the hardware (except FE) is idle */
+ mask = gpu->idle_mask & ~VIVS_HI_IDLE_STATE_FE;
+ idle = gpu_read(gpu, VIVS_HI_IDLE_STATE) & mask;
+ if (idle != mask)
+ return -EBUSY;
+
+ return etnaviv_gpu_suspend(gpu);
+}
+
+static int etnaviv_gpu_rpm_resume(struct device *dev)
+{
+ struct etnaviv_gpu *gpu = dev_get_drvdata(dev);
+ int ret;
+
+ ret = etnaviv_gpu_resume(gpu);
+ if (ret)
+ return ret;
+
+ /* Re-initialise the basic hardware state */
+ if (gpu->initialized)
+ etnaviv_gpu_hw_init(gpu);
+
+ return 0;
+}
+#endif
+
+static const struct dev_pm_ops etnaviv_gpu_pm_ops = {
+ SET_RUNTIME_PM_OPS(etnaviv_gpu_rpm_suspend, etnaviv_gpu_rpm_resume,
+ NULL)
+};
+
struct platform_driver etnaviv_gpu_driver = {
.driver = {
.name = "etnaviv-gpu",
.owner = THIS_MODULE,
+ .pm = &etnaviv_gpu_pm_ops,
.of_match_table = etnaviv_gpu_match,
},
.probe = etnaviv_gpu_platform_probe,
diff --git a/drivers/staging/etnaviv/etnaviv_gpu.h b/drivers/staging/etnaviv/etnaviv_gpu.h
index bbc91b6ea8fe..3a4c111a4978 100644
--- a/drivers/staging/etnaviv/etnaviv_gpu.h
+++ b/drivers/staging/etnaviv/etnaviv_gpu.h
@@ -89,6 +89,7 @@ struct etnaviv_gpu {
struct device *dev;
struct etnaviv_chip_identity identity;
int pipe;
+ bool initialized;
/* 'ring'-buffer: */
struct drm_gem_object *buffer;
--
2.1.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2015-04-02 15:31 UTC|newest]
Thread overview: 181+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-02 15:29 [PATCH RFC 000/111] Etnaviv DRM driver Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 001/111] of: Add vendor prefix for Vivante Corporation Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 002/111] staging: etnaviv: add devicetree bindings Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 003/111] staging: etnaviv: add drm driver Lucas Stach
2015-04-05 19:26 ` Christian Gmeiner
2015-04-07 7:35 ` Lucas Stach
2015-04-07 9:04 ` Christian Gmeiner
2015-04-07 9:20 ` Lucas Stach
2015-04-07 9:40 ` Christian Gmeiner
2015-04-07 9:47 ` Lucas Stach
2015-04-07 9:58 ` Christian Gmeiner
2015-04-07 10:27 ` Lucas Stach
2015-04-08 0:13 ` Dave Airlie
2015-04-08 9:02 ` Lucas Stach
2015-04-07 10:46 ` Russell King - ARM Linux
2015-04-07 12:52 ` Lucas Stach
2015-04-07 23:56 ` Jerome Glisse
2015-04-02 15:29 ` [PATCH RFC 004/111] staging: etnaviv: import new headers Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 005/111] staging: etnaviv: remove IOMMUv2 stubs Lucas Stach
2015-04-02 17:14 ` Robert Nelson
2015-04-02 17:41 ` Lucas Stach
2015-04-05 18:32 ` Christian Gmeiner
2015-04-07 7:24 ` Lucas Stach
2015-04-07 8:13 ` Christian Gmeiner
2015-04-02 15:29 ` [PATCH RFC 006/111] staging: etnaviv: fix oops on unbind Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 007/111] staging: etnaviv: fix oops in timer subsystem caused by hangcheck timer Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 008/111] staging: etnaviv: fix etnaviv_add_components() Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 009/111] staging: etnaviv: fix etnaviv_hw_reset() Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 010/111] staging: etnaviv: fix etnaviv gpu debugfs output Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 011/111] staging: etnaviv: fix fence implementation Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 012/111] staging: etnaviv: fix buffer dumping code Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 013/111] staging: etnaviv: fix ring buffer overflow check Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 014/111] staging: etnaviv: fix cleanup of imported dmabufs Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 015/111] staging: etnaviv: fix printk formats Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 016/111] staging: etnaviv: validation: ensure space for the LINK command Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 017/111] staging: etnaviv: validation: improve command buffer size checks Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 018/111] staging: etnaviv: validation: improve relocation validation Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 019/111] staging: etnaviv: fix sparse warnings Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 020/111] staging: etnaviv: use devm_ioremap_resource() Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 021/111] staging: etnaviv: respect the submission command offset Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 022/111] staging: etnaviv: add an offset for buffer dumping Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 023/111] staging: etnaviv: quieten down submission debugging Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 024/111] staging: etnaviv: fix multiple command buffer submission in etnaviv_buffer_queue() Lucas Stach
2015-04-05 18:36 ` Christian Gmeiner
2015-04-02 15:29 ` [PATCH RFC 025/111] staging: etnaviv: package up events into etnaviv_event struct Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 026/111] staging: etnaviv: track the last known GPU position Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 027/111] staging: etnaviv: ensure that ring buffer wraps Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 028/111] staging: etnaviv: fix checkpatch errors Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 029/111] staging: etnaviv: fix checkpatch warnings Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 030/111] staging: etnaviv: fix get_pages() failure path Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 031/111] staging: etnaviv: add gem operations structure to etnaviv objects Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 032/111] staging: etnaviv: convert prime import to use etnaviv_gem_ops Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 033/111] staging: etnaviv: convert shmem release " Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 034/111] staging: etnaviv: convert cmdbuf " Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 035/111] staging: etnaviv: move drm_gem_object_release() Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 036/111] staging: etnaviv: ensure cleanup of reservation object Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 037/111] staging: etnaviv: clean up etnaviv_gem_free_object() Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 038/111] staging: etnaviv: provide etnaviv_gem_new_private() Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 039/111] staging: etnaviv: move msm_gem_import() etc to etnaviv_gem_prime.c Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 040/111] staging: etnaviv: clean up prime import Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 041/111] staging: etnaviv: convert get_pages()/put_pages() to take etnaviv_obj Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 042/111] staging: etnaviv: clean up etnaviv_gem_{get, put}_pages() Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 043/111] staging: etnaviv: add gem get_pages() method Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 044/111] staging: etnaviv: fix DMA API usage Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 045/111] staging: etnaviv: add support to insert a MMU flush into GPU stream Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 046/111] staging: etnaviv: move GPU memory management into MMU Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 047/111] staging: etnaviv: publish and use mmu geometry Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 048/111] staging: etnaviv: mmuv1: ensure we unmap all entries Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 049/111] staging: etnaviv: move MMU setup and teardown code to etnaviv_mmu.c Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 050/111] staging: etnaviv: hack: bypass iommu with contiguous buffers Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 051/111] staging: etnaviv: implement round-robin GPU MMU allocation Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 052/111] staging: etnaviv: fix etnaviv_iommu_map_gem() return paths Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 053/111] staging: etnaviv: implement MMU reaping Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 054/111] staging: etnaviv: move scatterlist creation to etnaviv_gem_get_pages() Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 055/111] staging: etnaviv: add userptr mapping support Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 056/111] staging: etnaviv: call the DRM device 'drm' Lucas Stach
2015-04-02 15:29 ` [PATCH RFC 057/111] staging: etnaviv: clean up printk()s etc Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 058/111] staging: etnaviv: safely take down hangcheck Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 059/111] staging: etnaviv: move hangcheck disable to separate function Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 060/111] staging: etnaviv: stop the hangcheck timer mis-firing Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 061/111] staging: etnaviv: ensure that we retire all pending events Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 062/111] staging: etnaviv: ensure GPU reset times out Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 063/111] staging: etnaviv: add workarounds for GC320 on iMX6 Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 064/111] staging: etnaviv: increase iommu page table size to 512KiB Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 065/111] staging: etnaviv: allow non-DT use Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 066/111] staging: etnaviv: dump mmu allocations Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 067/111] staging: etnaviv: use definitions for constants Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 068/111] staging: etnaviv: fix fence wrapping for gem objects Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 069/111] staging: etnaviv: move scatterlist map/unmap Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 070/111] staging: etnaviv: remove presumption of BO addresses Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 071/111] staging: etnaviv: clean up etnaviv mmu scatterlist code Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 072/111] staging: etnaviv: "better" DMA API usage Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 073/111] staging: etnaviv: iommu: add a poisoned bad page Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 074/111] staging: etnaviv: validate user supplied command stream Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 075/111] staging: etnaviv: allow get_param without auth Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 076/111] staging: etnaviv: fix busy reporting Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 077/111] staging: etnaviv: fix event allocation failure path Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 078/111] staging: etnaviv: remove powerrail support Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 079/111] staging: etnaviv: NULL out stale pointers at unbind time Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 080/111] staging: etnaviv: move mutex around component_{un, }bind_all() Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 081/111] staging: etnaviv: move PM calls into bind/unbind callbacks Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 082/111] staging: etnaviv: separate out etnaviv gpu hardware initialisation Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 083/111] staging: etnaviv: add support to shutdown and restore the front end Lucas Stach
2015-04-02 15:30 ` Lucas Stach [this message]
2015-04-02 15:30 ` [PATCH RFC 085/111] staging: etnaviv: add support for offset physical memory Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 086/111] staging: etnaviv: allow to draw up to 256 rectangles in one draw call Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 087/111] staging: etnaviv: align command stream size to 64 bit Lucas Stach
2015-04-02 16:20 ` Russell King - ARM Linux
2015-04-02 16:29 ` Lucas Stach
2015-04-02 16:45 ` Russell King - ARM Linux
2015-04-02 16:49 ` Lucas Stach
2015-04-05 19:38 ` Christian Gmeiner
2015-04-02 15:30 ` [PATCH RFC 088/111] staging: etnaviv: correct instruction count for GC2000 and GC880 Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 089/111] staging: etnaviv: reconfigure bus mapping on GC2000 Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 090/111] staging: etnaviv: fix cache cleaning for uncached SHM buffers Lucas Stach
2015-04-02 16:22 ` Russell King - ARM Linux
2015-04-02 16:36 ` Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 091/111] staging: etnaviv: properly flush all TLBs on MMUv1 Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 092/111] staging: etnaviv: convert to_etnaviv_bo() to real function Lucas Stach
2015-04-02 16:29 ` Russell King - ARM Linux
2015-04-05 19:29 ` Christian Gmeiner
2015-04-02 15:30 ` [PATCH RFC 093/111] staging: etnaviv: take gpu instead of pipe as input to fence wait function Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 094/111] staging: etnaviv: plug in fence waiting in cpu_prepare Lucas Stach
2015-04-05 18:51 ` Christian Gmeiner
2015-04-07 7:26 ` Lucas Stach
2015-04-07 8:14 ` Christian Gmeiner
2015-04-02 15:30 ` [PATCH RFC 095/111] staging: etnaviv: allow to map buffer object into multiple address spaces Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 096/111] staging: etnaviv: don't pretend to have a single MMU Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 097/111] staging: etnaviv: use GPU device to construct MMU Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 098/111] staging: etnaviv: flush MMU when switching context Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 099/111] staging: etnaviv: add flag to force buffer through MMU Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 100/111] staging: etnaviv: use more natural devicetree abstraction Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 101/111] staging: etnaviv: don't override platform provided IRQ flags Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 102/111] staging: etnaviv: separate GPU pipes from execution state Lucas Stach
2015-04-02 16:37 ` Russell King - ARM Linux
2015-04-05 19:41 ` Christian Gmeiner
2015-04-07 7:46 ` Lucas Stach
2015-04-07 8:03 ` Christian Gmeiner
2015-04-07 9:05 ` Lucas Stach
2015-04-07 11:31 ` Russell King - ARM Linux
2015-04-07 13:01 ` Lucas Stach
2015-04-07 14:38 ` Alex Deucher
2015-04-07 14:51 ` Jon Nettleton
2015-04-07 15:01 ` Lucas Stach
2015-04-07 15:07 ` Jon Nettleton
2015-04-07 15:13 ` Christian Gmeiner
2015-04-07 15:29 ` Lucas Stach
2015-04-07 16:59 ` Christian Gmeiner
2015-04-07 21:25 ` Russell King - ARM Linux
2015-04-08 7:28 ` Christian Gmeiner
2015-04-08 8:52 ` Lucas Stach
2015-04-07 22:14 ` Rob Clark
2015-04-08 8:59 ` Lucas Stach
2015-04-08 8:48 ` Lucas Stach
2015-04-07 14:52 ` Christian Gmeiner
2015-04-07 15:06 ` Christian König
2015-04-07 15:09 ` Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 103/111] staging: etnaviv: make sure to unlock DRM mutex when component bind fails Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 104/111] staging: etnaviv: clean up public API Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 105/111] staging: etnaviv: prune dumb buffer support Lucas Stach
2015-04-07 7:37 ` Christian Gmeiner
2015-04-02 15:30 ` [PATCH RFC 106/111] staging: etnaviv: properly prefix all prime functions to etnaviv Lucas Stach
2015-04-07 7:35 ` Christian Gmeiner
2015-04-02 15:30 ` [PATCH RFC 107/111] staging: etnaviv: rename last remaining bits from msm " Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 108/111] staging: etnaviv: quiten down kernel log output Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 109/111] staging: etnaviv: add proper license header to all files Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 110/111] staging: etnaviv: some final trivial changes to the module Lucas Stach
2015-04-02 15:30 ` [PATCH RFC 111/111] ARM: imx6: add Vivante GPU nodes Lucas Stach
2015-04-02 15:43 ` [PATCH RFC 000/111] Etnaviv DRM driver Russell King - ARM Linux
2015-04-02 15:59 ` Lucas Stach
2015-04-02 20:01 ` Robert Nelson
2015-04-05 19:55 ` Christian Gmeiner
2015-04-08 9:58 ` Jean-Michel Hautbois
2015-04-07 6:05 ` Daniel Vetter
2015-05-27 12:45 ` Etnaviv DRM driver - oops when unloading Alexander Holler
2015-05-27 12:49 ` Lucas Stach
2015-05-27 23:03 ` Russell King - ARM Linux
2015-06-09 10:13 ` Moving Etnaviv forward (Was: Re: Etnaviv DRM driver - oops when unloading) Lucas Stach
2015-06-09 10:47 ` Russell King - ARM Linux
2015-05-27 17:35 ` Etnaviv DRM driver - oops when unloading Russell King - ARM Linux
2015-05-28 8:24 ` Alexander Holler
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1427988653-754-85-git-send-email-l.stach@pengutronix.de \
--to=l.stach@pengutronix.de \
--cc=dri-devel@lists.freedesktop.org \
--cc=kernel@pengutronix.de \
--cc=linux@arm.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).