mirror of
https://github.com/Fishwaldo/build.git
synced 2025-03-22 14:51:41 +00:00
106 lines
4.2 KiB
Diff
106 lines
4.2 KiB
Diff
diff -Nur a/drivers/video/sunxi/disp2/disp/dev_fb.c b/drivers/video/sunxi/disp2/disp/dev_fb.c
|
|
--- a/drivers/video/sunxi/disp2/disp/dev_fb.c 2016-01-05 19:45:42.000000000 +0100
|
|
+++ b/drivers/video/sunxi/disp2/disp/dev_fb.c 2016-02-16 18:24:35.505409579 +0100
|
|
@@ -41,9 +41,6 @@
|
|
|
|
extern disp_drv_info g_disp_drv;
|
|
|
|
-#define FBHANDTOID(handle) ((handle) - 100)
|
|
-#define FBIDTOHAND(ID) ((ID) + 100)
|
|
-
|
|
static struct __fb_addr_para g_fb_addr;
|
|
|
|
s32 sunxi_get_fb_addr_para(struct __fb_addr_para *fb_addr_para)
|
|
@@ -535,8 +532,6 @@
|
|
|
|
for(sel = 0; sel < num_screens; sel++) {
|
|
if(sel==g_fbi.fb_mode[info->node]) {
|
|
- u32 buffer_num = 1;
|
|
- u32 y_offset = 0;
|
|
s32 chan = g_fbi.layer_hdl[info->node][0];
|
|
s32 layer_id = g_fbi.layer_hdl[info->node][1];
|
|
disp_layer_config config;
|
|
@@ -550,10 +545,10 @@
|
|
__wrn("fb %d, get_layer_config(%d,%d,%d) fail\n", info->node, sel, chan, layer_id);
|
|
return -1;
|
|
}
|
|
- config.info.fb.crop.x = ((long long)var->xoffset) << 32;
|
|
- config.info.fb.crop.y = ((unsigned long long)(var->yoffset + y_offset)) << 32;;
|
|
- config.info.fb.crop.width = ((long long)var->xres) << 32;
|
|
- config.info.fb.crop.height = ((long long)(var->yres / buffer_num)) << 32;
|
|
+ config.info.fb.crop.x = ((long long)(var->xoffset)) << 32;
|
|
+ config.info.fb.crop.y = ((long long)(var->yoffset)) << 32;
|
|
+ config.info.fb.crop.width = ((long long)(var->xres)) << 32;
|
|
+ config.info.fb.crop.height = ((long long)(var->yres)) << 32;
|
|
if(0 != mgr->set_layer_config(mgr, &config, 1)) {
|
|
__wrn("fb %d, set_layer_config(%d,%d,%d) fail\n", info->node, sel, chan, layer_id);
|
|
return -1;
|
|
@@ -615,25 +610,25 @@
|
|
if(sel==g_fbi.fb_mode[info->node]) {
|
|
struct fb_var_screeninfo *var = &info->var;
|
|
struct fb_fix_screeninfo * fix = &info->fix;
|
|
- u32 buffer_num = 1;
|
|
- u32 y_offset = 0;
|
|
s32 chan = g_fbi.layer_hdl[info->node][0];
|
|
s32 layer_id = g_fbi.layer_hdl[info->node][1];
|
|
disp_layer_config config;
|
|
struct disp_manager *mgr = g_disp_drv.mgr[sel];
|
|
|
|
- if(mgr && mgr->get_layer_config && mgr->set_layer_config) {
|
|
+ if(mgr && mgr->get_layer_config) {
|
|
config.channel = chan;
|
|
config.layer_id = layer_id;
|
|
mgr->get_layer_config(mgr, &config, 1);
|
|
}
|
|
|
|
var_to_disp_fb(&(config.info.fb), var, fix);
|
|
- config.info.fb.crop.x = var->xoffset;
|
|
- config.info.fb.crop.y = var->yoffset + y_offset;
|
|
- config.info.fb.crop.width = var->xres;
|
|
- config.info.fb.crop.height = var->yres / buffer_num;
|
|
- if(mgr && mgr->get_layer_config && mgr->set_layer_config)
|
|
+ config.info.fb.crop.x = ((long long)(var->xoffset)) << 32;
|
|
+ config.info.fb.crop.y = ((long long)(var->yoffset)) << 32;
|
|
+ config.info.fb.crop.width = ((long long)(var->xres)) << 32;
|
|
+ config.info.fb.crop.height = ((long long)(var->yres)) << 32;
|
|
+ config.info.screen_win.width = var->xres;
|
|
+ config.info.screen_win.height = var->yres;
|
|
+ if(mgr && mgr->set_layer_config)
|
|
mgr->set_layer_config(mgr, &config, 1);
|
|
}
|
|
}
|
|
@@ -1136,7 +1131,7 @@
|
|
|
|
for(sel = 0; sel < num_screens; sel++) {
|
|
if(sel == fb_para->fb_mode) {
|
|
- u32 y_offset = 0, src_width = xres, src_height = yres;
|
|
+ u32 src_width = xres, src_height = yres;
|
|
disp_video_timings tt;
|
|
struct disp_manager *mgr = NULL;
|
|
mgr = g_disp_drv.mgr[sel];
|
|
@@ -1170,13 +1165,13 @@
|
|
Fb_map_kernel_logo(sel, info);
|
|
}
|
|
config.info.screen_win.width = (0 == fb_para->output_width)? src_width:fb_para->output_width;
|
|
- config.info.screen_win.height = (0 == fb_para->output_height)? src_width:fb_para->output_height;
|
|
+ config.info.screen_win.height = (0 == fb_para->output_height)? src_height:fb_para->output_height;
|
|
|
|
config.info.mode = LAYER_MODE_BUFFER;
|
|
config.info.alpha_mode = 1;
|
|
config.info.alpha_value = 0xff;
|
|
- config.info.fb.crop.x = ((long long)0) << 32;
|
|
- config.info.fb.crop.y = ((long long)y_offset) << 32;
|
|
+ config.info.fb.crop.x = 0LL;
|
|
+ config.info.fb.crop.y = 0LL;
|
|
config.info.fb.crop.width = ((long long)src_width) << 32;
|
|
config.info.fb.crop.height = ((long long)src_height) << 32;
|
|
config.info.screen_win.x = 0;
|
|
@@ -1401,7 +1396,7 @@
|
|
|
|
for(fb_id=0; fb_id<FB_MAX; fb_id++) {
|
|
if(g_fbi.fbinfo[fb_id] != NULL) {
|
|
- display_fb_release(FBIDTOHAND(fb_id));
|
|
+ display_fb_release(fb_id);
|
|
}
|
|
}
|
|
|