Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753135AbdLDNQ6 (ORCPT ); Mon, 4 Dec 2017 08:16:58 -0500 Received: from us01smtprelay-2.synopsys.com ([198.182.47.9]:39420 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752060AbdLDNQx (ORCPT ); Mon, 4 Dec 2017 08:16:53 -0500 From: Alexey Brodkin To: "l.stach@pengutronix.de" , Jose Abreu CC: "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "airlied@gmail.com" , "airlied@redhat.com" , "daniel.vetter@ffwll.ch" , "linux-snps-arc@lists.infradead.org" Subject: xf86-video-armada via UDL [was: Re: UDL's fbdev doesn't work for user-space apps] Thread-Topic: xf86-video-armada via UDL [was: Re: UDL's fbdev doesn't work for user-space apps] Thread-Index: AQHTbQIkipqBBGWFjUqX7bL3/pGn2w== Date: Mon, 4 Dec 2017 13:16:48 +0000 Message-ID: <1512393408.4977.44.camel@synopsys.com> References: <1512387175.4977.24.camel@synopsys.com> <86238def-82be-2ad1-63d0-b9a8dbf83db6@synopsys.com> In-Reply-To: <86238def-82be-2ad1-63d0-b9a8dbf83db6@synopsys.com> Accept-Language: en-US, ru-RU Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.225.15.245] Content-Type: text/plain; charset="utf-8" Content-ID: MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by nfs id vB4DH2lC026567 Content-Length: 3938 Lines: 114 Hi Jose, On Mon, 2017-12-04 at 11:50 +0000, Jose Abreu wrote: > Hi Alexey, > > On 04-12-2017 11:32, Alexey Brodkin wrote: > > > > My first [probably incorrect] assumption is Xserver requires fbdev (/dev/fbX) > > and it cannot use DRI video card natively. Is that correct? > > > > > > Xserver can use DRI directly, you need to enable modesetting > driver in Xorg config or use the designated driver for your card > (if there is any). Ok that makes sense. I didn't think about generic modesetting driver for Xserver. And that indeed works. This is my xorg.conf: ----------------------->8---------------------- # cat /etc/X11/xorg.conf  Section "Device"         Identifier      "Driver0"         Screen          0         Driver          "modesetting"         Option          "kmsdev" "/dev/dri/card1" EndSection ----------------------->8---------------------- I do see xclock is rendered fine. Now I guess is getting closer to what I really need :) In the end I wanted to get 3D rendered by Vivante GPU to be displayed on UDL. My assumption was very simple - if IMX-DRM+Etnaviv work fine it should be straight-forward to swap IMX-DRM bitstreamer with UDL and we're golden. That might be more a question to Lucas now. I use xorg.conf as found here: http://git.arm.linux.org.uk/cgit/xf86-video-armada.git/tree/conf/xorg-sample.conf?h=unstable-devel That's what it has: ----------------------->8---------------------- Section "Device" Identifier "Driver0" Screen 0 Driver "armada" # Support hotplugging displays? # Option "Hotplug" "TRUE" # Support hardware cursor if available? # Option "HWCursor" "TRUE" # Use GPU acceleration? # Option "UseGPU" "TRUE" # Provide Xv interfaces? # Option "XvAccel" "TRUE" # Prefer overlay for Xv (TRUE for armada-drm, FALSE for imx-drm) # Option "XvPreferOverlay" "TRUE" # Which accelerator module to load (automatically found if commented out) # Option "AccelModule" "etnadrm_gpu" # Option "AccelModule" "etnaviv_gpu" # Support DRI2 interfaces? # Option "DRI" "TRUE" EndSection ----------------------->8---------------------- Indeed I uncommented all the lines and then it allows to see for example glmark2-es2 working on Wandboard (that's exactly where "imx-drm + etnaviv" combo is used). But if I swap "imx-drm" to "udl" I don't see anything on my screen (connected via UDL) even though Xserver seems to really start claiming the screen (so I see it becomes black, effectively overriding whatever was there before) and glmark benchmark prints results. Maybe I'm missing some additional glue for UDL in "xf86-video-armada" except the simple one: ----------------------->8---------------------- --- a/src/armada_module.c +++ b/src/armada_module.c @@ -26,7 +26,7 @@  #define ARMADA_NAME            "armada"  #define ARMADA_DRIVER_NAME     "armada"   -#define DRM_MODULE_NAMES       "armada-drm", "imx-drm" +#define DRM_MODULE_NAMES       "armada-drm", "imx-drm", "udl"  #define DRM_DEFAULT_BUS_ID     NULL    static const char *drm_module_names[] = { DRM_MODULE_NAMES }; @@ -43,6 +43,11 @@ static SymTabRec ipu_chipsets[] = {         { -1, NULL }  };   +static SymTabRec udl_chipsets[] = { +       {  0, "UDL" }, +       { -1, NULL } +}; +  static const OptionInfoRec * const options[] = {         armada_drm_options,         common_drm_options, @@ -115,6 +120,8 @@ static void armada_identify(int flags)                           armada_chipsets);         xf86PrintChipsets(ARMADA_NAME, "Support for Freescale IPU",                           ipu_chipsets); +       xf86PrintChipsets(ARMADA_NAME, "Support DisplayLink USB2.0", +                         udl_chipsets);  } ----------------------->8---------------------- -Alexey