Displaying 20 results from an estimated 42 matches for "nvkm_device_func".
2020 Apr 28
3
[PATCH v3 1/3] device: rework mmio mapping code to get rid of second map
...15 insertions(+), 12 deletions(-)
diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c
index 8ebbe1656..37589f365 100644
--- a/drm/nouveau/nvkm/engine/device/base.c
+++ b/drm/nouveau/nvkm/engine/device/base.c
@@ -2935,7 +2935,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
struct nvkm_subdev *subdev;
u64 mmio_base, mmio_size;
u32 boot0, strap;
- void __iomem *map;
+ void __iomem *map = NULL;
int ret = -EEXIST, i;
unsigned chipset;
@@ -2961,12 +2961,17 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
mmio_base = device->func->resourc...
2020 Apr 17
2
[PATCH 1/3] device: use the correct mmio size when mapping
...ed, 1 insertion(+), 1 deletion(-)
diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c
index 8ebbe1656..17676c75a 100644
--- a/drm/nouveau/nvkm/engine/device/base.c
+++ b/drm/nouveau/nvkm/engine/device/base.c
@@ -2963,7 +2963,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
/* identify the chipset, and determine classes of subdev/engines */
if (detect) {
- map = ioremap(mmio_base, 0x102000);
+ map = ioremap(mmio_base, mmio_size);
if (ret = -ENOMEM, map == NULL)
goto done;
--
2.25.2
2020 Apr 17
2
[PATCH v2 1/3] device: use the correct mmio size when mapping
...ed, 1 insertion(+), 1 deletion(-)
diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c
index 8ebbe1656..17676c75a 100644
--- a/drm/nouveau/nvkm/engine/device/base.c
+++ b/drm/nouveau/nvkm/engine/device/base.c
@@ -2963,7 +2963,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
/* identify the chipset, and determine classes of subdev/engines */
if (detect) {
- map = ioremap(mmio_base, 0x102000);
+ map = ioremap(mmio_base, mmio_size);
if (ret = -ENOMEM, map == NULL)
goto done;
--
2.25.2
2020 Oct 05
2
[PATCH] device: return error for unknown chipsets
...+
1 file changed, 1 insertion(+)
diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c
index 9f4ac2672..68d665414 100644
--- a/drm/nouveau/nvkm/engine/device/base.c
+++ b/drm/nouveau/nvkm/engine/device/base.c
@@ -3149,6 +3149,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
case 0x168: device->chip = &nv168_chipset; break;
default:
nvdev_error(device, "unknown chipset (%08x)\n", boot0);
+ ret = -ENOSYS;
goto done;
}
--
2.26.2
2020 Oct 13
3
[PATCH] drm/nouveau/device: fix changing endianess code to work on older GPUs
..., 0x000000);
+ if (nvkm_rd32(device, 0x000004) != (big_endian ? 0x01000001 : 0x00000000))
+ return !big_endian; /* Assume GPU is LE on any unexpected read-back. */
+ }
+
+ /* CPU/GPU endianness should (hopefully) match. */
return true;
}
@@ -2987,14 +3004,10 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
if (detect) {
/* switch mmio to cpu's native endianness */
if (!nvkm_device_endianness(device)) {
- nvkm_wr32(device, 0x000004, 0x01000001);
- nvkm_rd32(device, 0x000000);
- if (!nvkm_device_endianness(device)) {
- nvdev_error(device,
- "GPU not supported on...
2016 Dec 12
2
[PATCH] drm/nouveau: fix unknown chipset for GTX 1060
...= gp104_ce_new,
+ .ce[3] = gp104_ce_new,
+ .disp = gp104_disp_new,
+ .dma = gf119_dma_new,
+ .fifo = gp100_fifo_new,
+};
+
static int
nvkm_device_event_ctor(struct nvkm_object *object, void *data, u32 size,
struct nvkm_notify *notify)
@@ -2644,6 +2672,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
case 0x12b: device->chip = &nv12b_chipset; break;
case 0x130: device->chip = &nv130_chipset; break;
case 0x134: device->chip = &nv134_chipset; break;
+ case 0x136: device->chip = &nv136_chipset; break;
default:
nvdev_error(device, "unknown ch...
2020 Apr 28
0
[PATCH v3 2/3] device: detect if changing endianness failed
...device)
}
}
+static inline bool
+nvkm_device_endianness(void __iomem *pri)
+{
+ u32 boot1 = ioread32_native(pri + 0x000004) & 0x01000001;
+#ifdef __BIG_ENDIAN
+ if (!boot1)
+ return false;
+#else
+ if (boot1)
+ return false;
+#endif
+ return true;
+}
+
int
nvkm_device_ctor(const struct nvkm_device_func *func,
const struct nvkm_device_quirk *quirk,
@@ -2973,13 +2987,15 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
/* identify the chipset, and determine classes of subdev/engines */
if (detect) {
/* switch mmio to cpu's native endianness */
-#ifndef __BIG_ENDIAN
- if (iore...
2020 Oct 06
1
[PATCH] device: return error for unknown chipsets
...(+)
>
> diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c
> index 9f4ac2672..68d665414 100644
> --- a/drm/nouveau/nvkm/engine/device/base.c
> +++ b/drm/nouveau/nvkm/engine/device/base.c
> @@ -3149,6 +3149,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
> case 0x168: device->chip = &nv168_chipset; break;
> default:
> nvdev_error(device, "unknown chipset (%08x)\n", boot0);
> + ret = -ENOSYS;
> goto done;
> }
>
2017 Feb 14
1
[PATCH] drm/nouveau/core: recognise GP107 chipset
...= gp104_ce_new,
+ .ce[3] = gp104_ce_new,
+ .disp = gp104_disp_new,
+ .dma = gf119_dma_new,
+ .fifo = gp100_fifo_new,
+};
+
static int
nvkm_device_event_ctor(struct nvkm_object *object, void *data, u32 size,
struct nvkm_notify *notify)
@@ -2673,6 +2701,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
case 0x130: device->chip = &nv130_chipset; break;
case 0x134: device->chip = &nv134_chipset; break;
case 0x136: device->chip = &nv136_chipset; break;
+ case 0x137: device->chip = &nv137_chipset; break;
default:
nvdev_error(device, "unknown ch...
2015 Oct 07
2
Chipset & Family
...hanged, 1 insertion(+), 1 deletion(-)
diff --git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c
index bbc9824..932a29a 100644
--- a/drm/nouveau/nvkm/engine/device/base.c
+++ b/drm/nouveau/nvkm/engine/device/base.c
@@ -2467,7 +2467,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
goto done;
}
- nvdev_info(device, "NVIDIA %s (%08x)\n",
+ nvdev_info(device, "GPU NVIDIA Chipset: %s (%08x)\n",
device->chip->name, boot0);
/* determine frequency of timing crystal */
--
2.6.0
2020 Oct 06
1
[PATCH] device: return error for unknown chipsets
...nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c
> > > index 9f4ac2672..68d665414 100644
> > > --- a/drm/nouveau/nvkm/engine/device/base.c
> > > +++ b/drm/nouveau/nvkm/engine/device/base.c
> > > @@ -3149,6 +3149,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
> > > case 0x168: device->chip = &nv168_chipset; break;
> > > default:
> > > nvdev_error(device, "unknown chipset (%08x)\n", boot0);
> > > + ret = -ENOSYS;
> > >...
2016 Sep 18
5
[PATCH 1/2] Revert "bus: remove cpu_coherent flag"
...6 ++++++
5 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/drm/nouveau/include/nvkm/core/device.h b/drm/nouveau/include/nvkm/core/device.h
index 7ea8aa7..6bc712f 100644
--- a/drm/nouveau/include/nvkm/core/device.h
+++ b/drm/nouveau/include/nvkm/core/device.h
@@ -175,6 +175,7 @@ struct nvkm_device_func {
void (*fini)(struct nvkm_device *, bool suspend);
resource_size_t (*resource_addr)(struct nvkm_device *, unsigned bar);
resource_size_t (*resource_size)(struct nvkm_device *, unsigned bar);
+ bool cpu_coherent;
};
struct nvkm_device_quirk {
diff --git a/drm/nouveau/nouveau_bo.c b/drm/no...
2016 Dec 12
0
[PATCH] drm/nouveau: fix unknown chipset for GTX 1060
...; + .disp = gp104_disp_new,
> + .dma = gf119_dma_new,
> + .fifo = gp100_fifo_new,
> +};
> +
> static int
> nvkm_device_event_ctor(struct nvkm_object *object, void *data, u32 size,
> struct nvkm_notify *notify)
> @@ -2644,6 +2672,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
> case 0x12b: device->chip = &nv12b_chipset; break;
> case 0x130: device->chip = &nv130_chipset; break;
> case 0x134: device->chip = &nv134_chipset; break;
> + case 0x136: device->chip = &nv136_chipset; break;
> default:
> nvdev_...
2017 Feb 14
0
[PATCH] drm/nouveau/core: recognise GP107 chipset
...w,
> + .dma = gf119_dma_new,
> + .fifo = gp100_fifo_new,
> +};
> +
> static int
> nvkm_device_event_ctor(struct nvkm_object *object, void *data, u32 size,
> struct nvkm_notify *notify)
> @@ -2673,6 +2701,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
> case 0x130: device->chip = &nv130_chipset; break;
> case 0x134: device->chip = &nv134_chipset; break;
> case 0x136: device->chip = &nv136_chipset; break;
> + case 0x137: device->chip = &nv...
2017 Jul 03
0
[PATCH] initial support (display-only) for GP108
..._new,
+ .ce[2] = gp102_ce_new,
+ .ce[3] = gp102_ce_new,
+ .disp = gp102_disp_new,
+ .dma = gf119_dma_new,
+ .fifo = gp100_fifo_new,
+};
+
+static const struct nvkm_device_chip
nv13b_chipset = {
.name = "GP10B",
.bar = gk20a_bar_new,
@@ -2782,6 +2811,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
case 0x134: device->chip = &nv134_chipset; break;
case 0x136: device->chip = &nv136_chipset; break;
case 0x137: device->chip = &nv137_chipset; break;
+ case 0x138: device->chip = &nv138_chipset; break;
case 0x13b: device->chip = &nv13b_chipset;...
2020 Oct 06
0
[PATCH] device: return error for unknown chipsets
...--git a/drm/nouveau/nvkm/engine/device/base.c b/drm/nouveau/nvkm/engine/device/base.c
> > index 9f4ac2672..68d665414 100644
> > --- a/drm/nouveau/nvkm/engine/device/base.c
> > +++ b/drm/nouveau/nvkm/engine/device/base.c
> > @@ -3149,6 +3149,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
> > case 0x168: device->chip = &nv168_chipset; break;
> > default:
> > nvdev_error(device, "unknown chipset (%08x)\n", boot0);
> > + ret = -ENOSYS;
> > g...
2020 Oct 13
0
[PATCH] drm/nouveau/device: fix changing endianess code to work on older GPUs
...: 0x00000000))
> + return !big_endian; /* Assume GPU is LE on any unexpected read-back. */
> + }
> +
> + /* CPU/GPU endianness should (hopefully) match. */
> return true;
> }
>
> @@ -2987,14 +3004,10 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
> if (detect) {
> /* switch mmio to cpu's native endianness */
> if (!nvkm_device_endianness(device)) {
> - nvkm_wr32(device, 0x000004, 0x01000001);
> - nvkm_rd32(device, 0x000000);
> -...
2016 Sep 19
0
[PATCH 1/2] Revert "bus: remove cpu_coherent flag"
...insertions(+), 1 deletion(-)
>
> diff --git a/drm/nouveau/include/nvkm/core/device.h b/drm/nouveau/include/nvkm/core/device.h
> index 7ea8aa7..6bc712f 100644
> --- a/drm/nouveau/include/nvkm/core/device.h
> +++ b/drm/nouveau/include/nvkm/core/device.h
> @@ -175,6 +175,7 @@ struct nvkm_device_func {
> void (*fini)(struct nvkm_device *, bool suspend);
> resource_size_t (*resource_addr)(struct nvkm_device *, unsigned bar);
> resource_size_t (*resource_size)(struct nvkm_device *, unsigned bar);
> + bool cpu_coherent;
> };
>
> struct nvkm_devi...
2018 Feb 05
0
[PATCH 2/3] drm/nouveau/disp: quirk for SOR crossbar routing
...diff --git a/drivers/gpu/drm/nouveau/include/nvkm/core/device.h b/drivers/gpu/drm/nouveau/include/nvkm/core/device.h
index 560265b15ec2..d384cb03ad85 100644
--- a/drivers/gpu/drm/nouveau/include/nvkm/core/device.h
+++ b/drivers/gpu/drm/nouveau/include/nvkm/core/device.h
@@ -184,6 +184,7 @@ struct nvkm_device_func {
struct nvkm_device_quirk {
u8 tv_pin_mask;
u8 tv_gpio;
+ u8 outp_links_skip;
};
struct nvkm_device_chip {
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
index be9e7f8c3b23..47303bdb7ee0 100644
--- a/drivers/gpu/drm/nouveau/n...
2018 Feb 05
0
[PATCH v2 2/3] drm/nouveau/disp: quirk for SOR crossbar routing
...diff --git a/drivers/gpu/drm/nouveau/include/nvkm/core/device.h b/drivers/gpu/drm/nouveau/include/nvkm/core/device.h
index 560265b15ec2..d384cb03ad85 100644
--- a/drivers/gpu/drm/nouveau/include/nvkm/core/device.h
+++ b/drivers/gpu/drm/nouveau/include/nvkm/core/device.h
@@ -184,6 +184,7 @@ struct nvkm_device_func {
struct nvkm_device_quirk {
u8 tv_pin_mask;
u8 tv_gpio;
+ u8 outp_links_skip;
};
struct nvkm_device_chip {
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
index be9e7f8c3b23..a574746ddd82 100644
--- a/drivers/gpu/drm/nouveau/n...