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

Message ID 20180115161431.803248-2-arnd@arndb.de
State New
Headers show
Series
  • [1/2] fbdev: don't select I2C directly
Related show

Commit Message

Arnd Bergmann Jan. 15, 2018, 4:14 p.m.
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(+)

-- 
2.9.0

--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Rob Clark Jan. 17, 2018, 9:52 p.m. | #1
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

>

--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Lucas Stach Jan. 18, 2018, 10:15 a.m. | #2
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

--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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