On Wed, Mar 26, 2014 at 1:27 PM, Ben Skeggs <skeggsb@xxxxxxxxx> wrote: > On Tue, Mar 25, 2014 at 9:10 AM, Thierry Reding > <thierry.reding@xxxxxxxxx> wrote: >> On Mon, Mar 24, 2014 at 05:42:33PM +0900, Alexandre Courbot wrote: >>> GK20A does not embed a dedicated COPY engine and thus cannot allocate >>> the copy channel that nouveau_accel_init() attempts to create. It also >>> lacks any display hardware, so the creation of a software channel does >>> not apply neither. >> >> Perhaps this should be two separate patches? >> >>> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c >> [...] >>> + if (device->chipset == 0xea) { >>> + /* gk20a does not have CE0/CE1 */ >> >> This would be another good candidate for a feature flag. > There are ways to query this in a chipset-independent way. However, > despite reporting it as an error if no copy engines are available, the > code should continue on without the channel happily. Perhaps we can > just punt the relevent error messages to a debug loglevel for now? Do you know how to query this in a chipset-independant way? I have failed to find any information for this. The code does continue without any issue after reporting the error, so indeed that check is not strictly necessary. But I was just mimicking what follows right after: if (device->chipset >= 0xa3 && device->chipset != 0xaa && device->chipset != 0xac) { ret = nouveau_channel_new(drm, &drm->client, NVDRM_DEVICE, NVDRM_CHAN + 1, NvDmaFB, NvDmaTT, &drm->cechan); if (ret) NV_ERROR(drm, "failed to create ce channel, %d\n", ret); arg0 = NvDmaFB; arg1 = NvDmaTT; } else { arg0 = NvDmaFB; arg1 = NvDmaTT; } So if we are trying to avoid showing this error for 0xa0 class devices, why not for NV_E0? -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html