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/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/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/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/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/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/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.
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/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/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/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/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.
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Wed Aug 29 15:52:27 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_nv40.c Log Message: No, this cannot be bar 0 -- it is bar 2 or bar 3, as shown above. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ 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.6 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.7 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.6 Wed Aug 29 15:46:31 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c Wed Aug 29 15:52:27 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.6 2018/08/29 15:46:31 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.7 2018/08/29 15:52:27 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.6 2018/08/29 15:46:31 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.7 2018/08/29 15:52:27 riastradh Exp $"); #define nv40_instmem(p) container_of((p), struct nv40_instmem, base) #include "priv.h" @@ -294,7 +294,6 @@ nv40_instmem_new(struct nvkm_device *dev bus_size_t iomemsz; int ret; - /* XXX Can this be BAR 0, for which we need a subregion? */ imem->iomemt = device->func->resource_tag(device, bar); iomembase = device->func->resource_addr(device, bar); iomemsz = device->func->resource_size(device, bar);
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Wed Aug 29 15:52:27 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_nv40.c Log Message: No, this cannot be bar 0 -- it is bar 2 or bar 3, as shown above. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ 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/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Wed Aug 29 15:46:31 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_nv40.c Log Message: Let's try not to use uninitialized memory as a bus size, shall we? >From rjs@. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 \ 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.5 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.6 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c:1.5 Mon Aug 27 14:51:55 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv40.c Wed Aug 29 15:46:31 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.5 2018/08/27 14:51:55 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.6 2018/08/29 15:46:31 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.5 2018/08/27 14:51:55 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv40.c,v 1.6 2018/08/29 15:46:31 riastradh Exp $"); #define nv40_instmem(p) container_of((p), struct nv40_instmem, base) #include "priv.h" @@ -299,7 +299,7 @@ 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 */ - ret = -bus_space_map(imem->iomemt, iomembase, imem->iomemsz, + ret = -bus_space_map(imem->iomemt, iomembase, iomemsz, BUS_SPACE_MAP_LINEAR, >iomemh); if (ret) { nvkm_error(>base.subdev, "unable to map PRAMIN BAR %d"
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Wed Aug 29 15:46:31 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_nv40.c Log Message: Let's try not to use uninitialized memory as a bus size, shall we? >From rjs@. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 \ 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/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Mon Aug 27 14:18:18 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_nv50.c Log Message: Don't forget to add the base address. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv50.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_nv50.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv50.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv50.c:1.5 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv50.c:1.4 Mon Aug 27 07:36:28 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv50.c Mon Aug 27 14:18:18 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_instmem_nv50.c,v 1.4 2018/08/27 07:36:28 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_instmem_nv50.c,v 1.5 2018/08/27 14:18:18 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv50.c,v 1.4 2018/08/27 07:36:28 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv50.c,v 1.5 2018/08/27 14:18:18 riastradh Exp $"); #define nv50_instmem(p) container_of((p), struct nv50_instmem, base) #include "priv.h" @@ -98,12 +98,13 @@ nv50_instobj_boot(struct nvkm_memory *me if (ret == 0) { #ifdef __NetBSD__ bus_space_tag_t bst = device->func->resource_tag(device, 3); + bus_addr_t base = device->func->resource_addr(device, 3); bus_space_handle_t bsh; int ret; /* Yes, truncation is really intended here. */ /* XXX errno NetBSD->Linux */ - ret = -bus_space_map(bst, (u32)iobj->bar.offset, size, + ret = -bus_space_map(bst, base + (u32)iobj->bar.offset, size, BUS_SPACE_MAP_LINEAR, ); if (ret == 0) { nvkm_memory_map(memory, >bar, 0);
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk
Module Name:src Committed By: riastradh Date: Mon Aug 27 14:17:50 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk: nouveau_nvkm_subdev_clk_base.c Log Message: This can happen while cold. Wait up to 100ms for it. 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_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: Mon Aug 27 14:18:18 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_nv50.c Log Message: Don't forget to add the base address. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv50.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: riastradh Date: Mon Aug 27 14:17:50 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk: nouveau_nvkm_subdev_clk_base.c Log Message: This can happen while cold. Wait up to 100ms for it. 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_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/clk/nouveau_nvkm_subdev_clk_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_base.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_base.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_base.c:1.3 Mon Aug 27 07:43:06 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_base.c Mon Aug 27 14:17:50 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_clk_base.c,v 1.3 2018/08/27 07:43:06 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_clk_base.c,v 1.4 2018/08/27 14:17:50 riastradh Exp $ */ /* * Copyright 2013 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_clk_base.c,v 1.3 2018/08/27 07:43:06 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_clk_base.c,v 1.4 2018/08/27 14:17:50 riastradh Exp $"); #include "priv.h" @@ -258,6 +258,15 @@ nvkm_pstate_calc(struct nvkm_clk *clk, b schedule_work(>work); if (wait) { #ifdef __NetBSD__ + if (cold) { + unsigned timo = 1000; + while (timo --> 0) { +if (atomic_read(>waiting)) + return 0; +DELAY(100); + } + return -ETIMEDOUT; + } int ret; spin_lock(>lock); DRM_SPIN_WAIT_NOINTR_UNTIL(ret, >wait, >lock,
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:42:03 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios: nouveau_nvkm_subdev_bios_shadowpci.c Log Message: No arithmetic on void *. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowpci.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/bios/nouveau_nvkm_subdev_bios_shadowpci.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowpci.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowpci.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowpci.c:1.2 Mon Aug 27 04:58:33 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowpci.c Mon Aug 27 07:42:02 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_bios_shadowpci.c,v 1.2 2018/08/27 04:58:33 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_bios_shadowpci.c,v 1.3 2018/08/27 07:42:02 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -23,7 +23,7 @@ * */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_bios_shadowpci.c,v 1.2 2018/08/27 04:58:33 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_bios_shadowpci.c,v 1.3 2018/08/27 07:42:02 riastradh Exp $"); #include "priv.h" @@ -44,7 +44,8 @@ pcirom_read(void *data, u32 offset, u32 { struct priv *priv = data; if (offset + length <= priv->size) { - memcpy_fromio(bios->data + offset, priv->rom + offset, length); + memcpy_fromio(bios->data + offset, + (const char __iomem *)priv->rom + offset, length); return length; } return 0;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:42:03 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios: nouveau_nvkm_subdev_bios_shadowpci.c Log Message: No arithmetic on void *. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadowpci.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: Mon Aug 27 07:40:50 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_agp.c Log Message: Translate agp_info accents. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_agp.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: Mon Aug 27 07:41:19 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_base.c Log Message: Rename things (a) to reflect upstream change, (b) to reduce patches. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ 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: riastradh Date: Mon Aug 27 07:41:29 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk: nouveau_nvkm_subdev_clk_gk20a.c Log Message: Wrong type for do_div. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_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/mmu
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:41:19 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_base.c Log Message: Rename things (a) to reflect upstream change, (b) to reduce patches. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ 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.2 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.2 Mon Aug 27 04:58:34 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_base.c Mon Aug 27 07:41:19 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.3 2018/08/27 07:41:19 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.2 2018/08/27 04:58:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_base.c,v 1.3 2018/08/27 07:41:19 riastradh Exp $"); #include "priv.h" @@ -78,7 +78,7 @@ nvkm_vm_map_at(struct nvkm_vma *vma, u64 #ifdef __NetBSD__ static void -nvkm_vm_map_dma(struct nvkm_vma *vma, u64 delta, u64 length, +nvkm_vm_map_sg(struct nvkm_vma *vma, u64 delta, u64 length, struct nvkm_mem *mem) { struct nvkm_vm *vm = vma->vm; @@ -93,7 +93,7 @@ nvkm_vm_map_dma(struct nvkm_vma *vma, u6 unsigned seg, pgoff; for (seg = 0; seg < mem->pages->dm_nsegs; seg++) { - struct nvkm_memory *pgt = vm->pgt[pde].obj[big]; + struct nvkm_memory *pgt = vm->pgt[pde].mem[big]; dma_addr_t addr = mem->pages->dm_segs[seg].ds_addr; KASSERT((mem->pages->dm_segs[seg].ds_len & NOUVEAU_GPU_PAGE_MASK) == 0); @@ -220,20 +220,15 @@ nvkm_vm_map_sg(struct nvkm_vma *vma, u64 void nvkm_vm_map(struct nvkm_vma *vma, struct nvkm_mem *node) { -#ifdef __NetBSD__ - if (node->pages) - nvkm_vm_map_dma(vma, 0, node->size << 12, node); - else - nvkm_vm_map_at(vma, 0, node); -#else +#ifndef __NetBSD__ if (node->sg) nvkm_vm_map_sg_table(vma, 0, node->size << 12, node); else +#endif if (node->pages) nvkm_vm_map_sg(vma, 0, node->size << 12, node); else nvkm_vm_map_at(vma, 0, node); -#endif } void
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:41:00 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm: nouveau_nvkm_subdev_mxm_mxms.c Log Message: Say no to sprintf! To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_mxms.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/mxm/nouveau_nvkm_subdev_mxm_mxms.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_mxms.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_mxms.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_mxms.c:1.2 Mon Aug 27 04:58:34 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_mxms.c Mon Aug 27 07:41:00 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_mxm_mxms.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_mxm_mxms.c,v 1.3 2018/08/27 07:41:00 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mxm_mxms.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mxm_mxms.c,v 1.3 2018/08/27 07:41:00 riastradh Exp $"); #include "mxms.h" @@ -160,13 +160,15 @@ mxms_foreach(struct nvkm_mxm *mxm, u8 ty int i, j; for (j = headerlen - 1, ptr = data; j >= 0; j--) -ptr += sprintf(ptr, "%02x", dump[j]); +ptr += snprintf(ptr, sizeof data - (ptr - data), +"%02x", dump[j]); dump += headerlen; nvkm_debug(subdev, "%4s: %s\n", mxms_desc[type], data); for (i = 0; i < entries; i++, dump += recordlen) { for (j = recordlen - 1, ptr = data; j >= 0; j--) - ptr += sprintf(ptr, "%02x", dump[j]); + ptr += snprintf(ptr, sizeof data - + (ptr - data), "%02x", dump[j]); nvkm_debug(subdev, " %s\n", data); } }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:41:09 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_nv44.c Log Message: Find lost semicolon. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ 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/subdev/mmu
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:41:09 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu: nouveau_nvkm_subdev_mmu_nv44.c Log Message: Find lost semicolon. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ 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/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.2 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.2 Mon Aug 27 04:58:34 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mmu/nouveau_nvkm_subdev_mmu_nv44.c Mon Aug 27 07:41:09 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_mmu_nv44.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_mmu_nv44.c,v 1.3 2018/08/27 07:41:09 riastradh 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.2 2018/08/27 04:58:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_mmu_nv44.c,v 1.3 2018/08/27 07:41:09 riastradh Exp $"); #include "nv04.h" @@ -207,7 +207,7 @@ fail3: __unused bus_dmamem_unmap(dmat, m goto fail2; } mmu->null = mmu->nullmap->dm_segs[0].ds_addr; -} while (0) +} while (0); #else mmu->nullp = dma_alloc_coherent(device->dev, 16 * 1024, >null, GFP_KERNEL);
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:40:40 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_base.c Log Message: Simplify with DRM_IRQ_ARGS, fix typo, ifdef out unnecessary stuff. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ 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.2 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.2 Mon Aug 27 04:58:34 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_base.c Mon Aug 27 07:40:40 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.3 2018/08/27 07:40:40 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.2 2018/08/27 04:58:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_base.c,v 1.3 2018/08/27 07:40:40 riastradh Exp $"); #include "priv.h" #include "agp.h" @@ -70,13 +70,8 @@ nvkm_pci_rom_shadow(struct nvkm_pci *pci nvkm_pci_wr32(pci, 0x0050, data); } -#ifdef __NetBSD__ -static int -nvkm_pci_intr(void *arg) -#else static irqreturn_t -nvkm_pci_intr(int irq, void *arg) -#endif +nvkm_pci_intr(DRM_IRQ_ARGS) { struct nvkm_pci *pci = arg; struct nvkm_mc *mc = pci->subdev.device->mc; @@ -149,7 +144,7 @@ nvkm_pci_init(struct nvkm_subdev *subdev const struct pci_attach_args *pa = >pd_pa; /* XXX errno NetBSD->Linux */ - ret = -pci_intr_alloc(pa, >pci_ih, NULL, 0); + ret = -pci_intr_alloc(pa, >pci_ihp, NULL, 0); if (ret) return ret; pci->pci_intrcookie = pci_intr_establish_xname(pa->pa_pc, @@ -162,9 +157,9 @@ nvkm_pci_init(struct nvkm_subdev *subdev ret = request_irq(pdev->irq, nvkm_pci_intr, IRQF_SHARED, "nvkm", pci); if (ret) return ret; -#endif pci->irq = pdev->irq; +#endif /* Ensure MSI interrupts are armed, for the case where there are * already interrupts pending (for whatever reason) at load time. @@ -204,7 +199,9 @@ nvkm_pci_new_(const struct nvkm_pci_func nvkm_subdev_ctor(_pci_func, device, index, 0, >subdev); pci->func = func; pci->pdev = device->func->pci(device)->pdev; +#ifndef __NetBSD__ pci->irq = -1; +#endif if (device->type == NVKM_DEVICE_AGP) nvkm_agp_ctor(pci);
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:40:50 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_agp.c Log Message: Translate agp_info accents. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_agp.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_agp.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_agp.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_agp.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_agp.c:1.2 Mon Aug 27 04:58:34 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci/nouveau_nvkm_subdev_pci_agp.c Mon Aug 27 07:40:50 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_pci_agp.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_pci_agp.c,v 1.3 2018/08/27 07:40:50 riastradh Exp $ */ /* * Copyright 2015 Nouveau Project @@ -22,7 +22,7 @@ * OTHER DEALINGS IN THE SOFTWARE. */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_agp.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_pci_agp.c,v 1.3 2018/08/27 07:40:50 riastradh Exp $"); #include "agp.h" #ifdef __NVKM_PCI_AGP_H__ @@ -137,16 +137,30 @@ nvkm_agp_ctor(struct nvkm_pci *pci) agp_copy_info(pci->agp.bridge, ); agp_backend_release(pci->agp.bridge); +#ifdef __NetBSD__ + pci->agp.mode = info.aki_info.ai_mode; + pci->agp.base = info.aki_info.ai_aperture_base; + pci->agp.size = info.aki_info.ai_aperture_size; + pci->agp.cma = !info.aki_info.ai_memory_allowed; /* XXX ? */ +#else pci->agp.mode = info.mode; pci->agp.base = info.aper_base; pci->agp.size = info.aper_size * 1024 * 1024; pci->agp.cma = info.cant_use_aperture; +#endif pci->agp.mtrr = -1; /* determine if bridge + chipset combination needs a workaround */ while (quirk->hostbridge_vendor) { - if (info.device->vendor == quirk->hostbridge_vendor && - info.device->device == quirk->hostbridge_device && +#ifdef __NetBSD__ + uint16_t vendor = PCI_VENDOR(info.aki_info.ai_devid); + uint16_t product = PCI_PRODUCT(info.aki_info.ai_devid); +#else + uint16_t vendor = info.device->vendor; + uint16_t product = info.device->device; +#endif + if (vendor == quirk->hostbridge_vendor && + product == quirk->hostbridge_device && (quirk->chip_vendor == (u16)PCI_ANY_ID || pci->pdev->vendor == quirk->chip_vendor) && (quirk->chip_device == (u16)PCI_ANY_ID ||
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:41:29 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk: nouveau_nvkm_subdev_clk_gk20a.c Log Message: Wrong type for do_div. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_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/clk/nouveau_nvkm_subdev_clk_gk20a.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gk20a.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gk20a.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gk20a.c:1.2 Mon Aug 27 04:58:33 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/clk/nouveau_nvkm_subdev_clk_gk20a.c Mon Aug 27 07:41:29 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_clk_gk20a.c,v 1.2 2018/08/27 04:58:33 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_clk_gk20a.c,v 1.3 2018/08/27 07:41:29 riastradh Exp $ */ /* * Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved. @@ -25,7 +25,7 @@ * */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_clk_gk20a.c,v 1.2 2018/08/27 04:58:33 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_clk_gk20a.c,v 1.3 2018/08/27 07:41:29 riastradh Exp $"); #define gk20a_clk(p) container_of((p), struct gk20a_clk, base) #include "priv.h" @@ -141,7 +141,7 @@ gk20a_pllg_read_mnp(struct gk20a_clk *cl static u32 gk20a_pllg_calc_rate(struct gk20a_clk *clk) { - u32 rate; + u64 rate; u32 divider; rate = clk->parent_rate * clk->n;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:40:22 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb: gf100.h nouveau_nvkm_subdev_fb_gf100.c nouveau_nvkm_subdev_fb_nv50.c nv50.h Log Message: Name members judiciously to avoid unnecessary ifdefs/patches. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/gf100.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/nouveau_nvkm_subdev_fb_gf100.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/nouveau_nvkm_subdev_fb_nv50.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/nv50.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/fb/gf100.h diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/gf100.h:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/gf100.h:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/gf100.h:1.2 Mon Aug 27 04:58:33 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/gf100.h Mon Aug 27 07:40:22 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: gf100.h,v 1.2 2018/08/27 04:58:33 riastradh Exp $ */ +/* $NetBSD: gf100.h,v 1.3 2018/08/27 07:40:22 riastradh Exp $ */ #ifndef __NVKM_RAM_NVC0_H__ #define __NVKM_RAM_NVC0_H__ @@ -9,12 +9,12 @@ struct gf100_fb { struct nvkm_fb base; #ifdef __NetBSD__ bus_dma_segment_t r100c10_seg; - bus_dmamap_t r100c10_map; + bus_dmamap_t r100c10_page; void *r100c10_kva; #else struct page *r100c10_page; - dma_addr_t r100c10; #endif + dma_addr_t r100c10; }; int gf100_fb_new_(const struct nvkm_fb_func *, struct nvkm_device *, Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/nouveau_nvkm_subdev_fb_gf100.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/nouveau_nvkm_subdev_fb_gf100.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/nouveau_nvkm_subdev_fb_gf100.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/nouveau_nvkm_subdev_fb_gf100.c:1.2 Mon Aug 27 04:58:33 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/nouveau_nvkm_subdev_fb_gf100.c Mon Aug 27 07:40:22 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_fb_gf100.c,v 1.2 2018/08/27 04:58:33 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_fb_gf100.c,v 1.3 2018/08/27 07:40:22 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_fb_gf100.c,v 1.2 2018/08/27 04:58:33 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_fb_gf100.c,v 1.3 2018/08/27 07:40:22 riastradh Exp $"); #include "gf100.h" #include "ram.h" @@ -57,13 +57,8 @@ gf100_fb_init(struct nvkm_fb *base) struct gf100_fb *fb = gf100_fb(base); struct nvkm_device *device = fb->base.subdev.device; -#ifdef __NetBSD__ - if (fb->r100c10_map) - nvkm_wr32(device, 0x100c10, fb->r100c10 >> 8); -#else if (fb->r100c10_page) nvkm_wr32(device, 0x100c10, fb->r100c10 >> 8); -#endif nvkm_mask(device, 0x100c80, 0x0001, 0x); /* 128KiB lpg */ } @@ -74,23 +69,21 @@ gf100_fb_dtor(struct nvkm_fb *base) struct gf100_fb *fb = gf100_fb(base); struct nvkm_device *device = fb->base.subdev.device; + if (fb->r100c10_page) { #ifdef __NetBSD__ - if (fb->r100c10_map) { const bus_dma_tag_t dmat = device->func->dma_tag(device); - bus_dmamap_unload(dmat, fb->r100c10_map); + bus_dmamap_unload(dmat, fb->r100c10_page); bus_dmamem_unmap(dmat, fb->r100c10_kva, PAGE_SIZE); - bus_dmamap_destroy(dmat, fb->r100c10_map); + bus_dmamap_destroy(dmat, fb->r100c10_page); bus_dmamem_free(dmat, >r100c10_seg, 1); - fb->r100c10_map = NULL; - } + fb->r100c10_page = NULL; #else - if (fb->r100c10_page) { dma_unmap_page(device->dev, fb->r100c10, PAGE_SIZE, DMA_BIDIRECTIONAL); __free_page(fb->r100c10_page); - } #endif + } return fb; } @@ -110,8 +103,9 @@ gf100_fb_new_(const struct nvkm_fb_func { const bus_dma_tag_t dmat = device->func->dma_tag(device); int nsegs; + int ret; - fb->r100c10_map = NULL; /* paranoia */ + fb->r100c10_page = NULL; /* paranoia */ fb->r100c10_kva = NULL; /* XXX errno NetBSD->Linux */ @@ -123,7 +117,7 @@ fail0: return ret; /* XXX errno NetBSD->Linux */ ret = -bus_dmamap_create(dmat, PAGE_SIZE, 1, PAGE_SIZE, 0, - BUS_DMA_WAITOK, >r100c10_map); + BUS_DMA_WAITOK, >r100c10_page); if (ret) { fail1: bus_dmamem_free(dmat, >r100c10_seg, 1); goto fail0; @@ -133,20 +127,20 @@ fail1: bus_dmamem_free(dmat, >r100c ret = -bus_dmamem_map(dmat, >r100c10_seg, 1, PAGE_SIZE, >r100c10_kva, BUS_DMA_WAITOK); if (ret) { -fail2: bus_dmamap_destroy(dmat, fb->r100c10_map); +fail2: bus_dmamap_destroy(dmat, fb->r100c10_page);
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:40:22 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb: gf100.h nouveau_nvkm_subdev_fb_gf100.c nouveau_nvkm_subdev_fb_nv50.c nv50.h Log Message: Name members judiciously to avoid unnecessary ifdefs/patches. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/gf100.h \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/nouveau_nvkm_subdev_fb_gf100.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/nouveau_nvkm_subdev_fb_nv50.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/fb/nv50.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/nvkm/subdev/therm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:40:31 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/therm: nouveau_nvkm_subdev_therm_temp.c Log Message: Unfix a typo. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/therm/nouveau_nvkm_subdev_therm_temp.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/therm/nouveau_nvkm_subdev_therm_temp.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/therm/nouveau_nvkm_subdev_therm_temp.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/therm/nouveau_nvkm_subdev_therm_temp.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/therm/nouveau_nvkm_subdev_therm_temp.c:1.2 Mon Aug 27 04:58:35 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/therm/nouveau_nvkm_subdev_therm_temp.c Mon Aug 27 07:40:31 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_therm_temp.c,v 1.2 2018/08/27 04:58:35 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_therm_temp.c,v 1.3 2018/08/27 07:40:31 riastradh Exp $ */ /* * Copyright 2012 The Nouveau community @@ -24,7 +24,7 @@ * Authors: Martin Peres */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_therm_temp.c,v 1.2 2018/08/27 04:58:35 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_therm_temp.c,v 1.3 2018/08/27 07:40:31 riastradh Exp $"); #include "priv.h" @@ -93,7 +93,7 @@ nvkm_therm_sensor_event(struct nvkm_ther }; int temperature = therm->func->temp_get(therm); - if ((unsigned)thrs >= __arraycount(thresholds)) + if ((unsigned)thrs >= __arraycount(thresolds)) return; if (dir == NVKM_THERM_THRS_FALLING)
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:40:40 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/pci: nouveau_nvkm_subdev_pci_base.c Log Message: Simplify with DRM_IRQ_ARGS, fix typo, ifdef out unnecessary stuff. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ 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/therm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:40:31 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/therm: nouveau_nvkm_subdev_therm_temp.c Log Message: Unfix a typo. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/therm/nouveau_nvkm_subdev_therm_temp.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/mxm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:41:00 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm: nouveau_nvkm_subdev_mxm_mxms.c Log Message: Say no to sprintf! To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/mxm/nouveau_nvkm_subdev_mxm_mxms.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/bios
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:37:58 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios: nouveau_nvkm_subdev_bios_shadow.c Log Message: Need __UNCONST for this abstraction, will pass to release_firmware. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadow.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/bios/nouveau_nvkm_subdev_bios_shadow.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadow.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadow.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadow.c:1.2 Mon Aug 27 04:58:33 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadow.c Mon Aug 27 07:37:58 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_bios_shadow.c,v 1.2 2018/08/27 04:58:33 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_bios_shadow.c,v 1.3 2018/08/27 07:37:58 riastradh Exp $ */ /* * Copyright 2014 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_bios_shadow.c,v 1.2 2018/08/27 04:58:33 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_bios_shadow.c,v 1.3 2018/08/27 07:37:58 riastradh Exp $"); #include "priv.h" @@ -156,7 +156,7 @@ shadow_fw_init(struct nvkm_bios *bios, c int ret = request_firmware(, name, dev); if (ret) return ERR_PTR(-ENOENT); - return (void *)fw; + return __UNCONST(fw); } static const struct nvbios_source
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:37:58 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios: nouveau_nvkm_subdev_bios_shadow.c Log Message: Need __UNCONST for this abstraction, will pass to release_firmware. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/bios/nouveau_nvkm_subdev_bios_shadow.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: Mon Aug 27 07:36:37 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_gk20a.c Log Message: Rewrite DMA/IOMMU stuff using bus_dma for gk20a. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ 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.3 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c:1.3 Mon Aug 27 07:36:28 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_gk20a.c Mon Aug 27 07:36:37 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_instmem_gk20a.c,v 1.3 2018/08/27 07:36:28 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_instmem_gk20a.c,v 1.4 2018/08/27 07:36:37 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.3 2018/08/27 07:36:28 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_gk20a.c,v 1.4 2018/08/27 07:36:37 riastradh Exp $"); #include "priv.h" @@ -69,6 +69,20 @@ struct gk20a_instobj { }; #define gk20a_instobj(p) container_of((p), struct gk20a_instobj, memory) +#ifdef __NetBSD__ + +struct gk20a_instobj_netbsd { + struct gk20a_instobj base; + + bus_dma_segment_t *segs; + int nsegs; + bus_dmamap_t map; +}; +#define gk20a_instobj_netbsd(p) \ + container_of(gk20a_instobj(p), struct gk20a_instobj_netbsd, base) + +#else + /* * Used for objects allocated using the DMA API */ @@ -96,6 +110,8 @@ struct gk20a_instobj_iommu { #define gk20a_instobj_iommu(p) \ container_of(gk20a_instobj(p), struct gk20a_instobj_iommu, base) +#endif /* __NetBSD__ */ + struct gk20a_instmem { struct nvkm_instmem base; @@ -107,6 +123,7 @@ struct gk20a_instmem { unsigned int vaddr_max; struct list_head vaddr_lru; +#ifndef __NetBSD__ /* Only used if IOMMU if present */ struct mutex *mm_mutex; struct nvkm_mm *mm; @@ -116,6 +133,7 @@ struct gk20a_instmem { /* Only used by DMA API */ struct dma_attrs attrs; +#endif void __iomem * (*cpu_map)(struct nvkm_memory *); }; @@ -139,6 +157,39 @@ gk20a_instobj_size(struct nvkm_memory *m return (u64)gk20a_instobj(memory)->mem.size << 12; } +#ifdef __NetBSD__ + +static void __iomem * +gk20a_instobj_cpu_map_netbsd(struct nvkm_memory *memory) +{ + struct gk20a_instobj_netbsd *node = gk20a_instobj_netbsd(memory); + struct nvkm_device *device = node->base.imem->base.subdev.device; + bus_dma_tag_t dmat = device->func->dma_tag(device); + uint64_t nbytes = nvkm_memory_size(memory); + void *kva; + int ret; + + /* XXX errno NetBSD->Linux */ + ret = -bus_dmamem_map(dmat, node->segs, node->nsegs, nbytes, , + BUS_DMA_WAITOK); + if (ret) + return NULL; + + return kva; +} + +static void +gk20a_instobj_cpu_unmap_netbsd(struct nvkm_memory *memory, void *kva) +{ + struct gk20a_instobj_netbsd *node = gk20a_instobj_netbsd(memory); + struct nvkm_device *device = node->base.imem->base.subdev.device; + bus_dma_tag_t dmat = device->func->dma_tag(device); + + bus_dmamem_unmap(dmat, kva, nvkm_memory_size(memory)); +} + +#else + static void __iomem * gk20a_instobj_cpu_map_dma(struct nvkm_memory *memory) { @@ -172,6 +223,8 @@ gk20a_instobj_cpu_map_iommu(struct nvkm_ pgprot_writecombine(PAGE_KERNEL)); } +#endif /* __NetBSD__ */ + /* * Must be called while holding gk20a_instmem_lock */ @@ -188,7 +241,11 @@ gk20a_instmem_vaddr_gc(struct gk20a_inst obj = list_first_entry(>vaddr_lru, struct gk20a_instobj, vaddr_node); list_del(>vaddr_node); +#ifdef __NetBSD__ + gk20a_instobj_cpu_unmap_netbsd(>memory, obj->vaddr); +#else vunmap(obj->vaddr); +#endif obj->vaddr = NULL; imem->vaddr_use -= nvkm_memory_size(>memory); nvkm_debug(>base.subdev, "(GC) vaddr used: %x/%x\n", @@ -302,7 +359,11 @@ gk20a_instobj_dtor(struct gk20a_instobj break; } } +#ifdef __NetBSD__ + gk20a_instobj_cpu_unmap_netbsd(>memory, node->vaddr); +#else vunmap(node->vaddr); +#endif node->vaddr = NULL; imem->vaddr_use -= nvkm_memory_size(>memory); nvkm_debug(>base.subdev, "vaddr used: %x/%x\n", @@ -312,6 +373,31 @@ out: spin_unlock_irqrestore(>lock, flags); } +#ifdef __NetBSD__ + +static void * +gk20a_instobj_dtor_netbsd(struct nvkm_memory
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:36:37 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_gk20a.c Log Message: Rewrite DMA/IOMMU stuff using bus_dma for gk20a. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ 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/instmem
Module Name:src Committed By: riastradh Date: Mon Aug 27 06:36:48 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_nv50.c Log Message: endif not endf To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv50.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_nv50.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv50.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv50.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv50.c:1.2 Mon Aug 27 04:58:34 2018 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv50.c Mon Aug 27 06:36:48 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_nvkm_subdev_instmem_nv50.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $ */ +/* $NetBSD: nouveau_nvkm_subdev_instmem_nv50.c,v 1.3 2018/08/27 06:36:48 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -24,7 +24,7 @@ * Authors: Ben Skeggs */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv50.c,v 1.2 2018/08/27 04:58:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_nvkm_subdev_instmem_nv50.c,v 1.3 2018/08/27 06:36:48 riastradh Exp $"); #define nv50_instmem(p) container_of((p), struct nv50_instmem, base) #include "priv.h" @@ -119,7 +119,7 @@ nv50_instobj_boot(struct nvkm_memory *me nvkm_warn(subdev, "PRAMIN ioremap failed\n"); nvkm_vm_put(>bar); } -#endf +#endif } else { nvkm_warn(subdev, "PRAMIN exhausted\n"); }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem
Module Name:src Committed By: riastradh Date: Mon Aug 27 06:36:48 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem: nouveau_nvkm_subdev_instmem_nv50.c Log Message: endif not endf To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/subdev/instmem/nouveau_nvkm_subdev_instmem_nv50.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.