Thierry Reding
2018-Nov-07 15:34 UTC
[Nouveau] [PATCH] drm/nouveau: tegra: Initialize mode configuration
On Tue, Nov 06, 2018 at 06:41:22PM +0200, Ville Syrjälä wrote:> On Tue, Nov 06, 2018 at 05:24:15PM +0100, Thierry Reding wrote: > > From: Thierry Reding <treding at nvidia.com> > > > > Irrespective of whether or not the device has any usable outputs, the > > modesetting helpers will try to register all the resources such as CRTCs > > and planes. Unfortunately, the helpers rely on drm_mode_config_init() to > > properly set up internal data structures. Since the Tegra GPU does not > > have a display engine, the Nouveau driver doesn't set this up for Tegra, > > which results in the following oops on driver probe: > > Remove DRIVER_MODESET ?Yeah, that works as well. Technically I suppose somebody could be instantiating the IP in an SoC and include a display engine, in which case we'd need the DRIVER_MODESET feature again, but I'm not aware of anyone doing that, so it may not be worth planning for that at this point. Thierry -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20181107/905eb2dc/attachment.sig>
Ilia Mirkin
2018-Nov-07 15:52 UTC
[Nouveau] [PATCH] drm/nouveau: tegra: Initialize mode configuration
On Wed, Nov 7, 2018 at 10:34 AM Thierry Reding <thierry.reding at gmail.com> wrote:> > On Tue, Nov 06, 2018 at 06:41:22PM +0200, Ville Syrjälä wrote: > > On Tue, Nov 06, 2018 at 05:24:15PM +0100, Thierry Reding wrote: > > > From: Thierry Reding <treding at nvidia.com> > > > > > > Irrespective of whether or not the device has any usable outputs, the > > > modesetting helpers will try to register all the resources such as CRTCs > > > and planes. Unfortunately, the helpers rely on drm_mode_config_init() to > > > properly set up internal data structures. Since the Tegra GPU does not > > > have a display engine, the Nouveau driver doesn't set this up for Tegra, > > > which results in the following oops on driver probe: > > > > Remove DRIVER_MODESET ? > > Yeah, that works as well. Technically I suppose somebody could be > instantiating the IP in an SoC and include a display engine, in which > case we'd need the DRIVER_MODESET feature again, but I'm not aware of > anyone doing that, so it may not be worth planning for that at this > point.I thought DRIVER_MODESET was required even for rendernodes. Is that no longer the case? Note that e.g. GF117 GPUs also don't have a display engine hooked up in nouveau (or in hardware). -ilia
Thierry Reding
2018-Nov-07 16:12 UTC
[Nouveau] [PATCH] drm/nouveau: tegra: Initialize mode configuration
On Wed, Nov 07, 2018 at 10:52:11AM -0500, Ilia Mirkin wrote:> On Wed, Nov 7, 2018 at 10:34 AM Thierry Reding <thierry.reding at gmail.com> wrote: > > > > On Tue, Nov 06, 2018 at 06:41:22PM +0200, Ville Syrjälä wrote: > > > On Tue, Nov 06, 2018 at 05:24:15PM +0100, Thierry Reding wrote: > > > > From: Thierry Reding <treding at nvidia.com> > > > > > > > > Irrespective of whether or not the device has any usable outputs, the > > > > modesetting helpers will try to register all the resources such as CRTCs > > > > and planes. Unfortunately, the helpers rely on drm_mode_config_init() to > > > > properly set up internal data structures. Since the Tegra GPU does not > > > > have a display engine, the Nouveau driver doesn't set this up for Tegra, > > > > which results in the following oops on driver probe: > > > > > > Remove DRIVER_MODESET ? > > > > Yeah, that works as well. Technically I suppose somebody could be > > instantiating the IP in an SoC and include a display engine, in which > > case we'd need the DRIVER_MODESET feature again, but I'm not aware of > > anyone doing that, so it may not be worth planning for that at this > > point. > > I thought DRIVER_MODESET was required even for rendernodes. Is that no > longer the case?Indeed. Removing the DRIVER_MODESET feature gets the driver to load properly, but trying to actually use Nouveau (e.g. kmscube) crashes in other places. Now that you mention it, I vaguely remember trying to do something similar a long time ago and I had to split up DRIVER_MODESET into more fine-grained features (basically DRIVER_MODESET and DRIVER_LEGACY, if I remember correctly) to avoid crashes. But this must have been three or four years ago and I can't recall the exact details.> Note that e.g. GF117 GPUs also don't have a display engine hooked up > in nouveau (or in hardware).That's interesting. I think there'd be some symmetric elegance to it if the PCI driver supported DRIVER_MODESET irrespective of the feature set of the card and if the platform driver did the same. In the end, this isn't really a driver-specific feature, but a device-specific feature. Or to put it another way: the driver inherently supports modesetting features, irrespective of a device's specific capabilities. Thierry -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20181107/6959f76e/attachment.sig>
Possibly Parallel Threads
- [PATCH] drm/nouveau: tegra: Initialize mode configuration
- [PATCH] drm/nouveau: tegra: Initialize mode configuration
- [PATCH] drm/nouveau: tegra: Initialize mode configuration
- [PATCH 08/11] drm/nouveau: tegra: Skip IOMMU initialization if already attached
- [PATCH 08/11] drm/nouveau: tegra: Skip IOMMU initialization if already attached