CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device
Module Name:src Committed By: christos Date: Sun Feb 11 15:52:59 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device: nouveau_engine_device_nve0.c Log Message: PR/53006: stackfield: Please support NVIDIA GT730 to kernel To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nve0.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/core/engine/device/nouveau_engine_device_nve0.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nve0.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nve0.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nve0.c:1.2 Sun Oct 18 11:42:00 2015 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_nve0.c Sun Feb 11 10:52:59 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_device_nve0.c,v 1.2 2015/10/18 15:42:00 jmcneill Exp $ */ +/* $NetBSD: nouveau_engine_device_nve0.c,v 1.3 2018/02/11 15:52:59 christos Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_nve0.c,v 1.2 2015/10/18 15:42:00 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_nve0.c,v 1.3 2018/02/11 15:52:59 christos Exp $"); #include #include @@ -213,6 +213,40 @@ nve0_identify(struct nouveau_device *dev #endif device->oclass[NVDEV_ENGINE_PERFMON] = _perfmon_oclass; break; + case 0x106: + device->cname = "GK208B"; + device->oclass[NVDEV_SUBDEV_VBIOS ] = _bios_oclass; + device->oclass[NVDEV_SUBDEV_GPIO ] = _gpio_oclass; + device->oclass[NVDEV_SUBDEV_I2C] = _i2c_oclass; + device->oclass[NVDEV_SUBDEV_CLOCK ] = _clock_oclass; + device->oclass[NVDEV_SUBDEV_THERM ] = _therm_oclass; + device->oclass[NVDEV_SUBDEV_MXM] = _mxm_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_MC ] = nvc3_mc_oclass; + device->oclass[NVDEV_SUBDEV_BUS] = nvc0_bus_oclass; + device->oclass[NVDEV_SUBDEV_TIMER ] = _timer_oclass; + device->oclass[NVDEV_SUBDEV_FB ] = nve0_fb_oclass; + device->oclass[NVDEV_SUBDEV_LTCG ] = gf100_ltcg_oclass; + device->oclass[NVDEV_SUBDEV_IBUS ] = _ibus_oclass; + device->oclass[NVDEV_SUBDEV_INSTMEM] = nv50_instmem_oclass; + device->oclass[NVDEV_SUBDEV_VM ] = _vmmgr_oclass; + device->oclass[NVDEV_SUBDEV_BAR] = _bar_oclass; + device->oclass[NVDEV_SUBDEV_PWR] = _pwr_oclass; + device->oclass[NVDEV_SUBDEV_VOLT ] = _volt_oclass; + device->oclass[NVDEV_ENGINE_DMAOBJ ] = _dmaeng_oclass; + device->oclass[NVDEV_ENGINE_FIFO ] = nv108_fifo_oclass; + device->oclass[NVDEV_ENGINE_SW ] = nvc0_software_oclass; + device->oclass[NVDEV_ENGINE_GR ] = nv108_graph_oclass; + device->oclass[NVDEV_ENGINE_DISP ] = nvf0_disp_oclass; + device->oclass[NVDEV_ENGINE_COPY0 ] = _copy0_oclass; + device->oclass[NVDEV_ENGINE_COPY1 ] = _copy1_oclass; + device->oclass[NVDEV_ENGINE_COPY2 ] = _copy2_oclass; +#if 0 + device->oclass[NVDEV_ENGINE_BSP] = _bsp_oclass; + device->oclass[NVDEV_ENGINE_VP ] = _vp_oclass; + device->oclass[NVDEV_ENGINE_PPP] = _ppp_oclass; +#endif + break; case 0x108: device->cname = "GK208"; device->oclass[NVDEV_SUBDEV_VBIOS ] = _bios_oclass;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo
Module Name:src Committed By: riastradh Date: Mon Feb 27 20:29:00 UTC 2017 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo: nouveau_engine_fifo_nvc0.c Log Message: Avoid __ffs64(0). >From maya@. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.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/core/engine/fifo/nouveau_engine_fifo_nvc0.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.5 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.6 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.5 Sun Oct 25 21:44:16 2015 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c Mon Feb 27 20:29:00 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.5 2015/10/25 21:44:16 mrg Exp $ */ +/* $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.6 2017/02/27 20:29:00 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nvc0.c,v 1.5 2015/10/25 21:44:16 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nvc0.c,v 1.6 2017/02/27 20:29:00 riastradh Exp $"); #include #include @@ -448,11 +448,15 @@ nvc0_fifo_recover_work(struct work_struc priv->mask = 0ULL; spin_unlock_irqrestore(>base.lock, flags); - for (todo = mask; engn = __ffs64(todo), todo; todo &= ~(1 << engn)) + for (todo = mask; + todo && (engn = __ffs64(todo), 1); + todo &= ~(1 << engn)) engm |= 1 << nvc0_fifo_engidx(priv, engn); nv_mask(priv, 0x002630, engm, engm); - for (todo = mask; engn = __ffs64(todo), todo; todo &= ~(1 << engn)) { + for (todo = mask; + todo && (engn = __ffs64(todo), 1); + todo &= ~(1 << engn)) { if ((engine = (void *)nouveau_engine(priv, engn))) { nv_ofuncs(engine)->fini(engine, false); WARN_ON(nv_ofuncs(engine)->init(engine));
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo
Module Name:src Committed By: riastradh Date: Mon Feb 27 18:28:40 UTC 2017 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo: nouveau_engine_fifo_nve0.c Log Message: Avoid __ffs64(0). To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.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/core/engine/fifo/nouveau_engine_fifo_nve0.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.7 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.6 Mon Oct 26 07:12:08 2015 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c Mon Feb 27 18:28:39 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_fifo_nve0.c,v 1.6 2015/10/26 07:12:08 mrg Exp $ */ +/* $NetBSD: nouveau_engine_fifo_nve0.c,v 1.7 2017/02/27 18:28:39 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nve0.c,v 1.6 2015/10/26 07:12:08 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nve0.c,v 1.7 2017/02/27 18:28:39 riastradh Exp $"); #include #include @@ -476,11 +476,15 @@ nve0_fifo_recover_work(struct work_struc priv->mask = 0ULL; spin_unlock_irqrestore(>base.lock, flags); - for (todo = mask; engn = __ffs64(todo), todo; todo &= ~(1 << engn)) + for (todo = mask; + todo && (engn = __ffs64(todo), 1); + todo &= ~(1 << engn)) engm |= 1 << nve0_fifo_engidx(priv, engn); nv_mask(priv, 0x002630, engm, engm); - for (todo = mask; engn = __ffs64(todo), todo; todo &= ~(1 << engn)) { + for (todo = mask; + todo && (engn = __ffs64(todo), 1); + todo &= ~(1 << engn)) { if ((engine = (void *)nouveau_engine(priv, engn))) { nv_ofuncs(engine)->fini(engine, false); WARN_ON(nv_ofuncs(engine)->init(engine));
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp
Module Name:src Committed By: christos Date: Sun Oct 9 14:52:50 UTC 2016 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp: nouveau_engine_disp_dport.c Log Message: PR/51541: Henning Petersen: replace , with ; To generate a diff of this commit: cvs rdiff -u -r1.1.1.1 -r1.2 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_dport.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/core/engine/disp/nouveau_engine_disp_dport.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_dport.c:1.1.1.1 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_dport.c:1.2 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_dport.c:1.1.1.1 Wed Aug 6 08:36:24 2014 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_dport.c Sun Oct 9 10:52:50 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_disp_dport.c,v 1.1.1.1 2014/08/06 12:36:24 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_disp_dport.c,v 1.2 2016/10/09 14:52:50 christos Exp $ */ /* * Copyright 2013 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_disp_dport.c,v 1.1.1.1 2014/08/06 12:36:24 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_disp_dport.c,v 1.2 2016/10/09 14:52:50 christos Exp $"); #include #include @@ -262,7 +262,7 @@ dp_link_train_fini(struct dp_state *dp) }; /* post-train script */ - init.offset = dp->info.script[1], + init.offset = dp->info.script[1]; nvbios_exec(); }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine
Module Name:src Committed By: riastradh Date: Wed May 11 02:28:34 UTC 2016 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device: nouveau_engine_device_base.c src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo: nouveau_engine_fifo_base.c Log Message: Use bus_space_subregion to get fifo channels out of mmio registers. Evidently it is not enough to just map them separately. Ran out of time to investigate why, last time I poked at this and confirmed this change works. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_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/core/engine/device/nouveau_engine_device_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.10 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.11 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.10 Wed Apr 13 08:50:51 2016 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c Wed May 11 02:28:33 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_device_base.c,v 1.10 2016/04/13 08:50:51 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_device_base.c,v 1.11 2016/05/11 02:28:33 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_base.c,v 1.10 2016/04/13 08:50:51 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_base.c,v 1.11 2016/05/11 02:28:33 riastradh Exp $"); #include #include @@ -297,12 +297,6 @@ nouveau_devobj_ctor(struct nouveau_objec #ifdef __NetBSD__ if (!(args->disable & NV_DEVICE_DISABLE_MMIO) && !nv_subdev(device)->mmiosz) { - /* - * Map only through PRAMIN -- don't map the command - * FIFO MMIO regions, which start at NV_FIFO_OFFSET = - * 0x80 and are mapped separately. - */ - mmio_size = MIN(mmio_size, 0x80); /* XXX errno NetBSD->Linux */ ret = -bus_space_map(mmiot, mmio_base, mmio_size, 0, ); if (ret) { Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c:1.5 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c:1.4 Wed Feb 10 17:10:47 2016 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c Wed May 11 02:28:33 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_fifo_base.c,v 1.4 2016/02/10 17:10:47 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_fifo_base.c,v 1.5 2016/05/11 02:28:33 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_base.c,v 1.4 2016/02/10 17:10:47 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_base.c,v 1.5 2016/05/11 02:28:33 riastradh Exp $"); #include #include @@ -92,13 +92,68 @@ nouveau_fifo_channel_create_(struct nouv /* map fifo control registers */ #ifdef __NetBSD__ - chan->bst = nv_device_resource_tag(device, bar); - /* XXX errno NetBSD->Linux */ - ret = -bus_space_map(chan->bst, nv_device_resource_start(device, bar) + - addr + (chan->chid * size), size, 0, >bsh); - if (ret) - return ret; - chan->mapped = true; + if (bar == 0) { + /* + * We already map BAR 0 in the engine device base, so + * grab a subregion of that. + */ + bus_space_tag_t mmiot = nv_subdev(device)->mmiot; + bus_space_handle_t mmioh = nv_subdev(device)->mmioh; + bus_size_t mmiosz = nv_subdev(device)->mmiosz; + + /* Check whether it lies inside the region. */ + if (mmiosz < addr || + mmiosz - addr < chan->chid*size || + mmiosz - addr - chan->chid*size < size) { + ret = EIO; + nv_error(priv, "fifo channel out of range:" + " addr 0x%"PRIxMAX + " chid 0x%"PRIxMAX" size 0x%"PRIxMAX + " mmiosz 0x%"PRIxMAX"\n", + (uintmax_t)addr, + (uintmax_t)chan->chid, (uintmax_t)size, + (uintmax_t)mmiosz); + return ret; + } + + /* Grab a subregion. */ + /* XXX errno NetBSD->Linux */ + ret = -bus_space_subregion(mmiot, mmioh, + (addr + chan->chid*size), size, >bsh); + if (ret) { + nv_error(priv, "bus_space_subregion failed: %d\n", + ret); + return ret; + } + + /* Success! No need to unmap a subregion. */ + chan->mapped = false; + chan->bst = mmiot; + } else { + chan->bst =
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp
Module Name:src Committed By: riastradh Date: Sat Apr 23 14:59:01 UTC 2016 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp: nouveau_engine_disp_nvd0.c Log Message: Make it clearer to Coverity that there's no array overrun. CID 989067 To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nvd0.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/core/engine/disp/nouveau_engine_disp_nvd0.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nvd0.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nvd0.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nvd0.c:1.2 Sat Aug 23 08:03:33 2014 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/disp/nouveau_engine_disp_nvd0.c Sat Apr 23 14:59:01 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_disp_nvd0.c,v 1.2 2014/08/23 08:03:33 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_disp_nvd0.c,v 1.3 2016/04/23 14:59:01 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_disp_nvd0.c,v 1.2 2014/08/23 08:03:33 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_disp_nvd0.c,v 1.3 2016/04/23 14:59:01 riastradh Exp $"); #include #include @@ -1042,7 +1042,8 @@ exec_clkcmp(struct nv50_disp_priv *priv, } data = nvbios_ocfg_match(bios, data, conf, , , , , ); - if (data && id < 0xff) { + CTASSERT(__arraycount(info2.clkcmp) <= 0xff); + if (data && id < __arraycount(info2.clkcmp)) { data = nvbios_oclk_match(bios, info2.clkcmp[id], pclk); if (data) { struct nvbios_init init = {
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo
Module Name:src Committed By: riastradh Date: Sat Apr 23 14:48:45 UTC 2016 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo: nouveau_engine_fifo_nv40.c Log Message: Mark fallthrough with a comment to appease Coverity, CID 703385. To generate a diff of this commit: cvs rdiff -u -r1.1.1.1 -r1.2 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_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/core/engine/fifo/nouveau_engine_fifo_nv40.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv40.c:1.1.1.1 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv40.c:1.2 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv40.c:1.1.1.1 Wed Aug 6 12:36:24 2014 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nv40.c Sat Apr 23 14:48:45 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_fifo_nv40.c,v 1.1.1.1 2014/08/06 12:36:24 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_fifo_nv40.c,v 1.2 2016/04/23 14:48:45 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nv40.c,v 1.1.1.1 2014/08/06 12:36:24 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nv40.c,v 1.2 2016/04/23 14:48:45 riastradh Exp $"); #include #include @@ -315,6 +315,7 @@ nv40_fifo_init(struct nouveau_object *ob case 0x49: case 0x4b: nv_wr32(priv, 0x002230, 0x0001); + /*FALLTHROUGH*/ case 0x40: case 0x41: case 0x42:
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device
Module Name:src Committed By: riastradh Date: Wed Apr 13 08:50:51 UTC 2016 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device: nouveau_engine_device_base.c Log Message: Exclude VRAM and FIFO regions from MMIO register mapping. Nouveau maps those separately, and it is not trivial to convert those mappings to bus_space_subregion. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.9 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.10 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.9 Sun Feb 14 03:41:18 2016 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c Wed Apr 13 08:50:51 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_device_base.c,v 1.9 2016/02/14 03:41:18 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_device_base.c,v 1.10 2016/04/13 08:50:51 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_base.c,v 1.9 2016/02/14 03:41:18 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_base.c,v 1.10 2016/04/13 08:50:51 riastradh Exp $"); #include #include @@ -297,6 +297,12 @@ nouveau_devobj_ctor(struct nouveau_objec #ifdef __NetBSD__ if (!(args->disable & NV_DEVICE_DISABLE_MMIO) && !nv_subdev(device)->mmiosz) { + /* + * Map only through PRAMIN -- don't map the command + * FIFO MMIO regions, which start at NV_FIFO_OFFSET = + * 0x80 and are mapped separately. + */ + mmio_size = MIN(mmio_size, 0x80); /* XXX errno NetBSD->Linux */ ret = -bus_space_map(mmiot, mmio_base, mmio_size, 0, ); if (ret) {
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device
Module Name:src Committed By: riastradh Date: Sun Feb 14 03:41:18 UTC 2016 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device: nouveau_engine_device_base.c Log Message: Map the same mmio size as Linux does. Unlikely to have practical consequences -- just reduces differences in behaviour from upstream, to rule them out. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.8 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.9 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.8 Thu Nov 5 20:32:39 2015 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c Sun Feb 14 03:41:18 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_device_base.c,v 1.8 2015/11/05 20:32:39 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_device_base.c,v 1.9 2016/02/14 03:41:18 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_base.c,v 1.8 2015/11/05 20:32:39 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_base.c,v 1.9 2016/02/14 03:41:18 riastradh Exp $"); #include #include @@ -180,7 +180,7 @@ nouveau_devobj_ctor(struct nouveau_objec if (mmio_size < 0x102000) return -ENOMEM; /* XXX errno NetBSD->Linux */ - ret = -bus_space_map(mmiot, mmio_base, mmio_size, 0, ); + ret = -bus_space_map(mmiot, mmio_base, 0x102000, 0, ); if (ret) return ret; @@ -193,7 +193,7 @@ nouveau_devobj_ctor(struct nouveau_objec boot0 = bus_space_read_4(mmiot, mmioh, 0x00); strap = bus_space_read_4(mmiot, mmioh, 0x101000); - bus_space_unmap(mmiot, mmioh, mmio_size); + bus_space_unmap(mmiot, mmioh, 0x102000); #else map = ioremap(mmio_base, 0x102000); if (map == NULL)
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon
Module Name:src Committed By: riastradh Date: Fri Feb 5 23:45:44 UTC 2016 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon: nouveau_engine_perfmon_base.c Log Message: Don't ask `size < 0' when size is unsigned. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_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/core/engine/perfmon/nouveau_engine_perfmon_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_base.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_base.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_base.c:1.2 Sat Aug 23 08:03:34 2014 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/perfmon/nouveau_engine_perfmon_base.c Fri Feb 5 23:45:44 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_perfmon_base.c,v 1.2 2014/08/23 08:03:34 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_perfmon_base.c,v 1.3 2016/02/05 23:45:44 riastradh Exp $ */ /* * Copyright 2013 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_perfmon_base.c,v 1.2 2014/08/23 08:03:34 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_perfmon_base.c,v 1.3 2016/02/05 23:45:44 riastradh Exp $"); #include #include @@ -171,8 +171,12 @@ nouveau_perfctr_sample(struct nouveau_ob struct nouveau_perfdom *dom; struct nv_perfctr_sample *args = data; +#if 1 + CTASSERT(sizeof(*args) == 0); +#else if (size < sizeof(*args)) return -EINVAL; +#endif ppm->sequence++; list_for_each_entry(dom, >domains, head) {
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device
Module Name:src Committed By: riastradh Date: Thu Nov 5 20:26:10 UTC 2015 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device: nouveau_engine_device_base.c Log Message: Fix bogus output parameter for bus_space_map. We stored the bus space handle in nv_subdev(device)->mmioh, which we then overwrote with whatever was in the mmioh local variable -- maybe garbage, maybe an old mapping, almost certainly wrong either way. Instead store it in mmioh so that the subsequent assignment nv_subdev(device)->mmioh = mmioh actually works as intended. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.5 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.6 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.5 Sat Oct 17 21:13:38 2015 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c Thu Nov 5 20:26:10 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_device_base.c,v 1.5 2015/10/17 21:13:38 jmcneill Exp $ */ +/* $NetBSD: nouveau_engine_device_base.c,v 1.6 2015/11/05 20:26:10 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_base.c,v 1.5 2015/10/17 21:13:38 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_base.c,v 1.6 2015/11/05 20:26:10 riastradh Exp $"); #include #include @@ -293,8 +293,8 @@ nouveau_devobj_ctor(struct nouveau_objec #ifdef __NetBSD__ if (!(args->disable & NV_DEVICE_DISABLE_MMIO) && !nv_subdev(device)->mmiosz) { - if (bus_space_map(mmiot, mmio_base, mmio_size, 0, - _subdev(device)->mmioh) != 0) { + if (bus_space_map(mmiot, mmio_base, mmio_size, 0, ) + != 0) { nv_error(device, "unable to map device registers\n"); return -ENOMEM; }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device
Module Name:src Committed By: riastradh Date: Thu Nov 5 20:31:26 UTC 2015 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device: nouveau_engine_device_base.c Log Message: Return error from bus_space_map. To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.6 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.7 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c:1.6 Thu Nov 5 20:26:10 2015 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/device/nouveau_engine_device_base.c Thu Nov 5 20:31:26 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_device_base.c,v 1.6 2015/11/05 20:26:10 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_device_base.c,v 1.7 2015/11/05 20:31:26 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_base.c,v 1.6 2015/11/05 20:26:10 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_device_base.c,v 1.7 2015/11/05 20:31:26 riastradh Exp $"); #include #include @@ -177,8 +177,10 @@ nouveau_devobj_ctor(struct nouveau_objec if (!(args->disable & NV_DEVICE_DISABLE_IDENTIFY) && !device->card_type) { #ifdef __NetBSD__ - if (bus_space_map(mmiot, mmio_base, mmio_size, 0, ) != 0) - return -ENOMEM; + /* XXX errno NetBSD->Linux */ + ret = -bus_space_map(mmiot, mmio_base, mmio_size, 0, ); + if (ret) + return ret; #ifndef __BIG_ENDIAN if (bus_space_read_4(mmiot, mmioh, 4) != 0) @@ -293,10 +295,11 @@ nouveau_devobj_ctor(struct nouveau_objec #ifdef __NetBSD__ if (!(args->disable & NV_DEVICE_DISABLE_MMIO) && !nv_subdev(device)->mmiosz) { - if (bus_space_map(mmiot, mmio_base, mmio_size, 0, ) - != 0) { + /* XXX errno NetBSD->Linux */ + ret = -bus_space_map(mmiot, mmio_base, mmio_size, 0, ); + if (ret) { nv_error(device, "unable to map device registers\n"); - return -ENOMEM; + return ret; } nv_subdev(device)->mmiot = mmiot; nv_subdev(device)->mmioh = mmioh;
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo
Module Name:src Committed By: mrg Date: Mon Oct 26 07:12:08 UTC 2015 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo: nouveau_engine_fifo_nve0.c Log Message: minor re-format of the previous. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.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/core/engine/fifo/nouveau_engine_fifo_nve0.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.5 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.6 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.5 Tue Oct 13 01:43:47 2015 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c Mon Oct 26 07:12:08 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_fifo_nve0.c,v 1.5 2015/10/13 01:43:47 mrg Exp $ */ +/* $NetBSD: nouveau_engine_fifo_nve0.c,v 1.6 2015/10/26 07:12:08 mrg Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nve0.c,v 1.5 2015/10/13 01:43:47 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nve0.c,v 1.6 2015/10/26 07:12:08 mrg Exp $"); #include #include @@ -139,7 +139,8 @@ nve0_fifo_runlist_update(struct nve0_fif if (cold) { uint count = 2000; while (count-- > 0) { - if (!(nv_rd32(priv, 0x002284 + (engine * 0x08)) & 0x0010)) + if (!(nv_rd32(priv, 0x002284 + + (engine * 0x08)) & 0x0010)) break; delay(1000); }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo
Module Name:src Committed By: mrg Date: Sun Oct 25 21:44:16 UTC 2015 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo: nouveau_engine_fifo_nvc0.c Log Message: don't try to wait if (cold), spin waiting for registers to clear. same as in nouveau_engine_fifo_nve0.c 1.5. should fix PR#50362. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.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/core/engine/fifo/nouveau_engine_fifo_nvc0.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.5 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.4 Sat Feb 28 05:38:49 2015 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c Sun Oct 25 21:44:16 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.4 2015/02/28 05:38:49 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.5 2015/10/25 21:44:16 mrg Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nvc0.c,v 1.4 2015/02/28 05:38:49 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_nvc0.c,v 1.5 2015/10/25 21:44:16 mrg Exp $"); #include #include @@ -115,17 +115,26 @@ nvc0_fifo_runlist_update(struct nvc0_fif nv_wr32(priv, 0x002274, 0x01f0 | (p >> 3)); #ifdef __NetBSD__ -{ - int ret; + if (cold) { + uint count = 2000; + while (count-- > 0) { + if (!(nv_rd32(priv, 0x00227c) & 0x0010)) +break; + delay(1000); + } + if (count == 0) + nv_error(priv, "runlist update timeout\n"); + } else { + int ret; - spin_lock(>runlist.lock); - DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, >runlist.wait, - >runlist.lock, msecs_to_jiffies(2000), - !(nv_rd32(priv, 0x00227c) & 0x0010)); - if (ret == 0) - nv_error(priv, "runlist update timeout\n"); - spin_unlock(>runlist.lock); -} + spin_lock(>runlist.lock); + DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, >runlist.wait, + >runlist.lock, msecs_to_jiffies(2000), + !(nv_rd32(priv, 0x00227c) & 0x0010)); + if (ret == 0) + nv_error(priv, "runlist update timeout\n"); + spin_unlock(>runlist.lock); + } #else if (wait_event_timeout(priv->runlist.wait, !(nv_rd32(priv, 0x00227c) & 0x0010),
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo
Module Name:src Committed By: riastradh Date: Sat Feb 28 03:33:22 UTC 2015 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo: nouveau_engine_fifo_nvc0.c nouveau_engine_fifo_nve0.c Log Message: More DRM_TIMED_WAIT mistakes: 0, not -ETIMEDOUT, for timeout. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.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/core/engine/fifo/nouveau_engine_fifo_nvc0.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.2 Sat Aug 23 08:03:33 2014 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c Sat Feb 28 03:33:22 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.2 2014/08/23 08:03:33 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.3 2015/02/28 03:33:22 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.2 2014/08/23 08:03:33 riastradh Exp $); +__KERNEL_RCSID(0, $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.3 2015/02/28 03:33:22 riastradh Exp $); #include core/client.h #include core/handle.h @@ -122,7 +122,7 @@ nvc0_fifo_runlist_update(struct nvc0_fif DRM_SPIN_TIMED_WAIT_UNTIL(ret, priv-runlist.wait, priv-runlist.lock, msecs_to_jiffies(2000), !(nv_rd32(priv, 0x00227c) 0x0010)); - if (ret == -ETIMEDOUT) + if (ret == 0) nv_error(priv, runlist update timeout\n); spin_unlock(priv-runlist.lock); } Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.2 Sat Aug 23 08:03:33 2014 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c Sat Feb 28 03:33:22 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_fifo_nve0.c,v 1.2 2014/08/23 08:03:33 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_fifo_nve0.c,v 1.3 2015/02/28 03:33:22 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: nouveau_engine_fifo_nve0.c,v 1.2 2014/08/23 08:03:33 riastradh Exp $); +__KERNEL_RCSID(0, $NetBSD: nouveau_engine_fifo_nve0.c,v 1.3 2015/02/28 03:33:22 riastradh Exp $); #include core/client.h #include core/handle.h @@ -144,7 +144,7 @@ nve0_fifo_runlist_update(struct nve0_fif msecs_to_jiffies(2000), !(nv_rd32(priv, 0x002284 + (engine * 0x08)) 0x0010)); - if (ret == -ETIMEDOUT) + if (ret == 0) nv_error(priv, runlist %d update timeout\n, engine); spin_unlock(engn-lock); }
CVS commit: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo
Module Name:src Committed By: riastradh Date: Sat Feb 28 05:38:49 UTC 2015 Modified Files: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo: nouveau_engine_fifo_nvc0.c nouveau_engine_fifo_nve0.c Log Message: These are uninterruptible upstream too. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c \ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.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/core/engine/fifo/nouveau_engine_fifo_nvc0.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c:1.3 Sat Feb 28 03:33:22 2015 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nvc0.c Sat Feb 28 05:38:49 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.3 2015/02/28 03:33:22 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.4 2015/02/28 05:38:49 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.3 2015/02/28 03:33:22 riastradh Exp $); +__KERNEL_RCSID(0, $NetBSD: nouveau_engine_fifo_nvc0.c,v 1.4 2015/02/28 05:38:49 riastradh Exp $); #include core/client.h #include core/handle.h @@ -119,7 +119,7 @@ nvc0_fifo_runlist_update(struct nvc0_fif int ret; spin_lock(priv-runlist.lock); - DRM_SPIN_TIMED_WAIT_UNTIL(ret, priv-runlist.wait, + DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, priv-runlist.wait, priv-runlist.lock, msecs_to_jiffies(2000), !(nv_rd32(priv, 0x00227c) 0x0010)); if (ret == 0) Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c:1.3 Sat Feb 28 03:33:22 2015 +++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_nve0.c Sat Feb 28 05:38:49 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: nouveau_engine_fifo_nve0.c,v 1.3 2015/02/28 03:33:22 riastradh Exp $ */ +/* $NetBSD: nouveau_engine_fifo_nve0.c,v 1.4 2015/02/28 05:38:49 riastradh Exp $ */ /* * Copyright 2012 Red Hat Inc. @@ -25,7 +25,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: nouveau_engine_fifo_nve0.c,v 1.3 2015/02/28 03:33:22 riastradh Exp $); +__KERNEL_RCSID(0, $NetBSD: nouveau_engine_fifo_nve0.c,v 1.4 2015/02/28 05:38:49 riastradh Exp $); #include core/client.h #include core/handle.h @@ -140,7 +140,7 @@ nve0_fifo_runlist_update(struct nve0_fif int ret; spin_lock(engn-lock); - DRM_SPIN_TIMED_WAIT_UNTIL(ret, engn-wait, engn-lock, + DRM_SPIN_TIMED_WAIT_NOINTR_UNTIL(ret, engn-wait, engn-lock, msecs_to_jiffies(2000), !(nv_rd32(priv, 0x002284 + (engine * 0x08)) 0x0010));