Thierry Reding
2015-Jan-06 11:49 UTC
[Nouveau] [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
On Mon, Jan 05, 2015 at 08:50:18PM +0100, Alexandre Courbot wrote:> On Mon, Jan 5, 2015 at 4:32 PM, Thierry Reding <thierry.reding at gmail.com> wrote: > > On Tue, Dec 30, 2014 at 11:18:34AM +0800, Vince Hsu wrote: > >> Hi Emil, > >> > >> On 12/30/2014 10:34 AM, Emil Velikov wrote: > >> >On 23/12/14 10:40, Vince Hsu wrote: > >> >>This patch adds some checks in the suspend/resume functions to distinguish > >> >>the dGPU and mobile GPU and exports some variables/functions so that the > >> >>nouveau platform device can reuse them. > >> >> > >> >Hi Vince, > >> > > >> >Afaiu one needs to export a symbol as it's used by another module or > >> >subsystem. With the follow up two patches you are not doing either one, > >> >so I'd assume that you can just omit the EXPORT_* changes. > >> The nouveau platform device driver is built as another module - > >> nouveau_platform.ko. :) > > > > I'd like to hear the opinion of the nouveau people and Alex, but I'd > > very much prefer if nouveau_platform.o was simply linked into the > > nouveau.ko module. I don't see any good reason to keep it separate. > > Yep, I agree. The decision to host platform support in a separate > module looks misleaded if it results in additional exports that we > would otherwise avoid. IIUC I did this to be able to use the module > convenience macros to register the platform driver. > > > > > Something like the attached patch (untested) ought to do it. > > This patch alone won't be enough for the reason I mentioned above. > However, if Vince doesn't mind handling the platform driver > registration manually in nouveau_drm_init/nouveau_drm_exit, I agree > this would be the way to go.If we do the conversion to generic power domains, the only Tegra- specific API remaining will be the access to the fuse registers for the speedo value. At that point we wouldn't need the ARCH_TEGRA dependency any longer and could always build the platform driver along with the PCI driver. I guess we could do that even now if we simply #ifdef the various Tegra- specific parts. That in turn would have the advantage that we don't need to #ifdef the driver registration code. And it would help separate things in case anybody wanted to use one of the SoC GPUs in a non-Tegra SoC. Thierry -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20150106/b856b87c/attachment.sig>
Vince Hsu
2015-Jan-06 12:27 UTC
[Nouveau] [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
On 01/06/2015 07:49 PM, Thierry Reding wrote:> * PGP Signed by an unknown key > > On Mon, Jan 05, 2015 at 08:50:18PM +0100, Alexandre Courbot wrote: >> On Mon, Jan 5, 2015 at 4:32 PM, Thierry Reding <thierry.reding at gmail.com> wrote: >>> On Tue, Dec 30, 2014 at 11:18:34AM +0800, Vince Hsu wrote: >>>> Hi Emil, >>>> >>>> On 12/30/2014 10:34 AM, Emil Velikov wrote: >>>>> On 23/12/14 10:40, Vince Hsu wrote: >>>>>> This patch adds some checks in the suspend/resume functions to distinguish >>>>>> the dGPU and mobile GPU and exports some variables/functions so that the >>>>>> nouveau platform device can reuse them. >>>>>> >>>>> Hi Vince, >>>>> >>>>> Afaiu one needs to export a symbol as it's used by another module or >>>>> subsystem. With the follow up two patches you are not doing either one, >>>>> so I'd assume that you can just omit the EXPORT_* changes. >>>> The nouveau platform device driver is built as another module - >>>> nouveau_platform.ko. :) >>> I'd like to hear the opinion of the nouveau people and Alex, but I'd >>> very much prefer if nouveau_platform.o was simply linked into the >>> nouveau.ko module. I don't see any good reason to keep it separate. >> Yep, I agree. The decision to host platform support in a separate >> module looks misleaded if it results in additional exports that we >> would otherwise avoid. IIUC I did this to be able to use the module >> convenience macros to register the platform driver. >> >>> Something like the attached patch (untested) ought to do it. >> This patch alone won't be enough for the reason I mentioned above. >> However, if Vince doesn't mind handling the platform driver >> registration manually in nouveau_drm_init/nouveau_drm_exit, I agree >> this would be the way to go. > If we do the conversion to generic power domains, the only Tegra- > specific API remaining will be the access to the fuse registers for the > speedo value. At that point we wouldn't need the ARCH_TEGRA dependency > any longer and could always build the platform driver along with the PCI > driver.Do we really want the platform driver always built with the PCI driver even there is no dependency between them. Actually I have some patches to build the platform driver with !CONFIG_PCI and would like to post them maybe later. Thanks, Vince> > I guess we could do that even now if we simply #ifdef the various Tegra- > specific parts. That in turn would have the advantage that we don't need > to #ifdef the driver registration code. And it would help separate > things in case anybody wanted to use one of the SoC GPUs in a non-Tegra > SoC.
Thierry Reding
2015-Jan-06 14:37 UTC
[Nouveau] [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
On Tue, Jan 06, 2015 at 08:27:06PM +0800, Vince Hsu wrote:> > On 01/06/2015 07:49 PM, Thierry Reding wrote: > >* PGP Signed by an unknown key > > > >On Mon, Jan 05, 2015 at 08:50:18PM +0100, Alexandre Courbot wrote: > >>On Mon, Jan 5, 2015 at 4:32 PM, Thierry Reding <thierry.reding at gmail.com> wrote: > >>>On Tue, Dec 30, 2014 at 11:18:34AM +0800, Vince Hsu wrote: > >>>>Hi Emil, > >>>> > >>>>On 12/30/2014 10:34 AM, Emil Velikov wrote: > >>>>>On 23/12/14 10:40, Vince Hsu wrote: > >>>>>>This patch adds some checks in the suspend/resume functions to distinguish > >>>>>>the dGPU and mobile GPU and exports some variables/functions so that the > >>>>>>nouveau platform device can reuse them. > >>>>>> > >>>>>Hi Vince, > >>>>> > >>>>>Afaiu one needs to export a symbol as it's used by another module or > >>>>>subsystem. With the follow up two patches you are not doing either one, > >>>>>so I'd assume that you can just omit the EXPORT_* changes. > >>>>The nouveau platform device driver is built as another module - > >>>>nouveau_platform.ko. :) > >>>I'd like to hear the opinion of the nouveau people and Alex, but I'd > >>>very much prefer if nouveau_platform.o was simply linked into the > >>>nouveau.ko module. I don't see any good reason to keep it separate. > >>Yep, I agree. The decision to host platform support in a separate > >>module looks misleaded if it results in additional exports that we > >>would otherwise avoid. IIUC I did this to be able to use the module > >>convenience macros to register the platform driver. > >> > >>>Something like the attached patch (untested) ought to do it. > >>This patch alone won't be enough for the reason I mentioned above. > >>However, if Vince doesn't mind handling the platform driver > >>registration manually in nouveau_drm_init/nouveau_drm_exit, I agree > >>this would be the way to go. > >If we do the conversion to generic power domains, the only Tegra- > >specific API remaining will be the access to the fuse registers for the > >speedo value. At that point we wouldn't need the ARCH_TEGRA dependency > >any longer and could always build the platform driver along with the PCI > >driver. > Do we really want the platform driver always built with the PCI driver even > there is no dependency between them. Actually I have some patches to > build the platform driver with !CONFIG_PCI and would like to post them maybe > later.I do see some advantage in making Nouveau build with !CONFIG_PCI because it allows building the driver for an SoC without PCI. But I think always compiling whatever is available won't hurt. Nouveau itself is rather big (~1 MiB of text and ~120 KiB of data) whereas the platform code weighs in at around 1.5 KiB of text and 108 B of data. I suspect that the PCI glue is equally negligible. Thierry -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20150106/4f5c5237/attachment.sig>
Apparently Analagous Threads
- [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
- [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
- [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
- [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions
- [PATCH nouveau 09/11] drm: export some variable and functions to resue the PM functions