AnsweredAssumed Answered

imx6q 4.1.15 kernel framebuffer rotate left90 degree with multibuffer

Question asked by jiu jin hong on Apr 19, 2019
Latest reply on Jul 2, 2019 by Yuri Muhin

Hi,

I have applied patch in attach for imx6q 4.1.15 framebuffer rotate. it working fine. but later framebuffer set_par with 3 page flip buffer through below code in another driver, IPU SDC will update fail.  if FB0_FLIP_BUFFER_NUM use 1, it works fine.

 

[   13.333544] mxc_sdc_fb fb@0: Error updating SDC buf 0 to address=0x1A800000, current buf 1, buf0 ready 1, buf1 ready 1, buf2 ready 0
[   13.447193] mxc_sdc_fb fb@0: Error updating SDC buf 1 to address=0x1AB00000, current buf 1, buf0 ready 1, buf1 ready 0, buf2 ready 0
[   13.563912] mxc_sdc_fb fb@0: Error updating SDC buf 0 to address=0x1A500000, current buf 1, buf0 ready 1, buf1 ready 1, buf2 ready 0
[   13.771218] mxc_sdc_fb fb@0: Error updating SDC buf 0 to address=0x1AB00000, current buf 0, buf0 ready 0, buf1 ready 1, buf2 ready 0
[   14.000068] mxc_sdc_fb fb@0: Error updating SDC buf 0 to address=0x1A800000, current buf 0, buf0 ready 0, buf1 ready 1, buf2 ready 0
[   14.119145] mxc_sdc_fb fb@0: Error updating SDC buf 1 to address=0x1AB00000, current buf 0, buf0 ready 1, buf1 ready 1, buf2 ready 0
[   14.335582] mxc_sdc_fb fb@0: Error updating SDC buf 0 to address=0x1A800000, current buf 1, buf0 ready 1, buf1 ready 1, buf2 ready 0
[   14.541331] mxc_sdc_fb fb@0: Error updating SDC buf 0 to address=0x1A500000, current buf 0, buf0 ready 0, buf1 ready 1, buf2 ready 0
[   14.639933] mxc_sdc_fb fb@0: Error updating SDC buf 0 to address=0x1A800000, current buf 1, buf0 ready 1, buf1 ready 1, buf2 ready 0
[   14.845036] mxc_sdc_fb fb@0: Error updating SDC buf 0 to address=0x1A500000, current buf 0, buf0 ready 0, buf1 ready 1, buf2 ready 0

 

#define FB0_FLIP_BUFFER_NUM  3

6   fbi_fb0 = registered_fb[0];                                                                                             
 15   if(fbi_fb0 == NULL){                                                                                                    
 14     return -1;                                                                                                            
 13   }                                                                                                                       
 12   memcpy(&var, &fbi_fb0->var, sizeof(var));                                                                               
 11   console_lock();                                                                                                         
 10   fbi_fb0->flags |= FBINFO_MISC_USEREVENT;                                                                                
  9   var.xres_virtual = ALIGN_PIXEL_16(var.xres);                                                                            
  8   var.yres_virtual = ALIGN_PIXEL_16(var.yres) * FB0_FLIP_BUFFER_NUM;                                                      
  7   fb_set_var(fbi_fb0, &var);                                                                                              
  6   fbi_fb0->flags &= ~FBINFO_MISC_USEREVENT;                                                                               
  5   console_unlock(); 

Outcomes