Skip to contentSkip to conversation

kmscube: Move to the new repository

PATCH New Fabio Estevam 4 participants 17 messages Mar 6, 2017 – Mar 13, 2017 Arm i.MX and Layerscape

lore
Share & tools
lore

Fabio Estevam

author reviewer
#0 lore raw

PATCH 1/1 kmscube: Move to the new repository

As announced by Rob Clark at:
https://lists.freedesktop.org/archives/mesa-dev/2017-February/145745.html

, the kmscube repository has been moved from github to freedesktop.org, so change it to the new location.

With the newest code the local patch for adding imx-drm support is no longer needed.

Also, on imx6q we need to explicitily pass the card device now:

# kmscube -D /dev/dri/card1
---
 package/kmscube/0001-addimxdrm.patch | 27 ---------------------------
 package/kmscube/kmscube.hash         |  2 +-
 package/kmscube/kmscube.mk           |  4 ++--
 3 files changed, 3 insertions(+), 30 deletions(-)
 delete mode 100644 package/kmscube/0001-addimxdrm.patch
package/kmscube/0001-addimxdrm.patch deleted +0 -27
deleted file mode 100644
index 3eb7959..0000000
@@ -1,27 +0,0 @@
-From 23186149100dd9c871f65132edce67db0b1ce3c3 Mon Sep 17 00:00:00 2001
-From: XoD <[email protected]>
-Date: Mon, 13 Feb 2017 16:43:35 -0200
-Subject: [PATCH] Add imx-drm management
-
-Add imx-drm in the list of kms modules.
-
-Signed-off-by: XoD <[email protected]>
-Signed-off-by: Fabio Estevam <[email protected]>
----
- kmscube.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/kmscube.c b/kmscube.c
-index ca2c266..95bd77f 100644
---- a/kmscube.c
-+++ b/kmscube.c
-@@ -122,6 +122,7 @@ static int init_drm(void)
-	static const char *modules[] = {
-		"exynos",
-		"i915",
-+		"imx-drm",
-		"msm",
-		"nouveau",
-		"omapdrm",
---
-2.7.4
package/kmscube/kmscube.hash +1 -1
index d3e9858..0c9e414 100644
@@ -1,2 +1,2 @@
 # Locally computed
-sha256 73cf923f915f9f7ee46f9f03bd24254fc04b5f166270c0d37c6f2bc3881186ec kmscube-8c6a20901f95e1b465bbca127f9d47fcfb8762e6.tar.gz
+sha256 aee8375da730c2e59e8644d6bd5e011f06c88f723a8f8934bd5dac67d94a3b8a  kmscube-87e3ff5683ee54228b3e6e75f7d4de83901fadb0.tar.gz
package/kmscube/kmscube.mk +2 -2
index 88db868..9d3074a 100644
@@ -4,8 +4,8 @@
 #
 ################################################################################
 
-KMSCUBE_VERSION = 8c6a20901f95e1b465bbca127f9d47fcfb8762e6
-KMSCUBE_SITE = $(call github,robclark,kmscube,$(KMSCUBE_VERSION))
+KMSCUBE_VERSION = 87e3ff5683ee54228b3e6e75f7d4de83901fadb0
+KMSCUBE_SITE = https://cgit.freedesktop.org/mesa/kmscube/snapshot
 KMSCUBE_LICENSE = MIT
 KMSCUBE_DEPENDENCIES = host-pkgconf mesa3d libdrm
 KMSCUBE_AUTORECONF = YES
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/1 kmscube: Move to the new repository

Hello,

Quoted 13 lines · Fabio Estevam

As announced by Rob Clark at:
https://lists.freedesktop.org/archives/mesa-dev/2017-February/145745.html

, the kmscube repository has been moved from github to freedesktop.org, so change it to the new location.

With the newest code the local patch for adding imx-drm support is no longer needed.

Also, on imx6q we need to explicitily pass the card device now:

# kmscube -D /dev/dri/card1
Quoted 7 lines
---
 package/kmscube/0001-addimxdrm.patch | 27 ---------------------------
 package/kmscube/kmscube.hash         |  2 +-
 package/kmscube/kmscube.mk           |  4 ++--
 3 files changed, 3 insertions(+), 30 deletions(-)
 delete mode 100644 package/kmscube/0001-addimxdrm.patch

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
author reviewer
#2 lore raw

PATCH 1/1 kmscube: Move to the new repository

Hi Thomas,

Quoted 1 line · Thomas Petazzoni

Applied to master, thanks.

There last line of the commit log (# kmscube -D /dev/dri/card1) has been dropped.

Was this intentional?

Thanks

#3 lore raw

PATCH 1/1 kmscube: Move to the new repository

Hello,

Quoted 11 lines · Fabio Estevam

Hi Thomas,

Quoted 1 line · Thomas Petazzoni

Applied to master, thanks.

There last line of the commit log (# kmscube -D /dev/dri/card1) has been dropped.

Was this intentional?

No: but it started with #, so when I did a "git commit --amend" to adjust the commit title, it got removed, and I didn't notice.

Don't start lines with # if you want them to be kept by Git :-)

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#4 lore raw

PATCH 1/1 kmscube: Move to the new repository

Thomas, Fabio, All,

Quoted 9 lines · Thomas Petazzoni

Hello,

Quoted 6 lines · Fabio Estevam

Hi Thomas,

Quoted 1 line · Thomas Petazzoni

Applied to master, thanks.

I actually get a build error with this version:
drm-atomic.c: In function ?get_plane_id?:
drm-atomic.c:290:44: error: ?DRM_MODE_OBJECT_PLANE? undeclared (first use in this function)

     drmModeObjectGetProperties(drm.fd, id, DRM_MODE_OBJECT_PLANE);

In order to fix it I've had to add the following include to drm-atomic.c:
#include <libdrm/drm_mode.h>

In case it helps, I use linaro-arm-2017-02 toolchain.

Let me know if you don't see that issue on your end.

Regards,
Gary

author reviewer
#5 lore raw

PATCH 1/1 kmscube: Move to the new repository

Hi Gary,

Quoted 4 lines · Gary Bisson

I actually get a build error with this version:
drm-atomic.c: In function ?get_plane_id?:
drm-atomic.c:290:44: error: ?DRM_MODE_OBJECT_PLANE? undeclared (first use in this function)

Quoted 8 lines
     drmModeObjectGetProperties(drm.fd, id, DRM_MODE_OBJECT_PLANE);

In order to fix it I've had to add the following include to drm-atomic.c:
#include <libdrm/drm_mode.h>

In case it helps, I use linaro-arm-2017-02 toolchain.

Let me know if you don't see that issue on your end.

No, I didn't see this error. Could you please send a patch to Buildroot and also to the upstream project?

Thanks,

Fabio Estevam

#6 lore raw

PATCH 1/1 kmscube: Move to the new repository

Hi Fabio,

Quoted 14 lines · Fabio Estevam

Hi Gary,

Quoted 9 lines · Gary Bisson

I actually get a build error with this version:
drm-atomic.c: In function ?get_plane_id?:
drm-atomic.c:290:44: error: ?DRM_MODE_OBJECT_PLANE? undeclared (first use in this function)

     drmModeObjectGetProperties(drm.fd, id, DRM_MODE_OBJECT_PLANE);

In order to fix it I've had to add the following include to drm-atomic.c:
#include <libdrm/drm_mode.h>

Quoted 6 lines
Quoted 3 lines

In case it helps, I use linaro-arm-2017-02 toolchain.

Let me know if you don't see that issue on your end.

No, I didn't see this error. Could you please send a patch to Buildroot and also to the upstream project?

Before sending a patch I'd like to understand why the error only shows up in my case and not yours. I also trust that Rob built his atomic addition before pushing it.

Can you send me the output of 'make kmscube-rebuild V=1' in your environment?

Regards,
Gary

author reviewer
#7 lore raw

PATCH 1/1 kmscube: Move to the new repository

Hi Gary,

Quoted 5 lines · Gary Bisson

Before sending a patch I'd like to understand why the error only shows up in my case and not yours. I also trust that Rob built his atomic addition before pushing it.

Can you send me the output of 'make kmscube-rebuild V=1' in your environment?

Sure, here is the log:
http://pastebin.com/QBDVLFDq

I just used the default toolchain from Buildroot.

There is a warning in the log and I have sent a patch to fix it upstream:
https://lists.freedesktop.org/archives/mesa-dev/2017-March/146581.html

Regards,

Fabio Estevam

#8 lore raw

PATCH 1/1 kmscube: Move to the new repository

Hi Fabio,

Quoted 5 lines · Fabio Estevam

Hi Gary,

On Wed, Mar 8, 2017 at 7:06 AM, Gary Bisson
<[email protected]> wrote:

Quoted 8 lines
Quoted 5 lines

Before sending a patch I'd like to understand why the error only shows up in my case and not yours. I also trust that Rob built his atomic addition before pushing it.

Can you send me the output of 'make kmscube-rebuild V=1' in your environment?

Sure, here is the log:
http://pastebin.com/QBDVLFDq

Thanks but I don't see anything obviously different between our configs.

Quoted 1 line

I just used the default toolchain from Buildroot.

Can you tell me where is DRM_MODE_OBJECT_PLANE defined in your case?

Here is my output:

$ grep -rn DRM_MODE_OBJECT_PLANE output/host/usr/arm-buildroot-linux-gnueabihf/
output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libdrm/drm_mode.h:336:#define
DRM_MODE_OBJECT_PLANE 0xeeeeeeee

Also, is adding my fix to your build bringing any issue?

Regards,
Gary

author reviewer
#9 lore raw

PATCH 1/1 kmscube: Move to the new repository

Hi Gary,

Quoted 6 lines · Gary Bisson

Can you tell me where is DRM_MODE_OBJECT_PLANE defined in your case?

Here is my output:

$ grep -rn DRM_MODE_OBJECT_PLANE output/host/usr/arm-buildroot-linux-gnueabihf/
output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libdrm/drm_mode.h:336:#define
DRM_MODE_OBJECT_PLANE 0xeeeeeeee

I see them defined in two places here:

$ grep -rn DRM_MODE_OBJECT_PLANE output/host/
output/host/usr/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/drm/drm_mode.h:336:#define
DRM_MODE_OBJECT_PLANE 0xeeeeeeee
output/host/usr/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/libdrm/drm_mode.h:336:#define
DRM_MODE_OBJECT_PLANE 0xeeeeeeee
Quoted 1 line

Also, is adding my fix to your build bringing any issue?

Just tried your patch and the build still succeeds with it.

Regards,

Fabio Estevam

#10 lore raw

PATCH 1/1 kmscube: Move to the new repository

Hi Fabio,

Quoted 12 lines · Fabio Estevam

Hi Gary,

Quoted 6 lines · Gary Bisson

Can you tell me where is DRM_MODE_OBJECT_PLANE defined in your case?

Here is my output:

$ grep -rn DRM_MODE_OBJECT_PLANE output/host/usr/arm-buildroot-linux-gnueabihf/
output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libdrm/drm_mode.h:336:#define
DRM_MODE_OBJECT_PLANE 0xeeeeeeee
Quoted 7 lines

I see them defined in two places here:

$ grep -rn DRM_MODE_OBJECT_PLANE output/host/
output/host/usr/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/drm/drm_mode.h:336:#define
DRM_MODE_OBJECT_PLANE 0xeeeeeeee
output/host/usr/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/libdrm/drm_mode.h:336:#define
DRM_MODE_OBJECT_PLANE 0xeeeeeeee

So it means your toolchain is using kernel headers >= 4.7.
http://lxr.free-electrons.com/ident?v=4.6;i=DRM_MODE_OBJECT_PLANE
http://lxr.free-electrons.com/ident?v=4.7;i=DRM_MODE_OBJECT_PLANE

Not sure which header version the Linaro toolchain is using but it's definitely older than 4.7.

From the manifest we know the toolchain is build on a machine running a 4.4.x kernel:
https://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.02-linux-manifest.txt

Quoted 3 lines
Quoted 1 line

Also, is adding my fix to your build bringing any issue?

Just tried your patch and the build still succeeds with it.

Thanks for testing it out, good to here it works but I'm still not sure adding this libdrm/drm_mode.h is the best solution as-is.

Thomas, do you have any advice on what's the best approach here.

Regards,
Gary

#11 lore raw

PATCH 1/1 kmscube: Move to the new repository

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Gary" == Gary Bisson <[email protected]> writes:

Hi,

Quoted 8 lines
Quoted 7 lines

I see them defined in two places here:

$ grep -rn DRM_MODE_OBJECT_PLANE output/host/
output/host/usr/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/drm/drm_mode.h:336:#define
DRM_MODE_OBJECT_PLANE 0xeeeeeeee
output/host/usr/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/libdrm/drm_mode.h:336:#define
DRM_MODE_OBJECT_PLANE 0xeeeeeeee
Quoted 6 lines

So it means your toolchain is using kernel headers >= 4.7.
http://lxr.free-electrons.com/ident?v=4.6;i=DRM_MODE_OBJECT_PLANE
http://lxr.free-electrons.com/ident?v=4.7;i=DRM_MODE_OBJECT_PLANE

Not sure which header version the Linaro toolchain is using but it's definitely older than 4.7.

Based on toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in it is using 4.6.

Quoted 2 lines

Thanks for testing it out, good to here it works but I'm still not sure adding this libdrm/drm_mode.h is the best solution as-is.

The question is what happens if kmscube is run on a kernel that doesn't support DRM_MODE_OBJECT_PLANE (E.G. kernel < 4.7)? If it really needs support for this then we should simply make the package depend on >= 4.7 headers, and if not we could add a patch to add the include.

Signature · 1 line
Bye, Peter Korsgaard
#12 lore raw

PATCH 1/1 kmscube: Move to the new repository

Hi,

Quoted 16 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Gary" == Gary Bisson <[email protected]> writes:

Hi,

Quoted 11 lines
Quoted 7 lines

I see them defined in two places here:

$ grep -rn DRM_MODE_OBJECT_PLANE output/host/
output/host/usr/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/drm/drm_mode.h:336:#define
DRM_MODE_OBJECT_PLANE 0xeeeeeeee
output/host/usr/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/libdrm/drm_mode.h:336:#define
DRM_MODE_OBJECT_PLANE 0xeeeeeeee

So it means your toolchain is using kernel headers >= 4.7.
http://lxr.free-electrons.com/ident?v=4.6;i=DRM_MODE_OBJECT_PLANE
http://lxr.free-electrons.com/ident?v=4.7;i=DRM_MODE_OBJECT_PLANE

Quoted 6 lines
Quoted 2 lines

Not sure which header version the Linaro toolchain is using but it's definitely older than 4.7.

Based on toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in it is using 4.6.

Thanks.

Quoted 5 lines
Quoted 2 lines

Thanks for testing it out, good to here it works but I'm still not sure adding this libdrm/drm_mode.h is the best solution as-is.

The question is what happens if kmscube is run on a kernel that doesn't support DRM_MODE_OBJECT_PLANE (E.G. kernel < 4.7)?

I believe it would work since the declaration was in the kernel already, just missing from the uapi header:
http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=8812f38141

Quoted 3 lines

If it really needs
support for this then we should simply make the package depend on >= 4.7 headers, and if not we could add a patch to add the include.

Adding a dependency on headers >= 4.7 would definitely work and I think it's the easiest/cleanest option here.

I'll just be sad not to be able to use the prebuilt (linaro) toolchain ;)

Regards,
Gary

#13 lore raw

PATCH 1/1 kmscube: Move to the new repository

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Gary" == Gary Bisson <[email protected]> writes:

Hi,

Quoted 6 lines
Quoted 2 lines

The question is what happens if kmscube is run on a kernel that doesn't support DRM_MODE_OBJECT_PLANE (E.G. kernel < 4.7)?

I believe it would work since the declaration was in the kernel already, just missing from the uapi header:
http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=8812f38141

Ahh, ok - Good. And looking at the state before that, the drm plane stuff was added in 3.3 (8cf5c91771515).

Quoted 8 lines
Quoted 3 lines

If it really needs
support for this then we should simply make the package depend on >= 4.7 headers, and if not we could add a patch to add the include.

Adding a dependency on headers >= 4.7 would definitely work and I think it's the easiest/cleanest option here.

I'll just be sad not to be able to use the prebuilt (linaro) toolchain ;)

It is indeed a bit stupid to not allow the Linaro toolchain when the fix is so easy. Have you tried to contact upstream about either adding the drm include and/or local definitions for this define?

Signature · 1 line
Bye, Peter Korsgaard
author reviewer
#14 lore raw

PATCH 1/1 kmscube: Move to the new repository

In reply to Gary Bisson

Hi Gary,

Quoted 4 lines · Gary Bisson

Adding a dependency on headers >= 4.7 would definitely work and I think it's the easiest/cleanest option here.

I'll just be sad not to be able to use the prebuilt (linaro) toolchain ;)

What about sending the #include <libdrm/drm_mode.h> fix upstream?

BTW, I got another build error report on sparc that I have not had a chance to investigate yet:
http://autobuild.buildroot.net/results/d7e/d7e82c67e0b04b0aea990bfb19dd6e4fd914bebe/

#15 lore raw

PATCH 1/1 kmscube: Move to the new repository

Hi Fabio,

Quoted 6 lines · Fabio Estevam

Hi Gary,

On Fri, Mar 10, 2017 at 6:47 AM, Gary Bisson
<[email protected]> wrote:

Quoted 6 lines
Quoted 4 lines

Adding a dependency on headers >= 4.7 would definitely work and I think it's the easiest/cleanest option here.

I'll just be sad not to be able to use the prebuilt (linaro) toolchain ;)

What about sending the #include <libdrm/drm_mode.h> fix upstream?

I just sent the patch upstream, we'll see how it goes.

Regards,
Gary

author reviewer
#16 lore raw

PATCH 1/1 kmscube: Move to the new repository

In reply to Fabio Estevam
Quoted 5 lines · Fabio Estevam

What about sending the #include <libdrm/drm_mode.h> fix upstream?

BTW, I got another build error report on sparc that I have not had a chance to investigate yet:
http://autobuild.buildroot.net/results/d7e/d7e82c67e0b04b0aea990bfb19dd6e4fd914bebe/

Just sent the following kmscube patches that fix these build failures:

https://lists.freedesktop.org/archives/mesa-dev/2017-March/147720.html

https://lists.freedesktop.org/archives/mesa-dev/2017-March/147721.html