rpms/kernel/F-9 drm-fedora9-rollup.patch, NONE, 1.1 kernel.spec, 1.732, 1.733 drm-radeon-update.patch, 1.3, NONE linux-2.6-drm-add-i915-radeon-mdt.patch, 1.1, NONE linux-2.6-drm-fix-master-perm.patch, 1.1, NONE linux-2.6-drm-git-mm.patch, 1.4, NONE linux-2.6-drm-i915-modeset.patch, 1.9, NONE linux-2.6-drm-modesetting-oops-fixes.patch, 1.1, NONE linux-2.6-drm-radeon-fix-oops.patch, 1.1, NONE linux-2.6-drm-radeon-fix-oops2.patch, 1.1, NONE nouveau-drm-update.patch, 1.2, NONE nouveau-drm.patch, 1.12, NONE
Dave Airlie (airlied)
fedora-extras-commits at redhat.com
Tue Aug 5 03:18:34 UTC 2008
Author: airlied
Update of /cvs/pkgs/rpms/kernel/F-9
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv13554
Modified Files:
kernel.spec
Added Files:
drm-fedora9-rollup.patch
Removed Files:
drm-radeon-update.patch
linux-2.6-drm-add-i915-radeon-mdt.patch
linux-2.6-drm-fix-master-perm.patch linux-2.6-drm-git-mm.patch
linux-2.6-drm-i915-modeset.patch
linux-2.6-drm-modesetting-oops-fixes.patch
linux-2.6-drm-radeon-fix-oops.patch
linux-2.6-drm-radeon-fix-oops2.patch nouveau-drm-update.patch
nouveau-drm.patch
Log Message:
* Tue Aug 05 2008 Dave Airlie <airlied at redhat.com> 2.6.26.1-5
- rebase drm into 2.6.26 in one super patch
drm-fedora9-rollup.patch:
--- NEW FILE drm-fedora9-rollup.patch ---
diff --git a/drivers/char/drm/Kconfig b/drivers/char/drm/Kconfig
index 610d6fd..6b98529 100644
--- a/drivers/char/drm/Kconfig
+++ b/drivers/char/drm/Kconfig
@@ -105,3 +105,10 @@ config DRM_SAVAGE
help
Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister
chipset. If M is selected the module will be called savage.
+
+config DRM_NOUVEAU
+ tristate "Nvidia video cards"
+ depends on DRM
+ help
+ Choose this for nvidia open source 3d driver
+
diff --git a/drivers/char/drm/Makefile b/drivers/char/drm/Makefile
index 1283ded..2c652ba 100644
--- a/drivers/char/drm/Makefile
+++ b/drivers/char/drm/Makefile
@@ -6,14 +6,26 @@ drm-objs := drm_auth.o drm_bufs.o drm_context.o drm_dma.o drm_drawable.o \
drm_drv.o drm_fops.o drm_ioctl.o drm_irq.o \
drm_lock.o drm_memory.o drm_proc.o drm_stub.o drm_vm.o \
drm_agpsupport.o drm_scatter.o ati_pcigart.o drm_pci.o \
- drm_sysfs.o drm_hashtab.o drm_sman.o drm_mm.o
+ drm_sysfs.o drm_hashtab.o drm_sman.o drm_mm.o drm_object.o \
+ drm_fence.o drm_ttm.o drm_bo.o drm_bo_move.o drm_bo_lock.o \
+ drm_modes.o drm_crtc.o drm_edid.o
tdfx-objs := tdfx_drv.o
r128-objs := r128_drv.o r128_cce.o r128_state.o r128_irq.o
mga-objs := mga_drv.o mga_dma.o mga_state.o mga_warp.o mga_irq.o
i810-objs := i810_drv.o i810_dma.o
i830-objs := i830_drv.o i830_dma.o i830_irq.o
-i915-objs := i915_drv.o i915_dma.o i915_irq.o i915_mem.o
+i915-objs := i915_drv.o i915_dma.o i915_irq.o i915_mem.o i915_fence.o i915_buffer.o i915_init.o intel_display.o intel_lvds.o intel_crt.o intel_i2c.o intel_modes.o intel_sdvo.o intel_tv.o intel_fb.o
+nouveau-objs := nouveau_drv.o nouveau_state.o nouveau_fifo.o nouveau_mem.o \
+ nouveau_object.o nouveau_irq.o nouveau_notifier.o nouveau_swmthd.o \
+ nouveau_sgdma.o nouveau_dma.o nouveau_bo.o nouveau_fence.o \
+ nv04_timer.o \
+ nv04_mc.o nv40_mc.o nv50_mc.o \
+ nv04_fb.o nv10_fb.o nv40_fb.o \
+ nv04_fifo.o nv10_fifo.o nv40_fifo.o nv50_fifo.o \
+ nv04_graph.o nv10_graph.o nv20_graph.o \
+ nv40_graph.o nv50_graph.o \
+ nv04_instmem.o nv50_instmem.o
radeon-objs := radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o radeon_irq.o r300_cmdbuf.o
sis-objs := sis_drv.o sis_mm.o
savage-objs := savage_drv.o savage_bci.o savage_state.o
@@ -25,6 +37,7 @@ radeon-objs += radeon_ioc32.o
mga-objs += mga_ioc32.o
r128-objs += r128_ioc32.o
i915-objs += i915_ioc32.o
+nouveau-objs += nouveau_ioc32.o
endif
obj-$(CONFIG_DRM) += drm.o
@@ -35,6 +48,7 @@ obj-$(CONFIG_DRM_MGA) += mga.o
obj-$(CONFIG_DRM_I810) += i810.o
obj-$(CONFIG_DRM_I830) += i830.o
obj-$(CONFIG_DRM_I915) += i915.o
+obj-$(CONFIG_DRM_NOUVEAU) += nouveau.o
obj-$(CONFIG_DRM_SIS) += sis.o
obj-$(CONFIG_DRM_SAVAGE)+= savage.o
obj-$(CONFIG_DRM_VIA) +=via.o
diff --git a/drivers/char/drm/ati_pcigart.c b/drivers/char/drm/ati_pcigart.c
index c533d0c..f27f791 100644
--- a/drivers/char/drm/ati_pcigart.c
+++ b/drivers/char/drm/ati_pcigart.c
@@ -43,7 +43,6 @@ static int drm_ati_alloc_pcigart_table(struct drm_device *dev,
gart_info->table_mask);
if (gart_info->table_handle == NULL)
return -ENOMEM;
-
return 0;
}
@@ -149,7 +148,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
page_base = (u32) entry->busaddr[i];
for (j = 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) {
- switch(gart_info->gart_reg_if) {
+ switch (gart_info->gart_reg_if) {
case DRM_ATI_GART_IGP:
*pci_gart = cpu_to_le32((page_base) | 0xc);
break;
@@ -173,7 +172,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
mb();
#endif
- done:
+done:
gart_info->addr = address;
gart_info->bus_addr = bus_address;
return ret;
diff --git a/drivers/char/drm/drm.h b/drivers/char/drm/drm.h
index 38d3c6b..4d1b6b6 100644
--- a/drivers/char/drm/drm.h
+++ b/drivers/char/drm/drm.h
@@ -190,6 +190,7 @@ enum drm_map_type {
_DRM_AGP = 3, /**< AGP/GART */
_DRM_SCATTER_GATHER = 4, /**< Scatter/gather memory for PCI DMA */
_DRM_CONSISTENT = 5, /**< Consistent memory for PCI DMA */
+ _DRM_TTM = 6
};
/**
@@ -471,6 +472,7 @@ struct drm_irq_busid {
enum drm_vblank_seq_type {
_DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */
_DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */
+ _DRM_VBLANK_FLIP = 0x8000000, /**< Scheduled buffer swap should flip */
_DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */
_DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */
_DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking */
@@ -573,6 +575,494 @@ struct drm_set_version {
int drm_dd_minor;
};
+#define DRM_FENCE_FLAG_EMIT 0x00000001
+#define DRM_FENCE_FLAG_SHAREABLE 0x00000002
+#define DRM_FENCE_FLAG_WAIT_LAZY 0x00000004
+#define DRM_FENCE_FLAG_WAIT_IGNORE_SIGNALS 0x00000008
+#define DRM_FENCE_FLAG_NO_USER 0x00000010
+
+/* Reserved for driver use */
+#define DRM_FENCE_MASK_DRIVER 0xFF000000
+
+#define DRM_FENCE_TYPE_EXE 0x00000001
+
+struct drm_fence_arg {
+ unsigned int handle;
+ unsigned int fence_class;
+ unsigned int type;
+ unsigned int flags;
+ unsigned int signaled;
+ unsigned int error;
+ unsigned int sequence;
+ unsigned int pad64;
+ uint64_t expand_pad[2]; /*Future expansion */
+};
+
+/* Buffer permissions, referring to how the GPU uses the buffers.
+ * these translate to fence types used for the buffers.
+ * Typically a texture buffer is read, A destination buffer is write and
+ * a command (batch-) buffer is exe. Can be or-ed together.
+ */
+
+#define DRM_BO_FLAG_READ (1ULL << 0)
+#define DRM_BO_FLAG_WRITE (1ULL << 1)
+#define DRM_BO_FLAG_EXE (1ULL << 2)
+
+/*
+ * All of the bits related to access mode
+ */
+#define DRM_BO_MASK_ACCESS (DRM_BO_FLAG_READ | DRM_BO_FLAG_WRITE | DRM_BO_FLAG_EXE)
+/*
+ * Status flags. Can be read to determine the actual state of a buffer.
+ * Can also be set in the buffer mask before validation.
+ */
+
+/*
+ * Mask: Never evict this buffer. Not even with force.
+ * This type of buffer is only available to root and must be manually
+ * removed before buffer manager shutdown or lock.
+ * Flags: Acknowledge
+ */
+#define DRM_BO_FLAG_NO_EVICT (1ULL << 4)
+
+/*
+ * Mask: Require that the buffer is placed in mappable memory when validated.
+ * If not set the buffer may or may not be in mappable memory when validated.
+ * Flags: If set, the buffer is in mappable memory.
+ */
+#define DRM_BO_FLAG_MAPPABLE (1ULL << 5)
+
+/* Mask: The buffer should be shareable with other processes.
+ * Flags: The buffer is shareable with other processes.
+ */
+#define DRM_BO_FLAG_SHAREABLE (1ULL << 6)
+
+/* Mask: If set, place the buffer in cache-coherent memory if available.
+ * If clear, never place the buffer in cache coherent memory if validated.
+ * Flags: The buffer is currently in cache-coherent memory.
+ */
+#define DRM_BO_FLAG_CACHED (1ULL << 7)
+
+/* Mask: Make sure that every time this buffer is validated,
+ * it ends up on the same location provided that the memory mask
+ * is the same.
+ * The buffer will also not be evicted when claiming space for
+ * other buffers. Basically a pinned buffer but it may be thrown out as
+ * part of buffer manager shutdown or locking.
+ * Flags: Acknowledge.
+ */
+#define DRM_BO_FLAG_NO_MOVE (1ULL << 8)
+
+/* Mask: Make sure the buffer is in cached memory when mapped. In conjunction
+ * with DRM_BO_FLAG_CACHED it also allows the buffer to be bound into the GART
+ * with unsnooped PTEs instead of snooped, by using chipset-specific cache
[...38918 lines suppressed...]
case RADEON_INIT_R300_CP:
- return radeon_do_init_cp(dev, init);
+ return radeon_do_init_cp(dev, init, file_priv);
case RADEON_CLEANUP_CP:
return radeon_do_cleanup_cp(dev);
}
@@ -1731,6 +1733,9 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags)
DRM_DEBUG("%s card detected\n",
((dev_priv->flags & RADEON_IS_AGP) ? "AGP" : (((dev_priv->flags & RADEON_IS_PCIE) ? "PCIE" : "PCI"))));
+ ret = drm_addmap(dev, drm_get_resource_start(dev, 2),
+ drm_get_resource_len(dev, 2), _DRM_REGISTERS,
+ _DRM_READ_ONLY|_DRM_DRIVER, &dev_priv->mmio);
return ret;
}
@@ -1745,12 +1750,6 @@ int radeon_driver_firstopen(struct drm_device *dev)
dev_priv->gart_info.table_size = RADEON_PCIGART_TABLE_SIZE;
- ret = drm_addmap(dev, drm_get_resource_start(dev, 2),
- drm_get_resource_len(dev, 2), _DRM_REGISTERS,
- _DRM_READ_ONLY, &dev_priv->mmio);
- if (ret != 0)
- return ret;
-
dev_priv->fb_aper_offset = drm_get_resource_start(dev, 0);
ret = drm_addmap(dev, dev_priv->fb_aper_offset,
drm_get_resource_len(dev, 0), _DRM_FRAME_BUFFER,
@@ -1766,6 +1765,7 @@ int radeon_driver_unload(struct drm_device *dev)
drm_radeon_private_t *dev_priv = dev->dev_private;
DRM_DEBUG("\n");
+ drm_rmmap(dev, dev_priv->mmio);
drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER);
dev->dev_private = NULL;
diff --git a/drivers/char/drm/radeon_drv.c b/drivers/char/drm/radeon_drv.c
index 349ac3d..52b7c46 100644
--- a/drivers/char/drm/radeon_drv.c
+++ b/drivers/char/drm/radeon_drv.c
@@ -81,6 +81,8 @@ static struct drm_driver driver = {
.get_reg_ofs = drm_core_get_reg_ofs,
.ioctls = radeon_ioctls,
.dma_ioctl = radeon_cp_buffers,
+ .master_create = radeon_master_create,
+ .master_destroy = radeon_master_destroy,
.fops = {
.owner = THIS_MODULE,
.open = drm_open,
diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h
index 3f0eca9..2e5ffb7 100644
--- a/drivers/char/drm/radeon_drv.h
+++ b/drivers/char/drm/radeon_drv.h
@@ -280,8 +280,6 @@ typedef struct drm_radeon_private {
unsigned long buffers_offset;
unsigned long gart_textures_offset;
- drm_local_map_t *sarea;
- drm_local_map_t *mmio;
drm_local_map_t *cp_ring;
drm_local_map_t *ring_rptr;
drm_local_map_t *gart_textures;
@@ -311,8 +309,13 @@ typedef struct drm_radeon_private {
unsigned long fb_aper_offset;
int num_gb_pipes;
+ drm_local_map_t *mmio;
} drm_radeon_private_t;
+struct drm_radeon_master_private {
+ drm_local_map_t *sarea;
+};
+
typedef struct drm_radeon_buf_priv {
u32 age;
} drm_radeon_buf_priv_t;
@@ -400,6 +403,9 @@ extern int radeon_driver_open(struct drm_device * dev, struct drm_file * filp_pr
extern long radeon_compat_ioctl(struct file *filp, unsigned int cmd,
unsigned long arg);
+extern int radeon_master_create(struct drm_device *dev, struct drm_master *master);
+extern void radeon_master_destroy(struct drm_device *dev, struct drm_master *master);
+
/* r300_cmdbuf.c */
extern void r300_init_reg_flags(struct drm_device *dev);
diff --git a/drivers/char/drm/radeon_state.c b/drivers/char/drm/radeon_state.c
index 11c146b..822a858 100644
--- a/drivers/char/drm/radeon_state.c
+++ b/drivers/char/drm/radeon_state.c
@@ -1415,10 +1415,11 @@ static void radeon_cp_dispatch_swap(struct drm_device * dev)
ADVANCE_RING();
}
-static void radeon_cp_dispatch_flip(struct drm_device * dev)
+static void radeon_cp_dispatch_flip(struct drm_device * dev, struct drm_master *master)
{
drm_radeon_private_t *dev_priv = dev->dev_private;
- struct drm_sarea *sarea = (struct drm_sarea *) dev_priv->sarea->handle;
+ struct drm_radeon_master_private *master_priv = master->driver_priv;
+ struct drm_sarea *sarea = (struct drm_sarea *) master_priv->sarea->handle;
int offset = (dev_priv->sarea_priv->pfCurrentPage == 1)
? dev_priv->front_offset : dev_priv->back_offset;
RING_LOCALS;
@@ -2174,7 +2175,7 @@ static int radeon_cp_flip(struct drm_device *dev, void *data, struct drm_file *f
if (!dev_priv->page_flipping)
radeon_do_init_pageflip(dev);
- radeon_cp_dispatch_flip(dev);
+ radeon_cp_dispatch_flip(dev, file_priv->master);
COMMIT_RING();
return 0;
@@ -3020,7 +3021,7 @@ static int radeon_cp_getparam(struct drm_device *dev, void *data, struct drm_fil
*/
case RADEON_PARAM_SAREA_HANDLE:
/* The lock is the first dword in the sarea. */
- value = (long)dev->lock.hw_lock;
+ value = (long)dev->primary->master->lock.hw_lock;
break;
#endif
case RADEON_PARAM_GART_TEX_HANDLE:
@@ -3078,12 +3079,14 @@ static int radeon_cp_setparam(struct drm_device *dev, void *data, struct drm_fil
DRM_DEBUG("color tiling disabled\n");
dev_priv->front_pitch_offset &= ~RADEON_DST_TILE_MACRO;
dev_priv->back_pitch_offset &= ~RADEON_DST_TILE_MACRO;
- dev_priv->sarea_priv->tiling_enabled = 0;
+ if (dev_priv->sarea_priv)
+ dev_priv->sarea_priv->tiling_enabled = 0;
} else if (sp->value == 1) {
DRM_DEBUG("color tiling enabled\n");
dev_priv->front_pitch_offset |= RADEON_DST_TILE_MACRO;
dev_priv->back_pitch_offset |= RADEON_DST_TILE_MACRO;
- dev_priv->sarea_priv->tiling_enabled = 1;
+ if (dev_priv->sarea_priv)
+ dev_priv->sarea_priv->tiling_enabled = 1;
}
break;
case RADEON_SETPARAM_PCIGART_LOCATION:
@@ -3099,7 +3102,8 @@ static int radeon_cp_setparam(struct drm_device *dev, void *data, struct drm_fil
dev_priv->gart_info.table_size = RADEON_PCIGART_TABLE_SIZE;
break;
case RADEON_SETPARAM_VBLANK_CRTC:
- return radeon_vblank_crtc_set(dev, sp->value);
+ if (dev_priv)
+ return radeon_vblank_crtc_set(dev, sp->value);
break;
default:
DRM_DEBUG("Invalid parameter %d\n", sp->param);
@@ -3129,15 +3133,42 @@ void radeon_driver_preclose(struct drm_device *dev, struct drm_file *file_priv)
void radeon_driver_lastclose(struct drm_device *dev)
{
- if (dev->dev_private) {
- drm_radeon_private_t *dev_priv = dev->dev_private;
+ radeon_do_release(dev);
+}
- if (dev_priv->sarea_priv &&
- dev_priv->sarea_priv->pfCurrentPage != 0)
- radeon_cp_dispatch_flip(dev);
- }
+int radeon_master_create(struct drm_device *dev, struct drm_master *master)
+{
+ /* radeon doesn't support multi-master yet so just workaround */
+ struct drm_radeon_master_private *master_priv;
+
+ master_priv = drm_calloc(1, sizeof(*master_priv), DRM_MEM_DRIVER);
+ if (!master_priv)
+ return -ENOMEM;
+
+ master->driver_priv = master_priv;
+ return 0;
+}
+
+void radeon_master_destroy(struct drm_device *dev, struct drm_master *master)
+{
+ struct drm_radeon_master_private *master_priv = master->driver_priv;
+ drm_radeon_private_t *dev_priv = dev->dev_private;
+
+ if (!master_priv)
+ return;
+
+ if (dev_priv->sarea_priv &&
+ dev_priv->sarea_priv->pfCurrentPage != 0)
+ radeon_cp_dispatch_flip(dev, master);
+
+ dev_priv->sarea_priv = NULL;
+
+ if (master_priv->sarea)
+ drm_rmmap(dev, master_priv->sarea);
+
+ drm_free(master_priv, sizeof(*master_priv), DRM_MEM_DRIVER);
+ master->driver_priv = NULL;
- radeon_do_release(dev);
}
int radeon_driver_open(struct drm_device *dev, struct drm_file *file_priv)
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/kernel.spec,v
retrieving revision 1.732
retrieving revision 1.733
diff -u -r1.732 -r1.733
--- kernel.spec 5 Aug 2008 03:10:58 -0000 1.732
+++ kernel.spec 5 Aug 2008 03:18:03 -0000 1.733
@@ -635,15 +635,7 @@
Patch1515: linux-2.6-lirc.patch
# nouveau + drm fixes
-Patch1801: linux-2.6-drm-git-mm.patch
-Patch1803: nouveau-drm.patch
-Patch1804: nouveau-drm-update.patch
-Patch1806: linux-2.6-drm-i915-modeset.patch
-Patch1807: linux-2.6-drm-radeon-fix-oops.patch
-Patch1808: linux-2.6-drm-radeon-fix-oops2.patch
-Patch1809: linux-2.6-drm-modesetting-oops-fixes.patch
-Patch1810: linux-2.6-drm-fix-master-perm.patch
-Patch1811: drm-radeon-update.patch
+Patch1801: drm-fedora9-rollup.patch
# kludge to make ich9 e1000 work
Patch2000: linux-2.6-e1000-ich9.patch
@@ -1180,15 +1172,7 @@
ApplyPatch linux-2.6-net-tulip-interrupt.patch
# Nouveau DRM + drm fixes
-#ApplyPatch linux-2.6-drm-git-mm.patch
-#ApplyPatch nouveau-drm.patch
-#ApplyPatch nouveau-drm-update.patch
-#ApplyPatch linux-2.6-drm-i915-modeset.patch
-#ApplyPatch linux-2.6-drm-radeon-fix-oops.patch
-#ApplyPatch linux-2.6-drm-radeon-fix-oops2.patch
-#ApplyPatch linux-2.6-drm-modesetting-oops-fixes.patch
-#ApplyPatch linux-2.6-drm-fix-master-perm.patch
-#ApplyPatch drm-radeon-update.patch
+ApplyPatch drm-fedora9-rollup.patch
# ext4dev stable patch queue, slated for 2.6.25
#ApplyPatch linux-2.6-ext4-stable-queue.patch
@@ -1798,6 +1782,9 @@
%kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL}.xen -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.xen.conf %{with_xen} xen
%changelog
+* Tue Aug 05 2008 Dave Airlie <airlied at redhat.com> 2.6.26.1-5
+- rebase drm into 2.6.26 in one super patch
+
* Mon Aug 04 2008 Dave Jones <davej at redhat.com>
- Fix bogus printk in execshield noticed by Brendan Lynch.
@@ -1808,6 +1795,7 @@
* Mon Aug 04 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.26.1-3
- Fix up the smarter-relatime patch.
+>>>>>>> 1.732
* Mon Aug 04 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.26.1-2
- Fixes for quad PPC970 Powerstation (#457467)
--- drm-radeon-update.patch DELETED ---
--- linux-2.6-drm-add-i915-radeon-mdt.patch DELETED ---
--- linux-2.6-drm-fix-master-perm.patch DELETED ---
--- linux-2.6-drm-git-mm.patch DELETED ---
--- linux-2.6-drm-i915-modeset.patch DELETED ---
--- linux-2.6-drm-modesetting-oops-fixes.patch DELETED ---
--- linux-2.6-drm-radeon-fix-oops.patch DELETED ---
--- linux-2.6-drm-radeon-fix-oops2.patch DELETED ---
--- nouveau-drm-update.patch DELETED ---
--- nouveau-drm.patch DELETED ---
More information about the fedora-extras-commits
mailing list