83 lines
2.6 KiB
Diff
83 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
|
||
|
|