From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Date: Mon, 27 Aug 2018 12:54:52 +0000 Subject: Re: [PATCH 1/3] mach64: fix display corruption on big endian machines Message-Id: <20180827125452.GD11867@sci.fi> List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: Mikulas Patocka Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Bartlomiej Zolnierkiewicz On Sat, Aug 25, 2018 at 03:51:00PM -0400, Mikulas Patocka wrote: > The code for manual bit triple is not endian-clean. It builds the variable > "hostdword" using byte accesses, therefore we must read the variable with > "le32_to_cpu". >=20 > The patch also enables (hardware or software) bit triple only if the image > is monochrome (image->depth). If we want to blit full-color image, we > shouldn't use the triple code. Makes sense. Reviewed-by: Ville Syrj=E4l=E4 >=20 > Signed-off-by: Mikulas Patocka > Cc: stable@vger.kernel.org >=20 > --- > drivers/video/fbdev/aty/mach64_accel.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) >=20 > Index: linux-stable/drivers/video/fbdev/aty/mach64_accel.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D> --- linux-stable.orig/drivers/video/fbdev/aty/= mach64_accel.c 2018-08-24 17:31:21.000000000 +0200 > +++ linux-stable/drivers/video/fbdev/aty/mach64_accel.c 2018-08-24 19:12:= 40.000000000 +0200 > @@ -345,7 +345,7 @@ void atyfb_imageblit(struct fb_info *inf > * since Rage 3D IIc we have DP_HOST_TRIPLE_EN bit > * this hwaccelerated triple has an issue with not aligned data > */ > - if (M64_HAS(HW_TRIPLE) && image->width % 8 =3D 0) > + if (image->depth =3D 1 && M64_HAS(HW_TRIPLE) && image->width % 8 =3D 0) > pix_width |=3D DP_HOST_TRIPLE_EN; > } > =20 > @@ -382,7 +382,7 @@ void atyfb_imageblit(struct fb_info *inf > src_bytes =3D (((image->width * image->depth) + 7) / 8) * image->height; > =20 > /* manual triple each pixel */ > - if (info->var.bits_per_pixel =3D 24 && !(pix_width & DP_HOST_TRIPLE_EN)= ) { > + if (image->depth =3D 1 && info->var.bits_per_pixel =3D 24 && !(pix_widt= h & DP_HOST_TRIPLE_EN)) { > int inbit, outbit, mult24, byte_id_in_dword, width; > u8 *pbitmapin =3D (u8*)image->data, *pbitmapout; > u32 hostdword; > @@ -415,7 +415,7 @@ void atyfb_imageblit(struct fb_info *inf > } > } > wait_for_fifo(1, par); > - aty_st_le32(HOST_DATA0, hostdword, par); > + aty_st_le32(HOST_DATA0, le32_to_cpu(hostdword), par); > } > } else { > u32 *pbitmap, dwords =3D (src_bytes + 3) / 4; --=20 Ville Syrj=E4l=E4 syrjala@sci.fi http://www.sci.fi/~syrjala/ From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/3] mach64: fix display corruption on big endian machines Date: Mon, 27 Aug 2018 15:54:52 +0300 Message-ID: <20180827125452.GD11867@sci.fi> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from welho-filter4.welho.com (welho-filter4.welho.com [83.102.41.26]) by gabe.freedesktop.org (Postfix) with ESMTPS id C01986E24B for ; Mon, 27 Aug 2018 12:55:03 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mikulas Patocka Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Bartlomiej Zolnierkiewicz List-Id: dri-devel@lists.freedesktop.org T24gU2F0LCBBdWcgMjUsIDIwMTggYXQgMDM6NTE6MDBQTSAtMDQwMCwgTWlrdWxhcyBQYXRvY2th IHdyb3RlOgo+IFRoZSBjb2RlIGZvciBtYW51YWwgYml0IHRyaXBsZSBpcyBub3QgZW5kaWFuLWNs ZWFuLiBJdCBidWlsZHMgdGhlIHZhcmlhYmxlCj4gImhvc3Rkd29yZCIgdXNpbmcgYnl0ZSBhY2Nl c3NlcywgdGhlcmVmb3JlIHdlIG11c3QgcmVhZCB0aGUgdmFyaWFibGUgd2l0aAo+ICJsZTMyX3Rv X2NwdSIuCj4gCj4gVGhlIHBhdGNoIGFsc28gZW5hYmxlcyAoaGFyZHdhcmUgb3Igc29mdHdhcmUp IGJpdCB0cmlwbGUgb25seSBpZiB0aGUgaW1hZ2UKPiBpcyBtb25vY2hyb21lIChpbWFnZS0+ZGVw dGgpLiBJZiB3ZSB3YW50IHRvIGJsaXQgZnVsbC1jb2xvciBpbWFnZSwgd2UKPiBzaG91bGRuJ3Qg dXNlIHRoZSB0cmlwbGUgY29kZS4KCk1ha2VzIHNlbnNlLgpSZXZpZXdlZC1ieTogVmlsbGUgU3ly asOkbMOkIDxzeXJqYWxhQHNjaS5maT4KCj4gCj4gU2lnbmVkLW9mZi1ieTogTWlrdWxhcyBQYXRv Y2thIDxtcGF0b2NrYUByZWRoYXQuY29tPgo+IENjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnCj4g Cj4gLS0tCj4gIGRyaXZlcnMvdmlkZW8vZmJkZXYvYXR5L21hY2g2NF9hY2NlbC5jIHwgICAgNiAr KystLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK PiAKPiBJbmRleDogbGludXgtc3RhYmxlL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXR5L21hY2g2NF9h Y2NlbC5jCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQo+IC0tLSBsaW51eC1zdGFibGUub3JpZy9kcml2ZXJzL3ZpZGVv L2ZiZGV2L2F0eS9tYWNoNjRfYWNjZWwuYwkyMDE4LTA4LTI0IDE3OjMxOjIxLjAwMDAwMDAwMCAr MDIwMAo+ICsrKyBsaW51eC1zdGFibGUvZHJpdmVycy92aWRlby9mYmRldi9hdHkvbWFjaDY0X2Fj Y2VsLmMJMjAxOC0wOC0yNCAxOToxMjo0MC4wMDAwMDAwMDAgKzAyMDAKPiBAQCAtMzQ1LDcgKzM0 NSw3IEBAIHZvaWQgYXR5ZmJfaW1hZ2VibGl0KHN0cnVjdCBmYl9pbmZvICppbmYKPiAgCQkgKiBz aW5jZSBSYWdlIDNEIElJYyB3ZSBoYXZlIERQX0hPU1RfVFJJUExFX0VOIGJpdAo+ICAJCSAqIHRo aXMgaHdhY2NlbGVyYXRlZCB0cmlwbGUgaGFzIGFuIGlzc3VlIHdpdGggbm90IGFsaWduZWQgZGF0 YQo+ICAJCSAqLwo+IC0JCWlmIChNNjRfSEFTKEhXX1RSSVBMRSkgJiYgaW1hZ2UtPndpZHRoICUg OCA9PSAwKQo+ICsJCWlmIChpbWFnZS0+ZGVwdGggPT0gMSAmJiBNNjRfSEFTKEhXX1RSSVBMRSkg JiYgaW1hZ2UtPndpZHRoICUgOCA9PSAwKQo+ICAJCQlwaXhfd2lkdGggfD0gRFBfSE9TVF9UUklQ TEVfRU47Cj4gIAl9Cj4gIAo+IEBAIC0zODIsNyArMzgyLDcgQEAgdm9pZCBhdHlmYl9pbWFnZWJs aXQoc3RydWN0IGZiX2luZm8gKmluZgo+ICAJc3JjX2J5dGVzID0gKCgoaW1hZ2UtPndpZHRoICog aW1hZ2UtPmRlcHRoKSArIDcpIC8gOCkgKiBpbWFnZS0+aGVpZ2h0Owo+ICAKPiAgCS8qIG1hbnVh bCB0cmlwbGUgZWFjaCBwaXhlbCAqLwo+IC0JaWYgKGluZm8tPnZhci5iaXRzX3Blcl9waXhlbCA9 PSAyNCAmJiAhKHBpeF93aWR0aCAmIERQX0hPU1RfVFJJUExFX0VOKSkgewo+ICsJaWYgKGltYWdl LT5kZXB0aCA9PSAxICYmIGluZm8tPnZhci5iaXRzX3Blcl9waXhlbCA9PSAyNCAmJiAhKHBpeF93 aWR0aCAmIERQX0hPU1RfVFJJUExFX0VOKSkgewo+ICAJCWludCBpbmJpdCwgb3V0Yml0LCBtdWx0 MjQsIGJ5dGVfaWRfaW5fZHdvcmQsIHdpZHRoOwo+ICAJCXU4ICpwYml0bWFwaW4gPSAodTgqKWlt YWdlLT5kYXRhLCAqcGJpdG1hcG91dDsKPiAgCQl1MzIgaG9zdGR3b3JkOwo+IEBAIC00MTUsNyAr NDE1LDcgQEAgdm9pZCBhdHlmYl9pbWFnZWJsaXQoc3RydWN0IGZiX2luZm8gKmluZgo+ICAJCQkJ fQo+ICAJCQl9Cj4gIAkJCXdhaXRfZm9yX2ZpZm8oMSwgcGFyKTsKPiAtCQkJYXR5X3N0X2xlMzIo SE9TVF9EQVRBMCwgaG9zdGR3b3JkLCBwYXIpOwo+ICsJCQlhdHlfc3RfbGUzMihIT1NUX0RBVEEw LCBsZTMyX3RvX2NwdShob3N0ZHdvcmQpLCBwYXIpOwo+ICAJCX0KPiAgCX0gZWxzZSB7Cj4gIAkJ dTMyICpwYml0bWFwLCBkd29yZHMgPSAoc3JjX2J5dGVzICsgMykgLyA0OwoKLS0gClZpbGxlIFN5 cmrDpGzDpApzeXJqYWxhQHNjaS5maQpodHRwOi8vd3d3LnNjaS5maS9+c3lyamFsYS8KX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==