pmaports/device/archived/linux-kobo-clara-downstream/fbdev-mxc-epdc-replace-blob-by-source-functions.patch
Stefan Hansson fb7f99efe2
device: rename unmaintained to archived (MR 5046)
Unmaintained is a name which on multiple occasions have seen lead to
confusion with people having the impression that unmaintained is for all
unmaintained devices, which is not how we're really using it. Many
devices in testing do not actually have a maintainer, yet there has been
no push to move these out of there and into unmaintained.

I think this is a result of that unmaintained was introduced not to keep
unmaintained ports but rather a place to store ports that have a better
replacement but where the inferior one still holds some sort of value,
such as for debugging purposes. These ports also are not necessarily
entirely unmaintained and see more fixes than many ports in testing.

While one approach to solving this problem could be to simply moving all
unmaintained ports to unmaintained, I think this comes with some
problems: It would require an initial effort to figure out which ports
are indeed unmaintained and which just don't have a maintained noted in
the package, and given how many ports there are in testing this would be
a big endeavour. It would also require continuous work on moving ports
into unmaintained as the maintainers go silent if we are to keep testing
and unmaintained's state consistent with reality. Additionally, just
because a port doesn't have a maintainer on paper doens't mean that
there aren't people who aren't willing to fix it up if there are issues
that arise.

As such, I think the way to go is renaming unmaintained to better
reflect the original intent. Thanks to Luca Weiss for suggesting
"archive", and to Arnav Singh for suggesting that "archived" would match
the other category names better.
2024-05-15 17:07:51 +02: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