From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Date: Wed, 27 Mar 2019 10:00:57 +0000 Subject: Re: [PATCH 07/11] drm/fbdevdrm: Add DRM <-> fbdev pixel-format conversion Message-Id: <20190327100057.GB3888@intel.com> List-Id: References: <20190326091744.11542-1-tzimmermann@suse.de> <20190326091744.11542-8-tzimmermann@suse.de> <20190326162910.GY3888@intel.com> <44049a77-d9b8-992e-2107-55e33845a398@suse.de> In-Reply-To: <44049a77-d9b8-992e-2107-55e33845a398@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: Thomas Zimmermann Cc: airlied@linux.ie, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, b.zolnierkie@samsung.com On Wed, Mar 27, 2019 at 09:28:49AM +0100, Thomas Zimmermann wrote: > Hi >=20 > Am 26.03.19 um 17:29 schrieb Ville Syrj=E4l=E4: > >> + > >> +static bool is_c8(const struct fb_info* fb_info) > >> +{ > >> + return fb_info->var.bits_per_pixel =3D 8; > >> +} > >> + > >> +static bool is_rgb565_be(const struct fb_info* fb_info) > >> +{ > >> + return (fb_info->var.bits_per_pixel =3D 16) && > >> + (fb_info->var.red.offset =3D 0) && > >> + (fb_info->var.red.length =3D 5) && > >> + (fb_info->var.green.offset =3D 5) && > >> + (fb_info->var.green.length =3D 6) && > >> + (fb_info->var.blue.offset =3D 11) && > >> + (fb_info->var.blue.length =3D 5); > >> +} > >=20 > > You can't distinguish LE vs. BE like this. > >=20 > > Maybe FBINFO_FOREIGN_ENDIAN is trustworthy? > >=20 >=20 > The test function means 'is the framebuffer in RGB565 format if the host > uses big-endian access'. Further below in the file, there are macros > that reverse the order of fields for little-endian hosts. And that does not work. Wrong endianness swaps bytes, not components. >=20 > However, mapping all this to DRM formats is confusing. >=20 > According to the documentation, DRM_FORMAT_ is always in little-endian > format. But does that mean that the device uses little endian or that > the host uses little endian? If the device and the host disagree on > endianess, which takes precedence? It just means "the pixel value listed is stored in memory=20 least significant byte first". >=20 > In the end, I tried different combinations of tests and DRM formats, and > checked the resulting output on the screen. This was just pointed out to me recently: https://github.com/afrantzis/pixel-format-guide It seems to interpret drm formats correctly. Though I wouldn't mind if someone improved the drm_fourcc.h docs since everyone except me seems to get confused by the current wording. --=20 Ville Syrj=E4l=E4 Intel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 07/11] drm/fbdevdrm: Add DRM <-> fbdev pixel-format conversion Date: Wed, 27 Mar 2019 12:00:57 +0200 Message-ID: <20190327100057.GB3888@intel.com> References: <20190326091744.11542-1-tzimmermann@suse.de> <20190326091744.11542-8-tzimmermann@suse.de> <20190326162910.GY3888@intel.com> <44049a77-d9b8-992e-2107-55e33845a398@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 241126E146 for ; Wed, 27 Mar 2019 10:01:01 +0000 (UTC) Content-Disposition: inline In-Reply-To: <44049a77-d9b8-992e-2107-55e33845a398@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thomas Zimmermann Cc: airlied@linux.ie, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, b.zolnierkie@samsung.com List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBNYXIgMjcsIDIwMTkgYXQgMDk6Mjg6NDlBTSArMDEwMCwgVGhvbWFzIFppbW1lcm1h bm4gd3JvdGU6Cj4gSGkKPiAKPiBBbSAyNi4wMy4xOSB1bSAxNzoyOSBzY2hyaWViIFZpbGxlIFN5 cmrDpGzDpDoKPiA+PiArCj4gPj4gK3N0YXRpYyBib29sIGlzX2M4KGNvbnN0IHN0cnVjdCBmYl9p bmZvKiBmYl9pbmZvKQo+ID4+ICt7Cj4gPj4gKwlyZXR1cm4gZmJfaW5mby0+dmFyLmJpdHNfcGVy X3BpeGVsID09IDg7Cj4gPj4gK30KPiA+PiArCj4gPj4gK3N0YXRpYyBib29sIGlzX3JnYjU2NV9i ZShjb25zdCBzdHJ1Y3QgZmJfaW5mbyogZmJfaW5mbykKPiA+PiArewo+ID4+ICsJcmV0dXJuIChm Yl9pbmZvLT52YXIuYml0c19wZXJfcGl4ZWwgPT0gMTYpICYmCj4gPj4gKwkgICAgICAgKGZiX2lu Zm8tPnZhci5yZWQub2Zmc2V0ID09IDApICYmCj4gPj4gKwkgICAgICAgKGZiX2luZm8tPnZhci5y ZWQubGVuZ3RoID09IDUpICYmCj4gPj4gKwkgICAgICAgKGZiX2luZm8tPnZhci5ncmVlbi5vZmZz ZXQgPT0gNSkgJiYKPiA+PiArCSAgICAgICAoZmJfaW5mby0+dmFyLmdyZWVuLmxlbmd0aCA9PSA2 KSAmJgo+ID4+ICsJICAgICAgIChmYl9pbmZvLT52YXIuYmx1ZS5vZmZzZXQgPT0gMTEpICYmCj4g Pj4gKwkgICAgICAgKGZiX2luZm8tPnZhci5ibHVlLmxlbmd0aCA9PSA1KTsKPiA+PiArfQo+ID4g Cj4gPiBZb3UgY2FuJ3QgZGlzdGluZ3Vpc2ggTEUgdnMuIEJFIGxpa2UgdGhpcy4KPiA+IAo+ID4g TWF5YmUgRkJJTkZPX0ZPUkVJR05fRU5ESUFOIGlzIHRydXN0d29ydGh5Pwo+ID4gCj4gCj4gVGhl IHRlc3QgZnVuY3Rpb24gbWVhbnMgJ2lzIHRoZSBmcmFtZWJ1ZmZlciBpbiBSR0I1NjUgZm9ybWF0 IGlmIHRoZSBob3N0Cj4gdXNlcyBiaWctZW5kaWFuIGFjY2VzcycuIEZ1cnRoZXIgYmVsb3cgaW4g dGhlIGZpbGUsIHRoZXJlIGFyZSBtYWNyb3MKPiB0aGF0IHJldmVyc2UgdGhlIG9yZGVyIG9mIGZp ZWxkcyBmb3IgbGl0dGxlLWVuZGlhbiBob3N0cy4KCkFuZCB0aGF0IGRvZXMgbm90IHdvcmsuIFdy b25nIGVuZGlhbm5lc3Mgc3dhcHMgYnl0ZXMsIG5vdCBjb21wb25lbnRzLgoKPiAKPiBIb3dldmVy LCBtYXBwaW5nIGFsbCB0aGlzIHRvIERSTSBmb3JtYXRzIGlzIGNvbmZ1c2luZy4KPiAKPiBBY2Nv cmRpbmcgdG8gdGhlIGRvY3VtZW50YXRpb24sIERSTV9GT1JNQVRfIGlzIGFsd2F5cyBpbiBsaXR0 bGUtZW5kaWFuCj4gZm9ybWF0LiBCdXQgZG9lcyB0aGF0IG1lYW4gdGhhdCB0aGUgZGV2aWNlIHVz ZXMgbGl0dGxlIGVuZGlhbiBvciB0aGF0Cj4gdGhlIGhvc3QgdXNlcyBsaXR0bGUgZW5kaWFuPyBJ ZiB0aGUgZGV2aWNlIGFuZCB0aGUgaG9zdCBkaXNhZ3JlZSBvbgo+IGVuZGlhbmVzcywgd2hpY2gg dGFrZXMgcHJlY2VkZW5jZT8KCkl0IGp1c3QgbWVhbnMgInRoZSBwaXhlbCB2YWx1ZSBsaXN0ZWQg aXMgc3RvcmVkIGluIG1lbW9yeSAKbGVhc3Qgc2lnbmlmaWNhbnQgYnl0ZSBmaXJzdCIuCgo+IAo+ IEluIHRoZSBlbmQsIEkgdHJpZWQgZGlmZmVyZW50IGNvbWJpbmF0aW9ucyBvZiB0ZXN0cyBhbmQg RFJNIGZvcm1hdHMsIGFuZAo+IGNoZWNrZWQgdGhlIHJlc3VsdGluZyBvdXRwdXQgb24gdGhlIHNj cmVlbi4KClRoaXMgd2FzIGp1c3QgcG9pbnRlZCBvdXQgdG8gbWUgcmVjZW50bHk6Cmh0dHBzOi8v Z2l0aHViLmNvbS9hZnJhbnR6aXMvcGl4ZWwtZm9ybWF0LWd1aWRlCgpJdCBzZWVtcyB0byBpbnRl cnByZXQgZHJtIGZvcm1hdHMgY29ycmVjdGx5LgoKVGhvdWdoIEkgd291bGRuJ3QgbWluZCBpZiBz b21lb25lIGltcHJvdmVkIHRoZSBkcm1fZm91cmNjLmggZG9jcyBzaW5jZQpldmVyeW9uZSBleGNl cHQgbWUgc2VlbXMgdG8gZ2V0IGNvbmZ1c2VkIGJ5IHRoZSBjdXJyZW50IHdvcmRpbmcuCgotLSAK VmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbA==