All available subchannels are now available for userspace to do with as it
pleases on NVC0+.
On all earlier chipsets, the kernel still uses a software object on subc 0
to implement the page flip completion method.  I hope to find some decent
way of addressing this too, but it's a tad tricker prior to fermi.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
        }
 
        if (dev_priv->card_type < NV_C0) {
-               init->subchan[0].handle = NvM2MF;
-               if (dev_priv->card_type < NV_50)
-                       init->subchan[0].grclass = 0x0039;
-               else
-                       init->subchan[0].grclass = 0x5039;
-               init->subchan[1].handle = NvSw;
-               init->subchan[1].grclass = NV_SW;
-               init->nr_subchan = 2;
-       } else {
-               init->subchan[0].handle  = 0x9039;
-               init->subchan[0].grclass = 0x9039;
+               init->subchan[0].handle = NvSw;
+               init->subchan[0].grclass = NV_SW;
                init->nr_subchan = 1;
+       } else {
+               init->nr_subchan = 0;
        }
 
        /* Named memory object area */
 
 
 /* Hardcoded object assignments to subchannels (subchannel id). */
 enum {
-       NvSubM2MF       = 0,
-       NvSubSw         = 1,
+       NvSubSw         = 0,
+       NvSubM2MF       = 1,
        NvSub2D         = 2,
        NvSubCtxSurf2D  = 2,
        NvSubGdiRect    = 3,