From 073cc1a866c127405853989adf3329872323b5d6 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Mon, 14 Jan 2019 10:44:13 +0100 Subject: [PATCH] try to fix unmap error,automatically unmapped don't work ? Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/a5b78f24ed046ebab01263679b9821fc53ebe23b Author: Jacek Jendrzej Date: 2019-01-14 (Mon, 14 Jan 2019) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libarmbox/video.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libarmbox/video.cpp b/libarmbox/video.cpp index 068ac81..fecec73 100644 --- a/libarmbox/video.cpp +++ b/libarmbox/video.cpp @@ -1069,7 +1069,7 @@ void get_osd_buf(unsigned char *osd_data) struct fb_fix_screeninfo fix_screeninfo; struct fb_var_screeninfo var_screeninfo; - int fb=open("/dev/fb/0", O_RDWR); + int fb=open("/dev/fb/0", O_RDONLY); if (fb == -1) { fprintf(stderr, "Framebuffer failed\n"); @@ -1090,7 +1090,7 @@ void get_osd_buf(unsigned char *osd_data) return; } - void *lfb = (unsigned char*)mmap(0, fix_screeninfo.smem_len, PROT_READ | PROT_WRITE, MAP_SHARED, fb, 0); + void *lfb = (unsigned char*)mmap(0, fix_screeninfo.smem_len, PROT_READ , MAP_SHARED, fb, 0); if(lfb == MAP_FAILED) { fprintf(stderr, "Framebuffer: \n"); @@ -1104,6 +1104,12 @@ void get_osd_buf(unsigned char *osd_data) // get 32bit framebuffer memcpy(osd_data,lfb,fix_screeninfo.line_length*var_screeninfo.yres); } + + if (munmap(lfb, fix_screeninfo.smem_len) == -1) + { + perror("Error un-mmapping"); + } + close(fb); }