Another round of nouveau whack-a-mole.
Nouveau compiles now, though it doesn't link yet. Need to write driver attachment, wscons framebuffer, &c. Probably also some i2c stuff.
This commit is contained in:
parent
6e33c83b5f
commit
dbd4128628
|
@ -66,7 +66,7 @@ nouveau_pwr(void *obj)
|
|||
int nouveau_pwr_create_(struct nouveau_object *, struct nouveau_object *,
|
||||
struct nouveau_oclass *, int, void **);
|
||||
#ifdef __NetBSD__
|
||||
int _nouveau_pwr_dtor(struct nouveau_object *);
|
||||
void _nouveau_pwr_dtor(struct nouveau_object *);
|
||||
#else
|
||||
#define _nouveau_pwr_dtor _nouveau_subdev_dtor
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: nouveau_subdev_pwr_base.c,v 1.3 2015/02/25 17:29:43 riastradh Exp $ */
|
||||
/* $NetBSD: nouveau_subdev_pwr_base.c,v 1.4 2015/02/25 22:12:00 riastradh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2013 Red Hat Inc.
|
||||
|
@ -25,7 +25,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_pwr_base.c,v 1.3 2015/02/25 17:29:43 riastradh Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_pwr_base.c,v 1.4 2015/02/25 22:12:00 riastradh Exp $");
|
||||
|
||||
#include <subdev/pwr.h>
|
||||
#include <subdev/timer.h>
|
||||
|
@ -271,7 +271,7 @@ nouveau_pwr_create_(struct nouveau_object *parent,
|
|||
}
|
||||
|
||||
#ifdef __NetBSD__
|
||||
int
|
||||
void
|
||||
_nouveau_pwr_dtor(struct nouveau_object *object)
|
||||
{
|
||||
struct nouveau_pwr *ppwr = (void *)object;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: nouveau_subdev_therm_ic.c,v 1.1.1.1 2014/08/06 12:36:32 riastradh Exp $ */
|
||||
/* $NetBSD: nouveau_subdev_therm_ic.c,v 1.2 2015/02/25 22:12:00 riastradh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2012 Nouveau community
|
||||
|
@ -25,7 +25,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_therm_ic.c,v 1.1.1.1 2014/08/06 12:36:32 riastradh Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_therm_ic.c,v 1.2 2015/02/25 22:12:00 riastradh Exp $");
|
||||
|
||||
#include "priv.h"
|
||||
|
||||
|
@ -36,6 +36,9 @@ static bool
|
|||
probe_monitoring_device(struct nouveau_i2c_port *i2c,
|
||||
struct i2c_board_info *info, void *data)
|
||||
{
|
||||
#ifdef __NetBSD__
|
||||
return false;
|
||||
#else
|
||||
struct nouveau_therm_priv *priv = data;
|
||||
struct nvbios_therm_sensor *sensor = &priv->bios_sensor;
|
||||
struct i2c_client *client;
|
||||
|
@ -59,6 +62,7 @@ probe_monitoring_device(struct nouveau_i2c_port *i2c,
|
|||
priv->ic = client;
|
||||
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
static struct nouveau_i2c_board_info
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: nouveau_subdev_timer_nv04.c,v 1.1.1.1 2014/08/06 12:36:32 riastradh Exp $ */
|
||||
/* $NetBSD: nouveau_subdev_timer_nv04.c,v 1.2 2015/02/25 22:12:00 riastradh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2012 Red Hat Inc.
|
||||
|
@ -25,7 +25,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_timer_nv04.c,v 1.1.1.1 2014/08/06 12:36:32 riastradh Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_timer_nv04.c,v 1.2 2015/02/25 22:12:00 riastradh Exp $");
|
||||
|
||||
#include "nv04.h"
|
||||
|
||||
|
@ -49,7 +49,7 @@ nv04_timer_alarm_trigger(struct nouveau_timer *ptimer)
|
|||
struct nv04_timer_priv *priv = (void *)ptimer;
|
||||
struct nouveau_alarm *alarm, *atemp;
|
||||
unsigned long flags;
|
||||
LIST_HEAD(exec);
|
||||
struct list_head exec = LIST_HEAD_INIT(exec);
|
||||
|
||||
/* move any due alarms off the pending list */
|
||||
spin_lock_irqsave(&priv->lock, flags);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: nouveau_subdev_vm_base.c,v 1.1.1.1 2014/08/06 12:36:32 riastradh Exp $ */
|
||||
/* $NetBSD: nouveau_subdev_vm_base.c,v 1.2 2015/02/25 22:12:00 riastradh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2010 Red Hat Inc.
|
||||
|
@ -25,7 +25,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_vm_base.c,v 1.1.1.1 2014/08/06 12:36:32 riastradh Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_vm_base.c,v 1.2 2015/02/25 22:12:00 riastradh Exp $");
|
||||
|
||||
#include <core/gpuobj.h>
|
||||
#include <core/mm.h>
|
||||
|
@ -77,6 +77,47 @@ nouveau_vm_map_at(struct nouveau_vma *vma, u64 delta, struct nouveau_mem *node)
|
|||
vmm->flush(vm);
|
||||
}
|
||||
|
||||
#ifdef __NetBSD__
|
||||
|
||||
static void
|
||||
nouveau_vm_map_dma(struct nouveau_vma *vma, u64 delta, u64 length,
|
||||
struct nouveau_mem *mem)
|
||||
{
|
||||
struct nouveau_vm *vm = vma->vm;
|
||||
struct nouveau_vmmgr *vmm = vm->vmm;
|
||||
int big = vma->node->type != vmm->spg_shift;
|
||||
u32 offset = vma->node->offset + (delta >> 12);
|
||||
u32 bits = vma->node->type - 12;
|
||||
u32 num = length >> vma->node->type;
|
||||
u32 pde = (offset >> vmm->pgt_bits) - vm->fpde;
|
||||
u32 pte = (offset & ((1 << vmm->pgt_bits) - 1)) >> bits;
|
||||
u32 max = 1 << (vmm->pgt_bits - bits);
|
||||
unsigned seg;
|
||||
|
||||
for (seg = 0; seg < mem->pages->dm_nsegs; seg++) {
|
||||
struct nouveau_gpuobj *pgt = vm->pgt[pde].obj[big];
|
||||
dma_addr_t addr = mem->pages->dm_segs[seg].ds_addr;
|
||||
|
||||
KASSERT(mem->pages->dm_segs[seg].ds_len == PAGE_SIZE);
|
||||
vmm->map_sg(vma, pgt, mem, pte, 1, &addr);
|
||||
num--;
|
||||
pte++;
|
||||
|
||||
if (num == 0)
|
||||
goto finish;
|
||||
|
||||
if (__predict_false(pte >= max)) {
|
||||
pde++;
|
||||
pte = 0;
|
||||
}
|
||||
}
|
||||
|
||||
finish:
|
||||
vmm->flush(vm);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static void
|
||||
nouveau_vm_map_sg_table(struct nouveau_vma *vma, u64 delta, u64 length,
|
||||
struct nouveau_mem *mem)
|
||||
|
@ -173,9 +214,17 @@ nouveau_vm_map_sg(struct nouveau_vma *vma, u64 delta, u64 length,
|
|||
vmm->flush(vm);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void
|
||||
nouveau_vm_map(struct nouveau_vma *vma, struct nouveau_mem *node)
|
||||
{
|
||||
#ifdef __NetBSD__
|
||||
if (node->pages)
|
||||
nouveau_vm_map_dma(vma, 0, node->size << 12, node);
|
||||
else
|
||||
nouveau_vm_map_at(vma, 0, node);
|
||||
#else
|
||||
if (node->sg)
|
||||
nouveau_vm_map_sg_table(vma, 0, node->size << 12, node);
|
||||
else
|
||||
|
@ -183,6 +232,7 @@ nouveau_vm_map(struct nouveau_vma *vma, struct nouveau_mem *node)
|
|||
nouveau_vm_map_sg(vma, 0, node->size << 12, node);
|
||||
else
|
||||
nouveau_vm_map_at(vma, 0, node);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: nouveau_subdev_vm_nv04.c,v 1.1.1.1 2014/08/06 12:36:32 riastradh Exp $ */
|
||||
/* $NetBSD: nouveau_subdev_vm_nv04.c,v 1.2 2015/02/25 22:12:00 riastradh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2012 Red Hat Inc.
|
||||
|
@ -25,7 +25,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_vm_nv04.c,v 1.1.1.1 2014/08/06 12:36:32 riastradh Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_vm_nv04.c,v 1.2 2015/02/25 22:12:00 riastradh Exp $");
|
||||
|
||||
#include <core/gpuobj.h>
|
||||
|
||||
|
@ -137,10 +137,23 @@ nv04_vmmgr_dtor(struct nouveau_object *object)
|
|||
nouveau_gpuobj_ref(NULL, &priv->vm->pgt[0].obj[0]);
|
||||
nouveau_vm_ref(NULL, &priv->vm, NULL);
|
||||
}
|
||||
#ifdef __NetBSD__
|
||||
if (priv->nullp) {
|
||||
/* XXX pa_dmat or pa_dmat64? */
|
||||
struct nouveau_device *device = nv_device(priv);
|
||||
const bus_dma_tag_t dmat = device->pdev->pd_pa.pa_dmat64;
|
||||
|
||||
bus_dmamap_unload(dmat, priv->nullmap);
|
||||
bus_dmamem_unmap(dmat, priv->nullp, PAGE_SIZE);
|
||||
bus_dmamap_destroy(dmat, priv->nullmap);
|
||||
bus_dmamem_free(dmat, &priv->nullseg, 1);
|
||||
}
|
||||
#else
|
||||
if (priv->nullp) {
|
||||
pci_free_consistent(nv_device(priv)->pdev, 16 * 1024,
|
||||
priv->nullp, priv->null);
|
||||
}
|
||||
#endif
|
||||
nouveau_vmmgr_destroy(&priv->base);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: nouveau_subdev_vm_nv44.c,v 1.1.1.1 2014/08/06 12:36:32 riastradh Exp $ */
|
||||
/* $NetBSD: nouveau_subdev_vm_nv44.c,v 1.2 2015/02/25 22:12:00 riastradh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 2012 Red Hat Inc.
|
||||
|
@ -25,7 +25,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_vm_nv44.c,v 1.1.1.1 2014/08/06 12:36:32 riastradh Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_subdev_vm_nv44.c,v 1.2 2015/02/25 22:12:00 riastradh Exp $");
|
||||
|
||||
#include <core/gpuobj.h>
|
||||
#include <core/option.h>
|
||||
|
@ -190,11 +190,54 @@ nv44_vmmgr_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
|
|||
priv->base.unmap = nv44_vm_unmap;
|
||||
priv->base.flush = nv44_vm_flush;
|
||||
|
||||
#ifdef __NetBSD__
|
||||
{
|
||||
/* XXX pa_dmat or pa_dmat64? */
|
||||
const bus_dma_tag_t dmat = device->pdev->pd_pa.pa_dmat64;
|
||||
int nsegs;
|
||||
|
||||
/* XXX errno NetBSD->Linux */
|
||||
ret = -bus_dmamem_alloc(dmat, PAGE_SIZE, PAGE_SIZE, 0,
|
||||
&priv->nullseg, 1, &nsegs, BUS_DMA_WAITOK);
|
||||
if (ret) {
|
||||
/* XXX Need to destroy stuff... */
|
||||
fail0: nv_error(priv, "unable to allocate dummy pages\n");
|
||||
return ret;
|
||||
}
|
||||
KASSERT(nsegs == 1);
|
||||
|
||||
/* XXX errno NetBSD->Linux */
|
||||
ret = -bus_dmamap_create(dmat, PAGE_SIZE, 1, PAGE_SIZE, 0,
|
||||
BUS_DMA_WAITOK, &priv->nullmap);
|
||||
if (ret) {
|
||||
fail1: bus_dmamem_free(dmat, &priv->nullseg, 1);
|
||||
goto fail0;
|
||||
}
|
||||
|
||||
/* XXX errno NetBSD->Linux */
|
||||
ret = -bus_dmamem_map(dmat, &priv->nullseg, 1, PAGE_SIZE,
|
||||
&priv->nullp, BUS_DMA_WAITOK);
|
||||
if (ret) {
|
||||
fail2: bus_dmamap_destroy(dmat, priv->nullmap);
|
||||
goto fail1;
|
||||
}
|
||||
|
||||
/* XXX errno NetBSD->Linux */
|
||||
ret = -bus_dmamap_load(dmat, priv->nullmap, priv->nullp, PAGE_SIZE,
|
||||
NULL, BUS_DMA_WAITOK);
|
||||
if (ret) {
|
||||
fail3: __unused bus_dmamem_unmap(dmat, priv->nullp, PAGE_SIZE);
|
||||
goto fail2;
|
||||
}
|
||||
priv->null = priv->nullmap->dm_segs[0].ds_addr;
|
||||
}
|
||||
#else
|
||||
priv->nullp = pci_alloc_consistent(device->pdev, 16 * 1024, &priv->null);
|
||||
if (!priv->nullp) {
|
||||
nv_error(priv, "unable to allocate dummy pages\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
#endif
|
||||
|
||||
ret = nouveau_vm_create(&priv->base, 0, NV44_GART_SIZE, 0, 4096,
|
||||
&priv->vm);
|
||||
|
|
|
@ -6,6 +6,10 @@
|
|||
struct nv04_vmmgr_priv {
|
||||
struct nouveau_vmmgr base;
|
||||
struct nouveau_vm *vm;
|
||||
#ifdef __NetBSD__
|
||||
bus_dma_segment_t nullseg;
|
||||
bus_dmamap_t nullmap;
|
||||
#endif
|
||||
dma_addr_t null;
|
||||
void *nullp;
|
||||
};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: nouveau_ttm.c,v 1.2 2014/08/06 13:35:13 riastradh Exp $ */
|
||||
/* $NetBSD: nouveau_ttm.c,v 1.3 2015/02/25 22:12:00 riastradh Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA,
|
||||
|
@ -27,7 +27,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_ttm.c,v 1.2 2014/08/06 13:35:13 riastradh Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: nouveau_ttm.c,v 1.3 2015/02/25 22:12:00 riastradh Exp $");
|
||||
|
||||
#include <subdev/fb.h>
|
||||
#include <subdev/vm.h>
|
||||
|
@ -118,7 +118,7 @@ nouveau_vram_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
|
|||
|
||||
mutex_lock(&nv_subdev(pfb)->mutex);
|
||||
list_for_each_entry(r, &mm->nodes, nl_entry) {
|
||||
printk(KERN_DEBUG "%s %d: 0x%010llx 0x%010llx\n",
|
||||
printk(KERN_DEBUG "%s %d: 0x%010"PRIx64" 0x%010"PRIx64"\n",
|
||||
prefix, r->type, ((u64)r->offset << 12),
|
||||
(((u64)r->offset + r->length) << 12));
|
||||
|
||||
|
@ -128,7 +128,7 @@ nouveau_vram_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
|
|||
}
|
||||
mutex_unlock(&nv_subdev(pfb)->mutex);
|
||||
|
||||
printk(KERN_DEBUG "%s total: 0x%010llx free: 0x%010llx\n",
|
||||
printk(KERN_DEBUG "%s total: 0x%010"PRIx64" free: 0x%010"PRIx64"\n",
|
||||
prefix, (u64)total << 12, (u64)free << 12);
|
||||
printk(KERN_DEBUG "%s block: 0x%08x\n",
|
||||
prefix, mm->block_size << 12);
|
||||
|
@ -283,6 +283,27 @@ const struct ttm_mem_type_manager_func nv04_gart_manager = {
|
|||
nv04_gart_manager_debug
|
||||
};
|
||||
|
||||
#ifdef __NetBSD__
|
||||
|
||||
int
|
||||
nouveau_ttm_mmap_object(struct drm_device *dev, off_t offset, size_t size,
|
||||
vm_prot_t prot, struct uvm_object **uobjp, voff_t *uoffsetp,
|
||||
struct file *file)
|
||||
{
|
||||
struct nouveau_drm *const drm = nouveau_drm(dev);
|
||||
|
||||
KASSERT(0 == (offset & (PAGE_SIZE - 1)));
|
||||
|
||||
if (__predict_false((offset >> PAGE_SHIFT) < DRM_FILE_PAGE_OFFSET))
|
||||
return drm_mmap_object(dev, offset, size, prot, uobjp,
|
||||
uoffsetp, file);
|
||||
else
|
||||
return ttm_bo_mmap_object(&drm->ttm.bdev, offset, size, prot,
|
||||
uobjp, uoffsetp, file);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
int
|
||||
nouveau_ttm_mmap(struct file *filp, struct vm_area_struct *vma)
|
||||
{
|
||||
|
@ -295,6 +316,8 @@ nouveau_ttm_mmap(struct file *filp, struct vm_area_struct *vma)
|
|||
return ttm_bo_mmap(filp, vma, &drm->ttm.bdev);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static int
|
||||
nouveau_ttm_mem_global_init(struct drm_global_reference *ref)
|
||||
{
|
||||
|
|
|
@ -17,7 +17,12 @@ struct ttm_tt *nouveau_sgdma_create_ttm(struct ttm_bo_device *,
|
|||
|
||||
int nouveau_ttm_init(struct nouveau_drm *drm);
|
||||
void nouveau_ttm_fini(struct nouveau_drm *drm);
|
||||
#ifdef __NetBSD__
|
||||
int nouveau_ttm_mmap_object(struct drm_device *, off_t, size_t, vm_prot_t,
|
||||
struct uvm_object **, voff_t *, struct file *);
|
||||
#else
|
||||
int nouveau_ttm_mmap(struct file *, struct vm_area_struct *);
|
||||
#endif
|
||||
|
||||
int nouveau_ttm_global_init(struct nouveau_drm *);
|
||||
void nouveau_ttm_global_release(struct nouveau_drm *);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: files.nouveau,v 1.6 2015/02/25 17:29:42 riastradh Exp $
|
||||
# $NetBSD: files.nouveau,v 1.7 2015/02/25 22:11:59 riastradh Exp $
|
||||
|
||||
device nouveau: drmkms, drmkms_pci, drmkms_ttm, genfb, wsemuldisplaydev
|
||||
attach nouveau at pci
|
||||
|
@ -229,7 +229,16 @@ makeoptions nouveau "CWARNFLAGS.nouveau_subdev_therm_ic.c"+="-Wno-missing-field-
|
|||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_therm_nv40.c"+="-Wno-missing-field-initializers"
|
||||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_therm_nv50.c"+="-Wno-missing-field-initializers"
|
||||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_therm_nv84.c"+="-Wno-missing-field-initializers"
|
||||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_therm_nva3.c"+="-Wno-missing-field-initializers"
|
||||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_therm_nvd0.c"+="-Wno-missing-field-initializers"
|
||||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_timer_gk20a.c"+="-Wno-missing-field-initializers"
|
||||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_timer_nv04.c"+="-Wno-missing-field-initializers"
|
||||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_vm_nv04.c"+="-Wno-missing-field-initializers"
|
||||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_vm_nv41.c"+="-Wno-missing-field-initializers"
|
||||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_vm_nv44.c"+="-Wno-missing-field-initializers"
|
||||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_vm_nv50.c"+="-Wno-missing-field-initializers"
|
||||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_vm_nvc0.c"+="-Wno-missing-field-initializers"
|
||||
makeoptions nouveau "CWARNFLAGS.nouveau_subdev_volt_nv40.c"+="-Wno-missing-field-initializers"
|
||||
|
||||
file external/bsd/drm2/nouveau/nouveau_module.c nouveau
|
||||
|
||||
|
@ -564,6 +573,6 @@ file external/bsd/drm2/dist/drm/nouveau/nouveau_nv84_fence.c nouveau
|
|||
file external/bsd/drm2/dist/drm/nouveau/nouveau_nvc0_fence.c nouveau
|
||||
#file external/bsd/drm2/dist/drm/nouveau/nouveau_prime.c nouveau # XXX drm prime
|
||||
file external/bsd/drm2/dist/drm/nouveau/nouveau_sgdma.c nouveau
|
||||
file external/bsd/drm2/dist/drm/nouveau/nouveau_sysfs.c nouveau
|
||||
#file external/bsd/drm2/dist/drm/nouveau/nouveau_sysfs.c nouveau
|
||||
file external/bsd/drm2/dist/drm/nouveau/nouveau_ttm.c nouveau
|
||||
file external/bsd/drm2/dist/drm/nouveau/nouveau_vga.c nouveau
|
||||
#file external/bsd/drm2/dist/drm/nouveau/nouveau_vga.c nouveau
|
||||
|
|
Loading…
Reference in New Issue