On 04/22/2014 03:07 AM, Ilia Mirkin wrote: > On Mon, Apr 21, 2014 at 2:02 AM, Alexandre Courbot <acourbot at nvidia.com> > wrote: >> Skip the creation of a software channel for GK20A as software methods >> are not yet supported. > > How is GK20A different from a nvc0+ card that lacks PDISPLAY (like all > the 3D Controller ones, and I guess even some that come up as VGA > controller in PCI but don't have any outputs in their VBIOS)? i.e. > what's wrong with just doing the same thing that GK1xx does? Note that > there are sw methods that don't deal with display as well.
Well, as it turns out... I have tried reverting this patch and enabling nvc0_software_oclass for GK20A and things worked like a charm. 0_o This is definitely different from when I first drafted this patch series, where a software class could not be used on GK20A due to hard dependencies on display. But it seems like today's code can accommodate much better with that situation. That's great - this will allow us to get rid of this ungraceful patch. Thanks for making me check it again. Probably a v3 will be necessary to enable the software class in patch 10 (and fix the byte/word typo in patch 7). I will just wait a bit to see if this v2 gets more comments before sending it. > > -ilia > >> >> Signed-off-by: Alexandre Courbot <acourbot at nvidia.com> >> --- >> drivers/gpu/drm/nouveau/nouveau_drm.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c >> b/drivers/gpu/drm/nouveau/nouveau_drm.c >> index ddd83756b9a2..5b46148ffd32 100644 >> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c >> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c >> @@ -208,6 +208,10 @@ nouveau_accel_init(struct nouveau_drm *drm) >> return; >> } >> >> + /* Need to figure out how to handle sw for gk20a */ >> + if (device->chipset == 0xea) >> + goto skip_sw_init; >> + >> ret = nouveau_object_new(nv_object(drm), NVDRM_CHAN, NVDRM_NVSW, >> nouveau_abi16_swclass(drm), NULL, 0, >> &object); >> if (ret == 0) { >> @@ -234,6 +238,7 @@ nouveau_accel_init(struct nouveau_drm *drm) >> return; >> } >> >> +skip_sw_init: >> if (device->card_type < NV_C0) { >> ret = nouveau_gpuobj_new(drm->device, NULL, 32, 0, 0, >> &drm->notify); >> -- >> 1.9.2 >> >> _______________________________________________ >> Nouveau mailing list >> Nouveau at lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/nouveau