CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp
Module Name:src Committed By: hannken Date: Thu Jun 27 12:21:20 UTC 2024 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp: nouveau_nvkm_engine_disp_sorgm200.c Log Message: With GCC12 kernel ALL/amd64 triggers "'sor' may be used uninitialized". If "sublinks & 3" is zero GCC is right and sor[1] may be returned unitialized. Fix by initializing "sor" to zero to return -1 instead of uninitialized value. Ok: Taylor R Campbell To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_sorgm200.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_sorgm200.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_sorgm200.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_sorgm200.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_sorgm200.c:1.2 Sat Dec 18 23:45:35 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_sorgm200.c Thu Jun 27 12:21:20 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_engine_disp_sorgm200.c,v 1.2 2021/12/18 23:45:35 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_engine_disp_sorgm200.c,v 1.3 2024/06/27 12:21:20 hannken Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_disp_sorgm200.c,v 1.2 2021/12/18 23:45:35 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_disp_sorgm200.c,v 1.3 2024/06/27 12:21:20 hannken Exp $"); #include "ior.h" @@ -74,6 +74,7 @@ gm200_sor_route_get(struct nvkm_outp *ou const int sublinks = outp->info.sorconf.link; int lnk[2], sor[2], m, s; + sor[0] = sor[1] = 0; /* GCC 12.3 maybe-uninitialized */ for (*link = 0, m = __ffs(outp->info.or) * 2, s = 0; s < 2; m++, s++) { if (sublinks & BIT(s)) { u32 data = nvkm_rd32(device, 0x612308 + (m * 0x80));
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp
Module Name:src Committed By: hannken Date: Thu Jun 27 12:21:20 UTC 2024 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp: nouveau_nvkm_engine_disp_sorgm200.c Log Message: With GCC12 kernel ALL/amd64 triggers "'sor' may be used uninitialized". If "sublinks & 3" is zero GCC is right and sor[1] may be returned unitialized. Fix by initializing "sor" to zero to return -1 instead of uninitialized value. Ok: Taylor R Campbell To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/disp/nouveau_nvkm_engine_disp_sorgm200.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Tue Jun 4 21:43:39 UTC 2024 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_gk20a.c Log Message: nouveau_nvkm_subdev_instmem_gk20a.c: Use BUS_DMA_PREFETCHABLE. Matches Linux's pgprot_writecombine. Unclear where the appropriate bus_dmamap_sync happens, or is supposed to happen -- not using it would be wrong, but asking for a prefetchable mapping may paper over symptoms, at least! To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c:1.9 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c:1.10 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c:1.9 Sun Dec 19 12:29:47 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c Tue Jun 4 21:43:39 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_instmem_gk20a.c,v 1.9 2021/12/19 12:29:47 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_instmem_gk20a.c,v 1.10 2024/06/04 21:43:39 riastradh Exp $ */ /* * Copyright (c) 2015, NVIDIA CORPORATION. All rights reserved. @@ -44,7 +44,7 @@ * goes beyond a certain threshold. At the moment this limit is 1MB. */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_gk20a.c,v 1.9 2021/12/19 12:29:47 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_gk20a.c,v 1.10 2024/06/04 21:43:39 riastradh Exp $"); #include "priv.h" @@ -241,7 +241,7 @@ gk20a_instobj_acquire_iommu(struct nvkm_ #ifdef __NetBSD__ void *kva; if (bus_dmamem_map(imem->dmat, node->segs, node->nsegs, size, - , BUS_DMA_WAITOK)) + , BUS_DMA_WAITOK|BUS_DMA_PREFETCHABLE)) node->base.vaddr = NULL; else node->base.vaddr = kva;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Tue Jun 4 21:43:39 UTC 2024 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_gk20a.c Log Message: nouveau_nvkm_subdev_instmem_gk20a.c: Use BUS_DMA_PREFETCHABLE. Matches Linux's pgprot_writecombine. Unclear where the appropriate bus_dmamap_sync happens, or is supposed to happen -- not using it would be wrong, but asking for a prefetchable mapping may paper over symptoms, at least! To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: mrg Date: Sat Sep 30 10:38:31 UTC 2023 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_pcie.c Log Message: avoid an unlikely array bounds issue picked up by GCC 12. nvkm_pcie_speed() can return -1, which is then used as an array index, so make this default return PCIe 1.0 speeds. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c:1.3 Sun Dec 19 10:51:58 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c Sat Sep 30 10:38:31 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_pci_pcie.c,v 1.3 2021/12/19 10:51:58 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_pci_pcie.c,v 1.4 2023/09/30 10:38:31 mrg Exp $ */ /* * Copyright 2015 Karol Herbst @@ -24,7 +24,7 @@ * Authors: Karol Herbst */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_pcie.c,v 1.3 2021/12/19 10:51:58 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_pcie.c,v 1.4 2023/09/30 10:38:31 mrg Exp $"); #include "priv.h" @@ -48,7 +48,7 @@ nvkm_pcie_speed(enum pci_bus_speed speed /* XXX 0x16 is 8_0, assume 0x17 will be 16_0 for now */ if (speed == 0x17) return NVKM_PCIE_SPEED_8_0; - return -1; + return NVKM_PCIE_SPEED_2_5; } }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: mrg Date: Sat Sep 30 10:38:31 UTC 2023 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_pcie.c Log Message: avoid an unlikely array bounds issue picked up by GCC 12. nvkm_pcie_speed() can return -1, which is then used as an array index, so make this default return PCIe 1.0 speeds. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_pcie.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: mrg Date: Tue May 31 20:53:35 UTC 2022 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_mem.c Log Message: reorganise most of the NetBSD portion of nvkm_mem_dtor(). when nvkm_mem_new_host() is called via the in-kernel ioctl method, we copy the supplied dmamap, use it's dm_nsegs value for allocation of "mem->dma", and assume it remains valid until we're done. when this path is taken "mem->mem" remains NULL so all the code in nvkm_mem_dtor() is ignored, and the "mem->dma" is leaked. this is one leak seen in PR#56826. as "dmamap->dm_nsegs" can become invalid before the dtor call, store the value in "mem->nseg" for use in the dtor, and convert the dtor to free "mem->dma" if "mem->dma" is set. additionally, "mem->pages" should end up being the same value as "nseg" here, ASSERT() this. while here properly mark NetBSD specific code in nvkm_mem_new_host(). additionally, destroy the dmamap created in the non-ioctl path of nvkm_mem_new_host(). this is another leak seen in PR#56826. with both of these fixes my "kmem-04096" pool does not grow rapidly while using "mpv -vo gpu". infact, once i loaded the relevant file into memory, this pool remains stable after at least one minute of video playback. ok riastradh@ To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.7 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.8 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.7 Sun Dec 19 11:06:44 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Tue May 31 20:53:35 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.7 2021/12/19 11:06:44 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.8 2022/05/31 20:53:35 mrg Exp $ */ /* * Copyright 2017 Red Hat Inc. @@ -22,7 +22,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.7 2021/12/19 11:06:44 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.8 2022/05/31 20:53:35 mrg Exp $"); #define nvkm_mem(p) container_of((p), struct nvkm_mem, memory) #include "mem.h" @@ -97,16 +97,21 @@ static void * nvkm_mem_dtor(struct nvkm_memory *memory) { struct nvkm_mem *mem = nvkm_mem(memory); - if (mem->mem) { #ifdef __NetBSD__ + if (mem->dma) { + kmem_free(mem->dma, mem->nseg * sizeof(mem->dma[0])); + } + if (mem->mem) { struct nvkm_device *device = mem->mmu->subdev.device; bus_dma_tag_t dmat = device->func->dma_tag(device); - kmem_free(mem->dma, - mem->dmamap->dm_nsegs * sizeof(mem->dma[0])); + bus_dmamap_unload(dmat, mem->dmamap); bus_dmamem_free(dmat, mem->mem, mem->nseg); + bus_dmamap_destroy(dmat, mem->dmamap); kmem_free(mem->mem, mem->pages * sizeof(mem->mem[0])); + } #else + if (mem->mem) { while (mem->pages--) { dma_unmap_page(mem->mmu->subdev.device->dev, mem->dma[mem->pages], PAGE_SIZE, @@ -115,8 +120,8 @@ nvkm_mem_dtor(struct nvkm_memory *memory } kvfree(mem->dma); kvfree(mem->mem); -#endif } +#endif return mem; } @@ -218,7 +223,11 @@ nvkm_mem_new_host(struct nvkm_mmu *mmu, if (!(ret = nvif_unpack(ret, , , args->v0, 0, 0, false))) { if (args->v0.dma) { nvkm_memory_ctor(_mem_dma, >memory); +#ifndef __NetBSD__ + mem->dma = args->v0.dma; +#else mem->dmamap = args->v0.dma; + mem->nseg = mem->dmamap->dm_nsegs; mem->dma = kmem_zalloc(mem->dmamap->dm_nsegs * sizeof(mem->dma[0]), KM_SLEEP); for (unsigned i = 0; i < mem->dmamap->dm_nsegs; i++) { @@ -226,6 +235,7 @@ nvkm_mem_new_host(struct nvkm_mmu *mmu, PAGE_SIZE); mem->dma[i] = mem->dmamap->dm_segs[i].ds_addr; } +#endif } else { #ifdef __NetBSD__ return -ENODEV; @@ -238,6 +248,9 @@ nvkm_mem_new_host(struct nvkm_mmu *mmu, if (!IS_ALIGNED(size, PAGE_SIZE)) return -EINVAL; mem->pages = size >> PAGE_SHIFT; +#ifdef __NetBSD__ + KASSERT(mem->pages == mem->nseg); +#endif return 0; } else if ( (ret = nvif_unvers(ret, , , args->vn))) { @@ -283,6 +296,7 @@ fail2: __unused mem->dma[i] = mem->dmamap->dm_segs[i].ds_addr; } mem->pages = size; + KASSERT(mem->pages == mem->nseg); #else if (!(mem->mem = kvmalloc_array(size, sizeof(*mem->mem), GFP_KERNEL))) return -ENOMEM;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: mrg Date: Tue May 31 20:53:35 UTC 2022 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_mem.c Log Message: reorganise most of the NetBSD portion of nvkm_mem_dtor(). when nvkm_mem_new_host() is called via the in-kernel ioctl method, we copy the supplied dmamap, use it's dm_nsegs value for allocation of "mem->dma", and assume it remains valid until we're done. when this path is taken "mem->mem" remains NULL so all the code in nvkm_mem_dtor() is ignored, and the "mem->dma" is leaked. this is one leak seen in PR#56826. as "dmamap->dm_nsegs" can become invalid before the dtor call, store the value in "mem->nseg" for use in the dtor, and convert the dtor to free "mem->dma" if "mem->dma" is set. additionally, "mem->pages" should end up being the same value as "nseg" here, ASSERT() this. while here properly mark NetBSD specific code in nvkm_mem_new_host(). additionally, destroy the dmamap created in the non-ioctl path of nvkm_mem_new_host(). this is another leak seen in PR#56826. with both of these fixes my "kmem-04096" pool does not grow rapidly while using "mpv -vo gpu". infact, once i loaded the relevant file into memory, this pool remains stable after at least one minute of video playback. ok riastradh@ To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: riastradh Date: Tue May 31 00:17:10 UTC 2022 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_gem.c Log Message: nouveau(4): Fix error branches in nouveau_gem_new. PR kern/56804 To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c:1.13 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c:1.14 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c:1.13 Sun Dec 19 10:50:13 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c Tue May 31 00:17:10 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_gem.c,v 1.13 2021/12/19 10:50:13 riastradh Exp $ */ +/* $NetBSD: nouveau_gem.c,v 1.14 2022/05/31 00:17:10 riastradh Exp $ */ /* * Copyright (C) 2008 Ben Skeggs. @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_gem.c,v 1.13 2021/12/19 10:50:13 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_gem.c,v 1.14 2022/05/31 00:17:10 riastradh Exp $"); #include @@ -202,13 +202,13 @@ nouveau_gem_new(struct nouveau_cli *cli, * to the caller, instead of a normal nouveau_bo ttm reference. */ ret = drm_gem_object_init(drm->dev, >bo.base, size); if (ret) { - nouveau_bo_ref(NULL, ); + kfree(nvbo); return ret; } ret = nouveau_bo_init(nvbo, size, align, flags, NULL, NULL); if (ret) { - nouveau_bo_ref(NULL, ); + /* XXX note: if this fails it kfrees nvbo */ return ret; }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: riastradh Date: Tue May 31 00:17:10 UTC 2022 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_gem.c Log Message: nouveau(4): Fix error branches in nouveau_gem_new. PR kern/56804 To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Sat Apr 9 19:59:08 UTC 2022 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_base.c Log Message: nouveau: Omit needless local patch. This code probably once called ioread32/iowrite32 or something, but no longer. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Sat Apr 9 19:59:08 UTC 2022 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_base.c Log Message: nouveau: Omit needless local patch. This code probably once called ioread32/iowrite32 or something, but no longer. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_base.c:1.8 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_base.c:1.9 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_base.c:1.8 Sun Dec 19 11:34:45 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_base.c Sat Apr 9 19:59:08 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_instmem_base.c,v 1.8 2021/12/19 11:34:45 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_instmem_base.c,v 1.9 2022/04/09 19:59:08 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_base.c,v 1.8 2021/12/19 11:34:45 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_base.c,v 1.9 2022/04/09 19:59:08 riastradh Exp $"); #include "priv.h" @@ -34,37 +34,6 @@ __KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm # define __iomem __nvkm_memory_iomem #endif -#ifdef __NetBSD__ - -/* - * XXX I think this should be done with bus_space, but the depth of - * abstractions is dizzying and I'm not actually sure where these - * pointers come from. - */ - -# define ioread32_native fake_ioread32_native -# define iowrite32_native fake_iowrite32_native - -static inline uint32_t -ioread32_native(const void __iomem *ptr) -{ - uint32_t v; - - v = *(const uint32_t __iomem *)ptr; - membar_consumer(); - - return v; -} - -static inline void -iowrite32_native(uint32_t v, void __iomem *ptr) -{ - - membar_producer(); - *(uint32_t __iomem *)ptr = v; -} - -#endif /** * instmem object base implementation */ @@ -88,12 +57,6 @@ nvkm_instobj_load(struct nvkm_instobj *i iobj->suspend = NULL; } -#ifdef __NetBSD__ -# undef ioread32_native -# undef iowrite32_native -#endif - - static int nvkm_instobj_save(struct nvkm_instobj *iobj) {
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: riastradh Date: Sun Dec 19 12:43:45 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_base.c Log Message: nouveau: Disable MSI on G84 devices. Fails to switch modes with MSI, works without MSI, on T61p. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.10 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.11 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.10 Sun Dec 19 12:31:26 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Sun Dec 19 12:43:45 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.10 2021/12/19 12:31:26 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.11 2021/12/19 12:43:45 riastradh Exp $ */ /* * Copyright 2015 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.10 2021/12/19 12:31:26 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.11 2021/12/19 12:43:45 riastradh Exp $"); #include "priv.h" #include "agp.h" @@ -276,6 +276,7 @@ nvkm_pci_new_(const struct nvkm_pci_func break; default: switch (device->chipset) { + case 0x84: /* G84, no mode switch with MSI */ case 0xaa: /* reported broken, nv also disable it */ break;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: riastradh Date: Sun Dec 19 12:43:45 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_base.c Log Message: nouveau: Disable MSI on G84 devices. Fails to switch modes with MSI, works without MSI, on T61p. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core
Module Name:src Committed By: riastradh Date: Sun Dec 19 12:40:21 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core: nouveau_nvkm_core_ioctl.c Log Message: nouveau: fix a "can return -1 to userland" problem. nvkm_ioctl_del() for some reason converts 0 into 1 return. this appears to be a way to avoid having a log printed by nvkm_ioctl() and to trigger some dead code ("hack" is always NULL afaict.) after consuming this value convert it back to 0 for ioctl return. Author: phone Committer: Taylor R Campbell To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_ioctl.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_ioctl.c:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_ioctl.c:1.7 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_ioctl.c:1.6 Sun Dec 19 10:51:57 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_ioctl.c Sun Dec 19 12:40:21 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_core_ioctl.c,v 1.6 2021/12/19 10:51:57 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_core_ioctl.c,v 1.7 2021/12/19 12:40:21 riastradh Exp $ */ /* * Copyright 2014 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_ioctl.c,v 1.6 2021/12/19 10:51:57 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_ioctl.c,v 1.7 2021/12/19 12:40:21 riastradh Exp $"); #include #include @@ -487,6 +487,10 @@ nvkm_ioctl(struct nvkm_client *client, b client->data = NULL; } } +#ifdef __NetBSD__ + else + ret = 0; +#endif return ret; }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core
Module Name:src Committed By: riastradh Date: Sun Dec 19 12:40:21 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core: nouveau_nvkm_core_ioctl.c Log Message: nouveau: fix a "can return -1 to userland" problem. nvkm_ioctl_del() for some reason converts 0 into 1 return. this appears to be a way to avoid having a log printed by nvkm_ioctl() and to trigger some dead code ("hack" is always NULL afaict.) after consuming this value convert it back to 0 for ioctl return. Author: phone Committer: Taylor R Campbell To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_ioctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: riastradh Date: Sun Dec 19 12:31:26 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_base.c Log Message: nouveau: Remove post-merge audit comments -- LGTM. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.9 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.10 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.9 Sun Dec 19 10:51:58 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Sun Dec 19 12:31:26 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.9 2021/12/19 10:51:58 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.10 2021/12/19 12:31:26 riastradh Exp $ */ /* * Copyright 2015 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.9 2021/12/19 10:51:58 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.10 2021/12/19 12:31:26 riastradh Exp $"); #include "priv.h" #include "agp.h" @@ -123,14 +123,13 @@ nvkm_pci_oneinit(struct nvkm_subdev *sub return ret; } -#ifdef __NetBSD__ /* XXX post-merge audit */ +#ifdef __NetBSD__ { const char *const name = device_xname(pci_dev_dev(pdev)); const struct pci_attach_args *pa = >pd_pa; const char *intrstr; char intrbuf[PCI_INTRSTR_LEN]; - /* XXX convert to use drm_pci_request_irq() */ if (pdev->msi_enabled) { if (pdev->pd_intr_handles == NULL) { if ((ret = pci_msi_alloc_exact(pa, >pci_ihp,
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: riastradh Date: Sun Dec 19 12:31:26 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_base.c Log Message: nouveau: Remove post-merge audit comments -- LGTM. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Sun Dec 19 12:31:19 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_nv40.c Log Message: nouveau: Map write-combining in instmem/nv40 like Linux does. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.10 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.11 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.10 Sun Dec 19 10:51:58 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c Sun Dec 19 12:31:19 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.10 2021/12/19 10:51:58 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.11 2021/12/19 12:31:19 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.10 2021/12/19 10:51:58 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.11 2021/12/19 12:31:19 riastradh Exp $"); #define nv40_instmem(p) container_of((p), struct nv40_instmem, base) #include "priv.h" @@ -301,9 +301,8 @@ nv40_instmem_new(struct nvkm_device *dev iomembase = device->func->resource_addr(device, bar); iomemsz = device->func->resource_size(device, bar); /* XXX errno NetBSD->Linux */ - /* XXX post-merge: switch to WC */ ret = -bus_space_map(imem->iomemt, iomembase, iomemsz, - BUS_SPACE_MAP_LINEAR, >iomemh); + BUS_SPACE_MAP_LINEAR|BUS_SPACE_MAP_PREFETCHABLE, >iomemh); if (ret) { nvkm_error(>base.subdev, "unable to map PRAMIN BAR %d" ": %d\n", bar, ret);
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Sun Dec 19 12:31:19 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_nv40.c Log Message: nouveau: Map write-combining in instmem/nv40 like Linux does. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvif
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:07:36 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvif: nouveau_nvif_object.c Log Message: nouveau: Fix control flow in nvif_object_map. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c:1.7 src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c:1.8 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c:1.7 Sun Dec 19 11:06:03 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c Sun Dec 19 11:07:35 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvif_object.c,v 1.7 2021/12/19 11:06:03 riastradh Exp $ */ +/* $NetBSD: nouveau_nvif_object.c,v 1.8 2021/12/19 11:07:35 riastradh Exp $ */ /* * Copyright 2014 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvif_object.c,v 1.7 2021/12/19 11:06:03 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvif_object.c,v 1.8 2021/12/19 11:07:35 riastradh Exp $"); #include #include @@ -269,11 +269,10 @@ nvif_object_map(struct nvif_object *obje object->map.addr = handle; ret = client->driver->map(client, tag, handle, length, >map.handle, >map.ptr); - if (ret) { -nvif_object_unmap(object); -return -ENOMEM; + if (ret == 0) { +object->map.size = length; +return 0; } - object->map.size = length; #else object->map.ptr = client->driver->map(client, handle,
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvif
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:07:36 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvif: nouveau_nvif_object.c Log Message: nouveau: Fix control flow in nvif_object_map. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:07:12 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core: nouveau_nvkm_core_object.c Log Message: nouveau: Maintain object->on_tree. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c:1.10 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c:1.11 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c:1.10 Sun Dec 19 11:06:19 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c Sun Dec 19 11:07:11 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_core_object.c,v 1.10 2021/12/19 11:06:19 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_core_object.c,v 1.11 2021/12/19 11:07:11 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_object.c,v 1.10 2021/12/19 11:06:19 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_object.c,v 1.11 2021/12/19 11:07:11 riastradh Exp $"); #include #include @@ -69,8 +69,10 @@ void nvkm_object_remove(struct nvkm_object *object) { #ifdef __NetBSD__ - if (object->on_tree) + if (object->on_tree) { rb_tree_remove_node(>client->objtree, object); + object->on_tree = false; + } #else if (!RB_EMPTY_NODE(>node)) rb_erase(>node, >client->objroot); @@ -83,7 +85,12 @@ nvkm_object_insert(struct nvkm_object *o #ifdef __NetBSD__ struct nvkm_object *collision = rb_tree_insert_node(>client->objtree, object); - return collision == object; + + if (collision != object) + return false; /* EEXIST */ + + object->on_tree = true; + return true; #else struct rb_node **ptr = >client->objroot.rb_node; struct rb_node *parent = NULL;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:07:12 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core: nouveau_nvkm_core_object.c Log Message: nouveau: Maintain object->on_tree. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:06:44 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_mem.c Log Message: nouveau: Also make sure to return the size. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.7 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.6 Sun Dec 19 11:06:36 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Sun Dec 19 11:06:44 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.6 2021/12/19 11:06:36 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.7 2021/12/19 11:06:44 riastradh Exp $ */ /* * Copyright 2017 Red Hat Inc. @@ -22,7 +22,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.6 2021/12/19 11:06:36 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.7 2021/12/19 11:06:44 riastradh Exp $"); #define nvkm_mem(p) container_of((p), struct nvkm_mem, memory) #include "mem.h" @@ -176,6 +176,7 @@ nvkm_mem_map_host(struct nvkm_memory *me return ret; } *tagp = dmat; + *sizep = mem->pages << PAGE_SHIFT; return 0; #else *pmap = vmap(mem->mem, mem->pages, VM_MAP, PAGE_KERNEL);
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:06:44 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_mem.c Log Message: nouveau: Also make sure to return the size. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:06:36 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_mem.c Log Message: nouveau: Fix typo in previous. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.5 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.6 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.5 Sun Dec 19 11:06:28 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Sun Dec 19 11:06:36 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.5 2021/12/19 11:06:28 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.6 2021/12/19 11:06:36 riastradh Exp $ */ /* * Copyright 2017 Red Hat Inc. @@ -22,7 +22,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.5 2021/12/19 11:06:28 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.6 2021/12/19 11:06:36 riastradh Exp $"); #define nvkm_mem(p) container_of((p), struct nvkm_mem, memory) #include "mem.h" @@ -175,7 +175,7 @@ nvkm_mem_map_host(struct nvkm_memory *me *pmap = NULL; return ret; } - *tagp = tag; + *tagp = dmat; return 0; #else *pmap = vmap(mem->mem, mem->pages, VM_MAP, PAGE_KERNEL);
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:06:36 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_mem.c Log Message: nouveau: Fix typo in previous. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:06:28 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_mem.c Log Message: nouveau: Make sure to return the bus dma tag. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.5 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.4 Sun Dec 19 11:06:12 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Sun Dec 19 11:06:28 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.4 2021/12/19 11:06:12 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.5 2021/12/19 11:06:28 riastradh Exp $ */ /* * Copyright 2017 Red Hat Inc. @@ -22,7 +22,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.4 2021/12/19 11:06:12 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.5 2021/12/19 11:06:28 riastradh Exp $"); #define nvkm_mem(p) container_of((p), struct nvkm_mem, memory) #include "mem.h" @@ -175,6 +175,7 @@ nvkm_mem_map_host(struct nvkm_memory *me *pmap = NULL; return ret; } + *tagp = tag; return 0; #else *pmap = vmap(mem->mem, mem->pages, VM_MAP, PAGE_KERNEL);
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:06:28 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_mem.c Log Message: nouveau: Make sure to return the bus dma tag. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:06:19 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core: nouveau_nvkm_core_object.c Log Message: nouveau: Fix sense of on_tree test before removal. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c:1.9 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c:1.10 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c:1.9 Sun Dec 19 11:05:55 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c Sun Dec 19 11:06:19 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_core_object.c,v 1.9 2021/12/19 11:05:55 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_core_object.c,v 1.10 2021/12/19 11:06:19 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_object.c,v 1.9 2021/12/19 11:05:55 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_object.c,v 1.10 2021/12/19 11:06:19 riastradh Exp $"); #include #include @@ -69,7 +69,7 @@ void nvkm_object_remove(struct nvkm_object *object) { #ifdef __NetBSD__ - if (!object->on_tree) + if (object->on_tree) rb_tree_remove_node(>client->objtree, object); #else if (!RB_EMPTY_NODE(>node))
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:06:19 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core: nouveau_nvkm_core_object.c Log Message: nouveau: Fix sense of on_tree test before removal. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:06:12 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_mem.c Log Message: nouveau: Initialize mem->pages in nvkm_mem_new_host. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c:1.3 Sun Dec 19 10:51:58 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Sun Dec 19 11:06:12 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.3 2021/12/19 10:51:58 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.4 2021/12/19 11:06:12 riastradh Exp $ */ /* * Copyright 2017 Red Hat Inc. @@ -22,7 +22,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.3 2021/12/19 10:51:58 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_mem.c,v 1.4 2021/12/19 11:06:12 riastradh Exp $"); #define nvkm_mem(p) container_of((p), struct nvkm_mem, memory) #include "mem.h" @@ -280,6 +280,7 @@ fail2: __unused KASSERT(mem->dmamap->dm_segs[i].ds_len <= PAGE_SIZE); mem->dma[i] = mem->dmamap->dm_segs[i].ds_addr; } + mem->pages = size; #else if (!(mem->mem = kvmalloc_array(size, sizeof(*mem->mem), GFP_KERNEL))) return -ENOMEM;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:06:12 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_mem.c Log Message: nouveau: Initialize mem->pages in nvkm_mem_new_host. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_mem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvif
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:06:04 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvif: nouveau_nvif_object.c Log Message: nouveau: Initialize object->map.tag/addr/size before use. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvif
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:06:04 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvif: nouveau_nvif_object.c Log Message: nouveau: Initialize object->map.tag/addr/size before use. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c:1.7 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c:1.6 Sun Dec 19 10:51:57 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvif/nouveau_nvif_object.c Sun Dec 19 11:06:03 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvif_object.c,v 1.6 2021/12/19 10:51:57 riastradh Exp $ */ +/* $NetBSD: nouveau_nvif_object.c,v 1.7 2021/12/19 11:06:03 riastradh Exp $ */ /* * Copyright 2014 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvif_object.c,v 1.6 2021/12/19 10:51:57 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvif_object.c,v 1.7 2021/12/19 11:06:03 riastradh Exp $"); #include #include @@ -259,13 +259,21 @@ nvif_object_map(struct nvif_object *obje if (ret >= 0) { if (ret) { #ifdef __NetBSD__ - ret = client->driver->map(client, tag, handle, - object->map.size, + /* + * Note: handle is the bus address; + * object->map.handle is the + * bus_space_handle_t, which is typically a + * virtual address mapped in kva. + */ + object->map.tag = tag; + object->map.addr = handle; + ret = client->driver->map(client, tag, handle, length, >map.handle, >map.ptr); if (ret) { nvif_object_unmap(object); return -ENOMEM; } + object->map.size = length; #else object->map.ptr = client->driver->map(client, handle,
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:05:55 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core: nouveau_nvkm_core_object.c Log Message: nouveau: Fix #endif NetBSD so we return ENOENT here. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c:1.8 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c:1.9 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c:1.8 Sun Dec 19 10:51:57 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c Sun Dec 19 11:05:55 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_core_object.c,v 1.8 2021/12/19 10:51:57 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_core_object.c,v 1.9 2021/12/19 11:05:55 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_object.c,v 1.8 2021/12/19 10:51:57 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_object.c,v 1.9 2021/12/19 11:05:55 riastradh Exp $"); #include #include @@ -53,8 +53,8 @@ nvkm_object_search(struct nvkm_client *c else goto done; } - return ERR_PTR(-ENOENT); #endif + return ERR_PTR(-ENOENT); } else { object = >object; }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core
Module Name:src Committed By: riastradh Date: Sun Dec 19 11:05:55 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core: nouveau_nvkm_core_object.c Log Message: nouveau: Fix #endif NetBSD so we return ENOENT here. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_object.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:50:23 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device: nouveau_nvkm_engine_device_base.c Log Message: Match Linux's criterion for byte-swapping on big-endian CPUs. (forward-ported from r1.10 on HEAD) To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c:1.11 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c:1.12 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c:1.11 Sat Dec 18 23:45:34 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c Sun Dec 19 10:50:22 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_engine_device_base.c,v 1.11 2021/12/18 23:45:34 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_engine_device_base.c,v 1.12 2021/12/19 10:50:22 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_base.c,v 1.11 2021/12/18 23:45:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_base.c,v 1.12 2021/12/19 10:50:22 riastradh Exp $"); #include "priv.h" #include "acpi.h" @@ -3016,7 +3016,7 @@ nvkm_device_ctor(const struct nvkm_devic #ifndef __BIG_ENDIAN if (bus_space_read_stream_4(mmiot, mmioh, 4) != 0) #else - if (bus_space_read_stream_4(mmiot, mmioh, 4) != 1) + if (bus_space_read_stream_4(mmiot, mmioh, 4) == 0) #endif { bus_space_write_stream_4(mmiot, mmioh, 4, 0x0101);
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:50:23 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device: nouveau_nvkm_engine_device_base.c Log Message: Match Linux's criterion for byte-swapping on big-endian CPUs. (forward-ported from r1.10 on HEAD) To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:50:13 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_drm.c nouveau_drv.h nouveau_gem.c nouveau_led.h Log Message: Various tweaks to get nouveau_drm.c and nouveau_gem.c building. To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_led.h cvs rdiff -u -r1.12 -r1.13 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c:1.20 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c:1.21 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c:1.20 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c Sun Dec 19 10:50:13 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_drm.c,v 1.20 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_drm.c,v 1.21 2021/12/19 10:50:13 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_drm.c,v 1.20 2021/12/18 23:45:32 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_drm.c,v 1.21 2021/12/19 10:50:13 riastradh Exp $"); #include #include @@ -515,7 +515,7 @@ nouveau_accel_init(struct nouveau_drm *d nouveau_bo_move_init(drm); } -static int +int nouveau_drm_device_init(struct drm_device *dev) { struct nouveau_drm *drm; @@ -555,7 +555,7 @@ nouveau_drm_device_init(struct drm_devic { /* XXX Kludge to make register subregion mapping work. */ struct nvkm_client *client = nvxx_client(>client.base); - struct nvkm_device *device = nvxx_device(>device); + struct nvkm_device *device = nvxx_device(>client.device); client->mmiot = device->mmiot; client->mmioh = device->mmioh; client->mmioaddr = device->mmioaddr; @@ -618,7 +618,7 @@ fail_alloc: return ret; } -static void +void nouveau_drm_device_fini(struct drm_device *dev) { struct nouveau_drm *drm = nouveau_drm(dev); @@ -909,8 +909,8 @@ nouveau_pmops_resume(struct device *dev) #ifndef __NetBSD__ struct pci_dev *pdev = to_pci_dev(dev); struct drm_device *drm_dev = pci_get_drvdata(pdev); - int ret; #endif + int ret; if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF || drm_dev->switch_power_state == DRM_SWITCH_POWER_DYNAMIC_OFF) Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h Sun Dec 19 10:50:13 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_drv.h,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_drv.h,v 1.3 2021/12/19 10:50:13 riastradh Exp $ */ /* SPDX-License-Identifier: MIT */ #ifndef __NOUVEAU_DRV_H__ @@ -242,6 +242,8 @@ nouveau_drm_use_coherent_gpu_mapping(str } #ifdef __NetBSD__ +int nouveau_drm_device_init(struct drm_device *); +void nouveau_drm_device_fini(struct drm_device *); int nouveau_pmops_suspend(struct drm_device *); int nouveau_pmops_resume(struct drm_device *); #else Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_led.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_led.h:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_led.h:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_led.h:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_led.h Sun Dec 19 10:50:13 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_led.h,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_led.h,v 1.3 2021/12/19 10:50:13 riastradh Exp $ */ /* * Copyright 2015 Martin Peres @@ -34,7 +34,9 @@ struct led_classdev; struct nouveau_led { struct drm_device *dev; +#if IS_REACHABLE(CONFIG_LEDS_CLASS) struct led_classdev led; +#endif }; static inline struct nouveau_led * Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c:1.12 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c:1.13 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c:1.12 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c Sun Dec 19 10:50:13 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_gem.c,v 1.12 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_gem.c,v 1.13 2021/12/19 10:50:13 riastradh Exp $ */ /* * Copyright (C) 2008 Ben Skeggs. @@ -27,7 +27,9 @@ */ #include
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:50:13 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_drm.c nouveau_drv.h nouveau_gem.c nouveau_led.h Log Message: Various tweaks to get nouveau_drm.c and nouveau_gem.c building. To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drm.c cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_drv.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_led.h cvs rdiff -u -r1.12 -r1.13 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_gem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:49:47 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50: atom.h disp.h lut.h nouveau_dispnv50_disp.c nouveau_dispnv50_head507d.c nouveau_dispnv50_head907d.c nouveau_dispnv50_headc57d.c nouveau_dispnv50_lut.c nouveau_dispnv50_wndwc57e.c Log Message: Hack up dispnv50 __iomem. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_lut.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_wndwc57e.c cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: atom.h,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: atom.h,v 1.3 2021/12/19 10:49:47 riastradh Exp $ */ #ifndef __NV50_KMS_ATOM_H__ #define __NV50_KMS_ATOM_H__ @@ -15,6 +15,11 @@ struct nv50_atom { #define nv50_head_atom(p) container_of((p), struct nv50_head_atom, state) +#ifdef __NetBSD__ +# define __lut_iomem volatile +# define __iomem __lut_iomem +#endif + struct nv50_head_atom { struct drm_crtc_state state; @@ -245,4 +250,9 @@ struct nv50_wndw_atom { u8 mask; } set, clr; }; + +#ifdef __NetBSD__ +# undef __iomem +#endif + #endif Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: disp.h,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: disp.h,v 1.3 2021/12/19 10:49:47 riastradh Exp $ */ #ifndef __NV50_KMS_H__ #define __NV50_KMS_H__ @@ -50,8 +50,17 @@ struct nv50_disp_interlock { void corec37d_ntfy_init(struct nouveau_bo *, u32); +#ifdef __NetBSD__ +# define __lut_iomem volatile +# define __iomem __lut_iomem +#endif + void head907d_olut_load(struct drm_color_lut *, int size, void __iomem *); +#ifdef __NetBSD__ +# undef __iomem +#endif + struct nv50_chan { struct nvif_object user; struct nvif_device *device; Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lut.h,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: lut.h,v 1.3 2021/12/19 10:49:47 riastradh Exp $ */ #ifndef __NV50_KMS_LUT_H__ #define __NV50_KMS_LUT_H__ @@ -13,6 +13,13 @@ struct nv50_lut { int nv50_lut_init(struct nv50_disp *, struct nvif_mmu *, struct nv50_lut *); void nv50_lut_fini(struct nv50_lut *); +#ifdef __NetBSD__ +# define __lut_iomem volatile +# define __iomem __lut_iomem +#endif u32 nv50_lut_load(struct nv50_lut *, int buffer, struct drm_property_blob *, void (*)(struct drm_color_lut *, int size, void __iomem *)); +#ifdef __NetBSD__ +# undef __iomem +#endif #endif Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c Sun Dec 19 10:49:47 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_dispnv50_head907d.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_dispnv50_head907d.c,v 1.3
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:49:47 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50: atom.h disp.h lut.h nouveau_dispnv50_disp.c nouveau_dispnv50_head507d.c nouveau_dispnv50_head907d.c nouveau_dispnv50_headc57d.c nouveau_dispnv50_lut.c nouveau_dispnv50_wndwc57e.c Log Message: Hack up dispnv50 __iomem. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/atom.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/disp.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/lut.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head907d.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_lut.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_wndwc57e.c cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:49:38 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50: nouveau_dispnv50_disp.c nouveau_dispnv50_head507d.c nouveau_dispnv50_headc57d.c Log Message: Fix declarations and mark __unused. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c:1.3 Sun Dec 19 10:49:29 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c Sun Dec 19 10:49:38 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_dispnv50_disp.c,v 1.3 2021/12/19 10:49:29 riastradh Exp $ */ +/* $NetBSD: nouveau_dispnv50_disp.c,v 1.4 2021/12/19 10:49:38 riastradh Exp $ */ /* * Copyright 2011 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_disp.c,v 1.3 2021/12/19 10:49:29 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_disp.c,v 1.4 2021/12/19 10:49:38 riastradh Exp $"); #include "disp.h" #include "atom.h" @@ -58,9 +58,12 @@ __KERNEL_RCSID(0, "$NetBSD: nouveau_disp #include "nouveau_encoder.h" #include "nouveau_fence.h" #include "nouveau_fbcon.h" +#include "nv50_display.h" #include +#include + /** * Atomic state */ @@ -1234,7 +1237,7 @@ nv50_mstm_cleanup(struct nv50_mstm *mstm { struct nouveau_drm *drm = nouveau_drm(mstm->outp->base.base.dev); struct drm_encoder *encoder; - int ret; + int ret __unused; NV_ATOMIC(drm, "%s: mstm cleanup\n", mstm->outp->base.base.name); ret = drm_dp_check_act_status(>mgr); @@ -1258,7 +1261,7 @@ nv50_mstm_prepare(struct nv50_mstm *mstm { struct nouveau_drm *drm = nouveau_drm(mstm->outp->base.base.dev); struct drm_encoder *encoder; - int ret; + int ret __unused; NV_ATOMIC(drm, "%s: mstm prepare\n", mstm->outp->base.base.name); ret = drm_dp_update_payload_part1(>mgr); Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c Sun Dec 19 10:49:38 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_dispnv50_head507d.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_dispnv50_head507d.c,v 1.3 2021/12/19 10:49:38 riastradh Exp $ */ /* * Copyright 2018 Red Hat Inc. @@ -22,11 +22,13 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_head507d.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_head507d.c,v 1.3 2021/12/19 10:49:38 riastradh Exp $"); #include "head.h" #include "core.h" +#include + void head507d_procamp(struct nv50_head *head, struct nv50_head_atom *asyh) { Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c Sun Dec 19 10:49:38 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_dispnv50_headc57d.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_dispnv50_headc57d.c,v 1.3 2021/12/19 10:49:38 riastradh Exp $ */ /* * Copyright 2018 Red Hat Inc. @@ -22,7 +22,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_headc57d.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_headc57d.c,v 1.3 2021/12/19 10:49:38 riastradh Exp $"); #include "head.h" #include "atom.h" @@ -74,7 +74,7 @@ headc57d_procamp(struct nv50_head *head, } } -void +static
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:49:38 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50: nouveau_dispnv50_disp.c nouveau_dispnv50_head507d.c nouveau_dispnv50_headc57d.c Log Message: Fix declarations and mark __unused. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_head507d.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_headc57d.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:49:29 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50: nouveau_dispnv50_disp.c Log Message: Ifdef out audio component stuff. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c:1.2 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c Sun Dec 19 10:49:29 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_dispnv50_disp.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_dispnv50_disp.c,v 1.3 2021/12/19 10:49:29 riastradh Exp $ */ /* * Copyright 2011 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_disp.c,v 1.2 2021/12/18 23:45:32 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv50_disp.c,v 1.3 2021/12/19 10:49:29 riastradh Exp $"); #include "disp.h" #include "atom.h" @@ -496,11 +496,15 @@ nv50_dac_create(struct drm_connector *co static void nv50_audio_component_eld_notify(struct drm_audio_component *acomp, int port) { +#ifndef __NetBSD__ /* XXX nouveau audio component */ if (acomp && acomp->audio_ops && acomp->audio_ops->pin_eld_notify) acomp->audio_ops->pin_eld_notify(acomp->audio_ops->audio_ptr, port, -1); +#endif } +#ifndef __NetBSD__ /* XXX nouveau audio component */ + static int nv50_audio_component_get_eld(struct device *kdev, int port, int pipe, bool *enabled, unsigned char *buf, int max_bytes) @@ -574,20 +578,26 @@ static const struct component_ops nv50_a .unbind = nv50_audio_component_unbind, }; +#endif + static void nv50_audio_component_init(struct nouveau_drm *drm) { +#ifndef __NetBSD__ /* XXX nouveau audio component */ if (!component_add(drm->dev->dev, _audio_component_bind_ops)) drm->audio.component_registered = true; +#endif } static void nv50_audio_component_fini(struct nouveau_drm *drm) { +#ifndef __NetBSD__ /* XXX nouveau audio component */ if (drm->audio.component_registered) { component_del(drm->dev->dev, _audio_component_bind_ops); drm->audio.component_registered = false; } +#endif } /**
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:49:29 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50: nouveau_dispnv50_disp.c Log Message: Ifdef out audio component stuff. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv50/nouveau_dispnv50_disp.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:49:22 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_connector.c nouveau_connector.h Log Message: Work around const in container_of. Ifdef out vga switcheroo. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c:1.7 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c:1.6 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c Sun Dec 19 10:49:21 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_connector.c,v 1.6 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_connector.c,v 1.7 2021/12/19 10:49:21 riastradh Exp $ */ /* * Copyright (C) 2008 Maarten Maathuis. @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_connector.c,v 1.6 2021/12/18 23:45:32 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_connector.c,v 1.7 2021/12/19 10:49:21 riastradh Exp $"); #include @@ -104,7 +104,7 @@ nouveau_conn_atomic_get_property(struct const struct drm_connector_state *state, struct drm_property *property, u64 *val) { - struct nouveau_conn_atom *asyc = nouveau_conn_atom(state); + const struct nouveau_conn_atom *asyc = nouveau_conn_atom_const(state); struct nouveau_display *disp = nouveau_display(connector->dev); struct drm_device *dev = connector->dev; @@ -424,7 +424,7 @@ nouveau_connector_destroy(struct drm_con if (nv_connector->aux.transfer) { drm_dp_cec_unregister_connector(_connector->aux); drm_dp_aux_unregister(_connector->aux); - kfree(nv_connector->aux.name); + kfree(__UNCONST(nv_connector->aux.name)); } kfree(connector); } @@ -458,12 +458,19 @@ nouveau_connector_ddc_detect(struct drm_ if (!nv_encoder->i2c) break; +#ifdef __NetBSD__ + __USE(switcheroo_ddc); + __USE(dev); +#else if (switcheroo_ddc) vga_switcheroo_lock_ddc(dev->pdev); +#endif if (nvkm_probe_i2c(nv_encoder->i2c, 0x50)) found = nv_encoder; +#ifndef __NetBSD__ if (switcheroo_ddc) vga_switcheroo_unlock_ddc(dev->pdev); +#endif break; } Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.h:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.h:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.h:1.3 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.h Sun Dec 19 10:49:21 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_connector.h,v 1.3 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_connector.h,v 1.4 2021/12/19 10:49:21 riastradh Exp $ */ /* * Copyright (C) 2008 Maarten Maathuis. @@ -49,6 +49,8 @@ struct nouveau_backlight; #define nouveau_conn_atom(p) \ container_of((p), struct nouveau_conn_atom, state) +#define nouveau_conn_atom_const(p) \ + const_container_of((p), struct nouveau_conn_atom, state) struct nouveau_conn_atom { struct drm_connector_state state;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:49:22 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_connector.c nouveau_connector.h Log Message: Work around const in container_of. Ifdef out vga switcheroo. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.c cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_connector.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:49:13 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fence.c Log Message: Work around unclear side loading. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c:1.16 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c:1.17 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c:1.16 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c Sun Dec 19 10:49:13 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_fence.c,v 1.16 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nouveau_fence.c,v 1.17 2021/12/19 10:49:13 riastradh Exp $ */ /* * Copyright (C) 2007 Ben Skeggs. @@ -27,11 +27,13 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_fence.c,v 1.16 2021/12/18 23:45:32 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_fence.c,v 1.17 2021/12/19 10:49:13 riastradh Exp $"); +#include #include #include #include +#include #include #include
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:49:13 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fence.c Log Message: Work around unclear side loading. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fence.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:48:54 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nv50_display.h Log Message: Delete obsolete declarations that are getting in the way. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nv50_display.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nv50_display.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nv50_display.h:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nv50_display.h:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nv50_display.h:1.3 Sat Dec 18 23:45:32 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nv50_display.h Sun Dec 19 10:48:54 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nv50_display.h,v 1.3 2021/12/18 23:45:32 riastradh Exp $ */ +/* $NetBSD: nv50_display.h,v 1.4 2021/12/19 10:48:54 riastradh Exp $ */ /* * Copyright (C) 2008 Maarten Maathuis. @@ -33,7 +33,4 @@ #include "nouveau_reg.h" int nv50_display_create(struct drm_device *); -void nv50_display_destroy(struct drm_device *); -int nv50_display_init(struct drm_device *); -void nv50_display_fini(struct drm_device *); #endif /* __NV50_DISPLAY_H__ */
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:48:54 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nv50_display.h Log Message: Delete obsolete declarations that are getting in the way. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nv50_display.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:47:46 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_bo.c Log Message: Fix up nouveau_bo.c To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: riastradh Date: Sun Dec 19 10:47:46 UTC 2021 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_bo.c Log Message: Fix up nouveau_bo.c To generate a diff of this commit: cvs rdiff -u -r1.17 -r1.18 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.17 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.18 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.17 Sun Dec 19 01:53:39 2021 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c Sun Dec 19 10:47:46 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_bo.c,v 1.17 2021/12/19 01:53:39 riastradh Exp $ */ +/* $NetBSD: nouveau_bo.c,v 1.18 2021/12/19 10:47:46 riastradh Exp $ */ /* * Copyright 2007 Dave Airlied @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_bo.c,v 1.17 2021/12/19 01:53:39 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_bo.c,v 1.18 2021/12/19 10:47:46 riastradh Exp $"); #include #include @@ -207,7 +207,7 @@ nouveau_bo_alloc(struct nouveau_cli *cli int i, pi = -1; if (!*size) { - NV_WARN(drm, "skipped size %016llx\n", *size); + NV_WARN(drm, "skipped size %016"PRIx64"\n", *size); return ERR_PTR(-EINVAL); } @@ -557,7 +557,7 @@ nouveau_bo_sync_for_device(struct nouvea return; #ifdef __NetBSD__ - bus_dma_tag_t dmat = device->func->dma_tag(device); + bus_dma_tag_t dmat = drm->dev->dmat; bus_dmamap_sync(dmat, ttm_dma->dma_address, 0, PAGE_SIZE*ttm_dma->ttm.num_pages, BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE); @@ -586,7 +586,7 @@ nouveau_bo_sync_for_cpu(struct nouveau_b return; #ifdef __NetBSD__ - bus_dma_tag_t dmat = device->func->dma_tag(device); + bus_dma_tag_t dmat = drm->dev->dmat; bus_dmamap_sync(dmat, ttm_dma->dma_address, 0, PAGE_SIZE*ttm_dma->ttm.num_pages, BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE); @@ -1516,10 +1516,14 @@ out: static int nouveau_bo_verify_access(struct ttm_buffer_object *bo, struct file *filp) { +#ifdef __NetBSD__ + struct drm_file *file = filp->f_data; +#else + struct drm_file *file = filp->private_data; +#endif struct nouveau_bo *nvbo = nouveau_bo(bo); - return drm_vma_node_verify_access(>bo.base.vma_node, - filp->private_data); + return drm_vma_node_verify_access(>bo.base.vma_node, file); } static int @@ -1705,13 +1709,14 @@ nouveau_ttm_tt_populate(struct ttm_tt *t } #endif -#if IS_ENABLED(CONFIG_SWIOTLB) && IS_ENABLED(CONFIG_X86) - if (swiotlb_nr_tbl()) { #ifdef __NetBSD__ - return ttm_bus_dma_populate(ttm_dma); + __USE(i); + __USE(dev); + return ttm_bus_dma_populate(ttm_dma); #else +#if IS_ENABLED(CONFIG_SWIOTLB) && IS_ENABLED(CONFIG_X86) + if (swiotlb_nr_tbl()) { return ttm_dma_populate((void *)ttm, dev, ctx); -#endif } #endif @@ -1739,6 +1744,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *t ttm_dma->dma_address[i] = addr; } return 0; +#endif } static void @@ -1763,16 +1769,17 @@ nouveau_ttm_tt_unpopulate(struct ttm_tt } #endif -#if IS_ENABLED(CONFIG_SWIOTLB) && IS_ENABLED(CONFIG_X86) - if (swiotlb_nr_tbl()) { #ifdef __NetBSD__ - ttm_bus_dma_unpopulate(ttm_dma); + __USE(i); + __USE(dev); + ttm_bus_dma_unpopulate(ttm_dma); #else +#if IS_ENABLED(CONFIG_SWIOTLB) && IS_ENABLED(CONFIG_X86) + if (swiotlb_nr_tbl()) { ttm_dma_unpopulate((void *)ttm, dev); #endif return; } -#endif for (i = 0; i < ttm->num_pages; i++) { if (ttm_dma->dma_address[i]) { @@ -1782,6 +1789,7 @@ nouveau_ttm_tt_unpopulate(struct ttm_tt } ttm_pool_unpopulate(ttm); +#endif } #ifdef __NetBSD__
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit
Module Name:src Committed By: jmcneill Date: Sat Oct 17 10:47:10 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit: fbmem.h Log Message: wmb (dsb ishst) is not the same as membar_producer (dmb ishst) on aarch64 To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h:1.3 Mon Aug 27 14:51:33 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h Sat Oct 17 10:47:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: fbmem.h,v 1.3 2018/08/27 14:51:33 riastradh Exp $ */ +/* $NetBSD: fbmem.h,v 1.4 2020/10/17 10:47:10 jmcneill Exp $ */ /* * Copyright (C) 2010 Francisco Jerez. @@ -112,11 +112,10 @@ fbmem_poke(struct io_mapping *fb, u32 of { u8 __iomem *p = io_mapping_map_atomic_wc(fb, off & PAGE_MASK); iowrite32(val, p + (off & ~PAGE_MASK)); + wmb(); #ifdef __NetBSD__ - membar_producer(); io_mapping_unmap_atomic(fb, __UNVOLATILE(p)); #else - wmb(); io_mapping_unmap_atomic(p); #endif }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit
Module Name:src Committed By: jmcneill Date: Sat Oct 17 10:47:10 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit: fbmem.h Log Message: wmb (dsb ishst) is not the same as membar_producer (dmb ishst) on aarch64 To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/devinit/fbmem.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: jmcneill Date: Sun Apr 19 19:12:38 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_nv50_display.c src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_nv44.c Log Message: Add missing BUS_DMA_COHERENT hints To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.11 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.12 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.11 Fri Feb 14 14:34:58 2020 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c Sun Apr 19 19:12:37 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nv50_display.c,v 1.11 2020/02/14 14:34:58 maya Exp $ */ +/* $NetBSD: nouveau_nv50_display.c,v 1.12 2020/04/19 19:12:37 jmcneill Exp $ */ /* * Copyright 2011 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nv50_display.c,v 1.11 2020/02/14 14:34:58 maya Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nv50_display.c,v 1.12 2020/04/19 19:12:37 jmcneill Exp $"); #include @@ -297,7 +297,7 @@ nv50_dmac_create(struct nvif_device *dev } /* XXX errno NetBSD->Linux */ ret = -bus_dmamem_map(dmat, >dmaseg, 1, PAGE_SIZE, >dmakva, - BUS_DMA_WAITOK); + BUS_DMA_WAITOK | BUS_DMA_COHERENT); if (ret) { bus_dmamap_destroy(dmat, dmac->dmamap); bus_dmamem_free(dmat, >dmaseg, 1); Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c:1.3 Mon Aug 27 07:41:09 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c Sun Apr 19 19:12:37 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_mmu_nv44.c,v 1.3 2018/08/27 07:41:09 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_mmu_nv44.c,v 1.4 2020/04/19 19:12:37 jmcneill Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_nv44.c,v 1.3 2018/08/27 07:41:09 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_nv44.c,v 1.4 2020/04/19 19:12:37 jmcneill Exp $"); #include "nv04.h" @@ -193,7 +193,7 @@ fail1: bus_dmamem_free(dmat, >null /* XXX errno NetBSD->Linux */ ret = -bus_dmamem_map(dmat, >nullseg, 1, nullsz, - >nullp, BUS_DMA_WAITOK); + >nullp, BUS_DMA_WAITOK | BUS_DMA_COHERENT); if (ret) { fail2: bus_dmamap_destroy(dmat, mmu->nullmap); goto fail1;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: jmcneill Date: Sun Apr 19 19:12:38 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_nv50_display.c src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_nv44.c Log Message: Add missing BUS_DMA_COHERENT hints To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device
Module Name:src Committed By: riastradh Date: Sun Apr 19 18:02:36 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device: nouveau_nvkm_engine_device_base.c Log Message: Match Linux's criterion for byte-swapping on big-endian CPUs. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c:1.9 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c:1.10 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c:1.9 Fri Feb 14 04:35:20 2020 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c Sun Apr 19 18:02:36 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_engine_device_base.c,v 1.9 2020/02/14 04:35:20 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_engine_device_base.c,v 1.10 2020/04/19 18:02:36 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_base.c,v 1.9 2020/02/14 04:35:20 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_base.c,v 1.10 2020/04/19 18:02:36 riastradh Exp $"); #include "priv.h" #include "acpi.h" @@ -2386,7 +2386,7 @@ nvkm_device_ctor(const struct nvkm_devic #ifndef __BIG_ENDIAN if (bus_space_read_stream_4(mmiot, mmioh, 4) != 0) #else - if (bus_space_read_stream_4(mmiot, mmioh, 4) != 1) + if (bus_space_read_stream_4(mmiot, mmioh, 4) == 0) #endif { bus_space_write_stream_4(mmiot, mmioh, 4, 0x0101);
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device
Module Name:src Committed By: riastradh Date: Sun Apr 19 18:02:36 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device: nouveau_nvkm_engine_device_base.c Log Message: Match Linux's criterion for byte-swapping on big-endian CPUs. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio
Module Name:src Committed By: msaitoh Date: Wed Apr 1 15:57:46 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio: nouveau_nvkm_subdev_gpio_base.c Log Message: Calculate mask correctly for bit 31 in nvkm_gpio_fini(). Found by kUBSan. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.c:1.2 Mon Aug 27 04:58:34 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.c Wed Apr 1 15:57:46 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_gpio_base.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_gpio_base.c,v 1.3 2020/04/01 15:57:46 msaitoh Exp $ */ /* * Copyright 2011 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_gpio_base.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_gpio_base.c,v 1.3 2020/04/01 15:57:46 msaitoh Exp $"); #include "priv.h" @@ -169,7 +169,7 @@ static int nvkm_gpio_fini(struct nvkm_subdev *subdev, bool suspend) { struct nvkm_gpio *gpio = nvkm_gpio(subdev); - u32 mask = (1 << gpio->func->lines) - 1; + u32 mask = (1ULL << gpio->func->lines) - 1; gpio->func->intr_mask(gpio, NVKM_GPIO_TOGGLED, mask, 0); gpio->func->intr_stat(gpio, , );
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio
Module Name:src Committed By: msaitoh Date: Wed Apr 1 15:57:46 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio: nouveau_nvkm_subdev_gpio_base.c Log Message: Calculate mask correctly for bit 31 in nvkm_gpio_fini(). Found by kUBSan. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev
Module Name:src Committed By: msaitoh Date: Wed Apr 1 15:55:52 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio: nouveau_nvkm_subdev_gpio_nv50.c src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c: nouveau_nvkm_subdev_i2c_g94.c Log Message: Use unsigned to avoid undefined behavior. Found by kUBSan. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c:1.2 Mon Aug 27 04:58:34 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c Wed Apr 1 15:55:52 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_gpio_nv50.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_gpio_nv50.c,v 1.3 2020/04/01 15:55:52 msaitoh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_gpio_nv50.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_gpio_nv50.c,v 1.3 2020/04/01 15:55:52 msaitoh Exp $"); #include "priv.h" @@ -55,7 +55,7 @@ nv50_gpio_reset(struct nvkm_gpio *gpio, nvkm_gpio_set(gpio, 0, func, line, defs); - nvkm_mask(device, reg, 0x00010001 << lsh, val << lsh); + nvkm_mask(device, reg, 0x00010001U << lsh, val << lsh); } } Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.c:1.2 Mon Aug 27 04:58:34 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.c Wed Apr 1 15:55:52 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_i2c_g94.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_i2c_g94.c,v 1.3 2020/04/01 15:55:52 msaitoh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_i2c_g94.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_i2c_g94.c,v 1.3 2020/04/01 15:55:52 msaitoh Exp $"); #include "priv.h" #include "pad.h" @@ -39,7 +39,7 @@ g94_aux_stat(struct nvkm_i2c *i2c, u32 * if ((stat & (1 << (i * 4 *hi |= 1 << i; if ((stat & (2 << (i * 4 *lo |= 1 << i; if ((stat & (4 << (i * 4 *rq |= 1 << i; - if ((stat & (8 << (i * 4 *tx |= 1 << i; + if ((stat & (8U << (i * 4 *tx |= 1 << i; } nvkm_wr32(device, 0x00e06c, intr); }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev
Module Name:src Committed By: msaitoh Date: Wed Apr 1 15:55:52 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio: nouveau_nvkm_subdev_gpio_nv50.c src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c: nouveau_nvkm_subdev_i2c_g94.c Log Message: Use unsigned to avoid undefined behavior. Found by kUBSan. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/gpio/nouveau_nvkm_subdev_gpio_nv50.c cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/i2c/nouveau_nvkm_subdev_i2c_g94.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Re: CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
The static variable was in #ifdef __NetBSD__ part, so I assumed it doesn't influence the merge. Christos already reverted the fallthrough warning fix. Jaromir Le jeu. 13 févr. 2020 à 09:18, matthew green a écrit : > > "Jaromir Dolecek" writes: > > Module Name: src > > Committed By: jdolecek > > Date: Wed Feb 12 20:31:46 UTC 2020 > > > > Modified Files: > > src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fbcon.c > > > > Log Message: > > remove superfluous static variable used only to zero attach args > > is this necessary for 3rd party code? > > please try to avoid changing these for cosmetic reasons. > > same for warned code that is forced to warning not error. > the reason we/i didn't change them is to avoid making > future drm updates harder -- they're already *really* hard. > > thanks. > > > .mrg.
re: CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
"Jaromir Dolecek" writes: > Module Name: src > Committed By: jdolecek > Date: Wed Feb 12 20:31:46 UTC 2020 > > Modified Files: > src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fbcon.c > > Log Message: > remove superfluous static variable used only to zero attach args is this necessary for 3rd party code? please try to avoid changing these for cosmetic reasons. same for warned code that is forced to warning not error. the reason we/i didn't change them is to avoid making future drm updates harder -- they're already *really* hard. thanks. .mrg.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: jdolecek Date: Wed Feb 12 22:34:51 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_base.c Log Message: adjust the PCI interrupt allocation code to work the same as drm_pci_request_irq(), now the driver successfully allocates MSI interrupt [ 3.6619808] nouveau0: info: NVIDIA GK208B (b06070b1) [ 3.7685336] nouveau0: info: bios: version 80.28.78.00.4b [ 3.7785491] nouveau0: interrupting at msi8 vec 0 (nouveau0) related to PR kern/52440 by John D. Baker To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.7 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.6 Fri Feb 7 18:13:33 2020 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Wed Feb 12 22:34:51 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.6 2020/02/07 18:13:33 jmcneill Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.7 2020/02/12 22:34:51 jdolecek Exp $ */ /* * Copyright 2015 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.6 2020/02/07 18:13:33 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.7 2020/02/12 22:34:51 jdolecek Exp $"); #include "priv.h" #include "agp.h" @@ -141,22 +141,51 @@ nvkm_pci_init(struct nvkm_subdev *subdev #ifdef __NetBSD__ { + const char *const name = device_xname(pci_dev_dev(pdev)); const struct pci_attach_args *pa = >pd_pa; - int counts[PCI_INTR_TYPE_SIZE] = { - [PCI_INTR_TYPE_INTX] = 1, - [PCI_INTR_TYPE_MSI] = 0, - [PCI_INTR_TYPE_MSIX] = 0, - }; + const char *intrstr; + char intrbuf[PCI_INTRSTR_LEN]; - /* XXX errno NetBSD->Linux */ - ret = -pci_intr_alloc(pa, >pci_ihp, counts, PCI_INTR_TYPE_INTX); - if (ret) - return ret; + /* XXX convert to use drm_pci_request_irq() */ + if (pdev->msi_enabled) { + if (pdev->pd_intr_handles == NULL) { + if ((ret = pci_msi_alloc_exact(pa, >pci_ihp, + 1))) { +aprint_error_dev(pci_dev_dev(pdev), +"couldn't allocate MSI (%s)\n", name); +/* XXX errno NetBSD->Linux */ +return -ret; + } + } else { + pci->pci_ihp = pdev->pd_intr_handles; + pdev->pd_intr_handles = NULL; + } + } else { + if ((ret = pci_intx_alloc(pa, >pci_ihp))) { + aprint_error_dev(pci_dev_dev(pdev), + "couldn't allocate INTx interrupt (%s)\n", + name); + + /* XXX errno NetBSD->Linux */ + return -ret; + } + } + + intrstr = pci_intr_string(pa->pa_pc, pci->pci_ihp[0], + intrbuf, sizeof(intrbuf)); pci->pci_intrcookie = pci_intr_establish_xname(pa->pa_pc, pci->pci_ihp[0], IPL_DRM, nvkm_pci_intr, pci, - device_xname(pci_dev_dev(pdev))); - if (pci->pci_intrcookie == NULL) + name); + if (pci->pci_intrcookie == NULL) { + aprint_error_dev(pci_dev_dev(pdev), + "couldn't establish interrupt at %s (%s)\n", intrstr, name); + pci_intr_release(pa->pa_pc, pci->pci_ihp, 1); + pci->pci_ihp = NULL; return -EIO; /* XXX er? */ + } + + aprint_normal_dev(pci_dev_dev(pdev), "interrupting at %s (%s)\n", + intrstr, name); } #else ret = request_irq(pdev->irq, nvkm_pci_intr, IRQF_SHARED, "nvkm", pci);
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: jdolecek Date: Wed Feb 12 22:34:51 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_base.c Log Message: adjust the PCI interrupt allocation code to work the same as drm_pci_request_irq(), now the driver successfully allocates MSI interrupt [ 3.6619808] nouveau0: info: NVIDIA GK208B (b06070b1) [ 3.7685336] nouveau0: info: bios: version 80.28.78.00.4b [ 3.7785491] nouveau0: interrupting at msi8 vec 0 (nouveau0) related to PR kern/52440 by John D. Baker To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: jdolecek Date: Wed Feb 12 20:31:46 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fbcon.c Log Message: remove superfluous static variable used only to zero attach args To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.7 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.8 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.7 Wed Feb 12 20:25:48 2020 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c Wed Feb 12 20:31:46 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_fbcon.c,v 1.7 2020/02/12 20:25:48 jdolecek Exp $ */ +/* $NetBSD: nouveau_fbcon.c,v 1.8 2020/02/12 20:31:46 jdolecek Exp $ */ /* * Copyright © 2007 David Airlie @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_fbcon.c,v 1.7 2020/02/12 20:25:48 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_fbcon.c,v 1.8 2020/02/12 20:31:46 jdolecek Exp $"); #include #include @@ -434,10 +434,9 @@ nouveau_fbcon_create(struct drm_fb_helpe nouveau_fbcon_zfill(dev, fbcon); -{ - static const struct nouveaufb_attach_args zero_nfa; - struct nouveaufb_attach_args nfa = zero_nfa; + struct nouveaufb_attach_args nfa; + memset(, 0, sizeof(nfa)); nfa.nfa_fb_helper = helper; nfa.nfa_fb_sizes = *sizes; nfa.nfa_fb_ptr = nvbo_kmap_obj_iovirtual(nvbo); @@ -448,7 +447,7 @@ nouveau_fbcon_create(struct drm_fb_helpe if (helper->fbdev == NULL) { goto out_unlock; } -} + helper->fb = fb; return 0;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: jdolecek Date: Wed Feb 12 20:31:46 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fbcon.c Log Message: remove superfluous static variable used only to zero attach args To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: jdolecek Date: Wed Feb 12 20:25:48 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fbcon.c Log Message: don't consider it error when nouveaufbbus fails to attach, it currently can happen only not configured into the kernel To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: jdolecek Date: Wed Feb 12 20:25:48 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fbcon.c Log Message: don't consider it error when nouveaufbbus fails to attach, it currently can happen only not configured into the kernel To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.7 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.6 Wed Feb 12 20:08:31 2020 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c Wed Feb 12 20:25:48 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_fbcon.c,v 1.6 2020/02/12 20:08:31 jdolecek Exp $ */ +/* $NetBSD: nouveau_fbcon.c,v 1.7 2020/02/12 20:25:48 jdolecek Exp $ */ /* * Copyright © 2007 David Airlie @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_fbcon.c,v 1.6 2020/02/12 20:08:31 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_fbcon.c,v 1.7 2020/02/12 20:25:48 jdolecek Exp $"); #include #include @@ -356,6 +356,17 @@ nouveau_fbcon_zfill(struct drm_device *d #endif } +#ifdef __NetBSD__ +static int +nouveau_fbcon_print(void *aux, const char *pnp) +{ + if (pnp) + aprint_normal("nouveaufbbus at %s", pnp); + + return (UNCONF); +} +#endif + static int nouveau_fbcon_create(struct drm_fb_helper *helper, struct drm_fb_helper_surface_size *sizes) @@ -432,9 +443,9 @@ nouveau_fbcon_create(struct drm_fb_helpe nfa.nfa_fb_ptr = nvbo_kmap_obj_iovirtual(nvbo); nfa.nfa_fb_linebytes = mode_cmd.pitches[0]; - helper->fbdev = config_found_ia(dev->dev, "nouveaufbbus", , NULL); + helper->fbdev = config_found_ia(dev->dev, "nouveaufbbus", , + nouveau_fbcon_print); if (helper->fbdev == NULL) { - DRM_ERROR("failed to attach nouveaufb\n"); goto out_unlock; } }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: jdolecek Date: Wed Feb 12 20:08:32 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fbcon.c Log Message: fix error path when nouveaufb fails to attach (such as when it's not actually configured into the kernel), the gem was not released properly leading to: panic: LOCKDEBUG: Reader / writer lock error: kmem_intr_free,289: allocation contains active lock To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: jdolecek Date: Wed Feb 12 20:08:32 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_fbcon.c Log Message: fix error path when nouveaufb fails to attach (such as when it's not actually configured into the kernel), the gem was not released properly leading to: panic: LOCKDEBUG: Reader / writer lock error: kmem_intr_free,289: allocation contains active lock To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.5 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.6 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c:1.5 Mon Aug 27 07:57:34 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_fbcon.c Wed Feb 12 20:08:31 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_fbcon.c,v 1.5 2018/08/27 07:57:34 riastradh Exp $ */ +/* $NetBSD: nouveau_fbcon.c,v 1.6 2020/02/12 20:08:31 jdolecek Exp $ */ /* * Copyright © 2007 David Airlie @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_fbcon.c,v 1.5 2018/08/27 07:57:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_fbcon.c,v 1.6 2020/02/12 20:08:31 jdolecek Exp $"); #include #include @@ -507,7 +507,7 @@ out_unlock: out_unpin: nouveau_bo_unpin(nvbo); out_unref: - nouveau_bo_ref(NULL, ); + nouveau_gem_object_del(>gem); out: return ret; }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: jmcneill Date: Mon Feb 3 16:22:25 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_base.c Log Message: Use the correct PCI interrupt type based on what the driver has configured To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: jmcneill Date: Mon Feb 3 16:22:25 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_base.c Log Message: Use the correct PCI interrupt type based on what the driver has configured To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.5 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.4 Wed Dec 19 09:20:56 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Mon Feb 3 16:22:25 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.4 2018/12/19 09:20:56 maya Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.5 2020/02/03 16:22:25 jmcneill Exp $ */ /* * Copyright 2015 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.4 2018/12/19 09:20:56 maya Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.5 2020/02/03 16:22:25 jmcneill Exp $"); #include "priv.h" #include "agp.h" @@ -142,14 +142,18 @@ nvkm_pci_init(struct nvkm_subdev *subdev #ifdef __NetBSD__ { const struct pci_attach_args *pa = >pd_pa; + const pci_intr_type_t intr_type = pci->msi ? + PCI_INTR_TYPE_MSI : PCI_INTR_TYPE_INTX; + int counts[PCI_INTR_TYPE_SIZE] = { - [PCI_INTR_TYPE_INTX] = 1, + [PCI_INTR_TYPE_INTX] = 0, [PCI_INTR_TYPE_MSI] = 0, [PCI_INTR_TYPE_MSIX] = 0, }; + counts[intr_type] = 1; /* XXX errno NetBSD->Linux */ - ret = -pci_intr_alloc(pa, >pci_ihp, counts, PCI_INTR_TYPE_INTX); + ret = -pci_intr_alloc(pa, >pci_ihp, counts, intr_type); if (ret) return ret; pci->pci_intrcookie = pci_intr_establish_xname(pa->pa_pc,
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo
Module Name:src Committed By: jmcneill Date: Wed Jan 22 11:38:54 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo: nouveau_nvkm_engine_fifo_gk104.c Log Message: Write pbdma timeout regs during initialisation on GK208B, GK208, and GM107. Based on the following upstream commit: https://github.com/torvalds/linux/commit/79bb4b617f965736d2e1c616235302c1d0e823b2 To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c:1.3 Mon Aug 27 07:40:11 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c Wed Jan 22 11:38:54 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.3 2018/08/27 07:40:11 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.4 2020/01/22 11:38:54 jmcneill Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.3 2018/08/27 07:40:11 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_gk104.c,v 1.4 2020/01/22 11:38:54 jmcneill Exp $"); #include "gk104.h" #include "changk104.h" @@ -752,6 +752,20 @@ gk104_fifo_init(struct nvkm_fifo *base) nvkm_wr32(device, 0x002254, 0x1000 | fifo->user.bar.offset >> 12); + /* XXX NetBSD + * write pbdma timeout regs during initialization + * backport of: + * https://github.com/torvalds/linux/commit/79bb4b617f965736d2e1c616235302c1d0e823b2 + */ + switch (device->chipset) { + case 0x106: /* GK208B */ + case 0x108: /* GK208 */ + case 0x117: /* GM107 */ + for (i = 0; i < fifo->spoon_nr; i++) + nvkm_wr32(device, 0x04012c + (i * 0x2000), 0x); + break; + } + nvkm_wr32(device, 0x002100, 0x); nvkm_wr32(device, 0x002140, 0x7fff); }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo
Module Name:src Committed By: jmcneill Date: Wed Jan 22 11:38:54 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo: nouveau_nvkm_engine_fifo_gk104.c Log Message: Write pbdma timeout regs during initialisation on GK208B, GK208, and GM107. Based on the following upstream commit: https://github.com/torvalds/linux/commit/79bb4b617f965736d2e1c616235302c1d0e823b2 To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_gk104.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device
Module Name:src Committed By: jmcneill Date: Fri Jan 17 19:13:25 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device: nouveau_nvkm_engine_device_pci.c Log Message: Enable the device on NetBSD too (don't rely on firmware to do it for us). To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c:1.8 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c:1.9 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c:1.8 Mon Aug 27 14:17:36 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c Fri Jan 17 19:13:25 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_engine_device_pci.c,v 1.8 2018/08/27 14:17:36 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_engine_device_pci.c,v 1.9 2020/01/17 19:13:25 jmcneill Exp $ */ /* * Copyright 2015 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_pci.c,v 1.8 2018/08/27 14:17:36 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_device_pci.c,v 1.9 2020/01/17 19:13:25 jmcneill Exp $"); #include #include "priv.h" @@ -1673,15 +1673,11 @@ nvkm_device_pci_new(struct pci_dev *pci_ const struct nvkm_device_pci_vendor *pciv; const char *name = NULL; struct nvkm_device_pci *pdev; -#ifndef __NetBSD__ int ret; -#endif -#ifndef __NetBSD__ - ret = pci_enable_device(pci_dev); + ret = linux_pci_enable_device(pci_dev); if (ret) return ret; -#endif switch (pci_dev->vendor) { case 0x10de: pcid = nvkm_device_pci_10de; break;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device
Module Name:src Committed By: jmcneill Date: Fri Jan 17 19:13:25 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device: nouveau_nvkm_engine_device_pci.c Log Message: Enable the device on NetBSD too (don't rely on firmware to do it for us). To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/device/nouveau_nvkm_engine_device_pci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif
Module Name:src Committed By: jmcneill Date: Sat Dec 7 13:31:41 UTC 2019 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif: os.h Log Message: Fix build for ports without __BUS_SPACE_HAS_STREAM_METHODS defined To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/os.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif
Module Name:src Committed By: jmcneill Date: Sat Dec 7 13:31:41 UTC 2019 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif: os.h Log Message: Fix build for ports without __BUS_SPACE_HAS_STREAM_METHODS defined To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/os.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/os.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/os.h:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/os.h:1.5 --- src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/os.h:1.4 Mon Aug 27 07:35:13 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/os.h Sat Dec 7 13:31:41 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: os.h,v 1.4 2018/08/27 07:35:13 riastradh Exp $ */ +/* $NetBSD: os.h,v 1.5 2019/12/07 13:31:41 jmcneill Exp $ */ #ifndef __NOUVEAU_OS_H__ #define __NOUVEAU_OS_H__ @@ -74,4 +74,14 @@ #endif /* !ioread32_native */ #endif +#ifdef __NetBSD__ +#include +#ifndef __BUS_SPACE_HAS_STREAM_METHODS +#define bus_space_read_stream_2 bus_space_read_2 +#define bus_space_read_stream_4 bus_space_read_4 +#define bus_space_write_stream_2 bus_space_write_2 +#define bus_space_write_stream_4 bus_space_write_4 +#endif +#endif + #endif
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: mrg Date: Mon Mar 18 02:01:41 UTC 2019 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_base.c Log Message: call destroy on a mutex before freeing it. fixes LOCKDEBUG assert on a GT 6xx card. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c:1.5 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c:1.4 Sat Sep 1 04:38:22 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c Mon Mar 18 02:01:41 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.4 2018/09/01 04:38:22 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.5 2019/03/18 02:01:41 mrg Exp $ */ /* * Copyright 2010 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.4 2018/09/01 04:38:22 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.5 2019/03/18 02:01:41 mrg Exp $"); #include "priv.h" @@ -528,6 +528,11 @@ nvkm_vm_del(struct kref *kref) nvkm_mm_fini(>mm); vfree(vm->pgt); +#ifdef __NetBSD__ + linux_mutex_destroy(>mutex); +#else + mutex_destroy(>mutex); +#endif kfree(vm); }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: mrg Date: Mon Mar 18 02:01:41 UTC 2019 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_base.c Log Message: call destroy on a mutex before freeing it. fixes LOCKDEBUG assert on a GT 6xx card. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk
Module Name:src Committed By: christos Date: Mon Feb 18 23:19:36 UTC 2019 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk: nouveau_nvkm_subdev_clk_gt215.c Log Message: remove multiplication as condition complaint To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.c:1.3 Mon Aug 27 03:38:56 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.c Mon Feb 18 18:19:36 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_clk_gt215.c,v 1.3 2018/08/27 07:38:56 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_clk_gt215.c,v 1.4 2019/02/18 23:19:36 christos Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ * Roy Spliet */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_clk_gt215.c,v 1.3 2018/08/27 07:38:56 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_clk_gt215.c,v 1.4 2019/02/18 23:19:36 christos Exp $"); #define gt215_clk(p) container_of((p), struct gt215_clk, base) #include "gt215.h" @@ -135,8 +135,9 @@ read_pll(struct gt215_clk *clk, int idx, sclk = read_clk(clk, 0x10 + idx, false); } - if (M * P) - return sclk * N / (M * P); + u32 mp = M * P; + if (mp != 0) + return sclk * N / mp; return 0; }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk
Module Name:src Committed By: christos Date: Mon Feb 18 23:19:36 UTC 2019 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk: nouveau_nvkm_subdev_clk_gt215.c Log Message: remove multiplication as condition complaint To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gt215.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core
Module Name:src Committed By: mrg Date: Tue Jan 8 05:57:34 UTC 2019 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core: nouveau_nvkm_core_option.c Log Message: revert this commit: >date: 2018-08-27 07:19:47 -0700; author: riastradh; state: Exp; lines: +2 >-0; commitid: 9o7sY7hwNGx6zLPA; >For now, unconditionally set nouveau verbosity to debug. nouveau works mostly again now, and the debug output is very verbose. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.c:1.3 Mon Aug 27 14:19:47 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.c Tue Jan 8 05:57:34 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_core_option.c,v 1.3 2018/08/27 14:19:47 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_core_option.c,v 1.4 2019/01/08 05:57:34 mrg Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_option.c,v 1.3 2018/08/27 14:19:47 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_core_option.c,v 1.4 2019/01/08 05:57:34 mrg Exp $"); #include #include @@ -101,8 +101,6 @@ nvkm_dbgopt(const char *optstr, const ch { int mode = 1, level = CONFIG_NOUVEAU_DEBUG_DEFAULT; - return NV_DBG_DEBUG; - while (optstr) { int len = strcspn(optstr, ",="); switch (optstr[len]) {
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core
Module Name:src Committed By: mrg Date: Tue Jan 8 05:57:34 UTC 2019 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core: nouveau_nvkm_core_option.c Log Message: revert this commit: >date: 2018-08-27 07:19:47 -0700; author: riastradh; state: Exp; lines: +2 >-0; commitid: 9o7sY7hwNGx6zLPA; >For now, unconditionally set nouveau verbosity to debug. nouveau works mostly again now, and the debug output is very verbose. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/core/nouveau_nvkm_core_option.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: maya Date: Wed Dec 19 09:20:56 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_base.c Log Message: Disable MSI/MSI-X for nouveau. Fixes functionality for me (GTX 770) and apparently anyone with MSI/MSI-X capable hardware. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c:1.3 Mon Aug 27 07:40:40 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Wed Dec 19 09:20:56 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.3 2018/08/27 07:40:40 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.4 2018/12/19 09:20:56 maya Exp $ */ /* * Copyright 2015 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.3 2018/08/27 07:40:40 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.4 2018/12/19 09:20:56 maya Exp $"); #include "priv.h" #include "agp.h" @@ -142,9 +142,14 @@ nvkm_pci_init(struct nvkm_subdev *subdev #ifdef __NetBSD__ { const struct pci_attach_args *pa = >pd_pa; + int counts[PCI_INTR_TYPE_SIZE] = { + [PCI_INTR_TYPE_INTX] = 1, + [PCI_INTR_TYPE_MSI] = 0, + [PCI_INTR_TYPE_MSIX] = 0, + }; /* XXX errno NetBSD->Linux */ - ret = -pci_intr_alloc(pa, >pci_ihp, NULL, 0); + ret = -pci_intr_alloc(pa, >pci_ihp, counts, PCI_INTR_TYPE_INTX); if (ret) return ret; pci->pci_intrcookie = pci_intr_establish_xname(pa->pa_pc,
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: maya Date: Wed Dec 19 09:20:56 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_base.c Log Message: Disable MSI/MSI-X for nouveau. Fixes functionality for me (GTX 770) and apparently anyone with MSI/MSI-X capable hardware. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: christos Date: Mon Oct 8 17:58:52 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_bo.c Log Message: comment out unused function (clang) To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.12 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.13 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c:1.12 Mon Aug 27 11:22:54 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c Mon Oct 8 13:58:52 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_bo.c,v 1.12 2018/08/27 15:22:54 riastradh Exp $ */ +/* $NetBSD: nouveau_bo.c,v 1.13 2018/10/08 17:58:52 christos Exp $ */ /* * Copyright 2007 Dave Airlied @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_bo.c,v 1.12 2018/08/27 15:22:54 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_bo.c,v 1.13 2018/10/08 17:58:52 christos Exp $"); #include #include @@ -543,6 +543,7 @@ nouveau_bo_validate(struct nouveau_bo *n # define iowrite16_native fake_iowrite16_native # define iowrite32_native fake_iowrite32_native +#ifdef notdef static inline uint16_t ioread16_native(const void __iomem *ptr) { @@ -553,6 +554,7 @@ ioread16_native(const void __iomem *ptr) return v; } +#endif static inline uint32_t ioread32_native(const void __iomem *ptr)
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: christos Date: Mon Oct 8 17:58:52 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_bo.c Log Message: comment out unused function (clang) To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_bo.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo
Module Name:src Committed By: pgoyette Date: Sun Sep 9 03:12:51 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo: nouveau_nvkm_engine_fifo_chan.c Log Message: Yet another diagused To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.8 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.9 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c:1.8 Mon Aug 27 14:54:33 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c Sun Sep 9 03:12:51 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.8 2018/08/27 14:54:33 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.9 2018/09/09 03:12:51 pgoyette Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.8 2018/08/27 14:54:33 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_engine_fifo_chan.c,v 1.9 2018/09/09 03:12:51 pgoyette Exp $"); #include "chan.h" @@ -480,7 +480,8 @@ nvkm_fifo_chan_ctor(const struct nvkm_fi bus_space_tag_t mmiot = device->mmiot; bus_space_handle_t mmioh = device->mmioh; bus_size_t mmiosz = device->mmiosz; - bus_addr_t mmioaddr = device->func->resource_addr(device, bar); + __diagused bus_addr_t mmioaddr = + device->func->resource_addr(device, bar); /* Check whether it lies inside the region. */ if (mmiosz < base ||
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo
Module Name:src Committed By: pgoyette Date: Sun Sep 9 03:12:51 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo: nouveau_nvkm_engine_fifo_chan.c Log Message: Yet another diagused To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/fifo/nouveau_nvkm_engine_fifo_chan.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: pgoyette Date: Sun Sep 9 03:10:03 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_nvif.c Log Message: Another __diagused OK riastradh@ To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau
Module Name:src Committed By: pgoyette Date: Sun Sep 9 03:10:03 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_nvif.c Log Message: Another __diagused OK riastradh@ To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c:1.5 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c:1.4 Mon Aug 27 14:47:53 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nvif.c Sun Sep 9 03:10:03 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvif.c,v 1.4 2018/08/27 14:47:53 riastradh Exp $ */ +/* $NetBSD: nouveau_nvif.c,v 1.5 2018/09/09 03:10:03 pgoyette Exp $ */ /* * Copyright 2014 Red Hat Inc. @@ -29,7 +29,7 @@ **/ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvif.c,v 1.4 2018/08/27 14:47:53 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvif.c,v 1.5 2018/09/09 03:10:03 pgoyette Exp $"); #include #include @@ -90,7 +90,7 @@ nvkm_client_unmap(void *priv, bus_space_ if (tag == client->mmiot && client->mmioaddr <= busaddr && busaddr - client->mmioaddr <= client->mmiosz) { - const bus_size_t offset = busaddr - client->mmioaddr; + __diagused const bus_size_t offset = busaddr - client->mmioaddr; KASSERT(size <= client->mmiosz - offset); /* Nothing to do to release a subregion. */ return;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: riastradh Date: Sat Sep 1 04:38:22 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_base.c Log Message: Destroy mutex before freeing memory. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c:1.3 Mon Aug 27 07:41:19 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c Sat Sep 1 04:38:22 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.3 2018/08/27 07:41:19 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.4 2018/09/01 04:38:22 riastradh Exp $ */ /* * Copyright 2010 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.3 2018/08/27 07:41:19 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.4 2018/09/01 04:38:22 riastradh Exp $"); #include "priv.h" @@ -436,6 +436,11 @@ nvkm_vm_create(struct nvkm_mmu *mmu, u64 vm->pgt = vzalloc((vm->lpde - vm->fpde + 1) * sizeof(*vm->pgt)); if (!vm->pgt) { +#ifdef __NetBSD__ + linux_mutex_destroy(>mutex); +#else + mutex_destroy(>mutex); +#endif kfree(vm); return -ENOMEM; } @@ -444,6 +449,11 @@ nvkm_vm_create(struct nvkm_mmu *mmu, u64 block >> 12); if (ret) { vfree(vm->pgt); +#ifdef __NetBSD__ + linux_mutex_destroy(>mutex); +#else + mutex_destroy(>mutex); +#endif kfree(vm); return ret; }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: riastradh Date: Sat Sep 1 04:38:22 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_base.c Log Message: Destroy mutex before freeing memory. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.