Commit a0b1de84 authored by Ben Skeggs's avatar Ben Skeggs

drm/nv20-nv30/gr: move to exec engine interface

A bit of cleanup done along the way, but, like nv40/nv50, needs more.
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 39c8d368
...@@ -1167,13 +1167,7 @@ extern struct nouveau_bitfield nv10_graph_intr[]; ...@@ -1167,13 +1167,7 @@ extern struct nouveau_bitfield nv10_graph_intr[];
extern struct nouveau_bitfield nv10_graph_nstatus[]; extern struct nouveau_bitfield nv10_graph_nstatus[];
/* nv20_graph.c */ /* nv20_graph.c */
extern int nv20_graph_create_context(struct nouveau_channel *); extern int nv20_graph_create(struct drm_device *);
extern void nv20_graph_destroy_context(struct nouveau_channel *);
extern int nv20_graph_load_context(struct nouveau_channel *);
extern int nv20_graph_unload_context(struct drm_device *);
extern int nv20_graph_init(struct drm_device *);
extern void nv20_graph_takedown(struct drm_device *);
extern int nv30_graph_init(struct drm_device *);
extern void nv20_graph_set_tile_region(struct drm_device *dev, int i); extern void nv20_graph_set_tile_region(struct drm_device *dev, int i);
/* nv40_graph.c */ /* nv40_graph.c */
......
...@@ -180,15 +180,10 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) ...@@ -180,15 +180,10 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev)
engine->fb.init_tile_region = nv10_fb_init_tile_region; engine->fb.init_tile_region = nv10_fb_init_tile_region;
engine->fb.set_tile_region = nv10_fb_set_tile_region; engine->fb.set_tile_region = nv10_fb_set_tile_region;
engine->fb.free_tile_region = nv10_fb_free_tile_region; engine->fb.free_tile_region = nv10_fb_free_tile_region;
engine->graph.init = nv20_graph_init; engine->graph.init = nouveau_stub_init;
engine->graph.takedown = nv20_graph_takedown; engine->graph.takedown = nouveau_stub_takedown;
engine->graph.channel = nv10_graph_channel; engine->graph.channel = nvc0_graph_channel;
engine->graph.create_context = nv20_graph_create_context; engine->graph.fifo_access = nvc0_graph_fifo_access;
engine->graph.destroy_context = nv20_graph_destroy_context;
engine->graph.fifo_access = nv04_graph_fifo_access;
engine->graph.load_context = nv20_graph_load_context;
engine->graph.unload_context = nv20_graph_unload_context;
engine->graph.object_new = nv04_graph_object_new;
engine->graph.set_tile_region = nv20_graph_set_tile_region; engine->graph.set_tile_region = nv20_graph_set_tile_region;
engine->fifo.channels = 32; engine->fifo.channels = 32;
engine->fifo.init = nv10_fifo_init; engine->fifo.init = nv10_fifo_init;
...@@ -238,15 +233,10 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) ...@@ -238,15 +233,10 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev)
engine->fb.init_tile_region = nv30_fb_init_tile_region; engine->fb.init_tile_region = nv30_fb_init_tile_region;
engine->fb.set_tile_region = nv10_fb_set_tile_region; engine->fb.set_tile_region = nv10_fb_set_tile_region;
engine->fb.free_tile_region = nv30_fb_free_tile_region; engine->fb.free_tile_region = nv30_fb_free_tile_region;
engine->graph.init = nv30_graph_init; engine->graph.init = nouveau_stub_init;
engine->graph.takedown = nv20_graph_takedown; engine->graph.takedown = nouveau_stub_takedown;
engine->graph.fifo_access = nv04_graph_fifo_access; engine->graph.channel = nvc0_graph_channel;
engine->graph.channel = nv10_graph_channel; engine->graph.fifo_access = nvc0_graph_fifo_access;
engine->graph.create_context = nv20_graph_create_context;
engine->graph.destroy_context = nv20_graph_destroy_context;
engine->graph.load_context = nv20_graph_load_context;
engine->graph.unload_context = nv20_graph_unload_context;
engine->graph.object_new = nv04_graph_object_new;
engine->graph.set_tile_region = nv20_graph_set_tile_region; engine->graph.set_tile_region = nv20_graph_set_tile_region;
engine->fifo.channels = 32; engine->fifo.channels = 32;
engine->fifo.init = nv10_fifo_init; engine->fifo.init = nv10_fifo_init;
...@@ -614,6 +604,10 @@ nouveau_card_init(struct drm_device *dev) ...@@ -614,6 +604,10 @@ nouveau_card_init(struct drm_device *dev)
goto out_timer; goto out_timer;
switch (dev_priv->card_type) { switch (dev_priv->card_type) {
case NV_20:
case NV_30:
nv20_graph_create(dev);
break;
case NV_40: case NV_40:
nv40_graph_create(dev); nv40_graph_create(dev);
break; break;
...@@ -623,6 +617,8 @@ nouveau_card_init(struct drm_device *dev) ...@@ -623,6 +617,8 @@ nouveau_card_init(struct drm_device *dev)
case NV_C0: case NV_C0:
nvc0_graph_create(dev); nvc0_graph_create(dev);
break; break;
default:
break;
} }
switch (dev_priv->chipset) { switch (dev_priv->chipset) {
......
This diff is collapsed.
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