From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey.Brodkin@synopsys.com (Alexey Brodkin) Date: Mon, 4 Dec 2017 11:32:57 +0000 Subject: UDL's fbdev doesn't work for user-space apps List-ID: Message-ID: <1512387175.4977.24.camel@synopsys.com> To: linux-snps-arc@lists.infradead.org Hello, I'm trying to use DisplayLink USB2.0-to-HDMI adapter as the one and only video output and I want to get Xserver working on top of that. I'm not very familiar with all the parts of Linux GPU/video stack (especially its user-space counterpart) so my assumptions might be wrong in that case please correct me. My first [probably incorrect] assumption is Xserver requires fbdev (/dev/fbX) and it cannot use DRI video card natively. Is that correct? So to get /ded/fb0 with UDL I just enabled CONFIG_DRM_UDL & CONFIG_DRM_FBDEV_EMULATION. That gave me boot console on HDMI screen and I was full of expectations. But when I tried to use /dev/fb0 from whatever user-space app nothing got displayed on the screen... as well as no error messages appeared. After?eyeballing at UDL code (especially in comparison with QXC which uses deferredio as well) I noticed that in UDL fb_deferred_io_init() is called from udl_fb_open(), i.e. .fb_open call-back (in other words every time user-space app opens /dev/fb0) while in QXC this is done only once and much earlier in?qxlfb_create(), which is called with .fb_probe call-back. So moved fb_deferred_io_init() in UDL driver from udl_fb_open() to?udlfb_create() which is also called from .fb_probe. With that change I finally got video output via fbdev from user-space app, but only on the first run. The next attempt to run inevitably ends with kernel crash showing the following stack-trace (having half of the new screen rendered on display): ------------------------>8------------------------- Stack Trace: ? udl_handle_damage+0x48/0x210 ? udl_crtc_mode_set+0x6ee/0x754 ? drm_crtc_helper_set_mode+0x25e/0x438 ? drm_crtc_helper_set_config+0x6d6/0x814 ? __drm_mode_set_config_internal+0x48/0xc8 ? drm_mode_setcrtc+0x320/0x478 ? drm_ioctl+0x22c/0x3e4 ? SyS_ioctl+0xa4/0x8cc ? EV_Trap+0x108/0x10c random: crng init done ------------------------>8------------------------- I'm wondering if UDL driver (its DRM flavor) was ever tested for fbdev in user-space? If so and it really works for somebody maybe I'm doing something terribly wrong - in that case any comments are very welcome. One interesting note: it seems like pure DRI stuff works like a charm. I may run kmscube perfectly fine without any changes whatsoever and do it many times in a row. Thanks in advance, Alexey From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey Brodkin Subject: UDL's fbdev doesn't work for user-space apps Date: Mon, 4 Dec 2017 11:32:57 +0000 Message-ID: <1512387175.4977.24.camel@synopsys.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Language: en-US Content-ID: <11BEB5F04B18E143B7485EBFE1DC5549@internal.synopsys.com> Sender: linux-kernel-owner@vger.kernel.org To: "airlied@gmail.com" Cc: "airlied@redhat.com" , "dri-devel@lists.freedesktop.org" , "hshi@chromium.org" , "daniel.vetter@ffwll.ch" , "tutankhamen@chromium.org" , "linux-snps-arc@lists.infradead.org" , "linux-kernel@vger.kernel.org" List-Id: dri-devel@lists.freedesktop.org SGVsbG8sDQoNCkknbSB0cnlpbmcgdG8gdXNlIERpc3BsYXlMaW5rIFVTQjIuMC10by1IRE1JIGFk YXB0ZXIgYXMgdGhlIG9uZSBhbmQgb25seQ0KdmlkZW8gb3V0cHV0IGFuZCBJIHdhbnQgdG8gZ2V0 IFhzZXJ2ZXIgd29ya2luZyBvbiB0b3Agb2YgdGhhdC4NCg0KSSdtIG5vdCB2ZXJ5IGZhbWlsaWFy IHdpdGggYWxsIHRoZSBwYXJ0cyBvZiBMaW51eCBHUFUvdmlkZW8gc3RhY2sNCihlc3BlY2lhbGx5 IGl0cyB1c2VyLXNwYWNlIGNvdW50ZXJwYXJ0KSBzbyBteSBhc3N1bXB0aW9ucyBtaWdodCBiZSB3 cm9uZw0KaW4gdGhhdCBjYXNlIHBsZWFzZSBjb3JyZWN0IG1lLg0KDQpNeSBmaXJzdCBbcHJvYmFi bHkgaW5jb3JyZWN0XSBhc3N1bXB0aW9uIGlzIFhzZXJ2ZXIgcmVxdWlyZXMgZmJkZXYgKC9kZXYv ZmJYKQ0KYW5kIGl0IGNhbm5vdCB1c2UgRFJJIHZpZGVvIGNhcmQgbmF0aXZlbHkuIElzIHRoYXQg Y29ycmVjdD8NCg0KU28gdG8gZ2V0IC9kZWQvZmIwIHdpdGggVURMIEkganVzdCBlbmFibGVkIENP TkZJR19EUk1fVURMICYgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04uDQpUaGF0IGdhdmUgbWUg Ym9vdCBjb25zb2xlIG9uIEhETUkgc2NyZWVuIGFuZCBJIHdhcyBmdWxsIG9mIGV4cGVjdGF0aW9u cy4NCkJ1dCB3aGVuIEkgdHJpZWQgdG8gdXNlIC9kZXYvZmIwIGZyb20gd2hhdGV2ZXIgdXNlci1z cGFjZSBhcHAgbm90aGluZyBnb3QNCmRpc3BsYXllZCBvbiB0aGUgc2NyZWVuLi4uIGFzIHdlbGwg YXMgbm8gZXJyb3IgbWVzc2FnZXMgYXBwZWFyZWQuDQoNCkFmdGVywqBleWViYWxsaW5nIGF0IFVE TCBjb2RlIChlc3BlY2lhbGx5IGluIGNvbXBhcmlzb24gd2l0aCBRWEMgd2hpY2ggdXNlcyBkZWZl cnJlZGlvDQphcyB3ZWxsKSBJIG5vdGljZWQgdGhhdCBpbiBVREwgZmJfZGVmZXJyZWRfaW9faW5p dCgpIGlzIGNhbGxlZCBmcm9tIHVkbF9mYl9vcGVuKCksDQppLmUuIC5mYl9vcGVuIGNhbGwtYmFj ayAoaW4gb3RoZXIgd29yZHMgZXZlcnkgdGltZSB1c2VyLXNwYWNlIGFwcCBvcGVucyAvZGV2L2Zi MCkNCndoaWxlIGluIFFYQyB0aGlzIGlzIGRvbmUgb25seSBvbmNlIGFuZCBtdWNoIGVhcmxpZXIg aW7CoHF4bGZiX2NyZWF0ZSgpLCB3aGljaCBpcw0KY2FsbGVkIHdpdGggLmZiX3Byb2JlIGNhbGwt YmFjay4gU28gbW92ZWQgZmJfZGVmZXJyZWRfaW9faW5pdCgpIGluIFVETCBkcml2ZXIgZnJvbQ0K dWRsX2ZiX29wZW4oKSB0b8KgdWRsZmJfY3JlYXRlKCkgd2hpY2ggaXMgYWxzbyBjYWxsZWQgZnJv bSAuZmJfcHJvYmUuDQoNCldpdGggdGhhdCBjaGFuZ2UgSSBmaW5hbGx5IGdvdCB2aWRlbyBvdXRw dXQgdmlhIGZiZGV2IGZyb20gdXNlci1zcGFjZSBhcHAsDQpidXQgb25seSBvbiB0aGUgZmlyc3Qg cnVuLiBUaGUgbmV4dCBhdHRlbXB0IHRvIHJ1biBpbmV2aXRhYmx5IGVuZHMgd2l0aA0Ka2VybmVs IGNyYXNoIHNob3dpbmcgdGhlIGZvbGxvd2luZyBzdGFjay10cmFjZSAoaGF2aW5nIGhhbGYgb2Yg dGhlIG5ldyBzY3JlZW4NCnJlbmRlcmVkIG9uIGRpc3BsYXkpOg0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tPjgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpTdGFjayBUcmFjZToNCsKgIHVkbF9o YW5kbGVfZGFtYWdlKzB4NDgvMHgyMTANCsKgIHVkbF9jcnRjX21vZGVfc2V0KzB4NmVlLzB4NzU0 DQrCoCBkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUrMHgyNWUvMHg0MzgNCsKgIGRybV9jcnRjX2hl bHBlcl9zZXRfY29uZmlnKzB4NmQ2LzB4ODE0DQrCoCBfX2RybV9tb2RlX3NldF9jb25maWdfaW50 ZXJuYWwrMHg0OC8weGM4DQrCoCBkcm1fbW9kZV9zZXRjcnRjKzB4MzIwLzB4NDc4DQrCoCBkcm1f aW9jdGwrMHgyMmMvMHgzZTQNCsKgIFN5U19pb2N0bCsweGE0LzB4OGNjDQrCoCBFVl9UcmFwKzB4 MTA4LzB4MTBjDQpyYW5kb206IGNybmcgaW5pdCBkb25lDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0+OC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KSSdtIHdvbmRlcmluZyBpZiBVREwgZHJp dmVyIChpdHMgRFJNIGZsYXZvcikgd2FzIGV2ZXIgdGVzdGVkIGZvcg0KZmJkZXYgaW4gdXNlci1z cGFjZT8gSWYgc28gYW5kIGl0IHJlYWxseSB3b3JrcyBmb3Igc29tZWJvZHkNCm1heWJlIEknbSBk b2luZyBzb21ldGhpbmcgdGVycmlibHkgd3JvbmcgLSBpbiB0aGF0IGNhc2UgYW55IGNvbW1lbnRz DQphcmUgdmVyeSB3ZWxjb21lLg0KDQpPbmUgaW50ZXJlc3Rpbmcgbm90ZTogaXQgc2VlbXMgbGlr ZSBwdXJlIERSSSBzdHVmZiB3b3JrcyBsaWtlIGEgY2hhcm0uDQpJIG1heSBydW4ga21zY3ViZSBw ZXJmZWN0bHkgZmluZSB3aXRob3V0IGFueSBjaGFuZ2VzIHdoYXRzb2V2ZXIgYW5kIGRvIGl0DQpt YW55IHRpbWVzIGluIGEgcm93Lg0KDQpUaGFua3MgaW4gYWR2YW5jZSwNCkFsZXhleQ==