[meta-xilinx] [RFC] xf86-video-armsoc_git.bb: Add xf86-video-armsoc

Nathan Rossi nathan at nathanrossi.com
Wed May 4 08:11:32 PDT 2016


On Tue, May 3, 2016 at 11:30 AM, Manjukumar Matha
<manjukumar.harthikote-matha at xilinx.com> wrote:
> This patch adds support Xilinx ARM SOC display driver X server support
>  - Custom xorg config files for KB and Mouse
>  - X11 ARMSOC driver support

Hi Manju,

Just a few comments inline below.

>
> Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha at xilinx.com>
> ---
>  ..._xilinx-Add-the-dumb-gem-support-for-Xili.patch | 99 ++++++++++++++++++++++
>  .../0002-enable-subdir-objects.patch               | 13 +++
>  .../xorg-driver/xf86-video-armsoc/10-input.conf    | 11 +++
>  .../xorg-driver/xf86-video-armsoc/20-zynqmp.conf   | 15 ++++
>  .../xorg-driver/xf86-video-armsoc_git.bb           | 32 +++++++
>  5 files changed, 170 insertions(+)
>  create mode 100644 recipes-graphics/xorg-driver/xf86-video-armsoc/0001-src-drmmode_xilinx-Add-the-dumb-gem-support-for-Xili.patch
>  create mode 100644 recipes-graphics/xorg-driver/xf86-video-armsoc/0002-enable-subdir-objects.patch
>  create mode 100644 recipes-graphics/xorg-driver/xf86-video-armsoc/10-input.conf
>  create mode 100644 recipes-graphics/xorg-driver/xf86-video-armsoc/20-zynqmp.conf
>  create mode 100644 recipes-graphics/xorg-driver/xf86-video-armsoc_git.bb
>
> diff --git a/recipes-graphics/xorg-driver/xf86-video-armsoc/0001-src-drmmode_xilinx-Add-the-dumb-gem-support-for-Xili.patch b/recipes-graphics/xorg-driver/xf86-video-armsoc/0001-src-drmmode_xilinx-Add-the-dumb-gem-support-for-Xili.patch
> new file mode 100644
> index 0000000..0d8bb5c
> --- /dev/null
> +++ b/recipes-graphics/xorg-driver/xf86-video-armsoc/0001-src-drmmode_xilinx-Add-the-dumb-gem-support-for-Xili.patch
> @@ -0,0 +1,99 @@
> +From 622db2862220b8fc2ae56e9caceac70cbb0c15ce Mon Sep 17 00:00:00 2001
> +From: Hyun Kwon <hyun.kwon at xilinx.com>
> +Date: Wed, 21 Jan 2015 11:53:19 -0800
> +Subject: [PATCH 1/1] src: drmmode_xilinx: Add the dumb gem support for Xilinx
> +
> +Add the dumb gem support for Xilinx

Out of query, what is the plan regarding this patch. Is the intention
to contribute it to the upstream xf86-video-armsoc?

> +---
> + src/drmmode_xilinx/drmmode_xilinx.c | 80 +++++++++++++++++++++++++++++++++++++
> + 1 file changed, 80 insertions(+)
> + create mode 100644 src/drmmode_xilinx/drmmode_xilinx.c
> +
> +diff --git a/src/drmmode_xilinx/drmmode_xilinx.c b/src/drmmode_xilinx/drmmode_xilinx.c
> +new file mode 100644
> +index 0000000..2cd4e35
> +--- /dev/null
> ++++ b/src/drmmode_xilinx/drmmode_xilinx.c
> +@@ -0,0 +1,80 @@
> ++/*
> ++ * Xilinx X11 ARMSOC driver
> ++ *
> ++ * Author: Hyun Woo Kwon <hyun.kwon at xilinx.com>
> ++ *
> ++ * Copyright (C) 2014 Xilinx, Inc.
> ++ *
> ++ * Based on drmmode_exynos.c
> ++ *
> ++ * Copyright © 2013 ARM Limited.
> ++ *
> ++ * Permission is hereby granted, free of charge, to any person obtaining a
> ++ * copy of this software and associated documentation files (the "Software"),
> ++ * to deal in the Software without restriction, including without limitation
> ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> ++ * and/or sell copies of the Software, and to permit persons to whom the
> ++ * Software is furnished to do so, subject to the following conditions:
> ++ *
> ++ * The above copyright notice and this permission notice (including the next
> ++ * paragraph) shall be included in all copies or substantial portions of the
> ++ * Software.
> ++ *
> ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> ++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
> ++ * SOFTWARE.
> ++ *
> ++ */
> ++
> ++#include <stdlib.h>
> ++
> ++#include <drm.h>
> ++#include <xf86drm.h>
> ++
> ++#include "../drmmode_driver.h"
> ++
> ++static int create_custom_gem(int fd, struct armsoc_create_gem *create_gem)
> ++{
> ++      struct drm_mode_create_dumb arg;
> ++      int ret;
> ++
> ++      memset(&arg, 0, sizeof(arg));
> ++      arg.height = create_gem->height;
> ++      arg.width = create_gem->width;
> ++      arg.bpp = create_gem->bpp;
> ++
> ++      ret = drmIoctl(fd, DRM_IOCTL_MODE_CREATE_DUMB, &arg);
> ++      if (ret)
> ++              return ret;
> ++
> ++      create_gem->height = arg.height;
> ++      create_gem->width = arg.width;
> ++      create_gem->bpp = arg.bpp;
> ++      create_gem->handle = arg.handle;
> ++      create_gem->pitch = arg.pitch;
> ++      create_gem->size = arg.size;
> ++
> ++      return 0;
> ++}
> ++
> ++struct drmmode_interface xilinx_interface = {
> ++      1                     /* use_page_flip_events */,
> ++      1                     /* use_early_display */,
> ++      0                     /* cursor width */,
> ++      0                     /* cursor_height */,
> ++      0                     /* cursor padding */,
> ++      HWCURSOR_API_NONE     /* cursor_api */,
> ++      NULL                  /* init_plane_for_cursor */,
> ++      0                     /* vblank_query_supported */,
> ++      create_custom_gem     /* create_custom_gem */,
> ++};
> ++
> ++struct drmmode_interface *drmmode_interface_get_implementation(int drm_fd)
> ++{
> ++      return &xilinx_interface;
> ++}
> ++
> +--
> +2.1.4
> diff --git a/recipes-graphics/xorg-driver/xf86-video-armsoc/0002-enable-subdir-objects.patch b/recipes-graphics/xorg-driver/xf86-video-armsoc/0002-enable-subdir-objects.patch
> new file mode 100644
> index 0000000..12815a0
> --- /dev/null
> +++ b/recipes-graphics/xorg-driver/xf86-video-armsoc/0002-enable-subdir-objects.patch
> @@ -0,0 +1,13 @@
> +diff --git a/configure.ac b/configure.ac
> +index eeffd92..88473a3 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -32,7 +32,7 @@ AC_CONFIG_HEADERS([config.h])
> + AC_CONFIG_AUX_DIR(.)
> + AC_CONFIG_MACRO_DIR([m4])
> +
> +-AM_INIT_AUTOMAKE([dist-bzip2])
> ++AM_INIT_AUTOMAKE([dist-bzip2 foreign subdir-objects])
> +
> + AM_MAINTAINER_MODE
> +
> diff --git a/recipes-graphics/xorg-driver/xf86-video-armsoc/10-input.conf b/recipes-graphics/xorg-driver/xf86-video-armsoc/10-input.conf
> new file mode 100644
> index 0000000..0c9d90f
> --- /dev/null
> +++ b/recipes-graphics/xorg-driver/xf86-video-armsoc/10-input.conf
> @@ -0,0 +1,11 @@
> +Section "InputDevice"
> +       Identifier      "System Mouse"
> +       Driver          "mouse"
> +       Option          "Device" "/dev/input/mouse0"
> +EndSection
> +
> +Section "InputDevice"
> +       Identifier      "System Keyboard"
> +       Driver          "kbd"
> +       Option          "Device" "/dev/input/event0"
> +EndSection

The input devices config should not be part of the video recipe. This
should come from xserver-xf86-config, have a look at the configs that
are provided for qemu* machines.

Regards,
Nathan

> diff --git a/recipes-graphics/xorg-driver/xf86-video-armsoc/20-zynqmp.conf b/recipes-graphics/xorg-driver/xf86-video-armsoc/20-zynqmp.conf
> new file mode 100644
> index 0000000..5300283
> --- /dev/null
> +++ b/recipes-graphics/xorg-driver/xf86-video-armsoc/20-zynqmp.conf
> @@ -0,0 +1,15 @@
> +Section "Device"
> +        Identifier      "ZynqMP"
> +        Driver          "armsoc"
> +        Option          "DRI2"                  "true"
> +        Option          "DRI2_PAGE_FLIP"        "false"
> +        Option          "DRI2_WAIT_VSYNC"       "true"
> +        Option          "SWcursorLCD"           "false"
> +        Option          "DEBUG"                 "false"
> +EndSection
> +
> +Section "Screen"
> +        Identifier      "DefaultScreen"
> +        Device          "ZynqMP"
> +        DefaultDepth    16
> +EndSection
> diff --git a/recipes-graphics/xorg-driver/xf86-video-armsoc_git.bb b/recipes-graphics/xorg-driver/xf86-video-armsoc_git.bb
> new file mode 100644
> index 0000000..fa3ee02
> --- /dev/null
> +++ b/recipes-graphics/xorg-driver/xf86-video-armsoc_git.bb
> @@ -0,0 +1,32 @@
> +require recipes-graphics/xorg-driver/xorg-driver-video.inc
> +
> +SUMMARY = "X.Org X server -- Xilinx ARM SOC display driver"
> +DESCRIPTION = "Xilinx ARM SOC display driver "
> +
> +LICENSE = "MIT-X & GPLv2+"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=10ce5de3b111315ea652a5f74ec0c602"
> +
> +DEPENDS += "libx11 libdrm xf86driproto"
> +RDEPENDS_${PN} += "xserver-xorg-module-exa"
> +
> +PV = "1.3.0+git${SRCPV}"
> +
> +SRCREV_pn-${PN} = "8ca8513880697f9a34d4006c43342b830bdd1ff2"
> +SRC_URI = " \
> +       git://anongit.freedesktop.org/xorg/driver/xf86-video-armsoc \
> +       file://0001-src-drmmode_xilinx-Add-the-dumb-gem-support-for-Xili.patch \
> +       file://0002-enable-subdir-objects.patch \
> +       file://10-input.conf \
> +       file://20-zynqmp.conf \
> +       "
> +
> +S = "${WORKDIR}/git"
> +
> +EXTRA_OECONF = " --enable-maintainer-mode --with-drmmode=xilinx"
> +CFLAGS += " -I${STAGING_INCDIR}/xorg "
> +
> +do_install_append() {
> +       install -d ${D}/etc/X11/xorg.conf.d
> +       install -m 0644 ${WORKDIR}/10-input.conf ${D}/etc/X11/xorg.conf.d
> +       install -m 0644 ${WORKDIR}/20-zynqmp.conf ${D}/etc/X11/xorg.conf.d
> +}
> --
> 2.1.4
>
> --
> _______________________________________________
> meta-xilinx mailing list
> meta-xilinx at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-xilinx



More information about the meta-xilinx mailing list