All of lore.kernel.org
 help / color / mirror / Atom feed
From: Randy Dunlap <rdunlap@infradead.org>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: kernel test robot <lkp@intel.com>,
	Masahiro Yamada <masahiroy@kernel.org>,
	Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>,
	dri-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	Jacopo Mondi <jacopo+renesas@jmondi.org>
Subject: Re: [PATCH] drm: rcar-du: fix linker undefined references
Date: Fri, 23 Apr 2021 14:56:11 -0700	[thread overview]
Message-ID: <dca3ea68-9259-25f9-3d89-983783f9f7da@infradead.org> (raw)
In-Reply-To: <YINAJP1iPwsukLah@pendragon.ideasonboard.com>

On 4/23/21 2:46 PM, Laurent Pinchart wrote:
> Hi Randy,
> 
> Thank you for the patch.
> 
> On Fri, Apr 23, 2021 at 02:37:27PM -0700, Randy Dunlap wrote:
>> When DRM_RCAR_DU=y and DRM_RCAR_LVDS=m, there are several build errors
>> as reported by 'kernel test robot'. These can be corrected by changing
>> "imply" to "select".
>>
>> In looking at this, the same problem (build errors) happens when
>> DRM_RCAR_DU=y and DRM_RCAR_CMM=m, so again change the "imply" to
>> "select" here as well.
>>
>> These 2 changes fix the following 8 build/link errors:
>>
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function `rcar_du_crtc_atomic_enable':
>> rcar_du_crtc.c:(.text+0x1be8): undefined reference to `rcar_lvds_clk_enable'
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function `rcar_du_crtc_atomic_disable':
>> rcar_du_crtc.c:(.text+0x2438): undefined reference to `rcar_lvds_clk_disable'
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_drv.o: in function `rcar_du_init':
>> rcar_du_drv.c:(.init.text+0x14): undefined reference to `rcar_du_of_init'
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_encoder.o: in function `rcar_du_encoder_init':
>> rcar_du_encoder.c:(.text+0x1d4): undefined reference to `rcar_lvds_dual_link'
>>
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function `rcar_du_cmm_setup':
>> rcar_du_crtc.c:(.text+0x380): undefined reference to `rcar_cmm_setup'
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function `rcar_du_crtc_atomic_enable':
>> rcar_du_crtc.c:(.text+0x1c08): undefined reference to `rcar_cmm_enable'
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function `rcar_du_crtc_atomic_disable':
>> rcar_du_crtc.c:(.text+0x231c): undefined reference to `rcar_cmm_disable'
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_kms.o: in function `rcar_du_modeset_init':
>> rcar_du_kms.c:(.text+0xd08): undefined reference to `rcar_cmm_init'
>>
>> Fixes: e08e934d6c28 ("drm: rcar-du: Add support for CMM")
>> Fixes: 02f2b30032c1 ("drm: rcar-du: lvds: Add API to enable/disable clock output")
>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
>> Reported-by: kernel test robot <lkp@intel.com>
>> Cc: Masahiro Yamada <masahiroy@kernel.org>
>> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>> Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
>> Cc: dri-devel@lists.freedesktop.org
>> Cc: linux-renesas-soc@vger.kernel.org
>> Cc: Jacopo Mondi <jacopo+renesas@jmondi.org>
>> ---
>>   drivers/gpu/drm/rcar-du/Kconfig |    4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> --- linux-next-20210420.orig/drivers/gpu/drm/rcar-du/Kconfig
>> +++ linux-next-20210420/drivers/gpu/drm/rcar-du/Kconfig
>> @@ -4,8 +4,8 @@ config DRM_RCAR_DU
>>   	depends on DRM && OF
>>   	depends on ARM || ARM64
>>   	depends on ARCH_RENESAS || COMPILE_TEST
>> -	imply DRM_RCAR_CMM
>> -	imply DRM_RCAR_LVDS
>> +	select DRM_RCAR_CMM
>> +	select DRM_RCAR_LVDS
> 
> No all platforms that integrate a DU have CMM and/or LVDS support, so we
> shouldn't select the automatically.
> 
> Would
> 
> 	depends on DRM_RCAR_CMM || DRM_RCAR_CMM=n
> 	depends on DRM_RCAR_LVDS || DRM_RCAR_LVDS=n
> 

Looks good; I like it, but kconfig does not:

$ xbuild_arm64.sh  oldconfig
make[1]: Entering directory 
'/home/rdunlap/lnx/next/linux-next-20210420/ARM64'
   GEN     Makefile
drivers/gpu/drm/rcar-du/Kconfig:2:error: recursive dependency detected!
drivers/gpu/drm/rcar-du/Kconfig:2:	symbol DRM_RCAR_DU depends on 
DRM_RCAR_CMM
drivers/gpu/drm/rcar-du/Kconfig:17:	symbol DRM_RCAR_CMM depends on 
DRM_RCAR_DU
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"

> work ? I thought that's what "imply" meant, but it seems I got it wrong.
> 
>>   	select DRM_KMS_HELPER
>>   	select DRM_KMS_CMA_HELPER
>>   	select DRM_GEM_CMA_HELPER
> 


Thanks.

WARNING: multiple messages have this Message-ID (diff)
From: Randy Dunlap <rdunlap@infradead.org>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: kernel test robot <lkp@intel.com>,
	Masahiro Yamada <masahiroy@kernel.org>,
	dri-devel@lists.freedesktop.org,
	linux-renesas-soc@vger.kernel.org,
	Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>,
	Jacopo Mondi <jacopo+renesas@jmondi.org>
Subject: Re: [PATCH] drm: rcar-du: fix linker undefined references
Date: Fri, 23 Apr 2021 14:56:11 -0700	[thread overview]
Message-ID: <dca3ea68-9259-25f9-3d89-983783f9f7da@infradead.org> (raw)
In-Reply-To: <YINAJP1iPwsukLah@pendragon.ideasonboard.com>

On 4/23/21 2:46 PM, Laurent Pinchart wrote:
> Hi Randy,
> 
> Thank you for the patch.
> 
> On Fri, Apr 23, 2021 at 02:37:27PM -0700, Randy Dunlap wrote:
>> When DRM_RCAR_DU=y and DRM_RCAR_LVDS=m, there are several build errors
>> as reported by 'kernel test robot'. These can be corrected by changing
>> "imply" to "select".
>>
>> In looking at this, the same problem (build errors) happens when
>> DRM_RCAR_DU=y and DRM_RCAR_CMM=m, so again change the "imply" to
>> "select" here as well.
>>
>> These 2 changes fix the following 8 build/link errors:
>>
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function `rcar_du_crtc_atomic_enable':
>> rcar_du_crtc.c:(.text+0x1be8): undefined reference to `rcar_lvds_clk_enable'
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function `rcar_du_crtc_atomic_disable':
>> rcar_du_crtc.c:(.text+0x2438): undefined reference to `rcar_lvds_clk_disable'
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_drv.o: in function `rcar_du_init':
>> rcar_du_drv.c:(.init.text+0x14): undefined reference to `rcar_du_of_init'
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_encoder.o: in function `rcar_du_encoder_init':
>> rcar_du_encoder.c:(.text+0x1d4): undefined reference to `rcar_lvds_dual_link'
>>
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function `rcar_du_cmm_setup':
>> rcar_du_crtc.c:(.text+0x380): undefined reference to `rcar_cmm_setup'
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function `rcar_du_crtc_atomic_enable':
>> rcar_du_crtc.c:(.text+0x1c08): undefined reference to `rcar_cmm_enable'
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function `rcar_du_crtc_atomic_disable':
>> rcar_du_crtc.c:(.text+0x231c): undefined reference to `rcar_cmm_disable'
>> aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_kms.o: in function `rcar_du_modeset_init':
>> rcar_du_kms.c:(.text+0xd08): undefined reference to `rcar_cmm_init'
>>
>> Fixes: e08e934d6c28 ("drm: rcar-du: Add support for CMM")
>> Fixes: 02f2b30032c1 ("drm: rcar-du: lvds: Add API to enable/disable clock output")
>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
>> Reported-by: kernel test robot <lkp@intel.com>
>> Cc: Masahiro Yamada <masahiroy@kernel.org>
>> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>> Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
>> Cc: dri-devel@lists.freedesktop.org
>> Cc: linux-renesas-soc@vger.kernel.org
>> Cc: Jacopo Mondi <jacopo+renesas@jmondi.org>
>> ---
>>   drivers/gpu/drm/rcar-du/Kconfig |    4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> --- linux-next-20210420.orig/drivers/gpu/drm/rcar-du/Kconfig
>> +++ linux-next-20210420/drivers/gpu/drm/rcar-du/Kconfig
>> @@ -4,8 +4,8 @@ config DRM_RCAR_DU
>>   	depends on DRM && OF
>>   	depends on ARM || ARM64
>>   	depends on ARCH_RENESAS || COMPILE_TEST
>> -	imply DRM_RCAR_CMM
>> -	imply DRM_RCAR_LVDS
>> +	select DRM_RCAR_CMM
>> +	select DRM_RCAR_LVDS
> 
> No all platforms that integrate a DU have CMM and/or LVDS support, so we
> shouldn't select the automatically.
> 
> Would
> 
> 	depends on DRM_RCAR_CMM || DRM_RCAR_CMM=n
> 	depends on DRM_RCAR_LVDS || DRM_RCAR_LVDS=n
> 

Looks good; I like it, but kconfig does not:

$ xbuild_arm64.sh  oldconfig
make[1]: Entering directory 
'/home/rdunlap/lnx/next/linux-next-20210420/ARM64'
   GEN     Makefile
drivers/gpu/drm/rcar-du/Kconfig:2:error: recursive dependency detected!
drivers/gpu/drm/rcar-du/Kconfig:2:	symbol DRM_RCAR_DU depends on 
DRM_RCAR_CMM
drivers/gpu/drm/rcar-du/Kconfig:17:	symbol DRM_RCAR_CMM depends on 
DRM_RCAR_DU
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"

> work ? I thought that's what "imply" meant, but it seems I got it wrong.
> 
>>   	select DRM_KMS_HELPER
>>   	select DRM_KMS_CMA_HELPER
>>   	select DRM_GEM_CMA_HELPER
> 


Thanks.
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2021-04-23 21:56 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-23 21:37 [PATCH] drm: rcar-du: fix linker undefined references Randy Dunlap
2021-04-23 21:37 ` Randy Dunlap
2021-04-23 21:46 ` Laurent Pinchart
2021-04-23 21:46   ` Laurent Pinchart
2021-04-23 21:56   ` Randy Dunlap [this message]
2021-04-23 21:56     ` Randy Dunlap
2021-04-23 22:02     ` Randy Dunlap
2021-04-23 22:02       ` Randy Dunlap
2021-04-23 22:05       ` Laurent Pinchart
2021-04-23 22:05         ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=dca3ea68-9259-25f9-3d89-983783f9f7da@infradead.org \
    --to=rdunlap@infradead.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jacopo+renesas@jmondi.org \
    --cc=kieran.bingham+renesas@ideasonboard.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=masahiroy@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.