pmaports/device/testing/linux-kobo-clara/fbdev-mxc-epdc-replace-blob-by-source-functions.patch
Andreas Kemnade b8654ac024
linux-kobo-clara: add sources instead of fixing binary linking (MR 2880)
Do not fiddle with a compiled .a file from the vendor, rather
ignore it and add functional equivalent sources.

[ci:skip-build] Already built successfuly on CI in MR
2022-01-25 09:12:02 +03:00

82 lines
2.6 KiB
Diff

From 092b5938363b42831aab1ebd8c2811ff9429d393 Mon Sep 17 00:00:00 2001
From: Andreas Kemnade <andreas@kemnade.info>
Date: Sun, 8 Dec 2019 23:34:36 +0100
Subject: [PATCH] fbdev: mxc: epdc: replace blob by source functions
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
drivers/video/fbdev/mxc/Makefile | 4 +--
drivers/video/fbdev/mxc/mxc_epdc_v2_fb.c | 35 +++++++++++++++++++++++-
2 files changed, 36 insertions(+), 3 deletions(-)
diff --git a/drivers/video/fbdev/mxc/Makefile b/drivers/video/fbdev/mxc/Makefile
index cb81820c..c4c7fd3a 100644
--- a/drivers/video/fbdev/mxc/Makefile
+++ b/drivers/video/fbdev/mxc/Makefile
@@ -8,8 +8,8 @@ obj-$(CONFIG_FB_MXC_HDMI) += mxc_hdmi.o
obj-$(CONFIG_FB_MXC_EDID) += mxc_edid.o
obj-$(CONFIG_FB_MXC_SYNC_PANEL) += mxc_dispdrv.o mxc_lcdif.o mxc_ipuv3_fb.o
obj-$(CONFIG_FB_MXC_EINK_PANEL) += mxc_epdc_fb.o
-obj-$(CONFIG_FB_MXC_EINK_V2_PANEL) += mxc_epdc_v2_fb.o mxc_epdc_eink.o fake_s1d13522.o epdfb_dc.o
-mxc_epdc_eink-objs := mxc_epdc_eink_module.o lib.a_shipped-imx6sl-noaa
+obj-$(CONFIG_FB_MXC_EINK_V2_PANEL) += mxc_epdc_v2_fb.o fake_s1d13522.o epdfb_dc.o
+#mxc_epdc_eink-objs := mxc_epdc_eink_module.o lib.a_shipped-imx6sl-noaa
obj-$(CONFIG_FB_MXS_SII902X) += mxsfb_sii902x.o
obj-$(CONFIG_FB_MXC_DCIC) += mxc_dcic.o
obj-$(CONFIG_HANNSTAR_CABC) += hannstar_cabc.o
diff --git a/drivers/video/fbdev/mxc/mxc_epdc_v2_fb.c b/drivers/video/fbdev/mxc/mxc_epdc_v2_fb.c
index 8f9aca48..d8a5ec03 100644
--- a/drivers/video/fbdev/mxc/mxc_epdc_v2_fb.c
+++ b/drivers/video/fbdev/mxc/mxc_epdc_v2_fb.c
@@ -64,7 +64,6 @@
#include "../../../../arch/arm/mach-imx/hardware.h"
#include "epdc_v2_regs.h"
-#include "eink_processing2.h"
#include "../../../../kernel/ntx/ntx_timestamp.h"
@@ -1139,6 +1138,40 @@ static void mxc_epdc_fb_fw_handler(const struct firmware *fw,void *context);
// FW_IN_RAM //]
#include "mxc_epdc_fake_s1d13522.c"
+static unsigned mxc_epdc_fb_fetch_wxi_data(uint8_t *xwi_buffer, char *outbuf)
+{
+ unsigned l = xwi_buffer[0];
+ if (outbuf) {
+ u8 chk = 0;
+ unsigned i;
+
+ for (i = 0; i <= l; i++)
+ chk += xwi_buffer[i];
+
+ if (chk != xwi_buffer[i])
+ return 0;
+
+ memcpy(outbuf, xwi_buffer + 1, l);
+ }
+
+ return l;
+}
+
+static int mxc_epdc_fb_fetch_vc_data(u8 *vcd_buffer, u32 waveform_mode, u32 waveform_tempRange, u32 mc, u32 trc, u8 *vcd)
+{
+ u8 *vcd_src = vcd_buffer + 16 * (waveform_mode * trc + waveform_tempRange);
+ int i;
+ u8 chk = 0;
+ for(i = 0 ; i < 15; i++)
+ chk += vcd_src[i];
+
+ if (chk != vcd_src[i])
+ return -EINVAL;
+
+ memcpy(vcd, vcd_src, 16);
+ return 0;
+}
+
#ifdef DEBUG
static void dump_pxp_config(struct mxc_epdc_fb_data *fb_data,
--
2.30.2