Commit 14caba44 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/bus: switch to device pri macros

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent d8f266a3
...@@ -29,15 +29,16 @@ ...@@ -29,15 +29,16 @@
static int static int
g94_bus_hwsq_exec(struct nvkm_bus *bus, u32 *data, u32 size) g94_bus_hwsq_exec(struct nvkm_bus *bus, u32 *data, u32 size)
{ {
struct nvkm_device *device = bus->subdev.device;
int i; int i;
nv_mask(bus, 0x001098, 0x00000008, 0x00000000); nvkm_mask(device, 0x001098, 0x00000008, 0x00000000);
nv_wr32(bus, 0x001304, 0x00000000); nvkm_wr32(device, 0x001304, 0x00000000);
nv_wr32(bus, 0x001318, 0x00000000); nvkm_wr32(device, 0x001318, 0x00000000);
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
nv_wr32(bus, 0x080000 + (i * 4), data[i]); nvkm_wr32(device, 0x080000 + (i * 4), data[i]);
nv_mask(bus, 0x001098, 0x00000018, 0x00000018); nvkm_mask(device, 0x001098, 0x00000018, 0x00000018);
nv_wr32(bus, 0x00130c, 0x00000001); nvkm_wr32(device, 0x00130c, 0x00000001);
return nv_wait(bus, 0x001308, 0x00000100, 0x00000000) ? 0 : -ETIMEDOUT; return nv_wait(bus, 0x001308, 0x00000100, 0x00000000) ? 0 : -ETIMEDOUT;
} }
......
...@@ -28,11 +28,12 @@ static void ...@@ -28,11 +28,12 @@ static void
gf100_bus_intr(struct nvkm_subdev *subdev) gf100_bus_intr(struct nvkm_subdev *subdev)
{ {
struct nvkm_bus *bus = nvkm_bus(subdev); struct nvkm_bus *bus = nvkm_bus(subdev);
u32 stat = nv_rd32(bus, 0x001100) & nv_rd32(bus, 0x001140); struct nvkm_device *device = bus->subdev.device;
u32 stat = nvkm_rd32(device, 0x001100) & nvkm_rd32(device, 0x001140);
if (stat & 0x0000000e) { if (stat & 0x0000000e) {
u32 addr = nv_rd32(bus, 0x009084); u32 addr = nvkm_rd32(device, 0x009084);
u32 data = nv_rd32(bus, 0x009088); u32 data = nvkm_rd32(device, 0x009088);
nv_error(bus, "MMIO %s of 0x%08x FAULT at 0x%06x [ %s%s%s]\n", nv_error(bus, "MMIO %s of 0x%08x FAULT at 0x%06x [ %s%s%s]\n",
(addr & 0x00000002) ? "write" : "read", data, (addr & 0x00000002) ? "write" : "read", data,
...@@ -41,14 +42,14 @@ gf100_bus_intr(struct nvkm_subdev *subdev) ...@@ -41,14 +42,14 @@ gf100_bus_intr(struct nvkm_subdev *subdev)
(stat & 0x00000004) ? "IBUS " : "", (stat & 0x00000004) ? "IBUS " : "",
(stat & 0x00000008) ? "TIMEOUT " : ""); (stat & 0x00000008) ? "TIMEOUT " : "");
nv_wr32(bus, 0x009084, 0x00000000); nvkm_wr32(device, 0x009084, 0x00000000);
nv_wr32(bus, 0x001100, (stat & 0x0000000e)); nvkm_wr32(device, 0x001100, (stat & 0x0000000e));
stat &= ~0x0000000e; stat &= ~0x0000000e;
} }
if (stat) { if (stat) {
nv_error(bus, "unknown intr 0x%08x\n", stat); nv_error(bus, "unknown intr 0x%08x\n", stat);
nv_mask(bus, 0x001140, stat, 0x00000000); nvkm_mask(device, 0x001140, stat, 0x00000000);
} }
} }
...@@ -56,14 +57,15 @@ static int ...@@ -56,14 +57,15 @@ static int
gf100_bus_init(struct nvkm_object *object) gf100_bus_init(struct nvkm_object *object)
{ {
struct nvkm_bus *bus = (void *)object; struct nvkm_bus *bus = (void *)object;
struct nvkm_device *device = bus->subdev.device;
int ret; int ret;
ret = nvkm_bus_init(bus); ret = nvkm_bus_init(bus);
if (ret) if (ret)
return ret; return ret;
nv_wr32(bus, 0x001100, 0xffffffff); nvkm_wr32(device, 0x001100, 0xffffffff);
nv_wr32(bus, 0x001140, 0x0000000e); nvkm_wr32(device, 0x001140, 0x0000000e);
return 0; return 0;
} }
......
...@@ -85,8 +85,9 @@ hwsq_exec(struct hwsq *ram, bool exec) ...@@ -85,8 +85,9 @@ hwsq_exec(struct hwsq *ram, bool exec)
static inline u32 static inline u32
hwsq_rd32(struct hwsq *ram, struct hwsq_reg *reg) hwsq_rd32(struct hwsq *ram, struct hwsq_reg *reg)
{ {
struct nvkm_device *device = ram->subdev->device;
if (reg->sequence != ram->sequence) if (reg->sequence != ram->sequence)
reg->data = nv_rd32(ram->subdev, reg->addr); reg->data = nvkm_rd32(device, reg->addr);
return reg->data; return reg->data;
} }
......
...@@ -28,12 +28,13 @@ static void ...@@ -28,12 +28,13 @@ static void
nv04_bus_intr(struct nvkm_subdev *subdev) nv04_bus_intr(struct nvkm_subdev *subdev)
{ {
struct nvkm_bus *bus = nvkm_bus(subdev); struct nvkm_bus *bus = nvkm_bus(subdev);
u32 stat = nv_rd32(bus, 0x001100) & nv_rd32(bus, 0x001140); struct nvkm_device *device = bus->subdev.device;
u32 stat = nvkm_rd32(device, 0x001100) & nvkm_rd32(device, 0x001140);
if (stat & 0x00000001) { if (stat & 0x00000001) {
nv_error(bus, "BUS ERROR\n"); nv_error(bus, "BUS ERROR\n");
stat &= ~0x00000001; stat &= ~0x00000001;
nv_wr32(bus, 0x001100, 0x00000001); nvkm_wr32(device, 0x001100, 0x00000001);
} }
if (stat & 0x00000110) { if (stat & 0x00000110) {
...@@ -41,12 +42,12 @@ nv04_bus_intr(struct nvkm_subdev *subdev) ...@@ -41,12 +42,12 @@ nv04_bus_intr(struct nvkm_subdev *subdev)
if (subdev && subdev->intr) if (subdev && subdev->intr)
subdev->intr(subdev); subdev->intr(subdev);
stat &= ~0x00000110; stat &= ~0x00000110;
nv_wr32(bus, 0x001100, 0x00000110); nvkm_wr32(device, 0x001100, 0x00000110);
} }
if (stat) { if (stat) {
nv_error(bus, "unknown intr 0x%08x\n", stat); nv_error(bus, "unknown intr 0x%08x\n", stat);
nv_mask(bus, 0x001140, stat, 0x00000000); nvkm_mask(device, 0x001140, stat, 0x00000000);
} }
} }
...@@ -54,9 +55,10 @@ static int ...@@ -54,9 +55,10 @@ static int
nv04_bus_init(struct nvkm_object *object) nv04_bus_init(struct nvkm_object *object)
{ {
struct nvkm_bus *bus = (void *)object; struct nvkm_bus *bus = (void *)object;
struct nvkm_device *device = bus->subdev.device;
nv_wr32(bus, 0x001100, 0xffffffff); nvkm_wr32(device, 0x001100, 0xffffffff);
nv_wr32(bus, 0x001140, 0x00000111); nvkm_wr32(device, 0x001140, 0x00000111);
return nvkm_bus_init(bus); return nvkm_bus_init(bus);
} }
......
...@@ -28,8 +28,9 @@ static void ...@@ -28,8 +28,9 @@ static void
nv31_bus_intr(struct nvkm_subdev *subdev) nv31_bus_intr(struct nvkm_subdev *subdev)
{ {
struct nvkm_bus *bus = nvkm_bus(subdev); struct nvkm_bus *bus = nvkm_bus(subdev);
u32 stat = nv_rd32(bus, 0x001100) & nv_rd32(bus, 0x001140); struct nvkm_device *device = bus->subdev.device;
u32 gpio = nv_rd32(bus, 0x001104) & nv_rd32(bus, 0x001144); u32 stat = nvkm_rd32(device, 0x001100) & nvkm_rd32(device, 0x001140);
u32 gpio = nvkm_rd32(device, 0x001104) & nvkm_rd32(device, 0x001144);
if (gpio) { if (gpio) {
subdev = nvkm_subdev(bus, NVDEV_SUBDEV_GPIO); subdev = nvkm_subdev(bus, NVDEV_SUBDEV_GPIO);
...@@ -38,15 +39,15 @@ nv31_bus_intr(struct nvkm_subdev *subdev) ...@@ -38,15 +39,15 @@ nv31_bus_intr(struct nvkm_subdev *subdev)
} }
if (stat & 0x00000008) { /* NV41- */ if (stat & 0x00000008) { /* NV41- */
u32 addr = nv_rd32(bus, 0x009084); u32 addr = nvkm_rd32(device, 0x009084);
u32 data = nv_rd32(bus, 0x009088); u32 data = nvkm_rd32(device, 0x009088);
nv_error(bus, "MMIO %s of 0x%08x FAULT at 0x%06x\n", nv_error(bus, "MMIO %s of 0x%08x FAULT at 0x%06x\n",
(addr & 0x00000002) ? "write" : "read", data, (addr & 0x00000002) ? "write" : "read", data,
(addr & 0x00fffffc)); (addr & 0x00fffffc));
stat &= ~0x00000008; stat &= ~0x00000008;
nv_wr32(bus, 0x001100, 0x00000008); nvkm_wr32(device, 0x001100, 0x00000008);
} }
if (stat & 0x00070000) { if (stat & 0x00070000) {
...@@ -54,12 +55,12 @@ nv31_bus_intr(struct nvkm_subdev *subdev) ...@@ -54,12 +55,12 @@ nv31_bus_intr(struct nvkm_subdev *subdev)
if (subdev && subdev->intr) if (subdev && subdev->intr)
subdev->intr(subdev); subdev->intr(subdev);
stat &= ~0x00070000; stat &= ~0x00070000;
nv_wr32(bus, 0x001100, 0x00070000); nvkm_wr32(device, 0x001100, 0x00070000);
} }
if (stat) { if (stat) {
nv_error(bus, "unknown intr 0x%08x\n", stat); nv_error(bus, "unknown intr 0x%08x\n", stat);
nv_mask(bus, 0x001140, stat, 0x00000000); nvkm_mask(device, 0x001140, stat, 0x00000000);
} }
} }
...@@ -67,14 +68,15 @@ static int ...@@ -67,14 +68,15 @@ static int
nv31_bus_init(struct nvkm_object *object) nv31_bus_init(struct nvkm_object *object)
{ {
struct nvkm_bus *bus = (void *)object; struct nvkm_bus *bus = (void *)object;
struct nvkm_device *device = bus->subdev.device;
int ret; int ret;
ret = nvkm_bus_init(bus); ret = nvkm_bus_init(bus);
if (ret) if (ret)
return ret; return ret;
nv_wr32(bus, 0x001100, 0xffffffff); nvkm_wr32(device, 0x001100, 0xffffffff);
nv_wr32(bus, 0x001140, 0x00070008); nvkm_wr32(device, 0x001140, 0x00070008);
return 0; return 0;
} }
......
...@@ -29,14 +29,15 @@ ...@@ -29,14 +29,15 @@
static int static int
nv50_bus_hwsq_exec(struct nvkm_bus *bus, u32 *data, u32 size) nv50_bus_hwsq_exec(struct nvkm_bus *bus, u32 *data, u32 size)
{ {
struct nvkm_device *device = bus->subdev.device;
int i; int i;
nv_mask(bus, 0x001098, 0x00000008, 0x00000000); nvkm_mask(device, 0x001098, 0x00000008, 0x00000000);
nv_wr32(bus, 0x001304, 0x00000000); nvkm_wr32(device, 0x001304, 0x00000000);
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
nv_wr32(bus, 0x001400 + (i * 4), data[i]); nvkm_wr32(device, 0x001400 + (i * 4), data[i]);
nv_mask(bus, 0x001098, 0x00000018, 0x00000018); nvkm_mask(device, 0x001098, 0x00000018, 0x00000018);
nv_wr32(bus, 0x00130c, 0x00000003); nvkm_wr32(device, 0x00130c, 0x00000003);
return nv_wait(bus, 0x001308, 0x00000100, 0x00000000) ? 0 : -ETIMEDOUT; return nv_wait(bus, 0x001308, 0x00000100, 0x00000000) ? 0 : -ETIMEDOUT;
} }
...@@ -45,18 +46,19 @@ void ...@@ -45,18 +46,19 @@ void
nv50_bus_intr(struct nvkm_subdev *subdev) nv50_bus_intr(struct nvkm_subdev *subdev)
{ {
struct nvkm_bus *bus = nvkm_bus(subdev); struct nvkm_bus *bus = nvkm_bus(subdev);
u32 stat = nv_rd32(bus, 0x001100) & nv_rd32(bus, 0x001140); struct nvkm_device *device = bus->subdev.device;
u32 stat = nvkm_rd32(device, 0x001100) & nvkm_rd32(device, 0x001140);
if (stat & 0x00000008) { if (stat & 0x00000008) {
u32 addr = nv_rd32(bus, 0x009084); u32 addr = nvkm_rd32(device, 0x009084);
u32 data = nv_rd32(bus, 0x009088); u32 data = nvkm_rd32(device, 0x009088);
nv_error(bus, "MMIO %s of 0x%08x FAULT at 0x%06x\n", nv_error(bus, "MMIO %s of 0x%08x FAULT at 0x%06x\n",
(addr & 0x00000002) ? "write" : "read", data, (addr & 0x00000002) ? "write" : "read", data,
(addr & 0x00fffffc)); (addr & 0x00fffffc));
stat &= ~0x00000008; stat &= ~0x00000008;
nv_wr32(bus, 0x001100, 0x00000008); nvkm_wr32(device, 0x001100, 0x00000008);
} }
if (stat & 0x00010000) { if (stat & 0x00010000) {
...@@ -64,12 +66,12 @@ nv50_bus_intr(struct nvkm_subdev *subdev) ...@@ -64,12 +66,12 @@ nv50_bus_intr(struct nvkm_subdev *subdev)
if (subdev && subdev->intr) if (subdev && subdev->intr)
subdev->intr(subdev); subdev->intr(subdev);
stat &= ~0x00010000; stat &= ~0x00010000;
nv_wr32(bus, 0x001100, 0x00010000); nvkm_wr32(device, 0x001100, 0x00010000);
} }
if (stat) { if (stat) {
nv_error(bus, "unknown intr 0x%08x\n", stat); nv_error(bus, "unknown intr 0x%08x\n", stat);
nv_mask(bus, 0x001140, stat, 0); nvkm_mask(device, 0x001140, stat, 0);
} }
} }
...@@ -77,14 +79,15 @@ int ...@@ -77,14 +79,15 @@ int
nv50_bus_init(struct nvkm_object *object) nv50_bus_init(struct nvkm_object *object)
{ {
struct nvkm_bus *bus = (void *)object; struct nvkm_bus *bus = (void *)object;
struct nvkm_device *device = bus->subdev.device;
int ret; int ret;
ret = nvkm_bus_init(bus); ret = nvkm_bus_init(bus);
if (ret) if (ret)
return ret; return ret;
nv_wr32(bus, 0x001100, 0xffffffff); nvkm_wr32(device, 0x001100, 0xffffffff);
nv_wr32(bus, 0x001140, 0x00010008); nvkm_wr32(device, 0x001140, 0x00010008);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment