From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S3000233AbdDZN2L (ORCPT ); Wed, 26 Apr 2017 09:28:11 -0400 Received: from mailapp01.imgtec.com ([195.59.15.196]:44636 "EHLO mailapp01.imgtec.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1953043AbdDZN2E (ORCPT ); Wed, 26 Apr 2017 09:28:04 -0400 Date: Wed, 26 Apr 2017 14:28:01 +0100 From: Eric Engestrom To: Gerd Hoffmann CC: Michel =?utf-8?Q?D=C3=A4nzer?= , Daniel Vetter , , open list , Subject: Re: [PATCH 3/6] drm: fourcc byteorder: add bigendian support to drm_mode_legacy_fb_format Message-ID: <20170426132801.lldz7uwwlp3euozy@imgtec.com> References: <20170424062532.26722-1-kraxel@redhat.com> <20170424062532.26722-4-kraxel@redhat.com> <3b872a56-80b5-0c44-712f-a9517489eb24@daenzer.net> <1493185990.23739.7.camel@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1493185990.23739.7.camel@redhat.com> User-Agent: NeoMutt/20170306 (1.8.0) X-Originating-IP: [10.60.4.28] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wednesday, 2017-04-26 07:53:10 +0200, Gerd Hoffmann wrote: > On Di, 2017-04-25 at 12:18 +0900, Michel Dänzer wrote: > > On 24/04/17 03:25 PM, Gerd Hoffmann wrote: > > > Return correct fourcc codes on bigendian. Drivers must be adapted to > > > this change. > > > > > > Signed-off-by: Gerd Hoffmann > > > > Just to reiterate, this won't work for the radeon driver, which programs > > the GPU to use (effectively, per the current definition that these are > > little endian GPU formats) DRM_FORMAT_XRGB8888 with pre-R600 and > > DRM_FORMAT_BGRX8888 with >= R600. > > Hmm, ok, how does bigendian fbdev emulation work on pre-R600 then? > > > > +#ifdef __BIG_ENDIAN > > > + switch (bpp) { > > > + case 8: > > > + fmt = DRM_FORMAT_C8; > > > + break; > > > + case 24: > > > + fmt = DRM_FORMAT_BGR888; > > > + break; > > > > BTW, endianness as a concept cannot apply to 8 or 24 bpp formats. > > I could move the 8 bpp case out of the #ifdef somehow, but code > readability will suffer then I think ... How about something like this? uint32_t drm_mode_legacy_fb_format(uint32_t bpp, uint32_t depth) { uint32_t fmt; #ifdef __BIG_ENDIAN enum { LITTLE_ENDIAN = 0 }; #else enum { LITTLE_ENDIAN = 1 }; #endif /* ... */ (using an enum for compile-time constness) and then fmt = DRM_FORMAT_ARGB8888; becomes fmt = LITTLE_ENDIAN ? DRM_FORMAT_ARGB8888 : DRM_FORMAT_BGRA8888; Might be easier to read than duplicating the whole switch? > > For 24 we have different byte orderings, but yes, you can't switch from > one to the other with byteswapping. Probably one of the reasons why > this format is pretty much out of fashion these days ... > > cheers, > Gerd > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Engestrom Subject: Re: [PATCH 3/6] drm: fourcc byteorder: add bigendian support to drm_mode_legacy_fb_format Date: Wed, 26 Apr 2017 14:28:01 +0100 Message-ID: <20170426132801.lldz7uwwlp3euozy@imgtec.com> References: <20170424062532.26722-1-kraxel@redhat.com> <20170424062532.26722-4-kraxel@redhat.com> <3b872a56-80b5-0c44-712f-a9517489eb24@daenzer.net> <1493185990.23739.7.camel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1493185990.23739.7.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Gerd Hoffmann Cc: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Daniel Vetter , Michel =?utf-8?Q?D=C3=A4nzer?= , open list , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkbmVzZGF5LCAyMDE3LTA0LTI2IDA3OjUzOjEwICswMjAwLCBHZXJkIEhvZmZtYW5uIHdy b3RlOgo+IE9uIERpLCAyMDE3LTA0LTI1IGF0IDEyOjE4ICswOTAwLCBNaWNoZWwgRMOkbnplciB3 cm90ZToKPiA+IE9uIDI0LzA0LzE3IDAzOjI1IFBNLCBHZXJkIEhvZmZtYW5uIHdyb3RlOgo+ID4g PiBSZXR1cm4gY29ycmVjdCBmb3VyY2MgY29kZXMgb24gYmlnZW5kaWFuLiAgRHJpdmVycyBtdXN0 IGJlIGFkYXB0ZWQgdG8KPiA+ID4gdGhpcyBjaGFuZ2UuCj4gPiA+IAo+ID4gPiBTaWduZWQtb2Zm LWJ5OiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4KPiA+IAo+ID4gSnVzdCB0byBy ZWl0ZXJhdGUsIHRoaXMgd29uJ3Qgd29yayBmb3IgdGhlIHJhZGVvbiBkcml2ZXIsIHdoaWNoIHBy b2dyYW1zCj4gPiB0aGUgR1BVIHRvIHVzZSAoZWZmZWN0aXZlbHksIHBlciB0aGUgY3VycmVudCBk ZWZpbml0aW9uIHRoYXQgdGhlc2UgYXJlCj4gPiBsaXR0bGUgZW5kaWFuIEdQVSBmb3JtYXRzKSBE Uk1fRk9STUFUX1hSR0I4ODg4IHdpdGggcHJlLVI2MDAgYW5kCj4gPiBEUk1fRk9STUFUX0JHUlg4 ODg4IHdpdGggPj0gUjYwMC4KPiAKPiBIbW0sIG9rLCBob3cgZG9lcyBiaWdlbmRpYW4gZmJkZXYg ZW11bGF0aW9uIHdvcmsgb24gcHJlLVI2MDAgdGhlbj8KPiAKPiA+ID4gKyNpZmRlZiBfX0JJR19F TkRJQU4KPiA+ID4gKwlzd2l0Y2ggKGJwcCkgewo+ID4gPiArCWNhc2UgODoKPiA+ID4gKwkJZm10 ID0gRFJNX0ZPUk1BVF9DODsKPiA+ID4gKwkJYnJlYWs7Cj4gPiA+ICsJY2FzZSAyNDoKPiA+ID4g KwkJZm10ID0gRFJNX0ZPUk1BVF9CR1I4ODg7Cj4gPiA+ICsJCWJyZWFrOwo+ID4gCj4gPiBCVFcs IGVuZGlhbm5lc3MgYXMgYSBjb25jZXB0IGNhbm5vdCBhcHBseSB0byA4IG9yIDI0IGJwcCBmb3Jt YXRzLgo+IAo+IEkgY291bGQgbW92ZSB0aGUgOCBicHAgY2FzZSBvdXQgb2YgdGhlICNpZmRlZiBz b21laG93LCBidXQgY29kZQo+IHJlYWRhYmlsaXR5IHdpbGwgc3VmZmVyIHRoZW4gSSB0aGluayAu Li4KCkhvdyBhYm91dCBzb21ldGhpbmcgbGlrZSB0aGlzPwoKCXVpbnQzMl90IGRybV9tb2RlX2xl Z2FjeV9mYl9mb3JtYXQodWludDMyX3QgYnBwLCB1aW50MzJfdCBkZXB0aCkKCXsKCQl1aW50MzJf dCBmbXQ7CgkjaWZkZWYgX19CSUdfRU5ESUFOCgkJZW51bSB7IExJVFRMRV9FTkRJQU4gPSAwIH07 CgkjZWxzZQoJCWVudW0geyBMSVRUTEVfRU5ESUFOID0gMSB9OwoJI2VuZGlmCgkvKiAuLi4gKi8K Cih1c2luZyBhbiBlbnVtIGZvciBjb21waWxlLXRpbWUgY29uc3RuZXNzKQoKYW5kIHRoZW4KCWZt dCA9IERSTV9GT1JNQVRfQVJHQjg4ODg7CmJlY29tZXMKCWZtdCA9IExJVFRMRV9FTkRJQU4gPyBE Uk1fRk9STUFUX0FSR0I4ODg4IDogRFJNX0ZPUk1BVF9CR1JBODg4ODsKCk1pZ2h0IGJlIGVhc2ll ciB0byByZWFkIHRoYW4gZHVwbGljYXRpbmcgdGhlIHdob2xlIHN3aXRjaD8KCj4gCj4gRm9yIDI0 IHdlIGhhdmUgZGlmZmVyZW50IGJ5dGUgb3JkZXJpbmdzLCBidXQgeWVzLCB5b3UgY2FuJ3Qgc3dp dGNoIGZyb20KPiBvbmUgdG8gdGhlIG90aGVyIHdpdGggYnl0ZXN3YXBwaW5nLiAgUHJvYmFibHkg b25lIG9mIHRoZSByZWFzb25zIHdoeQo+IHRoaXMgZm9ybWF0IGlzIHByZXR0eSBtdWNoIG91dCBv ZiBmYXNoaW9uIHRoZXNlIGRheXMgLi4uCj4gCj4gY2hlZXJzLAo+ICAgR2VyZAo+IApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcg bGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK