mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
linux: add some nouveau upstream patches
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
3f1cadd52b
commit
2d8a69e635
@ -0,0 +1,31 @@
|
||||
From 8628f55e551ba2d19b25d9d8ab5a62b1a42ed05d Mon Sep 17 00:00:00 2001
|
||||
From: Francisco Jerez <currojerez@riseup.net>
|
||||
Date: Thu, 14 Oct 2010 19:55:23 +0000
|
||||
Subject: drm/nouveau: Use lazy fence waits when doing software interchannel sync.
|
||||
|
||||
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
|
||||
---
|
||||
diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c
|
||||
index 5f9f66f..0a22955 100644
|
||||
--- a/drivers/gpu/drm/nouveau/nouveau_fence.c
|
||||
+++ b/drivers/gpu/drm/nouveau/nouveau_fence.c
|
||||
@@ -390,7 +390,7 @@ nouveau_fence_sync(struct nouveau_fence *fence,
|
||||
if (!sema) {
|
||||
/* Early card or broken userspace, fall back to
|
||||
* software sync. */
|
||||
- return nouveau_fence_wait(fence, NULL, false, false);
|
||||
+ return nouveau_fence_wait(fence, NULL, true, false);
|
||||
}
|
||||
|
||||
/* try to take chan's mutex, if we can't take it right away
|
||||
@@ -399,7 +399,7 @@ nouveau_fence_sync(struct nouveau_fence *fence,
|
||||
*/
|
||||
if (!mutex_trylock(&chan->mutex)) {
|
||||
free_semaphore(&sema->ref);
|
||||
- return nouveau_fence_wait(fence, NULL, false, false);
|
||||
+ return nouveau_fence_wait(fence, NULL, true, false);
|
||||
}
|
||||
|
||||
/* Make wchan wait until it gets signalled */
|
||||
--
|
||||
cgit v0.8.3-6-g21f6
|
@ -0,0 +1,43 @@
|
||||
From e4de0c7b8333ad4e18d09041aa3db307e637afd5 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Skeggs <bskeggs@redhat.com>
|
||||
Date: Mon, 18 Oct 2010 02:34:04 +0000
|
||||
Subject: drm/nv50: remove some unnecessary PDISPLAY init
|
||||
|
||||
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||
---
|
||||
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
|
||||
index 11d366a..de5ca17 100644
|
||||
--- a/drivers/gpu/drm/nouveau/nv50_display.c
|
||||
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
|
||||
@@ -218,9 +218,9 @@ nv50_display_init(struct drm_device *dev)
|
||||
struct nouveau_gpio_engine *pgpio = &dev_priv->engine.gpio;
|
||||
struct nouveau_channel *evo = dev_priv->evo;
|
||||
struct drm_connector *connector;
|
||||
- uint32_t val, ram_amount;
|
||||
- uint64_t start;
|
||||
int ret, i;
|
||||
+ u64 start;
|
||||
+ u32 val;
|
||||
|
||||
NV_DEBUG_KMS(dev, "\n");
|
||||
|
||||
@@ -262,17 +262,6 @@ nv50_display_init(struct drm_device *dev)
|
||||
nv_wr32(dev, NV50_PDISPLAY_DAC_CLK_CTRL1(i), 0x00000001);
|
||||
}
|
||||
|
||||
- /* This used to be in crtc unblank, but seems out of place there. */
|
||||
- nv_wr32(dev, NV50_PDISPLAY_UNK_380, 0);
|
||||
- /* RAM is clamped to 256 MiB. */
|
||||
- ram_amount = dev_priv->vram_size;
|
||||
- NV_DEBUG_KMS(dev, "ram_amount %d\n", ram_amount);
|
||||
- if (ram_amount > 256*1024*1024)
|
||||
- ram_amount = 256*1024*1024;
|
||||
- nv_wr32(dev, NV50_PDISPLAY_RAM_AMOUNT, ram_amount - 1);
|
||||
- nv_wr32(dev, NV50_PDISPLAY_UNK_388, 0x150000);
|
||||
- nv_wr32(dev, NV50_PDISPLAY_UNK_38C, 0);
|
||||
-
|
||||
/* The precise purpose is unknown, i suspect it has something to do
|
||||
* with text mode.
|
||||
*/
|
||||
--
|
||||
cgit v0.8.3-6-g21f6
|
@ -0,0 +1,31 @@
|
||||
From f81788f1e998ee262fca83b88e3db79bafa3c13c Mon Sep 17 00:00:00 2001
|
||||
From: Francisco Jerez <currojerez@riseup.net>
|
||||
Date: Thu, 14 Oct 2010 18:37:56 +0000
|
||||
Subject: drm/nouveau: Leave BO eviction synchronization for later.
|
||||
|
||||
The pushbuf ioctl syncs after validation, no need for this anymore.
|
||||
|
||||
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
|
||||
---
|
||||
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
|
||||
index c663e87..0c35d38 100644
|
||||
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
|
||||
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
|
||||
@@ -483,15 +483,8 @@ nouveau_bo_move_accel_cleanup(struct nouveau_channel *chan,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
- if (nvbo->channel) {
|
||||
- ret = nouveau_fence_sync(fence, nvbo->channel);
|
||||
- if (ret)
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
ret = ttm_bo_move_accel_cleanup(&nvbo->bo, fence, NULL, evict,
|
||||
no_wait_reserve, no_wait_gpu, new_mem);
|
||||
-out:
|
||||
nouveau_fence_unref((void *)&fence);
|
||||
return ret;
|
||||
}
|
||||
--
|
||||
cgit v0.8.3-6-g21f6
|
Loading…
x
Reference in New Issue
Block a user