This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MIPI DSI HS speed tramsfer data that we wanted



We have used Pandaboard ES.

When we running MIPI DSI HS mode.

Could we transfer data that we wanted ??

 

thank you.

  • What do you mean? Other than display data?

    MIPI DSI is designed for pixel and display related commands.

    If you mean transfer data from the panel to OMAP, MIPI DSI defines the Bus Turn Around mechanism, to allow the displays to send information to the host.

    Please check

    OMAP TRM 

    10.3.4.4.3.5.1 HS Command Mode Interleaving

    10.3.4.4.8 Bus Turnaround

  • Hi Rafael

    I have refer the HS Command Mode Interleaving chap.

    But I have some question here.

    1. How to calculate these settings?? (EX:HS_INTERLEAVING = BLANKING_PERIOD - (ENTER_HS_MODE_LATENCY+EXIT_HS_MODE_LATENCY+max{ENTER_HS_MODE_LATENCY,2}+1)  ) , have a recommand value about BLANKING_PERIOD   , ENTER_HS_MODE_LATENCY , EXIT_HS_MODE_LATENCY ?

    How to set the settings below ??

    * TODO: either calculate these values or make them configurable */
     r = FLD_VAL(72, 23, 16) |       /* HSA_HS_INTERLEAVING */
      FLD_VAL(114, 15, 8) |   /* HFB_HS_INTERLEAVING */
      FLD_VAL(150, 7, 0);     /* HbB_HS_INTERLEAVING */
     dsi_write_reg(dsidev, DSI_VM_TIMING4, r);

     r = FLD_VAL(130, 23, 16) |      /* HSA_LP_INTERLEAVING */
      FLD_VAL(223, 15, 8) |   /* HFB_LP_INTERLEAVING */
      FLD_VAL(59, 7, 0);      /* HBB_LP_INTERLEAVING */
     dsi_write_reg(dsidev, DSI_VM_TIMING5, r);

     r = FLD_VAL(0x7A67, 31, 16) |   /* BL_HS_INTERLEAVING */
      FLD_VAL(0x31D1, 15, 0); /* BL_LP_INTERLEAVING */
     dsi_write_reg(dsidev, DSI_VM_TIMING6, r);

     

    2. I have write a sysfs to write command to panel on display driver. (HS command mode packets means long packet or short packet??)

    But when we write the command, the display will be black.

    I think the kernel have some error here.

    Am I miss some setting here??(I have use default Interleaving time)

     [  504.411926] omapdss DISPC: GO LCD                                          
    [  504.498931] omapdss DSI: dsi_vc_send_long, 1 bytes                         
    [  504.498931] ------------[ cut here ]------------                           
    [  504.498931] WARNING: at /home/william/Android/linaro_android/android/kernel)
    [  504.498962] Modules linked in:                                             
    [  504.498962] [<c0019cf8>] (unwind_backtrace+0x0/0xf8) from [<c0042d40>] (war)
    [  504.498992] [<c0042d40>] (warn_slowpath_common+0x4c/0x64) from [<c0042d74>])
    [  504.498992] [<c0042d74>] (warn_slowpath_null+0x1c/0x24) from [<c030b970>] ()
    [  504.499023] [<c030b970>] (dsi_vc_send_long.constprop.21+0xa4/0x2b0) from [<)
    [  504.499023] [<c030bbf4>] (dsi_vc_dcs_write_nosync+0x30/0x40) from [<c03183b)
    [  504.499053] [<c03183bc>] (store_command_send+0x5c/0x90) from [<c03723d0>] ()
    [  504.499053] [<c03723d0>] (dev_attr_store+0x18/0x24) from [<c0130bc8>] (sysf)
    [  504.499084] [<c0130bc8>] (sysfs_write_file+0xfc/0x17c) from [<c00d6c10>] (v)
    [  504.499084] [<c00d6c10>] (vfs_write+0xa8/0x138) from [<c00d6e80>] (sys_writ)
    [  504.499114] [<c00d6e80>] (sys_write+0x40/0x6c) from [<c0012d80>] (ret_fast_)
    [  504.499114] ---[ end trace 1b75b31a2719ed1e ]---                           
    [  504.499114] omapdss DSI: writing header 139                                
    [  504.499114] omapdss DSI:     sending remainder bytes 1                     
    [  504.499145] omapdss DSI: sending payload 33                                
    [  504.499145] omapdss DSI: long packet success                               
    [  504.685699] omapdss OVERLAY: check_overlay 0: (0,0 320x480 -> 320x480) disp)
    [  504.685699] check_overlay 0: (0,0 320x480 -> 320x480) disp (320x480)       
    [  504.685699] omapdss MANAGER: omap_dss_mgr_apply(lcd)               

  • Dear Rafael

     

    We have change these value below ( to max value)

    Doesn't have change on panel.

    And when we want to write packet to panel , the frame will be close ,

    r = FLD_VAL(255 ,23, 16) |       /* HSA_HS_INTERLEAVING */
      FLD_VAL(255, 15, 8) |   /* HFB_HS_INTERLEAVING */
      FLD_VAL(255, 7, 0);     /* HbB_HS_INTERLEAVING */

     dsi_write_reg(dsidev, DSI_VM_TIMING4, r);

     r = FLD_VAL(0xFFFF, 31, 16) |   /* BL_HS_INTERLEAVING */
      FLD_VAL(0xFFFF, 15, 0); /* BL_LP_INTERLEAVING */

     dsi_write_reg(dsidev, DSI_VM_TIMING6, r);