[2/2] package/kodi: remove imx support

Message ID 20180304150606.32748-2-bernd.kuhls@t-online.de
State Accepted
Headers show
Series
  • [1/2] package/freescale-imx: Remove imx6s from has_vpu list
Related show

Commit Message

Bernd Kuhls March 4, 2018, 3:06 p.m.
https://git.buildroot.net/buildroot/commit/?id=266208972192f1e0869f89d7be941de6294a810a
broke imx support in Kodi because previously the G2D libraries were
part of the imx-gpu-viv package:

CMake Error at /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find IMX (missing: G2D_LIBRARY)

Adjusting the Kodi package to use the imx-gpu-g2d as well still does
not provide a working build:

/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'void CIMX::Deinitialize()':
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:79:21: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
     ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
                     ^~~~~~~~~~~~~~~~~~~
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'bool CIMX::UpdateDCIC()':
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:109:19: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
   ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
                   ^~~~~~~~~~~~~~~~~~~
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:115:21: error: 'DCIC_IOC_START_VSYNC' was not declared in this scope
     ioctl(m_fddcic, DCIC_IOC_START_VSYNC, 0);
                     ^~~~~~~~~~~~~~~~~~~~
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'virtual void CIMX::Process()':
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:125:19: error: 'DCIC_IOC_START_VSYNC' was not declared in this scope
   ioctl(m_fddcic, DCIC_IOC_START_VSYNC, 0);
                   ^~~~~~~~~~~~~~~~~~~~
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:131:19: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
   ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
                   ^~~~~~~~~~~~~~~~~~~

Although it might be possible to fix these bugs with something like

	#define DCIC_IOC_CONFIG_DCIC    _IO('D', 12)
	#define DCIC_IOC_START_VSYNC    _IO('D', 15)
	#define DCIC_IOC_STOP_VSYNC     _IO('D', 16)

as done in
https://raw.githubusercontent.com/LibreELEC/LibreELEC.tv/libreelec-7.0/projects/imx6/patches/kodi/imx6-jarvis.patch

we would still try to ride a dead horse. The upcoming Kodi version
18.0-Leia will remove imx support completely, see upstream PR 12990.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/kodi/kodi.mk | 6 ------
 1 file changed, 6 deletions(-)

Comments

Gary Bisson March 5, 2018, 8:54 a.m. | #1
Hi Bernd,

On Sun, Mar 04, 2018 at 04:06:06PM +0100, Bernd Kuhls wrote:
> https://git.buildroot.net/buildroot/commit/?id=266208972192f1e0869f89d7be941de6294a810a
> broke imx support in Kodi because previously the G2D libraries were
> part of the imx-gpu-viv package:
> 
> CMake Error at /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
>   Could NOT find IMX (missing: G2D_LIBRARY)

How could it build before since it never explicitely depended on G2D?

> Adjusting the Kodi package to use the imx-gpu-g2d as well still does
> not provide a working build:
> 
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'void CIMX::Deinitialize()':
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:79:21: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
>      ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
>                      ^~~~~~~~~~~~~~~~~~~
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'bool CIMX::UpdateDCIC()':
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:109:19: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
>    ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
>                    ^~~~~~~~~~~~~~~~~~~
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:115:21: error: 'DCIC_IOC_START_VSYNC' was not declared in this scope
>      ioctl(m_fddcic, DCIC_IOC_START_VSYNC, 0);
>                      ^~~~~~~~~~~~~~~~~~~~
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'virtual void CIMX::Process()':
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:125:19: error: 'DCIC_IOC_START_VSYNC' was not declared in this scope
>    ioctl(m_fddcic, DCIC_IOC_START_VSYNC, 0);
>                    ^~~~~~~~~~~~~~~~~~~~
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:131:19: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
>    ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
>                    ^~~~~~~~~~~~~~~~~~~
> 
> Although it might be possible to fix these bugs with something like
> 
> 	#define DCIC_IOC_CONFIG_DCIC    _IO('D', 12)
> 	#define DCIC_IOC_START_VSYNC    _IO('D', 15)
> 	#define DCIC_IOC_STOP_VSYNC     _IO('D', 16)
> 
> as done in
> https://raw.githubusercontent.com/LibreELEC/LibreELEC.tv/libreelec-7.0/projects/imx6/patches/kodi/imx6-jarvis.patch

Wow I never paid attention to Kodi support but I'm not surprised it's
not working since those ioctl are Kodi-specific, not available in NXP
default tree (checked 3.10, 3.14 and 4.1.15):
https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/video/mxc/mxc_dcic.c?h=imx_3.10.53_1.1.0_ga_caf#n386
https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/video/mxc/mxc_dcic.c?h=imx_3.14.52_1.1.0_ga#n386
https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/video/mxc/mxc_dcic.c?h=imx_3.14.52_1.1.0_ga#n386

Seems to need that patch:
https://github.com/osmc/vero-linux/commit/ac572b2d2b

> we would still try to ride a dead horse. The upcoming Kodi version
> 18.0-Leia will remove imx support completely, see upstream PR 12990.

Yes I believe they are switching to mainline kernel support (using
Etnaviv + standard V4L2 CODA support).

> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>

Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>

Regards,
Gary
Thomas Petazzoni March 31, 2018, 9:08 p.m. | #2
Hello,

On Sun,  4 Mar 2018 16:06:06 +0100, Bernd Kuhls wrote:
> https://git.buildroot.net/buildroot/commit/?id=266208972192f1e0869f89d7be941de6294a810a
> broke imx support in Kodi because previously the G2D libraries were
> part of the imx-gpu-viv package:
> 
> CMake Error at /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
>   Could NOT find IMX (missing: G2D_LIBRARY)
> 
> Adjusting the Kodi package to use the imx-gpu-g2d as well still does
> not provide a working build:
> 
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'void CIMX::Deinitialize()':
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:79:21: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
>      ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
>                      ^~~~~~~~~~~~~~~~~~~
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'bool CIMX::UpdateDCIC()':
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:109:19: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
>    ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
>                    ^~~~~~~~~~~~~~~~~~~
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:115:21: error: 'DCIC_IOC_START_VSYNC' was not declared in this scope
>      ioctl(m_fddcic, DCIC_IOC_START_VSYNC, 0);
>                      ^~~~~~~~~~~~~~~~~~~~
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'virtual void CIMX::Process()':
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:125:19: error: 'DCIC_IOC_START_VSYNC' was not declared in this scope
>    ioctl(m_fddcic, DCIC_IOC_START_VSYNC, 0);
>                    ^~~~~~~~~~~~~~~~~~~~
> /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:131:19: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
>    ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
>                    ^~~~~~~~~~~~~~~~~~~
> 
> Although it might be possible to fix these bugs with something like
> 
> 	#define DCIC_IOC_CONFIG_DCIC    _IO('D', 12)
> 	#define DCIC_IOC_START_VSYNC    _IO('D', 15)
> 	#define DCIC_IOC_STOP_VSYNC     _IO('D', 16)
> 
> as done in
> https://raw.githubusercontent.com/LibreELEC/LibreELEC.tv/libreelec-7.0/projects/imx6/patches/kodi/imx6-jarvis.patch
> 
> we would still try to ride a dead horse. The upcoming Kodi version
> 18.0-Leia will remove imx support completely, see upstream PR 12990.
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  package/kodi/kodi.mk | 6 ------
>  1 file changed, 6 deletions(-)

I've kept an unconditional and explicit -DENABLE_IMX=OFF in
KODI_CONF_OPTS, and applied. Thanks!

Thomas
Peter Korsgaard April 8, 2018, 3:07 p.m. | #3
>>>>> "Bernd" == Bernd Kuhls <bernd.kuhls@t-online.de> writes:

 > https://git.buildroot.net/buildroot/commit/?id=266208972192f1e0869f89d7be941de6294a810a
 > broke imx support in Kodi because previously the G2D libraries were
 > part of the imx-gpu-viv package:

 > CMake Error at /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
 >   Could NOT find IMX (missing: G2D_LIBRARY)

 > Adjusting the Kodi package to use the imx-gpu-g2d as well still does
 > not provide a working build:

 > /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'void CIMX::Deinitialize()':
 > /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:79:21: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
 >      ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
 >                      ^~~~~~~~~~~~~~~~~~~
 > /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'bool CIMX::UpdateDCIC()':
 > /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:109:19: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
 >    ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
 >                    ^~~~~~~~~~~~~~~~~~~
 > /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:115:21: error: 'DCIC_IOC_START_VSYNC' was not declared in this scope
 >      ioctl(m_fddcic, DCIC_IOC_START_VSYNC, 0);
 >                      ^~~~~~~~~~~~~~~~~~~~
 > /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'virtual void CIMX::Process()':
 > /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:125:19: error: 'DCIC_IOC_START_VSYNC' was not declared in this scope
 >    ioctl(m_fddcic, DCIC_IOC_START_VSYNC, 0);
 >                    ^~~~~~~~~~~~~~~~~~~~
 > /home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:131:19: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
 >    ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
 >                    ^~~~~~~~~~~~~~~~~~~

 > Although it might be possible to fix these bugs with something like

 > 	#define DCIC_IOC_CONFIG_DCIC    _IO('D', 12)
 > 	#define DCIC_IOC_START_VSYNC    _IO('D', 15)
 > 	#define DCIC_IOC_STOP_VSYNC     _IO('D', 16)

 > as done in
 > https://raw.githubusercontent.com/LibreELEC/LibreELEC.tv/libreelec-7.0/projects/imx6/patches/kodi/imx6-jarvis.patch

 > we would still try to ride a dead horse. The upcoming Kodi version
 > 18.0-Leia will remove imx support completely, see upstream PR 12990.

 > Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>

Committed to 2018.02.x, thanks.

Patch

diff --git a/package/kodi/kodi.mk b/package/kodi/kodi.mk
index 132037049d..3a72a5a1b8 100644
--- a/package/kodi/kodi.mk
+++ b/package/kodi/kodi.mk
@@ -191,12 +191,6 @@  KODI_DEPENDENCIES += libamcodec
 else
 KODI_CONF_OPTS += -DENABLE_AML=OFF
 endif
-ifeq ($(BR2_PACKAGE_IMX_VPUWRAP),y)
-KODI_CONF_OPTS += -DENABLE_IMX=ON
-KODI_DEPENDENCIES += imx-vpuwrap
-else
-KODI_CONF_OPTS += -DENABLE_IMX=OFF
-endif
 endif
 
 ifeq ($(BR2_PACKAGE_HAS_UDEV),y)