[v1] gpu: ipu-v3: allow to build with ARCH_LAYERSCAPE

Submitted by Wen He on May 8, 2019, 10:56 a.m.

Details

Message ID 20190508105755.5881-1-wen.he_1@nxp.com
State New
Headers show
Series "gpu: ipu-v3: allow to build with ARCH_LAYERSCAPE" ( rev: 2 ) in DRI devel

Not browsing as part of any series.

Commit Message

Wen He May 8, 2019, 10:56 a.m.
The new LS1028A DP driver code causes a link failure when DRM_IMX built-in,
but platform is ARCH_LAYERSCAPE:

drivers/gpu/drm/imx/ipuv3-crtc.c:51: undefined reference to `ipu_prg_enable'
drivers/gpu/drm/imx/ipuv3-crtc.c:52: undefined reference to `ipu_dc_enable'
drivers/gpu/drm/imx/ipuv3-crtc.c:53: undefined reference to `ipu_dc_enable_channel'
drivers/gpu/drm/imx/ipuv3-crtc.c:54: undefined reference to `ipu_di_enable'
drivers/gpu/drm/imx/ipuv3-crtc.o: In function `ipu_crtc_mode_set_nofb

Adding a Kconfig dependency allow to build if ARCH_LAYERSCAPE is enable.

Signed-off-by: Wen He <wen.he_1@nxp.com>

---
 drivers/gpu/ipu-v3/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.17.1

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/ipu-v3/Kconfig b/drivers/gpu/ipu-v3/Kconfig
index fe6f8c5b4445..51ea88c440df 100644
--- a/drivers/gpu/ipu-v3/Kconfig
+++ b/drivers/gpu/ipu-v3/Kconfig
@@ -1,6 +1,6 @@ 
 config IMX_IPUV3_CORE
 	tristate "IPUv3 core support"
-	depends on SOC_IMX5 || SOC_IMX6Q || ARCH_MULTIPLATFORM || COMPILE_TEST
+	depends on SOC_IMX5 || SOC_IMX6Q || ARCH_MULTIPLATFORM || COMPILE_TEST || ARCH_LAYERSCAPE
 	depends on DRM || !DRM # if DRM=m, this can't be 'y'
 	select BITREVERSE
 	select GENERIC_ALLOCATOR if DRM

Comments

Hi Wen,

On Wed, 2019-05-08 at 10:56 +0000, Wen He wrote:
> The new LS1028A DP driver code causes a link failure when DRM_IMX built-in,
> but platform is ARCH_LAYERSCAPE:
> 
> drivers/gpu/drm/imx/ipuv3-crtc.c:51: undefined reference to `ipu_prg_enable'
> drivers/gpu/drm/imx/ipuv3-crtc.c:52: undefined reference to `ipu_dc_enable'
> drivers/gpu/drm/imx/ipuv3-crtc.c:53: undefined reference to `ipu_dc_enable_channel'
> drivers/gpu/drm/imx/ipuv3-crtc.c:54: undefined reference to `ipu_di_enable'
> drivers/gpu/drm/imx/ipuv3-crtc.o: In function `ipu_crtc_mode_set_nofb
> 
> Adding a Kconfig dependency allow to build if ARCH_LAYERSCAPE is enable.
> 
> Signed-off-by: Wen He <wen.he_1@nxp.com>
> ---
>  drivers/gpu/ipu-v3/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/ipu-v3/Kconfig b/drivers/gpu/ipu-v3/Kconfig
> index fe6f8c5b4445..51ea88c440df 100644
> --- a/drivers/gpu/ipu-v3/Kconfig
> +++ b/drivers/gpu/ipu-v3/Kconfig
> @@ -1,6 +1,6 @@
>  config IMX_IPUV3_CORE
>  	tristate "IPUv3 core support"
> -	depends on SOC_IMX5 || SOC_IMX6Q || ARCH_MULTIPLATFORM || COMPILE_TEST
> +	depends on SOC_IMX5 || SOC_IMX6Q || ARCH_MULTIPLATFORM || COMPILE_TEST || ARCH_LAYERSCAPE
>  	depends on DRM || !DRM # if DRM=m, this can't be 'y'
>  	select BITREVERSE
>  	select GENERIC_ALLOCATOR if DRM
> -- 
> 2.17.1

Thank you for the patch, but this does not seem right.
ipuv3-crtc.c is part of DRM_IMX, which already depends on
IMX_IPUV3_CORE. How did you manage to make it try to compile imxdrm?

Since LS1028A does not have the IPUv3, keeping this under COMPILE_TEST
should be correct.

regards
Philipp
> -----Original Message-----

> From: Philipp Zabel <p.zabel@pengutronix.de>

> Sent: 2019年7月5日 18:32

> To: Wen He <wen.he_1@nxp.com>; linux-kernel@vger.kernel.org;

> dri-devel@lists.freedesktop.org

> Cc: Leo Li <leoyang.li@nxp.com>

> Subject: [EXT] Re: [v1] gpu: ipu-v3: allow to build with ARCH_LAYERSCAPE

> 

> Caution: EXT Email

> 

> Hi Wen,

> 

> On Wed, 2019-05-08 at 10:56 +0000, Wen He wrote:

> > The new LS1028A DP driver code causes a link failure when DRM_IMX

> > built-in, but platform is ARCH_LAYERSCAPE:

> >

> > drivers/gpu/drm/imx/ipuv3-crtc.c:51: undefined reference to

> `ipu_prg_enable'

> > drivers/gpu/drm/imx/ipuv3-crtc.c:52: undefined reference to

> `ipu_dc_enable'

> > drivers/gpu/drm/imx/ipuv3-crtc.c:53: undefined reference to

> `ipu_dc_enable_channel'

> > drivers/gpu/drm/imx/ipuv3-crtc.c:54: undefined reference to `ipu_di_enable'

> > drivers/gpu/drm/imx/ipuv3-crtc.o: In function `ipu_crtc_mode_set_nofb

> >

> > Adding a Kconfig dependency allow to build if ARCH_LAYERSCAPE is enable.

> >

> > Signed-off-by: Wen He <wen.he_1@nxp.com>

> > ---

> >  drivers/gpu/ipu-v3/Kconfig | 2 +-

> >  1 file changed, 1 insertion(+), 1 deletion(-)

> >

> > diff --git a/drivers/gpu/ipu-v3/Kconfig b/drivers/gpu/ipu-v3/Kconfig

> > index fe6f8c5b4445..51ea88c440df 100644

> > --- a/drivers/gpu/ipu-v3/Kconfig

> > +++ b/drivers/gpu/ipu-v3/Kconfig

> > @@ -1,6 +1,6 @@

> >  config IMX_IPUV3_CORE

> >       tristate "IPUv3 core support"

> > -     depends on SOC_IMX5 || SOC_IMX6Q || ARCH_MULTIPLATFORM ||

> COMPILE_TEST

> > +     depends on SOC_IMX5 || SOC_IMX6Q || ARCH_MULTIPLATFORM ||

> > + COMPILE_TEST || ARCH_LAYERSCAPE

> >       depends on DRM || !DRM # if DRM=m, this can't be 'y'

> >       select BITREVERSE

> >       select GENERIC_ALLOCATOR if DRM

> > --

> > 2.17.1

> 

> Thank you for the patch, but this does not seem right.

> ipuv3-crtc.c is part of DRM_IMX, which already depends on IMX_IPUV3_CORE.

> How did you manage to make it try to compile imxdrm?

> 


Thanks for the review, Philipp,

NXP LS1028A platform use same Display IP with IMX8, so they have use same display
transmit controller drivers, config 'DRM_IMX' is used to support drm common drivers
on the NXP I.MX and LS1028A, display transmit controller is coming to plan upstream.  

Actually, we have done compile of the imxdrm on LS1028A BSP release.

> Since LS1028A does not have the IPUv3, keeping this under COMPILE_TEST

> should be correct.


Although LS1028A does not have the IPVv3, but DRM_IMX depends on it, LS1028A display
Transmit controller drivers also depends on DRM_IMX, so we need add this dependency to
solve the compile issue.

Best Regards,
Wen

> 

> regards

> Philipp
On Tue, 2019-07-09 at 03:11 +0000, Wen He wrote:
[...]
> > Thank you for the patch, but this does not seem right.
> > ipuv3-crtc.c is part of DRM_IMX, which already depends on IMX_IPUV3_CORE.
> > How did you manage to make it try to compile imxdrm?

I assume the answer to my question is that you have removed the
IMX_IPUV3_CORE dependency in the LS1028A BSP?

> Thanks for the review, Philipp,
> 
> NXP LS1028A platform use same Display IP with IMX8, so they have use same display
> transmit controller drivers, config 'DRM_IMX' is used to support drm common drivers
> on the NXP I.MX and LS1028A, display transmit controller is coming to plan upstream.  

Is it the i.MX8MQ DCSS or the i.MX8QM DPU that is shared with LS1028A?

> Actually, we have done compile of the imxdrm on LS1028A BSP release.

Can you point me changes that have been applied? It is still unclear to
me how you managed to build imx-drm, unless you have removed the
IMX_IPUV3_CORE dependency from DRM_IMX.

> > Since LS1028A does not have the IPUv3, keeping this under COMPILE_TEST
> > should be correct.
> 
> Although LS1028A does not have the IPVv3, but DRM_IMX depends on it, LS1028A display
> Transmit controller drivers also depends on DRM_IMX, so we need add this dependency to
> solve the compile issue.

The imx-drm driver is not suited to drive the i.MX8 display controllers.
They should get their own drm drivers, as they have nothing in common
with the i.MX5/6 IPU. There are no video capture capabilities, so they
don't need the subsystem spanning driver layout, and without muxable
shared encoders there is no need for the component design either.

regards
Philipp