From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Date: Tue, 26 Mar 2019 16:29:10 +0000 Subject: Re: [PATCH 07/11] drm/fbdevdrm: Add DRM <-> fbdev pixel-format conversion Message-Id: <20190326162910.GY3888@intel.com> List-Id: References: <20190326091744.11542-1-tzimmermann@suse.de> <20190326091744.11542-8-tzimmermann@suse.de> In-Reply-To: <20190326091744.11542-8-tzimmermann@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 Tue, Mar 26, 2019 at 10:17:40AM +0100, Thomas Zimmermann wrote: > Signed-off-by: Thomas Zimmermann > --- > drivers/gpu/drm/fbdevdrm/Makefile | 1 + > drivers/gpu/drm/fbdevdrm/fbdevdrm_format.c | 441 +++++++++++++++++++++ > drivers/gpu/drm/fbdevdrm/fbdevdrm_format.h | 26 ++ > 3 files changed, 468 insertions(+) > create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_format.c > create mode 100644 drivers/gpu/drm/fbdevdrm/fbdevdrm_format.h >=20 > diff --git a/drivers/gpu/drm/fbdevdrm/Makefile b/drivers/gpu/drm/fbdevdrm= /Makefile > index b8fab9d52faa..aef60d0f4888 100644 > --- a/drivers/gpu/drm/fbdevdrm/Makefile > +++ b/drivers/gpu/drm/fbdevdrm/Makefile > @@ -2,6 +2,7 @@ ccflags-y =3D -Iinclude/drm > fbdevdrm-y :=3D fbdevdrm_bo.o \ > fbdevdrm_device.o \ > fbdevdrm_drv.o \ > + fbdevdrm_format.o \ > fbdevdrm_modeset.o \ > fbdevdrm_ttm.o > =20 > diff --git a/drivers/gpu/drm/fbdevdrm/fbdevdrm_format.c b/drivers/gpu/drm= /fbdevdrm/fbdevdrm_format.c > new file mode 100644 > index 000000000000..208f7c60e525 > --- /dev/null > +++ b/drivers/gpu/drm/fbdevdrm/fbdevdrm_format.c > @@ -0,0 +1,441 @@ > +/* SPDX-License-Identifier: GPL-2.0-or-later > + * > + * One purpose of this driver is to allow for easy conversion of framebu= ffer > + * drivers to DRM. As a special exception to the GNU GPL, you are allowe= d to > + * relicense this file under the terms of a license of your choice if yo= u're > + * porting a framebuffer driver. In order to do so, update the SPDX lice= nse > + * identifier to the new license and remove this exception. > + * > + * If you add code to this file, please ensure that it's compatible with= the > + * stated exception. > + */ > + > +#include "fbdevdrm_format.h" > +#include > +#include > + > +#if defined __BIG_ENDIAN > +#define HOST_FUNC(_func) \ > + _func ## _be > +#elif defined __LITTLE_ENDIAN > +#define HOST_FUNC(_func) \ > + _func ## _le > +#else > +#error "Unsupported endianess" > +#endif > + > +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); > +} You can't distinguish LE vs. BE like this. Maybe FBINFO_FOREIGN_ENDIAN is trustworthy? --=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: Tue, 26 Mar 2019 18:29:10 +0200 Message-ID: <20190326162910.GY3888@intel.com> References: <20190326091744.11542-1-tzimmermann@suse.de> <20190326091744.11542-8-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id A44286E069 for ; Tue, 26 Mar 2019 16:29:14 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190326091744.11542-8-tzimmermann@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 T24gVHVlLCBNYXIgMjYsIDIwMTkgYXQgMTA6MTc6NDBBTSArMDEwMCwgVGhvbWFzIFppbW1lcm1h bm4gd3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5u QHN1c2UuZGU+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9NYWtlZmlsZSAgICAg ICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9mYmRldmRybV9mb3JtYXQu YyB8IDQ0MSArKysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2ZiZGV2ZHJt L2ZiZGV2ZHJtX2Zvcm1hdC5oIHwgIDI2ICsrCj4gIDMgZmlsZXMgY2hhbmdlZCwgNDY4IGluc2Vy dGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9m YmRldmRybV9mb3JtYXQuYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2Zi ZGV2ZHJtL2ZiZGV2ZHJtX2Zvcm1hdC5oCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9mYmRldmRybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9NYWtlZmlsZQo+ IGluZGV4IGI4ZmFiOWQ1MmZhYS4uYWVmNjBkMGY0ODg4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9mYmRldmRybS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9mYmRldmRy bS9NYWtlZmlsZQo+IEBAIC0yLDYgKzIsNyBAQCBjY2ZsYWdzLXkgPSAtSWluY2x1ZGUvZHJtCj4g IGZiZGV2ZHJtLXkgOj0gZmJkZXZkcm1fYm8ubyBcCj4gIAkgICAgICBmYmRldmRybV9kZXZpY2Uu byBcCj4gIAkgICAgICBmYmRldmRybV9kcnYubyBcCj4gKwkgICAgICBmYmRldmRybV9mb3JtYXQu byBcCj4gIAkgICAgICBmYmRldmRybV9tb2Rlc2V0Lm8gXAo+ICAJICAgICAgZmJkZXZkcm1fdHRt Lm8KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9mYmRldmRybV9m b3JtYXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9mYmRldmRybV9mb3JtYXQuYwo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yMDhmN2M2MGU1MjUKPiAt LS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2ZiZGV2ZHJtL2ZiZGV2ZHJtX2Zv cm1hdC5jCj4gQEAgLTAsMCArMSw0NDEgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAtb3ItbGF0ZXIKPiArICoKPiArICogT25lIHB1cnBvc2Ugb2YgdGhpcyBkcml2ZXIg aXMgdG8gYWxsb3cgZm9yIGVhc3kgY29udmVyc2lvbiBvZiBmcmFtZWJ1ZmZlcgo+ICsgKiBkcml2 ZXJzIHRvIERSTS4gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdQTCwgeW91IGFy ZSBhbGxvd2VkIHRvCj4gKyAqIHJlbGljZW5zZSB0aGlzIGZpbGUgdW5kZXIgdGhlIHRlcm1zIG9m IGEgbGljZW5zZSBvZiB5b3VyIGNob2ljZSBpZiB5b3UncmUKPiArICogcG9ydGluZyBhIGZyYW1l YnVmZmVyIGRyaXZlci4gSW4gb3JkZXIgdG8gZG8gc28sIHVwZGF0ZSB0aGUgU1BEWCBsaWNlbnNl Cj4gKyAqIGlkZW50aWZpZXIgdG8gdGhlIG5ldyBsaWNlbnNlIGFuZCByZW1vdmUgdGhpcyBleGNl cHRpb24uCj4gKyAqCj4gKyAqIElmIHlvdSBhZGQgY29kZSB0byB0aGlzIGZpbGUsIHBsZWFzZSBl bnN1cmUgdGhhdCBpdCdzIGNvbXBhdGlibGUgd2l0aCB0aGUKPiArICogc3RhdGVkIGV4Y2VwdGlv bi4KPiArICovCj4gKwo+ICsjaW5jbHVkZSAiZmJkZXZkcm1fZm9ybWF0LmgiCj4gKyNpbmNsdWRl IDxhc20vYnl0ZW9yZGVyLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9mYi5oPgo+ICsKPiArI2lmIGRl ZmluZWQgX19CSUdfRU5ESUFOCj4gKyNkZWZpbmUgSE9TVF9GVU5DKF9mdW5jKSBcCj4gKwlfZnVu YyAjIyBfYmUKPiArI2VsaWYgZGVmaW5lZCBfX0xJVFRMRV9FTkRJQU4KPiArI2RlZmluZSBIT1NU X0ZVTkMoX2Z1bmMpIFwKPiArCV9mdW5jICMjIF9sZQo+ICsjZWxzZQo+ICsjZXJyb3IgIlVuc3Vw cG9ydGVkIGVuZGlhbmVzcyIKPiArI2VuZGlmCj4gKwo+ICtzdGF0aWMgYm9vbCBpc19jOChjb25z dCBzdHJ1Y3QgZmJfaW5mbyogZmJfaW5mbykKPiArewo+ICsJcmV0dXJuIGZiX2luZm8tPnZhci5i aXRzX3Blcl9waXhlbCA9PSA4Owo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBpc19yZ2I1NjVfYmUo Y29uc3Qgc3RydWN0IGZiX2luZm8qIGZiX2luZm8pCj4gK3sKPiArCXJldHVybiAoZmJfaW5mby0+ dmFyLmJpdHNfcGVyX3BpeGVsID09IDE2KSAmJgo+ICsJICAgICAgIChmYl9pbmZvLT52YXIucmVk Lm9mZnNldCA9PSAwKSAmJgo+ICsJICAgICAgIChmYl9pbmZvLT52YXIucmVkLmxlbmd0aCA9PSA1 KSAmJgo+ICsJICAgICAgIChmYl9pbmZvLT52YXIuZ3JlZW4ub2Zmc2V0ID09IDUpICYmCj4gKwkg ICAgICAgKGZiX2luZm8tPnZhci5ncmVlbi5sZW5ndGggPT0gNikgJiYKPiArCSAgICAgICAoZmJf aW5mby0+dmFyLmJsdWUub2Zmc2V0ID09IDExKSAmJgo+ICsJICAgICAgIChmYl9pbmZvLT52YXIu Ymx1ZS5sZW5ndGggPT0gNSk7Cj4gK30KCllvdSBjYW4ndCBkaXN0aW5ndWlzaCBMRSB2cy4gQkUg bGlrZSB0aGlzLgoKTWF5YmUgRkJJTkZPX0ZPUkVJR05fRU5ESUFOIGlzIHRydXN0d29ydGh5PwoK LS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWw=