From f1ecfeb6dad97c5f2ec30e861e94aa90fcbefe22 Mon Sep 17 00:00:00 2001 From: vanhofen Date: Fri, 25 Nov 2022 21:55:08 +0100 Subject: [PATCH] - graphlcd-base: add SetBrightness() patch my maxwiesel --- package/graphlcd-base/graphlcd-base.mk | 4 ++ .../0006-graphlcd-e4hdultra-conf.patch-custom | 2 +- .../0007-graphlcd-protek4k-conf.patch-custom | 2 +- ...framebuffer-add-SetBrightness.patch-custom | 45 +++++++++++++++++++ 4 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 package/graphlcd-base/patches/0008-framebuffer-add-SetBrightness.patch-custom diff --git a/package/graphlcd-base/graphlcd-base.mk b/package/graphlcd-base/graphlcd-base.mk index a2317318..dce4f4b7 100644 --- a/package/graphlcd-base/graphlcd-base.mk +++ b/package/graphlcd-base/graphlcd-base.mk @@ -23,6 +23,10 @@ ifeq ($(BOXMODEL),$(filter $(BOXMODEL),protek4k)) GRAPHLCD_BASE_PATCH_CUSTOM = 0007-graphlcd-protek4k-conf.patch-custom endif +ifeq ($(BOXMODEL),$(filter $(BOXMODEL),e4hdultra protek4k)) +GRAPHLCD_BASE_PATCH_CUSTOM = 0008-framebuffer-add-SetBrightness.patch-custom +endif + GRAPHLCD_BASE_MAKE_ENV = \ $(TARGET_CONFIGURE_ENV) diff --git a/package/graphlcd-base/patches/0006-graphlcd-e4hdultra-conf.patch-custom b/package/graphlcd-base/patches/0006-graphlcd-e4hdultra-conf.patch-custom index 378af39a..5a153b40 100644 --- a/package/graphlcd-base/patches/0006-graphlcd-e4hdultra-conf.patch-custom +++ b/package/graphlcd-base/patches/0006-graphlcd-e4hdultra-conf.patch-custom @@ -9,8 +9,8 @@ index 270cae8..d256e4b 100644 +[e4hdultra] +# Default for e4hdultra +Driver=framebuffer -+Device=/dev/fb1 +Zoom=0 ++Device=/dev/fb1 + [ax206dpf] # THIS IS AN EXPERIMENTAL DRIVER! diff --git a/package/graphlcd-base/patches/0007-graphlcd-protek4k-conf.patch-custom b/package/graphlcd-base/patches/0007-graphlcd-protek4k-conf.patch-custom index 93e1c1c2..619142aa 100644 --- a/package/graphlcd-base/patches/0007-graphlcd-protek4k-conf.patch-custom +++ b/package/graphlcd-base/patches/0007-graphlcd-protek4k-conf.patch-custom @@ -9,8 +9,8 @@ index 270cae8..d256e4b 100644 +[protek4k] +# Default for protek4k +Driver=framebuffer -+Device=/dev/fb1 +Zoom=0 ++Device=/dev/fb1 + [ax206dpf] # THIS IS AN EXPERIMENTAL DRIVER! diff --git a/package/graphlcd-base/patches/0008-framebuffer-add-SetBrightness.patch-custom b/package/graphlcd-base/patches/0008-framebuffer-add-SetBrightness.patch-custom new file mode 100644 index 00000000..9da90623 --- /dev/null +++ b/package/graphlcd-base/patches/0008-framebuffer-add-SetBrightness.patch-custom @@ -0,0 +1,45 @@ +--- a/glcddrivers/framebuffer.c ++++ b/glcddrivers/framebuffer.c +@@ -24,6 +24,18 @@ + #include "config.h" + #include "framebuffer.h" + ++int proc_put(const char *path, const char *value, const int len) ++{ ++ int ret, ret2; ++ int pfd = open(path, O_WRONLY); ++ if (pfd < 0) ++ return pfd; ++ ret = write(pfd, value, len); ++ ret2 = close(pfd); ++ if (ret2 < 0) ++ return ret2; ++ return ret; ++} + + namespace GLCD + { +@@ -443,4 +455,13 @@ + bbox[3] = 0; + } + ++void cDriverFramebuffer::SetBrightness(unsigned int dimm) ++{ ++ std::string value = std::to_string((int)(255*dimm*10/100)); ++ if (access("/proc/stb/lcd/oled_brightness", F_OK) == 0) ++ proc_put("/proc/stb/lcd/oled_brightness", value.c_str(), value.length()); ++ else if (access("/proc/stb/fp/oled_brightness", F_OK) == 0) ++ proc_put("/proc/stb/fp/oled_brightness", value.c_str(), value.length()); ++} ++ + } // end of namespace +--- a/glcddrivers/framebuffer.h ++++ b/glcddrivers/framebuffer.h +@@ -53,6 +53,7 @@ + virtual void SetPixel(int x, int y, uint32_t data); + //virtual void Set8Pixels(int x, int y, unsigned char data); + virtual void Refresh(bool refreshAll = false); ++ virtual void SetBrightness(unsigned int); + }; + + } // end of namespace