diff mbox

[2/2] drm/msm/adreno: fix nvmem related link error

Message ID 20180115161431.803248-2-arnd@arndb.de (mailing list archive)
State New, archived
Headers show

Commit Message

Arnd Bergmann Jan. 15, 2018, 4:14 p.m. UTC
When NVMEM is configured as a loadable module, and adreno
is built-in, we get a link failure:

drivers/gpu/drm/msm/adreno/a5xx_gpu.o: In function `a5xx_gpu_init':
a5xx_gpu.c:(.text+0x15cc): undefined reference to `nvmem_cell_get'
a5xx_gpu.c:(.text+0x15da): undefined reference to `nvmem_cell_read'
a5xx_gpu.c:(.text+0x15e4): undefined reference to `nvmem_cell_put'

This adds a Kconfig dependency to enforce valid configurations,
when NVMEM is a loadable module, adreno now has to also be one.
The code seems to deal fine with nvmem being completely disabled,
it will just not set the right speed bin then, so we don't need
a hard dependency.

Fixes: f56d9df656c4 ("drm/msm/adreno: Read the speed bins for a5xx targets")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/gpu/drm/msm/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Jordan Crouse Jan. 17, 2018, 9:21 p.m. UTC | #1
On Mon, Jan 15, 2018 at 05:14:05PM +0100, Arnd Bergmann wrote:
> When NVMEM is configured as a loadable module, and adreno
> is built-in, we get a link failure:
> 
> drivers/gpu/drm/msm/adreno/a5xx_gpu.o: In function `a5xx_gpu_init':
> a5xx_gpu.c:(.text+0x15cc): undefined reference to `nvmem_cell_get'
> a5xx_gpu.c:(.text+0x15da): undefined reference to `nvmem_cell_read'
> a5xx_gpu.c:(.text+0x15e4): undefined reference to `nvmem_cell_put'
> 
> This adds a Kconfig dependency to enforce valid configurations,
> when NVMEM is a loadable module, adreno now has to also be one.
> The code seems to deal fine with nvmem being completely disabled,
> it will just not set the right speed bin then, so we don't need
> a hard dependency.
> 
> Fixes: f56d9df656c4 ("drm/msm/adreno: Read the speed bins for a5xx targets")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org>
> ---
>  drivers/gpu/drm/msm/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig
> index 99d39b2aefa6..74fb1c816da9 100644
> --- a/drivers/gpu/drm/msm/Kconfig
> +++ b/drivers/gpu/drm/msm/Kconfig
> @@ -4,6 +4,7 @@ config DRM_MSM
>  	depends on DRM
>  	depends on ARCH_QCOM || (ARM && COMPILE_TEST)
>  	depends on OF && COMMON_CLK
> +	depends on NVMEM || !NVMEM
>  	depends on MMU
>  	select QCOM_MDT_LOADER if ARCH_QCOM
>  	select REGULATOR
> -- 
> 2.9.0
> 
> _______________________________________________
> Freedreno mailing list
> Freedreno@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/freedreno
Rob Clark Jan. 17, 2018, 9:52 p.m. UTC | #2
On Mon, Jan 15, 2018 at 11:14 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> When NVMEM is configured as a loadable module, and adreno
> is built-in, we get a link failure:
>
> drivers/gpu/drm/msm/adreno/a5xx_gpu.o: In function `a5xx_gpu_init':
> a5xx_gpu.c:(.text+0x15cc): undefined reference to `nvmem_cell_get'
> a5xx_gpu.c:(.text+0x15da): undefined reference to `nvmem_cell_read'
> a5xx_gpu.c:(.text+0x15e4): undefined reference to `nvmem_cell_put'
>
> This adds a Kconfig dependency to enforce valid configurations,
> when NVMEM is a loadable module, adreno now has to also be one.
> The code seems to deal fine with nvmem being completely disabled,
> it will just not set the right speed bin then, so we don't need
> a hard dependency.
>
> Fixes: f56d9df656c4 ("drm/msm/adreno: Read the speed bins for a5xx targets")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Arnd, beyond randconfig, I guess there are probably two real-world
scenarios, both =m (distro) and both =y (android/oe/etc)..

Is there a kconfig way to say if nvmem=m then drm_msm must be =n or =m?

BR,
-R


> ---
>  drivers/gpu/drm/msm/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig
> index 99d39b2aefa6..74fb1c816da9 100644
> --- a/drivers/gpu/drm/msm/Kconfig
> +++ b/drivers/gpu/drm/msm/Kconfig
> @@ -4,6 +4,7 @@ config DRM_MSM
>         depends on DRM
>         depends on ARCH_QCOM || (ARM && COMPILE_TEST)
>         depends on OF && COMMON_CLK
> +       depends on NVMEM || !NVMEM
>         depends on MMU
>         select QCOM_MDT_LOADER if ARCH_QCOM
>         select REGULATOR
> --
> 2.9.0
>
Lucas Stach Jan. 18, 2018, 10:15 a.m. UTC | #3
Am Mittwoch, den 17.01.2018, 16:52 -0500 schrieb Rob Clark:
> On Mon, Jan 15, 2018 at 11:14 AM, Arnd Bergmann <arnd@arndb.de>
> wrote:
> > When NVMEM is configured as a loadable module, and adreno
> > is built-in, we get a link failure:
> > 
> > drivers/gpu/drm/msm/adreno/a5xx_gpu.o: In function `a5xx_gpu_init':
> > a5xx_gpu.c:(.text+0x15cc): undefined reference to `nvmem_cell_get'
> > a5xx_gpu.c:(.text+0x15da): undefined reference to `nvmem_cell_read'
> > a5xx_gpu.c:(.text+0x15e4): undefined reference to `nvmem_cell_put'
> > 
> > This adds a Kconfig dependency to enforce valid configurations,
> > when NVMEM is a loadable module, adreno now has to also be one.
> > The code seems to deal fine with nvmem being completely disabled,
> > it will just not set the right speed bin then, so we don't need
> > a hard dependency.
> > 
> > Fixes: f56d9df656c4 ("drm/msm/adreno: Read the speed bins for a5xx
> > targets")
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> 
> Arnd, beyond randconfig, I guess there are probably two real-world
> scenarios, both =m (distro) and both =y (android/oe/etc)..
> 
> Is there a kconfig way to say if nvmem=m then drm_msm must be =n or
> =m?

That's exactly what the below patch does.

Regards,
Lucas

> BR,
> -R
> 
> 
> > ---
> >  drivers/gpu/drm/msm/Kconfig | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/gpu/drm/msm/Kconfig
> > b/drivers/gpu/drm/msm/Kconfig
> > index 99d39b2aefa6..74fb1c816da9 100644
> > --- a/drivers/gpu/drm/msm/Kconfig
> > +++ b/drivers/gpu/drm/msm/Kconfig
> > @@ -4,6 +4,7 @@ config DRM_MSM
> >         depends on DRM
> >         depends on ARCH_QCOM || (ARM && COMPILE_TEST)
> >         depends on OF && COMMON_CLK
> > +       depends on NVMEM || !NVMEM
> >         depends on MMU
> >         select QCOM_MDT_LOADER if ARCH_QCOM
> >         select REGULATOR
> > --
> > 2.9.0
> > 
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig
index 99d39b2aefa6..74fb1c816da9 100644
--- a/drivers/gpu/drm/msm/Kconfig
+++ b/drivers/gpu/drm/msm/Kconfig
@@ -4,6 +4,7 @@  config DRM_MSM
 	depends on DRM
 	depends on ARCH_QCOM || (ARM && COMPILE_TEST)
 	depends on OF && COMMON_CLK
+	depends on NVMEM || !NVMEM
 	depends on MMU
 	select QCOM_MDT_LOADER if ARCH_QCOM
 	select REGULATOR