From mboxrd@z Thu Jan 1 00:00:00 1970 From: Charles Lohr Date: Thu, 15 Mar 2018 20:03:08 +0000 Subject: Re: fbcon non-desktop display use Message-Id: List-Id: References: <87zi39yyx1.fsf@keithp.com> In-Reply-To: <87zi39yyx1.fsf@keithp.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Keith Packard Cc: David Airlie , Linux Fbdev development list , dri-devel@lists.freedesktop.org, Bartlomiej Zolnierkiewicz To try to address both concerns, it feels easiest to do not in-line. 1) Just for background: The H3, and many other ARM systems use the framebuffer for all video access, 3D accelerated as well as X11. If we want to permit HMD (headmount display) or other non-desktop displays on these devices are going to be used at all, it seems DRM must be set up for them. I don't think of this as a "feature". 2) Although I "wish" there was a way to permit non-desktop use with multiple displays, I am having difficulty finding a specific need to be able to turn it on/off. All applications I can imagine with the HMD currently would involve the HMD being the only connected device. I am still "submitting" the patch with the parameter, however, if you folks decide not to accept it, I intend to re-submit with just the && strict fix (which I just tested and it's good!) -- unless you (Keith) are willing to put forward the && strict as a patch. 3) I am trying "plain text mode" for my patch, so hopefully it doesn't truncate the lines. Also, I misunderstood "Signed-off-by" Thanks! Signed-off-by: Charles Lohr diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 035784ddd..e14624d0f 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -55,6 +55,11 @@ MODULE_PARM_DESC(drm_fbdev_overalloc, "Overallocation of the fbdev buffer (%) [default=" __MODULE_STRING(CONFIG_DRM_FBDEV_OVERALLOC) "]"); +static bool drm_fbdev_permit_non_desktop; +module_param(drm_fbdev_permit_non_desktop, bool, 0644); +MODULE_PARM_DESC(drm_fbdev_permit_non_desktop, + "Allow the framebuffer to use non-desktop displays [default=off]"); + static LIST_HEAD(kernel_fb_helper_list); static DEFINE_MUTEX(kernel_fb_helper_lock); @@ -2109,7 +2114,7 @@ static bool drm_connector_enabled(struct drm_connector *connector, bool strict) { bool enable; - if (connector->display_info.non_desktop) + if (connector->display_info.non_desktop && !drm_fbdev_permit_non_desktop && strict) return false; if (strict) On Thu, Mar 15, 2018 at 2:30 PM, Keith Packard wrote: > Charles Lohr writes: > >> Even if the vive is the only device connected, it will still not permit it >> to be operated. See https://github.com/linux-sunxi/linux-sunxi/issues/291 >> for dri with a lot of debugging turned on. > > Oh, it's not supposed to do that. I had intended to write the code so > that if the only device available was a non-desktop device that it would > go ahead and use it. The X server patches did that, but the kernel ones > did not. It looks like that would be an easy patch -- just skip the > non_desktop check in the !strict case for drm_connector_enabled. > > However, your patch is a good addition as it will allow you to also > enable the HMD when other monitors are connected. > >> I can understand that most users would probably prefer that the vive isn't >> automatically used if no other displays are available, however, the current >> behavior prevents use of the vive on all devices that use fbdev for their >> primary output. > > That was definitely not my intention, and thanks for discovering this! > >> I've never sent an email to the kernel devel list, so I'm still a little >> nervous. Especially because this is against a different branch, and I'm >> starting to think that I should be messaging there, but this is something >> that really needs to go upstream. > > We'll get it sorted out; I'm not sure what Dave's preference is these > days anyways. > > Aside from some minor formatting issues, this patch looks good to me. > >> Signed-off-by: > > You'll need to add your name and email address here. > >> diff --git a/drivers/gpu/drm/drm_fb_helper.c >> b/drivers/gpu/drm/drm_fb_helper.c >> index 035784ddd..8bfaf79ff 100644 >> --- a/drivers/gpu/drm/drm_fb_helper.c >> +++ b/drivers/gpu/drm/drm_fb_helper.c >> @@ -55,6 +55,11 @@ MODULE_PARM_DESC(drm_fbdev_overalloc, >> "Overallocation of the fbdev buffer (%) [default=" >> __MODULE_STRING(CONFIG_DRM_FBDEV_OVERALLOC) "]"); >> >> +static bool drm_fbdev_permit_non_desktop; >> +module_param(drm_fbdev_permit_non_desktop, bool, 0644); >> +MODULE_PARM_DESC(drm_fbdev_permit_non_desktop, >> + "Allow the framebuffer to use non-desktop displays >> [default=off]"); >> + > > Your email client appears to be wrapping long lines, which breaks the patch. > > >> static LIST_HEAD(kernel_fb_helper_list); >> static DEFINE_MUTEX(kernel_fb_helper_lock); >> >> @@ -2109,7 +2114,7 @@ static bool drm_connector_enabled(struct >> drm_connector *connector, bool strict) >> { >> bool enable; >> >> - if (connector->display_info.non_desktop) >> + if (connector->display_info.non_desktop && >> !drm_fbdev_permit_non_desktop) > > If you added '&& strict' here, it will use the HMD if there aren't any > desktop monitors connected. > > -- > -keith From mboxrd@z Thu Jan 1 00:00:00 1970 From: Charles Lohr Subject: Re: fbcon non-desktop display use Date: Thu, 15 Mar 2018 16:03:08 -0400 Message-ID: References: <87zi39yyx1.fsf@keithp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-oi0-x22c.google.com (mail-oi0-x22c.google.com [IPv6:2607:f8b0:4003:c06::22c]) by gabe.freedesktop.org (Postfix) with ESMTPS id 214276E3B4 for ; Thu, 15 Mar 2018 20:03:09 +0000 (UTC) Received: by mail-oi0-x22c.google.com with SMTP id c18so6766471oiy.9 for ; Thu, 15 Mar 2018 13:03:09 -0700 (PDT) In-Reply-To: <87zi39yyx1.fsf@keithp.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Keith Packard Cc: David Airlie , Linux Fbdev development list , dri-devel@lists.freedesktop.org, Bartlomiej Zolnierkiewicz List-Id: dri-devel@lists.freedesktop.org VG8gdHJ5IHRvIGFkZHJlc3MgYm90aCBjb25jZXJucywgaXQgZmVlbHMgZWFzaWVzdCB0byBkbyBu b3QgaW4tbGluZS4KCjEpIEp1c3QgZm9yIGJhY2tncm91bmQ6IFRoZSBIMywgYW5kIG1hbnkgb3Ro ZXIgQVJNIHN5c3RlbXMgdXNlIHRoZQpmcmFtZWJ1ZmZlciBmb3IgYWxsIHZpZGVvIGFjY2Vzcywg M0QgYWNjZWxlcmF0ZWQgYXMgd2VsbCBhcyBYMTEuIElmIHdlCndhbnQgdG8gcGVybWl0IEhNRCAo aGVhZG1vdW50IGRpc3BsYXkpIG9yIG90aGVyIG5vbi1kZXNrdG9wIGRpc3BsYXlzCm9uIHRoZXNl IGRldmljZXMgYXJlIGdvaW5nIHRvIGJlIHVzZWQgYXQgYWxsLCBpdCBzZWVtcyBEUk0gbXVzdCBi ZSBzZXQKdXAgZm9yIHRoZW0uICBJIGRvbid0IHRoaW5rIG9mIHRoaXMgYXMgYSAiZmVhdHVyZSIu CgoyKSBBbHRob3VnaCBJICJ3aXNoIiB0aGVyZSB3YXMgYSB3YXkgdG8gcGVybWl0IG5vbi1kZXNr dG9wIHVzZSB3aXRoCm11bHRpcGxlIGRpc3BsYXlzLCBJIGFtIGhhdmluZyBkaWZmaWN1bHR5IGZp bmRpbmcgYSBzcGVjaWZpYyBuZWVkIHRvCmJlIGFibGUgdG8gdHVybiBpdCBvbi9vZmYuICBBbGwg YXBwbGljYXRpb25zIEkgY2FuIGltYWdpbmUgd2l0aCB0aGUKSE1EIGN1cnJlbnRseSB3b3VsZCBp bnZvbHZlIHRoZSBITUQgYmVpbmcgdGhlIG9ubHkgY29ubmVjdGVkIGRldmljZS4KSSBhbSBzdGls bCAic3VibWl0dGluZyIgdGhlIHBhdGNoIHdpdGggdGhlIHBhcmFtZXRlciwgaG93ZXZlciwgaWYg eW91CmZvbGtzIGRlY2lkZSBub3QgdG8gYWNjZXB0IGl0LCBJIGludGVuZCB0byByZS1zdWJtaXQg d2l0aCBqdXN0IHRoZSAmJgpzdHJpY3QgZml4ICh3aGljaCBJIGp1c3QgdGVzdGVkIGFuZCBpdCdz IGdvb2QhKSAtLSB1bmxlc3MgeW91IChLZWl0aCkKYXJlIHdpbGxpbmcgdG8gcHV0IGZvcndhcmQg dGhlICYmIHN0cmljdCBhcyBhIHBhdGNoLgoKMykgSSBhbSB0cnlpbmcgInBsYWluIHRleHQgbW9k ZSIgZm9yIG15IHBhdGNoLCBzbyBob3BlZnVsbHkgaXQgZG9lc24ndAp0cnVuY2F0ZSB0aGUgbGlu ZXMuICBBbHNvLCBJIG1pc3VuZGVyc3Rvb2QgIlNpZ25lZC1vZmYtYnkiIFRoYW5rcyEKClNpZ25l ZC1vZmYtYnk6IENoYXJsZXMgTG9ociA8bG9ocjg1QGdtYWlsLmNvbT4KCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9o ZWxwZXIuYwppbmRleCAwMzU3ODRkZGQuLmUxNDYyNGQwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9mYl9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBl ci5jCkBAIC01NSw2ICs1NSwxMSBAQCBNT0RVTEVfUEFSTV9ERVNDKGRybV9mYmRldl9vdmVyYWxs b2MsCiAgICAgICAgICAgICAgICAgIk92ZXJhbGxvY2F0aW9uIG9mIHRoZSBmYmRldiBidWZmZXIg KCUpIFtkZWZhdWx0PSIKICAgICAgICAgICAgICAgICBfX01PRFVMRV9TVFJJTkcoQ09ORklHX0RS TV9GQkRFVl9PVkVSQUxMT0MpICJdIik7Cgorc3RhdGljIGJvb2wgZHJtX2ZiZGV2X3Blcm1pdF9u b25fZGVza3RvcDsKK21vZHVsZV9wYXJhbShkcm1fZmJkZXZfcGVybWl0X25vbl9kZXNrdG9wLCBi b29sLCAwNjQ0KTsKK01PRFVMRV9QQVJNX0RFU0MoZHJtX2ZiZGV2X3Blcm1pdF9ub25fZGVza3Rv cCwKKyAgICAgICAgICAgICAgICJBbGxvdyB0aGUgZnJhbWVidWZmZXIgdG8gdXNlIG5vbi1kZXNr dG9wIGRpc3BsYXlzCltkZWZhdWx0PW9mZl0iKTsKKwogc3RhdGljIExJU1RfSEVBRChrZXJuZWxf ZmJfaGVscGVyX2xpc3QpOwogc3RhdGljIERFRklORV9NVVRFWChrZXJuZWxfZmJfaGVscGVyX2xv Y2spOwoKQEAgLTIxMDksNyArMjExNCw3IEBAIHN0YXRpYyBib29sIGRybV9jb25uZWN0b3JfZW5h YmxlZChzdHJ1Y3QKZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIHN0cmljdCkKIHsKICAg ICAgICBib29sIGVuYWJsZTsKCi0gICAgICAgaWYgKGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLm5v bl9kZXNrdG9wKQorICAgICAgIGlmIChjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5ub25fZGVza3Rv cCAmJgohZHJtX2ZiZGV2X3Blcm1pdF9ub25fZGVza3RvcCAmJiBzdHJpY3QpCiAgICAgICAgICAg ICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgIGlmIChzdHJpY3QpCgpPbiBUaHUsIE1hciAxNSwg MjAxOCBhdCAyOjMwIFBNLCBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4gd3JvdGU6 Cj4gQ2hhcmxlcyBMb2hyIDxsb2hyODVAZ21haWwuY29tPiB3cml0ZXM6Cj4KPj4gRXZlbiBpZiB0 aGUgdml2ZSBpcyB0aGUgb25seSBkZXZpY2UgY29ubmVjdGVkLCBpdCB3aWxsIHN0aWxsIG5vdCBw ZXJtaXQgaXQKPj4gdG8gYmUgb3BlcmF0ZWQuICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2xpbnV4 LXN1bnhpL2xpbnV4LXN1bnhpL2lzc3Vlcy8yOTEKPj4gZm9yIGRyaSB3aXRoIGEgbG90IG9mIGRl YnVnZ2luZyB0dXJuZWQgb24uCj4KPiBPaCwgaXQncyBub3Qgc3VwcG9zZWQgdG8gZG8gdGhhdC4g SSBoYWQgaW50ZW5kZWQgdG8gd3JpdGUgdGhlIGNvZGUgc28KPiB0aGF0IGlmIHRoZSBvbmx5IGRl dmljZSBhdmFpbGFibGUgd2FzIGEgbm9uLWRlc2t0b3AgZGV2aWNlIHRoYXQgaXQgd291bGQKPiBn byBhaGVhZCBhbmQgdXNlIGl0LiBUaGUgWCBzZXJ2ZXIgcGF0Y2hlcyBkaWQgdGhhdCwgYnV0IHRo ZSBrZXJuZWwgb25lcwo+IGRpZCBub3QuIEl0IGxvb2tzIGxpa2UgdGhhdCB3b3VsZCBiZSBhbiBl YXN5IHBhdGNoIC0tIGp1c3Qgc2tpcCB0aGUKPiBub25fZGVza3RvcCBjaGVjayBpbiB0aGUgIXN0 cmljdCBjYXNlIGZvciBkcm1fY29ubmVjdG9yX2VuYWJsZWQuCj4KPiBIb3dldmVyLCB5b3VyIHBh dGNoIGlzIGEgZ29vZCBhZGRpdGlvbiBhcyBpdCB3aWxsIGFsbG93IHlvdSB0byBhbHNvCj4gZW5h YmxlIHRoZSBITUQgd2hlbiBvdGhlciBtb25pdG9ycyBhcmUgY29ubmVjdGVkLgo+Cj4+IEkgY2Fu IHVuZGVyc3RhbmQgdGhhdCBtb3N0IHVzZXJzIHdvdWxkIHByb2JhYmx5IHByZWZlciB0aGF0IHRo ZSB2aXZlIGlzbid0Cj4+IGF1dG9tYXRpY2FsbHkgdXNlZCBpZiBubyBvdGhlciBkaXNwbGF5cyBh cmUgYXZhaWxhYmxlLCBob3dldmVyLCB0aGUgY3VycmVudAo+PiBiZWhhdmlvciBwcmV2ZW50cyB1 c2Ugb2YgdGhlIHZpdmUgb24gYWxsIGRldmljZXMgdGhhdCB1c2UgZmJkZXYgZm9yIHRoZWlyCj4+ IHByaW1hcnkgb3V0cHV0Lgo+Cj4gVGhhdCB3YXMgZGVmaW5pdGVseSBub3QgbXkgaW50ZW50aW9u LCBhbmQgdGhhbmtzIGZvciBkaXNjb3ZlcmluZyB0aGlzIQo+Cj4+IEkndmUgbmV2ZXIgc2VudCBh biBlbWFpbCB0byB0aGUga2VybmVsIGRldmVsIGxpc3QsIHNvIEknbSBzdGlsbCBhIGxpdHRsZQo+ PiBuZXJ2b3VzLiAgRXNwZWNpYWxseSBiZWNhdXNlIHRoaXMgaXMgYWdhaW5zdCBhIGRpZmZlcmVu dCBicmFuY2gsIGFuZCBJJ20KPj4gc3RhcnRpbmcgdG8gdGhpbmsgdGhhdCBJIHNob3VsZCBiZSBt ZXNzYWdpbmcgdGhlcmUsIGJ1dCB0aGlzIGlzIHNvbWV0aGluZwo+PiB0aGF0IHJlYWxseSBuZWVk cyB0byBnbyB1cHN0cmVhbS4KPgo+IFdlJ2xsIGdldCBpdCBzb3J0ZWQgb3V0OyBJJ20gbm90IHN1 cmUgd2hhdCBEYXZlJ3MgcHJlZmVyZW5jZSBpcyB0aGVzZQo+IGRheXMgYW55d2F5cy4KPgo+IEFz aWRlIGZyb20gc29tZSBtaW5vciBmb3JtYXR0aW5nIGlzc3VlcywgdGhpcyBwYXRjaCBsb29rcyBn b29kIHRvIG1lLgo+Cj4+IFNpZ25lZC1vZmYtYnk6Cj4KPiBZb3UnbGwgbmVlZCB0byBhZGQgeW91 ciBuYW1lIGFuZCBlbWFpbCBhZGRyZXNzIGhlcmUuCj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBl ci5jCj4+IGluZGV4IDAzNTc4NGRkZC4uOGJmYWY3OWZmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJf aGVscGVyLmMKPj4gQEAgLTU1LDYgKzU1LDExIEBAIE1PRFVMRV9QQVJNX0RFU0MoZHJtX2ZiZGV2 X292ZXJhbGxvYywKPj4gICAgICAgICAgICAgICAgICAiT3ZlcmFsbG9jYXRpb24gb2YgdGhlIGZi ZGV2IGJ1ZmZlciAoJSkgW2RlZmF1bHQ9Igo+PiAgICAgICAgICAgICAgICAgIF9fTU9EVUxFX1NU UklORyhDT05GSUdfRFJNX0ZCREVWX09WRVJBTExPQykgIl0iKTsKPj4KPj4gK3N0YXRpYyBib29s IGRybV9mYmRldl9wZXJtaXRfbm9uX2Rlc2t0b3A7Cj4+ICttb2R1bGVfcGFyYW0oZHJtX2ZiZGV2 X3Blcm1pdF9ub25fZGVza3RvcCwgYm9vbCwgMDY0NCk7Cj4+ICtNT0RVTEVfUEFSTV9ERVNDKGRy bV9mYmRldl9wZXJtaXRfbm9uX2Rlc2t0b3AsCj4+ICsgICAgICAgICAgICAgICAiQWxsb3cgdGhl IGZyYW1lYnVmZmVyIHRvIHVzZSBub24tZGVza3RvcCBkaXNwbGF5cwo+PiBbZGVmYXVsdD1vZmZd Iik7Cj4+ICsKPgo+IFlvdXIgZW1haWwgY2xpZW50IGFwcGVhcnMgdG8gYmUgd3JhcHBpbmcgbG9u ZyBsaW5lcywgd2hpY2ggYnJlYWtzIHRoZSBwYXRjaC4KPgo+Cj4+ICBzdGF0aWMgTElTVF9IRUFE KGtlcm5lbF9mYl9oZWxwZXJfbGlzdCk7Cj4+ICBzdGF0aWMgREVGSU5FX01VVEVYKGtlcm5lbF9m Yl9oZWxwZXJfbG9jayk7Cj4+Cj4+IEBAIC0yMTA5LDcgKzIxMTQsNyBAQCBzdGF0aWMgYm9vbCBk cm1fY29ubmVjdG9yX2VuYWJsZWQoc3RydWN0Cj4+IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwg Ym9vbCBzdHJpY3QpCj4+ICB7Cj4+ICAgICAgICAgYm9vbCBlbmFibGU7Cj4+Cj4+IC0gICAgICAg aWYgKGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLm5vbl9kZXNrdG9wKQo+PiArICAgICAgIGlmIChj b25uZWN0b3ItPmRpc3BsYXlfaW5mby5ub25fZGVza3RvcCAmJgo+PiAhZHJtX2ZiZGV2X3Blcm1p dF9ub25fZGVza3RvcCkKPgo+IElmIHlvdSBhZGRlZCAnJiYgc3RyaWN0JyBoZXJlLCBpdCB3aWxs IHVzZSB0aGUgSE1EIGlmIHRoZXJlIGFyZW4ndCBhbnkKPiBkZXNrdG9wIG1vbml0b3JzIGNvbm5l Y3RlZC4KPgo+IC0tCj4gLWtlaXRoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=