nvc0: initial support for GM20x GPUs

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
Ben Skeggs 2016-02-16 07:56:44 +10:00
parent 97fc3fd559
commit 33ace5544e
5 changed files with 11 additions and 0 deletions

View file

@ -968,6 +968,7 @@ GCRA::coalesce(ArrayList& insns)
case 0xf0:
case 0x100:
case 0x110:
case 0x120:
ret = doCoalesce(insns, JOIN_MASK_UNION);
break;
default:
@ -2231,6 +2232,7 @@ RegAlloc::InsertConstraintsPass::visit(BasicBlock *bb)
texConstraintNVE0(tex);
break;
case 0x110:
case 0x120:
texConstraintGM107(tex);
break;
default:

View file

@ -143,6 +143,7 @@ Target *Target::create(unsigned int chipset)
STATIC_ASSERT(Elements(operationClass) == OP_LAST + 1);
switch (chipset & ~0xf) {
case 0x110:
case 0x120:
return getTargetGM107(chipset);
case 0xc0:
case 0xd0:

View file

@ -192,6 +192,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NVF0_3D_CLASS 0x0000a197
#define NVEA_3D_CLASS 0x0000a297
#define GM107_3D_CLASS 0x0000b097
#define GM200_3D_CLASS 0x0000b197
#define NV50_2D_CLASS 0x0000502d
#define NVC0_2D_CLASS 0x0000902d
#define NV50_COMPUTE_CLASS 0x000050c0

View file

@ -603,6 +603,7 @@ nvc0_screen_init_compute(struct nvc0_screen *screen)
case 0xf0:
case 0x100:
case 0x110:
case 0x120:
return 0;
default:
return -1;
@ -665,6 +666,7 @@ nvc0_screen_create(struct nouveau_device *dev)
case 0xf0:
case 0x100:
case 0x110:
case 0x120:
break;
default:
return NULL;
@ -733,6 +735,7 @@ nvc0_screen_create(struct nouveau_device *dev)
PUSH_DATA (push, screen->nvsw->handle);
switch (dev->chipset & ~0xf) {
case 0x120:
case 0x110:
case 0x100:
case 0xf0:
@ -784,6 +787,9 @@ nvc0_screen_create(struct nouveau_device *dev)
PUSH_DATA (push, screen->fence.bo->offset + 16);
switch (dev->chipset & ~0xf) {
case 0x120:
obj_class = GM200_3D_CLASS;
break;
case 0x110:
obj_class = GM107_3D_CLASS;
break;

View file

@ -122,6 +122,7 @@ nouveau_drm_screen_create(int fd)
case 0xf0:
case 0x100:
case 0x110:
case 0x120:
init = nvc0_screen_create;
break;
default: