summaryrefslogtreecommitdiff
path: root/system/easy-kernel-power8-64k/ast-endianness.patch
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2018-09-12 20:01:44 +0000
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2018-09-12 20:01:44 +0000
commit5d0ee8c96eaa5c52d12c313e535960ead0bcc302 (patch)
tree17a042e57221983405c2751376d6616da0bc1e2f /system/easy-kernel-power8-64k/ast-endianness.patch
parent86d5952f04a4537444825645641b9845b1862a09 (diff)
downloadpackages-5d0ee8c96eaa5c52d12c313e535960ead0bcc302.tar.gz
packages-5d0ee8c96eaa5c52d12c313e535960ead0bcc302.tar.bz2
packages-5d0ee8c96eaa5c52d12c313e535960ead0bcc302.tar.xz
packages-5d0ee8c96eaa5c52d12c313e535960ead0bcc302.zip
system/easy-kernel-power8-64k: new package
Diffstat (limited to 'system/easy-kernel-power8-64k/ast-endianness.patch')
-rw-r--r--system/easy-kernel-power8-64k/ast-endianness.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/system/easy-kernel-power8-64k/ast-endianness.patch b/system/easy-kernel-power8-64k/ast-endianness.patch
new file mode 100644
index 000000000..03ee209b8
--- /dev/null
+++ b/system/easy-kernel-power8-64k/ast-endianness.patch
@@ -0,0 +1,38 @@
+Author: Elizabeth Myers <elizabeth@adelielinux.org>
+
+I'm certain this fix is wrong fwiw, but it's the best I could come with
+
+--- linux-4.14/drivers/gpu/drm/ast/ast_fb.c.old 2017-11-12 12:46:13.000000000 -0600
++++ linux-4.14/drivers/gpu/drm/ast/ast_fb.c 2018-06-30 20:54:43.530000000 -0500
+@@ -109,9 +109,30 @@
+ unmap = true;
+ }
+ for (i = y; i <= y2; i++) {
++ int copy_width = x2 - x + 1;
+ /* assume equal stride for now */
+ src_offset = dst_offset = i * afbdev->afb.base.pitches[0] + (x * bpp);
+- memcpy_toio(bo->kmap.virtual + src_offset, afbdev->sysram + src_offset, (x2 - x + 1) * bpp);
++ switch (bpp) {
++ case 4:
++ while (copy_width) {
++ iowrite32(*(u32 *)(afbdev->sysram + src_offset),
++ bo->kmap.virtual + src_offset);
++ src_offset += 4;
++ copy_width--;
++ }
++ break;
++ case 2:
++ while (copy_width) {
++ iowrite16(*(u16 *)(afbdev->sysram + src_offset),
++ bo->kmap.virtual + src_offset);
++ src_offset += 2;
++ copy_width--;
++ }
++ break;
++ default:
++ memcpy_toio(bo->kmap.virtual + src_offset, afbdev->sysram + src_offset, (x2 - x + 1) * bpp);
++ break;
++ }
+
+ }
+ if (unmap)