Message ID | 1398060142-7937-10-git-send-email-acourbot@nvidia.com |
---|---|
State | Not Applicable, archived |
Headers | show |
On Mon, Apr 21, 2014 at 2:02 AM, Alexandre Courbot <acourbot@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. -ilia > > Signed-off-by: Alexandre Courbot <acourbot@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@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/nouveau -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Apr 22, 2014 at 4:07 AM, Ilia Mirkin <imirkin@alum.mit.edu> wrote: > On Mon, Apr 21, 2014 at 2:02 AM, Alexandre Courbot <acourbot@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. The mp_control() methods are the only ones I see, and, in my opinion, they should really have been implemented using reserved methods on a graphics class, and *not* in a purely software object.. If we need them on GK20A too, we should reimplement them in gr, and bump the minor version number so userspace knows. Ben. > > -ilia > >> >> Signed-off-by: Alexandre Courbot <acourbot@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@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/nouveau > _______________________________________________ > Nouveau mailing list > Nouveau@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/nouveau -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 04/22/2014 03:07 AM, Ilia Mirkin wrote: > On Mon, Apr 21, 2014 at 2:02 AM, Alexandre Courbot <acourbot@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@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@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/nouveau -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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);
Skip the creation of a software channel for GK20A as software methods are not yet supported. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> --- drivers/gpu/drm/nouveau/nouveau_drm.c | 5 +++++ 1 file changed, 5 insertions(+)